UNPKG

2.46 MBJavaScriptView Raw
1(function webpackUniversalModuleDefinition(root, factory) {
2 if(typeof exports === 'object' && typeof module === 'object')
3 module.exports = factory();
4 else if(typeof define === 'function' && define.amd)
5 define([], factory);
6 else if(typeof exports === 'object')
7 exports["mermaid"] = factory();
8 else
9 root["mermaid"] = factory();
10})(window, function() {
11return /******/ (function(modules) { // webpackBootstrap
12/******/ // The module cache
13/******/ var installedModules = {};
14/******/
15/******/ // The require function
16/******/ function __webpack_require__(moduleId) {
17/******/
18/******/ // Check if module is in cache
19/******/ if(installedModules[moduleId]) {
20/******/ return installedModules[moduleId].exports;
21/******/ }
22/******/ // Create a new module (and put it into the cache)
23/******/ var module = installedModules[moduleId] = {
24/******/ i: moduleId,
25/******/ l: false,
26/******/ exports: {}
27/******/ };
28/******/
29/******/ // Execute the module function
30/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31/******/
32/******/ // Flag the module as loaded
33/******/ module.l = true;
34/******/
35/******/ // Return the exports of the module
36/******/ return module.exports;
37/******/ }
38/******/
39/******/
40/******/ // expose the modules object (__webpack_modules__)
41/******/ __webpack_require__.m = modules;
42/******/
43/******/ // expose the module cache
44/******/ __webpack_require__.c = installedModules;
45/******/
46/******/ // define getter function for harmony exports
47/******/ __webpack_require__.d = function(exports, name, getter) {
48/******/ if(!__webpack_require__.o(exports, name)) {
49/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
50/******/ }
51/******/ };
52/******/
53/******/ // define __esModule on exports
54/******/ __webpack_require__.r = function(exports) {
55/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57/******/ }
58/******/ Object.defineProperty(exports, '__esModule', { value: true });
59/******/ };
60/******/
61/******/ // create a fake namespace object
62/******/ // mode & 1: value is a module id, require it
63/******/ // mode & 2: merge all properties of value into the ns
64/******/ // mode & 4: return value when already ns object
65/******/ // mode & 8|1: behave like require
66/******/ __webpack_require__.t = function(value, mode) {
67/******/ if(mode & 1) value = __webpack_require__(value);
68/******/ if(mode & 8) return value;
69/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70/******/ var ns = Object.create(null);
71/******/ __webpack_require__.r(ns);
72/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74/******/ return ns;
75/******/ };
76/******/
77/******/ // getDefaultExport function for compatibility with non-harmony modules
78/******/ __webpack_require__.n = function(module) {
79/******/ var getter = module && module.__esModule ?
80/******/ function getDefault() { return module['default']; } :
81/******/ function getModuleExports() { return module; };
82/******/ __webpack_require__.d(getter, 'a', getter);
83/******/ return getter;
84/******/ };
85/******/
86/******/ // Object.prototype.hasOwnProperty.call
87/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88/******/
89/******/ // __webpack_public_path__
90/******/ __webpack_require__.p = "";
91/******/
92/******/
93/******/ // Load entry module and return exports
94/******/ return __webpack_require__(__webpack_require__.s = "./src/mermaid.js");
95/******/ })
96/************************************************************************/
97/******/ ({
98
99/***/ "./node_modules/@braintree/sanitize-url/index.js":
100/*!*******************************************************!*\
101 !*** ./node_modules/@braintree/sanitize-url/index.js ***!
102 \*******************************************************/
103/*! no static exports found */
104/***/ (function(module, exports, __webpack_require__) {
105
106"use strict";
107
108
109var invalidPrototcolRegex = /^(%20|\s)*(javascript|data)/im;
110var ctrlCharactersRegex = /[^\x20-\x7E]/gmi;
111var urlSchemeRegex = /^([^:]+):/gm;
112var relativeFirstCharacters = ['.', '/']
113
114function isRelativeUrl(url) {
115 return relativeFirstCharacters.indexOf(url[0]) > -1;
116}
117
118function sanitizeUrl(url) {
119 if (!url) {
120 return 'about:blank';
121 }
122
123 var urlScheme, urlSchemeParseResults;
124 var sanitizedUrl = url.replace(ctrlCharactersRegex, '').trim();
125
126 if (isRelativeUrl(sanitizedUrl)) {
127 return sanitizedUrl;
128 }
129
130 urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);
131
132 if (!urlSchemeParseResults) {
133 return 'about:blank';
134 }
135
136 urlScheme = urlSchemeParseResults[0];
137
138 if (invalidPrototcolRegex.test(urlScheme)) {
139 return 'about:blank';
140 }
141
142 return sanitizedUrl;
143}
144
145module.exports = {
146 sanitizeUrl: sanitizeUrl
147};
148
149
150/***/ }),
151
152/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/dark/index.scss":
153/*!*******************************************************************************************************************!*\
154 !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/dark/index.scss ***!
155 \*******************************************************************************************************************/
156/*! no static exports found */
157/***/ (function(module, exports, __webpack_require__) {
158
159exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
160// Module
161exports.push([module.i, "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.label {\n font-family: 'trebuchet ms', verdana, arial;\n color: #333; }\n\n.label text {\n fill: #333; }\n\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #BDD5EA;\n stroke: purple;\n stroke-width: 1px; }\n\n.node.clickable {\n cursor: pointer; }\n\n.arrowheadPath {\n fill: lightgrey; }\n\n.edgePath .path {\n stroke: lightgrey;\n stroke-width: 1.5px; }\n\n.edgeLabel {\n background-color: #e8e8e8; }\n\n.cluster rect {\n fill: #6D6D65;\n stroke: rgba(255, 255, 255, 0.25);\n stroke-width: 1px; }\n\n.cluster text {\n fill: #F9FFFE; }\n\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #6D6D65;\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 2px;\n pointer-events: none;\n z-index: 100; }\n\n.actor {\n stroke: #81B1DB;\n fill: #BDD5EA; }\n\ntext.actor {\n fill: black;\n stroke: none; }\n\n.actor-line {\n stroke: lightgrey; }\n\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: '2 2';\n stroke: lightgrey; }\n\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: '2 2';\n stroke: lightgrey; }\n\n#arrowhead {\n fill: lightgrey; }\n\n.sequenceNumber {\n fill: white; }\n\n#sequencenumber {\n fill: lightgrey; }\n\n#crosshead path {\n fill: lightgrey !important;\n stroke: lightgrey !important; }\n\n.messageText {\n fill: lightgrey;\n stroke: none; }\n\n.labelBox {\n stroke: #81B1DB;\n fill: #BDD5EA; }\n\n.labelText {\n fill: #323D47;\n stroke: none; }\n\n.loopText {\n fill: lightgrey;\n stroke: none; }\n\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: '2 2';\n stroke: #81B1DB; }\n\n.note {\n stroke: rgba(255, 255, 255, 0.25);\n fill: #fff5ad; }\n\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px; }\n\n.activation0 {\n fill: #f4f4f4;\n stroke: #666; }\n\n.activation1 {\n fill: #f4f4f4;\n stroke: #666; }\n\n.activation2 {\n fill: #f4f4f4;\n stroke: #666; }\n\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2; }\n\n.section0 {\n fill: rgba(255, 255, 255, 0.3); }\n\n.section2 {\n fill: #EAE8B9; }\n\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2; }\n\n.sectionTitle0 {\n fill: #F9FFFE; }\n\n.sectionTitle1 {\n fill: #F9FFFE; }\n\n.sectionTitle2 {\n fill: #F9FFFE; }\n\n.sectionTitle3 {\n fill: #F9FFFE; }\n\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px; }\n\n/* Grid and axis */\n.grid .tick {\n stroke: lightgrey;\n opacity: 0.3;\n shape-rendering: crispEdges; }\n\n.grid path {\n stroke-width: 0; }\n\n/* Today line */\n.today {\n fill: none;\n stroke: #DB5757;\n stroke-width: 2px; }\n\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2; }\n\n.taskText {\n text-anchor: middle;\n font-size: 11px; }\n\n.taskTextOutsideRight {\n fill: #323D47;\n text-anchor: start;\n font-size: 11px; }\n\n.taskTextOutsideLeft {\n fill: #323D47;\n text-anchor: end;\n font-size: 11px; }\n\n/* Special case clickable */\n.task.clickable {\n cursor: pointer; }\n\n.taskText.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n.taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n.taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: #323D47; }\n\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #BDD5EA;\n stroke: rgba(255, 255, 255, 0.5); }\n\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: lightgrey; }\n\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: lightgrey; }\n\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #81B1DB;\n stroke: rgba(255, 255, 255, 0.5); }\n\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: #323D47 !important; }\n\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: grey;\n fill: lightgrey;\n stroke-width: 2; }\n\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: #323D47 !important; }\n\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #E83737;\n fill: #E83737;\n stroke-width: 2; }\n\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #E83737;\n fill: #81B1DB;\n stroke-width: 2; }\n\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #E83737;\n fill: lightgrey;\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges; }\n\n.milestone {\n transform: rotate(45deg) scale(0.8, 0.8); }\n\n.milestoneText {\n font-style: italic; }\n\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: #323D47 !important; }\n\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: #323D47 !important; }\n\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: #323D47; }\n\ng.classGroup text {\n fill: purple;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 10px; }\n\ng.classGroup rect {\n fill: #BDD5EA;\n stroke: purple; }\n\ng.classGroup line {\n stroke: purple;\n stroke-width: 1; }\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #BDD5EA;\n opacity: 0.5; }\n\n.classLabel .label {\n fill: purple;\n font-size: 10px; }\n\n.relation {\n stroke: purple;\n stroke-width: 1;\n fill: none; }\n\n#compositionStart {\n fill: purple;\n stroke: purple;\n stroke-width: 1; }\n\n#compositionEnd {\n fill: purple;\n stroke: purple;\n stroke-width: 1; }\n\n#aggregationStart {\n fill: #BDD5EA;\n stroke: purple;\n stroke-width: 1; }\n\n#aggregationEnd {\n fill: #BDD5EA;\n stroke: purple;\n stroke-width: 1; }\n\n#dependencyStart {\n fill: purple;\n stroke: purple;\n stroke-width: 1; }\n\n#dependencyEnd {\n fill: purple;\n stroke: purple;\n stroke-width: 1; }\n\n#extensionStart {\n fill: purple;\n stroke: purple;\n stroke-width: 1; }\n\n#extensionEnd {\n fill: purple;\n stroke: purple;\n stroke-width: 1; }\n\n.commit-id,\n.commit-msg,\n.branch-label {\n fill: lightgrey;\n color: lightgrey; }\n\n.pieTitleText {\n text-anchor: middle;\n font-size: 25px;\n fill: #323D47; }\n", ""]);
162
163
164
165/***/ }),
166
167/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/default/index.scss":
168/*!**********************************************************************************************************************!*\
169 !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/default/index.scss ***!
170 \**********************************************************************************************************************/
171/*! no static exports found */
172/***/ (function(module, exports, __webpack_require__) {
173
174exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
175// Module
176exports.push([module.i, "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.label {\n font-family: 'trebuchet ms', verdana, arial;\n color: #333; }\n\n.label text {\n fill: #333; }\n\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #ECECFF;\n stroke: #9370DB;\n stroke-width: 1px; }\n\n.node.clickable {\n cursor: pointer; }\n\n.arrowheadPath {\n fill: #333333; }\n\n.edgePath .path {\n stroke: #333333;\n stroke-width: 1.5px; }\n\n.edgeLabel {\n background-color: #e8e8e8; }\n\n.cluster rect {\n fill: #ffffde;\n stroke: #aaaa33;\n stroke-width: 1px; }\n\n.cluster text {\n fill: #333; }\n\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #ffffde;\n border: 1px solid #aaaa33;\n border-radius: 2px;\n pointer-events: none;\n z-index: 100; }\n\n.actor {\n stroke: #CCCCFF;\n fill: #ECECFF; }\n\ntext.actor {\n fill: black;\n stroke: none; }\n\n.actor-line {\n stroke: grey; }\n\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: '2 2';\n stroke: #333; }\n\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: '2 2';\n stroke: #333; }\n\n#arrowhead {\n fill: #333; }\n\n.sequenceNumber {\n fill: white; }\n\n#sequencenumber {\n fill: #333; }\n\n#crosshead path {\n fill: #333 !important;\n stroke: #333 !important; }\n\n.messageText {\n fill: #333;\n stroke: none; }\n\n.labelBox {\n stroke: #CCCCFF;\n fill: #ECECFF; }\n\n.labelText {\n fill: black;\n stroke: none; }\n\n.loopText {\n fill: black;\n stroke: none; }\n\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: '2 2';\n stroke: #CCCCFF; }\n\n.note {\n stroke: #aaaa33;\n fill: #fff5ad; }\n\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px; }\n\n.activation0 {\n fill: #f4f4f4;\n stroke: #666; }\n\n.activation1 {\n fill: #f4f4f4;\n stroke: #666; }\n\n.activation2 {\n fill: #f4f4f4;\n stroke: #666; }\n\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2; }\n\n.section0 {\n fill: rgba(102, 102, 255, 0.49); }\n\n.section2 {\n fill: #fff400; }\n\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2; }\n\n.sectionTitle0 {\n fill: #333; }\n\n.sectionTitle1 {\n fill: #333; }\n\n.sectionTitle2 {\n fill: #333; }\n\n.sectionTitle3 {\n fill: #333; }\n\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px; }\n\n/* Grid and axis */\n.grid .tick {\n stroke: lightgrey;\n opacity: 0.3;\n shape-rendering: crispEdges; }\n\n.grid path {\n stroke-width: 0; }\n\n/* Today line */\n.today {\n fill: none;\n stroke: red;\n stroke-width: 2px; }\n\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2; }\n\n.taskText {\n text-anchor: middle;\n font-size: 11px; }\n\n.taskTextOutsideRight {\n fill: black;\n text-anchor: start;\n font-size: 11px; }\n\n.taskTextOutsideLeft {\n fill: black;\n text-anchor: end;\n font-size: 11px; }\n\n/* Special case clickable */\n.task.clickable {\n cursor: pointer; }\n\n.taskText.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n.taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n.taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: white; }\n\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #8a90dd;\n stroke: #534fbc; }\n\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: black; }\n\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: black; }\n\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #bfc7ff;\n stroke: #534fbc; }\n\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: black !important; }\n\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: grey;\n fill: lightgrey;\n stroke-width: 2; }\n\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: black !important; }\n\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #ff8888;\n fill: red;\n stroke-width: 2; }\n\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #ff8888;\n fill: #bfc7ff;\n stroke-width: 2; }\n\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #ff8888;\n fill: lightgrey;\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges; }\n\n.milestone {\n transform: rotate(45deg) scale(0.8, 0.8); }\n\n.milestoneText {\n font-style: italic; }\n\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: black !important; }\n\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: black !important; }\n\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: black; }\n\ng.classGroup text {\n fill: #9370DB;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 10px; }\n\ng.classGroup rect {\n fill: #ECECFF;\n stroke: #9370DB; }\n\ng.classGroup line {\n stroke: #9370DB;\n stroke-width: 1; }\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #ECECFF;\n opacity: 0.5; }\n\n.classLabel .label {\n fill: #9370DB;\n font-size: 10px; }\n\n.relation {\n stroke: #9370DB;\n stroke-width: 1;\n fill: none; }\n\n#compositionStart {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1; }\n\n#compositionEnd {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1; }\n\n#aggregationStart {\n fill: #ECECFF;\n stroke: #9370DB;\n stroke-width: 1; }\n\n#aggregationEnd {\n fill: #ECECFF;\n stroke: #9370DB;\n stroke-width: 1; }\n\n#dependencyStart {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1; }\n\n#dependencyEnd {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1; }\n\n#extensionStart {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1; }\n\n#extensionEnd {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1; }\n\n.commit-id,\n.commit-msg,\n.branch-label {\n fill: lightgrey;\n color: lightgrey; }\n\n.pieTitleText {\n text-anchor: middle;\n font-size: 25px;\n fill: black; }\n", ""]);
177
178
179
180/***/ }),
181
182/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/forest/index.scss":
183/*!*********************************************************************************************************************!*\
184 !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/forest/index.scss ***!
185 \*********************************************************************************************************************/
186/*! no static exports found */
187/***/ (function(module, exports, __webpack_require__) {
188
189exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
190// Module
191exports.push([module.i, "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.label {\n font-family: 'trebuchet ms', verdana, arial;\n color: #333; }\n\n.label text {\n fill: #333; }\n\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1px; }\n\n.node.clickable {\n cursor: pointer; }\n\n.arrowheadPath {\n fill: green; }\n\n.edgePath .path {\n stroke: green;\n stroke-width: 1.5px; }\n\n.edgeLabel {\n background-color: #e8e8e8; }\n\n.cluster rect {\n fill: #cdffb2;\n stroke: #6eaa49;\n stroke-width: 1px; }\n\n.cluster text {\n fill: #333; }\n\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #cdffb2;\n border: 1px solid #6eaa49;\n border-radius: 2px;\n pointer-events: none;\n z-index: 100; }\n\n.actor {\n stroke: #13540c;\n fill: #cde498; }\n\ntext.actor {\n fill: black;\n stroke: none; }\n\n.actor-line {\n stroke: grey; }\n\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: '2 2';\n stroke: #333; }\n\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: '2 2';\n stroke: #333; }\n\n#arrowhead {\n fill: #333; }\n\n.sequenceNumber {\n fill: white; }\n\n#sequencenumber {\n fill: #333; }\n\n#crosshead path {\n fill: #333 !important;\n stroke: #333 !important; }\n\n.messageText {\n fill: #333;\n stroke: none; }\n\n.labelBox {\n stroke: #326932;\n fill: #cde498; }\n\n.labelText {\n fill: black;\n stroke: none; }\n\n.loopText {\n fill: black;\n stroke: none; }\n\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: '2 2';\n stroke: #326932; }\n\n.note {\n stroke: #6eaa49;\n fill: #fff5ad; }\n\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px; }\n\n.activation0 {\n fill: #f4f4f4;\n stroke: #666; }\n\n.activation1 {\n fill: #f4f4f4;\n stroke: #666; }\n\n.activation2 {\n fill: #f4f4f4;\n stroke: #666; }\n\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2; }\n\n.section0 {\n fill: #6eaa49; }\n\n.section2 {\n fill: #6eaa49; }\n\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2; }\n\n.sectionTitle0 {\n fill: #333; }\n\n.sectionTitle1 {\n fill: #333; }\n\n.sectionTitle2 {\n fill: #333; }\n\n.sectionTitle3 {\n fill: #333; }\n\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px; }\n\n/* Grid and axis */\n.grid .tick {\n stroke: lightgrey;\n opacity: 0.3;\n shape-rendering: crispEdges; }\n\n.grid path {\n stroke-width: 0; }\n\n/* Today line */\n.today {\n fill: none;\n stroke: red;\n stroke-width: 2px; }\n\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2; }\n\n.taskText {\n text-anchor: middle;\n font-size: 11px; }\n\n.taskTextOutsideRight {\n fill: black;\n text-anchor: start;\n font-size: 11px; }\n\n.taskTextOutsideLeft {\n fill: black;\n text-anchor: end;\n font-size: 11px; }\n\n/* Special case clickable */\n.task.clickable {\n cursor: pointer; }\n\n.taskText.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n.taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n.taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: white; }\n\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #487e3a;\n stroke: #13540c; }\n\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: black; }\n\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: black; }\n\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #cde498;\n stroke: #13540c; }\n\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: black !important; }\n\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: grey;\n fill: lightgrey;\n stroke-width: 2; }\n\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: black !important; }\n\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #ff8888;\n fill: red;\n stroke-width: 2; }\n\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #ff8888;\n fill: #cde498;\n stroke-width: 2; }\n\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #ff8888;\n fill: lightgrey;\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges; }\n\n.milestone {\n transform: rotate(45deg) scale(0.8, 0.8); }\n\n.milestoneText {\n font-style: italic; }\n\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: black !important; }\n\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: black !important; }\n\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: black; }\n\ng.classGroup text {\n fill: #13540c;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 10px; }\n\ng.classGroup rect {\n fill: #cde498;\n stroke: #13540c; }\n\ng.classGroup line {\n stroke: #13540c;\n stroke-width: 1; }\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #cde498;\n opacity: 0.5; }\n\n.classLabel .label {\n fill: #13540c;\n font-size: 10px; }\n\n.relation {\n stroke: #13540c;\n stroke-width: 1;\n fill: none; }\n\n#compositionStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1; }\n\n#compositionEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1; }\n\n#aggregationStart {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1; }\n\n#aggregationEnd {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1; }\n\n#dependencyStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1; }\n\n#dependencyEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1; }\n\n#extensionStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1; }\n\n#extensionEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1; }\n\n.commit-id,\n.commit-msg,\n.branch-label {\n fill: lightgrey;\n color: lightgrey; }\n\n.pieTitleText {\n text-anchor: middle;\n font-size: 25px;\n fill: black; }\n", ""]);
192
193
194
195/***/ }),
196
197/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/neutral/index.scss":
198/*!**********************************************************************************************************************!*\
199 !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/neutral/index.scss ***!
200 \**********************************************************************************************************************/
201/*! no static exports found */
202/***/ (function(module, exports, __webpack_require__) {
203
204exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
205// Module
206exports.push([module.i, "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.label {\n font-family: 'trebuchet ms', verdana, arial;\n color: #333; }\n\n.label text {\n fill: #333; }\n\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #eee;\n stroke: #999;\n stroke-width: 1px; }\n\n.node.clickable {\n cursor: pointer; }\n\n.arrowheadPath {\n fill: #333333; }\n\n.edgePath .path {\n stroke: #666;\n stroke-width: 1.5px; }\n\n.edgeLabel {\n background-color: white; }\n\n.cluster rect {\n fill: #eaf2fb;\n stroke: #26a;\n stroke-width: 1px; }\n\n.cluster text {\n fill: #333; }\n\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #eaf2fb;\n border: 1px solid #26a;\n border-radius: 2px;\n pointer-events: none;\n z-index: 100; }\n\n.actor {\n stroke: #999;\n fill: #eee; }\n\ntext.actor {\n fill: #333;\n stroke: none; }\n\n.actor-line {\n stroke: #666; }\n\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: '2 2';\n stroke: #333; }\n\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: '2 2';\n stroke: #333; }\n\n#arrowhead {\n fill: #333; }\n\n.sequenceNumber {\n fill: white; }\n\n#sequencenumber {\n fill: #333; }\n\n#crosshead path {\n fill: #333 !important;\n stroke: #333 !important; }\n\n.messageText {\n fill: #333;\n stroke: none; }\n\n.labelBox {\n stroke: #999;\n fill: #eee; }\n\n.labelText {\n fill: #333;\n stroke: none; }\n\n.loopText {\n fill: #333;\n stroke: none; }\n\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: '2 2';\n stroke: #999; }\n\n.note {\n stroke: #777700;\n fill: #ffa; }\n\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px; }\n\n.activation0 {\n fill: #f4f4f4;\n stroke: #666; }\n\n.activation1 {\n fill: #f4f4f4;\n stroke: #666; }\n\n.activation2 {\n fill: #f4f4f4;\n stroke: #666; }\n\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2; }\n\n.section0 {\n fill: #80b3e6; }\n\n.section2 {\n fill: #80b3e6; }\n\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2; }\n\n.sectionTitle0 {\n fill: #333; }\n\n.sectionTitle1 {\n fill: #333; }\n\n.sectionTitle2 {\n fill: #333; }\n\n.sectionTitle3 {\n fill: #333; }\n\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px; }\n\n/* Grid and axis */\n.grid .tick {\n stroke: #e6e6e6;\n opacity: 0.3;\n shape-rendering: crispEdges; }\n\n.grid path {\n stroke-width: 0; }\n\n/* Today line */\n.today {\n fill: none;\n stroke: #d42;\n stroke-width: 2px; }\n\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2; }\n\n.taskText {\n text-anchor: middle;\n font-size: 11px; }\n\n.taskTextOutsideRight {\n fill: #333;\n text-anchor: start;\n font-size: 11px; }\n\n.taskTextOutsideLeft {\n fill: #333;\n text-anchor: end;\n font-size: 11px; }\n\n/* Special case clickable */\n.task.clickable {\n cursor: pointer; }\n\n.taskText.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n.taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n.taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: #003163 !important;\n font-weight: bold; }\n\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: white; }\n\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #26a;\n stroke: #1a4d80; }\n\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: #333; }\n\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: #333; }\n\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #eee;\n stroke: #1a4d80; }\n\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: #333 !important; }\n\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: #666;\n fill: #bbb;\n stroke-width: 2; }\n\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: #333 !important; }\n\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #b1361b;\n fill: #d42;\n stroke-width: 2; }\n\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #b1361b;\n fill: #eee;\n stroke-width: 2; }\n\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #b1361b;\n fill: #bbb;\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges; }\n\n.milestone {\n transform: rotate(45deg) scale(0.8, 0.8); }\n\n.milestoneText {\n font-style: italic; }\n\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: #333 !important; }\n\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: #333 !important; }\n\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: #333; }\n\ng.classGroup text {\n fill: #999;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 10px; }\n\ng.classGroup rect {\n fill: #eee;\n stroke: #999; }\n\ng.classGroup line {\n stroke: #999;\n stroke-width: 1; }\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #eee;\n opacity: 0.5; }\n\n.classLabel .label {\n fill: #999;\n font-size: 10px; }\n\n.relation {\n stroke: #999;\n stroke-width: 1;\n fill: none; }\n\n#compositionStart {\n fill: #999;\n stroke: #999;\n stroke-width: 1; }\n\n#compositionEnd {\n fill: #999;\n stroke: #999;\n stroke-width: 1; }\n\n#aggregationStart {\n fill: #eee;\n stroke: #999;\n stroke-width: 1; }\n\n#aggregationEnd {\n fill: #eee;\n stroke: #999;\n stroke-width: 1; }\n\n#dependencyStart {\n fill: #999;\n stroke: #999;\n stroke-width: 1; }\n\n#dependencyEnd {\n fill: #999;\n stroke: #999;\n stroke-width: 1; }\n\n#extensionStart {\n fill: #999;\n stroke: #999;\n stroke-width: 1; }\n\n#extensionEnd {\n fill: #999;\n stroke: #999;\n stroke-width: 1; }\n\n.commit-id,\n.commit-msg,\n.branch-label {\n fill: lightgrey;\n color: lightgrey; }\n\n.pieTitleText {\n text-anchor: middle;\n font-size: 25px;\n fill: #333; }\n", ""]);
207
208
209
210/***/ }),
211
212/***/ "./node_modules/css-loader/dist/runtime/api.js":
213/*!*****************************************************!*\
214 !*** ./node_modules/css-loader/dist/runtime/api.js ***!
215 \*****************************************************/
216/*! no static exports found */
217/***/ (function(module, exports, __webpack_require__) {
218
219"use strict";
220
221
222/*
223 MIT License http://www.opensource.org/licenses/mit-license.php
224 Author Tobias Koppers @sokra
225*/
226// css base code, injected by the css-loader
227module.exports = function (useSourceMap) {
228 var list = []; // return the list of modules as css string
229
230 list.toString = function toString() {
231 return this.map(function (item) {
232 var content = cssWithMappingToString(item, useSourceMap);
233
234 if (item[2]) {
235 return '@media ' + item[2] + '{' + content + '}';
236 } else {
237 return content;
238 }
239 }).join('');
240 }; // import a list of modules into the list
241
242
243 list.i = function (modules, mediaQuery) {
244 if (typeof modules === 'string') {
245 modules = [[null, modules, '']];
246 }
247
248 var alreadyImportedModules = {};
249
250 for (var i = 0; i < this.length; i++) {
251 var id = this[i][0];
252
253 if (id != null) {
254 alreadyImportedModules[id] = true;
255 }
256 }
257
258 for (i = 0; i < modules.length; i++) {
259 var item = modules[i]; // skip already imported module
260 // this implementation is not 100% perfect for weird media query combinations
261 // when a module is imported multiple times with different media queries.
262 // I hope this will never occur (Hey this way we have smaller bundles)
263
264 if (item[0] == null || !alreadyImportedModules[item[0]]) {
265 if (mediaQuery && !item[2]) {
266 item[2] = mediaQuery;
267 } else if (mediaQuery) {
268 item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';
269 }
270
271 list.push(item);
272 }
273 }
274 };
275
276 return list;
277};
278
279function cssWithMappingToString(item, useSourceMap) {
280 var content = item[1] || '';
281 var cssMapping = item[3];
282
283 if (!cssMapping) {
284 return content;
285 }
286
287 if (useSourceMap && typeof btoa === 'function') {
288 var sourceMapping = toComment(cssMapping);
289 var sourceURLs = cssMapping.sources.map(function (source) {
290 return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';
291 });
292 return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
293 }
294
295 return [content].join('\n');
296} // Adapted from convert-source-map (MIT)
297
298
299function toComment(sourceMap) {
300 // eslint-disable-next-line no-undef
301 var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
302 var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
303 return '/*# ' + data + ' */';
304}
305
306/***/ }),
307
308/***/ "./node_modules/d3-array/src/array.js":
309/*!********************************************!*\
310 !*** ./node_modules/d3-array/src/array.js ***!
311 \********************************************/
312/*! exports provided: slice, map */
313/***/ (function(module, __webpack_exports__, __webpack_require__) {
314
315"use strict";
316__webpack_require__.r(__webpack_exports__);
317/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
318/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
319var array = Array.prototype;
320
321var slice = array.slice;
322var map = array.map;
323
324
325/***/ }),
326
327/***/ "./node_modules/d3-array/src/ascending.js":
328/*!************************************************!*\
329 !*** ./node_modules/d3-array/src/ascending.js ***!
330 \************************************************/
331/*! exports provided: default */
332/***/ (function(module, __webpack_exports__, __webpack_require__) {
333
334"use strict";
335__webpack_require__.r(__webpack_exports__);
336/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
337 return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
338});
339
340
341/***/ }),
342
343/***/ "./node_modules/d3-array/src/bisect.js":
344/*!*********************************************!*\
345 !*** ./node_modules/d3-array/src/bisect.js ***!
346 \*********************************************/
347/*! exports provided: bisectRight, bisectLeft, default */
348/***/ (function(module, __webpack_exports__, __webpack_require__) {
349
350"use strict";
351__webpack_require__.r(__webpack_exports__);
352/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return bisectRight; });
353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return bisectLeft; });
354/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
355/* harmony import */ var _bisector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bisector */ "./node_modules/d3-array/src/bisector.js");
356
357
358
359var ascendingBisect = Object(_bisector__WEBPACK_IMPORTED_MODULE_1__["default"])(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"]);
360var bisectRight = ascendingBisect.right;
361var bisectLeft = ascendingBisect.left;
362/* harmony default export */ __webpack_exports__["default"] = (bisectRight);
363
364
365/***/ }),
366
367/***/ "./node_modules/d3-array/src/bisector.js":
368/*!***********************************************!*\
369 !*** ./node_modules/d3-array/src/bisector.js ***!
370 \***********************************************/
371/*! exports provided: default */
372/***/ (function(module, __webpack_exports__, __webpack_require__) {
373
374"use strict";
375__webpack_require__.r(__webpack_exports__);
376/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
377
378
379/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
380 if (compare.length === 1) compare = ascendingComparator(compare);
381 return {
382 left: function(a, x, lo, hi) {
383 if (lo == null) lo = 0;
384 if (hi == null) hi = a.length;
385 while (lo < hi) {
386 var mid = lo + hi >>> 1;
387 if (compare(a[mid], x) < 0) lo = mid + 1;
388 else hi = mid;
389 }
390 return lo;
391 },
392 right: function(a, x, lo, hi) {
393 if (lo == null) lo = 0;
394 if (hi == null) hi = a.length;
395 while (lo < hi) {
396 var mid = lo + hi >>> 1;
397 if (compare(a[mid], x) > 0) hi = mid;
398 else lo = mid + 1;
399 }
400 return lo;
401 }
402 };
403});
404
405function ascendingComparator(f) {
406 return function(d, x) {
407 return Object(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"])(f(d), x);
408 };
409}
410
411
412/***/ }),
413
414/***/ "./node_modules/d3-array/src/constant.js":
415/*!***********************************************!*\
416 !*** ./node_modules/d3-array/src/constant.js ***!
417 \***********************************************/
418/*! exports provided: default */
419/***/ (function(module, __webpack_exports__, __webpack_require__) {
420
421"use strict";
422__webpack_require__.r(__webpack_exports__);
423/* harmony default export */ __webpack_exports__["default"] = (function(x) {
424 return function() {
425 return x;
426 };
427});
428
429
430/***/ }),
431
432/***/ "./node_modules/d3-array/src/cross.js":
433/*!********************************************!*\
434 !*** ./node_modules/d3-array/src/cross.js ***!
435 \********************************************/
436/*! exports provided: default */
437/***/ (function(module, __webpack_exports__, __webpack_require__) {
438
439"use strict";
440__webpack_require__.r(__webpack_exports__);
441/* harmony import */ var _pairs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pairs */ "./node_modules/d3-array/src/pairs.js");
442
443
444/* harmony default export */ __webpack_exports__["default"] = (function(values0, values1, reduce) {
445 var n0 = values0.length,
446 n1 = values1.length,
447 values = new Array(n0 * n1),
448 i0,
449 i1,
450 i,
451 value0;
452
453 if (reduce == null) reduce = _pairs__WEBPACK_IMPORTED_MODULE_0__["pair"];
454
455 for (i0 = i = 0; i0 < n0; ++i0) {
456 for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
457 values[i] = reduce(value0, values1[i1]);
458 }
459 }
460
461 return values;
462});
463
464
465/***/ }),
466
467/***/ "./node_modules/d3-array/src/descending.js":
468/*!*************************************************!*\
469 !*** ./node_modules/d3-array/src/descending.js ***!
470 \*************************************************/
471/*! exports provided: default */
472/***/ (function(module, __webpack_exports__, __webpack_require__) {
473
474"use strict";
475__webpack_require__.r(__webpack_exports__);
476/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
477 return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
478});
479
480
481/***/ }),
482
483/***/ "./node_modules/d3-array/src/deviation.js":
484/*!************************************************!*\
485 !*** ./node_modules/d3-array/src/deviation.js ***!
486 \************************************************/
487/*! exports provided: default */
488/***/ (function(module, __webpack_exports__, __webpack_require__) {
489
490"use strict";
491__webpack_require__.r(__webpack_exports__);
492/* harmony import */ var _variance__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variance */ "./node_modules/d3-array/src/variance.js");
493
494
495/* harmony default export */ __webpack_exports__["default"] = (function(array, f) {
496 var v = Object(_variance__WEBPACK_IMPORTED_MODULE_0__["default"])(array, f);
497 return v ? Math.sqrt(v) : v;
498});
499
500
501/***/ }),
502
503/***/ "./node_modules/d3-array/src/extent.js":
504/*!*********************************************!*\
505 !*** ./node_modules/d3-array/src/extent.js ***!
506 \*********************************************/
507/*! exports provided: default */
508/***/ (function(module, __webpack_exports__, __webpack_require__) {
509
510"use strict";
511__webpack_require__.r(__webpack_exports__);
512/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
513 var n = values.length,
514 i = -1,
515 value,
516 min,
517 max;
518
519 if (valueof == null) {
520 while (++i < n) { // Find the first comparable value.
521 if ((value = values[i]) != null && value >= value) {
522 min = max = value;
523 while (++i < n) { // Compare the remaining values.
524 if ((value = values[i]) != null) {
525 if (min > value) min = value;
526 if (max < value) max = value;
527 }
528 }
529 }
530 }
531 }
532
533 else {
534 while (++i < n) { // Find the first comparable value.
535 if ((value = valueof(values[i], i, values)) != null && value >= value) {
536 min = max = value;
537 while (++i < n) { // Compare the remaining values.
538 if ((value = valueof(values[i], i, values)) != null) {
539 if (min > value) min = value;
540 if (max < value) max = value;
541 }
542 }
543 }
544 }
545 }
546
547 return [min, max];
548});
549
550
551/***/ }),
552
553/***/ "./node_modules/d3-array/src/histogram.js":
554/*!************************************************!*\
555 !*** ./node_modules/d3-array/src/histogram.js ***!
556 \************************************************/
557/*! exports provided: default */
558/***/ (function(module, __webpack_exports__, __webpack_require__) {
559
560"use strict";
561__webpack_require__.r(__webpack_exports__);
562/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-array/src/array.js");
563/* harmony import */ var _bisect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bisect */ "./node_modules/d3-array/src/bisect.js");
564/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-array/src/constant.js");
565/* harmony import */ var _extent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extent */ "./node_modules/d3-array/src/extent.js");
566/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-array/src/identity.js");
567/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./range */ "./node_modules/d3-array/src/range.js");
568/* harmony import */ var _ticks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ticks */ "./node_modules/d3-array/src/ticks.js");
569/* harmony import */ var _threshold_sturges__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./threshold/sturges */ "./node_modules/d3-array/src/threshold/sturges.js");
570
571
572
573
574
575
576
577
578
579/* harmony default export */ __webpack_exports__["default"] = (function() {
580 var value = _identity__WEBPACK_IMPORTED_MODULE_4__["default"],
581 domain = _extent__WEBPACK_IMPORTED_MODULE_3__["default"],
582 threshold = _threshold_sturges__WEBPACK_IMPORTED_MODULE_7__["default"];
583
584 function histogram(data) {
585 var i,
586 n = data.length,
587 x,
588 values = new Array(n);
589
590 for (i = 0; i < n; ++i) {
591 values[i] = value(data[i], i, data);
592 }
593
594 var xz = domain(values),
595 x0 = xz[0],
596 x1 = xz[1],
597 tz = threshold(values, x0, x1);
598
599 // Convert number of thresholds into uniform thresholds.
600 if (!Array.isArray(tz)) {
601 tz = Object(_ticks__WEBPACK_IMPORTED_MODULE_6__["tickStep"])(x0, x1, tz);
602 tz = Object(_range__WEBPACK_IMPORTED_MODULE_5__["default"])(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive
603 }
604
605 // Remove any thresholds outside the domain.
606 var m = tz.length;
607 while (tz[0] <= x0) tz.shift(), --m;
608 while (tz[m - 1] > x1) tz.pop(), --m;
609
610 var bins = new Array(m + 1),
611 bin;
612
613 // Initialize bins.
614 for (i = 0; i <= m; ++i) {
615 bin = bins[i] = [];
616 bin.x0 = i > 0 ? tz[i - 1] : x0;
617 bin.x1 = i < m ? tz[i] : x1;
618 }
619
620 // Assign data to bins by value, ignoring any outside the domain.
621 for (i = 0; i < n; ++i) {
622 x = values[i];
623 if (x0 <= x && x <= x1) {
624 bins[Object(_bisect__WEBPACK_IMPORTED_MODULE_1__["default"])(tz, x, 0, m)].push(data[i]);
625 }
626 }
627
628 return bins;
629 }
630
631 histogram.value = function(_) {
632 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(_), histogram) : value;
633 };
634
635 histogram.domain = function(_) {
636 return arguments.length ? (domain = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])([_[0], _[1]]), histogram) : domain;
637 };
638
639 histogram.thresholds = function(_) {
640 return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(_array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_)) : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(_), histogram) : threshold;
641 };
642
643 return histogram;
644});
645
646
647/***/ }),
648
649/***/ "./node_modules/d3-array/src/identity.js":
650/*!***********************************************!*\
651 !*** ./node_modules/d3-array/src/identity.js ***!
652 \***********************************************/
653/*! exports provided: default */
654/***/ (function(module, __webpack_exports__, __webpack_require__) {
655
656"use strict";
657__webpack_require__.r(__webpack_exports__);
658/* harmony default export */ __webpack_exports__["default"] = (function(x) {
659 return x;
660});
661
662
663/***/ }),
664
665/***/ "./node_modules/d3-array/src/index.js":
666/*!********************************************!*\
667 !*** ./node_modules/d3-array/src/index.js ***!
668 \********************************************/
669/*! exports provided: bisect, bisectRight, bisectLeft, ascending, bisector, cross, descending, deviation, extent, histogram, thresholdFreedmanDiaconis, thresholdScott, thresholdSturges, max, mean, median, merge, min, pairs, permute, quantile, range, scan, shuffle, sum, ticks, tickIncrement, tickStep, transpose, variance, zip */
670/***/ (function(module, __webpack_exports__, __webpack_require__) {
671
672"use strict";
673__webpack_require__.r(__webpack_exports__);
674/* harmony import */ var _bisect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bisect */ "./node_modules/d3-array/src/bisect.js");
675/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisect", function() { return _bisect__WEBPACK_IMPORTED_MODULE_0__["default"]; });
676
677/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return _bisect__WEBPACK_IMPORTED_MODULE_0__["bisectRight"]; });
678
679/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return _bisect__WEBPACK_IMPORTED_MODULE_0__["bisectLeft"]; });
680
681/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
682/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ascending", function() { return _ascending__WEBPACK_IMPORTED_MODULE_1__["default"]; });
683
684/* harmony import */ var _bisector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bisector */ "./node_modules/d3-array/src/bisector.js");
685/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisector", function() { return _bisector__WEBPACK_IMPORTED_MODULE_2__["default"]; });
686
687/* harmony import */ var _cross__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cross */ "./node_modules/d3-array/src/cross.js");
688/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cross", function() { return _cross__WEBPACK_IMPORTED_MODULE_3__["default"]; });
689
690/* harmony import */ var _descending__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./descending */ "./node_modules/d3-array/src/descending.js");
691/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "descending", function() { return _descending__WEBPACK_IMPORTED_MODULE_4__["default"]; });
692
693/* harmony import */ var _deviation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./deviation */ "./node_modules/d3-array/src/deviation.js");
694/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deviation", function() { return _deviation__WEBPACK_IMPORTED_MODULE_5__["default"]; });
695
696/* harmony import */ var _extent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./extent */ "./node_modules/d3-array/src/extent.js");
697/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extent", function() { return _extent__WEBPACK_IMPORTED_MODULE_6__["default"]; });
698
699/* harmony import */ var _histogram__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./histogram */ "./node_modules/d3-array/src/histogram.js");
700/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "histogram", function() { return _histogram__WEBPACK_IMPORTED_MODULE_7__["default"]; });
701
702/* harmony import */ var _threshold_freedmanDiaconis__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./threshold/freedmanDiaconis */ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js");
703/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdFreedmanDiaconis", function() { return _threshold_freedmanDiaconis__WEBPACK_IMPORTED_MODULE_8__["default"]; });
704
705/* harmony import */ var _threshold_scott__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./threshold/scott */ "./node_modules/d3-array/src/threshold/scott.js");
706/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdScott", function() { return _threshold_scott__WEBPACK_IMPORTED_MODULE_9__["default"]; });
707
708/* harmony import */ var _threshold_sturges__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./threshold/sturges */ "./node_modules/d3-array/src/threshold/sturges.js");
709/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdSturges", function() { return _threshold_sturges__WEBPACK_IMPORTED_MODULE_10__["default"]; });
710
711/* harmony import */ var _max__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./max */ "./node_modules/d3-array/src/max.js");
712/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _max__WEBPACK_IMPORTED_MODULE_11__["default"]; });
713
714/* harmony import */ var _mean__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./mean */ "./node_modules/d3-array/src/mean.js");
715/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mean", function() { return _mean__WEBPACK_IMPORTED_MODULE_12__["default"]; });
716
717/* harmony import */ var _median__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./median */ "./node_modules/d3-array/src/median.js");
718/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "median", function() { return _median__WEBPACK_IMPORTED_MODULE_13__["default"]; });
719
720/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./merge */ "./node_modules/d3-array/src/merge.js");
721/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _merge__WEBPACK_IMPORTED_MODULE_14__["default"]; });
722
723/* harmony import */ var _min__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./min */ "./node_modules/d3-array/src/min.js");
724/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _min__WEBPACK_IMPORTED_MODULE_15__["default"]; });
725
726/* harmony import */ var _pairs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./pairs */ "./node_modules/d3-array/src/pairs.js");
727/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return _pairs__WEBPACK_IMPORTED_MODULE_16__["default"]; });
728
729/* harmony import */ var _permute__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./permute */ "./node_modules/d3-array/src/permute.js");
730/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "permute", function() { return _permute__WEBPACK_IMPORTED_MODULE_17__["default"]; });
731
732/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./quantile */ "./node_modules/d3-array/src/quantile.js");
733/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantile", function() { return _quantile__WEBPACK_IMPORTED_MODULE_18__["default"]; });
734
735/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./range */ "./node_modules/d3-array/src/range.js");
736/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return _range__WEBPACK_IMPORTED_MODULE_19__["default"]; });
737
738/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./scan */ "./node_modules/d3-array/src/scan.js");
739/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _scan__WEBPACK_IMPORTED_MODULE_20__["default"]; });
740
741/* harmony import */ var _shuffle__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./shuffle */ "./node_modules/d3-array/src/shuffle.js");
742/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return _shuffle__WEBPACK_IMPORTED_MODULE_21__["default"]; });
743
744/* harmony import */ var _sum__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./sum */ "./node_modules/d3-array/src/sum.js");
745/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return _sum__WEBPACK_IMPORTED_MODULE_22__["default"]; });
746
747/* harmony import */ var _ticks__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./ticks */ "./node_modules/d3-array/src/ticks.js");
748/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ticks", function() { return _ticks__WEBPACK_IMPORTED_MODULE_23__["default"]; });
749
750/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return _ticks__WEBPACK_IMPORTED_MODULE_23__["tickIncrement"]; });
751
752/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return _ticks__WEBPACK_IMPORTED_MODULE_23__["tickStep"]; });
753
754/* harmony import */ var _transpose__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./transpose */ "./node_modules/d3-array/src/transpose.js");
755/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transpose", function() { return _transpose__WEBPACK_IMPORTED_MODULE_24__["default"]; });
756
757/* harmony import */ var _variance__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./variance */ "./node_modules/d3-array/src/variance.js");
758/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "variance", function() { return _variance__WEBPACK_IMPORTED_MODULE_25__["default"]; });
759
760/* harmony import */ var _zip__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./zip */ "./node_modules/d3-array/src/zip.js");
761/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _zip__WEBPACK_IMPORTED_MODULE_26__["default"]; });
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792/***/ }),
793
794/***/ "./node_modules/d3-array/src/max.js":
795/*!******************************************!*\
796 !*** ./node_modules/d3-array/src/max.js ***!
797 \******************************************/
798/*! exports provided: default */
799/***/ (function(module, __webpack_exports__, __webpack_require__) {
800
801"use strict";
802__webpack_require__.r(__webpack_exports__);
803/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
804 var n = values.length,
805 i = -1,
806 value,
807 max;
808
809 if (valueof == null) {
810 while (++i < n) { // Find the first comparable value.
811 if ((value = values[i]) != null && value >= value) {
812 max = value;
813 while (++i < n) { // Compare the remaining values.
814 if ((value = values[i]) != null && value > max) {
815 max = value;
816 }
817 }
818 }
819 }
820 }
821
822 else {
823 while (++i < n) { // Find the first comparable value.
824 if ((value = valueof(values[i], i, values)) != null && value >= value) {
825 max = value;
826 while (++i < n) { // Compare the remaining values.
827 if ((value = valueof(values[i], i, values)) != null && value > max) {
828 max = value;
829 }
830 }
831 }
832 }
833 }
834
835 return max;
836});
837
838
839/***/ }),
840
841/***/ "./node_modules/d3-array/src/mean.js":
842/*!*******************************************!*\
843 !*** ./node_modules/d3-array/src/mean.js ***!
844 \*******************************************/
845/*! exports provided: default */
846/***/ (function(module, __webpack_exports__, __webpack_require__) {
847
848"use strict";
849__webpack_require__.r(__webpack_exports__);
850/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
851
852
853/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
854 var n = values.length,
855 m = n,
856 i = -1,
857 value,
858 sum = 0;
859
860 if (valueof == null) {
861 while (++i < n) {
862 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(values[i]))) sum += value;
863 else --m;
864 }
865 }
866
867 else {
868 while (++i < n) {
869 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(valueof(values[i], i, values)))) sum += value;
870 else --m;
871 }
872 }
873
874 if (m) return sum / m;
875});
876
877
878/***/ }),
879
880/***/ "./node_modules/d3-array/src/median.js":
881/*!*********************************************!*\
882 !*** ./node_modules/d3-array/src/median.js ***!
883 \*********************************************/
884/*! exports provided: default */
885/***/ (function(module, __webpack_exports__, __webpack_require__) {
886
887"use strict";
888__webpack_require__.r(__webpack_exports__);
889/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
890/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
891/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./quantile */ "./node_modules/d3-array/src/quantile.js");
892
893
894
895
896/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
897 var n = values.length,
898 i = -1,
899 value,
900 numbers = [];
901
902 if (valueof == null) {
903 while (++i < n) {
904 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_1__["default"])(values[i]))) {
905 numbers.push(value);
906 }
907 }
908 }
909
910 else {
911 while (++i < n) {
912 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_1__["default"])(valueof(values[i], i, values)))) {
913 numbers.push(value);
914 }
915 }
916 }
917
918 return Object(_quantile__WEBPACK_IMPORTED_MODULE_2__["default"])(numbers.sort(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"]), 0.5);
919});
920
921
922/***/ }),
923
924/***/ "./node_modules/d3-array/src/merge.js":
925/*!********************************************!*\
926 !*** ./node_modules/d3-array/src/merge.js ***!
927 \********************************************/
928/*! exports provided: default */
929/***/ (function(module, __webpack_exports__, __webpack_require__) {
930
931"use strict";
932__webpack_require__.r(__webpack_exports__);
933/* harmony default export */ __webpack_exports__["default"] = (function(arrays) {
934 var n = arrays.length,
935 m,
936 i = -1,
937 j = 0,
938 merged,
939 array;
940
941 while (++i < n) j += arrays[i].length;
942 merged = new Array(j);
943
944 while (--n >= 0) {
945 array = arrays[n];
946 m = array.length;
947 while (--m >= 0) {
948 merged[--j] = array[m];
949 }
950 }
951
952 return merged;
953});
954
955
956/***/ }),
957
958/***/ "./node_modules/d3-array/src/min.js":
959/*!******************************************!*\
960 !*** ./node_modules/d3-array/src/min.js ***!
961 \******************************************/
962/*! exports provided: default */
963/***/ (function(module, __webpack_exports__, __webpack_require__) {
964
965"use strict";
966__webpack_require__.r(__webpack_exports__);
967/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
968 var n = values.length,
969 i = -1,
970 value,
971 min;
972
973 if (valueof == null) {
974 while (++i < n) { // Find the first comparable value.
975 if ((value = values[i]) != null && value >= value) {
976 min = value;
977 while (++i < n) { // Compare the remaining values.
978 if ((value = values[i]) != null && min > value) {
979 min = value;
980 }
981 }
982 }
983 }
984 }
985
986 else {
987 while (++i < n) { // Find the first comparable value.
988 if ((value = valueof(values[i], i, values)) != null && value >= value) {
989 min = value;
990 while (++i < n) { // Compare the remaining values.
991 if ((value = valueof(values[i], i, values)) != null && min > value) {
992 min = value;
993 }
994 }
995 }
996 }
997 }
998
999 return min;
1000});
1001
1002
1003/***/ }),
1004
1005/***/ "./node_modules/d3-array/src/number.js":
1006/*!*********************************************!*\
1007 !*** ./node_modules/d3-array/src/number.js ***!
1008 \*********************************************/
1009/*! exports provided: default */
1010/***/ (function(module, __webpack_exports__, __webpack_require__) {
1011
1012"use strict";
1013__webpack_require__.r(__webpack_exports__);
1014/* harmony default export */ __webpack_exports__["default"] = (function(x) {
1015 return x === null ? NaN : +x;
1016});
1017
1018
1019/***/ }),
1020
1021/***/ "./node_modules/d3-array/src/pairs.js":
1022/*!********************************************!*\
1023 !*** ./node_modules/d3-array/src/pairs.js ***!
1024 \********************************************/
1025/*! exports provided: default, pair */
1026/***/ (function(module, __webpack_exports__, __webpack_require__) {
1027
1028"use strict";
1029__webpack_require__.r(__webpack_exports__);
1030/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pair", function() { return pair; });
1031/* harmony default export */ __webpack_exports__["default"] = (function(array, f) {
1032 if (f == null) f = pair;
1033 var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
1034 while (i < n) pairs[i] = f(p, p = array[++i]);
1035 return pairs;
1036});
1037
1038function pair(a, b) {
1039 return [a, b];
1040}
1041
1042
1043/***/ }),
1044
1045/***/ "./node_modules/d3-array/src/permute.js":
1046/*!**********************************************!*\
1047 !*** ./node_modules/d3-array/src/permute.js ***!
1048 \**********************************************/
1049/*! exports provided: default */
1050/***/ (function(module, __webpack_exports__, __webpack_require__) {
1051
1052"use strict";
1053__webpack_require__.r(__webpack_exports__);
1054/* harmony default export */ __webpack_exports__["default"] = (function(array, indexes) {
1055 var i = indexes.length, permutes = new Array(i);
1056 while (i--) permutes[i] = array[indexes[i]];
1057 return permutes;
1058});
1059
1060
1061/***/ }),
1062
1063/***/ "./node_modules/d3-array/src/quantile.js":
1064/*!***********************************************!*\
1065 !*** ./node_modules/d3-array/src/quantile.js ***!
1066 \***********************************************/
1067/*! exports provided: default */
1068/***/ (function(module, __webpack_exports__, __webpack_require__) {
1069
1070"use strict";
1071__webpack_require__.r(__webpack_exports__);
1072/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
1073
1074
1075/* harmony default export */ __webpack_exports__["default"] = (function(values, p, valueof) {
1076 if (valueof == null) valueof = _number__WEBPACK_IMPORTED_MODULE_0__["default"];
1077 if (!(n = values.length)) return;
1078 if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
1079 if (p >= 1) return +valueof(values[n - 1], n - 1, values);
1080 var n,
1081 i = (n - 1) * p,
1082 i0 = Math.floor(i),
1083 value0 = +valueof(values[i0], i0, values),
1084 value1 = +valueof(values[i0 + 1], i0 + 1, values);
1085 return value0 + (value1 - value0) * (i - i0);
1086});
1087
1088
1089/***/ }),
1090
1091/***/ "./node_modules/d3-array/src/range.js":
1092/*!********************************************!*\
1093 !*** ./node_modules/d3-array/src/range.js ***!
1094 \********************************************/
1095/*! exports provided: default */
1096/***/ (function(module, __webpack_exports__, __webpack_require__) {
1097
1098"use strict";
1099__webpack_require__.r(__webpack_exports__);
1100/* harmony default export */ __webpack_exports__["default"] = (function(start, stop, step) {
1101 start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
1102
1103 var i = -1,
1104 n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
1105 range = new Array(n);
1106
1107 while (++i < n) {
1108 range[i] = start + i * step;
1109 }
1110
1111 return range;
1112});
1113
1114
1115/***/ }),
1116
1117/***/ "./node_modules/d3-array/src/scan.js":
1118/*!*******************************************!*\
1119 !*** ./node_modules/d3-array/src/scan.js ***!
1120 \*******************************************/
1121/*! exports provided: default */
1122/***/ (function(module, __webpack_exports__, __webpack_require__) {
1123
1124"use strict";
1125__webpack_require__.r(__webpack_exports__);
1126/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
1127
1128
1129/* harmony default export */ __webpack_exports__["default"] = (function(values, compare) {
1130 if (!(n = values.length)) return;
1131 var n,
1132 i = 0,
1133 j = 0,
1134 xi,
1135 xj = values[j];
1136
1137 if (compare == null) compare = _ascending__WEBPACK_IMPORTED_MODULE_0__["default"];
1138
1139 while (++i < n) {
1140 if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
1141 xj = xi, j = i;
1142 }
1143 }
1144
1145 if (compare(xj, xj) === 0) return j;
1146});
1147
1148
1149/***/ }),
1150
1151/***/ "./node_modules/d3-array/src/shuffle.js":
1152/*!**********************************************!*\
1153 !*** ./node_modules/d3-array/src/shuffle.js ***!
1154 \**********************************************/
1155/*! exports provided: default */
1156/***/ (function(module, __webpack_exports__, __webpack_require__) {
1157
1158"use strict";
1159__webpack_require__.r(__webpack_exports__);
1160/* harmony default export */ __webpack_exports__["default"] = (function(array, i0, i1) {
1161 var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
1162 t,
1163 i;
1164
1165 while (m) {
1166 i = Math.random() * m-- | 0;
1167 t = array[m + i0];
1168 array[m + i0] = array[i + i0];
1169 array[i + i0] = t;
1170 }
1171
1172 return array;
1173});
1174
1175
1176/***/ }),
1177
1178/***/ "./node_modules/d3-array/src/sum.js":
1179/*!******************************************!*\
1180 !*** ./node_modules/d3-array/src/sum.js ***!
1181 \******************************************/
1182/*! exports provided: default */
1183/***/ (function(module, __webpack_exports__, __webpack_require__) {
1184
1185"use strict";
1186__webpack_require__.r(__webpack_exports__);
1187/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
1188 var n = values.length,
1189 i = -1,
1190 value,
1191 sum = 0;
1192
1193 if (valueof == null) {
1194 while (++i < n) {
1195 if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
1196 }
1197 }
1198
1199 else {
1200 while (++i < n) {
1201 if (value = +valueof(values[i], i, values)) sum += value;
1202 }
1203 }
1204
1205 return sum;
1206});
1207
1208
1209/***/ }),
1210
1211/***/ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js":
1212/*!*****************************************************************!*\
1213 !*** ./node_modules/d3-array/src/threshold/freedmanDiaconis.js ***!
1214 \*****************************************************************/
1215/*! exports provided: default */
1216/***/ (function(module, __webpack_exports__, __webpack_require__) {
1217
1218"use strict";
1219__webpack_require__.r(__webpack_exports__);
1220/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array */ "./node_modules/d3-array/src/array.js");
1221/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ascending */ "./node_modules/d3-array/src/ascending.js");
1222/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../number */ "./node_modules/d3-array/src/number.js");
1223/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../quantile */ "./node_modules/d3-array/src/quantile.js");
1224
1225
1226
1227
1228
1229/* harmony default export */ __webpack_exports__["default"] = (function(values, min, max) {
1230 values = _array__WEBPACK_IMPORTED_MODULE_0__["map"].call(values, _number__WEBPACK_IMPORTED_MODULE_2__["default"]).sort(_ascending__WEBPACK_IMPORTED_MODULE_1__["default"]);
1231 return Math.ceil((max - min) / (2 * (Object(_quantile__WEBPACK_IMPORTED_MODULE_3__["default"])(values, 0.75) - Object(_quantile__WEBPACK_IMPORTED_MODULE_3__["default"])(values, 0.25)) * Math.pow(values.length, -1 / 3)));
1232});
1233
1234
1235/***/ }),
1236
1237/***/ "./node_modules/d3-array/src/threshold/scott.js":
1238/*!******************************************************!*\
1239 !*** ./node_modules/d3-array/src/threshold/scott.js ***!
1240 \******************************************************/
1241/*! exports provided: default */
1242/***/ (function(module, __webpack_exports__, __webpack_require__) {
1243
1244"use strict";
1245__webpack_require__.r(__webpack_exports__);
1246/* harmony import */ var _deviation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../deviation */ "./node_modules/d3-array/src/deviation.js");
1247
1248
1249/* harmony default export */ __webpack_exports__["default"] = (function(values, min, max) {
1250 return Math.ceil((max - min) / (3.5 * Object(_deviation__WEBPACK_IMPORTED_MODULE_0__["default"])(values) * Math.pow(values.length, -1 / 3)));
1251});
1252
1253
1254/***/ }),
1255
1256/***/ "./node_modules/d3-array/src/threshold/sturges.js":
1257/*!********************************************************!*\
1258 !*** ./node_modules/d3-array/src/threshold/sturges.js ***!
1259 \********************************************************/
1260/*! exports provided: default */
1261/***/ (function(module, __webpack_exports__, __webpack_require__) {
1262
1263"use strict";
1264__webpack_require__.r(__webpack_exports__);
1265/* harmony default export */ __webpack_exports__["default"] = (function(values) {
1266 return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
1267});
1268
1269
1270/***/ }),
1271
1272/***/ "./node_modules/d3-array/src/ticks.js":
1273/*!********************************************!*\
1274 !*** ./node_modules/d3-array/src/ticks.js ***!
1275 \********************************************/
1276/*! exports provided: default, tickIncrement, tickStep */
1277/***/ (function(module, __webpack_exports__, __webpack_require__) {
1278
1279"use strict";
1280__webpack_require__.r(__webpack_exports__);
1281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return tickIncrement; });
1282/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return tickStep; });
1283var e10 = Math.sqrt(50),
1284 e5 = Math.sqrt(10),
1285 e2 = Math.sqrt(2);
1286
1287/* harmony default export */ __webpack_exports__["default"] = (function(start, stop, count) {
1288 var reverse,
1289 i = -1,
1290 n,
1291 ticks,
1292 step;
1293
1294 stop = +stop, start = +start, count = +count;
1295 if (start === stop && count > 0) return [start];
1296 if (reverse = stop < start) n = start, start = stop, stop = n;
1297 if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
1298
1299 if (step > 0) {
1300 start = Math.ceil(start / step);
1301 stop = Math.floor(stop / step);
1302 ticks = new Array(n = Math.ceil(stop - start + 1));
1303 while (++i < n) ticks[i] = (start + i) * step;
1304 } else {
1305 start = Math.floor(start * step);
1306 stop = Math.ceil(stop * step);
1307 ticks = new Array(n = Math.ceil(start - stop + 1));
1308 while (++i < n) ticks[i] = (start - i) / step;
1309 }
1310
1311 if (reverse) ticks.reverse();
1312
1313 return ticks;
1314});
1315
1316function tickIncrement(start, stop, count) {
1317 var step = (stop - start) / Math.max(0, count),
1318 power = Math.floor(Math.log(step) / Math.LN10),
1319 error = step / Math.pow(10, power);
1320 return power >= 0
1321 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
1322 : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
1323}
1324
1325function tickStep(start, stop, count) {
1326 var step0 = Math.abs(stop - start) / Math.max(0, count),
1327 step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
1328 error = step0 / step1;
1329 if (error >= e10) step1 *= 10;
1330 else if (error >= e5) step1 *= 5;
1331 else if (error >= e2) step1 *= 2;
1332 return stop < start ? -step1 : step1;
1333}
1334
1335
1336/***/ }),
1337
1338/***/ "./node_modules/d3-array/src/transpose.js":
1339/*!************************************************!*\
1340 !*** ./node_modules/d3-array/src/transpose.js ***!
1341 \************************************************/
1342/*! exports provided: default */
1343/***/ (function(module, __webpack_exports__, __webpack_require__) {
1344
1345"use strict";
1346__webpack_require__.r(__webpack_exports__);
1347/* harmony import */ var _min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./min */ "./node_modules/d3-array/src/min.js");
1348
1349
1350/* harmony default export */ __webpack_exports__["default"] = (function(matrix) {
1351 if (!(n = matrix.length)) return [];
1352 for (var i = -1, m = Object(_min__WEBPACK_IMPORTED_MODULE_0__["default"])(matrix, length), transpose = new Array(m); ++i < m;) {
1353 for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
1354 row[j] = matrix[j][i];
1355 }
1356 }
1357 return transpose;
1358});
1359
1360function length(d) {
1361 return d.length;
1362}
1363
1364
1365/***/ }),
1366
1367/***/ "./node_modules/d3-array/src/variance.js":
1368/*!***********************************************!*\
1369 !*** ./node_modules/d3-array/src/variance.js ***!
1370 \***********************************************/
1371/*! exports provided: default */
1372/***/ (function(module, __webpack_exports__, __webpack_require__) {
1373
1374"use strict";
1375__webpack_require__.r(__webpack_exports__);
1376/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
1377
1378
1379/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
1380 var n = values.length,
1381 m = 0,
1382 i = -1,
1383 mean = 0,
1384 value,
1385 delta,
1386 sum = 0;
1387
1388 if (valueof == null) {
1389 while (++i < n) {
1390 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(values[i]))) {
1391 delta = value - mean;
1392 mean += delta / ++m;
1393 sum += delta * (value - mean);
1394 }
1395 }
1396 }
1397
1398 else {
1399 while (++i < n) {
1400 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(valueof(values[i], i, values)))) {
1401 delta = value - mean;
1402 mean += delta / ++m;
1403 sum += delta * (value - mean);
1404 }
1405 }
1406 }
1407
1408 if (m > 1) return sum / (m - 1);
1409});
1410
1411
1412/***/ }),
1413
1414/***/ "./node_modules/d3-array/src/zip.js":
1415/*!******************************************!*\
1416 !*** ./node_modules/d3-array/src/zip.js ***!
1417 \******************************************/
1418/*! exports provided: default */
1419/***/ (function(module, __webpack_exports__, __webpack_require__) {
1420
1421"use strict";
1422__webpack_require__.r(__webpack_exports__);
1423/* harmony import */ var _transpose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transpose */ "./node_modules/d3-array/src/transpose.js");
1424
1425
1426/* harmony default export */ __webpack_exports__["default"] = (function() {
1427 return Object(_transpose__WEBPACK_IMPORTED_MODULE_0__["default"])(arguments);
1428});
1429
1430
1431/***/ }),
1432
1433/***/ "./node_modules/d3-axis/src/array.js":
1434/*!*******************************************!*\
1435 !*** ./node_modules/d3-axis/src/array.js ***!
1436 \*******************************************/
1437/*! exports provided: slice */
1438/***/ (function(module, __webpack_exports__, __webpack_require__) {
1439
1440"use strict";
1441__webpack_require__.r(__webpack_exports__);
1442/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
1443var slice = Array.prototype.slice;
1444
1445
1446/***/ }),
1447
1448/***/ "./node_modules/d3-axis/src/axis.js":
1449/*!******************************************!*\
1450 !*** ./node_modules/d3-axis/src/axis.js ***!
1451 \******************************************/
1452/*! exports provided: axisTop, axisRight, axisBottom, axisLeft */
1453/***/ (function(module, __webpack_exports__, __webpack_require__) {
1454
1455"use strict";
1456__webpack_require__.r(__webpack_exports__);
1457/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return axisTop; });
1458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return axisRight; });
1459/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return axisBottom; });
1460/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return axisLeft; });
1461/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-axis/src/array.js");
1462/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-axis/src/identity.js");
1463
1464
1465
1466var top = 1,
1467 right = 2,
1468 bottom = 3,
1469 left = 4,
1470 epsilon = 1e-6;
1471
1472function translateX(x) {
1473 return "translate(" + (x + 0.5) + ",0)";
1474}
1475
1476function translateY(y) {
1477 return "translate(0," + (y + 0.5) + ")";
1478}
1479
1480function number(scale) {
1481 return function(d) {
1482 return +scale(d);
1483 };
1484}
1485
1486function center(scale) {
1487 var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.
1488 if (scale.round()) offset = Math.round(offset);
1489 return function(d) {
1490 return +scale(d) + offset;
1491 };
1492}
1493
1494function entering() {
1495 return !this.__axis;
1496}
1497
1498function axis(orient, scale) {
1499 var tickArguments = [],
1500 tickValues = null,
1501 tickFormat = null,
1502 tickSizeInner = 6,
1503 tickSizeOuter = 6,
1504 tickPadding = 3,
1505 k = orient === top || orient === left ? -1 : 1,
1506 x = orient === left || orient === right ? "x" : "y",
1507 transform = orient === top || orient === bottom ? translateX : translateY;
1508
1509 function axis(context) {
1510 var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
1511 format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : _identity__WEBPACK_IMPORTED_MODULE_1__["default"]) : tickFormat,
1512 spacing = Math.max(tickSizeInner, 0) + tickPadding,
1513 range = scale.range(),
1514 range0 = +range[0] + 0.5,
1515 range1 = +range[range.length - 1] + 0.5,
1516 position = (scale.bandwidth ? center : number)(scale.copy()),
1517 selection = context.selection ? context.selection() : context,
1518 path = selection.selectAll(".domain").data([null]),
1519 tick = selection.selectAll(".tick").data(values, scale).order(),
1520 tickExit = tick.exit(),
1521 tickEnter = tick.enter().append("g").attr("class", "tick"),
1522 line = tick.select("line"),
1523 text = tick.select("text");
1524
1525 path = path.merge(path.enter().insert("path", ".tick")
1526 .attr("class", "domain")
1527 .attr("stroke", "currentColor"));
1528
1529 tick = tick.merge(tickEnter);
1530
1531 line = line.merge(tickEnter.append("line")
1532 .attr("stroke", "currentColor")
1533 .attr(x + "2", k * tickSizeInner));
1534
1535 text = text.merge(tickEnter.append("text")
1536 .attr("fill", "currentColor")
1537 .attr(x, k * spacing)
1538 .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
1539
1540 if (context !== selection) {
1541 path = path.transition(context);
1542 tick = tick.transition(context);
1543 line = line.transition(context);
1544 text = text.transition(context);
1545
1546 tickExit = tickExit.transition(context)
1547 .attr("opacity", epsilon)
1548 .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute("transform"); });
1549
1550 tickEnter
1551 .attr("opacity", epsilon)
1552 .attr("transform", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });
1553 }
1554
1555 tickExit.remove();
1556
1557 path
1558 .attr("d", orient === left || orient == right
1559 ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H0.5V" + range1 + "H" + k * tickSizeOuter : "M0.5," + range0 + "V" + range1)
1560 : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V0.5H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + ",0.5H" + range1));
1561
1562 tick
1563 .attr("opacity", 1)
1564 .attr("transform", function(d) { return transform(position(d)); });
1565
1566 line
1567 .attr(x + "2", k * tickSizeInner);
1568
1569 text
1570 .attr(x, k * spacing)
1571 .text(format);
1572
1573 selection.filter(entering)
1574 .attr("fill", "none")
1575 .attr("font-size", 10)
1576 .attr("font-family", "sans-serif")
1577 .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
1578
1579 selection
1580 .each(function() { this.__axis = position; });
1581 }
1582
1583 axis.scale = function(_) {
1584 return arguments.length ? (scale = _, axis) : scale;
1585 };
1586
1587 axis.ticks = function() {
1588 return tickArguments = _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(arguments), axis;
1589 };
1590
1591 axis.tickArguments = function(_) {
1592 return arguments.length ? (tickArguments = _ == null ? [] : _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_), axis) : tickArguments.slice();
1593 };
1594
1595 axis.tickValues = function(_) {
1596 return arguments.length ? (tickValues = _ == null ? null : _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_), axis) : tickValues && tickValues.slice();
1597 };
1598
1599 axis.tickFormat = function(_) {
1600 return arguments.length ? (tickFormat = _, axis) : tickFormat;
1601 };
1602
1603 axis.tickSize = function(_) {
1604 return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
1605 };
1606
1607 axis.tickSizeInner = function(_) {
1608 return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
1609 };
1610
1611 axis.tickSizeOuter = function(_) {
1612 return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
1613 };
1614
1615 axis.tickPadding = function(_) {
1616 return arguments.length ? (tickPadding = +_, axis) : tickPadding;
1617 };
1618
1619 return axis;
1620}
1621
1622function axisTop(scale) {
1623 return axis(top, scale);
1624}
1625
1626function axisRight(scale) {
1627 return axis(right, scale);
1628}
1629
1630function axisBottom(scale) {
1631 return axis(bottom, scale);
1632}
1633
1634function axisLeft(scale) {
1635 return axis(left, scale);
1636}
1637
1638
1639/***/ }),
1640
1641/***/ "./node_modules/d3-axis/src/identity.js":
1642/*!**********************************************!*\
1643 !*** ./node_modules/d3-axis/src/identity.js ***!
1644 \**********************************************/
1645/*! exports provided: default */
1646/***/ (function(module, __webpack_exports__, __webpack_require__) {
1647
1648"use strict";
1649__webpack_require__.r(__webpack_exports__);
1650/* harmony default export */ __webpack_exports__["default"] = (function(x) {
1651 return x;
1652});
1653
1654
1655/***/ }),
1656
1657/***/ "./node_modules/d3-axis/src/index.js":
1658/*!*******************************************!*\
1659 !*** ./node_modules/d3-axis/src/index.js ***!
1660 \*******************************************/
1661/*! exports provided: axisTop, axisRight, axisBottom, axisLeft */
1662/***/ (function(module, __webpack_exports__, __webpack_require__) {
1663
1664"use strict";
1665__webpack_require__.r(__webpack_exports__);
1666/* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./axis */ "./node_modules/d3-axis/src/axis.js");
1667/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return _axis__WEBPACK_IMPORTED_MODULE_0__["axisTop"]; });
1668
1669/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return _axis__WEBPACK_IMPORTED_MODULE_0__["axisRight"]; });
1670
1671/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return _axis__WEBPACK_IMPORTED_MODULE_0__["axisBottom"]; });
1672
1673/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return _axis__WEBPACK_IMPORTED_MODULE_0__["axisLeft"]; });
1674
1675
1676
1677
1678/***/ }),
1679
1680/***/ "./node_modules/d3-brush/src/brush.js":
1681/*!********************************************!*\
1682 !*** ./node_modules/d3-brush/src/brush.js ***!
1683 \********************************************/
1684/*! exports provided: brushSelection, brushX, brushY, default */
1685/***/ (function(module, __webpack_exports__, __webpack_require__) {
1686
1687"use strict";
1688__webpack_require__.r(__webpack_exports__);
1689/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return brushSelection; });
1690/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return brushX; });
1691/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return brushY; });
1692/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
1693/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/index.js");
1694/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
1695/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
1696/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
1697/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-brush/src/constant.js");
1698/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./event */ "./node_modules/d3-brush/src/event.js");
1699/* harmony import */ var _noevent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./noevent */ "./node_modules/d3-brush/src/noevent.js");
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709var MODE_DRAG = {name: "drag"},
1710 MODE_SPACE = {name: "space"},
1711 MODE_HANDLE = {name: "handle"},
1712 MODE_CENTER = {name: "center"};
1713
1714var X = {
1715 name: "x",
1716 handles: ["e", "w"].map(type),
1717 input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; },
1718 output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
1719};
1720
1721var Y = {
1722 name: "y",
1723 handles: ["n", "s"].map(type),
1724 input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; },
1725 output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
1726};
1727
1728var XY = {
1729 name: "xy",
1730 handles: ["n", "e", "s", "w", "nw", "ne", "se", "sw"].map(type),
1731 input: function(xy) { return xy; },
1732 output: function(xy) { return xy; }
1733};
1734
1735var cursors = {
1736 overlay: "crosshair",
1737 selection: "move",
1738 n: "ns-resize",
1739 e: "ew-resize",
1740 s: "ns-resize",
1741 w: "ew-resize",
1742 nw: "nwse-resize",
1743 ne: "nesw-resize",
1744 se: "nwse-resize",
1745 sw: "nesw-resize"
1746};
1747
1748var flipX = {
1749 e: "w",
1750 w: "e",
1751 nw: "ne",
1752 ne: "nw",
1753 se: "sw",
1754 sw: "se"
1755};
1756
1757var flipY = {
1758 n: "s",
1759 s: "n",
1760 nw: "sw",
1761 ne: "se",
1762 se: "ne",
1763 sw: "nw"
1764};
1765
1766var signsX = {
1767 overlay: +1,
1768 selection: +1,
1769 n: null,
1770 e: +1,
1771 s: null,
1772 w: -1,
1773 nw: -1,
1774 ne: +1,
1775 se: +1,
1776 sw: -1
1777};
1778
1779var signsY = {
1780 overlay: +1,
1781 selection: +1,
1782 n: -1,
1783 e: null,
1784 s: +1,
1785 w: null,
1786 nw: -1,
1787 ne: -1,
1788 se: +1,
1789 sw: +1
1790};
1791
1792function type(t) {
1793 return {type: t};
1794}
1795
1796// Ignore right-click, since that should open the context menu.
1797function defaultFilter() {
1798 return !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].button;
1799}
1800
1801function defaultExtent() {
1802 var svg = this.ownerSVGElement || this;
1803 return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
1804}
1805
1806// Like d3.local, but with the name “__brush” rather than auto-generated.
1807function local(node) {
1808 while (!node.__brush) if (!(node = node.parentNode)) return;
1809 return node.__brush;
1810}
1811
1812function empty(extent) {
1813 return extent[0][0] === extent[1][0]
1814 || extent[0][1] === extent[1][1];
1815}
1816
1817function brushSelection(node) {
1818 var state = node.__brush;
1819 return state ? state.dim.output(state.selection) : null;
1820}
1821
1822function brushX() {
1823 return brush(X);
1824}
1825
1826function brushY() {
1827 return brush(Y);
1828}
1829
1830/* harmony default export */ __webpack_exports__["default"] = (function() {
1831 return brush(XY);
1832});
1833
1834function brush(dim) {
1835 var extent = defaultExtent,
1836 filter = defaultFilter,
1837 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])(brush, "start", "brush", "end"),
1838 handleSize = 6,
1839 touchending;
1840
1841 function brush(group) {
1842 var overlay = group
1843 .property("__brush", initialize)
1844 .selectAll(".overlay")
1845 .data([type("overlay")]);
1846
1847 overlay.enter().append("rect")
1848 .attr("class", "overlay")
1849 .attr("pointer-events", "all")
1850 .attr("cursor", cursors.overlay)
1851 .merge(overlay)
1852 .each(function() {
1853 var extent = local(this).extent;
1854 Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this)
1855 .attr("x", extent[0][0])
1856 .attr("y", extent[0][1])
1857 .attr("width", extent[1][0] - extent[0][0])
1858 .attr("height", extent[1][1] - extent[0][1]);
1859 });
1860
1861 group.selectAll(".selection")
1862 .data([type("selection")])
1863 .enter().append("rect")
1864 .attr("class", "selection")
1865 .attr("cursor", cursors.selection)
1866 .attr("fill", "#777")
1867 .attr("fill-opacity", 0.3)
1868 .attr("stroke", "#fff")
1869 .attr("shape-rendering", "crispEdges");
1870
1871 var handle = group.selectAll(".handle")
1872 .data(dim.handles, function(d) { return d.type; });
1873
1874 handle.exit().remove();
1875
1876 handle.enter().append("rect")
1877 .attr("class", function(d) { return "handle handle--" + d.type; })
1878 .attr("cursor", function(d) { return cursors[d.type]; });
1879
1880 group
1881 .each(redraw)
1882 .attr("fill", "none")
1883 .attr("pointer-events", "all")
1884 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)")
1885 .on("mousedown.brush touchstart.brush", started);
1886 }
1887
1888 brush.move = function(group, selection) {
1889 if (group.selection) {
1890 group
1891 .on("start.brush", function() { emitter(this, arguments).beforestart().start(); })
1892 .on("interrupt.brush end.brush", function() { emitter(this, arguments).end(); })
1893 .tween("brush", function() {
1894 var that = this,
1895 state = that.__brush,
1896 emit = emitter(that, arguments),
1897 selection0 = state.selection,
1898 selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
1899 i = Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["interpolate"])(selection0, selection1);
1900
1901 function tween(t) {
1902 state.selection = t === 1 && empty(selection1) ? null : i(t);
1903 redraw.call(that);
1904 emit.brush();
1905 }
1906
1907 return selection0 && selection1 ? tween : tween(1);
1908 });
1909 } else {
1910 group
1911 .each(function() {
1912 var that = this,
1913 args = arguments,
1914 state = that.__brush,
1915 selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
1916 emit = emitter(that, args).beforestart();
1917
1918 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(that);
1919 state.selection = selection1 == null || empty(selection1) ? null : selection1;
1920 redraw.call(that);
1921 emit.start().brush().end();
1922 });
1923 }
1924 };
1925
1926 function redraw() {
1927 var group = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this),
1928 selection = local(this).selection;
1929
1930 if (selection) {
1931 group.selectAll(".selection")
1932 .style("display", null)
1933 .attr("x", selection[0][0])
1934 .attr("y", selection[0][1])
1935 .attr("width", selection[1][0] - selection[0][0])
1936 .attr("height", selection[1][1] - selection[0][1]);
1937
1938 group.selectAll(".handle")
1939 .style("display", null)
1940 .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
1941 .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
1942 .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
1943 .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
1944 }
1945
1946 else {
1947 group.selectAll(".selection,.handle")
1948 .style("display", "none")
1949 .attr("x", null)
1950 .attr("y", null)
1951 .attr("width", null)
1952 .attr("height", null);
1953 }
1954 }
1955
1956 function emitter(that, args) {
1957 return that.__brush.emitter || new Emitter(that, args);
1958 }
1959
1960 function Emitter(that, args) {
1961 this.that = that;
1962 this.args = args;
1963 this.state = that.__brush;
1964 this.active = 0;
1965 }
1966
1967 Emitter.prototype = {
1968 beforestart: function() {
1969 if (++this.active === 1) this.state.emitter = this, this.starting = true;
1970 return this;
1971 },
1972 start: function() {
1973 if (this.starting) this.starting = false, this.emit("start");
1974 return this;
1975 },
1976 brush: function() {
1977 this.emit("brush");
1978 return this;
1979 },
1980 end: function() {
1981 if (--this.active === 0) delete this.state.emitter, this.emit("end");
1982 return this;
1983 },
1984 emit: function(type) {
1985 Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["customEvent"])(new _event__WEBPACK_IMPORTED_MODULE_6__["default"](brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);
1986 }
1987 };
1988
1989 function started() {
1990 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches) { if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches.length < d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches.length) return Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["default"])(); }
1991 else if (touchending) return;
1992 if (!filter.apply(this, arguments)) return;
1993
1994 var that = this,
1995 type = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].target.__data__.type,
1996 mode = (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].altKey ? MODE_CENTER : MODE_HANDLE),
1997 signX = dim === Y ? null : signsX[type],
1998 signY = dim === X ? null : signsY[type],
1999 state = local(that),
2000 extent = state.extent,
2001 selection = state.selection,
2002 W = extent[0][0], w0, w1,
2003 N = extent[0][1], n0, n1,
2004 E = extent[1][0], e0, e1,
2005 S = extent[1][1], s0, s1,
2006 dx,
2007 dy,
2008 moving,
2009 shifting = signX && signY && d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].shiftKey,
2010 lockX,
2011 lockY,
2012 point0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(that),
2013 point = point0,
2014 emit = emitter(that, arguments).beforestart();
2015
2016 if (type === "overlay") {
2017 state.selection = selection = [
2018 [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],
2019 [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]
2020 ];
2021 } else {
2022 w0 = selection[0][0];
2023 n0 = selection[0][1];
2024 e0 = selection[1][0];
2025 s0 = selection[1][1];
2026 }
2027
2028 w1 = w0;
2029 n1 = n0;
2030 e1 = e0;
2031 s1 = s0;
2032
2033 var group = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(that)
2034 .attr("pointer-events", "none");
2035
2036 var overlay = group.selectAll(".overlay")
2037 .attr("cursor", cursors[type]);
2038
2039 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches) {
2040 group
2041 .on("touchmove.brush", moved, true)
2042 .on("touchend.brush touchcancel.brush", ended, true);
2043 } else {
2044 var view = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view)
2045 .on("keydown.brush", keydowned, true)
2046 .on("keyup.brush", keyupped, true)
2047 .on("mousemove.brush", moved, true)
2048 .on("mouseup.brush", ended, true);
2049
2050 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragDisable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view);
2051 }
2052
2053 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["nopropagation"])();
2054 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(that);
2055 redraw.call(that);
2056 emit.start();
2057
2058 function moved() {
2059 var point1 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(that);
2060 if (shifting && !lockX && !lockY) {
2061 if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;
2062 else lockX = true;
2063 }
2064 point = point1;
2065 moving = true;
2066 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["default"])();
2067 move();
2068 }
2069
2070 function move() {
2071 var t;
2072
2073 dx = point[0] - point0[0];
2074 dy = point[1] - point0[1];
2075
2076 switch (mode) {
2077 case MODE_SPACE:
2078 case MODE_DRAG: {
2079 if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
2080 if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
2081 break;
2082 }
2083 case MODE_HANDLE: {
2084 if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;
2085 else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;
2086 if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;
2087 else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;
2088 break;
2089 }
2090 case MODE_CENTER: {
2091 if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));
2092 if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));
2093 break;
2094 }
2095 }
2096
2097 if (e1 < w1) {
2098 signX *= -1;
2099 t = w0, w0 = e0, e0 = t;
2100 t = w1, w1 = e1, e1 = t;
2101 if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
2102 }
2103
2104 if (s1 < n1) {
2105 signY *= -1;
2106 t = n0, n0 = s0, s0 = t;
2107 t = n1, n1 = s1, s1 = t;
2108 if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
2109 }
2110
2111 if (state.selection) selection = state.selection; // May be set by brush.move!
2112 if (lockX) w1 = selection[0][0], e1 = selection[1][0];
2113 if (lockY) n1 = selection[0][1], s1 = selection[1][1];
2114
2115 if (selection[0][0] !== w1
2116 || selection[0][1] !== n1
2117 || selection[1][0] !== e1
2118 || selection[1][1] !== s1) {
2119 state.selection = [[w1, n1], [e1, s1]];
2120 redraw.call(that);
2121 emit.brush();
2122 }
2123 }
2124
2125 function ended() {
2126 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["nopropagation"])();
2127 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches) {
2128 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches.length) return;
2129 if (touchending) clearTimeout(touchending);
2130 touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
2131 group.on("touchmove.brush touchend.brush touchcancel.brush", null);
2132 } else {
2133 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragEnable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view, moving);
2134 view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
2135 }
2136 group.attr("pointer-events", "all");
2137 overlay.attr("cursor", cursors.overlay);
2138 if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
2139 if (empty(selection)) state.selection = null, redraw.call(that);
2140 emit.end();
2141 }
2142
2143 function keydowned() {
2144 switch (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].keyCode) {
2145 case 16: { // SHIFT
2146 shifting = signX && signY;
2147 break;
2148 }
2149 case 18: { // ALT
2150 if (mode === MODE_HANDLE) {
2151 if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
2152 if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
2153 mode = MODE_CENTER;
2154 move();
2155 }
2156 break;
2157 }
2158 case 32: { // SPACE; takes priority over ALT
2159 if (mode === MODE_HANDLE || mode === MODE_CENTER) {
2160 if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
2161 if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
2162 mode = MODE_SPACE;
2163 overlay.attr("cursor", cursors.selection);
2164 move();
2165 }
2166 break;
2167 }
2168 default: return;
2169 }
2170 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["default"])();
2171 }
2172
2173 function keyupped() {
2174 switch (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].keyCode) {
2175 case 16: { // SHIFT
2176 if (shifting) {
2177 lockX = lockY = shifting = false;
2178 move();
2179 }
2180 break;
2181 }
2182 case 18: { // ALT
2183 if (mode === MODE_CENTER) {
2184 if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
2185 if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
2186 mode = MODE_HANDLE;
2187 move();
2188 }
2189 break;
2190 }
2191 case 32: { // SPACE
2192 if (mode === MODE_SPACE) {
2193 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].altKey) {
2194 if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
2195 if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
2196 mode = MODE_CENTER;
2197 } else {
2198 if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
2199 if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
2200 mode = MODE_HANDLE;
2201 }
2202 overlay.attr("cursor", cursors[type]);
2203 move();
2204 }
2205 break;
2206 }
2207 default: return;
2208 }
2209 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["default"])();
2210 }
2211 }
2212
2213 function initialize() {
2214 var state = this.__brush || {selection: null};
2215 state.extent = extent.apply(this, arguments);
2216 state.dim = dim;
2217 return state;
2218 }
2219
2220 brush.extent = function(_) {
2221 return arguments.length ? (extent = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;
2222 };
2223
2224 brush.filter = function(_) {
2225 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), brush) : filter;
2226 };
2227
2228 brush.handleSize = function(_) {
2229 return arguments.length ? (handleSize = +_, brush) : handleSize;
2230 };
2231
2232 brush.on = function() {
2233 var value = listeners.on.apply(listeners, arguments);
2234 return value === listeners ? brush : value;
2235 };
2236
2237 return brush;
2238}
2239
2240
2241/***/ }),
2242
2243/***/ "./node_modules/d3-brush/src/constant.js":
2244/*!***********************************************!*\
2245 !*** ./node_modules/d3-brush/src/constant.js ***!
2246 \***********************************************/
2247/*! exports provided: default */
2248/***/ (function(module, __webpack_exports__, __webpack_require__) {
2249
2250"use strict";
2251__webpack_require__.r(__webpack_exports__);
2252/* harmony default export */ __webpack_exports__["default"] = (function(x) {
2253 return function() {
2254 return x;
2255 };
2256});
2257
2258
2259/***/ }),
2260
2261/***/ "./node_modules/d3-brush/src/event.js":
2262/*!********************************************!*\
2263 !*** ./node_modules/d3-brush/src/event.js ***!
2264 \********************************************/
2265/*! exports provided: default */
2266/***/ (function(module, __webpack_exports__, __webpack_require__) {
2267
2268"use strict";
2269__webpack_require__.r(__webpack_exports__);
2270/* harmony default export */ __webpack_exports__["default"] = (function(target, type, selection) {
2271 this.target = target;
2272 this.type = type;
2273 this.selection = selection;
2274});
2275
2276
2277/***/ }),
2278
2279/***/ "./node_modules/d3-brush/src/index.js":
2280/*!********************************************!*\
2281 !*** ./node_modules/d3-brush/src/index.js ***!
2282 \********************************************/
2283/*! exports provided: brush, brushX, brushY, brushSelection */
2284/***/ (function(module, __webpack_exports__, __webpack_require__) {
2285
2286"use strict";
2287__webpack_require__.r(__webpack_exports__);
2288/* harmony import */ var _brush__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./brush */ "./node_modules/d3-brush/src/brush.js");
2289/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brush", function() { return _brush__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2290
2291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return _brush__WEBPACK_IMPORTED_MODULE_0__["brushX"]; });
2292
2293/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return _brush__WEBPACK_IMPORTED_MODULE_0__["brushY"]; });
2294
2295/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return _brush__WEBPACK_IMPORTED_MODULE_0__["brushSelection"]; });
2296
2297
2298
2299
2300/***/ }),
2301
2302/***/ "./node_modules/d3-brush/src/noevent.js":
2303/*!**********************************************!*\
2304 !*** ./node_modules/d3-brush/src/noevent.js ***!
2305 \**********************************************/
2306/*! exports provided: nopropagation, default */
2307/***/ (function(module, __webpack_exports__, __webpack_require__) {
2308
2309"use strict";
2310__webpack_require__.r(__webpack_exports__);
2311/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
2312/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
2313
2314
2315function nopropagation() {
2316 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
2317}
2318
2319/* harmony default export */ __webpack_exports__["default"] = (function() {
2320 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
2321 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
2322});
2323
2324
2325/***/ }),
2326
2327/***/ "./node_modules/d3-chord/src/array.js":
2328/*!********************************************!*\
2329 !*** ./node_modules/d3-chord/src/array.js ***!
2330 \********************************************/
2331/*! exports provided: slice */
2332/***/ (function(module, __webpack_exports__, __webpack_require__) {
2333
2334"use strict";
2335__webpack_require__.r(__webpack_exports__);
2336/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
2337var slice = Array.prototype.slice;
2338
2339
2340/***/ }),
2341
2342/***/ "./node_modules/d3-chord/src/chord.js":
2343/*!********************************************!*\
2344 !*** ./node_modules/d3-chord/src/chord.js ***!
2345 \********************************************/
2346/*! exports provided: default */
2347/***/ (function(module, __webpack_exports__, __webpack_require__) {
2348
2349"use strict";
2350__webpack_require__.r(__webpack_exports__);
2351/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
2352/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-chord/src/math.js");
2353
2354
2355
2356function compareValue(compare) {
2357 return function(a, b) {
2358 return compare(
2359 a.source.value + a.target.value,
2360 b.source.value + b.target.value
2361 );
2362 };
2363}
2364
2365/* harmony default export */ __webpack_exports__["default"] = (function() {
2366 var padAngle = 0,
2367 sortGroups = null,
2368 sortSubgroups = null,
2369 sortChords = null;
2370
2371 function chord(matrix) {
2372 var n = matrix.length,
2373 groupSums = [],
2374 groupIndex = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n),
2375 subgroupIndex = [],
2376 chords = [],
2377 groups = chords.groups = new Array(n),
2378 subgroups = new Array(n * n),
2379 k,
2380 x,
2381 x0,
2382 dx,
2383 i,
2384 j;
2385
2386 // Compute the sum.
2387 k = 0, i = -1; while (++i < n) {
2388 x = 0, j = -1; while (++j < n) {
2389 x += matrix[i][j];
2390 }
2391 groupSums.push(x);
2392 subgroupIndex.push(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n));
2393 k += x;
2394 }
2395
2396 // Sort groups…
2397 if (sortGroups) groupIndex.sort(function(a, b) {
2398 return sortGroups(groupSums[a], groupSums[b]);
2399 });
2400
2401 // Sort subgroups…
2402 if (sortSubgroups) subgroupIndex.forEach(function(d, i) {
2403 d.sort(function(a, b) {
2404 return sortSubgroups(matrix[i][a], matrix[i][b]);
2405 });
2406 });
2407
2408 // Convert the sum to scaling factor for [0, 2pi].
2409 // TODO Allow start and end angle to be specified?
2410 // TODO Allow padding to be specified as percentage?
2411 k = Object(_math__WEBPACK_IMPORTED_MODULE_1__["max"])(0, _math__WEBPACK_IMPORTED_MODULE_1__["tau"] - padAngle * n) / k;
2412 dx = k ? padAngle : _math__WEBPACK_IMPORTED_MODULE_1__["tau"] / n;
2413
2414 // Compute the start and end angle for each group and subgroup.
2415 // Note: Opera has a bug reordering object literal properties!
2416 x = 0, i = -1; while (++i < n) {
2417 x0 = x, j = -1; while (++j < n) {
2418 var di = groupIndex[i],
2419 dj = subgroupIndex[di][j],
2420 v = matrix[di][dj],
2421 a0 = x,
2422 a1 = x += v * k;
2423 subgroups[dj * n + di] = {
2424 index: di,
2425 subindex: dj,
2426 startAngle: a0,
2427 endAngle: a1,
2428 value: v
2429 };
2430 }
2431 groups[di] = {
2432 index: di,
2433 startAngle: x0,
2434 endAngle: x,
2435 value: groupSums[di]
2436 };
2437 x += dx;
2438 }
2439
2440 // Generate chords for each (non-empty) subgroup-subgroup link.
2441 i = -1; while (++i < n) {
2442 j = i - 1; while (++j < n) {
2443 var source = subgroups[j * n + i],
2444 target = subgroups[i * n + j];
2445 if (source.value || target.value) {
2446 chords.push(source.value < target.value
2447 ? {source: target, target: source}
2448 : {source: source, target: target});
2449 }
2450 }
2451 }
2452
2453 return sortChords ? chords.sort(sortChords) : chords;
2454 }
2455
2456 chord.padAngle = function(_) {
2457 return arguments.length ? (padAngle = Object(_math__WEBPACK_IMPORTED_MODULE_1__["max"])(0, _), chord) : padAngle;
2458 };
2459
2460 chord.sortGroups = function(_) {
2461 return arguments.length ? (sortGroups = _, chord) : sortGroups;
2462 };
2463
2464 chord.sortSubgroups = function(_) {
2465 return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
2466 };
2467
2468 chord.sortChords = function(_) {
2469 return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
2470 };
2471
2472 return chord;
2473});
2474
2475
2476/***/ }),
2477
2478/***/ "./node_modules/d3-chord/src/constant.js":
2479/*!***********************************************!*\
2480 !*** ./node_modules/d3-chord/src/constant.js ***!
2481 \***********************************************/
2482/*! exports provided: default */
2483/***/ (function(module, __webpack_exports__, __webpack_require__) {
2484
2485"use strict";
2486__webpack_require__.r(__webpack_exports__);
2487/* harmony default export */ __webpack_exports__["default"] = (function(x) {
2488 return function() {
2489 return x;
2490 };
2491});
2492
2493
2494/***/ }),
2495
2496/***/ "./node_modules/d3-chord/src/index.js":
2497/*!********************************************!*\
2498 !*** ./node_modules/d3-chord/src/index.js ***!
2499 \********************************************/
2500/*! exports provided: chord, ribbon */
2501/***/ (function(module, __webpack_exports__, __webpack_require__) {
2502
2503"use strict";
2504__webpack_require__.r(__webpack_exports__);
2505/* harmony import */ var _chord__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chord */ "./node_modules/d3-chord/src/chord.js");
2506/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chord", function() { return _chord__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2507
2508/* harmony import */ var _ribbon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ribbon */ "./node_modules/d3-chord/src/ribbon.js");
2509/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ribbon", function() { return _ribbon__WEBPACK_IMPORTED_MODULE_1__["default"]; });
2510
2511
2512
2513
2514
2515/***/ }),
2516
2517/***/ "./node_modules/d3-chord/src/math.js":
2518/*!*******************************************!*\
2519 !*** ./node_modules/d3-chord/src/math.js ***!
2520 \*******************************************/
2521/*! exports provided: cos, sin, pi, halfPi, tau, max */
2522/***/ (function(module, __webpack_exports__, __webpack_require__) {
2523
2524"use strict";
2525__webpack_require__.r(__webpack_exports__);
2526/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
2527/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
2528/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
2529/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
2530/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
2531/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; });
2532var cos = Math.cos;
2533var sin = Math.sin;
2534var pi = Math.PI;
2535var halfPi = pi / 2;
2536var tau = pi * 2;
2537var max = Math.max;
2538
2539
2540/***/ }),
2541
2542/***/ "./node_modules/d3-chord/src/ribbon.js":
2543/*!*********************************************!*\
2544 !*** ./node_modules/d3-chord/src/ribbon.js ***!
2545 \*********************************************/
2546/*! exports provided: default */
2547/***/ (function(module, __webpack_exports__, __webpack_require__) {
2548
2549"use strict";
2550__webpack_require__.r(__webpack_exports__);
2551/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-chord/src/array.js");
2552/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-chord/src/constant.js");
2553/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-chord/src/math.js");
2554/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
2555
2556
2557
2558
2559
2560function defaultSource(d) {
2561 return d.source;
2562}
2563
2564function defaultTarget(d) {
2565 return d.target;
2566}
2567
2568function defaultRadius(d) {
2569 return d.radius;
2570}
2571
2572function defaultStartAngle(d) {
2573 return d.startAngle;
2574}
2575
2576function defaultEndAngle(d) {
2577 return d.endAngle;
2578}
2579
2580/* harmony default export */ __webpack_exports__["default"] = (function() {
2581 var source = defaultSource,
2582 target = defaultTarget,
2583 radius = defaultRadius,
2584 startAngle = defaultStartAngle,
2585 endAngle = defaultEndAngle,
2586 context = null;
2587
2588 function ribbon() {
2589 var buffer,
2590 argv = _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(arguments),
2591 s = source.apply(this, argv),
2592 t = target.apply(this, argv),
2593 sr = +radius.apply(this, (argv[0] = s, argv)),
2594 sa0 = startAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2595 sa1 = endAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2596 sx0 = sr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(sa0),
2597 sy0 = sr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(sa0),
2598 tr = +radius.apply(this, (argv[0] = t, argv)),
2599 ta0 = startAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2600 ta1 = endAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"];
2601
2602 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_3__["path"])();
2603
2604 context.moveTo(sx0, sy0);
2605 context.arc(0, 0, sr, sa0, sa1);
2606 if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?
2607 context.quadraticCurveTo(0, 0, tr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(ta0), tr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(ta0));
2608 context.arc(0, 0, tr, ta0, ta1);
2609 }
2610 context.quadraticCurveTo(0, 0, sx0, sy0);
2611 context.closePath();
2612
2613 if (buffer) return context = null, buffer + "" || null;
2614 }
2615
2616 ribbon.radius = function(_) {
2617 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : radius;
2618 };
2619
2620 ribbon.startAngle = function(_) {
2621 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : startAngle;
2622 };
2623
2624 ribbon.endAngle = function(_) {
2625 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : endAngle;
2626 };
2627
2628 ribbon.source = function(_) {
2629 return arguments.length ? (source = _, ribbon) : source;
2630 };
2631
2632 ribbon.target = function(_) {
2633 return arguments.length ? (target = _, ribbon) : target;
2634 };
2635
2636 ribbon.context = function(_) {
2637 return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
2638 };
2639
2640 return ribbon;
2641});
2642
2643
2644/***/ }),
2645
2646/***/ "./node_modules/d3-collection/src/entries.js":
2647/*!***************************************************!*\
2648 !*** ./node_modules/d3-collection/src/entries.js ***!
2649 \***************************************************/
2650/*! exports provided: default */
2651/***/ (function(module, __webpack_exports__, __webpack_require__) {
2652
2653"use strict";
2654__webpack_require__.r(__webpack_exports__);
2655/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2656 var entries = [];
2657 for (var key in map) entries.push({key: key, value: map[key]});
2658 return entries;
2659});
2660
2661
2662/***/ }),
2663
2664/***/ "./node_modules/d3-collection/src/index.js":
2665/*!*************************************************!*\
2666 !*** ./node_modules/d3-collection/src/index.js ***!
2667 \*************************************************/
2668/*! exports provided: nest, set, map, keys, values, entries */
2669/***/ (function(module, __webpack_exports__, __webpack_require__) {
2670
2671"use strict";
2672__webpack_require__.r(__webpack_exports__);
2673/* harmony import */ var _nest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nest */ "./node_modules/d3-collection/src/nest.js");
2674/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nest", function() { return _nest__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2675
2676/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./set */ "./node_modules/d3-collection/src/set.js");
2677/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "set", function() { return _set__WEBPACK_IMPORTED_MODULE_1__["default"]; });
2678
2679/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map */ "./node_modules/d3-collection/src/map.js");
2680/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _map__WEBPACK_IMPORTED_MODULE_2__["default"]; });
2681
2682/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./keys */ "./node_modules/d3-collection/src/keys.js");
2683/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return _keys__WEBPACK_IMPORTED_MODULE_3__["default"]; });
2684
2685/* harmony import */ var _values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./values */ "./node_modules/d3-collection/src/values.js");
2686/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return _values__WEBPACK_IMPORTED_MODULE_4__["default"]; });
2687
2688/* harmony import */ var _entries__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./entries */ "./node_modules/d3-collection/src/entries.js");
2689/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "entries", function() { return _entries__WEBPACK_IMPORTED_MODULE_5__["default"]; });
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699/***/ }),
2700
2701/***/ "./node_modules/d3-collection/src/keys.js":
2702/*!************************************************!*\
2703 !*** ./node_modules/d3-collection/src/keys.js ***!
2704 \************************************************/
2705/*! exports provided: default */
2706/***/ (function(module, __webpack_exports__, __webpack_require__) {
2707
2708"use strict";
2709__webpack_require__.r(__webpack_exports__);
2710/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2711 var keys = [];
2712 for (var key in map) keys.push(key);
2713 return keys;
2714});
2715
2716
2717/***/ }),
2718
2719/***/ "./node_modules/d3-collection/src/map.js":
2720/*!***********************************************!*\
2721 !*** ./node_modules/d3-collection/src/map.js ***!
2722 \***********************************************/
2723/*! exports provided: prefix, default */
2724/***/ (function(module, __webpack_exports__, __webpack_require__) {
2725
2726"use strict";
2727__webpack_require__.r(__webpack_exports__);
2728/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefix", function() { return prefix; });
2729var prefix = "$";
2730
2731function Map() {}
2732
2733Map.prototype = map.prototype = {
2734 constructor: Map,
2735 has: function(key) {
2736 return (prefix + key) in this;
2737 },
2738 get: function(key) {
2739 return this[prefix + key];
2740 },
2741 set: function(key, value) {
2742 this[prefix + key] = value;
2743 return this;
2744 },
2745 remove: function(key) {
2746 var property = prefix + key;
2747 return property in this && delete this[property];
2748 },
2749 clear: function() {
2750 for (var property in this) if (property[0] === prefix) delete this[property];
2751 },
2752 keys: function() {
2753 var keys = [];
2754 for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));
2755 return keys;
2756 },
2757 values: function() {
2758 var values = [];
2759 for (var property in this) if (property[0] === prefix) values.push(this[property]);
2760 return values;
2761 },
2762 entries: function() {
2763 var entries = [];
2764 for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});
2765 return entries;
2766 },
2767 size: function() {
2768 var size = 0;
2769 for (var property in this) if (property[0] === prefix) ++size;
2770 return size;
2771 },
2772 empty: function() {
2773 for (var property in this) if (property[0] === prefix) return false;
2774 return true;
2775 },
2776 each: function(f) {
2777 for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);
2778 }
2779};
2780
2781function map(object, f) {
2782 var map = new Map;
2783
2784 // Copy constructor.
2785 if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });
2786
2787 // Index array by numeric index or specified key function.
2788 else if (Array.isArray(object)) {
2789 var i = -1,
2790 n = object.length,
2791 o;
2792
2793 if (f == null) while (++i < n) map.set(i, object[i]);
2794 else while (++i < n) map.set(f(o = object[i], i, object), o);
2795 }
2796
2797 // Convert object to map.
2798 else if (object) for (var key in object) map.set(key, object[key]);
2799
2800 return map;
2801}
2802
2803/* harmony default export */ __webpack_exports__["default"] = (map);
2804
2805
2806/***/ }),
2807
2808/***/ "./node_modules/d3-collection/src/nest.js":
2809/*!************************************************!*\
2810 !*** ./node_modules/d3-collection/src/nest.js ***!
2811 \************************************************/
2812/*! exports provided: default */
2813/***/ (function(module, __webpack_exports__, __webpack_require__) {
2814
2815"use strict";
2816__webpack_require__.r(__webpack_exports__);
2817/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ "./node_modules/d3-collection/src/map.js");
2818
2819
2820/* harmony default export */ __webpack_exports__["default"] = (function() {
2821 var keys = [],
2822 sortKeys = [],
2823 sortValues,
2824 rollup,
2825 nest;
2826
2827 function apply(array, depth, createResult, setResult) {
2828 if (depth >= keys.length) {
2829 if (sortValues != null) array.sort(sortValues);
2830 return rollup != null ? rollup(array) : array;
2831 }
2832
2833 var i = -1,
2834 n = array.length,
2835 key = keys[depth++],
2836 keyValue,
2837 value,
2838 valuesByKey = Object(_map__WEBPACK_IMPORTED_MODULE_0__["default"])(),
2839 values,
2840 result = createResult();
2841
2842 while (++i < n) {
2843 if (values = valuesByKey.get(keyValue = key(value = array[i]) + "")) {
2844 values.push(value);
2845 } else {
2846 valuesByKey.set(keyValue, [value]);
2847 }
2848 }
2849
2850 valuesByKey.each(function(values, key) {
2851 setResult(result, key, apply(values, depth, createResult, setResult));
2852 });
2853
2854 return result;
2855 }
2856
2857 function entries(map, depth) {
2858 if (++depth > keys.length) return map;
2859 var array, sortKey = sortKeys[depth - 1];
2860 if (rollup != null && depth >= keys.length) array = map.entries();
2861 else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });
2862 return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;
2863 }
2864
2865 return nest = {
2866 object: function(array) { return apply(array, 0, createObject, setObject); },
2867 map: function(array) { return apply(array, 0, createMap, setMap); },
2868 entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },
2869 key: function(d) { keys.push(d); return nest; },
2870 sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },
2871 sortValues: function(order) { sortValues = order; return nest; },
2872 rollup: function(f) { rollup = f; return nest; }
2873 };
2874});
2875
2876function createObject() {
2877 return {};
2878}
2879
2880function setObject(object, key, value) {
2881 object[key] = value;
2882}
2883
2884function createMap() {
2885 return Object(_map__WEBPACK_IMPORTED_MODULE_0__["default"])();
2886}
2887
2888function setMap(map, key, value) {
2889 map.set(key, value);
2890}
2891
2892
2893/***/ }),
2894
2895/***/ "./node_modules/d3-collection/src/set.js":
2896/*!***********************************************!*\
2897 !*** ./node_modules/d3-collection/src/set.js ***!
2898 \***********************************************/
2899/*! exports provided: default */
2900/***/ (function(module, __webpack_exports__, __webpack_require__) {
2901
2902"use strict";
2903__webpack_require__.r(__webpack_exports__);
2904/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ "./node_modules/d3-collection/src/map.js");
2905
2906
2907function Set() {}
2908
2909var proto = _map__WEBPACK_IMPORTED_MODULE_0__["default"].prototype;
2910
2911Set.prototype = set.prototype = {
2912 constructor: Set,
2913 has: proto.has,
2914 add: function(value) {
2915 value += "";
2916 this[_map__WEBPACK_IMPORTED_MODULE_0__["prefix"] + value] = value;
2917 return this;
2918 },
2919 remove: proto.remove,
2920 clear: proto.clear,
2921 values: proto.keys,
2922 size: proto.size,
2923 empty: proto.empty,
2924 each: proto.each
2925};
2926
2927function set(object, f) {
2928 var set = new Set;
2929
2930 // Copy constructor.
2931 if (object instanceof Set) object.each(function(value) { set.add(value); });
2932
2933 // Otherwise, assume it’s an array.
2934 else if (object) {
2935 var i = -1, n = object.length;
2936 if (f == null) while (++i < n) set.add(object[i]);
2937 else while (++i < n) set.add(f(object[i], i, object));
2938 }
2939
2940 return set;
2941}
2942
2943/* harmony default export */ __webpack_exports__["default"] = (set);
2944
2945
2946/***/ }),
2947
2948/***/ "./node_modules/d3-collection/src/values.js":
2949/*!**************************************************!*\
2950 !*** ./node_modules/d3-collection/src/values.js ***!
2951 \**************************************************/
2952/*! exports provided: default */
2953/***/ (function(module, __webpack_exports__, __webpack_require__) {
2954
2955"use strict";
2956__webpack_require__.r(__webpack_exports__);
2957/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2958 var values = [];
2959 for (var key in map) values.push(map[key]);
2960 return values;
2961});
2962
2963
2964/***/ }),
2965
2966/***/ "./node_modules/d3-color/src/color.js":
2967/*!********************************************!*\
2968 !*** ./node_modules/d3-color/src/color.js ***!
2969 \********************************************/
2970/*! exports provided: Color, darker, brighter, default, rgbConvert, rgb, Rgb, hslConvert, hsl */
2971/***/ (function(module, __webpack_exports__, __webpack_require__) {
2972
2973"use strict";
2974__webpack_require__.r(__webpack_exports__);
2975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return Color; });
2976/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "darker", function() { return darker; });
2977/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brighter", function() { return brighter; });
2978/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return color; });
2979/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbConvert", function() { return rgbConvert; });
2980/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return rgb; });
2981/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Rgb", function() { return Rgb; });
2982/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hslConvert", function() { return hslConvert; });
2983/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return hsl; });
2984/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define */ "./node_modules/d3-color/src/define.js");
2985
2986
2987function Color() {}
2988
2989var darker = 0.7;
2990var brighter = 1 / darker;
2991
2992var reI = "\\s*([+-]?\\d+)\\s*",
2993 reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2994 reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2995 reHex3 = /^#([0-9a-f]{3})$/,
2996 reHex6 = /^#([0-9a-f]{6})$/,
2997 reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
2998 reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
2999 reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
3000 reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
3001 reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
3002 reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
3003
3004var named = {
3005 aliceblue: 0xf0f8ff,
3006 antiquewhite: 0xfaebd7,
3007 aqua: 0x00ffff,
3008 aquamarine: 0x7fffd4,
3009 azure: 0xf0ffff,
3010 beige: 0xf5f5dc,
3011 bisque: 0xffe4c4,
3012 black: 0x000000,
3013 blanchedalmond: 0xffebcd,
3014 blue: 0x0000ff,
3015 blueviolet: 0x8a2be2,
3016 brown: 0xa52a2a,
3017 burlywood: 0xdeb887,
3018 cadetblue: 0x5f9ea0,
3019 chartreuse: 0x7fff00,
3020 chocolate: 0xd2691e,
3021 coral: 0xff7f50,
3022 cornflowerblue: 0x6495ed,
3023 cornsilk: 0xfff8dc,
3024 crimson: 0xdc143c,
3025 cyan: 0x00ffff,
3026 darkblue: 0x00008b,
3027 darkcyan: 0x008b8b,
3028 darkgoldenrod: 0xb8860b,
3029 darkgray: 0xa9a9a9,
3030 darkgreen: 0x006400,
3031 darkgrey: 0xa9a9a9,
3032 darkkhaki: 0xbdb76b,
3033 darkmagenta: 0x8b008b,
3034 darkolivegreen: 0x556b2f,
3035 darkorange: 0xff8c00,
3036 darkorchid: 0x9932cc,
3037 darkred: 0x8b0000,
3038 darksalmon: 0xe9967a,
3039 darkseagreen: 0x8fbc8f,
3040 darkslateblue: 0x483d8b,
3041 darkslategray: 0x2f4f4f,
3042 darkslategrey: 0x2f4f4f,
3043 darkturquoise: 0x00ced1,
3044 darkviolet: 0x9400d3,
3045 deeppink: 0xff1493,
3046 deepskyblue: 0x00bfff,
3047 dimgray: 0x696969,
3048 dimgrey: 0x696969,
3049 dodgerblue: 0x1e90ff,
3050 firebrick: 0xb22222,
3051 floralwhite: 0xfffaf0,
3052 forestgreen: 0x228b22,
3053 fuchsia: 0xff00ff,
3054 gainsboro: 0xdcdcdc,
3055 ghostwhite: 0xf8f8ff,
3056 gold: 0xffd700,
3057 goldenrod: 0xdaa520,
3058 gray: 0x808080,
3059 green: 0x008000,
3060 greenyellow: 0xadff2f,
3061 grey: 0x808080,
3062 honeydew: 0xf0fff0,
3063 hotpink: 0xff69b4,
3064 indianred: 0xcd5c5c,
3065 indigo: 0x4b0082,
3066 ivory: 0xfffff0,
3067 khaki: 0xf0e68c,
3068 lavender: 0xe6e6fa,
3069 lavenderblush: 0xfff0f5,
3070 lawngreen: 0x7cfc00,
3071 lemonchiffon: 0xfffacd,
3072 lightblue: 0xadd8e6,
3073 lightcoral: 0xf08080,
3074 lightcyan: 0xe0ffff,
3075 lightgoldenrodyellow: 0xfafad2,
3076 lightgray: 0xd3d3d3,
3077 lightgreen: 0x90ee90,
3078 lightgrey: 0xd3d3d3,
3079 lightpink: 0xffb6c1,
3080 lightsalmon: 0xffa07a,
3081 lightseagreen: 0x20b2aa,
3082 lightskyblue: 0x87cefa,
3083 lightslategray: 0x778899,
3084 lightslategrey: 0x778899,
3085 lightsteelblue: 0xb0c4de,
3086 lightyellow: 0xffffe0,
3087 lime: 0x00ff00,
3088 limegreen: 0x32cd32,
3089 linen: 0xfaf0e6,
3090 magenta: 0xff00ff,
3091 maroon: 0x800000,
3092 mediumaquamarine: 0x66cdaa,
3093 mediumblue: 0x0000cd,
3094 mediumorchid: 0xba55d3,
3095 mediumpurple: 0x9370db,
3096 mediumseagreen: 0x3cb371,
3097 mediumslateblue: 0x7b68ee,
3098 mediumspringgreen: 0x00fa9a,
3099 mediumturquoise: 0x48d1cc,
3100 mediumvioletred: 0xc71585,
3101 midnightblue: 0x191970,
3102 mintcream: 0xf5fffa,
3103 mistyrose: 0xffe4e1,
3104 moccasin: 0xffe4b5,
3105 navajowhite: 0xffdead,
3106 navy: 0x000080,
3107 oldlace: 0xfdf5e6,
3108 olive: 0x808000,
3109 olivedrab: 0x6b8e23,
3110 orange: 0xffa500,
3111 orangered: 0xff4500,
3112 orchid: 0xda70d6,
3113 palegoldenrod: 0xeee8aa,
3114 palegreen: 0x98fb98,
3115 paleturquoise: 0xafeeee,
3116 palevioletred: 0xdb7093,
3117 papayawhip: 0xffefd5,
3118 peachpuff: 0xffdab9,
3119 peru: 0xcd853f,
3120 pink: 0xffc0cb,
3121 plum: 0xdda0dd,
3122 powderblue: 0xb0e0e6,
3123 purple: 0x800080,
3124 rebeccapurple: 0x663399,
3125 red: 0xff0000,
3126 rosybrown: 0xbc8f8f,
3127 royalblue: 0x4169e1,
3128 saddlebrown: 0x8b4513,
3129 salmon: 0xfa8072,
3130 sandybrown: 0xf4a460,
3131 seagreen: 0x2e8b57,
3132 seashell: 0xfff5ee,
3133 sienna: 0xa0522d,
3134 silver: 0xc0c0c0,
3135 skyblue: 0x87ceeb,
3136 slateblue: 0x6a5acd,
3137 slategray: 0x708090,
3138 slategrey: 0x708090,
3139 snow: 0xfffafa,
3140 springgreen: 0x00ff7f,
3141 steelblue: 0x4682b4,
3142 tan: 0xd2b48c,
3143 teal: 0x008080,
3144 thistle: 0xd8bfd8,
3145 tomato: 0xff6347,
3146 turquoise: 0x40e0d0,
3147 violet: 0xee82ee,
3148 wheat: 0xf5deb3,
3149 white: 0xffffff,
3150 whitesmoke: 0xf5f5f5,
3151 yellow: 0xffff00,
3152 yellowgreen: 0x9acd32
3153};
3154
3155Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Color, color, {
3156 displayable: function() {
3157 return this.rgb().displayable();
3158 },
3159 hex: function() {
3160 return this.rgb().hex();
3161 },
3162 toString: function() {
3163 return this.rgb() + "";
3164 }
3165});
3166
3167function color(format) {
3168 var m;
3169 format = (format + "").trim().toLowerCase();
3170 return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00
3171 : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000
3172 : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
3173 : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
3174 : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
3175 : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
3176 : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
3177 : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
3178 : named.hasOwnProperty(format) ? rgbn(named[format])
3179 : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
3180 : null;
3181}
3182
3183function rgbn(n) {
3184 return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
3185}
3186
3187function rgba(r, g, b, a) {
3188 if (a <= 0) r = g = b = NaN;
3189 return new Rgb(r, g, b, a);
3190}
3191
3192function rgbConvert(o) {
3193 if (!(o instanceof Color)) o = color(o);
3194 if (!o) return new Rgb;
3195 o = o.rgb();
3196 return new Rgb(o.r, o.g, o.b, o.opacity);
3197}
3198
3199function rgb(r, g, b, opacity) {
3200 return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
3201}
3202
3203function Rgb(r, g, b, opacity) {
3204 this.r = +r;
3205 this.g = +g;
3206 this.b = +b;
3207 this.opacity = +opacity;
3208}
3209
3210Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Rgb, rgb, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(Color, {
3211 brighter: function(k) {
3212 k = k == null ? brighter : Math.pow(brighter, k);
3213 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3214 },
3215 darker: function(k) {
3216 k = k == null ? darker : Math.pow(darker, k);
3217 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3218 },
3219 rgb: function() {
3220 return this;
3221 },
3222 displayable: function() {
3223 return (0 <= this.r && this.r <= 255)
3224 && (0 <= this.g && this.g <= 255)
3225 && (0 <= this.b && this.b <= 255)
3226 && (0 <= this.opacity && this.opacity <= 1);
3227 },
3228 hex: function() {
3229 return "#" + hex(this.r) + hex(this.g) + hex(this.b);
3230 },
3231 toString: function() {
3232 var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
3233 return (a === 1 ? "rgb(" : "rgba(")
3234 + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
3235 + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
3236 + Math.max(0, Math.min(255, Math.round(this.b) || 0))
3237 + (a === 1 ? ")" : ", " + a + ")");
3238 }
3239}));
3240
3241function hex(value) {
3242 value = Math.max(0, Math.min(255, Math.round(value) || 0));
3243 return (value < 16 ? "0" : "") + value.toString(16);
3244}
3245
3246function hsla(h, s, l, a) {
3247 if (a <= 0) h = s = l = NaN;
3248 else if (l <= 0 || l >= 1) h = s = NaN;
3249 else if (s <= 0) h = NaN;
3250 return new Hsl(h, s, l, a);
3251}
3252
3253function hslConvert(o) {
3254 if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
3255 if (!(o instanceof Color)) o = color(o);
3256 if (!o) return new Hsl;
3257 if (o instanceof Hsl) return o;
3258 o = o.rgb();
3259 var r = o.r / 255,
3260 g = o.g / 255,
3261 b = o.b / 255,
3262 min = Math.min(r, g, b),
3263 max = Math.max(r, g, b),
3264 h = NaN,
3265 s = max - min,
3266 l = (max + min) / 2;
3267 if (s) {
3268 if (r === max) h = (g - b) / s + (g < b) * 6;
3269 else if (g === max) h = (b - r) / s + 2;
3270 else h = (r - g) / s + 4;
3271 s /= l < 0.5 ? max + min : 2 - max - min;
3272 h *= 60;
3273 } else {
3274 s = l > 0 && l < 1 ? 0 : h;
3275 }
3276 return new Hsl(h, s, l, o.opacity);
3277}
3278
3279function hsl(h, s, l, opacity) {
3280 return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
3281}
3282
3283function Hsl(h, s, l, opacity) {
3284 this.h = +h;
3285 this.s = +s;
3286 this.l = +l;
3287 this.opacity = +opacity;
3288}
3289
3290Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Hsl, hsl, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(Color, {
3291 brighter: function(k) {
3292 k = k == null ? brighter : Math.pow(brighter, k);
3293 return new Hsl(this.h, this.s, this.l * k, this.opacity);
3294 },
3295 darker: function(k) {
3296 k = k == null ? darker : Math.pow(darker, k);
3297 return new Hsl(this.h, this.s, this.l * k, this.opacity);
3298 },
3299 rgb: function() {
3300 var h = this.h % 360 + (this.h < 0) * 360,
3301 s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
3302 l = this.l,
3303 m2 = l + (l < 0.5 ? l : 1 - l) * s,
3304 m1 = 2 * l - m2;
3305 return new Rgb(
3306 hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
3307 hsl2rgb(h, m1, m2),
3308 hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
3309 this.opacity
3310 );
3311 },
3312 displayable: function() {
3313 return (0 <= this.s && this.s <= 1 || isNaN(this.s))
3314 && (0 <= this.l && this.l <= 1)
3315 && (0 <= this.opacity && this.opacity <= 1);
3316 }
3317}));
3318
3319/* From FvD 13.37, CSS Color Module Level 3 */
3320function hsl2rgb(h, m1, m2) {
3321 return (h < 60 ? m1 + (m2 - m1) * h / 60
3322 : h < 180 ? m2
3323 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
3324 : m1) * 255;
3325}
3326
3327
3328/***/ }),
3329
3330/***/ "./node_modules/d3-color/src/cubehelix.js":
3331/*!************************************************!*\
3332 !*** ./node_modules/d3-color/src/cubehelix.js ***!
3333 \************************************************/
3334/*! exports provided: default, Cubehelix */
3335/***/ (function(module, __webpack_exports__, __webpack_require__) {
3336
3337"use strict";
3338__webpack_require__.r(__webpack_exports__);
3339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return cubehelix; });
3340/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Cubehelix", function() { return Cubehelix; });
3341/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define */ "./node_modules/d3-color/src/define.js");
3342/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-color/src/color.js");
3343/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-color/src/math.js");
3344
3345
3346
3347
3348var A = -0.14861,
3349 B = +1.78277,
3350 C = -0.29227,
3351 D = -0.90649,
3352 E = +1.97294,
3353 ED = E * D,
3354 EB = E * B,
3355 BC_DA = B * C - D * A;
3356
3357function cubehelixConvert(o) {
3358 if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
3359 if (!(o instanceof _color__WEBPACK_IMPORTED_MODULE_1__["Rgb"])) o = Object(_color__WEBPACK_IMPORTED_MODULE_1__["rgbConvert"])(o);
3360 var r = o.r / 255,
3361 g = o.g / 255,
3362 b = o.b / 255,
3363 l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
3364 bl = b - l,
3365 k = (E * (g - l) - C * bl) / D,
3366 s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
3367 h = s ? Math.atan2(k, bl) * _math__WEBPACK_IMPORTED_MODULE_2__["rad2deg"] - 120 : NaN;
3368 return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
3369}
3370
3371function cubehelix(h, s, l, opacity) {
3372 return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
3373}
3374
3375function Cubehelix(h, s, l, opacity) {
3376 this.h = +h;
3377 this.s = +s;
3378 this.l = +l;
3379 this.opacity = +opacity;
3380}
3381
3382Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Cubehelix, cubehelix, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3383 brighter: function(k) {
3384 k = k == null ? _color__WEBPACK_IMPORTED_MODULE_1__["brighter"] : Math.pow(_color__WEBPACK_IMPORTED_MODULE_1__["brighter"], k);
3385 return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
3386 },
3387 darker: function(k) {
3388 k = k == null ? _color__WEBPACK_IMPORTED_MODULE_1__["darker"] : Math.pow(_color__WEBPACK_IMPORTED_MODULE_1__["darker"], k);
3389 return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
3390 },
3391 rgb: function() {
3392 var h = isNaN(this.h) ? 0 : (this.h + 120) * _math__WEBPACK_IMPORTED_MODULE_2__["deg2rad"],
3393 l = +this.l,
3394 a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
3395 cosh = Math.cos(h),
3396 sinh = Math.sin(h);
3397 return new _color__WEBPACK_IMPORTED_MODULE_1__["Rgb"](
3398 255 * (l + a * (A * cosh + B * sinh)),
3399 255 * (l + a * (C * cosh + D * sinh)),
3400 255 * (l + a * (E * cosh)),
3401 this.opacity
3402 );
3403 }
3404}));
3405
3406
3407/***/ }),
3408
3409/***/ "./node_modules/d3-color/src/define.js":
3410/*!*********************************************!*\
3411 !*** ./node_modules/d3-color/src/define.js ***!
3412 \*********************************************/
3413/*! exports provided: default, extend */
3414/***/ (function(module, __webpack_exports__, __webpack_require__) {
3415
3416"use strict";
3417__webpack_require__.r(__webpack_exports__);
3418/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; });
3419/* harmony default export */ __webpack_exports__["default"] = (function(constructor, factory, prototype) {
3420 constructor.prototype = factory.prototype = prototype;
3421 prototype.constructor = constructor;
3422});
3423
3424function extend(parent, definition) {
3425 var prototype = Object.create(parent.prototype);
3426 for (var key in definition) prototype[key] = definition[key];
3427 return prototype;
3428}
3429
3430
3431/***/ }),
3432
3433/***/ "./node_modules/d3-color/src/index.js":
3434/*!********************************************!*\
3435 !*** ./node_modules/d3-color/src/index.js ***!
3436 \********************************************/
3437/*! exports provided: color, rgb, hsl, lab, hcl, lch, gray, cubehelix */
3438/***/ (function(module, __webpack_exports__, __webpack_require__) {
3439
3440"use strict";
3441__webpack_require__.r(__webpack_exports__);
3442/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color */ "./node_modules/d3-color/src/color.js");
3443/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "color", function() { return _color__WEBPACK_IMPORTED_MODULE_0__["default"]; });
3444
3445/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return _color__WEBPACK_IMPORTED_MODULE_0__["rgb"]; });
3446
3447/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return _color__WEBPACK_IMPORTED_MODULE_0__["hsl"]; });
3448
3449/* harmony import */ var _lab__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lab */ "./node_modules/d3-color/src/lab.js");
3450/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lab", function() { return _lab__WEBPACK_IMPORTED_MODULE_1__["default"]; });
3451
3452/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return _lab__WEBPACK_IMPORTED_MODULE_1__["hcl"]; });
3453
3454/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lch", function() { return _lab__WEBPACK_IMPORTED_MODULE_1__["lch"]; });
3455
3456/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "gray", function() { return _lab__WEBPACK_IMPORTED_MODULE_1__["gray"]; });
3457
3458/* harmony import */ var _cubehelix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubehelix */ "./node_modules/d3-color/src/cubehelix.js");
3459/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cubehelix", function() { return _cubehelix__WEBPACK_IMPORTED_MODULE_2__["default"]; });
3460
3461
3462
3463
3464
3465
3466/***/ }),
3467
3468/***/ "./node_modules/d3-color/src/lab.js":
3469/*!******************************************!*\
3470 !*** ./node_modules/d3-color/src/lab.js ***!
3471 \******************************************/
3472/*! exports provided: gray, default, Lab, lch, hcl, Hcl */
3473/***/ (function(module, __webpack_exports__, __webpack_require__) {
3474
3475"use strict";
3476__webpack_require__.r(__webpack_exports__);
3477/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "gray", function() { return gray; });
3478/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return lab; });
3479/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Lab", function() { return Lab; });
3480/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lch", function() { return lch; });
3481/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return hcl; });
3482/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Hcl", function() { return Hcl; });
3483/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define */ "./node_modules/d3-color/src/define.js");
3484/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-color/src/color.js");
3485/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-color/src/math.js");
3486
3487
3488
3489
3490// https://beta.observablehq.com/@mbostock/lab-and-rgb
3491var K = 18,
3492 Xn = 0.96422,
3493 Yn = 1,
3494 Zn = 0.82521,
3495 t0 = 4 / 29,
3496 t1 = 6 / 29,
3497 t2 = 3 * t1 * t1,
3498 t3 = t1 * t1 * t1;
3499
3500function labConvert(o) {
3501 if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
3502 if (o instanceof Hcl) {
3503 if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
3504 var h = o.h * _math__WEBPACK_IMPORTED_MODULE_2__["deg2rad"];
3505 return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
3506 }
3507 if (!(o instanceof _color__WEBPACK_IMPORTED_MODULE_1__["Rgb"])) o = Object(_color__WEBPACK_IMPORTED_MODULE_1__["rgbConvert"])(o);
3508 var r = rgb2lrgb(o.r),
3509 g = rgb2lrgb(o.g),
3510 b = rgb2lrgb(o.b),
3511 y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
3512 if (r === g && g === b) x = z = y; else {
3513 x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
3514 z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
3515 }
3516 return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
3517}
3518
3519function gray(l, opacity) {
3520 return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
3521}
3522
3523function lab(l, a, b, opacity) {
3524 return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
3525}
3526
3527function Lab(l, a, b, opacity) {
3528 this.l = +l;
3529 this.a = +a;
3530 this.b = +b;
3531 this.opacity = +opacity;
3532}
3533
3534Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Lab, lab, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3535 brighter: function(k) {
3536 return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
3537 },
3538 darker: function(k) {
3539 return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
3540 },
3541 rgb: function() {
3542 var y = (this.l + 16) / 116,
3543 x = isNaN(this.a) ? y : y + this.a / 500,
3544 z = isNaN(this.b) ? y : y - this.b / 200;
3545 x = Xn * lab2xyz(x);
3546 y = Yn * lab2xyz(y);
3547 z = Zn * lab2xyz(z);
3548 return new _color__WEBPACK_IMPORTED_MODULE_1__["Rgb"](
3549 lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
3550 lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
3551 lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
3552 this.opacity
3553 );
3554 }
3555}));
3556
3557function xyz2lab(t) {
3558 return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
3559}
3560
3561function lab2xyz(t) {
3562 return t > t1 ? t * t * t : t2 * (t - t0);
3563}
3564
3565function lrgb2rgb(x) {
3566 return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
3567}
3568
3569function rgb2lrgb(x) {
3570 return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
3571}
3572
3573function hclConvert(o) {
3574 if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
3575 if (!(o instanceof Lab)) o = labConvert(o);
3576 if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0, o.l, o.opacity);
3577 var h = Math.atan2(o.b, o.a) * _math__WEBPACK_IMPORTED_MODULE_2__["rad2deg"];
3578 return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
3579}
3580
3581function lch(l, c, h, opacity) {
3582 return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
3583}
3584
3585function hcl(h, c, l, opacity) {
3586 return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
3587}
3588
3589function Hcl(h, c, l, opacity) {
3590 this.h = +h;
3591 this.c = +c;
3592 this.l = +l;
3593 this.opacity = +opacity;
3594}
3595
3596Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Hcl, hcl, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3597 brighter: function(k) {
3598 return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
3599 },
3600 darker: function(k) {
3601 return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
3602 },
3603 rgb: function() {
3604 return labConvert(this).rgb();
3605 }
3606}));
3607
3608
3609/***/ }),
3610
3611/***/ "./node_modules/d3-color/src/math.js":
3612/*!*******************************************!*\
3613 !*** ./node_modules/d3-color/src/math.js ***!
3614 \*******************************************/
3615/*! exports provided: deg2rad, rad2deg */
3616/***/ (function(module, __webpack_exports__, __webpack_require__) {
3617
3618"use strict";
3619__webpack_require__.r(__webpack_exports__);
3620/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deg2rad", function() { return deg2rad; });
3621/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rad2deg", function() { return rad2deg; });
3622var deg2rad = Math.PI / 180;
3623var rad2deg = 180 / Math.PI;
3624
3625
3626/***/ }),
3627
3628/***/ "./node_modules/d3-contour/src/area.js":
3629/*!*********************************************!*\
3630 !*** ./node_modules/d3-contour/src/area.js ***!
3631 \*********************************************/
3632/*! exports provided: default */
3633/***/ (function(module, __webpack_exports__, __webpack_require__) {
3634
3635"use strict";
3636__webpack_require__.r(__webpack_exports__);
3637/* harmony default export */ __webpack_exports__["default"] = (function(ring) {
3638 var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];
3639 while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];
3640 return area;
3641});
3642
3643
3644/***/ }),
3645
3646/***/ "./node_modules/d3-contour/src/array.js":
3647/*!**********************************************!*\
3648 !*** ./node_modules/d3-contour/src/array.js ***!
3649 \**********************************************/
3650/*! exports provided: slice */
3651/***/ (function(module, __webpack_exports__, __webpack_require__) {
3652
3653"use strict";
3654__webpack_require__.r(__webpack_exports__);
3655/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
3656var array = Array.prototype;
3657
3658var slice = array.slice;
3659
3660
3661/***/ }),
3662
3663/***/ "./node_modules/d3-contour/src/ascending.js":
3664/*!**************************************************!*\
3665 !*** ./node_modules/d3-contour/src/ascending.js ***!
3666 \**************************************************/
3667/*! exports provided: default */
3668/***/ (function(module, __webpack_exports__, __webpack_require__) {
3669
3670"use strict";
3671__webpack_require__.r(__webpack_exports__);
3672/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
3673 return a - b;
3674});
3675
3676
3677/***/ }),
3678
3679/***/ "./node_modules/d3-contour/src/blur.js":
3680/*!*********************************************!*\
3681 !*** ./node_modules/d3-contour/src/blur.js ***!
3682 \*********************************************/
3683/*! exports provided: blurX, blurY */
3684/***/ (function(module, __webpack_exports__, __webpack_require__) {
3685
3686"use strict";
3687__webpack_require__.r(__webpack_exports__);
3688/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "blurX", function() { return blurX; });
3689/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "blurY", function() { return blurY; });
3690// TODO Optimize edge cases.
3691// TODO Optimize index calculation.
3692// TODO Optimize arguments.
3693function blurX(source, target, r) {
3694 var n = source.width,
3695 m = source.height,
3696 w = (r << 1) + 1;
3697 for (var j = 0; j < m; ++j) {
3698 for (var i = 0, sr = 0; i < n + r; ++i) {
3699 if (i < n) {
3700 sr += source.data[i + j * n];
3701 }
3702 if (i >= r) {
3703 if (i >= w) {
3704 sr -= source.data[i - w + j * n];
3705 }
3706 target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);
3707 }
3708 }
3709 }
3710}
3711
3712// TODO Optimize edge cases.
3713// TODO Optimize index calculation.
3714// TODO Optimize arguments.
3715function blurY(source, target, r) {
3716 var n = source.width,
3717 m = source.height,
3718 w = (r << 1) + 1;
3719 for (var i = 0; i < n; ++i) {
3720 for (var j = 0, sr = 0; j < m + r; ++j) {
3721 if (j < m) {
3722 sr += source.data[i + j * n];
3723 }
3724 if (j >= r) {
3725 if (j >= w) {
3726 sr -= source.data[i + (j - w) * n];
3727 }
3728 target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);
3729 }
3730 }
3731 }
3732}
3733
3734
3735/***/ }),
3736
3737/***/ "./node_modules/d3-contour/src/constant.js":
3738/*!*************************************************!*\
3739 !*** ./node_modules/d3-contour/src/constant.js ***!
3740 \*************************************************/
3741/*! exports provided: default */
3742/***/ (function(module, __webpack_exports__, __webpack_require__) {
3743
3744"use strict";
3745__webpack_require__.r(__webpack_exports__);
3746/* harmony default export */ __webpack_exports__["default"] = (function(x) {
3747 return function() {
3748 return x;
3749 };
3750});
3751
3752
3753/***/ }),
3754
3755/***/ "./node_modules/d3-contour/src/contains.js":
3756/*!*************************************************!*\
3757 !*** ./node_modules/d3-contour/src/contains.js ***!
3758 \*************************************************/
3759/*! exports provided: default */
3760/***/ (function(module, __webpack_exports__, __webpack_require__) {
3761
3762"use strict";
3763__webpack_require__.r(__webpack_exports__);
3764/* harmony default export */ __webpack_exports__["default"] = (function(ring, hole) {
3765 var i = -1, n = hole.length, c;
3766 while (++i < n) if (c = ringContains(ring, hole[i])) return c;
3767 return 0;
3768});
3769
3770function ringContains(ring, point) {
3771 var x = point[0], y = point[1], contains = -1;
3772 for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {
3773 var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];
3774 if (segmentContains(pi, pj, point)) return 0;
3775 if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;
3776 }
3777 return contains;
3778}
3779
3780function segmentContains(a, b, c) {
3781 var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);
3782}
3783
3784function collinear(a, b, c) {
3785 return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);
3786}
3787
3788function within(p, q, r) {
3789 return p <= q && q <= r || r <= q && q <= p;
3790}
3791
3792
3793/***/ }),
3794
3795/***/ "./node_modules/d3-contour/src/contours.js":
3796/*!*************************************************!*\
3797 !*** ./node_modules/d3-contour/src/contours.js ***!
3798 \*************************************************/
3799/*! exports provided: default */
3800/***/ (function(module, __webpack_exports__, __webpack_require__) {
3801
3802"use strict";
3803__webpack_require__.r(__webpack_exports__);
3804/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
3805/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-contour/src/array.js");
3806/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-contour/src/ascending.js");
3807/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./area */ "./node_modules/d3-contour/src/area.js");
3808/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-contour/src/constant.js");
3809/* harmony import */ var _contains__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contains */ "./node_modules/d3-contour/src/contains.js");
3810/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./noop */ "./node_modules/d3-contour/src/noop.js");
3811
3812
3813
3814
3815
3816
3817
3818
3819var cases = [
3820 [],
3821 [[[1.0, 1.5], [0.5, 1.0]]],
3822 [[[1.5, 1.0], [1.0, 1.5]]],
3823 [[[1.5, 1.0], [0.5, 1.0]]],
3824 [[[1.0, 0.5], [1.5, 1.0]]],
3825 [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],
3826 [[[1.0, 0.5], [1.0, 1.5]]],
3827 [[[1.0, 0.5], [0.5, 1.0]]],
3828 [[[0.5, 1.0], [1.0, 0.5]]],
3829 [[[1.0, 1.5], [1.0, 0.5]]],
3830 [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],
3831 [[[1.5, 1.0], [1.0, 0.5]]],
3832 [[[0.5, 1.0], [1.5, 1.0]]],
3833 [[[1.0, 1.5], [1.5, 1.0]]],
3834 [[[0.5, 1.0], [1.0, 1.5]]],
3835 []
3836];
3837
3838/* harmony default export */ __webpack_exports__["default"] = (function() {
3839 var dx = 1,
3840 dy = 1,
3841 threshold = d3_array__WEBPACK_IMPORTED_MODULE_0__["thresholdSturges"],
3842 smooth = smoothLinear;
3843
3844 function contours(values) {
3845 var tz = threshold(values);
3846
3847 // Convert number of thresholds into uniform thresholds.
3848 if (!Array.isArray(tz)) {
3849 var domain = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["extent"])(values), start = domain[0], stop = domain[1];
3850 tz = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start, stop, tz);
3851 tz = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);
3852 } else {
3853 tz = tz.slice().sort(_ascending__WEBPACK_IMPORTED_MODULE_2__["default"]);
3854 }
3855
3856 return tz.map(function(value) {
3857 return contour(values, value);
3858 });
3859 }
3860
3861 // Accumulate, smooth contour rings, assign holes to exterior rings.
3862 // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
3863 function contour(values, value) {
3864 var polygons = [],
3865 holes = [];
3866
3867 isorings(values, value, function(ring) {
3868 smooth(ring, values, value);
3869 if (Object(_area__WEBPACK_IMPORTED_MODULE_3__["default"])(ring) > 0) polygons.push([ring]);
3870 else holes.push(ring);
3871 });
3872
3873 holes.forEach(function(hole) {
3874 for (var i = 0, n = polygons.length, polygon; i < n; ++i) {
3875 if (Object(_contains__WEBPACK_IMPORTED_MODULE_5__["default"])((polygon = polygons[i])[0], hole) !== -1) {
3876 polygon.push(hole);
3877 return;
3878 }
3879 }
3880 });
3881
3882 return {
3883 type: "MultiPolygon",
3884 value: value,
3885 coordinates: polygons
3886 };
3887 }
3888
3889 // Marching squares with isolines stitched into rings.
3890 // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js
3891 function isorings(values, value, callback) {
3892 var fragmentByStart = new Array,
3893 fragmentByEnd = new Array,
3894 x, y, t0, t1, t2, t3;
3895
3896 // Special case for the first row (y = -1, t2 = t3 = 0).
3897 x = y = -1;
3898 t1 = values[0] >= value;
3899 cases[t1 << 1].forEach(stitch);
3900 while (++x < dx - 1) {
3901 t0 = t1, t1 = values[x + 1] >= value;
3902 cases[t0 | t1 << 1].forEach(stitch);
3903 }
3904 cases[t1 << 0].forEach(stitch);
3905
3906 // General case for the intermediate rows.
3907 while (++y < dy - 1) {
3908 x = -1;
3909 t1 = values[y * dx + dx] >= value;
3910 t2 = values[y * dx] >= value;
3911 cases[t1 << 1 | t2 << 2].forEach(stitch);
3912 while (++x < dx - 1) {
3913 t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;
3914 t3 = t2, t2 = values[y * dx + x + 1] >= value;
3915 cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
3916 }
3917 cases[t1 | t2 << 3].forEach(stitch);
3918 }
3919
3920 // Special case for the last row (y = dy - 1, t0 = t1 = 0).
3921 x = -1;
3922 t2 = values[y * dx] >= value;
3923 cases[t2 << 2].forEach(stitch);
3924 while (++x < dx - 1) {
3925 t3 = t2, t2 = values[y * dx + x + 1] >= value;
3926 cases[t2 << 2 | t3 << 3].forEach(stitch);
3927 }
3928 cases[t2 << 3].forEach(stitch);
3929
3930 function stitch(line) {
3931 var start = [line[0][0] + x, line[0][1] + y],
3932 end = [line[1][0] + x, line[1][1] + y],
3933 startIndex = index(start),
3934 endIndex = index(end),
3935 f, g;
3936 if (f = fragmentByEnd[startIndex]) {
3937 if (g = fragmentByStart[endIndex]) {
3938 delete fragmentByEnd[f.end];
3939 delete fragmentByStart[g.start];
3940 if (f === g) {
3941 f.ring.push(end);
3942 callback(f.ring);
3943 } else {
3944 fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};
3945 }
3946 } else {
3947 delete fragmentByEnd[f.end];
3948 f.ring.push(end);
3949 fragmentByEnd[f.end = endIndex] = f;
3950 }
3951 } else if (f = fragmentByStart[endIndex]) {
3952 if (g = fragmentByEnd[startIndex]) {
3953 delete fragmentByStart[f.start];
3954 delete fragmentByEnd[g.end];
3955 if (f === g) {
3956 f.ring.push(end);
3957 callback(f.ring);
3958 } else {
3959 fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};
3960 }
3961 } else {
3962 delete fragmentByStart[f.start];
3963 f.ring.unshift(start);
3964 fragmentByStart[f.start = startIndex] = f;
3965 }
3966 } else {
3967 fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};
3968 }
3969 }
3970 }
3971
3972 function index(point) {
3973 return point[0] * 2 + point[1] * (dx + 1) * 4;
3974 }
3975
3976 function smoothLinear(ring, values, value) {
3977 ring.forEach(function(point) {
3978 var x = point[0],
3979 y = point[1],
3980 xt = x | 0,
3981 yt = y | 0,
3982 v0,
3983 v1 = values[yt * dx + xt];
3984 if (x > 0 && x < dx && xt === x) {
3985 v0 = values[yt * dx + xt - 1];
3986 point[0] = x + (value - v0) / (v1 - v0) - 0.5;
3987 }
3988 if (y > 0 && y < dy && yt === y) {
3989 v0 = values[(yt - 1) * dx + xt];
3990 point[1] = y + (value - v0) / (v1 - v0) - 0.5;
3991 }
3992 });
3993 }
3994
3995 contours.contour = contour;
3996
3997 contours.size = function(_) {
3998 if (!arguments.length) return [dx, dy];
3999 var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);
4000 if (!(_0 > 0) || !(_1 > 0)) throw new Error("invalid size");
4001 return dx = _0, dy = _1, contours;
4002 };
4003
4004 contours.thresholds = function(_) {
4005 return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(_array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_)) : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(_), contours) : threshold;
4006 };
4007
4008 contours.smooth = function(_) {
4009 return arguments.length ? (smooth = _ ? smoothLinear : _noop__WEBPACK_IMPORTED_MODULE_6__["default"], contours) : smooth === smoothLinear;
4010 };
4011
4012 return contours;
4013});
4014
4015
4016/***/ }),
4017
4018/***/ "./node_modules/d3-contour/src/density.js":
4019/*!************************************************!*\
4020 !*** ./node_modules/d3-contour/src/density.js ***!
4021 \************************************************/
4022/*! exports provided: default */
4023/***/ (function(module, __webpack_exports__, __webpack_require__) {
4024
4025"use strict";
4026__webpack_require__.r(__webpack_exports__);
4027/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
4028/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-contour/src/array.js");
4029/* harmony import */ var _blur__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blur */ "./node_modules/d3-contour/src/blur.js");
4030/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-contour/src/constant.js");
4031/* harmony import */ var _contours__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./contours */ "./node_modules/d3-contour/src/contours.js");
4032
4033
4034
4035
4036
4037
4038function defaultX(d) {
4039 return d[0];
4040}
4041
4042function defaultY(d) {
4043 return d[1];
4044}
4045
4046function defaultWeight() {
4047 return 1;
4048}
4049
4050/* harmony default export */ __webpack_exports__["default"] = (function() {
4051 var x = defaultX,
4052 y = defaultY,
4053 weight = defaultWeight,
4054 dx = 960,
4055 dy = 500,
4056 r = 20, // blur radius
4057 k = 2, // log2(grid cell size)
4058 o = r * 3, // grid offset, to pad for blur
4059 n = (dx + o * 2) >> k, // grid width
4060 m = (dy + o * 2) >> k, // grid height
4061 threshold = Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(20);
4062
4063 function density(data) {
4064 var values0 = new Float32Array(n * m),
4065 values1 = new Float32Array(n * m);
4066
4067 data.forEach(function(d, i, data) {
4068 var xi = (+x(d, i, data) + o) >> k,
4069 yi = (+y(d, i, data) + o) >> k,
4070 wi = +weight(d, i, data);
4071 if (xi >= 0 && xi < n && yi >= 0 && yi < m) {
4072 values0[xi + yi * n] += wi;
4073 }
4074 });
4075
4076 // TODO Optimize.
4077 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurX"])({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
4078 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurY"])({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
4079 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurX"])({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
4080 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurY"])({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
4081 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurX"])({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
4082 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurY"])({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
4083
4084 var tz = threshold(values0);
4085
4086 // Convert number of thresholds into uniform thresholds.
4087 if (!Array.isArray(tz)) {
4088 var stop = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["max"])(values0);
4089 tz = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(0, stop, tz);
4090 tz = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(0, Math.floor(stop / tz) * tz, tz);
4091 tz.shift();
4092 }
4093
4094 return Object(_contours__WEBPACK_IMPORTED_MODULE_4__["default"])()
4095 .thresholds(tz)
4096 .size([n, m])
4097 (values0)
4098 .map(transform);
4099 }
4100
4101 function transform(geometry) {
4102 geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.
4103 geometry.coordinates.forEach(transformPolygon);
4104 return geometry;
4105 }
4106
4107 function transformPolygon(coordinates) {
4108 coordinates.forEach(transformRing);
4109 }
4110
4111 function transformRing(coordinates) {
4112 coordinates.forEach(transformPoint);
4113 }
4114
4115 // TODO Optimize.
4116 function transformPoint(coordinates) {
4117 coordinates[0] = coordinates[0] * Math.pow(2, k) - o;
4118 coordinates[1] = coordinates[1] * Math.pow(2, k) - o;
4119 }
4120
4121 function resize() {
4122 o = r * 3;
4123 n = (dx + o * 2) >> k;
4124 m = (dy + o * 2) >> k;
4125 return density;
4126 }
4127
4128 density.x = function(_) {
4129 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), density) : x;
4130 };
4131
4132 density.y = function(_) {
4133 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), density) : y;
4134 };
4135
4136 density.weight = function(_) {
4137 return arguments.length ? (weight = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), density) : weight;
4138 };
4139
4140 density.size = function(_) {
4141 if (!arguments.length) return [dx, dy];
4142 var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);
4143 if (!(_0 >= 0) && !(_0 >= 0)) throw new Error("invalid size");
4144 return dx = _0, dy = _1, resize();
4145 };
4146
4147 density.cellSize = function(_) {
4148 if (!arguments.length) return 1 << k;
4149 if (!((_ = +_) >= 1)) throw new Error("invalid cell size");
4150 return k = Math.floor(Math.log(_) / Math.LN2), resize();
4151 };
4152
4153 density.thresholds = function(_) {
4154 return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(_array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_)) : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(_), density) : threshold;
4155 };
4156
4157 density.bandwidth = function(_) {
4158 if (!arguments.length) return Math.sqrt(r * (r + 1));
4159 if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth");
4160 return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();
4161 };
4162
4163 return density;
4164});
4165
4166
4167/***/ }),
4168
4169/***/ "./node_modules/d3-contour/src/index.js":
4170/*!**********************************************!*\
4171 !*** ./node_modules/d3-contour/src/index.js ***!
4172 \**********************************************/
4173/*! exports provided: contours, contourDensity */
4174/***/ (function(module, __webpack_exports__, __webpack_require__) {
4175
4176"use strict";
4177__webpack_require__.r(__webpack_exports__);
4178/* harmony import */ var _contours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./contours */ "./node_modules/d3-contour/src/contours.js");
4179/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contours", function() { return _contours__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4180
4181/* harmony import */ var _density__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./density */ "./node_modules/d3-contour/src/density.js");
4182/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contourDensity", function() { return _density__WEBPACK_IMPORTED_MODULE_1__["default"]; });
4183
4184
4185
4186
4187
4188/***/ }),
4189
4190/***/ "./node_modules/d3-contour/src/noop.js":
4191/*!*********************************************!*\
4192 !*** ./node_modules/d3-contour/src/noop.js ***!
4193 \*********************************************/
4194/*! exports provided: default */
4195/***/ (function(module, __webpack_exports__, __webpack_require__) {
4196
4197"use strict";
4198__webpack_require__.r(__webpack_exports__);
4199/* harmony default export */ __webpack_exports__["default"] = (function() {});
4200
4201
4202/***/ }),
4203
4204/***/ "./node_modules/d3-dispatch/src/dispatch.js":
4205/*!**************************************************!*\
4206 !*** ./node_modules/d3-dispatch/src/dispatch.js ***!
4207 \**************************************************/
4208/*! exports provided: default */
4209/***/ (function(module, __webpack_exports__, __webpack_require__) {
4210
4211"use strict";
4212__webpack_require__.r(__webpack_exports__);
4213var noop = {value: function() {}};
4214
4215function dispatch() {
4216 for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
4217 if (!(t = arguments[i] + "") || (t in _)) throw new Error("illegal type: " + t);
4218 _[t] = [];
4219 }
4220 return new Dispatch(_);
4221}
4222
4223function Dispatch(_) {
4224 this._ = _;
4225}
4226
4227function parseTypenames(typenames, types) {
4228 return typenames.trim().split(/^|\s+/).map(function(t) {
4229 var name = "", i = t.indexOf(".");
4230 if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
4231 if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
4232 return {type: t, name: name};
4233 });
4234}
4235
4236Dispatch.prototype = dispatch.prototype = {
4237 constructor: Dispatch,
4238 on: function(typename, callback) {
4239 var _ = this._,
4240 T = parseTypenames(typename + "", _),
4241 t,
4242 i = -1,
4243 n = T.length;
4244
4245 // If no callback was specified, return the callback of the given type and name.
4246 if (arguments.length < 2) {
4247 while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
4248 return;
4249 }
4250
4251 // If a type was specified, set the callback for the given type and name.
4252 // Otherwise, if a null callback was specified, remove callbacks of the given name.
4253 if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
4254 while (++i < n) {
4255 if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
4256 else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
4257 }
4258
4259 return this;
4260 },
4261 copy: function() {
4262 var copy = {}, _ = this._;
4263 for (var t in _) copy[t] = _[t].slice();
4264 return new Dispatch(copy);
4265 },
4266 call: function(type, that) {
4267 if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
4268 if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
4269 for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
4270 },
4271 apply: function(type, that, args) {
4272 if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
4273 for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
4274 }
4275};
4276
4277function get(type, name) {
4278 for (var i = 0, n = type.length, c; i < n; ++i) {
4279 if ((c = type[i]).name === name) {
4280 return c.value;
4281 }
4282 }
4283}
4284
4285function set(type, name, callback) {
4286 for (var i = 0, n = type.length; i < n; ++i) {
4287 if (type[i].name === name) {
4288 type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
4289 break;
4290 }
4291 }
4292 if (callback != null) type.push({name: name, value: callback});
4293 return type;
4294}
4295
4296/* harmony default export */ __webpack_exports__["default"] = (dispatch);
4297
4298
4299/***/ }),
4300
4301/***/ "./node_modules/d3-dispatch/src/index.js":
4302/*!***********************************************!*\
4303 !*** ./node_modules/d3-dispatch/src/index.js ***!
4304 \***********************************************/
4305/*! exports provided: dispatch */
4306/***/ (function(module, __webpack_exports__, __webpack_require__) {
4307
4308"use strict";
4309__webpack_require__.r(__webpack_exports__);
4310/* harmony import */ var _dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dispatch */ "./node_modules/d3-dispatch/src/dispatch.js");
4311/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return _dispatch__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4312
4313
4314
4315
4316/***/ }),
4317
4318/***/ "./node_modules/d3-drag/src/constant.js":
4319/*!**********************************************!*\
4320 !*** ./node_modules/d3-drag/src/constant.js ***!
4321 \**********************************************/
4322/*! exports provided: default */
4323/***/ (function(module, __webpack_exports__, __webpack_require__) {
4324
4325"use strict";
4326__webpack_require__.r(__webpack_exports__);
4327/* harmony default export */ __webpack_exports__["default"] = (function(x) {
4328 return function() {
4329 return x;
4330 };
4331});
4332
4333
4334/***/ }),
4335
4336/***/ "./node_modules/d3-drag/src/drag.js":
4337/*!******************************************!*\
4338 !*** ./node_modules/d3-drag/src/drag.js ***!
4339 \******************************************/
4340/*! exports provided: default */
4341/***/ (function(module, __webpack_exports__, __webpack_require__) {
4342
4343"use strict";
4344__webpack_require__.r(__webpack_exports__);
4345/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
4346/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
4347/* harmony import */ var _nodrag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nodrag */ "./node_modules/d3-drag/src/nodrag.js");
4348/* harmony import */ var _noevent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./noevent */ "./node_modules/d3-drag/src/noevent.js");
4349/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-drag/src/constant.js");
4350/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event */ "./node_modules/d3-drag/src/event.js");
4351
4352
4353
4354
4355
4356
4357
4358// Ignore right-click, since that should open the context menu.
4359function defaultFilter() {
4360 return !d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].button;
4361}
4362
4363function defaultContainer() {
4364 return this.parentNode;
4365}
4366
4367function defaultSubject(d) {
4368 return d == null ? {x: d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].x, y: d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].y} : d;
4369}
4370
4371function defaultTouchable() {
4372 return "ontouchstart" in this;
4373}
4374
4375/* harmony default export */ __webpack_exports__["default"] = (function() {
4376 var filter = defaultFilter,
4377 container = defaultContainer,
4378 subject = defaultSubject,
4379 touchable = defaultTouchable,
4380 gestures = {},
4381 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "drag", "end"),
4382 active = 0,
4383 mousedownx,
4384 mousedowny,
4385 mousemoving,
4386 touchending,
4387 clickDistance2 = 0;
4388
4389 function drag(selection) {
4390 selection
4391 .on("mousedown.drag", mousedowned)
4392 .filter(touchable)
4393 .on("touchstart.drag", touchstarted)
4394 .on("touchmove.drag", touchmoved)
4395 .on("touchend.drag touchcancel.drag", touchended)
4396 .style("touch-action", "none")
4397 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
4398 }
4399
4400 function mousedowned() {
4401 if (touchending || !filter.apply(this, arguments)) return;
4402 var gesture = beforestart("mouse", container.apply(this, arguments), d3_selection__WEBPACK_IMPORTED_MODULE_1__["mouse"], this, arguments);
4403 if (!gesture) return;
4404 Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["select"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true);
4405 Object(_nodrag__WEBPACK_IMPORTED_MODULE_2__["default"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view);
4406 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
4407 mousemoving = false;
4408 mousedownx = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientX;
4409 mousedowny = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientY;
4410 gesture("start");
4411 }
4412
4413 function mousemoved() {
4414 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["default"])();
4415 if (!mousemoving) {
4416 var dx = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientX - mousedownx, dy = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientY - mousedowny;
4417 mousemoving = dx * dx + dy * dy > clickDistance2;
4418 }
4419 gestures.mouse("drag");
4420 }
4421
4422 function mouseupped() {
4423 Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["select"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view).on("mousemove.drag mouseup.drag", null);
4424 Object(_nodrag__WEBPACK_IMPORTED_MODULE_2__["yesdrag"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view, mousemoving);
4425 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["default"])();
4426 gestures.mouse("end");
4427 }
4428
4429 function touchstarted() {
4430 if (!filter.apply(this, arguments)) return;
4431 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
4432 c = container.apply(this, arguments),
4433 n = touches.length, i, gesture;
4434
4435 for (i = 0; i < n; ++i) {
4436 if (gesture = beforestart(touches[i].identifier, c, d3_selection__WEBPACK_IMPORTED_MODULE_1__["touch"], this, arguments)) {
4437 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
4438 gesture("start");
4439 }
4440 }
4441 }
4442
4443 function touchmoved() {
4444 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
4445 n = touches.length, i, gesture;
4446
4447 for (i = 0; i < n; ++i) {
4448 if (gesture = gestures[touches[i].identifier]) {
4449 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["default"])();
4450 gesture("drag");
4451 }
4452 }
4453 }
4454
4455 function touchended() {
4456 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
4457 n = touches.length, i, gesture;
4458
4459 if (touchending) clearTimeout(touchending);
4460 touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
4461 for (i = 0; i < n; ++i) {
4462 if (gesture = gestures[touches[i].identifier]) {
4463 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
4464 gesture("end");
4465 }
4466 }
4467 }
4468
4469 function beforestart(id, container, point, that, args) {
4470 var p = point(container, id), s, dx, dy,
4471 sublisteners = listeners.copy();
4472
4473 if (!Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["customEvent"])(new _event__WEBPACK_IMPORTED_MODULE_5__["default"](drag, "beforestart", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {
4474 if ((d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].subject = s = subject.apply(that, args)) == null) return false;
4475 dx = s.x - p[0] || 0;
4476 dy = s.y - p[1] || 0;
4477 return true;
4478 })) return;
4479
4480 return function gesture(type) {
4481 var p0 = p, n;
4482 switch (type) {
4483 case "start": gestures[id] = gesture, n = active++; break;
4484 case "end": delete gestures[id], --active; // nobreak
4485 case "drag": p = point(container, id), n = active; break;
4486 }
4487 Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["customEvent"])(new _event__WEBPACK_IMPORTED_MODULE_5__["default"](drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);
4488 };
4489 }
4490
4491 drag.filter = function(_) {
4492 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(!!_), drag) : filter;
4493 };
4494
4495 drag.container = function(_) {
4496 return arguments.length ? (container = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(_), drag) : container;
4497 };
4498
4499 drag.subject = function(_) {
4500 return arguments.length ? (subject = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(_), drag) : subject;
4501 };
4502
4503 drag.touchable = function(_) {
4504 return arguments.length ? (touchable = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(!!_), drag) : touchable;
4505 };
4506
4507 drag.on = function() {
4508 var value = listeners.on.apply(listeners, arguments);
4509 return value === listeners ? drag : value;
4510 };
4511
4512 drag.clickDistance = function(_) {
4513 return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
4514 };
4515
4516 return drag;
4517});
4518
4519
4520/***/ }),
4521
4522/***/ "./node_modules/d3-drag/src/event.js":
4523/*!*******************************************!*\
4524 !*** ./node_modules/d3-drag/src/event.js ***!
4525 \*******************************************/
4526/*! exports provided: default */
4527/***/ (function(module, __webpack_exports__, __webpack_require__) {
4528
4529"use strict";
4530__webpack_require__.r(__webpack_exports__);
4531/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return DragEvent; });
4532function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {
4533 this.target = target;
4534 this.type = type;
4535 this.subject = subject;
4536 this.identifier = id;
4537 this.active = active;
4538 this.x = x;
4539 this.y = y;
4540 this.dx = dx;
4541 this.dy = dy;
4542 this._ = dispatch;
4543}
4544
4545DragEvent.prototype.on = function() {
4546 var value = this._.on.apply(this._, arguments);
4547 return value === this._ ? this : value;
4548};
4549
4550
4551/***/ }),
4552
4553/***/ "./node_modules/d3-drag/src/index.js":
4554/*!*******************************************!*\
4555 !*** ./node_modules/d3-drag/src/index.js ***!
4556 \*******************************************/
4557/*! exports provided: drag, dragDisable, dragEnable */
4558/***/ (function(module, __webpack_exports__, __webpack_require__) {
4559
4560"use strict";
4561__webpack_require__.r(__webpack_exports__);
4562/* harmony import */ var _drag__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag */ "./node_modules/d3-drag/src/drag.js");
4563/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "drag", function() { return _drag__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4564
4565/* harmony import */ var _nodrag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nodrag */ "./node_modules/d3-drag/src/nodrag.js");
4566/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragDisable", function() { return _nodrag__WEBPACK_IMPORTED_MODULE_1__["default"]; });
4567
4568/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragEnable", function() { return _nodrag__WEBPACK_IMPORTED_MODULE_1__["yesdrag"]; });
4569
4570
4571
4572
4573
4574/***/ }),
4575
4576/***/ "./node_modules/d3-drag/src/nodrag.js":
4577/*!********************************************!*\
4578 !*** ./node_modules/d3-drag/src/nodrag.js ***!
4579 \********************************************/
4580/*! exports provided: default, yesdrag */
4581/***/ (function(module, __webpack_exports__, __webpack_require__) {
4582
4583"use strict";
4584__webpack_require__.r(__webpack_exports__);
4585/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yesdrag", function() { return yesdrag; });
4586/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
4587/* harmony import */ var _noevent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noevent */ "./node_modules/d3-drag/src/noevent.js");
4588
4589
4590
4591/* harmony default export */ __webpack_exports__["default"] = (function(view) {
4592 var root = view.document.documentElement,
4593 selection = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["select"])(view).on("dragstart.drag", _noevent__WEBPACK_IMPORTED_MODULE_1__["default"], true);
4594 if ("onselectstart" in root) {
4595 selection.on("selectstart.drag", _noevent__WEBPACK_IMPORTED_MODULE_1__["default"], true);
4596 } else {
4597 root.__noselect = root.style.MozUserSelect;
4598 root.style.MozUserSelect = "none";
4599 }
4600});
4601
4602function yesdrag(view, noclick) {
4603 var root = view.document.documentElement,
4604 selection = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["select"])(view).on("dragstart.drag", null);
4605 if (noclick) {
4606 selection.on("click.drag", _noevent__WEBPACK_IMPORTED_MODULE_1__["default"], true);
4607 setTimeout(function() { selection.on("click.drag", null); }, 0);
4608 }
4609 if ("onselectstart" in root) {
4610 selection.on("selectstart.drag", null);
4611 } else {
4612 root.style.MozUserSelect = root.__noselect;
4613 delete root.__noselect;
4614 }
4615}
4616
4617
4618/***/ }),
4619
4620/***/ "./node_modules/d3-drag/src/noevent.js":
4621/*!*********************************************!*\
4622 !*** ./node_modules/d3-drag/src/noevent.js ***!
4623 \*********************************************/
4624/*! exports provided: nopropagation, default */
4625/***/ (function(module, __webpack_exports__, __webpack_require__) {
4626
4627"use strict";
4628__webpack_require__.r(__webpack_exports__);
4629/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
4630/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
4631
4632
4633function nopropagation() {
4634 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
4635}
4636
4637/* harmony default export */ __webpack_exports__["default"] = (function() {
4638 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
4639 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
4640});
4641
4642
4643/***/ }),
4644
4645/***/ "./node_modules/d3-dsv/src/csv.js":
4646/*!****************************************!*\
4647 !*** ./node_modules/d3-dsv/src/csv.js ***!
4648 \****************************************/
4649/*! exports provided: csvParse, csvParseRows, csvFormat, csvFormatRows */
4650/***/ (function(module, __webpack_exports__, __webpack_require__) {
4651
4652"use strict";
4653__webpack_require__.r(__webpack_exports__);
4654/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return csvParse; });
4655/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return csvParseRows; });
4656/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return csvFormat; });
4657/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return csvFormatRows; });
4658/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-dsv/src/dsv.js");
4659
4660
4661var csv = Object(_dsv__WEBPACK_IMPORTED_MODULE_0__["default"])(",");
4662
4663var csvParse = csv.parse;
4664var csvParseRows = csv.parseRows;
4665var csvFormat = csv.format;
4666var csvFormatRows = csv.formatRows;
4667
4668
4669/***/ }),
4670
4671/***/ "./node_modules/d3-dsv/src/dsv.js":
4672/*!****************************************!*\
4673 !*** ./node_modules/d3-dsv/src/dsv.js ***!
4674 \****************************************/
4675/*! exports provided: default */
4676/***/ (function(module, __webpack_exports__, __webpack_require__) {
4677
4678"use strict";
4679__webpack_require__.r(__webpack_exports__);
4680var EOL = {},
4681 EOF = {},
4682 QUOTE = 34,
4683 NEWLINE = 10,
4684 RETURN = 13;
4685
4686function objectConverter(columns) {
4687 return new Function("d", "return {" + columns.map(function(name, i) {
4688 return JSON.stringify(name) + ": d[" + i + "]";
4689 }).join(",") + "}");
4690}
4691
4692function customConverter(columns, f) {
4693 var object = objectConverter(columns);
4694 return function(row, i) {
4695 return f(object(row), i, columns);
4696 };
4697}
4698
4699// Compute unique columns in order of discovery.
4700function inferColumns(rows) {
4701 var columnSet = Object.create(null),
4702 columns = [];
4703
4704 rows.forEach(function(row) {
4705 for (var column in row) {
4706 if (!(column in columnSet)) {
4707 columns.push(columnSet[column] = column);
4708 }
4709 }
4710 });
4711
4712 return columns;
4713}
4714
4715/* harmony default export */ __webpack_exports__["default"] = (function(delimiter) {
4716 var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
4717 DELIMITER = delimiter.charCodeAt(0);
4718
4719 function parse(text, f) {
4720 var convert, columns, rows = parseRows(text, function(row, i) {
4721 if (convert) return convert(row, i - 1);
4722 columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
4723 });
4724 rows.columns = columns || [];
4725 return rows;
4726 }
4727
4728 function parseRows(text, f) {
4729 var rows = [], // output rows
4730 N = text.length,
4731 I = 0, // current character index
4732 n = 0, // current line number
4733 t, // current token
4734 eof = N <= 0, // current token followed by EOF?
4735 eol = false; // current token followed by EOL?
4736
4737 // Strip the trailing newline.
4738 if (text.charCodeAt(N - 1) === NEWLINE) --N;
4739 if (text.charCodeAt(N - 1) === RETURN) --N;
4740
4741 function token() {
4742 if (eof) return EOF;
4743 if (eol) return eol = false, EOL;
4744
4745 // Unescape quotes.
4746 var i, j = I, c;
4747 if (text.charCodeAt(j) === QUOTE) {
4748 while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
4749 if ((i = I) >= N) eof = true;
4750 else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
4751 else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
4752 return text.slice(j + 1, i - 1).replace(/""/g, "\"");
4753 }
4754
4755 // Find next delimiter or newline.
4756 while (I < N) {
4757 if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
4758 else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
4759 else if (c !== DELIMITER) continue;
4760 return text.slice(j, i);
4761 }
4762
4763 // Return last token before EOF.
4764 return eof = true, text.slice(j, N);
4765 }
4766
4767 while ((t = token()) !== EOF) {
4768 var row = [];
4769 while (t !== EOL && t !== EOF) row.push(t), t = token();
4770 if (f && (row = f(row, n++)) == null) continue;
4771 rows.push(row);
4772 }
4773
4774 return rows;
4775 }
4776
4777 function format(rows, columns) {
4778 if (columns == null) columns = inferColumns(rows);
4779 return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {
4780 return columns.map(function(column) {
4781 return formatValue(row[column]);
4782 }).join(delimiter);
4783 })).join("\n");
4784 }
4785
4786 function formatRows(rows) {
4787 return rows.map(formatRow).join("\n");
4788 }
4789
4790 function formatRow(row) {
4791 return row.map(formatValue).join(delimiter);
4792 }
4793
4794 function formatValue(text) {
4795 return text == null ? ""
4796 : reFormat.test(text += "") ? "\"" + text.replace(/"/g, "\"\"") + "\""
4797 : text;
4798 }
4799
4800 return {
4801 parse: parse,
4802 parseRows: parseRows,
4803 format: format,
4804 formatRows: formatRows
4805 };
4806});
4807
4808
4809/***/ }),
4810
4811/***/ "./node_modules/d3-dsv/src/index.js":
4812/*!******************************************!*\
4813 !*** ./node_modules/d3-dsv/src/index.js ***!
4814 \******************************************/
4815/*! exports provided: dsvFormat, csvParse, csvParseRows, csvFormat, csvFormatRows, tsvParse, tsvParseRows, tsvFormat, tsvFormatRows */
4816/***/ (function(module, __webpack_exports__, __webpack_require__) {
4817
4818"use strict";
4819__webpack_require__.r(__webpack_exports__);
4820/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-dsv/src/dsv.js");
4821/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsvFormat", function() { return _dsv__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4822
4823/* harmony import */ var _csv__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./csv */ "./node_modules/d3-dsv/src/csv.js");
4824/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return _csv__WEBPACK_IMPORTED_MODULE_1__["csvParse"]; });
4825
4826/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return _csv__WEBPACK_IMPORTED_MODULE_1__["csvParseRows"]; });
4827
4828/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return _csv__WEBPACK_IMPORTED_MODULE_1__["csvFormat"]; });
4829
4830/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return _csv__WEBPACK_IMPORTED_MODULE_1__["csvFormatRows"]; });
4831
4832/* harmony import */ var _tsv__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tsv */ "./node_modules/d3-dsv/src/tsv.js");
4833/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return _tsv__WEBPACK_IMPORTED_MODULE_2__["tsvParse"]; });
4834
4835/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return _tsv__WEBPACK_IMPORTED_MODULE_2__["tsvParseRows"]; });
4836
4837/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return _tsv__WEBPACK_IMPORTED_MODULE_2__["tsvFormat"]; });
4838
4839/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return _tsv__WEBPACK_IMPORTED_MODULE_2__["tsvFormatRows"]; });
4840
4841
4842
4843
4844
4845
4846/***/ }),
4847
4848/***/ "./node_modules/d3-dsv/src/tsv.js":
4849/*!****************************************!*\
4850 !*** ./node_modules/d3-dsv/src/tsv.js ***!
4851 \****************************************/
4852/*! exports provided: tsvParse, tsvParseRows, tsvFormat, tsvFormatRows */
4853/***/ (function(module, __webpack_exports__, __webpack_require__) {
4854
4855"use strict";
4856__webpack_require__.r(__webpack_exports__);
4857/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return tsvParse; });
4858/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return tsvParseRows; });
4859/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return tsvFormat; });
4860/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return tsvFormatRows; });
4861/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-dsv/src/dsv.js");
4862
4863
4864var tsv = Object(_dsv__WEBPACK_IMPORTED_MODULE_0__["default"])("\t");
4865
4866var tsvParse = tsv.parse;
4867var tsvParseRows = tsv.parseRows;
4868var tsvFormat = tsv.format;
4869var tsvFormatRows = tsv.formatRows;
4870
4871
4872/***/ }),
4873
4874/***/ "./node_modules/d3-ease/src/back.js":
4875/*!******************************************!*\
4876 !*** ./node_modules/d3-ease/src/back.js ***!
4877 \******************************************/
4878/*! exports provided: backIn, backOut, backInOut */
4879/***/ (function(module, __webpack_exports__, __webpack_require__) {
4880
4881"use strict";
4882__webpack_require__.r(__webpack_exports__);
4883/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backIn", function() { return backIn; });
4884/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backOut", function() { return backOut; });
4885/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backInOut", function() { return backInOut; });
4886var overshoot = 1.70158;
4887
4888var backIn = (function custom(s) {
4889 s = +s;
4890
4891 function backIn(t) {
4892 return t * t * ((s + 1) * t - s);
4893 }
4894
4895 backIn.overshoot = custom;
4896
4897 return backIn;
4898})(overshoot);
4899
4900var backOut = (function custom(s) {
4901 s = +s;
4902
4903 function backOut(t) {
4904 return --t * t * ((s + 1) * t + s) + 1;
4905 }
4906
4907 backOut.overshoot = custom;
4908
4909 return backOut;
4910})(overshoot);
4911
4912var backInOut = (function custom(s) {
4913 s = +s;
4914
4915 function backInOut(t) {
4916 return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
4917 }
4918
4919 backInOut.overshoot = custom;
4920
4921 return backInOut;
4922})(overshoot);
4923
4924
4925/***/ }),
4926
4927/***/ "./node_modules/d3-ease/src/bounce.js":
4928/*!********************************************!*\
4929 !*** ./node_modules/d3-ease/src/bounce.js ***!
4930 \********************************************/
4931/*! exports provided: bounceIn, bounceOut, bounceInOut */
4932/***/ (function(module, __webpack_exports__, __webpack_require__) {
4933
4934"use strict";
4935__webpack_require__.r(__webpack_exports__);
4936/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceIn", function() { return bounceIn; });
4937/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceOut", function() { return bounceOut; });
4938/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceInOut", function() { return bounceInOut; });
4939var b1 = 4 / 11,
4940 b2 = 6 / 11,
4941 b3 = 8 / 11,
4942 b4 = 3 / 4,
4943 b5 = 9 / 11,
4944 b6 = 10 / 11,
4945 b7 = 15 / 16,
4946 b8 = 21 / 22,
4947 b9 = 63 / 64,
4948 b0 = 1 / b1 / b1;
4949
4950function bounceIn(t) {
4951 return 1 - bounceOut(1 - t);
4952}
4953
4954function bounceOut(t) {
4955 return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;
4956}
4957
4958function bounceInOut(t) {
4959 return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
4960}
4961
4962
4963/***/ }),
4964
4965/***/ "./node_modules/d3-ease/src/circle.js":
4966/*!********************************************!*\
4967 !*** ./node_modules/d3-ease/src/circle.js ***!
4968 \********************************************/
4969/*! exports provided: circleIn, circleOut, circleInOut */
4970/***/ (function(module, __webpack_exports__, __webpack_require__) {
4971
4972"use strict";
4973__webpack_require__.r(__webpack_exports__);
4974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleIn", function() { return circleIn; });
4975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleOut", function() { return circleOut; });
4976/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleInOut", function() { return circleInOut; });
4977function circleIn(t) {
4978 return 1 - Math.sqrt(1 - t * t);
4979}
4980
4981function circleOut(t) {
4982 return Math.sqrt(1 - --t * t);
4983}
4984
4985function circleInOut(t) {
4986 return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
4987}
4988
4989
4990/***/ }),
4991
4992/***/ "./node_modules/d3-ease/src/cubic.js":
4993/*!*******************************************!*\
4994 !*** ./node_modules/d3-ease/src/cubic.js ***!
4995 \*******************************************/
4996/*! exports provided: cubicIn, cubicOut, cubicInOut */
4997/***/ (function(module, __webpack_exports__, __webpack_require__) {
4998
4999"use strict";
5000__webpack_require__.r(__webpack_exports__);
5001/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicIn", function() { return cubicIn; });
5002/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicOut", function() { return cubicOut; });
5003/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicInOut", function() { return cubicInOut; });
5004function cubicIn(t) {
5005 return t * t * t;
5006}
5007
5008function cubicOut(t) {
5009 return --t * t * t + 1;
5010}
5011
5012function cubicInOut(t) {
5013 return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
5014}
5015
5016
5017/***/ }),
5018
5019/***/ "./node_modules/d3-ease/src/elastic.js":
5020/*!*********************************************!*\
5021 !*** ./node_modules/d3-ease/src/elastic.js ***!
5022 \*********************************************/
5023/*! exports provided: elasticIn, elasticOut, elasticInOut */
5024/***/ (function(module, __webpack_exports__, __webpack_require__) {
5025
5026"use strict";
5027__webpack_require__.r(__webpack_exports__);
5028/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticIn", function() { return elasticIn; });
5029/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticOut", function() { return elasticOut; });
5030/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticInOut", function() { return elasticInOut; });
5031var tau = 2 * Math.PI,
5032 amplitude = 1,
5033 period = 0.3;
5034
5035var elasticIn = (function custom(a, p) {
5036 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
5037
5038 function elasticIn(t) {
5039 return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);
5040 }
5041
5042 elasticIn.amplitude = function(a) { return custom(a, p * tau); };
5043 elasticIn.period = function(p) { return custom(a, p); };
5044
5045 return elasticIn;
5046})(amplitude, period);
5047
5048var elasticOut = (function custom(a, p) {
5049 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
5050
5051 function elasticOut(t) {
5052 return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);
5053 }
5054
5055 elasticOut.amplitude = function(a) { return custom(a, p * tau); };
5056 elasticOut.period = function(p) { return custom(a, p); };
5057
5058 return elasticOut;
5059})(amplitude, period);
5060
5061var elasticInOut = (function custom(a, p) {
5062 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
5063
5064 function elasticInOut(t) {
5065 return ((t = t * 2 - 1) < 0
5066 ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)
5067 : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;
5068 }
5069
5070 elasticInOut.amplitude = function(a) { return custom(a, p * tau); };
5071 elasticInOut.period = function(p) { return custom(a, p); };
5072
5073 return elasticInOut;
5074})(amplitude, period);
5075
5076
5077/***/ }),
5078
5079/***/ "./node_modules/d3-ease/src/exp.js":
5080/*!*****************************************!*\
5081 !*** ./node_modules/d3-ease/src/exp.js ***!
5082 \*****************************************/
5083/*! exports provided: expIn, expOut, expInOut */
5084/***/ (function(module, __webpack_exports__, __webpack_require__) {
5085
5086"use strict";
5087__webpack_require__.r(__webpack_exports__);
5088/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expIn", function() { return expIn; });
5089/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expOut", function() { return expOut; });
5090/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expInOut", function() { return expInOut; });
5091function expIn(t) {
5092 return Math.pow(2, 10 * t - 10);
5093}
5094
5095function expOut(t) {
5096 return 1 - Math.pow(2, -10 * t);
5097}
5098
5099function expInOut(t) {
5100 return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;
5101}
5102
5103
5104/***/ }),
5105
5106/***/ "./node_modules/d3-ease/src/index.js":
5107/*!*******************************************!*\
5108 !*** ./node_modules/d3-ease/src/index.js ***!
5109 \*******************************************/
5110/*! exports provided: easeLinear, easeQuad, easeQuadIn, easeQuadOut, easeQuadInOut, easeCubic, easeCubicIn, easeCubicOut, easeCubicInOut, easePoly, easePolyIn, easePolyOut, easePolyInOut, easeSin, easeSinIn, easeSinOut, easeSinInOut, easeExp, easeExpIn, easeExpOut, easeExpInOut, easeCircle, easeCircleIn, easeCircleOut, easeCircleInOut, easeBounce, easeBounceIn, easeBounceOut, easeBounceInOut, easeBack, easeBackIn, easeBackOut, easeBackInOut, easeElastic, easeElasticIn, easeElasticOut, easeElasticInOut */
5111/***/ (function(module, __webpack_exports__, __webpack_require__) {
5112
5113"use strict";
5114__webpack_require__.r(__webpack_exports__);
5115/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-ease/src/linear.js");
5116/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeLinear", function() { return _linear__WEBPACK_IMPORTED_MODULE_0__["linear"]; });
5117
5118/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./quad */ "./node_modules/d3-ease/src/quad.js");
5119/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuad", function() { return _quad__WEBPACK_IMPORTED_MODULE_1__["quadInOut"]; });
5120
5121/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadIn", function() { return _quad__WEBPACK_IMPORTED_MODULE_1__["quadIn"]; });
5122
5123/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadOut", function() { return _quad__WEBPACK_IMPORTED_MODULE_1__["quadOut"]; });
5124
5125/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadInOut", function() { return _quad__WEBPACK_IMPORTED_MODULE_1__["quadInOut"]; });
5126
5127/* harmony import */ var _cubic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubic */ "./node_modules/d3-ease/src/cubic.js");
5128/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubic", function() { return _cubic__WEBPACK_IMPORTED_MODULE_2__["cubicInOut"]; });
5129
5130/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicIn", function() { return _cubic__WEBPACK_IMPORTED_MODULE_2__["cubicIn"]; });
5131
5132/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicOut", function() { return _cubic__WEBPACK_IMPORTED_MODULE_2__["cubicOut"]; });
5133
5134/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicInOut", function() { return _cubic__WEBPACK_IMPORTED_MODULE_2__["cubicInOut"]; });
5135
5136/* harmony import */ var _poly__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./poly */ "./node_modules/d3-ease/src/poly.js");
5137/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePoly", function() { return _poly__WEBPACK_IMPORTED_MODULE_3__["polyInOut"]; });
5138
5139/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyIn", function() { return _poly__WEBPACK_IMPORTED_MODULE_3__["polyIn"]; });
5140
5141/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyOut", function() { return _poly__WEBPACK_IMPORTED_MODULE_3__["polyOut"]; });
5142
5143/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyInOut", function() { return _poly__WEBPACK_IMPORTED_MODULE_3__["polyInOut"]; });
5144
5145/* harmony import */ var _sin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sin */ "./node_modules/d3-ease/src/sin.js");
5146/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSin", function() { return _sin__WEBPACK_IMPORTED_MODULE_4__["sinInOut"]; });
5147
5148/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinIn", function() { return _sin__WEBPACK_IMPORTED_MODULE_4__["sinIn"]; });
5149
5150/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinOut", function() { return _sin__WEBPACK_IMPORTED_MODULE_4__["sinOut"]; });
5151
5152/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinInOut", function() { return _sin__WEBPACK_IMPORTED_MODULE_4__["sinInOut"]; });
5153
5154/* harmony import */ var _exp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exp */ "./node_modules/d3-ease/src/exp.js");
5155/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExp", function() { return _exp__WEBPACK_IMPORTED_MODULE_5__["expInOut"]; });
5156
5157/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpIn", function() { return _exp__WEBPACK_IMPORTED_MODULE_5__["expIn"]; });
5158
5159/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpOut", function() { return _exp__WEBPACK_IMPORTED_MODULE_5__["expOut"]; });
5160
5161/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpInOut", function() { return _exp__WEBPACK_IMPORTED_MODULE_5__["expInOut"]; });
5162
5163/* harmony import */ var _circle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./circle */ "./node_modules/d3-ease/src/circle.js");
5164/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircle", function() { return _circle__WEBPACK_IMPORTED_MODULE_6__["circleInOut"]; });
5165
5166/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleIn", function() { return _circle__WEBPACK_IMPORTED_MODULE_6__["circleIn"]; });
5167
5168/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleOut", function() { return _circle__WEBPACK_IMPORTED_MODULE_6__["circleOut"]; });
5169
5170/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleInOut", function() { return _circle__WEBPACK_IMPORTED_MODULE_6__["circleInOut"]; });
5171
5172/* harmony import */ var _bounce__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./bounce */ "./node_modules/d3-ease/src/bounce.js");
5173/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounce", function() { return _bounce__WEBPACK_IMPORTED_MODULE_7__["bounceOut"]; });
5174
5175/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceIn", function() { return _bounce__WEBPACK_IMPORTED_MODULE_7__["bounceIn"]; });
5176
5177/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceOut", function() { return _bounce__WEBPACK_IMPORTED_MODULE_7__["bounceOut"]; });
5178
5179/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceInOut", function() { return _bounce__WEBPACK_IMPORTED_MODULE_7__["bounceInOut"]; });
5180
5181/* harmony import */ var _back__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./back */ "./node_modules/d3-ease/src/back.js");
5182/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBack", function() { return _back__WEBPACK_IMPORTED_MODULE_8__["backInOut"]; });
5183
5184/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackIn", function() { return _back__WEBPACK_IMPORTED_MODULE_8__["backIn"]; });
5185
5186/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackOut", function() { return _back__WEBPACK_IMPORTED_MODULE_8__["backOut"]; });
5187
5188/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackInOut", function() { return _back__WEBPACK_IMPORTED_MODULE_8__["backInOut"]; });
5189
5190/* harmony import */ var _elastic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./elastic */ "./node_modules/d3-ease/src/elastic.js");
5191/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElastic", function() { return _elastic__WEBPACK_IMPORTED_MODULE_9__["elasticOut"]; });
5192
5193/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticIn", function() { return _elastic__WEBPACK_IMPORTED_MODULE_9__["elasticIn"]; });
5194
5195/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticOut", function() { return _elastic__WEBPACK_IMPORTED_MODULE_9__["elasticOut"]; });
5196
5197/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticInOut", function() { return _elastic__WEBPACK_IMPORTED_MODULE_9__["elasticInOut"]; });
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220/***/ }),
5221
5222/***/ "./node_modules/d3-ease/src/linear.js":
5223/*!********************************************!*\
5224 !*** ./node_modules/d3-ease/src/linear.js ***!
5225 \********************************************/
5226/*! exports provided: linear */
5227/***/ (function(module, __webpack_exports__, __webpack_require__) {
5228
5229"use strict";
5230__webpack_require__.r(__webpack_exports__);
5231/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linear", function() { return linear; });
5232function linear(t) {
5233 return +t;
5234}
5235
5236
5237/***/ }),
5238
5239/***/ "./node_modules/d3-ease/src/poly.js":
5240/*!******************************************!*\
5241 !*** ./node_modules/d3-ease/src/poly.js ***!
5242 \******************************************/
5243/*! exports provided: polyIn, polyOut, polyInOut */
5244/***/ (function(module, __webpack_exports__, __webpack_require__) {
5245
5246"use strict";
5247__webpack_require__.r(__webpack_exports__);
5248/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyIn", function() { return polyIn; });
5249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyOut", function() { return polyOut; });
5250/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyInOut", function() { return polyInOut; });
5251var exponent = 3;
5252
5253var polyIn = (function custom(e) {
5254 e = +e;
5255
5256 function polyIn(t) {
5257 return Math.pow(t, e);
5258 }
5259
5260 polyIn.exponent = custom;
5261
5262 return polyIn;
5263})(exponent);
5264
5265var polyOut = (function custom(e) {
5266 e = +e;
5267
5268 function polyOut(t) {
5269 return 1 - Math.pow(1 - t, e);
5270 }
5271
5272 polyOut.exponent = custom;
5273
5274 return polyOut;
5275})(exponent);
5276
5277var polyInOut = (function custom(e) {
5278 e = +e;
5279
5280 function polyInOut(t) {
5281 return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
5282 }
5283
5284 polyInOut.exponent = custom;
5285
5286 return polyInOut;
5287})(exponent);
5288
5289
5290/***/ }),
5291
5292/***/ "./node_modules/d3-ease/src/quad.js":
5293/*!******************************************!*\
5294 !*** ./node_modules/d3-ease/src/quad.js ***!
5295 \******************************************/
5296/*! exports provided: quadIn, quadOut, quadInOut */
5297/***/ (function(module, __webpack_exports__, __webpack_require__) {
5298
5299"use strict";
5300__webpack_require__.r(__webpack_exports__);
5301/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadIn", function() { return quadIn; });
5302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadOut", function() { return quadOut; });
5303/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadInOut", function() { return quadInOut; });
5304function quadIn(t) {
5305 return t * t;
5306}
5307
5308function quadOut(t) {
5309 return t * (2 - t);
5310}
5311
5312function quadInOut(t) {
5313 return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
5314}
5315
5316
5317/***/ }),
5318
5319/***/ "./node_modules/d3-ease/src/sin.js":
5320/*!*****************************************!*\
5321 !*** ./node_modules/d3-ease/src/sin.js ***!
5322 \*****************************************/
5323/*! exports provided: sinIn, sinOut, sinInOut */
5324/***/ (function(module, __webpack_exports__, __webpack_require__) {
5325
5326"use strict";
5327__webpack_require__.r(__webpack_exports__);
5328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinIn", function() { return sinIn; });
5329/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinOut", function() { return sinOut; });
5330/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinInOut", function() { return sinInOut; });
5331var pi = Math.PI,
5332 halfPi = pi / 2;
5333
5334function sinIn(t) {
5335 return 1 - Math.cos(t * halfPi);
5336}
5337
5338function sinOut(t) {
5339 return Math.sin(t * halfPi);
5340}
5341
5342function sinInOut(t) {
5343 return (1 - Math.cos(pi * t)) / 2;
5344}
5345
5346
5347/***/ }),
5348
5349/***/ "./node_modules/d3-fetch/src/blob.js":
5350/*!*******************************************!*\
5351 !*** ./node_modules/d3-fetch/src/blob.js ***!
5352 \*******************************************/
5353/*! exports provided: default */
5354/***/ (function(module, __webpack_exports__, __webpack_require__) {
5355
5356"use strict";
5357__webpack_require__.r(__webpack_exports__);
5358function responseBlob(response) {
5359 if (!response.ok) throw new Error(response.status + " " + response.statusText);
5360 return response.blob();
5361}
5362
5363/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5364 return fetch(input, init).then(responseBlob);
5365});
5366
5367
5368/***/ }),
5369
5370/***/ "./node_modules/d3-fetch/src/buffer.js":
5371/*!*********************************************!*\
5372 !*** ./node_modules/d3-fetch/src/buffer.js ***!
5373 \*********************************************/
5374/*! exports provided: default */
5375/***/ (function(module, __webpack_exports__, __webpack_require__) {
5376
5377"use strict";
5378__webpack_require__.r(__webpack_exports__);
5379function responseArrayBuffer(response) {
5380 if (!response.ok) throw new Error(response.status + " " + response.statusText);
5381 return response.arrayBuffer();
5382}
5383
5384/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5385 return fetch(input, init).then(responseArrayBuffer);
5386});
5387
5388
5389/***/ }),
5390
5391/***/ "./node_modules/d3-fetch/src/dsv.js":
5392/*!******************************************!*\
5393 !*** ./node_modules/d3-fetch/src/dsv.js ***!
5394 \******************************************/
5395/*! exports provided: default, csv, tsv */
5396/***/ (function(module, __webpack_exports__, __webpack_require__) {
5397
5398"use strict";
5399__webpack_require__.r(__webpack_exports__);
5400/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return dsv; });
5401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csv", function() { return csv; });
5402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsv", function() { return tsv; });
5403/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/src/index.js");
5404/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text */ "./node_modules/d3-fetch/src/text.js");
5405
5406
5407
5408function dsvParse(parse) {
5409 return function(input, init, row) {
5410 if (arguments.length === 2 && typeof init === "function") row = init, init = undefined;
5411 return Object(_text__WEBPACK_IMPORTED_MODULE_1__["default"])(input, init).then(function(response) {
5412 return parse(response, row);
5413 });
5414 };
5415}
5416
5417function dsv(delimiter, input, init, row) {
5418 if (arguments.length === 3 && typeof init === "function") row = init, init = undefined;
5419 var format = Object(d3_dsv__WEBPACK_IMPORTED_MODULE_0__["dsvFormat"])(delimiter);
5420 return Object(_text__WEBPACK_IMPORTED_MODULE_1__["default"])(input, init).then(function(response) {
5421 return format.parse(response, row);
5422 });
5423}
5424
5425var csv = dsvParse(d3_dsv__WEBPACK_IMPORTED_MODULE_0__["csvParse"]);
5426var tsv = dsvParse(d3_dsv__WEBPACK_IMPORTED_MODULE_0__["tsvParse"]);
5427
5428
5429/***/ }),
5430
5431/***/ "./node_modules/d3-fetch/src/image.js":
5432/*!********************************************!*\
5433 !*** ./node_modules/d3-fetch/src/image.js ***!
5434 \********************************************/
5435/*! exports provided: default */
5436/***/ (function(module, __webpack_exports__, __webpack_require__) {
5437
5438"use strict";
5439__webpack_require__.r(__webpack_exports__);
5440/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5441 return new Promise(function(resolve, reject) {
5442 var image = new Image;
5443 for (var key in init) image[key] = init[key];
5444 image.onerror = reject;
5445 image.onload = function() { resolve(image); };
5446 image.src = input;
5447 });
5448});
5449
5450
5451/***/ }),
5452
5453/***/ "./node_modules/d3-fetch/src/index.js":
5454/*!********************************************!*\
5455 !*** ./node_modules/d3-fetch/src/index.js ***!
5456 \********************************************/
5457/*! exports provided: blob, buffer, dsv, csv, tsv, image, json, text, xml, html, svg */
5458/***/ (function(module, __webpack_exports__, __webpack_require__) {
5459
5460"use strict";
5461__webpack_require__.r(__webpack_exports__);
5462/* harmony import */ var _blob__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blob */ "./node_modules/d3-fetch/src/blob.js");
5463/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "blob", function() { return _blob__WEBPACK_IMPORTED_MODULE_0__["default"]; });
5464
5465/* harmony import */ var _buffer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buffer */ "./node_modules/d3-fetch/src/buffer.js");
5466/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _buffer__WEBPACK_IMPORTED_MODULE_1__["default"]; });
5467
5468/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-fetch/src/dsv.js");
5469/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsv", function() { return _dsv__WEBPACK_IMPORTED_MODULE_2__["default"]; });
5470
5471/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csv", function() { return _dsv__WEBPACK_IMPORTED_MODULE_2__["csv"]; });
5472
5473/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsv", function() { return _dsv__WEBPACK_IMPORTED_MODULE_2__["tsv"]; });
5474
5475/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./image */ "./node_modules/d3-fetch/src/image.js");
5476/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "image", function() { return _image__WEBPACK_IMPORTED_MODULE_3__["default"]; });
5477
5478/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./json */ "./node_modules/d3-fetch/src/json.js");
5479/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "json", function() { return _json__WEBPACK_IMPORTED_MODULE_4__["default"]; });
5480
5481/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./text */ "./node_modules/d3-fetch/src/text.js");
5482/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "text", function() { return _text__WEBPACK_IMPORTED_MODULE_5__["default"]; });
5483
5484/* harmony import */ var _xml__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./xml */ "./node_modules/d3-fetch/src/xml.js");
5485/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "xml", function() { return _xml__WEBPACK_IMPORTED_MODULE_6__["default"]; });
5486
5487/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "html", function() { return _xml__WEBPACK_IMPORTED_MODULE_6__["html"]; });
5488
5489/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "svg", function() { return _xml__WEBPACK_IMPORTED_MODULE_6__["svg"]; });
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500/***/ }),
5501
5502/***/ "./node_modules/d3-fetch/src/json.js":
5503/*!*******************************************!*\
5504 !*** ./node_modules/d3-fetch/src/json.js ***!
5505 \*******************************************/
5506/*! exports provided: default */
5507/***/ (function(module, __webpack_exports__, __webpack_require__) {
5508
5509"use strict";
5510__webpack_require__.r(__webpack_exports__);
5511function responseJson(response) {
5512 if (!response.ok) throw new Error(response.status + " " + response.statusText);
5513 return response.json();
5514}
5515
5516/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5517 return fetch(input, init).then(responseJson);
5518});
5519
5520
5521/***/ }),
5522
5523/***/ "./node_modules/d3-fetch/src/text.js":
5524/*!*******************************************!*\
5525 !*** ./node_modules/d3-fetch/src/text.js ***!
5526 \*******************************************/
5527/*! exports provided: default */
5528/***/ (function(module, __webpack_exports__, __webpack_require__) {
5529
5530"use strict";
5531__webpack_require__.r(__webpack_exports__);
5532function responseText(response) {
5533 if (!response.ok) throw new Error(response.status + " " + response.statusText);
5534 return response.text();
5535}
5536
5537/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5538 return fetch(input, init).then(responseText);
5539});
5540
5541
5542/***/ }),
5543
5544/***/ "./node_modules/d3-fetch/src/xml.js":
5545/*!******************************************!*\
5546 !*** ./node_modules/d3-fetch/src/xml.js ***!
5547 \******************************************/
5548/*! exports provided: default, html, svg */
5549/***/ (function(module, __webpack_exports__, __webpack_require__) {
5550
5551"use strict";
5552__webpack_require__.r(__webpack_exports__);
5553/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "html", function() { return html; });
5554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "svg", function() { return svg; });
5555/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./text */ "./node_modules/d3-fetch/src/text.js");
5556
5557
5558function parser(type) {
5559 return function(input, init) {
5560 return Object(_text__WEBPACK_IMPORTED_MODULE_0__["default"])(input, init).then(function(text) {
5561 return (new DOMParser).parseFromString(text, type);
5562 });
5563 };
5564}
5565
5566/* harmony default export */ __webpack_exports__["default"] = (parser("application/xml"));
5567
5568var html = parser("text/html");
5569
5570var svg = parser("image/svg+xml");
5571
5572
5573/***/ }),
5574
5575/***/ "./node_modules/d3-force/src/center.js":
5576/*!*********************************************!*\
5577 !*** ./node_modules/d3-force/src/center.js ***!
5578 \*********************************************/
5579/*! exports provided: default */
5580/***/ (function(module, __webpack_exports__, __webpack_require__) {
5581
5582"use strict";
5583__webpack_require__.r(__webpack_exports__);
5584/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
5585 var nodes;
5586
5587 if (x == null) x = 0;
5588 if (y == null) y = 0;
5589
5590 function force() {
5591 var i,
5592 n = nodes.length,
5593 node,
5594 sx = 0,
5595 sy = 0;
5596
5597 for (i = 0; i < n; ++i) {
5598 node = nodes[i], sx += node.x, sy += node.y;
5599 }
5600
5601 for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {
5602 node = nodes[i], node.x -= sx, node.y -= sy;
5603 }
5604 }
5605
5606 force.initialize = function(_) {
5607 nodes = _;
5608 };
5609
5610 force.x = function(_) {
5611 return arguments.length ? (x = +_, force) : x;
5612 };
5613
5614 force.y = function(_) {
5615 return arguments.length ? (y = +_, force) : y;
5616 };
5617
5618 return force;
5619});
5620
5621
5622/***/ }),
5623
5624/***/ "./node_modules/d3-force/src/collide.js":
5625/*!**********************************************!*\
5626 !*** ./node_modules/d3-force/src/collide.js ***!
5627 \**********************************************/
5628/*! exports provided: default */
5629/***/ (function(module, __webpack_exports__, __webpack_require__) {
5630
5631"use strict";
5632__webpack_require__.r(__webpack_exports__);
5633/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5634/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
5635/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/index.js");
5636
5637
5638
5639
5640function x(d) {
5641 return d.x + d.vx;
5642}
5643
5644function y(d) {
5645 return d.y + d.vy;
5646}
5647
5648/* harmony default export */ __webpack_exports__["default"] = (function(radius) {
5649 var nodes,
5650 radii,
5651 strength = 1,
5652 iterations = 1;
5653
5654 if (typeof radius !== "function") radius = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(radius == null ? 1 : +radius);
5655
5656 function force() {
5657 var i, n = nodes.length,
5658 tree,
5659 node,
5660 xi,
5661 yi,
5662 ri,
5663 ri2;
5664
5665 for (var k = 0; k < iterations; ++k) {
5666 tree = Object(d3_quadtree__WEBPACK_IMPORTED_MODULE_2__["quadtree"])(nodes, x, y).visitAfter(prepare);
5667 for (i = 0; i < n; ++i) {
5668 node = nodes[i];
5669 ri = radii[node.index], ri2 = ri * ri;
5670 xi = node.x + node.vx;
5671 yi = node.y + node.vy;
5672 tree.visit(apply);
5673 }
5674 }
5675
5676 function apply(quad, x0, y0, x1, y1) {
5677 var data = quad.data, rj = quad.r, r = ri + rj;
5678 if (data) {
5679 if (data.index > node.index) {
5680 var x = xi - data.x - data.vx,
5681 y = yi - data.y - data.vy,
5682 l = x * x + y * y;
5683 if (l < r * r) {
5684 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
5685 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
5686 l = (r - (l = Math.sqrt(l))) / l * strength;
5687 node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
5688 node.vy += (y *= l) * r;
5689 data.vx -= x * (r = 1 - r);
5690 data.vy -= y * r;
5691 }
5692 }
5693 return;
5694 }
5695 return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
5696 }
5697 }
5698
5699 function prepare(quad) {
5700 if (quad.data) return quad.r = radii[quad.data.index];
5701 for (var i = quad.r = 0; i < 4; ++i) {
5702 if (quad[i] && quad[i].r > quad.r) {
5703 quad.r = quad[i].r;
5704 }
5705 }
5706 }
5707
5708 function initialize() {
5709 if (!nodes) return;
5710 var i, n = nodes.length, node;
5711 radii = new Array(n);
5712 for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
5713 }
5714
5715 force.initialize = function(_) {
5716 nodes = _;
5717 initialize();
5718 };
5719
5720 force.iterations = function(_) {
5721 return arguments.length ? (iterations = +_, force) : iterations;
5722 };
5723
5724 force.strength = function(_) {
5725 return arguments.length ? (strength = +_, force) : strength;
5726 };
5727
5728 force.radius = function(_) {
5729 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : radius;
5730 };
5731
5732 return force;
5733});
5734
5735
5736/***/ }),
5737
5738/***/ "./node_modules/d3-force/src/constant.js":
5739/*!***********************************************!*\
5740 !*** ./node_modules/d3-force/src/constant.js ***!
5741 \***********************************************/
5742/*! exports provided: default */
5743/***/ (function(module, __webpack_exports__, __webpack_require__) {
5744
5745"use strict";
5746__webpack_require__.r(__webpack_exports__);
5747/* harmony default export */ __webpack_exports__["default"] = (function(x) {
5748 return function() {
5749 return x;
5750 };
5751});
5752
5753
5754/***/ }),
5755
5756/***/ "./node_modules/d3-force/src/index.js":
5757/*!********************************************!*\
5758 !*** ./node_modules/d3-force/src/index.js ***!
5759 \********************************************/
5760/*! exports provided: forceCenter, forceCollide, forceLink, forceManyBody, forceRadial, forceSimulation, forceX, forceY */
5761/***/ (function(module, __webpack_exports__, __webpack_require__) {
5762
5763"use strict";
5764__webpack_require__.r(__webpack_exports__);
5765/* harmony import */ var _center__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./center */ "./node_modules/d3-force/src/center.js");
5766/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCenter", function() { return _center__WEBPACK_IMPORTED_MODULE_0__["default"]; });
5767
5768/* harmony import */ var _collide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./collide */ "./node_modules/d3-force/src/collide.js");
5769/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCollide", function() { return _collide__WEBPACK_IMPORTED_MODULE_1__["default"]; });
5770
5771/* harmony import */ var _link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./link */ "./node_modules/d3-force/src/link.js");
5772/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceLink", function() { return _link__WEBPACK_IMPORTED_MODULE_2__["default"]; });
5773
5774/* harmony import */ var _manyBody__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./manyBody */ "./node_modules/d3-force/src/manyBody.js");
5775/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceManyBody", function() { return _manyBody__WEBPACK_IMPORTED_MODULE_3__["default"]; });
5776
5777/* harmony import */ var _radial__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./radial */ "./node_modules/d3-force/src/radial.js");
5778/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceRadial", function() { return _radial__WEBPACK_IMPORTED_MODULE_4__["default"]; });
5779
5780/* harmony import */ var _simulation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./simulation */ "./node_modules/d3-force/src/simulation.js");
5781/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceSimulation", function() { return _simulation__WEBPACK_IMPORTED_MODULE_5__["default"]; });
5782
5783/* harmony import */ var _x__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./x */ "./node_modules/d3-force/src/x.js");
5784/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceX", function() { return _x__WEBPACK_IMPORTED_MODULE_6__["default"]; });
5785
5786/* harmony import */ var _y__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./y */ "./node_modules/d3-force/src/y.js");
5787/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceY", function() { return _y__WEBPACK_IMPORTED_MODULE_7__["default"]; });
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799/***/ }),
5800
5801/***/ "./node_modules/d3-force/src/jiggle.js":
5802/*!*********************************************!*\
5803 !*** ./node_modules/d3-force/src/jiggle.js ***!
5804 \*********************************************/
5805/*! exports provided: default */
5806/***/ (function(module, __webpack_exports__, __webpack_require__) {
5807
5808"use strict";
5809__webpack_require__.r(__webpack_exports__);
5810/* harmony default export */ __webpack_exports__["default"] = (function() {
5811 return (Math.random() - 0.5) * 1e-6;
5812});
5813
5814
5815/***/ }),
5816
5817/***/ "./node_modules/d3-force/src/link.js":
5818/*!*******************************************!*\
5819 !*** ./node_modules/d3-force/src/link.js ***!
5820 \*******************************************/
5821/*! exports provided: default */
5822/***/ (function(module, __webpack_exports__, __webpack_require__) {
5823
5824"use strict";
5825__webpack_require__.r(__webpack_exports__);
5826/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5827/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
5828/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/src/index.js");
5829
5830
5831
5832
5833function index(d) {
5834 return d.index;
5835}
5836
5837function find(nodeById, nodeId) {
5838 var node = nodeById.get(nodeId);
5839 if (!node) throw new Error("missing: " + nodeId);
5840 return node;
5841}
5842
5843/* harmony default export */ __webpack_exports__["default"] = (function(links) {
5844 var id = index,
5845 strength = defaultStrength,
5846 strengths,
5847 distance = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(30),
5848 distances,
5849 nodes,
5850 count,
5851 bias,
5852 iterations = 1;
5853
5854 if (links == null) links = [];
5855
5856 function defaultStrength(link) {
5857 return 1 / Math.min(count[link.source.index], count[link.target.index]);
5858 }
5859
5860 function force(alpha) {
5861 for (var k = 0, n = links.length; k < iterations; ++k) {
5862 for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
5863 link = links[i], source = link.source, target = link.target;
5864 x = target.x + target.vx - source.x - source.vx || Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])();
5865 y = target.y + target.vy - source.y - source.vy || Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])();
5866 l = Math.sqrt(x * x + y * y);
5867 l = (l - distances[i]) / l * alpha * strengths[i];
5868 x *= l, y *= l;
5869 target.vx -= x * (b = bias[i]);
5870 target.vy -= y * b;
5871 source.vx += x * (b = 1 - b);
5872 source.vy += y * b;
5873 }
5874 }
5875 }
5876
5877 function initialize() {
5878 if (!nodes) return;
5879
5880 var i,
5881 n = nodes.length,
5882 m = links.length,
5883 nodeById = Object(d3_collection__WEBPACK_IMPORTED_MODULE_2__["map"])(nodes, id),
5884 link;
5885
5886 for (i = 0, count = new Array(n); i < m; ++i) {
5887 link = links[i], link.index = i;
5888 if (typeof link.source !== "object") link.source = find(nodeById, link.source);
5889 if (typeof link.target !== "object") link.target = find(nodeById, link.target);
5890 count[link.source.index] = (count[link.source.index] || 0) + 1;
5891 count[link.target.index] = (count[link.target.index] || 0) + 1;
5892 }
5893
5894 for (i = 0, bias = new Array(m); i < m; ++i) {
5895 link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
5896 }
5897
5898 strengths = new Array(m), initializeStrength();
5899 distances = new Array(m), initializeDistance();
5900 }
5901
5902 function initializeStrength() {
5903 if (!nodes) return;
5904
5905 for (var i = 0, n = links.length; i < n; ++i) {
5906 strengths[i] = +strength(links[i], i, links);
5907 }
5908 }
5909
5910 function initializeDistance() {
5911 if (!nodes) return;
5912
5913 for (var i = 0, n = links.length; i < n; ++i) {
5914 distances[i] = +distance(links[i], i, links);
5915 }
5916 }
5917
5918 force.initialize = function(_) {
5919 nodes = _;
5920 initialize();
5921 };
5922
5923 force.links = function(_) {
5924 return arguments.length ? (links = _, initialize(), force) : links;
5925 };
5926
5927 force.id = function(_) {
5928 return arguments.length ? (id = _, force) : id;
5929 };
5930
5931 force.iterations = function(_) {
5932 return arguments.length ? (iterations = +_, force) : iterations;
5933 };
5934
5935 force.strength = function(_) {
5936 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initializeStrength(), force) : strength;
5937 };
5938
5939 force.distance = function(_) {
5940 return arguments.length ? (distance = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initializeDistance(), force) : distance;
5941 };
5942
5943 return force;
5944});
5945
5946
5947/***/ }),
5948
5949/***/ "./node_modules/d3-force/src/manyBody.js":
5950/*!***********************************************!*\
5951 !*** ./node_modules/d3-force/src/manyBody.js ***!
5952 \***********************************************/
5953/*! exports provided: default */
5954/***/ (function(module, __webpack_exports__, __webpack_require__) {
5955
5956"use strict";
5957__webpack_require__.r(__webpack_exports__);
5958/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5959/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
5960/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/index.js");
5961/* harmony import */ var _simulation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./simulation */ "./node_modules/d3-force/src/simulation.js");
5962
5963
5964
5965
5966
5967/* harmony default export */ __webpack_exports__["default"] = (function() {
5968 var nodes,
5969 node,
5970 alpha,
5971 strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(-30),
5972 strengths,
5973 distanceMin2 = 1,
5974 distanceMax2 = Infinity,
5975 theta2 = 0.81;
5976
5977 function force(_) {
5978 var i, n = nodes.length, tree = Object(d3_quadtree__WEBPACK_IMPORTED_MODULE_2__["quadtree"])(nodes, _simulation__WEBPACK_IMPORTED_MODULE_3__["x"], _simulation__WEBPACK_IMPORTED_MODULE_3__["y"]).visitAfter(accumulate);
5979 for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
5980 }
5981
5982 function initialize() {
5983 if (!nodes) return;
5984 var i, n = nodes.length, node;
5985 strengths = new Array(n);
5986 for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
5987 }
5988
5989 function accumulate(quad) {
5990 var strength = 0, q, c, weight = 0, x, y, i;
5991
5992 // For internal nodes, accumulate forces from child quadrants.
5993 if (quad.length) {
5994 for (x = y = i = 0; i < 4; ++i) {
5995 if ((q = quad[i]) && (c = Math.abs(q.value))) {
5996 strength += q.value, weight += c, x += c * q.x, y += c * q.y;
5997 }
5998 }
5999 quad.x = x / weight;
6000 quad.y = y / weight;
6001 }
6002
6003 // For leaf nodes, accumulate forces from coincident quadrants.
6004 else {
6005 q = quad;
6006 q.x = q.data.x;
6007 q.y = q.data.y;
6008 do strength += strengths[q.data.index];
6009 while (q = q.next);
6010 }
6011
6012 quad.value = strength;
6013 }
6014
6015 function apply(quad, x1, _, x2) {
6016 if (!quad.value) return true;
6017
6018 var x = quad.x - node.x,
6019 y = quad.y - node.y,
6020 w = x2 - x1,
6021 l = x * x + y * y;
6022
6023 // Apply the Barnes-Hut approximation if possible.
6024 // Limit forces for very close nodes; randomize direction if coincident.
6025 if (w * w / theta2 < l) {
6026 if (l < distanceMax2) {
6027 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
6028 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
6029 if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
6030 node.vx += x * quad.value * alpha / l;
6031 node.vy += y * quad.value * alpha / l;
6032 }
6033 return true;
6034 }
6035
6036 // Otherwise, process points directly.
6037 else if (quad.length || l >= distanceMax2) return;
6038
6039 // Limit forces for very close nodes; randomize direction if coincident.
6040 if (quad.data !== node || quad.next) {
6041 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
6042 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
6043 if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
6044 }
6045
6046 do if (quad.data !== node) {
6047 w = strengths[quad.data.index] * alpha / l;
6048 node.vx += x * w;
6049 node.vy += y * w;
6050 } while (quad = quad.next);
6051 }
6052
6053 force.initialize = function(_) {
6054 nodes = _;
6055 initialize();
6056 };
6057
6058 force.strength = function(_) {
6059 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
6060 };
6061
6062 force.distanceMin = function(_) {
6063 return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
6064 };
6065
6066 force.distanceMax = function(_) {
6067 return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
6068 };
6069
6070 force.theta = function(_) {
6071 return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
6072 };
6073
6074 return force;
6075});
6076
6077
6078/***/ }),
6079
6080/***/ "./node_modules/d3-force/src/radial.js":
6081/*!*********************************************!*\
6082 !*** ./node_modules/d3-force/src/radial.js ***!
6083 \*********************************************/
6084/*! exports provided: default */
6085/***/ (function(module, __webpack_exports__, __webpack_require__) {
6086
6087"use strict";
6088__webpack_require__.r(__webpack_exports__);
6089/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
6090
6091
6092/* harmony default export */ __webpack_exports__["default"] = (function(radius, x, y) {
6093 var nodes,
6094 strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
6095 strengths,
6096 radiuses;
6097
6098 if (typeof radius !== "function") radius = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+radius);
6099 if (x == null) x = 0;
6100 if (y == null) y = 0;
6101
6102 function force(alpha) {
6103 for (var i = 0, n = nodes.length; i < n; ++i) {
6104 var node = nodes[i],
6105 dx = node.x - x || 1e-6,
6106 dy = node.y - y || 1e-6,
6107 r = Math.sqrt(dx * dx + dy * dy),
6108 k = (radiuses[i] - r) * strengths[i] * alpha / r;
6109 node.vx += dx * k;
6110 node.vy += dy * k;
6111 }
6112 }
6113
6114 function initialize() {
6115 if (!nodes) return;
6116 var i, n = nodes.length;
6117 strengths = new Array(n);
6118 radiuses = new Array(n);
6119 for (i = 0; i < n; ++i) {
6120 radiuses[i] = +radius(nodes[i], i, nodes);
6121 strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
6122 }
6123 }
6124
6125 force.initialize = function(_) {
6126 nodes = _, initialize();
6127 };
6128
6129 force.strength = function(_) {
6130 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
6131 };
6132
6133 force.radius = function(_) {
6134 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : radius;
6135 };
6136
6137 force.x = function(_) {
6138 return arguments.length ? (x = +_, force) : x;
6139 };
6140
6141 force.y = function(_) {
6142 return arguments.length ? (y = +_, force) : y;
6143 };
6144
6145 return force;
6146});
6147
6148
6149/***/ }),
6150
6151/***/ "./node_modules/d3-force/src/simulation.js":
6152/*!*************************************************!*\
6153 !*** ./node_modules/d3-force/src/simulation.js ***!
6154 \*************************************************/
6155/*! exports provided: x, y, default */
6156/***/ (function(module, __webpack_exports__, __webpack_require__) {
6157
6158"use strict";
6159__webpack_require__.r(__webpack_exports__);
6160/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
6161/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
6162/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
6163/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/src/index.js");
6164/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
6165
6166
6167
6168
6169function x(d) {
6170 return d.x;
6171}
6172
6173function y(d) {
6174 return d.y;
6175}
6176
6177var initialRadius = 10,
6178 initialAngle = Math.PI * (3 - Math.sqrt(5));
6179
6180/* harmony default export */ __webpack_exports__["default"] = (function(nodes) {
6181 var simulation,
6182 alpha = 1,
6183 alphaMin = 0.001,
6184 alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
6185 alphaTarget = 0,
6186 velocityDecay = 0.6,
6187 forces = Object(d3_collection__WEBPACK_IMPORTED_MODULE_1__["map"])(),
6188 stepper = Object(d3_timer__WEBPACK_IMPORTED_MODULE_2__["timer"])(step),
6189 event = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("tick", "end");
6190
6191 if (nodes == null) nodes = [];
6192
6193 function step() {
6194 tick();
6195 event.call("tick", simulation);
6196 if (alpha < alphaMin) {
6197 stepper.stop();
6198 event.call("end", simulation);
6199 }
6200 }
6201
6202 function tick() {
6203 var i, n = nodes.length, node;
6204
6205 alpha += (alphaTarget - alpha) * alphaDecay;
6206
6207 forces.each(function(force) {
6208 force(alpha);
6209 });
6210
6211 for (i = 0; i < n; ++i) {
6212 node = nodes[i];
6213 if (node.fx == null) node.x += node.vx *= velocityDecay;
6214 else node.x = node.fx, node.vx = 0;
6215 if (node.fy == null) node.y += node.vy *= velocityDecay;
6216 else node.y = node.fy, node.vy = 0;
6217 }
6218 }
6219
6220 function initializeNodes() {
6221 for (var i = 0, n = nodes.length, node; i < n; ++i) {
6222 node = nodes[i], node.index = i;
6223 if (isNaN(node.x) || isNaN(node.y)) {
6224 var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;
6225 node.x = radius * Math.cos(angle);
6226 node.y = radius * Math.sin(angle);
6227 }
6228 if (isNaN(node.vx) || isNaN(node.vy)) {
6229 node.vx = node.vy = 0;
6230 }
6231 }
6232 }
6233
6234 function initializeForce(force) {
6235 if (force.initialize) force.initialize(nodes);
6236 return force;
6237 }
6238
6239 initializeNodes();
6240
6241 return simulation = {
6242 tick: tick,
6243
6244 restart: function() {
6245 return stepper.restart(step), simulation;
6246 },
6247
6248 stop: function() {
6249 return stepper.stop(), simulation;
6250 },
6251
6252 nodes: function(_) {
6253 return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;
6254 },
6255
6256 alpha: function(_) {
6257 return arguments.length ? (alpha = +_, simulation) : alpha;
6258 },
6259
6260 alphaMin: function(_) {
6261 return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
6262 },
6263
6264 alphaDecay: function(_) {
6265 return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
6266 },
6267
6268 alphaTarget: function(_) {
6269 return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
6270 },
6271
6272 velocityDecay: function(_) {
6273 return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
6274 },
6275
6276 force: function(name, _) {
6277 return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
6278 },
6279
6280 find: function(x, y, radius) {
6281 var i = 0,
6282 n = nodes.length,
6283 dx,
6284 dy,
6285 d2,
6286 node,
6287 closest;
6288
6289 if (radius == null) radius = Infinity;
6290 else radius *= radius;
6291
6292 for (i = 0; i < n; ++i) {
6293 node = nodes[i];
6294 dx = x - node.x;
6295 dy = y - node.y;
6296 d2 = dx * dx + dy * dy;
6297 if (d2 < radius) closest = node, radius = d2;
6298 }
6299
6300 return closest;
6301 },
6302
6303 on: function(name, _) {
6304 return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
6305 }
6306 };
6307});
6308
6309
6310/***/ }),
6311
6312/***/ "./node_modules/d3-force/src/x.js":
6313/*!****************************************!*\
6314 !*** ./node_modules/d3-force/src/x.js ***!
6315 \****************************************/
6316/*! exports provided: default */
6317/***/ (function(module, __webpack_exports__, __webpack_require__) {
6318
6319"use strict";
6320__webpack_require__.r(__webpack_exports__);
6321/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
6322
6323
6324/* harmony default export */ __webpack_exports__["default"] = (function(x) {
6325 var strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
6326 nodes,
6327 strengths,
6328 xz;
6329
6330 if (typeof x !== "function") x = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(x == null ? 0 : +x);
6331
6332 function force(alpha) {
6333 for (var i = 0, n = nodes.length, node; i < n; ++i) {
6334 node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
6335 }
6336 }
6337
6338 function initialize() {
6339 if (!nodes) return;
6340 var i, n = nodes.length;
6341 strengths = new Array(n);
6342 xz = new Array(n);
6343 for (i = 0; i < n; ++i) {
6344 strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
6345 }
6346 }
6347
6348 force.initialize = function(_) {
6349 nodes = _;
6350 initialize();
6351 };
6352
6353 force.strength = function(_) {
6354 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
6355 };
6356
6357 force.x = function(_) {
6358 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : x;
6359 };
6360
6361 return force;
6362});
6363
6364
6365/***/ }),
6366
6367/***/ "./node_modules/d3-force/src/y.js":
6368/*!****************************************!*\
6369 !*** ./node_modules/d3-force/src/y.js ***!
6370 \****************************************/
6371/*! exports provided: default */
6372/***/ (function(module, __webpack_exports__, __webpack_require__) {
6373
6374"use strict";
6375__webpack_require__.r(__webpack_exports__);
6376/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
6377
6378
6379/* harmony default export */ __webpack_exports__["default"] = (function(y) {
6380 var strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
6381 nodes,
6382 strengths,
6383 yz;
6384
6385 if (typeof y !== "function") y = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(y == null ? 0 : +y);
6386
6387 function force(alpha) {
6388 for (var i = 0, n = nodes.length, node; i < n; ++i) {
6389 node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
6390 }
6391 }
6392
6393 function initialize() {
6394 if (!nodes) return;
6395 var i, n = nodes.length;
6396 strengths = new Array(n);
6397 yz = new Array(n);
6398 for (i = 0; i < n; ++i) {
6399 strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
6400 }
6401 }
6402
6403 force.initialize = function(_) {
6404 nodes = _;
6405 initialize();
6406 };
6407
6408 force.strength = function(_) {
6409 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
6410 };
6411
6412 force.y = function(_) {
6413 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : y;
6414 };
6415
6416 return force;
6417});
6418
6419
6420/***/ }),
6421
6422/***/ "./node_modules/d3-format/src/defaultLocale.js":
6423/*!*****************************************************!*\
6424 !*** ./node_modules/d3-format/src/defaultLocale.js ***!
6425 \*****************************************************/
6426/*! exports provided: format, formatPrefix, default */
6427/***/ (function(module, __webpack_exports__, __webpack_require__) {
6428
6429"use strict";
6430__webpack_require__.r(__webpack_exports__);
6431/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "format", function() { return format; });
6432/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return formatPrefix; });
6433/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return defaultLocale; });
6434/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale */ "./node_modules/d3-format/src/locale.js");
6435
6436
6437var locale;
6438var format;
6439var formatPrefix;
6440
6441defaultLocale({
6442 decimal: ".",
6443 thousands: ",",
6444 grouping: [3],
6445 currency: ["$", ""]
6446});
6447
6448function defaultLocale(definition) {
6449 locale = Object(_locale__WEBPACK_IMPORTED_MODULE_0__["default"])(definition);
6450 format = locale.format;
6451 formatPrefix = locale.formatPrefix;
6452 return locale;
6453}
6454
6455
6456/***/ }),
6457
6458/***/ "./node_modules/d3-format/src/exponent.js":
6459/*!************************************************!*\
6460 !*** ./node_modules/d3-format/src/exponent.js ***!
6461 \************************************************/
6462/*! exports provided: default */
6463/***/ (function(module, __webpack_exports__, __webpack_require__) {
6464
6465"use strict";
6466__webpack_require__.r(__webpack_exports__);
6467/* harmony import */ var _formatDecimal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal */ "./node_modules/d3-format/src/formatDecimal.js");
6468
6469
6470/* harmony default export */ __webpack_exports__["default"] = (function(x) {
6471 return x = Object(_formatDecimal__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(x)), x ? x[1] : NaN;
6472});
6473
6474
6475/***/ }),
6476
6477/***/ "./node_modules/d3-format/src/formatDecimal.js":
6478/*!*****************************************************!*\
6479 !*** ./node_modules/d3-format/src/formatDecimal.js ***!
6480 \*****************************************************/
6481/*! exports provided: default */
6482/***/ (function(module, __webpack_exports__, __webpack_require__) {
6483
6484"use strict";
6485__webpack_require__.r(__webpack_exports__);
6486// Computes the decimal coefficient and exponent of the specified number x with
6487// significant digits p, where x is positive and p is in [1, 21] or undefined.
6488// For example, formatDecimal(1.23) returns ["123", 0].
6489/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
6490 if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
6491 var i, coefficient = x.slice(0, i);
6492
6493 // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
6494 // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
6495 return [
6496 coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
6497 +x.slice(i + 1)
6498 ];
6499});
6500
6501
6502/***/ }),
6503
6504/***/ "./node_modules/d3-format/src/formatGroup.js":
6505/*!***************************************************!*\
6506 !*** ./node_modules/d3-format/src/formatGroup.js ***!
6507 \***************************************************/
6508/*! exports provided: default */
6509/***/ (function(module, __webpack_exports__, __webpack_require__) {
6510
6511"use strict";
6512__webpack_require__.r(__webpack_exports__);
6513/* harmony default export */ __webpack_exports__["default"] = (function(grouping, thousands) {
6514 return function(value, width) {
6515 var i = value.length,
6516 t = [],
6517 j = 0,
6518 g = grouping[0],
6519 length = 0;
6520
6521 while (i > 0 && g > 0) {
6522 if (length + g + 1 > width) g = Math.max(1, width - length);
6523 t.push(value.substring(i -= g, i + g));
6524 if ((length += g + 1) > width) break;
6525 g = grouping[j = (j + 1) % grouping.length];
6526 }
6527
6528 return t.reverse().join(thousands);
6529 };
6530});
6531
6532
6533/***/ }),
6534
6535/***/ "./node_modules/d3-format/src/formatNumerals.js":
6536/*!******************************************************!*\
6537 !*** ./node_modules/d3-format/src/formatNumerals.js ***!
6538 \******************************************************/
6539/*! exports provided: default */
6540/***/ (function(module, __webpack_exports__, __webpack_require__) {
6541
6542"use strict";
6543__webpack_require__.r(__webpack_exports__);
6544/* harmony default export */ __webpack_exports__["default"] = (function(numerals) {
6545 return function(value) {
6546 return value.replace(/[0-9]/g, function(i) {
6547 return numerals[+i];
6548 });
6549 };
6550});
6551
6552
6553/***/ }),
6554
6555/***/ "./node_modules/d3-format/src/formatPrefixAuto.js":
6556/*!********************************************************!*\
6557 !*** ./node_modules/d3-format/src/formatPrefixAuto.js ***!
6558 \********************************************************/
6559/*! exports provided: prefixExponent, default */
6560/***/ (function(module, __webpack_exports__, __webpack_require__) {
6561
6562"use strict";
6563__webpack_require__.r(__webpack_exports__);
6564/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefixExponent", function() { return prefixExponent; });
6565/* harmony import */ var _formatDecimal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal */ "./node_modules/d3-format/src/formatDecimal.js");
6566
6567
6568var prefixExponent;
6569
6570/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
6571 var d = Object(_formatDecimal__WEBPACK_IMPORTED_MODULE_0__["default"])(x, p);
6572 if (!d) return x + "";
6573 var coefficient = d[0],
6574 exponent = d[1],
6575 i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
6576 n = coefficient.length;
6577 return i === n ? coefficient
6578 : i > n ? coefficient + new Array(i - n + 1).join("0")
6579 : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
6580 : "0." + new Array(1 - i).join("0") + Object(_formatDecimal__WEBPACK_IMPORTED_MODULE_0__["default"])(x, Math.max(0, p + i - 1))[0]; // less than 1y!
6581});
6582
6583
6584/***/ }),
6585
6586/***/ "./node_modules/d3-format/src/formatRounded.js":
6587/*!*****************************************************!*\
6588 !*** ./node_modules/d3-format/src/formatRounded.js ***!
6589 \*****************************************************/
6590/*! exports provided: default */
6591/***/ (function(module, __webpack_exports__, __webpack_require__) {
6592
6593"use strict";
6594__webpack_require__.r(__webpack_exports__);
6595/* harmony import */ var _formatDecimal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal */ "./node_modules/d3-format/src/formatDecimal.js");
6596
6597
6598/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
6599 var d = Object(_formatDecimal__WEBPACK_IMPORTED_MODULE_0__["default"])(x, p);
6600 if (!d) return x + "";
6601 var coefficient = d[0],
6602 exponent = d[1];
6603 return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
6604 : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
6605 : coefficient + new Array(exponent - coefficient.length + 2).join("0");
6606});
6607
6608
6609/***/ }),
6610
6611/***/ "./node_modules/d3-format/src/formatSpecifier.js":
6612/*!*******************************************************!*\
6613 !*** ./node_modules/d3-format/src/formatSpecifier.js ***!
6614 \*******************************************************/
6615/*! exports provided: default */
6616/***/ (function(module, __webpack_exports__, __webpack_require__) {
6617
6618"use strict";
6619__webpack_require__.r(__webpack_exports__);
6620/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatSpecifier; });
6621// [[fill]align][sign][symbol][0][width][,][.precision][~][type]
6622var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
6623
6624function formatSpecifier(specifier) {
6625 return new FormatSpecifier(specifier);
6626}
6627
6628formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
6629
6630function FormatSpecifier(specifier) {
6631 if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
6632 var match;
6633 this.fill = match[1] || " ";
6634 this.align = match[2] || ">";
6635 this.sign = match[3] || "-";
6636 this.symbol = match[4] || "";
6637 this.zero = !!match[5];
6638 this.width = match[6] && +match[6];
6639 this.comma = !!match[7];
6640 this.precision = match[8] && +match[8].slice(1);
6641 this.trim = !!match[9];
6642 this.type = match[10] || "";
6643}
6644
6645FormatSpecifier.prototype.toString = function() {
6646 return this.fill
6647 + this.align
6648 + this.sign
6649 + this.symbol
6650 + (this.zero ? "0" : "")
6651 + (this.width == null ? "" : Math.max(1, this.width | 0))
6652 + (this.comma ? "," : "")
6653 + (this.precision == null ? "" : "." + Math.max(0, this.precision | 0))
6654 + (this.trim ? "~" : "")
6655 + this.type;
6656};
6657
6658
6659/***/ }),
6660
6661/***/ "./node_modules/d3-format/src/formatTrim.js":
6662/*!**************************************************!*\
6663 !*** ./node_modules/d3-format/src/formatTrim.js ***!
6664 \**************************************************/
6665/*! exports provided: default */
6666/***/ (function(module, __webpack_exports__, __webpack_require__) {
6667
6668"use strict";
6669__webpack_require__.r(__webpack_exports__);
6670// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
6671/* harmony default export */ __webpack_exports__["default"] = (function(s) {
6672 out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
6673 switch (s[i]) {
6674 case ".": i0 = i1 = i; break;
6675 case "0": if (i0 === 0) i0 = i; i1 = i; break;
6676 default: if (i0 > 0) { if (!+s[i]) break out; i0 = 0; } break;
6677 }
6678 }
6679 return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
6680});
6681
6682
6683/***/ }),
6684
6685/***/ "./node_modules/d3-format/src/formatTypes.js":
6686/*!***************************************************!*\
6687 !*** ./node_modules/d3-format/src/formatTypes.js ***!
6688 \***************************************************/
6689/*! exports provided: default */
6690/***/ (function(module, __webpack_exports__, __webpack_require__) {
6691
6692"use strict";
6693__webpack_require__.r(__webpack_exports__);
6694/* harmony import */ var _formatPrefixAuto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatPrefixAuto */ "./node_modules/d3-format/src/formatPrefixAuto.js");
6695/* harmony import */ var _formatRounded__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatRounded */ "./node_modules/d3-format/src/formatRounded.js");
6696
6697
6698
6699/* harmony default export */ __webpack_exports__["default"] = ({
6700 "%": function(x, p) { return (x * 100).toFixed(p); },
6701 "b": function(x) { return Math.round(x).toString(2); },
6702 "c": function(x) { return x + ""; },
6703 "d": function(x) { return Math.round(x).toString(10); },
6704 "e": function(x, p) { return x.toExponential(p); },
6705 "f": function(x, p) { return x.toFixed(p); },
6706 "g": function(x, p) { return x.toPrecision(p); },
6707 "o": function(x) { return Math.round(x).toString(8); },
6708 "p": function(x, p) { return Object(_formatRounded__WEBPACK_IMPORTED_MODULE_1__["default"])(x * 100, p); },
6709 "r": _formatRounded__WEBPACK_IMPORTED_MODULE_1__["default"],
6710 "s": _formatPrefixAuto__WEBPACK_IMPORTED_MODULE_0__["default"],
6711 "X": function(x) { return Math.round(x).toString(16).toUpperCase(); },
6712 "x": function(x) { return Math.round(x).toString(16); }
6713});
6714
6715
6716/***/ }),
6717
6718/***/ "./node_modules/d3-format/src/identity.js":
6719/*!************************************************!*\
6720 !*** ./node_modules/d3-format/src/identity.js ***!
6721 \************************************************/
6722/*! exports provided: default */
6723/***/ (function(module, __webpack_exports__, __webpack_require__) {
6724
6725"use strict";
6726__webpack_require__.r(__webpack_exports__);
6727/* harmony default export */ __webpack_exports__["default"] = (function(x) {
6728 return x;
6729});
6730
6731
6732/***/ }),
6733
6734/***/ "./node_modules/d3-format/src/index.js":
6735/*!*********************************************!*\
6736 !*** ./node_modules/d3-format/src/index.js ***!
6737 \*********************************************/
6738/*! exports provided: formatDefaultLocale, format, formatPrefix, formatLocale, formatSpecifier, precisionFixed, precisionPrefix, precisionRound */
6739/***/ (function(module, __webpack_exports__, __webpack_require__) {
6740
6741"use strict";
6742__webpack_require__.r(__webpack_exports__);
6743/* harmony import */ var _defaultLocale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale */ "./node_modules/d3-format/src/defaultLocale.js");
6744/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatDefaultLocale", function() { return _defaultLocale__WEBPACK_IMPORTED_MODULE_0__["default"]; });
6745
6746/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return _defaultLocale__WEBPACK_IMPORTED_MODULE_0__["format"]; });
6747
6748/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return _defaultLocale__WEBPACK_IMPORTED_MODULE_0__["formatPrefix"]; });
6749
6750/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale */ "./node_modules/d3-format/src/locale.js");
6751/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatLocale", function() { return _locale__WEBPACK_IMPORTED_MODULE_1__["default"]; });
6752
6753/* harmony import */ var _formatSpecifier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatSpecifier */ "./node_modules/d3-format/src/formatSpecifier.js");
6754/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatSpecifier", function() { return _formatSpecifier__WEBPACK_IMPORTED_MODULE_2__["default"]; });
6755
6756/* harmony import */ var _precisionFixed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./precisionFixed */ "./node_modules/d3-format/src/precisionFixed.js");
6757/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionFixed", function() { return _precisionFixed__WEBPACK_IMPORTED_MODULE_3__["default"]; });
6758
6759/* harmony import */ var _precisionPrefix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./precisionPrefix */ "./node_modules/d3-format/src/precisionPrefix.js");
6760/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionPrefix", function() { return _precisionPrefix__WEBPACK_IMPORTED_MODULE_4__["default"]; });
6761
6762/* harmony import */ var _precisionRound__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./precisionRound */ "./node_modules/d3-format/src/precisionRound.js");
6763/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return _precisionRound__WEBPACK_IMPORTED_MODULE_5__["default"]; });
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773/***/ }),
6774
6775/***/ "./node_modules/d3-format/src/locale.js":
6776/*!**********************************************!*\
6777 !*** ./node_modules/d3-format/src/locale.js ***!
6778 \**********************************************/
6779/*! exports provided: default */
6780/***/ (function(module, __webpack_exports__, __webpack_require__) {
6781
6782"use strict";
6783__webpack_require__.r(__webpack_exports__);
6784/* harmony import */ var _exponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent */ "./node_modules/d3-format/src/exponent.js");
6785/* harmony import */ var _formatGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatGroup */ "./node_modules/d3-format/src/formatGroup.js");
6786/* harmony import */ var _formatNumerals__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatNumerals */ "./node_modules/d3-format/src/formatNumerals.js");
6787/* harmony import */ var _formatSpecifier__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formatSpecifier */ "./node_modules/d3-format/src/formatSpecifier.js");
6788/* harmony import */ var _formatTrim__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatTrim */ "./node_modules/d3-format/src/formatTrim.js");
6789/* harmony import */ var _formatTypes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatTypes */ "./node_modules/d3-format/src/formatTypes.js");
6790/* harmony import */ var _formatPrefixAuto__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./formatPrefixAuto */ "./node_modules/d3-format/src/formatPrefixAuto.js");
6791/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-format/src/identity.js");
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801var prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
6802
6803/* harmony default export */ __webpack_exports__["default"] = (function(locale) {
6804 var group = locale.grouping && locale.thousands ? Object(_formatGroup__WEBPACK_IMPORTED_MODULE_1__["default"])(locale.grouping, locale.thousands) : _identity__WEBPACK_IMPORTED_MODULE_7__["default"],
6805 currency = locale.currency,
6806 decimal = locale.decimal,
6807 numerals = locale.numerals ? Object(_formatNumerals__WEBPACK_IMPORTED_MODULE_2__["default"])(locale.numerals) : _identity__WEBPACK_IMPORTED_MODULE_7__["default"],
6808 percent = locale.percent || "%";
6809
6810 function newFormat(specifier) {
6811 specifier = Object(_formatSpecifier__WEBPACK_IMPORTED_MODULE_3__["default"])(specifier);
6812
6813 var fill = specifier.fill,
6814 align = specifier.align,
6815 sign = specifier.sign,
6816 symbol = specifier.symbol,
6817 zero = specifier.zero,
6818 width = specifier.width,
6819 comma = specifier.comma,
6820 precision = specifier.precision,
6821 trim = specifier.trim,
6822 type = specifier.type;
6823
6824 // The "n" type is an alias for ",g".
6825 if (type === "n") comma = true, type = "g";
6826
6827 // The "" type, and any invalid type, is an alias for ".12~g".
6828 else if (!_formatTypes__WEBPACK_IMPORTED_MODULE_5__["default"][type]) precision == null && (precision = 12), trim = true, type = "g";
6829
6830 // If zero fill is specified, padding goes after sign and before digits.
6831 if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
6832
6833 // Compute the prefix and suffix.
6834 // For SI-prefix, the suffix is lazily computed.
6835 var prefix = symbol === "$" ? currency[0] : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
6836 suffix = symbol === "$" ? currency[1] : /[%p]/.test(type) ? percent : "";
6837
6838 // What format function should we use?
6839 // Is this an integer type?
6840 // Can this type generate exponential notation?
6841 var formatType = _formatTypes__WEBPACK_IMPORTED_MODULE_5__["default"][type],
6842 maybeSuffix = /[defgprs%]/.test(type);
6843
6844 // Set the default precision if not specified,
6845 // or clamp the specified precision to the supported range.
6846 // For significant precision, it must be in [1, 21].
6847 // For fixed precision, it must be in [0, 20].
6848 precision = precision == null ? 6
6849 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
6850 : Math.max(0, Math.min(20, precision));
6851
6852 function format(value) {
6853 var valuePrefix = prefix,
6854 valueSuffix = suffix,
6855 i, n, c;
6856
6857 if (type === "c") {
6858 valueSuffix = formatType(value) + valueSuffix;
6859 value = "";
6860 } else {
6861 value = +value;
6862
6863 // Perform the initial formatting.
6864 var valueNegative = value < 0;
6865 value = formatType(Math.abs(value), precision);
6866
6867 // Trim insignificant zeros.
6868 if (trim) value = Object(_formatTrim__WEBPACK_IMPORTED_MODULE_4__["default"])(value);
6869
6870 // If a negative value rounds to zero during formatting, treat as positive.
6871 if (valueNegative && +value === 0) valueNegative = false;
6872
6873 // Compute the prefix and suffix.
6874 valuePrefix = (valueNegative ? (sign === "(" ? sign : "-") : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
6875 valueSuffix = (type === "s" ? prefixes[8 + _formatPrefixAuto__WEBPACK_IMPORTED_MODULE_6__["prefixExponent"] / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
6876
6877 // Break the formatted value into the integer “value” part that can be
6878 // grouped, and fractional or exponential “suffix” part that is not.
6879 if (maybeSuffix) {
6880 i = -1, n = value.length;
6881 while (++i < n) {
6882 if (c = value.charCodeAt(i), 48 > c || c > 57) {
6883 valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
6884 value = value.slice(0, i);
6885 break;
6886 }
6887 }
6888 }
6889 }
6890
6891 // If the fill character is not "0", grouping is applied before padding.
6892 if (comma && !zero) value = group(value, Infinity);
6893
6894 // Compute the padding.
6895 var length = valuePrefix.length + value.length + valueSuffix.length,
6896 padding = length < width ? new Array(width - length + 1).join(fill) : "";
6897
6898 // If the fill character is "0", grouping is applied after padding.
6899 if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
6900
6901 // Reconstruct the final output based on the desired alignment.
6902 switch (align) {
6903 case "<": value = valuePrefix + value + valueSuffix + padding; break;
6904 case "=": value = valuePrefix + padding + value + valueSuffix; break;
6905 case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
6906 default: value = padding + valuePrefix + value + valueSuffix; break;
6907 }
6908
6909 return numerals(value);
6910 }
6911
6912 format.toString = function() {
6913 return specifier + "";
6914 };
6915
6916 return format;
6917 }
6918
6919 function formatPrefix(specifier, value) {
6920 var f = newFormat((specifier = Object(_formatSpecifier__WEBPACK_IMPORTED_MODULE_3__["default"])(specifier), specifier.type = "f", specifier)),
6921 e = Math.max(-8, Math.min(8, Math.floor(Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(value) / 3))) * 3,
6922 k = Math.pow(10, -e),
6923 prefix = prefixes[8 + e / 3];
6924 return function(value) {
6925 return f(k * value) + prefix;
6926 };
6927 }
6928
6929 return {
6930 format: newFormat,
6931 formatPrefix: formatPrefix
6932 };
6933});
6934
6935
6936/***/ }),
6937
6938/***/ "./node_modules/d3-format/src/precisionFixed.js":
6939/*!******************************************************!*\
6940 !*** ./node_modules/d3-format/src/precisionFixed.js ***!
6941 \******************************************************/
6942/*! exports provided: default */
6943/***/ (function(module, __webpack_exports__, __webpack_require__) {
6944
6945"use strict";
6946__webpack_require__.r(__webpack_exports__);
6947/* harmony import */ var _exponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent */ "./node_modules/d3-format/src/exponent.js");
6948
6949
6950/* harmony default export */ __webpack_exports__["default"] = (function(step) {
6951 return Math.max(0, -Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(step)));
6952});
6953
6954
6955/***/ }),
6956
6957/***/ "./node_modules/d3-format/src/precisionPrefix.js":
6958/*!*******************************************************!*\
6959 !*** ./node_modules/d3-format/src/precisionPrefix.js ***!
6960 \*******************************************************/
6961/*! exports provided: default */
6962/***/ (function(module, __webpack_exports__, __webpack_require__) {
6963
6964"use strict";
6965__webpack_require__.r(__webpack_exports__);
6966/* harmony import */ var _exponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent */ "./node_modules/d3-format/src/exponent.js");
6967
6968
6969/* harmony default export */ __webpack_exports__["default"] = (function(step, value) {
6970 return Math.max(0, Math.max(-8, Math.min(8, Math.floor(Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(value) / 3))) * 3 - Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(step)));
6971});
6972
6973
6974/***/ }),
6975
6976/***/ "./node_modules/d3-format/src/precisionRound.js":
6977/*!******************************************************!*\
6978 !*** ./node_modules/d3-format/src/precisionRound.js ***!
6979 \******************************************************/
6980/*! exports provided: default */
6981/***/ (function(module, __webpack_exports__, __webpack_require__) {
6982
6983"use strict";
6984__webpack_require__.r(__webpack_exports__);
6985/* harmony import */ var _exponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent */ "./node_modules/d3-format/src/exponent.js");
6986
6987
6988/* harmony default export */ __webpack_exports__["default"] = (function(step, max) {
6989 step = Math.abs(step), max = Math.abs(max) - step;
6990 return Math.max(0, Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(max) - Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(step)) + 1;
6991});
6992
6993
6994/***/ }),
6995
6996/***/ "./node_modules/d3-geo/src/adder.js":
6997/*!******************************************!*\
6998 !*** ./node_modules/d3-geo/src/adder.js ***!
6999 \******************************************/
7000/*! exports provided: default */
7001/***/ (function(module, __webpack_exports__, __webpack_require__) {
7002
7003"use strict";
7004__webpack_require__.r(__webpack_exports__);
7005// Adds floating point numbers with twice the normal precision.
7006// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and
7007// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)
7008// 305–363 (1997).
7009// Code adapted from GeographicLib by Charles F. F. Karney,
7010// http://geographiclib.sourceforge.net/
7011
7012/* harmony default export */ __webpack_exports__["default"] = (function() {
7013 return new Adder;
7014});
7015
7016function Adder() {
7017 this.reset();
7018}
7019
7020Adder.prototype = {
7021 constructor: Adder,
7022 reset: function() {
7023 this.s = // rounded value
7024 this.t = 0; // exact error
7025 },
7026 add: function(y) {
7027 add(temp, y, this.t);
7028 add(this, temp.s, this.s);
7029 if (this.s) this.t += temp.t;
7030 else this.s = temp.t;
7031 },
7032 valueOf: function() {
7033 return this.s;
7034 }
7035};
7036
7037var temp = new Adder;
7038
7039function add(adder, a, b) {
7040 var x = adder.s = a + b,
7041 bv = x - a,
7042 av = x - bv;
7043 adder.t = (a - av) + (b - bv);
7044}
7045
7046
7047/***/ }),
7048
7049/***/ "./node_modules/d3-geo/src/area.js":
7050/*!*****************************************!*\
7051 !*** ./node_modules/d3-geo/src/area.js ***!
7052 \*****************************************/
7053/*! exports provided: areaRingSum, areaStream, default */
7054/***/ (function(module, __webpack_exports__, __webpack_require__) {
7055
7056"use strict";
7057__webpack_require__.r(__webpack_exports__);
7058/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areaRingSum", function() { return areaRingSum; });
7059/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areaStream", function() { return areaStream; });
7060/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder */ "./node_modules/d3-geo/src/adder.js");
7061/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
7062/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop */ "./node_modules/d3-geo/src/noop.js");
7063/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
7064
7065
7066
7067
7068
7069var areaRingSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])();
7070
7071var areaSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
7072 lambda00,
7073 phi00,
7074 lambda0,
7075 cosPhi0,
7076 sinPhi0;
7077
7078var areaStream = {
7079 point: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
7080 lineStart: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
7081 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
7082 polygonStart: function() {
7083 areaRingSum.reset();
7084 areaStream.lineStart = areaRingStart;
7085 areaStream.lineEnd = areaRingEnd;
7086 },
7087 polygonEnd: function() {
7088 var areaRing = +areaRingSum;
7089 areaSum.add(areaRing < 0 ? _math__WEBPACK_IMPORTED_MODULE_1__["tau"] + areaRing : areaRing);
7090 this.lineStart = this.lineEnd = this.point = _noop__WEBPACK_IMPORTED_MODULE_2__["default"];
7091 },
7092 sphere: function() {
7093 areaSum.add(_math__WEBPACK_IMPORTED_MODULE_1__["tau"]);
7094 }
7095};
7096
7097function areaRingStart() {
7098 areaStream.point = areaPointFirst;
7099}
7100
7101function areaRingEnd() {
7102 areaPoint(lambda00, phi00);
7103}
7104
7105function areaPointFirst(lambda, phi) {
7106 areaStream.point = areaPoint;
7107 lambda00 = lambda, phi00 = phi;
7108 lambda *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"];
7109 lambda0 = lambda, cosPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi = phi / 2 + _math__WEBPACK_IMPORTED_MODULE_1__["quarterPi"]), sinPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi);
7110}
7111
7112function areaPoint(lambda, phi) {
7113 lambda *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"];
7114 phi = phi / 2 + _math__WEBPACK_IMPORTED_MODULE_1__["quarterPi"]; // half the angular distance from south pole
7115
7116 // Spherical excess E for a spherical triangle with vertices: south pole,
7117 // previous point, current point. Uses a formula derived from Cagnoli’s
7118 // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
7119 var dLambda = lambda - lambda0,
7120 sdLambda = dLambda >= 0 ? 1 : -1,
7121 adLambda = sdLambda * dLambda,
7122 cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
7123 sinPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
7124 k = sinPhi0 * sinPhi,
7125 u = cosPhi0 * cosPhi + k * Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(adLambda),
7126 v = k * sdLambda * Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(adLambda);
7127 areaRingSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(v, u));
7128
7129 // Advance the previous points.
7130 lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;
7131}
7132
7133/* harmony default export */ __webpack_exports__["default"] = (function(object) {
7134 areaSum.reset();
7135 Object(_stream__WEBPACK_IMPORTED_MODULE_3__["default"])(object, areaStream);
7136 return areaSum * 2;
7137});
7138
7139
7140/***/ }),
7141
7142/***/ "./node_modules/d3-geo/src/bounds.js":
7143/*!*******************************************!*\
7144 !*** ./node_modules/d3-geo/src/bounds.js ***!
7145 \*******************************************/
7146/*! exports provided: default */
7147/***/ (function(module, __webpack_exports__, __webpack_require__) {
7148
7149"use strict";
7150__webpack_require__.r(__webpack_exports__);
7151/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder */ "./node_modules/d3-geo/src/adder.js");
7152/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area */ "./node_modules/d3-geo/src/area.js");
7153/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cartesian */ "./node_modules/d3-geo/src/cartesian.js");
7154/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
7155/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
7156
7157
7158
7159
7160
7161
7162var lambda0, phi0, lambda1, phi1, // bounds
7163 lambda2, // previous lambda-coordinate
7164 lambda00, phi00, // first point
7165 p0, // previous 3D point
7166 deltaSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
7167 ranges,
7168 range;
7169
7170var boundsStream = {
7171 point: boundsPoint,
7172 lineStart: boundsLineStart,
7173 lineEnd: boundsLineEnd,
7174 polygonStart: function() {
7175 boundsStream.point = boundsRingPoint;
7176 boundsStream.lineStart = boundsRingStart;
7177 boundsStream.lineEnd = boundsRingEnd;
7178 deltaSum.reset();
7179 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].polygonStart();
7180 },
7181 polygonEnd: function() {
7182 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].polygonEnd();
7183 boundsStream.point = boundsPoint;
7184 boundsStream.lineStart = boundsLineStart;
7185 boundsStream.lineEnd = boundsLineEnd;
7186 if (_area__WEBPACK_IMPORTED_MODULE_1__["areaRingSum"] < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);
7187 else if (deltaSum > _math__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) phi1 = 90;
7188 else if (deltaSum < -_math__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) phi0 = -90;
7189 range[0] = lambda0, range[1] = lambda1;
7190 }
7191};
7192
7193function boundsPoint(lambda, phi) {
7194 ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
7195 if (phi < phi0) phi0 = phi;
7196 if (phi > phi1) phi1 = phi;
7197}
7198
7199function linePoint(lambda, phi) {
7200 var p = Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["cartesian"])([lambda * _math__WEBPACK_IMPORTED_MODULE_3__["radians"], phi * _math__WEBPACK_IMPORTED_MODULE_3__["radians"]]);
7201 if (p0) {
7202 var normal = Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["cartesianCross"])(p0, p),
7203 equatorial = [normal[1], -normal[0], 0],
7204 inflection = Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["cartesianCross"])(equatorial, normal);
7205 Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["cartesianNormalizeInPlace"])(inflection);
7206 inflection = Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["spherical"])(inflection);
7207 var delta = lambda - lambda2,
7208 sign = delta > 0 ? 1 : -1,
7209 lambdai = inflection[0] * _math__WEBPACK_IMPORTED_MODULE_3__["degrees"] * sign,
7210 phii,
7211 antimeridian = Object(_math__WEBPACK_IMPORTED_MODULE_3__["abs"])(delta) > 180;
7212 if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
7213 phii = inflection[1] * _math__WEBPACK_IMPORTED_MODULE_3__["degrees"];
7214 if (phii > phi1) phi1 = phii;
7215 } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
7216 phii = -inflection[1] * _math__WEBPACK_IMPORTED_MODULE_3__["degrees"];
7217 if (phii < phi0) phi0 = phii;
7218 } else {
7219 if (phi < phi0) phi0 = phi;
7220 if (phi > phi1) phi1 = phi;
7221 }
7222 if (antimeridian) {
7223 if (lambda < lambda2) {
7224 if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
7225 } else {
7226 if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
7227 }
7228 } else {
7229 if (lambda1 >= lambda0) {
7230 if (lambda < lambda0) lambda0 = lambda;
7231 if (lambda > lambda1) lambda1 = lambda;
7232 } else {
7233 if (lambda > lambda2) {
7234 if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
7235 } else {
7236 if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
7237 }
7238 }
7239 }
7240 } else {
7241 ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
7242 }
7243 if (phi < phi0) phi0 = phi;
7244 if (phi > phi1) phi1 = phi;
7245 p0 = p, lambda2 = lambda;
7246}
7247
7248function boundsLineStart() {
7249 boundsStream.point = linePoint;
7250}
7251
7252function boundsLineEnd() {
7253 range[0] = lambda0, range[1] = lambda1;
7254 boundsStream.point = boundsPoint;
7255 p0 = null;
7256}
7257
7258function boundsRingPoint(lambda, phi) {
7259 if (p0) {
7260 var delta = lambda - lambda2;
7261 deltaSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_3__["abs"])(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
7262 } else {
7263 lambda00 = lambda, phi00 = phi;
7264 }
7265 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].point(lambda, phi);
7266 linePoint(lambda, phi);
7267}
7268
7269function boundsRingStart() {
7270 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].lineStart();
7271}
7272
7273function boundsRingEnd() {
7274 boundsRingPoint(lambda00, phi00);
7275 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].lineEnd();
7276 if (Object(_math__WEBPACK_IMPORTED_MODULE_3__["abs"])(deltaSum) > _math__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) lambda0 = -(lambda1 = 180);
7277 range[0] = lambda0, range[1] = lambda1;
7278 p0 = null;
7279}
7280
7281// Finds the left-right distance between two longitudes.
7282// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
7283// the distance between ±180° to be 360°.
7284function angle(lambda0, lambda1) {
7285 return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
7286}
7287
7288function rangeCompare(a, b) {
7289 return a[0] - b[0];
7290}
7291
7292function rangeContains(range, x) {
7293 return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
7294}
7295
7296/* harmony default export */ __webpack_exports__["default"] = (function(feature) {
7297 var i, n, a, b, merged, deltaMax, delta;
7298
7299 phi1 = lambda1 = -(lambda0 = phi0 = Infinity);
7300 ranges = [];
7301 Object(_stream__WEBPACK_IMPORTED_MODULE_4__["default"])(feature, boundsStream);
7302
7303 // First, sort ranges by their minimum longitudes.
7304 if (n = ranges.length) {
7305 ranges.sort(rangeCompare);
7306
7307 // Then, merge any ranges that overlap.
7308 for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
7309 b = ranges[i];
7310 if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
7311 if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
7312 if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
7313 } else {
7314 merged.push(a = b);
7315 }
7316 }
7317
7318 // Finally, find the largest gap between the merged ranges.
7319 // The final bounding box will be the inverse of this gap.
7320 for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
7321 b = merged[i];
7322 if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];
7323 }
7324 }
7325
7326 ranges = range = null;
7327
7328 return lambda0 === Infinity || phi0 === Infinity
7329 ? [[NaN, NaN], [NaN, NaN]]
7330 : [[lambda0, phi0], [lambda1, phi1]];
7331});
7332
7333
7334/***/ }),
7335
7336/***/ "./node_modules/d3-geo/src/cartesian.js":
7337/*!**********************************************!*\
7338 !*** ./node_modules/d3-geo/src/cartesian.js ***!
7339 \**********************************************/
7340/*! exports provided: spherical, cartesian, cartesianDot, cartesianCross, cartesianAddInPlace, cartesianScale, cartesianNormalizeInPlace */
7341/***/ (function(module, __webpack_exports__, __webpack_require__) {
7342
7343"use strict";
7344__webpack_require__.r(__webpack_exports__);
7345/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spherical", function() { return spherical; });
7346/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesian", function() { return cartesian; });
7347/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianDot", function() { return cartesianDot; });
7348/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianCross", function() { return cartesianCross; });
7349/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianAddInPlace", function() { return cartesianAddInPlace; });
7350/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianScale", function() { return cartesianScale; });
7351/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianNormalizeInPlace", function() { return cartesianNormalizeInPlace; });
7352/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
7353
7354
7355function spherical(cartesian) {
7356 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(cartesian[1], cartesian[0]), Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(cartesian[2])];
7357}
7358
7359function cartesian(spherical) {
7360 var lambda = spherical[0], phi = spherical[1], cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
7361 return [cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda), cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda), Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi)];
7362}
7363
7364function cartesianDot(a, b) {
7365 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
7366}
7367
7368function cartesianCross(a, b) {
7369 return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
7370}
7371
7372// TODO return a
7373function cartesianAddInPlace(a, b) {
7374 a[0] += b[0], a[1] += b[1], a[2] += b[2];
7375}
7376
7377function cartesianScale(vector, k) {
7378 return [vector[0] * k, vector[1] * k, vector[2] * k];
7379}
7380
7381// TODO return d
7382function cartesianNormalizeInPlace(d) {
7383 var l = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
7384 d[0] /= l, d[1] /= l, d[2] /= l;
7385}
7386
7387
7388/***/ }),
7389
7390/***/ "./node_modules/d3-geo/src/centroid.js":
7391/*!*********************************************!*\
7392 !*** ./node_modules/d3-geo/src/centroid.js ***!
7393 \*********************************************/
7394/*! exports provided: default */
7395/***/ (function(module, __webpack_exports__, __webpack_require__) {
7396
7397"use strict";
7398__webpack_require__.r(__webpack_exports__);
7399/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
7400/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noop */ "./node_modules/d3-geo/src/noop.js");
7401/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
7402
7403
7404
7405
7406var W0, W1,
7407 X0, Y0, Z0,
7408 X1, Y1, Z1,
7409 X2, Y2, Z2,
7410 lambda00, phi00, // first point
7411 x0, y0, z0; // previous point
7412
7413var centroidStream = {
7414 sphere: _noop__WEBPACK_IMPORTED_MODULE_1__["default"],
7415 point: centroidPoint,
7416 lineStart: centroidLineStart,
7417 lineEnd: centroidLineEnd,
7418 polygonStart: function() {
7419 centroidStream.lineStart = centroidRingStart;
7420 centroidStream.lineEnd = centroidRingEnd;
7421 },
7422 polygonEnd: function() {
7423 centroidStream.lineStart = centroidLineStart;
7424 centroidStream.lineEnd = centroidLineEnd;
7425 }
7426};
7427
7428// Arithmetic mean of Cartesian vectors.
7429function centroidPoint(lambda, phi) {
7430 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
7431 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
7432 centroidPointCartesian(cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda), cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda), Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi));
7433}
7434
7435function centroidPointCartesian(x, y, z) {
7436 ++W0;
7437 X0 += (x - X0) / W0;
7438 Y0 += (y - Y0) / W0;
7439 Z0 += (z - Z0) / W0;
7440}
7441
7442function centroidLineStart() {
7443 centroidStream.point = centroidLinePointFirst;
7444}
7445
7446function centroidLinePointFirst(lambda, phi) {
7447 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
7448 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
7449 x0 = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda);
7450 y0 = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda);
7451 z0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi);
7452 centroidStream.point = centroidLinePoint;
7453 centroidPointCartesian(x0, y0, z0);
7454}
7455
7456function centroidLinePoint(lambda, phi) {
7457 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
7458 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi),
7459 x = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda),
7460 y = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda),
7461 z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi),
7462 w = Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
7463 W1 += w;
7464 X1 += w * (x0 + (x0 = x));
7465 Y1 += w * (y0 + (y0 = y));
7466 Z1 += w * (z0 + (z0 = z));
7467 centroidPointCartesian(x0, y0, z0);
7468}
7469
7470function centroidLineEnd() {
7471 centroidStream.point = centroidPoint;
7472}
7473
7474// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
7475// J. Applied Mechanics 42, 239 (1975).
7476function centroidRingStart() {
7477 centroidStream.point = centroidRingPointFirst;
7478}
7479
7480function centroidRingEnd() {
7481 centroidRingPoint(lambda00, phi00);
7482 centroidStream.point = centroidPoint;
7483}
7484
7485function centroidRingPointFirst(lambda, phi) {
7486 lambda00 = lambda, phi00 = phi;
7487 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
7488 centroidStream.point = centroidRingPoint;
7489 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
7490 x0 = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda);
7491 y0 = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda);
7492 z0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi);
7493 centroidPointCartesian(x0, y0, z0);
7494}
7495
7496function centroidRingPoint(lambda, phi) {
7497 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
7498 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi),
7499 x = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda),
7500 y = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda),
7501 z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi),
7502 cx = y0 * z - z0 * y,
7503 cy = z0 * x - x0 * z,
7504 cz = x0 * y - y0 * x,
7505 m = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(cx * cx + cy * cy + cz * cz),
7506 w = Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(m), // line weight = angle
7507 v = m && -w / m; // area weight multiplier
7508 X2 += v * cx;
7509 Y2 += v * cy;
7510 Z2 += v * cz;
7511 W1 += w;
7512 X1 += w * (x0 + (x0 = x));
7513 Y1 += w * (y0 + (y0 = y));
7514 Z1 += w * (z0 + (z0 = z));
7515 centroidPointCartesian(x0, y0, z0);
7516}
7517
7518/* harmony default export */ __webpack_exports__["default"] = (function(object) {
7519 W0 = W1 =
7520 X0 = Y0 = Z0 =
7521 X1 = Y1 = Z1 =
7522 X2 = Y2 = Z2 = 0;
7523 Object(_stream__WEBPACK_IMPORTED_MODULE_2__["default"])(object, centroidStream);
7524
7525 var x = X2,
7526 y = Y2,
7527 z = Z2,
7528 m = x * x + y * y + z * z;
7529
7530 // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
7531 if (m < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon2"]) {
7532 x = X1, y = Y1, z = Z1;
7533 // If the feature has zero length, fall back to arithmetic mean of point vectors.
7534 if (W1 < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) x = X0, y = Y0, z = Z0;
7535 m = x * x + y * y + z * z;
7536 // If the feature still has an undefined ccentroid, then return.
7537 if (m < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon2"]) return [NaN, NaN];
7538 }
7539
7540 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(y, x) * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"], Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(z / Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(m)) * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"]];
7541});
7542
7543
7544/***/ }),
7545
7546/***/ "./node_modules/d3-geo/src/circle.js":
7547/*!*******************************************!*\
7548 !*** ./node_modules/d3-geo/src/circle.js ***!
7549 \*******************************************/
7550/*! exports provided: circleStream, default */
7551/***/ (function(module, __webpack_exports__, __webpack_require__) {
7552
7553"use strict";
7554__webpack_require__.r(__webpack_exports__);
7555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleStream", function() { return circleStream; });
7556/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cartesian */ "./node_modules/d3-geo/src/cartesian.js");
7557/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-geo/src/constant.js");
7558/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
7559/* harmony import */ var _rotation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rotation */ "./node_modules/d3-geo/src/rotation.js");
7560
7561
7562
7563
7564
7565// Generates a circle centered at [0°, 0°], with a given radius and precision.
7566function circleStream(stream, radius, delta, direction, t0, t1) {
7567 if (!delta) return;
7568 var cosRadius = Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(radius),
7569 sinRadius = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(radius),
7570 step = direction * delta;
7571 if (t0 == null) {
7572 t0 = radius + direction * _math__WEBPACK_IMPORTED_MODULE_2__["tau"];
7573 t1 = radius - step / 2;
7574 } else {
7575 t0 = circleRadius(cosRadius, t0);
7576 t1 = circleRadius(cosRadius, t1);
7577 if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * _math__WEBPACK_IMPORTED_MODULE_2__["tau"];
7578 }
7579 for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
7580 point = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["spherical"])([cosRadius, -sinRadius * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(t), -sinRadius * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(t)]);
7581 stream.point(point[0], point[1]);
7582 }
7583}
7584
7585// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
7586function circleRadius(cosRadius, point) {
7587 point = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(point), point[0] -= cosRadius;
7588 Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianNormalizeInPlace"])(point);
7589 var radius = Object(_math__WEBPACK_IMPORTED_MODULE_2__["acos"])(-point[1]);
7590 return ((-point[2] < 0 ? -radius : radius) + _math__WEBPACK_IMPORTED_MODULE_2__["tau"] - _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) % _math__WEBPACK_IMPORTED_MODULE_2__["tau"];
7591}
7592
7593/* harmony default export */ __webpack_exports__["default"] = (function() {
7594 var center = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])([0, 0]),
7595 radius = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(90),
7596 precision = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(6),
7597 ring,
7598 rotate,
7599 stream = {point: point};
7600
7601 function point(x, y) {
7602 ring.push(x = rotate(x, y));
7603 x[0] *= _math__WEBPACK_IMPORTED_MODULE_2__["degrees"], x[1] *= _math__WEBPACK_IMPORTED_MODULE_2__["degrees"];
7604 }
7605
7606 function circle() {
7607 var c = center.apply(this, arguments),
7608 r = radius.apply(this, arguments) * _math__WEBPACK_IMPORTED_MODULE_2__["radians"],
7609 p = precision.apply(this, arguments) * _math__WEBPACK_IMPORTED_MODULE_2__["radians"];
7610 ring = [];
7611 rotate = Object(_rotation__WEBPACK_IMPORTED_MODULE_3__["rotateRadians"])(-c[0] * _math__WEBPACK_IMPORTED_MODULE_2__["radians"], -c[1] * _math__WEBPACK_IMPORTED_MODULE_2__["radians"], 0).invert;
7612 circleStream(stream, r, p, 1);
7613 c = {type: "Polygon", coordinates: [ring]};
7614 ring = rotate = null;
7615 return c;
7616 }
7617
7618 circle.center = function(_) {
7619 return arguments.length ? (center = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])([+_[0], +_[1]]), circle) : center;
7620 };
7621
7622 circle.radius = function(_) {
7623 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), circle) : radius;
7624 };
7625
7626 circle.precision = function(_) {
7627 return arguments.length ? (precision = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), circle) : precision;
7628 };
7629
7630 return circle;
7631});
7632
7633
7634/***/ }),
7635
7636/***/ "./node_modules/d3-geo/src/clip/antimeridian.js":
7637/*!******************************************************!*\
7638 !*** ./node_modules/d3-geo/src/clip/antimeridian.js ***!
7639 \******************************************************/
7640/*! exports provided: default */
7641/***/ (function(module, __webpack_exports__, __webpack_require__) {
7642
7643"use strict";
7644__webpack_require__.r(__webpack_exports__);
7645/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/clip/index.js");
7646/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
7647
7648
7649
7650/* harmony default export */ __webpack_exports__["default"] = (Object(_index__WEBPACK_IMPORTED_MODULE_0__["default"])(
7651 function() { return true; },
7652 clipAntimeridianLine,
7653 clipAntimeridianInterpolate,
7654 [-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], -_math__WEBPACK_IMPORTED_MODULE_1__["halfPi"]]
7655));
7656
7657// Takes a line and cuts into visible segments. Return values: 0 - there were
7658// intersections or the line was empty; 1 - no intersections; 2 - there were
7659// intersections, and the first and last segments should be rejoined.
7660function clipAntimeridianLine(stream) {
7661 var lambda0 = NaN,
7662 phi0 = NaN,
7663 sign0 = NaN,
7664 clean; // no intersections
7665
7666 return {
7667 lineStart: function() {
7668 stream.lineStart();
7669 clean = 1;
7670 },
7671 point: function(lambda1, phi1) {
7672 var sign1 = lambda1 > 0 ? _math__WEBPACK_IMPORTED_MODULE_1__["pi"] : -_math__WEBPACK_IMPORTED_MODULE_1__["pi"],
7673 delta = Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda1 - lambda0);
7674 if (Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(delta - _math__WEBPACK_IMPORTED_MODULE_1__["pi"]) < _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) { // line crosses a pole
7675 stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? _math__WEBPACK_IMPORTED_MODULE_1__["halfPi"] : -_math__WEBPACK_IMPORTED_MODULE_1__["halfPi"]);
7676 stream.point(sign0, phi0);
7677 stream.lineEnd();
7678 stream.lineStart();
7679 stream.point(sign1, phi0);
7680 stream.point(lambda1, phi0);
7681 clean = 0;
7682 } else if (sign0 !== sign1 && delta >= _math__WEBPACK_IMPORTED_MODULE_1__["pi"]) { // line crosses antimeridian
7683 if (Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda0 - sign0) < _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) lambda0 -= sign0 * _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]; // handle degeneracies
7684 if (Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda1 - sign1) < _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) lambda1 -= sign1 * _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"];
7685 phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
7686 stream.point(sign0, phi0);
7687 stream.lineEnd();
7688 stream.lineStart();
7689 stream.point(sign1, phi0);
7690 clean = 0;
7691 }
7692 stream.point(lambda0 = lambda1, phi0 = phi1);
7693 sign0 = sign1;
7694 },
7695 lineEnd: function() {
7696 stream.lineEnd();
7697 lambda0 = phi0 = NaN;
7698 },
7699 clean: function() {
7700 return 2 - clean; // if intersections, rejoin first and last segments
7701 }
7702 };
7703}
7704
7705function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
7706 var cosPhi0,
7707 cosPhi1,
7708 sinLambda0Lambda1 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda0 - lambda1);
7709 return Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(sinLambda0Lambda1) > _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]
7710 ? Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan"])((Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi0) * (cosPhi1 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi1)) * Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda1)
7711 - Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi1) * (cosPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi0)) * Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda0))
7712 / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
7713 : (phi0 + phi1) / 2;
7714}
7715
7716function clipAntimeridianInterpolate(from, to, direction, stream) {
7717 var phi;
7718 if (from == null) {
7719 phi = direction * _math__WEBPACK_IMPORTED_MODULE_1__["halfPi"];
7720 stream.point(-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7721 stream.point(0, phi);
7722 stream.point(_math__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7723 stream.point(_math__WEBPACK_IMPORTED_MODULE_1__["pi"], 0);
7724 stream.point(_math__WEBPACK_IMPORTED_MODULE_1__["pi"], -phi);
7725 stream.point(0, -phi);
7726 stream.point(-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], -phi);
7727 stream.point(-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], 0);
7728 stream.point(-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7729 } else if (Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(from[0] - to[0]) > _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) {
7730 var lambda = from[0] < to[0] ? _math__WEBPACK_IMPORTED_MODULE_1__["pi"] : -_math__WEBPACK_IMPORTED_MODULE_1__["pi"];
7731 phi = direction * lambda / 2;
7732 stream.point(-lambda, phi);
7733 stream.point(0, phi);
7734 stream.point(lambda, phi);
7735 } else {
7736 stream.point(to[0], to[1]);
7737 }
7738}
7739
7740
7741/***/ }),
7742
7743/***/ "./node_modules/d3-geo/src/clip/buffer.js":
7744/*!************************************************!*\
7745 !*** ./node_modules/d3-geo/src/clip/buffer.js ***!
7746 \************************************************/
7747/*! exports provided: default */
7748/***/ (function(module, __webpack_exports__, __webpack_require__) {
7749
7750"use strict";
7751__webpack_require__.r(__webpack_exports__);
7752/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
7753
7754
7755/* harmony default export */ __webpack_exports__["default"] = (function() {
7756 var lines = [],
7757 line;
7758 return {
7759 point: function(x, y) {
7760 line.push([x, y]);
7761 },
7762 lineStart: function() {
7763 lines.push(line = []);
7764 },
7765 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
7766 rejoin: function() {
7767 if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
7768 },
7769 result: function() {
7770 var result = lines;
7771 lines = [];
7772 line = null;
7773 return result;
7774 }
7775 };
7776});
7777
7778
7779/***/ }),
7780
7781/***/ "./node_modules/d3-geo/src/clip/circle.js":
7782/*!************************************************!*\
7783 !*** ./node_modules/d3-geo/src/clip/circle.js ***!
7784 \************************************************/
7785/*! exports provided: default */
7786/***/ (function(module, __webpack_exports__, __webpack_require__) {
7787
7788"use strict";
7789__webpack_require__.r(__webpack_exports__);
7790/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cartesian */ "./node_modules/d3-geo/src/cartesian.js");
7791/* harmony import */ var _circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../circle */ "./node_modules/d3-geo/src/circle.js");
7792/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
7793/* harmony import */ var _pointEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../pointEqual */ "./node_modules/d3-geo/src/pointEqual.js");
7794/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/clip/index.js");
7795
7796
7797
7798
7799
7800
7801/* harmony default export */ __webpack_exports__["default"] = (function(radius) {
7802 var cr = Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(radius),
7803 delta = 6 * _math__WEBPACK_IMPORTED_MODULE_2__["radians"],
7804 smallRadius = cr > 0,
7805 notHemisphere = Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(cr) > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]; // TODO optimise for this common case
7806
7807 function interpolate(from, to, direction, stream) {
7808 Object(_circle__WEBPACK_IMPORTED_MODULE_1__["circleStream"])(stream, radius, delta, direction, from, to);
7809 }
7810
7811 function visible(lambda, phi) {
7812 return Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(lambda) * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi) > cr;
7813 }
7814
7815 // Takes a line and cuts into visible segments. Return values used for polygon
7816 // clipping: 0 - there were intersections or the line was empty; 1 - no
7817 // intersections 2 - there were intersections, and the first and last segments
7818 // should be rejoined.
7819 function clipLine(stream) {
7820 var point0, // previous point
7821 c0, // code for previous point
7822 v0, // visibility of previous point
7823 v00, // visibility of first point
7824 clean; // no intersections
7825 return {
7826 lineStart: function() {
7827 v00 = v0 = false;
7828 clean = 1;
7829 },
7830 point: function(lambda, phi) {
7831 var point1 = [lambda, phi],
7832 point2,
7833 v = visible(lambda, phi),
7834 c = smallRadius
7835 ? v ? 0 : code(lambda, phi)
7836 : v ? code(lambda + (lambda < 0 ? _math__WEBPACK_IMPORTED_MODULE_2__["pi"] : -_math__WEBPACK_IMPORTED_MODULE_2__["pi"]), phi) : 0;
7837 if (!point0 && (v00 = v0 = v)) stream.lineStart();
7838 // Handle degeneracies.
7839 // TODO ignore if not clipping polygons.
7840 if (v !== v0) {
7841 point2 = intersect(point0, point1);
7842 if (!point2 || Object(_pointEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(point0, point2) || Object(_pointEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(point1, point2)) {
7843 point1[0] += _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7844 point1[1] += _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7845 v = visible(point1[0], point1[1]);
7846 }
7847 }
7848 if (v !== v0) {
7849 clean = 0;
7850 if (v) {
7851 // outside going in
7852 stream.lineStart();
7853 point2 = intersect(point1, point0);
7854 stream.point(point2[0], point2[1]);
7855 } else {
7856 // inside going out
7857 point2 = intersect(point0, point1);
7858 stream.point(point2[0], point2[1]);
7859 stream.lineEnd();
7860 }
7861 point0 = point2;
7862 } else if (notHemisphere && point0 && smallRadius ^ v) {
7863 var t;
7864 // If the codes for two points are different, or are both zero,
7865 // and there this segment intersects with the small circle.
7866 if (!(c & c0) && (t = intersect(point1, point0, true))) {
7867 clean = 0;
7868 if (smallRadius) {
7869 stream.lineStart();
7870 stream.point(t[0][0], t[0][1]);
7871 stream.point(t[1][0], t[1][1]);
7872 stream.lineEnd();
7873 } else {
7874 stream.point(t[1][0], t[1][1]);
7875 stream.lineEnd();
7876 stream.lineStart();
7877 stream.point(t[0][0], t[0][1]);
7878 }
7879 }
7880 }
7881 if (v && (!point0 || !Object(_pointEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(point0, point1))) {
7882 stream.point(point1[0], point1[1]);
7883 }
7884 point0 = point1, v0 = v, c0 = c;
7885 },
7886 lineEnd: function() {
7887 if (v0) stream.lineEnd();
7888 point0 = null;
7889 },
7890 // Rejoin first and last segments if there were intersections and the first
7891 // and last points were visible.
7892 clean: function() {
7893 return clean | ((v00 && v0) << 1);
7894 }
7895 };
7896 }
7897
7898 // Intersects the great circle between a and b with the clip circle.
7899 function intersect(a, b, two) {
7900 var pa = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(a),
7901 pb = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(b);
7902
7903 // We have two planes, n1.p = d1 and n2.p = d2.
7904 // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
7905 var n1 = [1, 0, 0], // normal
7906 n2 = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianCross"])(pa, pb),
7907 n2n2 = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(n2, n2),
7908 n1n2 = n2[0], // cartesianDot(n1, n2),
7909 determinant = n2n2 - n1n2 * n1n2;
7910
7911 // Two polar points.
7912 if (!determinant) return !two && a;
7913
7914 var c1 = cr * n2n2 / determinant,
7915 c2 = -cr * n1n2 / determinant,
7916 n1xn2 = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianCross"])(n1, n2),
7917 A = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(n1, c1),
7918 B = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(n2, c2);
7919 Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(A, B);
7920
7921 // Solve |p(t)|^2 = 1.
7922 var u = n1xn2,
7923 w = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(A, u),
7924 uu = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(u, u),
7925 t2 = w * w - uu * (Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(A, A) - 1);
7926
7927 if (t2 < 0) return;
7928
7929 var t = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(t2),
7930 q = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(u, (-w - t) / uu);
7931 Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(q, A);
7932 q = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["spherical"])(q);
7933
7934 if (!two) return q;
7935
7936 // Two intersection points.
7937 var lambda0 = a[0],
7938 lambda1 = b[0],
7939 phi0 = a[1],
7940 phi1 = b[1],
7941 z;
7942
7943 if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;
7944
7945 var delta = lambda1 - lambda0,
7946 polar = Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(delta - _math__WEBPACK_IMPORTED_MODULE_2__["pi"]) < _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"],
7947 meridian = polar || delta < _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7948
7949 if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;
7950
7951 // Check that the first point is between a and b.
7952 if (meridian
7953 ? polar
7954 ? phi0 + phi1 > 0 ^ q[1] < (Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(q[0] - lambda0) < _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] ? phi0 : phi1)
7955 : phi0 <= q[1] && q[1] <= phi1
7956 : delta > _math__WEBPACK_IMPORTED_MODULE_2__["pi"] ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
7957 var q1 = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(u, (-w + t) / uu);
7958 Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(q1, A);
7959 return [q, Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["spherical"])(q1)];
7960 }
7961 }
7962
7963 // Generates a 4-bit vector representing the location of a point relative to
7964 // the small circle's bounding box.
7965 function code(lambda, phi) {
7966 var r = smallRadius ? radius : _math__WEBPACK_IMPORTED_MODULE_2__["pi"] - radius,
7967 code = 0;
7968 if (lambda < -r) code |= 1; // left
7969 else if (lambda > r) code |= 2; // right
7970 if (phi < -r) code |= 4; // below
7971 else if (phi > r) code |= 8; // above
7972 return code;
7973 }
7974
7975 return Object(_index__WEBPACK_IMPORTED_MODULE_4__["default"])(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-_math__WEBPACK_IMPORTED_MODULE_2__["pi"], radius - _math__WEBPACK_IMPORTED_MODULE_2__["pi"]]);
7976});
7977
7978
7979/***/ }),
7980
7981/***/ "./node_modules/d3-geo/src/clip/extent.js":
7982/*!************************************************!*\
7983 !*** ./node_modules/d3-geo/src/clip/extent.js ***!
7984 \************************************************/
7985/*! exports provided: default */
7986/***/ (function(module, __webpack_exports__, __webpack_require__) {
7987
7988"use strict";
7989__webpack_require__.r(__webpack_exports__);
7990/* harmony import */ var _rectangle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rectangle */ "./node_modules/d3-geo/src/clip/rectangle.js");
7991
7992
7993/* harmony default export */ __webpack_exports__["default"] = (function() {
7994 var x0 = 0,
7995 y0 = 0,
7996 x1 = 960,
7997 y1 = 500,
7998 cache,
7999 cacheStream,
8000 clip;
8001
8002 return clip = {
8003 stream: function(stream) {
8004 return cache && cacheStream === stream ? cache : cache = Object(_rectangle__WEBPACK_IMPORTED_MODULE_0__["default"])(x0, y0, x1, y1)(cacheStream = stream);
8005 },
8006 extent: function(_) {
8007 return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
8008 }
8009 };
8010});
8011
8012
8013/***/ }),
8014
8015/***/ "./node_modules/d3-geo/src/clip/index.js":
8016/*!***********************************************!*\
8017 !*** ./node_modules/d3-geo/src/clip/index.js ***!
8018 \***********************************************/
8019/*! exports provided: default */
8020/***/ (function(module, __webpack_exports__, __webpack_require__) {
8021
8022"use strict";
8023__webpack_require__.r(__webpack_exports__);
8024/* harmony import */ var _buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./buffer */ "./node_modules/d3-geo/src/clip/buffer.js");
8025/* harmony import */ var _rejoin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rejoin */ "./node_modules/d3-geo/src/clip/rejoin.js");
8026/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
8027/* harmony import */ var _polygonContains__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../polygonContains */ "./node_modules/d3-geo/src/polygonContains.js");
8028/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
8029
8030
8031
8032
8033
8034
8035/* harmony default export */ __webpack_exports__["default"] = (function(pointVisible, clipLine, interpolate, start) {
8036 return function(sink) {
8037 var line = clipLine(sink),
8038 ringBuffer = Object(_buffer__WEBPACK_IMPORTED_MODULE_0__["default"])(),
8039 ringSink = clipLine(ringBuffer),
8040 polygonStarted = false,
8041 polygon,
8042 segments,
8043 ring;
8044
8045 var clip = {
8046 point: point,
8047 lineStart: lineStart,
8048 lineEnd: lineEnd,
8049 polygonStart: function() {
8050 clip.point = pointRing;
8051 clip.lineStart = ringStart;
8052 clip.lineEnd = ringEnd;
8053 segments = [];
8054 polygon = [];
8055 },
8056 polygonEnd: function() {
8057 clip.point = point;
8058 clip.lineStart = lineStart;
8059 clip.lineEnd = lineEnd;
8060 segments = Object(d3_array__WEBPACK_IMPORTED_MODULE_4__["merge"])(segments);
8061 var startInside = Object(_polygonContains__WEBPACK_IMPORTED_MODULE_3__["default"])(polygon, start);
8062 if (segments.length) {
8063 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
8064 Object(_rejoin__WEBPACK_IMPORTED_MODULE_1__["default"])(segments, compareIntersection, startInside, interpolate, sink);
8065 } else if (startInside) {
8066 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
8067 sink.lineStart();
8068 interpolate(null, null, 1, sink);
8069 sink.lineEnd();
8070 }
8071 if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
8072 segments = polygon = null;
8073 },
8074 sphere: function() {
8075 sink.polygonStart();
8076 sink.lineStart();
8077 interpolate(null, null, 1, sink);
8078 sink.lineEnd();
8079 sink.polygonEnd();
8080 }
8081 };
8082
8083 function point(lambda, phi) {
8084 if (pointVisible(lambda, phi)) sink.point(lambda, phi);
8085 }
8086
8087 function pointLine(lambda, phi) {
8088 line.point(lambda, phi);
8089 }
8090
8091 function lineStart() {
8092 clip.point = pointLine;
8093 line.lineStart();
8094 }
8095
8096 function lineEnd() {
8097 clip.point = point;
8098 line.lineEnd();
8099 }
8100
8101 function pointRing(lambda, phi) {
8102 ring.push([lambda, phi]);
8103 ringSink.point(lambda, phi);
8104 }
8105
8106 function ringStart() {
8107 ringSink.lineStart();
8108 ring = [];
8109 }
8110
8111 function ringEnd() {
8112 pointRing(ring[0][0], ring[0][1]);
8113 ringSink.lineEnd();
8114
8115 var clean = ringSink.clean(),
8116 ringSegments = ringBuffer.result(),
8117 i, n = ringSegments.length, m,
8118 segment,
8119 point;
8120
8121 ring.pop();
8122 polygon.push(ring);
8123 ring = null;
8124
8125 if (!n) return;
8126
8127 // No intersections.
8128 if (clean & 1) {
8129 segment = ringSegments[0];
8130 if ((m = segment.length - 1) > 0) {
8131 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
8132 sink.lineStart();
8133 for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
8134 sink.lineEnd();
8135 }
8136 return;
8137 }
8138
8139 // Rejoin connected segments.
8140 // TODO reuse ringBuffer.rejoin()?
8141 if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
8142
8143 segments.push(ringSegments.filter(validSegment));
8144 }
8145
8146 return clip;
8147 };
8148});
8149
8150function validSegment(segment) {
8151 return segment.length > 1;
8152}
8153
8154// Intersections are sorted along the clip edge. For both antimeridian cutting
8155// and circle clipping, the same comparison is used.
8156function compareIntersection(a, b) {
8157 return ((a = a.x)[0] < 0 ? a[1] - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] : _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - a[1])
8158 - ((b = b.x)[0] < 0 ? b[1] - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] : _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - b[1]);
8159}
8160
8161
8162/***/ }),
8163
8164/***/ "./node_modules/d3-geo/src/clip/line.js":
8165/*!**********************************************!*\
8166 !*** ./node_modules/d3-geo/src/clip/line.js ***!
8167 \**********************************************/
8168/*! exports provided: default */
8169/***/ (function(module, __webpack_exports__, __webpack_require__) {
8170
8171"use strict";
8172__webpack_require__.r(__webpack_exports__);
8173/* harmony default export */ __webpack_exports__["default"] = (function(a, b, x0, y0, x1, y1) {
8174 var ax = a[0],
8175 ay = a[1],
8176 bx = b[0],
8177 by = b[1],
8178 t0 = 0,
8179 t1 = 1,
8180 dx = bx - ax,
8181 dy = by - ay,
8182 r;
8183
8184 r = x0 - ax;
8185 if (!dx && r > 0) return;
8186 r /= dx;
8187 if (dx < 0) {
8188 if (r < t0) return;
8189 if (r < t1) t1 = r;
8190 } else if (dx > 0) {
8191 if (r > t1) return;
8192 if (r > t0) t0 = r;
8193 }
8194
8195 r = x1 - ax;
8196 if (!dx && r < 0) return;
8197 r /= dx;
8198 if (dx < 0) {
8199 if (r > t1) return;
8200 if (r > t0) t0 = r;
8201 } else if (dx > 0) {
8202 if (r < t0) return;
8203 if (r < t1) t1 = r;
8204 }
8205
8206 r = y0 - ay;
8207 if (!dy && r > 0) return;
8208 r /= dy;
8209 if (dy < 0) {
8210 if (r < t0) return;
8211 if (r < t1) t1 = r;
8212 } else if (dy > 0) {
8213 if (r > t1) return;
8214 if (r > t0) t0 = r;
8215 }
8216
8217 r = y1 - ay;
8218 if (!dy && r < 0) return;
8219 r /= dy;
8220 if (dy < 0) {
8221 if (r > t1) return;
8222 if (r > t0) t0 = r;
8223 } else if (dy > 0) {
8224 if (r < t0) return;
8225 if (r < t1) t1 = r;
8226 }
8227
8228 if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
8229 if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
8230 return true;
8231});
8232
8233
8234/***/ }),
8235
8236/***/ "./node_modules/d3-geo/src/clip/rectangle.js":
8237/*!***************************************************!*\
8238 !*** ./node_modules/d3-geo/src/clip/rectangle.js ***!
8239 \***************************************************/
8240/*! exports provided: default */
8241/***/ (function(module, __webpack_exports__, __webpack_require__) {
8242
8243"use strict";
8244__webpack_require__.r(__webpack_exports__);
8245/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return clipRectangle; });
8246/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
8247/* harmony import */ var _buffer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buffer */ "./node_modules/d3-geo/src/clip/buffer.js");
8248/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line */ "./node_modules/d3-geo/src/clip/line.js");
8249/* harmony import */ var _rejoin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rejoin */ "./node_modules/d3-geo/src/clip/rejoin.js");
8250/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
8251
8252
8253
8254
8255
8256
8257var clipMax = 1e9, clipMin = -clipMax;
8258
8259// TODO Use d3-polygon’s polygonContains here for the ring check?
8260// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?
8261
8262function clipRectangle(x0, y0, x1, y1) {
8263
8264 function visible(x, y) {
8265 return x0 <= x && x <= x1 && y0 <= y && y <= y1;
8266 }
8267
8268 function interpolate(from, to, direction, stream) {
8269 var a = 0, a1 = 0;
8270 if (from == null
8271 || (a = corner(from, direction)) !== (a1 = corner(to, direction))
8272 || comparePoint(from, to) < 0 ^ direction > 0) {
8273 do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
8274 while ((a = (a + direction + 4) % 4) !== a1);
8275 } else {
8276 stream.point(to[0], to[1]);
8277 }
8278 }
8279
8280 function corner(p, direction) {
8281 return Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[0] - x0) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 0 : 3
8282 : Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[0] - x1) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 2 : 1
8283 : Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[1] - y0) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 1 : 0
8284 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
8285 }
8286
8287 function compareIntersection(a, b) {
8288 return comparePoint(a.x, b.x);
8289 }
8290
8291 function comparePoint(a, b) {
8292 var ca = corner(a, 1),
8293 cb = corner(b, 1);
8294 return ca !== cb ? ca - cb
8295 : ca === 0 ? b[1] - a[1]
8296 : ca === 1 ? a[0] - b[0]
8297 : ca === 2 ? a[1] - b[1]
8298 : b[0] - a[0];
8299 }
8300
8301 return function(stream) {
8302 var activeStream = stream,
8303 bufferStream = Object(_buffer__WEBPACK_IMPORTED_MODULE_1__["default"])(),
8304 segments,
8305 polygon,
8306 ring,
8307 x__, y__, v__, // first point
8308 x_, y_, v_, // previous point
8309 first,
8310 clean;
8311
8312 var clipStream = {
8313 point: point,
8314 lineStart: lineStart,
8315 lineEnd: lineEnd,
8316 polygonStart: polygonStart,
8317 polygonEnd: polygonEnd
8318 };
8319
8320 function point(x, y) {
8321 if (visible(x, y)) activeStream.point(x, y);
8322 }
8323
8324 function polygonInside() {
8325 var winding = 0;
8326
8327 for (var i = 0, n = polygon.length; i < n; ++i) {
8328 for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
8329 a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
8330 if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
8331 else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
8332 }
8333 }
8334
8335 return winding;
8336 }
8337
8338 // Buffer geometry within a polygon and then clip it en masse.
8339 function polygonStart() {
8340 activeStream = bufferStream, segments = [], polygon = [], clean = true;
8341 }
8342
8343 function polygonEnd() {
8344 var startInside = polygonInside(),
8345 cleanInside = clean && startInside,
8346 visible = (segments = Object(d3_array__WEBPACK_IMPORTED_MODULE_4__["merge"])(segments)).length;
8347 if (cleanInside || visible) {
8348 stream.polygonStart();
8349 if (cleanInside) {
8350 stream.lineStart();
8351 interpolate(null, null, 1, stream);
8352 stream.lineEnd();
8353 }
8354 if (visible) {
8355 Object(_rejoin__WEBPACK_IMPORTED_MODULE_3__["default"])(segments, compareIntersection, startInside, interpolate, stream);
8356 }
8357 stream.polygonEnd();
8358 }
8359 activeStream = stream, segments = polygon = ring = null;
8360 }
8361
8362 function lineStart() {
8363 clipStream.point = linePoint;
8364 if (polygon) polygon.push(ring = []);
8365 first = true;
8366 v_ = false;
8367 x_ = y_ = NaN;
8368 }
8369
8370 // TODO rather than special-case polygons, simply handle them separately.
8371 // Ideally, coincident intersection points should be jittered to avoid
8372 // clipping issues.
8373 function lineEnd() {
8374 if (segments) {
8375 linePoint(x__, y__);
8376 if (v__ && v_) bufferStream.rejoin();
8377 segments.push(bufferStream.result());
8378 }
8379 clipStream.point = point;
8380 if (v_) activeStream.lineEnd();
8381 }
8382
8383 function linePoint(x, y) {
8384 var v = visible(x, y);
8385 if (polygon) ring.push([x, y]);
8386 if (first) {
8387 x__ = x, y__ = y, v__ = v;
8388 first = false;
8389 if (v) {
8390 activeStream.lineStart();
8391 activeStream.point(x, y);
8392 }
8393 } else {
8394 if (v && v_) activeStream.point(x, y);
8395 else {
8396 var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
8397 b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
8398 if (Object(_line__WEBPACK_IMPORTED_MODULE_2__["default"])(a, b, x0, y0, x1, y1)) {
8399 if (!v_) {
8400 activeStream.lineStart();
8401 activeStream.point(a[0], a[1]);
8402 }
8403 activeStream.point(b[0], b[1]);
8404 if (!v) activeStream.lineEnd();
8405 clean = false;
8406 } else if (v) {
8407 activeStream.lineStart();
8408 activeStream.point(x, y);
8409 clean = false;
8410 }
8411 }
8412 }
8413 x_ = x, y_ = y, v_ = v;
8414 }
8415
8416 return clipStream;
8417 };
8418}
8419
8420
8421/***/ }),
8422
8423/***/ "./node_modules/d3-geo/src/clip/rejoin.js":
8424/*!************************************************!*\
8425 !*** ./node_modules/d3-geo/src/clip/rejoin.js ***!
8426 \************************************************/
8427/*! exports provided: default */
8428/***/ (function(module, __webpack_exports__, __webpack_require__) {
8429
8430"use strict";
8431__webpack_require__.r(__webpack_exports__);
8432/* harmony import */ var _pointEqual__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../pointEqual */ "./node_modules/d3-geo/src/pointEqual.js");
8433
8434
8435function Intersection(point, points, other, entry) {
8436 this.x = point;
8437 this.z = points;
8438 this.o = other; // another intersection
8439 this.e = entry; // is an entry?
8440 this.v = false; // visited
8441 this.n = this.p = null; // next & previous
8442}
8443
8444// A generalized polygon clipping algorithm: given a polygon that has been cut
8445// into its visible line segments, and rejoins the segments by interpolating
8446// along the clip edge.
8447/* harmony default export */ __webpack_exports__["default"] = (function(segments, compareIntersection, startInside, interpolate, stream) {
8448 var subject = [],
8449 clip = [],
8450 i,
8451 n;
8452
8453 segments.forEach(function(segment) {
8454 if ((n = segment.length - 1) <= 0) return;
8455 var n, p0 = segment[0], p1 = segment[n], x;
8456
8457 // If the first and last points of a segment are coincident, then treat as a
8458 // closed ring. TODO if all rings are closed, then the winding order of the
8459 // exterior ring should be checked.
8460 if (Object(_pointEqual__WEBPACK_IMPORTED_MODULE_0__["default"])(p0, p1)) {
8461 stream.lineStart();
8462 for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
8463 stream.lineEnd();
8464 return;
8465 }
8466
8467 subject.push(x = new Intersection(p0, segment, null, true));
8468 clip.push(x.o = new Intersection(p0, null, x, false));
8469 subject.push(x = new Intersection(p1, segment, null, false));
8470 clip.push(x.o = new Intersection(p1, null, x, true));
8471 });
8472
8473 if (!subject.length) return;
8474
8475 clip.sort(compareIntersection);
8476 link(subject);
8477 link(clip);
8478
8479 for (i = 0, n = clip.length; i < n; ++i) {
8480 clip[i].e = startInside = !startInside;
8481 }
8482
8483 var start = subject[0],
8484 points,
8485 point;
8486
8487 while (1) {
8488 // Find first unvisited intersection.
8489 var current = start,
8490 isSubject = true;
8491 while (current.v) if ((current = current.n) === start) return;
8492 points = current.z;
8493 stream.lineStart();
8494 do {
8495 current.v = current.o.v = true;
8496 if (current.e) {
8497 if (isSubject) {
8498 for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
8499 } else {
8500 interpolate(current.x, current.n.x, 1, stream);
8501 }
8502 current = current.n;
8503 } else {
8504 if (isSubject) {
8505 points = current.p.z;
8506 for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
8507 } else {
8508 interpolate(current.x, current.p.x, -1, stream);
8509 }
8510 current = current.p;
8511 }
8512 current = current.o;
8513 points = current.z;
8514 isSubject = !isSubject;
8515 } while (!current.v);
8516 stream.lineEnd();
8517 }
8518});
8519
8520function link(array) {
8521 if (!(n = array.length)) return;
8522 var n,
8523 i = 0,
8524 a = array[0],
8525 b;
8526 while (++i < n) {
8527 a.n = b = array[i];
8528 b.p = a;
8529 a = b;
8530 }
8531 a.n = b = array[0];
8532 b.p = a;
8533}
8534
8535
8536/***/ }),
8537
8538/***/ "./node_modules/d3-geo/src/compose.js":
8539/*!********************************************!*\
8540 !*** ./node_modules/d3-geo/src/compose.js ***!
8541 \********************************************/
8542/*! exports provided: default */
8543/***/ (function(module, __webpack_exports__, __webpack_require__) {
8544
8545"use strict";
8546__webpack_require__.r(__webpack_exports__);
8547/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
8548
8549 function compose(x, y) {
8550 return x = a(x, y), b(x[0], x[1]);
8551 }
8552
8553 if (a.invert && b.invert) compose.invert = function(x, y) {
8554 return x = b.invert(x, y), x && a.invert(x[0], x[1]);
8555 };
8556
8557 return compose;
8558});
8559
8560
8561/***/ }),
8562
8563/***/ "./node_modules/d3-geo/src/constant.js":
8564/*!*********************************************!*\
8565 !*** ./node_modules/d3-geo/src/constant.js ***!
8566 \*********************************************/
8567/*! exports provided: default */
8568/***/ (function(module, __webpack_exports__, __webpack_require__) {
8569
8570"use strict";
8571__webpack_require__.r(__webpack_exports__);
8572/* harmony default export */ __webpack_exports__["default"] = (function(x) {
8573 return function() {
8574 return x;
8575 };
8576});
8577
8578
8579/***/ }),
8580
8581/***/ "./node_modules/d3-geo/src/contains.js":
8582/*!*********************************************!*\
8583 !*** ./node_modules/d3-geo/src/contains.js ***!
8584 \*********************************************/
8585/*! exports provided: default */
8586/***/ (function(module, __webpack_exports__, __webpack_require__) {
8587
8588"use strict";
8589__webpack_require__.r(__webpack_exports__);
8590/* harmony import */ var _polygonContains__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./polygonContains */ "./node_modules/d3-geo/src/polygonContains.js");
8591/* harmony import */ var _distance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./distance */ "./node_modules/d3-geo/src/distance.js");
8592/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
8593
8594
8595
8596
8597var containsObjectType = {
8598 Feature: function(object, point) {
8599 return containsGeometry(object.geometry, point);
8600 },
8601 FeatureCollection: function(object, point) {
8602 var features = object.features, i = -1, n = features.length;
8603 while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
8604 return false;
8605 }
8606};
8607
8608var containsGeometryType = {
8609 Sphere: function() {
8610 return true;
8611 },
8612 Point: function(object, point) {
8613 return containsPoint(object.coordinates, point);
8614 },
8615 MultiPoint: function(object, point) {
8616 var coordinates = object.coordinates, i = -1, n = coordinates.length;
8617 while (++i < n) if (containsPoint(coordinates[i], point)) return true;
8618 return false;
8619 },
8620 LineString: function(object, point) {
8621 return containsLine(object.coordinates, point);
8622 },
8623 MultiLineString: function(object, point) {
8624 var coordinates = object.coordinates, i = -1, n = coordinates.length;
8625 while (++i < n) if (containsLine(coordinates[i], point)) return true;
8626 return false;
8627 },
8628 Polygon: function(object, point) {
8629 return containsPolygon(object.coordinates, point);
8630 },
8631 MultiPolygon: function(object, point) {
8632 var coordinates = object.coordinates, i = -1, n = coordinates.length;
8633 while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
8634 return false;
8635 },
8636 GeometryCollection: function(object, point) {
8637 var geometries = object.geometries, i = -1, n = geometries.length;
8638 while (++i < n) if (containsGeometry(geometries[i], point)) return true;
8639 return false;
8640 }
8641};
8642
8643function containsGeometry(geometry, point) {
8644 return geometry && containsGeometryType.hasOwnProperty(geometry.type)
8645 ? containsGeometryType[geometry.type](geometry, point)
8646 : false;
8647}
8648
8649function containsPoint(coordinates, point) {
8650 return Object(_distance__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates, point) === 0;
8651}
8652
8653function containsLine(coordinates, point) {
8654 var ab = Object(_distance__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates[0], coordinates[1]),
8655 ao = Object(_distance__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates[0], point),
8656 ob = Object(_distance__WEBPACK_IMPORTED_MODULE_1__["default"])(point, coordinates[1]);
8657 return ao + ob <= ab + _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
8658}
8659
8660function containsPolygon(coordinates, point) {
8661 return !!Object(_polygonContains__WEBPACK_IMPORTED_MODULE_0__["default"])(coordinates.map(ringRadians), pointRadians(point));
8662}
8663
8664function ringRadians(ring) {
8665 return ring = ring.map(pointRadians), ring.pop(), ring;
8666}
8667
8668function pointRadians(point) {
8669 return [point[0] * _math__WEBPACK_IMPORTED_MODULE_2__["radians"], point[1] * _math__WEBPACK_IMPORTED_MODULE_2__["radians"]];
8670}
8671
8672/* harmony default export */ __webpack_exports__["default"] = (function(object, point) {
8673 return (object && containsObjectType.hasOwnProperty(object.type)
8674 ? containsObjectType[object.type]
8675 : containsGeometry)(object, point);
8676});
8677
8678
8679/***/ }),
8680
8681/***/ "./node_modules/d3-geo/src/distance.js":
8682/*!*********************************************!*\
8683 !*** ./node_modules/d3-geo/src/distance.js ***!
8684 \*********************************************/
8685/*! exports provided: default */
8686/***/ (function(module, __webpack_exports__, __webpack_require__) {
8687
8688"use strict";
8689__webpack_require__.r(__webpack_exports__);
8690/* harmony import */ var _length__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./length */ "./node_modules/d3-geo/src/length.js");
8691
8692
8693var coordinates = [null, null],
8694 object = {type: "LineString", coordinates: coordinates};
8695
8696/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
8697 coordinates[0] = a;
8698 coordinates[1] = b;
8699 return Object(_length__WEBPACK_IMPORTED_MODULE_0__["default"])(object);
8700});
8701
8702
8703/***/ }),
8704
8705/***/ "./node_modules/d3-geo/src/graticule.js":
8706/*!**********************************************!*\
8707 !*** ./node_modules/d3-geo/src/graticule.js ***!
8708 \**********************************************/
8709/*! exports provided: default, graticule10 */
8710/***/ (function(module, __webpack_exports__, __webpack_require__) {
8711
8712"use strict";
8713__webpack_require__.r(__webpack_exports__);
8714/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return graticule; });
8715/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "graticule10", function() { return graticule10; });
8716/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
8717/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
8718
8719
8720
8721function graticuleX(y0, y1, dy) {
8722 var y = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(y0, y1 - _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"], dy).concat(y1);
8723 return function(x) { return y.map(function(y) { return [x, y]; }); };
8724}
8725
8726function graticuleY(x0, x1, dx) {
8727 var x = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(x0, x1 - _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"], dx).concat(x1);
8728 return function(y) { return x.map(function(x) { return [x, y]; }); };
8729}
8730
8731function graticule() {
8732 var x1, x0, X1, X0,
8733 y1, y0, Y1, Y0,
8734 dx = 10, dy = dx, DX = 90, DY = 360,
8735 x, y, X, Y,
8736 precision = 2.5;
8737
8738 function graticule() {
8739 return {type: "MultiLineString", coordinates: lines()};
8740 }
8741
8742 function lines() {
8743 return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["ceil"])(X0 / DX) * DX, X1, DX).map(X)
8744 .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["ceil"])(Y0 / DY) * DY, Y1, DY).map(Y))
8745 .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["ceil"])(x0 / dx) * dx, x1, dx).filter(function(x) { return Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(x % DX) > _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]; }).map(x))
8746 .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["ceil"])(y0 / dy) * dy, y1, dy).filter(function(y) { return Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(y % DY) > _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]; }).map(y));
8747 }
8748
8749 graticule.lines = function() {
8750 return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
8751 };
8752
8753 graticule.outline = function() {
8754 return {
8755 type: "Polygon",
8756 coordinates: [
8757 X(X0).concat(
8758 Y(Y1).slice(1),
8759 X(X1).reverse().slice(1),
8760 Y(Y0).reverse().slice(1))
8761 ]
8762 };
8763 };
8764
8765 graticule.extent = function(_) {
8766 if (!arguments.length) return graticule.extentMinor();
8767 return graticule.extentMajor(_).extentMinor(_);
8768 };
8769
8770 graticule.extentMajor = function(_) {
8771 if (!arguments.length) return [[X0, Y0], [X1, Y1]];
8772 X0 = +_[0][0], X1 = +_[1][0];
8773 Y0 = +_[0][1], Y1 = +_[1][1];
8774 if (X0 > X1) _ = X0, X0 = X1, X1 = _;
8775 if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
8776 return graticule.precision(precision);
8777 };
8778
8779 graticule.extentMinor = function(_) {
8780 if (!arguments.length) return [[x0, y0], [x1, y1]];
8781 x0 = +_[0][0], x1 = +_[1][0];
8782 y0 = +_[0][1], y1 = +_[1][1];
8783 if (x0 > x1) _ = x0, x0 = x1, x1 = _;
8784 if (y0 > y1) _ = y0, y0 = y1, y1 = _;
8785 return graticule.precision(precision);
8786 };
8787
8788 graticule.step = function(_) {
8789 if (!arguments.length) return graticule.stepMinor();
8790 return graticule.stepMajor(_).stepMinor(_);
8791 };
8792
8793 graticule.stepMajor = function(_) {
8794 if (!arguments.length) return [DX, DY];
8795 DX = +_[0], DY = +_[1];
8796 return graticule;
8797 };
8798
8799 graticule.stepMinor = function(_) {
8800 if (!arguments.length) return [dx, dy];
8801 dx = +_[0], dy = +_[1];
8802 return graticule;
8803 };
8804
8805 graticule.precision = function(_) {
8806 if (!arguments.length) return precision;
8807 precision = +_;
8808 x = graticuleX(y0, y1, 90);
8809 y = graticuleY(x0, x1, precision);
8810 X = graticuleX(Y0, Y1, 90);
8811 Y = graticuleY(X0, X1, precision);
8812 return graticule;
8813 };
8814
8815 return graticule
8816 .extentMajor([[-180, -90 + _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]], [180, 90 - _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]]])
8817 .extentMinor([[-180, -80 - _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]], [180, 80 + _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]]]);
8818}
8819
8820function graticule10() {
8821 return graticule()();
8822}
8823
8824
8825/***/ }),
8826
8827/***/ "./node_modules/d3-geo/src/identity.js":
8828/*!*********************************************!*\
8829 !*** ./node_modules/d3-geo/src/identity.js ***!
8830 \*********************************************/
8831/*! exports provided: default */
8832/***/ (function(module, __webpack_exports__, __webpack_require__) {
8833
8834"use strict";
8835__webpack_require__.r(__webpack_exports__);
8836/* harmony default export */ __webpack_exports__["default"] = (function(x) {
8837 return x;
8838});
8839
8840
8841/***/ }),
8842
8843/***/ "./node_modules/d3-geo/src/index.js":
8844/*!******************************************!*\
8845 !*** ./node_modules/d3-geo/src/index.js ***!
8846 \******************************************/
8847/*! exports provided: geoArea, geoBounds, geoCentroid, geoCircle, geoClipAntimeridian, geoClipCircle, geoClipExtent, geoClipRectangle, geoContains, geoDistance, geoGraticule, geoGraticule10, geoInterpolate, geoLength, geoPath, geoAlbers, geoAlbersUsa, geoAzimuthalEqualArea, geoAzimuthalEqualAreaRaw, geoAzimuthalEquidistant, geoAzimuthalEquidistantRaw, geoConicConformal, geoConicConformalRaw, geoConicEqualArea, geoConicEqualAreaRaw, geoConicEquidistant, geoConicEquidistantRaw, geoEqualEarth, geoEqualEarthRaw, geoEquirectangular, geoEquirectangularRaw, geoGnomonic, geoGnomonicRaw, geoIdentity, geoProjection, geoProjectionMutator, geoMercator, geoMercatorRaw, geoNaturalEarth1, geoNaturalEarth1Raw, geoOrthographic, geoOrthographicRaw, geoStereographic, geoStereographicRaw, geoTransverseMercator, geoTransverseMercatorRaw, geoRotation, geoStream, geoTransform */
8848/***/ (function(module, __webpack_exports__, __webpack_require__) {
8849
8850"use strict";
8851__webpack_require__.r(__webpack_exports__);
8852/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./area */ "./node_modules/d3-geo/src/area.js");
8853/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoArea", function() { return _area__WEBPACK_IMPORTED_MODULE_0__["default"]; });
8854
8855/* harmony import */ var _bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bounds */ "./node_modules/d3-geo/src/bounds.js");
8856/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoBounds", function() { return _bounds__WEBPACK_IMPORTED_MODULE_1__["default"]; });
8857
8858/* harmony import */ var _centroid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./centroid */ "./node_modules/d3-geo/src/centroid.js");
8859/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCentroid", function() { return _centroid__WEBPACK_IMPORTED_MODULE_2__["default"]; });
8860
8861/* harmony import */ var _circle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./circle */ "./node_modules/d3-geo/src/circle.js");
8862/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCircle", function() { return _circle__WEBPACK_IMPORTED_MODULE_3__["default"]; });
8863
8864/* harmony import */ var _clip_antimeridian__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./clip/antimeridian */ "./node_modules/d3-geo/src/clip/antimeridian.js");
8865/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipAntimeridian", function() { return _clip_antimeridian__WEBPACK_IMPORTED_MODULE_4__["default"]; });
8866
8867/* harmony import */ var _clip_circle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./clip/circle */ "./node_modules/d3-geo/src/clip/circle.js");
8868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipCircle", function() { return _clip_circle__WEBPACK_IMPORTED_MODULE_5__["default"]; });
8869
8870/* harmony import */ var _clip_extent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./clip/extent */ "./node_modules/d3-geo/src/clip/extent.js");
8871/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipExtent", function() { return _clip_extent__WEBPACK_IMPORTED_MODULE_6__["default"]; });
8872
8873/* harmony import */ var _clip_rectangle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./clip/rectangle */ "./node_modules/d3-geo/src/clip/rectangle.js");
8874/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipRectangle", function() { return _clip_rectangle__WEBPACK_IMPORTED_MODULE_7__["default"]; });
8875
8876/* harmony import */ var _contains__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./contains */ "./node_modules/d3-geo/src/contains.js");
8877/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoContains", function() { return _contains__WEBPACK_IMPORTED_MODULE_8__["default"]; });
8878
8879/* harmony import */ var _distance__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./distance */ "./node_modules/d3-geo/src/distance.js");
8880/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoDistance", function() { return _distance__WEBPACK_IMPORTED_MODULE_9__["default"]; });
8881
8882/* harmony import */ var _graticule__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./graticule */ "./node_modules/d3-geo/src/graticule.js");
8883/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule", function() { return _graticule__WEBPACK_IMPORTED_MODULE_10__["default"]; });
8884
8885/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule10", function() { return _graticule__WEBPACK_IMPORTED_MODULE_10__["graticule10"]; });
8886
8887/* harmony import */ var _interpolate__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./interpolate */ "./node_modules/d3-geo/src/interpolate.js");
8888/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoInterpolate", function() { return _interpolate__WEBPACK_IMPORTED_MODULE_11__["default"]; });
8889
8890/* harmony import */ var _length__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./length */ "./node_modules/d3-geo/src/length.js");
8891/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoLength", function() { return _length__WEBPACK_IMPORTED_MODULE_12__["default"]; });
8892
8893/* harmony import */ var _path_index__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./path/index */ "./node_modules/d3-geo/src/path/index.js");
8894/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoPath", function() { return _path_index__WEBPACK_IMPORTED_MODULE_13__["default"]; });
8895
8896/* harmony import */ var _projection_albers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./projection/albers */ "./node_modules/d3-geo/src/projection/albers.js");
8897/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbers", function() { return _projection_albers__WEBPACK_IMPORTED_MODULE_14__["default"]; });
8898
8899/* harmony import */ var _projection_albersUsa__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./projection/albersUsa */ "./node_modules/d3-geo/src/projection/albersUsa.js");
8900/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbersUsa", function() { return _projection_albersUsa__WEBPACK_IMPORTED_MODULE_15__["default"]; });
8901
8902/* harmony import */ var _projection_azimuthalEqualArea__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./projection/azimuthalEqualArea */ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js");
8903/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualArea", function() { return _projection_azimuthalEqualArea__WEBPACK_IMPORTED_MODULE_16__["default"]; });
8904
8905/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualAreaRaw", function() { return _projection_azimuthalEqualArea__WEBPACK_IMPORTED_MODULE_16__["azimuthalEqualAreaRaw"]; });
8906
8907/* harmony import */ var _projection_azimuthalEquidistant__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./projection/azimuthalEquidistant */ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js");
8908/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistant", function() { return _projection_azimuthalEquidistant__WEBPACK_IMPORTED_MODULE_17__["default"]; });
8909
8910/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistantRaw", function() { return _projection_azimuthalEquidistant__WEBPACK_IMPORTED_MODULE_17__["azimuthalEquidistantRaw"]; });
8911
8912/* harmony import */ var _projection_conicConformal__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./projection/conicConformal */ "./node_modules/d3-geo/src/projection/conicConformal.js");
8913/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformal", function() { return _projection_conicConformal__WEBPACK_IMPORTED_MODULE_18__["default"]; });
8914
8915/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformalRaw", function() { return _projection_conicConformal__WEBPACK_IMPORTED_MODULE_18__["conicConformalRaw"]; });
8916
8917/* harmony import */ var _projection_conicEqualArea__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./projection/conicEqualArea */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
8918/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualArea", function() { return _projection_conicEqualArea__WEBPACK_IMPORTED_MODULE_19__["default"]; });
8919
8920/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualAreaRaw", function() { return _projection_conicEqualArea__WEBPACK_IMPORTED_MODULE_19__["conicEqualAreaRaw"]; });
8921
8922/* harmony import */ var _projection_conicEquidistant__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./projection/conicEquidistant */ "./node_modules/d3-geo/src/projection/conicEquidistant.js");
8923/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistant", function() { return _projection_conicEquidistant__WEBPACK_IMPORTED_MODULE_20__["default"]; });
8924
8925/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistantRaw", function() { return _projection_conicEquidistant__WEBPACK_IMPORTED_MODULE_20__["conicEquidistantRaw"]; });
8926
8927/* harmony import */ var _projection_equalEarth__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./projection/equalEarth */ "./node_modules/d3-geo/src/projection/equalEarth.js");
8928/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEqualEarth", function() { return _projection_equalEarth__WEBPACK_IMPORTED_MODULE_21__["default"]; });
8929
8930/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEqualEarthRaw", function() { return _projection_equalEarth__WEBPACK_IMPORTED_MODULE_21__["equalEarthRaw"]; });
8931
8932/* harmony import */ var _projection_equirectangular__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./projection/equirectangular */ "./node_modules/d3-geo/src/projection/equirectangular.js");
8933/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangular", function() { return _projection_equirectangular__WEBPACK_IMPORTED_MODULE_22__["default"]; });
8934
8935/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangularRaw", function() { return _projection_equirectangular__WEBPACK_IMPORTED_MODULE_22__["equirectangularRaw"]; });
8936
8937/* harmony import */ var _projection_gnomonic__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./projection/gnomonic */ "./node_modules/d3-geo/src/projection/gnomonic.js");
8938/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonic", function() { return _projection_gnomonic__WEBPACK_IMPORTED_MODULE_23__["default"]; });
8939
8940/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonicRaw", function() { return _projection_gnomonic__WEBPACK_IMPORTED_MODULE_23__["gnomonicRaw"]; });
8941
8942/* harmony import */ var _projection_identity__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./projection/identity */ "./node_modules/d3-geo/src/projection/identity.js");
8943/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoIdentity", function() { return _projection_identity__WEBPACK_IMPORTED_MODULE_24__["default"]; });
8944
8945/* harmony import */ var _projection_index__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./projection/index */ "./node_modules/d3-geo/src/projection/index.js");
8946/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjection", function() { return _projection_index__WEBPACK_IMPORTED_MODULE_25__["default"]; });
8947
8948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjectionMutator", function() { return _projection_index__WEBPACK_IMPORTED_MODULE_25__["projectionMutator"]; });
8949
8950/* harmony import */ var _projection_mercator__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./projection/mercator */ "./node_modules/d3-geo/src/projection/mercator.js");
8951/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercator", function() { return _projection_mercator__WEBPACK_IMPORTED_MODULE_26__["default"]; });
8952
8953/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercatorRaw", function() { return _projection_mercator__WEBPACK_IMPORTED_MODULE_26__["mercatorRaw"]; });
8954
8955/* harmony import */ var _projection_naturalEarth1__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./projection/naturalEarth1 */ "./node_modules/d3-geo/src/projection/naturalEarth1.js");
8956/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1", function() { return _projection_naturalEarth1__WEBPACK_IMPORTED_MODULE_27__["default"]; });
8957
8958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1Raw", function() { return _projection_naturalEarth1__WEBPACK_IMPORTED_MODULE_27__["naturalEarth1Raw"]; });
8959
8960/* harmony import */ var _projection_orthographic__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./projection/orthographic */ "./node_modules/d3-geo/src/projection/orthographic.js");
8961/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographic", function() { return _projection_orthographic__WEBPACK_IMPORTED_MODULE_28__["default"]; });
8962
8963/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographicRaw", function() { return _projection_orthographic__WEBPACK_IMPORTED_MODULE_28__["orthographicRaw"]; });
8964
8965/* harmony import */ var _projection_stereographic__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./projection/stereographic */ "./node_modules/d3-geo/src/projection/stereographic.js");
8966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographic", function() { return _projection_stereographic__WEBPACK_IMPORTED_MODULE_29__["default"]; });
8967
8968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographicRaw", function() { return _projection_stereographic__WEBPACK_IMPORTED_MODULE_29__["stereographicRaw"]; });
8969
8970/* harmony import */ var _projection_transverseMercator__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./projection/transverseMercator */ "./node_modules/d3-geo/src/projection/transverseMercator.js");
8971/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercator", function() { return _projection_transverseMercator__WEBPACK_IMPORTED_MODULE_30__["default"]; });
8972
8973/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercatorRaw", function() { return _projection_transverseMercator__WEBPACK_IMPORTED_MODULE_30__["transverseMercatorRaw"]; });
8974
8975/* harmony import */ var _rotation__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./rotation */ "./node_modules/d3-geo/src/rotation.js");
8976/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoRotation", function() { return _rotation__WEBPACK_IMPORTED_MODULE_31__["default"]; });
8977
8978/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
8979/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStream", function() { return _stream__WEBPACK_IMPORTED_MODULE_32__["default"]; });
8980
8981/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./transform */ "./node_modules/d3-geo/src/transform.js");
8982/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransform", function() { return _transform__WEBPACK_IMPORTED_MODULE_33__["default"]; });
8983
8984
8985
8986
8987
8988
8989
8990 // DEPRECATED! Use d3.geoIdentity().clipExtent(…).
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020/***/ }),
9021
9022/***/ "./node_modules/d3-geo/src/interpolate.js":
9023/*!************************************************!*\
9024 !*** ./node_modules/d3-geo/src/interpolate.js ***!
9025 \************************************************/
9026/*! exports provided: default */
9027/***/ (function(module, __webpack_exports__, __webpack_require__) {
9028
9029"use strict";
9030__webpack_require__.r(__webpack_exports__);
9031/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
9032
9033
9034/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
9035 var x0 = a[0] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"],
9036 y0 = a[1] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"],
9037 x1 = b[0] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"],
9038 y1 = b[1] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"],
9039 cy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
9040 sy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0),
9041 cy1 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y1),
9042 sy1 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y1),
9043 kx0 = cy0 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x0),
9044 ky0 = cy0 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x0),
9045 kx1 = cy1 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x1),
9046 ky1 = cy1 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x1),
9047 d = 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["haversin"])(y1 - y0) + cy0 * cy1 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["haversin"])(x1 - x0))),
9048 k = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(d);
9049
9050 var interpolate = d ? function(t) {
9051 var B = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(t *= d) / k,
9052 A = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(d - t) / k,
9053 x = A * kx0 + B * kx1,
9054 y = A * ky0 + B * ky1,
9055 z = A * sy0 + B * sy1;
9056 return [
9057 Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(y, x) * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"],
9058 Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(z, Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + y * y)) * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"]
9059 ];
9060 } : function() {
9061 return [x0 * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"], y0 * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"]];
9062 };
9063
9064 interpolate.distance = d;
9065
9066 return interpolate;
9067});
9068
9069
9070/***/ }),
9071
9072/***/ "./node_modules/d3-geo/src/length.js":
9073/*!*******************************************!*\
9074 !*** ./node_modules/d3-geo/src/length.js ***!
9075 \*******************************************/
9076/*! exports provided: default */
9077/***/ (function(module, __webpack_exports__, __webpack_require__) {
9078
9079"use strict";
9080__webpack_require__.r(__webpack_exports__);
9081/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder */ "./node_modules/d3-geo/src/adder.js");
9082/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
9083/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop */ "./node_modules/d3-geo/src/noop.js");
9084/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
9085
9086
9087
9088
9089
9090var lengthSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
9091 lambda0,
9092 sinPhi0,
9093 cosPhi0;
9094
9095var lengthStream = {
9096 sphere: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
9097 point: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
9098 lineStart: lengthLineStart,
9099 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
9100 polygonStart: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
9101 polygonEnd: _noop__WEBPACK_IMPORTED_MODULE_2__["default"]
9102};
9103
9104function lengthLineStart() {
9105 lengthStream.point = lengthPointFirst;
9106 lengthStream.lineEnd = lengthLineEnd;
9107}
9108
9109function lengthLineEnd() {
9110 lengthStream.point = lengthStream.lineEnd = _noop__WEBPACK_IMPORTED_MODULE_2__["default"];
9111}
9112
9113function lengthPointFirst(lambda, phi) {
9114 lambda *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"];
9115 lambda0 = lambda, sinPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi), cosPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi);
9116 lengthStream.point = lengthPoint;
9117}
9118
9119function lengthPoint(lambda, phi) {
9120 lambda *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"];
9121 var sinPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
9122 cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
9123 delta = Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda - lambda0),
9124 cosDelta = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(delta),
9125 sinDelta = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(delta),
9126 x = cosPhi * sinDelta,
9127 y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,
9128 z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;
9129 lengthSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(x * x + y * y), z));
9130 lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;
9131}
9132
9133/* harmony default export */ __webpack_exports__["default"] = (function(object) {
9134 lengthSum.reset();
9135 Object(_stream__WEBPACK_IMPORTED_MODULE_3__["default"])(object, lengthStream);
9136 return +lengthSum;
9137});
9138
9139
9140/***/ }),
9141
9142/***/ "./node_modules/d3-geo/src/math.js":
9143/*!*****************************************!*\
9144 !*** ./node_modules/d3-geo/src/math.js ***!
9145 \*****************************************/
9146/*! exports provided: epsilon, epsilon2, pi, halfPi, quarterPi, tau, degrees, radians, abs, atan, atan2, cos, ceil, exp, floor, log, pow, sin, sign, sqrt, tan, acos, asin, haversin */
9147/***/ (function(module, __webpack_exports__, __webpack_require__) {
9148
9149"use strict";
9150__webpack_require__.r(__webpack_exports__);
9151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
9152/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon2", function() { return epsilon2; });
9153/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
9154/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
9155/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quarterPi", function() { return quarterPi; });
9156/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
9157/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "degrees", function() { return degrees; });
9158/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "radians", function() { return radians; });
9159/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "abs", function() { return abs; });
9160/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan", function() { return atan; });
9161/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan2", function() { return atan2; });
9162/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
9163/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ceil", function() { return ceil; });
9164/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exp", function() { return exp; });
9165/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "floor", function() { return floor; });
9166/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
9167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pow", function() { return pow; });
9168/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
9169/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sign", function() { return sign; });
9170/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
9171/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tan", function() { return tan; });
9172/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "acos", function() { return acos; });
9173/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asin", function() { return asin; });
9174/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "haversin", function() { return haversin; });
9175var epsilon = 1e-6;
9176var epsilon2 = 1e-12;
9177var pi = Math.PI;
9178var halfPi = pi / 2;
9179var quarterPi = pi / 4;
9180var tau = pi * 2;
9181
9182var degrees = 180 / pi;
9183var radians = pi / 180;
9184
9185var abs = Math.abs;
9186var atan = Math.atan;
9187var atan2 = Math.atan2;
9188var cos = Math.cos;
9189var ceil = Math.ceil;
9190var exp = Math.exp;
9191var floor = Math.floor;
9192var log = Math.log;
9193var pow = Math.pow;
9194var sin = Math.sin;
9195var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
9196var sqrt = Math.sqrt;
9197var tan = Math.tan;
9198
9199function acos(x) {
9200 return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
9201}
9202
9203function asin(x) {
9204 return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);
9205}
9206
9207function haversin(x) {
9208 return (x = sin(x / 2)) * x;
9209}
9210
9211
9212/***/ }),
9213
9214/***/ "./node_modules/d3-geo/src/noop.js":
9215/*!*****************************************!*\
9216 !*** ./node_modules/d3-geo/src/noop.js ***!
9217 \*****************************************/
9218/*! exports provided: default */
9219/***/ (function(module, __webpack_exports__, __webpack_require__) {
9220
9221"use strict";
9222__webpack_require__.r(__webpack_exports__);
9223/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return noop; });
9224function noop() {}
9225
9226
9227/***/ }),
9228
9229/***/ "./node_modules/d3-geo/src/path/area.js":
9230/*!**********************************************!*\
9231 !*** ./node_modules/d3-geo/src/path/area.js ***!
9232 \**********************************************/
9233/*! exports provided: default */
9234/***/ (function(module, __webpack_exports__, __webpack_require__) {
9235
9236"use strict";
9237__webpack_require__.r(__webpack_exports__);
9238/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../adder */ "./node_modules/d3-geo/src/adder.js");
9239/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9240/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
9241
9242
9243
9244
9245var areaSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
9246 areaRingSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
9247 x00,
9248 y00,
9249 x0,
9250 y0;
9251
9252var areaStream = {
9253 point: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
9254 lineStart: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
9255 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
9256 polygonStart: function() {
9257 areaStream.lineStart = areaRingStart;
9258 areaStream.lineEnd = areaRingEnd;
9259 },
9260 polygonEnd: function() {
9261 areaStream.lineStart = areaStream.lineEnd = areaStream.point = _noop__WEBPACK_IMPORTED_MODULE_2__["default"];
9262 areaSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(areaRingSum));
9263 areaRingSum.reset();
9264 },
9265 result: function() {
9266 var area = areaSum / 2;
9267 areaSum.reset();
9268 return area;
9269 }
9270};
9271
9272function areaRingStart() {
9273 areaStream.point = areaPointFirst;
9274}
9275
9276function areaPointFirst(x, y) {
9277 areaStream.point = areaPoint;
9278 x00 = x0 = x, y00 = y0 = y;
9279}
9280
9281function areaPoint(x, y) {
9282 areaRingSum.add(y0 * x - x0 * y);
9283 x0 = x, y0 = y;
9284}
9285
9286function areaRingEnd() {
9287 areaPoint(x00, y00);
9288}
9289
9290/* harmony default export */ __webpack_exports__["default"] = (areaStream);
9291
9292
9293/***/ }),
9294
9295/***/ "./node_modules/d3-geo/src/path/bounds.js":
9296/*!************************************************!*\
9297 !*** ./node_modules/d3-geo/src/path/bounds.js ***!
9298 \************************************************/
9299/*! exports provided: default */
9300/***/ (function(module, __webpack_exports__, __webpack_require__) {
9301
9302"use strict";
9303__webpack_require__.r(__webpack_exports__);
9304/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
9305
9306
9307var x0 = Infinity,
9308 y0 = x0,
9309 x1 = -x0,
9310 y1 = x1;
9311
9312var boundsStream = {
9313 point: boundsPoint,
9314 lineStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
9315 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
9316 polygonStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
9317 polygonEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
9318 result: function() {
9319 var bounds = [[x0, y0], [x1, y1]];
9320 x1 = y1 = -(y0 = x0 = Infinity);
9321 return bounds;
9322 }
9323};
9324
9325function boundsPoint(x, y) {
9326 if (x < x0) x0 = x;
9327 if (x > x1) x1 = x;
9328 if (y < y0) y0 = y;
9329 if (y > y1) y1 = y;
9330}
9331
9332/* harmony default export */ __webpack_exports__["default"] = (boundsStream);
9333
9334
9335/***/ }),
9336
9337/***/ "./node_modules/d3-geo/src/path/centroid.js":
9338/*!**************************************************!*\
9339 !*** ./node_modules/d3-geo/src/path/centroid.js ***!
9340 \**************************************************/
9341/*! exports provided: default */
9342/***/ (function(module, __webpack_exports__, __webpack_require__) {
9343
9344"use strict";
9345__webpack_require__.r(__webpack_exports__);
9346/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9347
9348
9349// TODO Enforce positive area for exterior, negative area for interior?
9350
9351var X0 = 0,
9352 Y0 = 0,
9353 Z0 = 0,
9354 X1 = 0,
9355 Y1 = 0,
9356 Z1 = 0,
9357 X2 = 0,
9358 Y2 = 0,
9359 Z2 = 0,
9360 x00,
9361 y00,
9362 x0,
9363 y0;
9364
9365var centroidStream = {
9366 point: centroidPoint,
9367 lineStart: centroidLineStart,
9368 lineEnd: centroidLineEnd,
9369 polygonStart: function() {
9370 centroidStream.lineStart = centroidRingStart;
9371 centroidStream.lineEnd = centroidRingEnd;
9372 },
9373 polygonEnd: function() {
9374 centroidStream.point = centroidPoint;
9375 centroidStream.lineStart = centroidLineStart;
9376 centroidStream.lineEnd = centroidLineEnd;
9377 },
9378 result: function() {
9379 var centroid = Z2 ? [X2 / Z2, Y2 / Z2]
9380 : Z1 ? [X1 / Z1, Y1 / Z1]
9381 : Z0 ? [X0 / Z0, Y0 / Z0]
9382 : [NaN, NaN];
9383 X0 = Y0 = Z0 =
9384 X1 = Y1 = Z1 =
9385 X2 = Y2 = Z2 = 0;
9386 return centroid;
9387 }
9388};
9389
9390function centroidPoint(x, y) {
9391 X0 += x;
9392 Y0 += y;
9393 ++Z0;
9394}
9395
9396function centroidLineStart() {
9397 centroidStream.point = centroidPointFirstLine;
9398}
9399
9400function centroidPointFirstLine(x, y) {
9401 centroidStream.point = centroidPointLine;
9402 centroidPoint(x0 = x, y0 = y);
9403}
9404
9405function centroidPointLine(x, y) {
9406 var dx = x - x0, dy = y - y0, z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(dx * dx + dy * dy);
9407 X1 += z * (x0 + x) / 2;
9408 Y1 += z * (y0 + y) / 2;
9409 Z1 += z;
9410 centroidPoint(x0 = x, y0 = y);
9411}
9412
9413function centroidLineEnd() {
9414 centroidStream.point = centroidPoint;
9415}
9416
9417function centroidRingStart() {
9418 centroidStream.point = centroidPointFirstRing;
9419}
9420
9421function centroidRingEnd() {
9422 centroidPointRing(x00, y00);
9423}
9424
9425function centroidPointFirstRing(x, y) {
9426 centroidStream.point = centroidPointRing;
9427 centroidPoint(x00 = x0 = x, y00 = y0 = y);
9428}
9429
9430function centroidPointRing(x, y) {
9431 var dx = x - x0,
9432 dy = y - y0,
9433 z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(dx * dx + dy * dy);
9434
9435 X1 += z * (x0 + x) / 2;
9436 Y1 += z * (y0 + y) / 2;
9437 Z1 += z;
9438
9439 z = y0 * x - x0 * y;
9440 X2 += z * (x0 + x);
9441 Y2 += z * (y0 + y);
9442 Z2 += z * 3;
9443 centroidPoint(x0 = x, y0 = y);
9444}
9445
9446/* harmony default export */ __webpack_exports__["default"] = (centroidStream);
9447
9448
9449/***/ }),
9450
9451/***/ "./node_modules/d3-geo/src/path/context.js":
9452/*!*************************************************!*\
9453 !*** ./node_modules/d3-geo/src/path/context.js ***!
9454 \*************************************************/
9455/*! exports provided: default */
9456/***/ (function(module, __webpack_exports__, __webpack_require__) {
9457
9458"use strict";
9459__webpack_require__.r(__webpack_exports__);
9460/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return PathContext; });
9461/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9462/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
9463
9464
9465
9466function PathContext(context) {
9467 this._context = context;
9468}
9469
9470PathContext.prototype = {
9471 _radius: 4.5,
9472 pointRadius: function(_) {
9473 return this._radius = _, this;
9474 },
9475 polygonStart: function() {
9476 this._line = 0;
9477 },
9478 polygonEnd: function() {
9479 this._line = NaN;
9480 },
9481 lineStart: function() {
9482 this._point = 0;
9483 },
9484 lineEnd: function() {
9485 if (this._line === 0) this._context.closePath();
9486 this._point = NaN;
9487 },
9488 point: function(x, y) {
9489 switch (this._point) {
9490 case 0: {
9491 this._context.moveTo(x, y);
9492 this._point = 1;
9493 break;
9494 }
9495 case 1: {
9496 this._context.lineTo(x, y);
9497 break;
9498 }
9499 default: {
9500 this._context.moveTo(x + this._radius, y);
9501 this._context.arc(x, y, this._radius, 0, _math__WEBPACK_IMPORTED_MODULE_0__["tau"]);
9502 break;
9503 }
9504 }
9505 },
9506 result: _noop__WEBPACK_IMPORTED_MODULE_1__["default"]
9507};
9508
9509
9510/***/ }),
9511
9512/***/ "./node_modules/d3-geo/src/path/index.js":
9513/*!***********************************************!*\
9514 !*** ./node_modules/d3-geo/src/path/index.js ***!
9515 \***********************************************/
9516/*! exports provided: default */
9517/***/ (function(module, __webpack_exports__, __webpack_require__) {
9518
9519"use strict";
9520__webpack_require__.r(__webpack_exports__);
9521/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../identity */ "./node_modules/d3-geo/src/identity.js");
9522/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stream */ "./node_modules/d3-geo/src/stream.js");
9523/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./area */ "./node_modules/d3-geo/src/path/area.js");
9524/* harmony import */ var _bounds__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bounds */ "./node_modules/d3-geo/src/path/bounds.js");
9525/* harmony import */ var _centroid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./centroid */ "./node_modules/d3-geo/src/path/centroid.js");
9526/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./context */ "./node_modules/d3-geo/src/path/context.js");
9527/* harmony import */ var _measure__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./measure */ "./node_modules/d3-geo/src/path/measure.js");
9528/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./string */ "./node_modules/d3-geo/src/path/string.js");
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538/* harmony default export */ __webpack_exports__["default"] = (function(projection, context) {
9539 var pointRadius = 4.5,
9540 projectionStream,
9541 contextStream;
9542
9543 function path(object) {
9544 if (object) {
9545 if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
9546 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(contextStream));
9547 }
9548 return contextStream.result();
9549 }
9550
9551 path.area = function(object) {
9552 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_area__WEBPACK_IMPORTED_MODULE_2__["default"]));
9553 return _area__WEBPACK_IMPORTED_MODULE_2__["default"].result();
9554 };
9555
9556 path.measure = function(object) {
9557 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_measure__WEBPACK_IMPORTED_MODULE_6__["default"]));
9558 return _measure__WEBPACK_IMPORTED_MODULE_6__["default"].result();
9559 };
9560
9561 path.bounds = function(object) {
9562 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_bounds__WEBPACK_IMPORTED_MODULE_3__["default"]));
9563 return _bounds__WEBPACK_IMPORTED_MODULE_3__["default"].result();
9564 };
9565
9566 path.centroid = function(object) {
9567 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_centroid__WEBPACK_IMPORTED_MODULE_4__["default"]));
9568 return _centroid__WEBPACK_IMPORTED_MODULE_4__["default"].result();
9569 };
9570
9571 path.projection = function(_) {
9572 return arguments.length ? (projectionStream = _ == null ? (projection = null, _identity__WEBPACK_IMPORTED_MODULE_0__["default"]) : (projection = _).stream, path) : projection;
9573 };
9574
9575 path.context = function(_) {
9576 if (!arguments.length) return context;
9577 contextStream = _ == null ? (context = null, new _string__WEBPACK_IMPORTED_MODULE_7__["default"]) : new _context__WEBPACK_IMPORTED_MODULE_5__["default"](context = _);
9578 if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
9579 return path;
9580 };
9581
9582 path.pointRadius = function(_) {
9583 if (!arguments.length) return pointRadius;
9584 pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
9585 return path;
9586 };
9587
9588 return path.projection(projection).context(context);
9589});
9590
9591
9592/***/ }),
9593
9594/***/ "./node_modules/d3-geo/src/path/measure.js":
9595/*!*************************************************!*\
9596 !*** ./node_modules/d3-geo/src/path/measure.js ***!
9597 \*************************************************/
9598/*! exports provided: default */
9599/***/ (function(module, __webpack_exports__, __webpack_require__) {
9600
9601"use strict";
9602__webpack_require__.r(__webpack_exports__);
9603/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../adder */ "./node_modules/d3-geo/src/adder.js");
9604/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9605/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
9606
9607
9608
9609
9610var lengthSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
9611 lengthRing,
9612 x00,
9613 y00,
9614 x0,
9615 y0;
9616
9617var lengthStream = {
9618 point: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
9619 lineStart: function() {
9620 lengthStream.point = lengthPointFirst;
9621 },
9622 lineEnd: function() {
9623 if (lengthRing) lengthPoint(x00, y00);
9624 lengthStream.point = _noop__WEBPACK_IMPORTED_MODULE_2__["default"];
9625 },
9626 polygonStart: function() {
9627 lengthRing = true;
9628 },
9629 polygonEnd: function() {
9630 lengthRing = null;
9631 },
9632 result: function() {
9633 var length = +lengthSum;
9634 lengthSum.reset();
9635 return length;
9636 }
9637};
9638
9639function lengthPointFirst(x, y) {
9640 lengthStream.point = lengthPoint;
9641 x00 = x0 = x, y00 = y0 = y;
9642}
9643
9644function lengthPoint(x, y) {
9645 x0 -= x, y0 -= y;
9646 lengthSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(x0 * x0 + y0 * y0));
9647 x0 = x, y0 = y;
9648}
9649
9650/* harmony default export */ __webpack_exports__["default"] = (lengthStream);
9651
9652
9653/***/ }),
9654
9655/***/ "./node_modules/d3-geo/src/path/string.js":
9656/*!************************************************!*\
9657 !*** ./node_modules/d3-geo/src/path/string.js ***!
9658 \************************************************/
9659/*! exports provided: default */
9660/***/ (function(module, __webpack_exports__, __webpack_require__) {
9661
9662"use strict";
9663__webpack_require__.r(__webpack_exports__);
9664/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return PathString; });
9665function PathString() {
9666 this._string = [];
9667}
9668
9669PathString.prototype = {
9670 _radius: 4.5,
9671 _circle: circle(4.5),
9672 pointRadius: function(_) {
9673 if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;
9674 return this;
9675 },
9676 polygonStart: function() {
9677 this._line = 0;
9678 },
9679 polygonEnd: function() {
9680 this._line = NaN;
9681 },
9682 lineStart: function() {
9683 this._point = 0;
9684 },
9685 lineEnd: function() {
9686 if (this._line === 0) this._string.push("Z");
9687 this._point = NaN;
9688 },
9689 point: function(x, y) {
9690 switch (this._point) {
9691 case 0: {
9692 this._string.push("M", x, ",", y);
9693 this._point = 1;
9694 break;
9695 }
9696 case 1: {
9697 this._string.push("L", x, ",", y);
9698 break;
9699 }
9700 default: {
9701 if (this._circle == null) this._circle = circle(this._radius);
9702 this._string.push("M", x, ",", y, this._circle);
9703 break;
9704 }
9705 }
9706 },
9707 result: function() {
9708 if (this._string.length) {
9709 var result = this._string.join("");
9710 this._string = [];
9711 return result;
9712 } else {
9713 return null;
9714 }
9715 }
9716};
9717
9718function circle(radius) {
9719 return "m0," + radius
9720 + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius
9721 + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius
9722 + "z";
9723}
9724
9725
9726/***/ }),
9727
9728/***/ "./node_modules/d3-geo/src/pointEqual.js":
9729/*!***********************************************!*\
9730 !*** ./node_modules/d3-geo/src/pointEqual.js ***!
9731 \***********************************************/
9732/*! exports provided: default */
9733/***/ (function(module, __webpack_exports__, __webpack_require__) {
9734
9735"use strict";
9736__webpack_require__.r(__webpack_exports__);
9737/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
9738
9739
9740/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
9741 return Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(a[0] - b[0]) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"] && Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(a[1] - b[1]) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"];
9742});
9743
9744
9745/***/ }),
9746
9747/***/ "./node_modules/d3-geo/src/polygonContains.js":
9748/*!****************************************************!*\
9749 !*** ./node_modules/d3-geo/src/polygonContains.js ***!
9750 \****************************************************/
9751/*! exports provided: default */
9752/***/ (function(module, __webpack_exports__, __webpack_require__) {
9753
9754"use strict";
9755__webpack_require__.r(__webpack_exports__);
9756/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder */ "./node_modules/d3-geo/src/adder.js");
9757/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cartesian */ "./node_modules/d3-geo/src/cartesian.js");
9758/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
9759
9760
9761
9762
9763var sum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])();
9764
9765/* harmony default export */ __webpack_exports__["default"] = (function(polygon, point) {
9766 var lambda = point[0],
9767 phi = point[1],
9768 sinPhi = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(phi),
9769 normal = [Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(lambda), -Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(lambda), 0],
9770 angle = 0,
9771 winding = 0;
9772
9773 sum.reset();
9774
9775 if (sinPhi === 1) phi = _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"] + _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
9776 else if (sinPhi === -1) phi = -_math__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
9777
9778 for (var i = 0, n = polygon.length; i < n; ++i) {
9779 if (!(m = (ring = polygon[i]).length)) continue;
9780 var ring,
9781 m,
9782 point0 = ring[m - 1],
9783 lambda0 = point0[0],
9784 phi0 = point0[1] / 2 + _math__WEBPACK_IMPORTED_MODULE_2__["quarterPi"],
9785 sinPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(phi0),
9786 cosPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi0);
9787
9788 for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
9789 var point1 = ring[j],
9790 lambda1 = point1[0],
9791 phi1 = point1[1] / 2 + _math__WEBPACK_IMPORTED_MODULE_2__["quarterPi"],
9792 sinPhi1 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(phi1),
9793 cosPhi1 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi1),
9794 delta = lambda1 - lambda0,
9795 sign = delta >= 0 ? 1 : -1,
9796 absDelta = sign * delta,
9797 antimeridian = absDelta > _math__WEBPACK_IMPORTED_MODULE_2__["pi"],
9798 k = sinPhi0 * sinPhi1;
9799
9800 sum.add(Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(k * sign * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(absDelta), cosPhi0 * cosPhi1 + k * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(absDelta)));
9801 angle += antimeridian ? delta + sign * _math__WEBPACK_IMPORTED_MODULE_2__["tau"] : delta;
9802
9803 // Are the longitudes either side of the point’s meridian (lambda),
9804 // and are the latitudes smaller than the parallel (phi)?
9805 if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
9806 var arc = Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesianCross"])(Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesian"])(point0), Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesian"])(point1));
9807 Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesianNormalizeInPlace"])(arc);
9808 var intersection = Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesianCross"])(normal, arc);
9809 Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesianNormalizeInPlace"])(intersection);
9810 var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * Object(_math__WEBPACK_IMPORTED_MODULE_2__["asin"])(intersection[2]);
9811 if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
9812 winding += antimeridian ^ delta >= 0 ? 1 : -1;
9813 }
9814 }
9815 }
9816 }
9817
9818 // First, determine whether the South pole is inside or outside:
9819 //
9820 // It is inside if:
9821 // * the polygon winds around it in a clockwise direction.
9822 // * the polygon does not (cumulatively) wind around it, but has a negative
9823 // (counter-clockwise) area.
9824 //
9825 // Second, count the (signed) number of times a segment crosses a lambda
9826 // from the point to the South pole. If it is zero, then the point is the
9827 // same side as the South pole.
9828
9829 return (angle < -_math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] || angle < _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] && sum < -_math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) ^ (winding & 1);
9830});
9831
9832
9833/***/ }),
9834
9835/***/ "./node_modules/d3-geo/src/projection/albers.js":
9836/*!******************************************************!*\
9837 !*** ./node_modules/d3-geo/src/projection/albers.js ***!
9838 \******************************************************/
9839/*! exports provided: default */
9840/***/ (function(module, __webpack_exports__, __webpack_require__) {
9841
9842"use strict";
9843__webpack_require__.r(__webpack_exports__);
9844/* harmony import */ var _conicEqualArea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./conicEqualArea */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
9845
9846
9847/* harmony default export */ __webpack_exports__["default"] = (function() {
9848 return Object(_conicEqualArea__WEBPACK_IMPORTED_MODULE_0__["default"])()
9849 .parallels([29.5, 45.5])
9850 .scale(1070)
9851 .translate([480, 250])
9852 .rotate([96, 0])
9853 .center([-0.6, 38.7]);
9854});
9855
9856
9857/***/ }),
9858
9859/***/ "./node_modules/d3-geo/src/projection/albersUsa.js":
9860/*!*********************************************************!*\
9861 !*** ./node_modules/d3-geo/src/projection/albersUsa.js ***!
9862 \*********************************************************/
9863/*! exports provided: default */
9864/***/ (function(module, __webpack_exports__, __webpack_require__) {
9865
9866"use strict";
9867__webpack_require__.r(__webpack_exports__);
9868/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9869/* harmony import */ var _albers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./albers */ "./node_modules/d3-geo/src/projection/albers.js");
9870/* harmony import */ var _conicEqualArea__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./conicEqualArea */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
9871/* harmony import */ var _fit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit */ "./node_modules/d3-geo/src/projection/fit.js");
9872
9873
9874
9875
9876
9877// The projections must have mutually exclusive clip regions on the sphere,
9878// as this will avoid emitting interleaving lines and polygons.
9879function multiplex(streams) {
9880 var n = streams.length;
9881 return {
9882 point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
9883 sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
9884 lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
9885 lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
9886 polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
9887 polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
9888 };
9889}
9890
9891// A composite projection for the United States, configured by default for
9892// 960×500. The projection also works quite well at 960×600 if you change the
9893// scale to 1285 and adjust the translate accordingly. The set of standard
9894// parallels for each region comes from USGS, which is published here:
9895// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
9896/* harmony default export */ __webpack_exports__["default"] = (function() {
9897 var cache,
9898 cacheStream,
9899 lower48 = Object(_albers__WEBPACK_IMPORTED_MODULE_1__["default"])(), lower48Point,
9900 alaska = Object(_conicEqualArea__WEBPACK_IMPORTED_MODULE_2__["default"])().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
9901 hawaii = Object(_conicEqualArea__WEBPACK_IMPORTED_MODULE_2__["default"])().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
9902 point, pointStream = {point: function(x, y) { point = [x, y]; }};
9903
9904 function albersUsa(coordinates) {
9905 var x = coordinates[0], y = coordinates[1];
9906 return point = null,
9907 (lower48Point.point(x, y), point)
9908 || (alaskaPoint.point(x, y), point)
9909 || (hawaiiPoint.point(x, y), point);
9910 }
9911
9912 albersUsa.invert = function(coordinates) {
9913 var k = lower48.scale(),
9914 t = lower48.translate(),
9915 x = (coordinates[0] - t[0]) / k,
9916 y = (coordinates[1] - t[1]) / k;
9917 return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
9918 : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
9919 : lower48).invert(coordinates);
9920 };
9921
9922 albersUsa.stream = function(stream) {
9923 return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
9924 };
9925
9926 albersUsa.precision = function(_) {
9927 if (!arguments.length) return lower48.precision();
9928 lower48.precision(_), alaska.precision(_), hawaii.precision(_);
9929 return reset();
9930 };
9931
9932 albersUsa.scale = function(_) {
9933 if (!arguments.length) return lower48.scale();
9934 lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
9935 return albersUsa.translate(lower48.translate());
9936 };
9937
9938 albersUsa.translate = function(_) {
9939 if (!arguments.length) return lower48.translate();
9940 var k = lower48.scale(), x = +_[0], y = +_[1];
9941
9942 lower48Point = lower48
9943 .translate(_)
9944 .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
9945 .stream(pointStream);
9946
9947 alaskaPoint = alaska
9948 .translate([x - 0.307 * k, y + 0.201 * k])
9949 .clipExtent([[x - 0.425 * k + _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"], y + 0.120 * k + _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]], [x - 0.214 * k - _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"], y + 0.234 * k - _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]]])
9950 .stream(pointStream);
9951
9952 hawaiiPoint = hawaii
9953 .translate([x - 0.205 * k, y + 0.212 * k])
9954 .clipExtent([[x - 0.214 * k + _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"], y + 0.166 * k + _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]], [x - 0.115 * k - _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"], y + 0.234 * k - _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]]])
9955 .stream(pointStream);
9956
9957 return reset();
9958 };
9959
9960 albersUsa.fitExtent = function(extent, object) {
9961 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitExtent"])(albersUsa, extent, object);
9962 };
9963
9964 albersUsa.fitSize = function(size, object) {
9965 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitSize"])(albersUsa, size, object);
9966 };
9967
9968 albersUsa.fitWidth = function(width, object) {
9969 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitWidth"])(albersUsa, width, object);
9970 };
9971
9972 albersUsa.fitHeight = function(height, object) {
9973 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitHeight"])(albersUsa, height, object);
9974 };
9975
9976 function reset() {
9977 cache = cacheStream = null;
9978 return albersUsa;
9979 }
9980
9981 return albersUsa.scale(1070);
9982});
9983
9984
9985/***/ }),
9986
9987/***/ "./node_modules/d3-geo/src/projection/azimuthal.js":
9988/*!*********************************************************!*\
9989 !*** ./node_modules/d3-geo/src/projection/azimuthal.js ***!
9990 \*********************************************************/
9991/*! exports provided: azimuthalRaw, azimuthalInvert */
9992/***/ (function(module, __webpack_exports__, __webpack_require__) {
9993
9994"use strict";
9995__webpack_require__.r(__webpack_exports__);
9996/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalRaw", function() { return azimuthalRaw; });
9997/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalInvert", function() { return azimuthalInvert; });
9998/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9999
10000
10001function azimuthalRaw(scale) {
10002 return function(x, y) {
10003 var cx = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x),
10004 cy = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y),
10005 k = scale(cx * cy);
10006 return [
10007 k * cy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x),
10008 k * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y)
10009 ];
10010 }
10011}
10012
10013function azimuthalInvert(angle) {
10014 return function(x, y) {
10015 var z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + y * y),
10016 c = angle(z),
10017 sc = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(c),
10018 cc = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(c);
10019 return [
10020 Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x * sc, z * cc),
10021 Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(z && y * sc / z)
10022 ];
10023 }
10024}
10025
10026
10027/***/ }),
10028
10029/***/ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js":
10030/*!******************************************************************!*\
10031 !*** ./node_modules/d3-geo/src/projection/azimuthalEqualArea.js ***!
10032 \******************************************************************/
10033/*! exports provided: azimuthalEqualAreaRaw, default */
10034/***/ (function(module, __webpack_exports__, __webpack_require__) {
10035
10036"use strict";
10037__webpack_require__.r(__webpack_exports__);
10038/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalEqualAreaRaw", function() { return azimuthalEqualAreaRaw; });
10039/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10040/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10041/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10042
10043
10044
10045
10046var azimuthalEqualAreaRaw = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalRaw"])(function(cxcy) {
10047 return Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(2 / (1 + cxcy));
10048});
10049
10050azimuthalEqualAreaRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
10051 return 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(z / 2);
10052});
10053
10054/* harmony default export */ __webpack_exports__["default"] = (function() {
10055 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(azimuthalEqualAreaRaw)
10056 .scale(124.75)
10057 .clipAngle(180 - 1e-3);
10058});
10059
10060
10061/***/ }),
10062
10063/***/ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js":
10064/*!********************************************************************!*\
10065 !*** ./node_modules/d3-geo/src/projection/azimuthalEquidistant.js ***!
10066 \********************************************************************/
10067/*! exports provided: azimuthalEquidistantRaw, default */
10068/***/ (function(module, __webpack_exports__, __webpack_require__) {
10069
10070"use strict";
10071__webpack_require__.r(__webpack_exports__);
10072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalEquidistantRaw", function() { return azimuthalEquidistantRaw; });
10073/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10074/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10075/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10076
10077
10078
10079
10080var azimuthalEquidistantRaw = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalRaw"])(function(c) {
10081 return (c = Object(_math__WEBPACK_IMPORTED_MODULE_0__["acos"])(c)) && c / Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(c);
10082});
10083
10084azimuthalEquidistantRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
10085 return z;
10086});
10087
10088/* harmony default export */ __webpack_exports__["default"] = (function() {
10089 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(azimuthalEquidistantRaw)
10090 .scale(79.4188)
10091 .clipAngle(180 - 1e-3);
10092});
10093
10094
10095/***/ }),
10096
10097/***/ "./node_modules/d3-geo/src/projection/conic.js":
10098/*!*****************************************************!*\
10099 !*** ./node_modules/d3-geo/src/projection/conic.js ***!
10100 \*****************************************************/
10101/*! exports provided: conicProjection */
10102/***/ (function(module, __webpack_exports__, __webpack_require__) {
10103
10104"use strict";
10105__webpack_require__.r(__webpack_exports__);
10106/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicProjection", function() { return conicProjection; });
10107/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10108/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10109
10110
10111
10112function conicProjection(projectAt) {
10113 var phi0 = 0,
10114 phi1 = _math__WEBPACK_IMPORTED_MODULE_0__["pi"] / 3,
10115 m = Object(_index__WEBPACK_IMPORTED_MODULE_1__["projectionMutator"])(projectAt),
10116 p = m(phi0, phi1);
10117
10118 p.parallels = function(_) {
10119 return arguments.length ? m(phi0 = _[0] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi1 = _[1] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"]) : [phi0 * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"], phi1 * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"]];
10120 };
10121
10122 return p;
10123}
10124
10125
10126/***/ }),
10127
10128/***/ "./node_modules/d3-geo/src/projection/conicConformal.js":
10129/*!**************************************************************!*\
10130 !*** ./node_modules/d3-geo/src/projection/conicConformal.js ***!
10131 \**************************************************************/
10132/*! exports provided: conicConformalRaw, default */
10133/***/ (function(module, __webpack_exports__, __webpack_require__) {
10134
10135"use strict";
10136__webpack_require__.r(__webpack_exports__);
10137/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicConformalRaw", function() { return conicConformalRaw; });
10138/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10139/* harmony import */ var _conic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic */ "./node_modules/d3-geo/src/projection/conic.js");
10140/* harmony import */ var _mercator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mercator */ "./node_modules/d3-geo/src/projection/mercator.js");
10141
10142
10143
10144
10145function tany(y) {
10146 return Object(_math__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + y) / 2);
10147}
10148
10149function conicConformalRaw(y0, y1) {
10150 var cy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
10151 n = y0 === y1 ? Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0) : Object(_math__WEBPACK_IMPORTED_MODULE_0__["log"])(cy0 / Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y1)) / Object(_math__WEBPACK_IMPORTED_MODULE_0__["log"])(tany(y1) / tany(y0)),
10152 f = cy0 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["pow"])(tany(y0), n) / n;
10153
10154 if (!n) return _mercator__WEBPACK_IMPORTED_MODULE_2__["mercatorRaw"];
10155
10156 function project(x, y) {
10157 if (f > 0) { if (y < -_math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) y = -_math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]; }
10158 else { if (y > _math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] - _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) y = _math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] - _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]; }
10159 var r = f / Object(_math__WEBPACK_IMPORTED_MODULE_0__["pow"])(tany(y), n);
10160 return [r * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(n * x), f - r * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(n * x)];
10161 }
10162
10163 project.invert = function(x, y) {
10164 var fy = f - y, r = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sign"])(n) * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + fy * fy);
10165 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x, Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(fy)) / n * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sign"])(fy), 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["pow"])(f / r, 1 / n)) - _math__WEBPACK_IMPORTED_MODULE_0__["halfPi"]];
10166 };
10167
10168 return project;
10169}
10170
10171/* harmony default export */ __webpack_exports__["default"] = (function() {
10172 return Object(_conic__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicConformalRaw)
10173 .scale(109.5)
10174 .parallels([30, 30]);
10175});
10176
10177
10178/***/ }),
10179
10180/***/ "./node_modules/d3-geo/src/projection/conicEqualArea.js":
10181/*!**************************************************************!*\
10182 !*** ./node_modules/d3-geo/src/projection/conicEqualArea.js ***!
10183 \**************************************************************/
10184/*! exports provided: conicEqualAreaRaw, default */
10185/***/ (function(module, __webpack_exports__, __webpack_require__) {
10186
10187"use strict";
10188__webpack_require__.r(__webpack_exports__);
10189/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicEqualAreaRaw", function() { return conicEqualAreaRaw; });
10190/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10191/* harmony import */ var _conic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic */ "./node_modules/d3-geo/src/projection/conic.js");
10192/* harmony import */ var _cylindricalEqualArea__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cylindricalEqualArea */ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js");
10193
10194
10195
10196
10197function conicEqualAreaRaw(y0, y1) {
10198 var sy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0), n = (sy0 + Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y1)) / 2;
10199
10200 // Are the parallels symmetrical around the Equator?
10201 if (Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(n) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) return Object(_cylindricalEqualArea__WEBPACK_IMPORTED_MODULE_2__["cylindricalEqualAreaRaw"])(y0);
10202
10203 var c = 1 + sy0 * (2 * n - sy0), r0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(c) / n;
10204
10205 function project(x, y) {
10206 var r = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(c - 2 * n * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y)) / n;
10207 return [r * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x *= n), r0 - r * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x)];
10208 }
10209
10210 project.invert = function(x, y) {
10211 var r0y = r0 - y;
10212 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x, Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(r0y)) / n * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sign"])(r0y), Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
10213 };
10214
10215 return project;
10216}
10217
10218/* harmony default export */ __webpack_exports__["default"] = (function() {
10219 return Object(_conic__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicEqualAreaRaw)
10220 .scale(155.424)
10221 .center([0, 33.6442]);
10222});
10223
10224
10225/***/ }),
10226
10227/***/ "./node_modules/d3-geo/src/projection/conicEquidistant.js":
10228/*!****************************************************************!*\
10229 !*** ./node_modules/d3-geo/src/projection/conicEquidistant.js ***!
10230 \****************************************************************/
10231/*! exports provided: conicEquidistantRaw, default */
10232/***/ (function(module, __webpack_exports__, __webpack_require__) {
10233
10234"use strict";
10235__webpack_require__.r(__webpack_exports__);
10236/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicEquidistantRaw", function() { return conicEquidistantRaw; });
10237/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10238/* harmony import */ var _conic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic */ "./node_modules/d3-geo/src/projection/conic.js");
10239/* harmony import */ var _equirectangular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equirectangular */ "./node_modules/d3-geo/src/projection/equirectangular.js");
10240
10241
10242
10243
10244function conicEquidistantRaw(y0, y1) {
10245 var cy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
10246 n = y0 === y1 ? Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0) : (cy0 - Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y1)) / (y1 - y0),
10247 g = cy0 / n + y0;
10248
10249 if (Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(n) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) return _equirectangular__WEBPACK_IMPORTED_MODULE_2__["equirectangularRaw"];
10250
10251 function project(x, y) {
10252 var gy = g - y, nx = n * x;
10253 return [gy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(nx), g - gy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(nx)];
10254 }
10255
10256 project.invert = function(x, y) {
10257 var gy = g - y;
10258 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x, Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(gy)) / n * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sign"])(gy), g - Object(_math__WEBPACK_IMPORTED_MODULE_0__["sign"])(n) * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + gy * gy)];
10259 };
10260
10261 return project;
10262}
10263
10264/* harmony default export */ __webpack_exports__["default"] = (function() {
10265 return Object(_conic__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicEquidistantRaw)
10266 .scale(131.154)
10267 .center([0, 13.9389]);
10268});
10269
10270
10271/***/ }),
10272
10273/***/ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js":
10274/*!********************************************************************!*\
10275 !*** ./node_modules/d3-geo/src/projection/cylindricalEqualArea.js ***!
10276 \********************************************************************/
10277/*! exports provided: cylindricalEqualAreaRaw */
10278/***/ (function(module, __webpack_exports__, __webpack_require__) {
10279
10280"use strict";
10281__webpack_require__.r(__webpack_exports__);
10282/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cylindricalEqualAreaRaw", function() { return cylindricalEqualAreaRaw; });
10283/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10284
10285
10286function cylindricalEqualAreaRaw(phi0) {
10287 var cosPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi0);
10288
10289 function forward(lambda, phi) {
10290 return [lambda * cosPhi0, Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi) / cosPhi0];
10291 }
10292
10293 forward.invert = function(x, y) {
10294 return [x / cosPhi0, Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(y * cosPhi0)];
10295 };
10296
10297 return forward;
10298}
10299
10300
10301/***/ }),
10302
10303/***/ "./node_modules/d3-geo/src/projection/equalEarth.js":
10304/*!**********************************************************!*\
10305 !*** ./node_modules/d3-geo/src/projection/equalEarth.js ***!
10306 \**********************************************************/
10307/*! exports provided: equalEarthRaw, default */
10308/***/ (function(module, __webpack_exports__, __webpack_require__) {
10309
10310"use strict";
10311__webpack_require__.r(__webpack_exports__);
10312/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "equalEarthRaw", function() { return equalEarthRaw; });
10313/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10314/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10315
10316
10317
10318var A1 = 1.340264,
10319 A2 = -0.081106,
10320 A3 = 0.000893,
10321 A4 = 0.003796,
10322 M = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(3) / 2,
10323 iterations = 12;
10324
10325function equalEarthRaw(lambda, phi) {
10326 var l = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["asin"])(M * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi)), l2 = l * l, l6 = l2 * l2 * l2;
10327 return [
10328 lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),
10329 l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))
10330 ];
10331}
10332
10333equalEarthRaw.invert = function(x, y) {
10334 var l = y, l2 = l * l, l6 = l2 * l2 * l2;
10335 for (var i = 0, delta, fy, fpy; i < iterations; ++i) {
10336 fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;
10337 fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);
10338 l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;
10339 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(delta) < _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon2"]) break;
10340 }
10341 return [
10342 M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(l),
10343 Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["asin"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(l) / M)
10344 ];
10345};
10346
10347/* harmony default export */ __webpack_exports__["default"] = (function() {
10348 return Object(_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(equalEarthRaw)
10349 .scale(177.158);
10350});
10351
10352
10353/***/ }),
10354
10355/***/ "./node_modules/d3-geo/src/projection/equirectangular.js":
10356/*!***************************************************************!*\
10357 !*** ./node_modules/d3-geo/src/projection/equirectangular.js ***!
10358 \***************************************************************/
10359/*! exports provided: equirectangularRaw, default */
10360/***/ (function(module, __webpack_exports__, __webpack_require__) {
10361
10362"use strict";
10363__webpack_require__.r(__webpack_exports__);
10364/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "equirectangularRaw", function() { return equirectangularRaw; });
10365/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10366
10367
10368function equirectangularRaw(lambda, phi) {
10369 return [lambda, phi];
10370}
10371
10372equirectangularRaw.invert = equirectangularRaw;
10373
10374/* harmony default export */ __webpack_exports__["default"] = (function() {
10375 return Object(_index__WEBPACK_IMPORTED_MODULE_0__["default"])(equirectangularRaw)
10376 .scale(152.63);
10377});
10378
10379
10380/***/ }),
10381
10382/***/ "./node_modules/d3-geo/src/projection/fit.js":
10383/*!***************************************************!*\
10384 !*** ./node_modules/d3-geo/src/projection/fit.js ***!
10385 \***************************************************/
10386/*! exports provided: fitExtent, fitSize, fitWidth, fitHeight */
10387/***/ (function(module, __webpack_exports__, __webpack_require__) {
10388
10389"use strict";
10390__webpack_require__.r(__webpack_exports__);
10391/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitExtent", function() { return fitExtent; });
10392/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitSize", function() { return fitSize; });
10393/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitWidth", function() { return fitWidth; });
10394/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitHeight", function() { return fitHeight; });
10395/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stream */ "./node_modules/d3-geo/src/stream.js");
10396/* harmony import */ var _path_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../path/bounds */ "./node_modules/d3-geo/src/path/bounds.js");
10397
10398
10399
10400function fit(projection, fitBounds, object) {
10401 var clip = projection.clipExtent && projection.clipExtent();
10402 projection.scale(150).translate([0, 0]);
10403 if (clip != null) projection.clipExtent(null);
10404 Object(_stream__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projection.stream(_path_bounds__WEBPACK_IMPORTED_MODULE_1__["default"]));
10405 fitBounds(_path_bounds__WEBPACK_IMPORTED_MODULE_1__["default"].result());
10406 if (clip != null) projection.clipExtent(clip);
10407 return projection;
10408}
10409
10410function fitExtent(projection, extent, object) {
10411 return fit(projection, function(b) {
10412 var w = extent[1][0] - extent[0][0],
10413 h = extent[1][1] - extent[0][1],
10414 k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
10415 x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
10416 y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
10417 projection.scale(150 * k).translate([x, y]);
10418 }, object);
10419}
10420
10421function fitSize(projection, size, object) {
10422 return fitExtent(projection, [[0, 0], size], object);
10423}
10424
10425function fitWidth(projection, width, object) {
10426 return fit(projection, function(b) {
10427 var w = +width,
10428 k = w / (b[1][0] - b[0][0]),
10429 x = (w - k * (b[1][0] + b[0][0])) / 2,
10430 y = -k * b[0][1];
10431 projection.scale(150 * k).translate([x, y]);
10432 }, object);
10433}
10434
10435function fitHeight(projection, height, object) {
10436 return fit(projection, function(b) {
10437 var h = +height,
10438 k = h / (b[1][1] - b[0][1]),
10439 x = -k * b[0][0],
10440 y = (h - k * (b[1][1] + b[0][1])) / 2;
10441 projection.scale(150 * k).translate([x, y]);
10442 }, object);
10443}
10444
10445
10446/***/ }),
10447
10448/***/ "./node_modules/d3-geo/src/projection/gnomonic.js":
10449/*!********************************************************!*\
10450 !*** ./node_modules/d3-geo/src/projection/gnomonic.js ***!
10451 \********************************************************/
10452/*! exports provided: gnomonicRaw, default */
10453/***/ (function(module, __webpack_exports__, __webpack_require__) {
10454
10455"use strict";
10456__webpack_require__.r(__webpack_exports__);
10457/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "gnomonicRaw", function() { return gnomonicRaw; });
10458/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10459/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10460/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10461
10462
10463
10464
10465function gnomonicRaw(x, y) {
10466 var cy = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y), k = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x) * cy;
10467 return [cy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x) / k, Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y) / k];
10468}
10469
10470gnomonicRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(_math__WEBPACK_IMPORTED_MODULE_0__["atan"]);
10471
10472/* harmony default export */ __webpack_exports__["default"] = (function() {
10473 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(gnomonicRaw)
10474 .scale(144.049)
10475 .clipAngle(60);
10476});
10477
10478
10479/***/ }),
10480
10481/***/ "./node_modules/d3-geo/src/projection/identity.js":
10482/*!********************************************************!*\
10483 !*** ./node_modules/d3-geo/src/projection/identity.js ***!
10484 \********************************************************/
10485/*! exports provided: default */
10486/***/ (function(module, __webpack_exports__, __webpack_require__) {
10487
10488"use strict";
10489__webpack_require__.r(__webpack_exports__);
10490/* harmony import */ var _clip_rectangle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clip/rectangle */ "./node_modules/d3-geo/src/clip/rectangle.js");
10491/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../identity */ "./node_modules/d3-geo/src/identity.js");
10492/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transform */ "./node_modules/d3-geo/src/transform.js");
10493/* harmony import */ var _fit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit */ "./node_modules/d3-geo/src/projection/fit.js");
10494
10495
10496
10497
10498
10499function scaleTranslate(kx, ky, tx, ty) {
10500 return kx === 1 && ky === 1 && tx === 0 && ty === 0 ? _identity__WEBPACK_IMPORTED_MODULE_1__["default"] : Object(_transform__WEBPACK_IMPORTED_MODULE_2__["transformer"])({
10501 point: function(x, y) {
10502 this.stream.point(x * kx + tx, y * ky + ty);
10503 }
10504 });
10505}
10506
10507/* harmony default export */ __webpack_exports__["default"] = (function() {
10508 var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, transform = _identity__WEBPACK_IMPORTED_MODULE_1__["default"], // scale, translate and reflect
10509 x0 = null, y0, x1, y1, // clip extent
10510 postclip = _identity__WEBPACK_IMPORTED_MODULE_1__["default"],
10511 cache,
10512 cacheStream,
10513 projection;
10514
10515 function reset() {
10516 cache = cacheStream = null;
10517 return projection;
10518 }
10519
10520 return projection = {
10521 stream: function(stream) {
10522 return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));
10523 },
10524 postclip: function(_) {
10525 return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
10526 },
10527 clipExtent: function(_) {
10528 return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, _identity__WEBPACK_IMPORTED_MODULE_1__["default"]) : Object(_clip_rectangle__WEBPACK_IMPORTED_MODULE_0__["default"])(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
10529 },
10530 scale: function(_) {
10531 return arguments.length ? (transform = scaleTranslate((k = +_) * sx, k * sy, tx, ty), reset()) : k;
10532 },
10533 translate: function(_) {
10534 return arguments.length ? (transform = scaleTranslate(k * sx, k * sy, tx = +_[0], ty = +_[1]), reset()) : [tx, ty];
10535 },
10536 reflectX: function(_) {
10537 return arguments.length ? (transform = scaleTranslate(k * (sx = _ ? -1 : 1), k * sy, tx, ty), reset()) : sx < 0;
10538 },
10539 reflectY: function(_) {
10540 return arguments.length ? (transform = scaleTranslate(k * sx, k * (sy = _ ? -1 : 1), tx, ty), reset()) : sy < 0;
10541 },
10542 fitExtent: function(extent, object) {
10543 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitExtent"])(projection, extent, object);
10544 },
10545 fitSize: function(size, object) {
10546 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitSize"])(projection, size, object);
10547 },
10548 fitWidth: function(width, object) {
10549 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitWidth"])(projection, width, object);
10550 },
10551 fitHeight: function(height, object) {
10552 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitHeight"])(projection, height, object);
10553 }
10554 };
10555});
10556
10557
10558/***/ }),
10559
10560/***/ "./node_modules/d3-geo/src/projection/index.js":
10561/*!*****************************************************!*\
10562 !*** ./node_modules/d3-geo/src/projection/index.js ***!
10563 \*****************************************************/
10564/*! exports provided: default, projectionMutator */
10565/***/ (function(module, __webpack_exports__, __webpack_require__) {
10566
10567"use strict";
10568__webpack_require__.r(__webpack_exports__);
10569/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return projection; });
10570/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "projectionMutator", function() { return projectionMutator; });
10571/* harmony import */ var _clip_antimeridian__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clip/antimeridian */ "./node_modules/d3-geo/src/clip/antimeridian.js");
10572/* harmony import */ var _clip_circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../clip/circle */ "./node_modules/d3-geo/src/clip/circle.js");
10573/* harmony import */ var _clip_rectangle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../clip/rectangle */ "./node_modules/d3-geo/src/clip/rectangle.js");
10574/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../compose */ "./node_modules/d3-geo/src/compose.js");
10575/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../identity */ "./node_modules/d3-geo/src/identity.js");
10576/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10577/* harmony import */ var _rotation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../rotation */ "./node_modules/d3-geo/src/rotation.js");
10578/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../transform */ "./node_modules/d3-geo/src/transform.js");
10579/* harmony import */ var _fit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./fit */ "./node_modules/d3-geo/src/projection/fit.js");
10580/* harmony import */ var _resample__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./resample */ "./node_modules/d3-geo/src/projection/resample.js");
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592var transformRadians = Object(_transform__WEBPACK_IMPORTED_MODULE_7__["transformer"])({
10593 point: function(x, y) {
10594 this.stream.point(x * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], y * _math__WEBPACK_IMPORTED_MODULE_5__["radians"]);
10595 }
10596});
10597
10598function transformRotate(rotate) {
10599 return Object(_transform__WEBPACK_IMPORTED_MODULE_7__["transformer"])({
10600 point: function(x, y) {
10601 var r = rotate(x, y);
10602 return this.stream.point(r[0], r[1]);
10603 }
10604 });
10605}
10606
10607function scaleTranslate(k, dx, dy) {
10608 function transform(x, y) {
10609 return [dx + k * x, dy - k * y];
10610 }
10611 transform.invert = function(x, y) {
10612 return [(x - dx) / k, (dy - y) / k];
10613 };
10614 return transform;
10615}
10616
10617function scaleTranslateRotate(k, dx, dy, alpha) {
10618 var cosAlpha = Object(_math__WEBPACK_IMPORTED_MODULE_5__["cos"])(alpha),
10619 sinAlpha = Object(_math__WEBPACK_IMPORTED_MODULE_5__["sin"])(alpha),
10620 a = cosAlpha * k,
10621 b = sinAlpha * k,
10622 ai = cosAlpha / k,
10623 bi = sinAlpha / k,
10624 ci = (sinAlpha * dy - cosAlpha * dx) / k,
10625 fi = (sinAlpha * dx + cosAlpha * dy) / k;
10626 function transform(x, y) {
10627 return [a * x - b * y + dx, dy - b * x - a * y];
10628 }
10629 transform.invert = function(x, y) {
10630 return [ai * x - bi * y + ci, fi - bi * x - ai * y];
10631 };
10632 return transform;
10633}
10634
10635function projection(project) {
10636 return projectionMutator(function() { return project; })();
10637}
10638
10639function projectionMutator(projectAt) {
10640 var project,
10641 k = 150, // scale
10642 x = 480, y = 250, // translate
10643 lambda = 0, phi = 0, // center
10644 deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate
10645 alpha = 0, // post-rotate
10646 theta = null, preclip = _clip_antimeridian__WEBPACK_IMPORTED_MODULE_0__["default"], // pre-clip angle
10647 x0 = null, y0, x1, y1, postclip = _identity__WEBPACK_IMPORTED_MODULE_4__["default"], // post-clip extent
10648 delta2 = 0.5, // precision
10649 projectResample,
10650 projectTransform,
10651 projectRotateTransform,
10652 cache,
10653 cacheStream;
10654
10655 function projection(point) {
10656 return projectRotateTransform(point[0] * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], point[1] * _math__WEBPACK_IMPORTED_MODULE_5__["radians"]);
10657 }
10658
10659 function invert(point) {
10660 point = projectRotateTransform.invert(point[0], point[1]);
10661 return point && [point[0] * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"], point[1] * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"]];
10662 }
10663
10664 projection.stream = function(stream) {
10665 return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
10666 };
10667
10668 projection.preclip = function(_) {
10669 return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;
10670 };
10671
10672 projection.postclip = function(_) {
10673 return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
10674 };
10675
10676 projection.clipAngle = function(_) {
10677 return arguments.length ? (preclip = +_ ? Object(_clip_circle__WEBPACK_IMPORTED_MODULE_1__["default"])(theta = _ * _math__WEBPACK_IMPORTED_MODULE_5__["radians"]) : (theta = null, _clip_antimeridian__WEBPACK_IMPORTED_MODULE_0__["default"]), reset()) : theta * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"];
10678 };
10679
10680 projection.clipExtent = function(_) {
10681 return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, _identity__WEBPACK_IMPORTED_MODULE_4__["default"]) : Object(_clip_rectangle__WEBPACK_IMPORTED_MODULE_2__["default"])(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
10682 };
10683
10684 projection.scale = function(_) {
10685 return arguments.length ? (k = +_, recenter()) : k;
10686 };
10687
10688 projection.translate = function(_) {
10689 return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
10690 };
10691
10692 projection.center = function(_) {
10693 return arguments.length ? (lambda = _[0] % 360 * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], phi = _[1] % 360 * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], recenter()) : [lambda * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"], phi * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"]];
10694 };
10695
10696 projection.rotate = function(_) {
10697 return arguments.length ? (deltaLambda = _[0] % 360 * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], deltaPhi = _[1] % 360 * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], deltaGamma = _.length > 2 ? _[2] % 360 * _math__WEBPACK_IMPORTED_MODULE_5__["radians"] : 0, recenter()) : [deltaLambda * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"], deltaPhi * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"], deltaGamma * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"]];
10698 };
10699
10700 projection.angle = function(_) {
10701 return arguments.length ? (alpha = _ % 360 * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], recenter()) : alpha * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"];
10702 };
10703
10704 projection.precision = function(_) {
10705 return arguments.length ? (projectResample = Object(_resample__WEBPACK_IMPORTED_MODULE_9__["default"])(projectTransform, delta2 = _ * _), reset()) : Object(_math__WEBPACK_IMPORTED_MODULE_5__["sqrt"])(delta2);
10706 };
10707
10708 projection.fitExtent = function(extent, object) {
10709 return Object(_fit__WEBPACK_IMPORTED_MODULE_8__["fitExtent"])(projection, extent, object);
10710 };
10711
10712 projection.fitSize = function(size, object) {
10713 return Object(_fit__WEBPACK_IMPORTED_MODULE_8__["fitSize"])(projection, size, object);
10714 };
10715
10716 projection.fitWidth = function(width, object) {
10717 return Object(_fit__WEBPACK_IMPORTED_MODULE_8__["fitWidth"])(projection, width, object);
10718 };
10719
10720 projection.fitHeight = function(height, object) {
10721 return Object(_fit__WEBPACK_IMPORTED_MODULE_8__["fitHeight"])(projection, height, object);
10722 };
10723
10724 function recenter() {
10725 var center = scaleTranslateRotate(k, 0, 0, alpha).apply(null, project(lambda, phi)),
10726 transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], alpha);
10727 rotate = Object(_rotation__WEBPACK_IMPORTED_MODULE_6__["rotateRadians"])(deltaLambda, deltaPhi, deltaGamma);
10728 projectTransform = Object(_compose__WEBPACK_IMPORTED_MODULE_3__["default"])(project, transform);
10729 projectRotateTransform = Object(_compose__WEBPACK_IMPORTED_MODULE_3__["default"])(rotate, projectTransform);
10730 projectResample = Object(_resample__WEBPACK_IMPORTED_MODULE_9__["default"])(projectTransform, delta2);
10731 return reset();
10732 }
10733
10734 function reset() {
10735 cache = cacheStream = null;
10736 return projection;
10737 }
10738
10739 return function() {
10740 project = projectAt.apply(this, arguments);
10741 projection.invert = project.invert && invert;
10742 return recenter();
10743 };
10744}
10745
10746
10747/***/ }),
10748
10749/***/ "./node_modules/d3-geo/src/projection/mercator.js":
10750/*!********************************************************!*\
10751 !*** ./node_modules/d3-geo/src/projection/mercator.js ***!
10752 \********************************************************/
10753/*! exports provided: mercatorRaw, default, mercatorProjection */
10754/***/ (function(module, __webpack_exports__, __webpack_require__) {
10755
10756"use strict";
10757__webpack_require__.r(__webpack_exports__);
10758/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mercatorRaw", function() { return mercatorRaw; });
10759/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mercatorProjection", function() { return mercatorProjection; });
10760/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10761/* harmony import */ var _rotation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rotation */ "./node_modules/d3-geo/src/rotation.js");
10762/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10763
10764
10765
10766
10767function mercatorRaw(lambda, phi) {
10768 return [lambda, Object(_math__WEBPACK_IMPORTED_MODULE_0__["log"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + phi) / 2))];
10769}
10770
10771mercatorRaw.invert = function(x, y) {
10772 return [x, 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["exp"])(y)) - _math__WEBPACK_IMPORTED_MODULE_0__["halfPi"]];
10773};
10774
10775/* harmony default export */ __webpack_exports__["default"] = (function() {
10776 return mercatorProjection(mercatorRaw)
10777 .scale(961 / _math__WEBPACK_IMPORTED_MODULE_0__["tau"]);
10778});
10779
10780function mercatorProjection(project) {
10781 var m = Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(project),
10782 center = m.center,
10783 scale = m.scale,
10784 translate = m.translate,
10785 clipExtent = m.clipExtent,
10786 x0 = null, y0, x1, y1; // clip extent
10787
10788 m.scale = function(_) {
10789 return arguments.length ? (scale(_), reclip()) : scale();
10790 };
10791
10792 m.translate = function(_) {
10793 return arguments.length ? (translate(_), reclip()) : translate();
10794 };
10795
10796 m.center = function(_) {
10797 return arguments.length ? (center(_), reclip()) : center();
10798 };
10799
10800 m.clipExtent = function(_) {
10801 return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];
10802 };
10803
10804 function reclip() {
10805 var k = _math__WEBPACK_IMPORTED_MODULE_0__["pi"] * scale(),
10806 t = m(Object(_rotation__WEBPACK_IMPORTED_MODULE_1__["default"])(m.rotate()).invert([0, 0]));
10807 return clipExtent(x0 == null
10808 ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
10809 ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
10810 : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
10811 }
10812
10813 return reclip();
10814}
10815
10816
10817/***/ }),
10818
10819/***/ "./node_modules/d3-geo/src/projection/naturalEarth1.js":
10820/*!*************************************************************!*\
10821 !*** ./node_modules/d3-geo/src/projection/naturalEarth1.js ***!
10822 \*************************************************************/
10823/*! exports provided: naturalEarth1Raw, default */
10824/***/ (function(module, __webpack_exports__, __webpack_require__) {
10825
10826"use strict";
10827__webpack_require__.r(__webpack_exports__);
10828/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "naturalEarth1Raw", function() { return naturalEarth1Raw; });
10829/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10830/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10831
10832
10833
10834function naturalEarth1Raw(lambda, phi) {
10835 var phi2 = phi * phi, phi4 = phi2 * phi2;
10836 return [
10837 lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
10838 phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
10839 ];
10840}
10841
10842naturalEarth1Raw.invert = function(x, y) {
10843 var phi = y, i = 25, delta;
10844 do {
10845 var phi2 = phi * phi, phi4 = phi2 * phi2;
10846 phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
10847 (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
10848 } while (Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(delta) > _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"] && --i > 0);
10849 return [
10850 x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
10851 phi
10852 ];
10853};
10854
10855/* harmony default export */ __webpack_exports__["default"] = (function() {
10856 return Object(_index__WEBPACK_IMPORTED_MODULE_0__["default"])(naturalEarth1Raw)
10857 .scale(175.295);
10858});
10859
10860
10861/***/ }),
10862
10863/***/ "./node_modules/d3-geo/src/projection/orthographic.js":
10864/*!************************************************************!*\
10865 !*** ./node_modules/d3-geo/src/projection/orthographic.js ***!
10866 \************************************************************/
10867/*! exports provided: orthographicRaw, default */
10868/***/ (function(module, __webpack_exports__, __webpack_require__) {
10869
10870"use strict";
10871__webpack_require__.r(__webpack_exports__);
10872/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "orthographicRaw", function() { return orthographicRaw; });
10873/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10874/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10875/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10876
10877
10878
10879
10880function orthographicRaw(x, y) {
10881 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y) * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x), Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y)];
10882}
10883
10884orthographicRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(_math__WEBPACK_IMPORTED_MODULE_0__["asin"]);
10885
10886/* harmony default export */ __webpack_exports__["default"] = (function() {
10887 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(orthographicRaw)
10888 .scale(249.5)
10889 .clipAngle(90 + _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]);
10890});
10891
10892
10893/***/ }),
10894
10895/***/ "./node_modules/d3-geo/src/projection/resample.js":
10896/*!********************************************************!*\
10897 !*** ./node_modules/d3-geo/src/projection/resample.js ***!
10898 \********************************************************/
10899/*! exports provided: default */
10900/***/ (function(module, __webpack_exports__, __webpack_require__) {
10901
10902"use strict";
10903__webpack_require__.r(__webpack_exports__);
10904/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cartesian */ "./node_modules/d3-geo/src/cartesian.js");
10905/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10906/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transform */ "./node_modules/d3-geo/src/transform.js");
10907
10908
10909
10910
10911var maxDepth = 16, // maximum depth of subdivision
10912 cosMinDistance = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(30 * _math__WEBPACK_IMPORTED_MODULE_1__["radians"]); // cos(minimum angular distance)
10913
10914/* harmony default export */ __webpack_exports__["default"] = (function(project, delta2) {
10915 return +delta2 ? resample(project, delta2) : resampleNone(project);
10916});
10917
10918function resampleNone(project) {
10919 return Object(_transform__WEBPACK_IMPORTED_MODULE_2__["transformer"])({
10920 point: function(x, y) {
10921 x = project(x, y);
10922 this.stream.point(x[0], x[1]);
10923 }
10924 });
10925}
10926
10927function resample(project, delta2) {
10928
10929 function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
10930 var dx = x1 - x0,
10931 dy = y1 - y0,
10932 d2 = dx * dx + dy * dy;
10933 if (d2 > 4 * delta2 && depth--) {
10934 var a = a0 + a1,
10935 b = b0 + b1,
10936 c = c0 + c1,
10937 m = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(a * a + b * b + c * c),
10938 phi2 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["asin"])(c /= m),
10939 lambda2 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(c) - 1) < _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"] || Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda0 - lambda1) < _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? (lambda0 + lambda1) / 2 : Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(b, a),
10940 p = project(lambda2, phi2),
10941 x2 = p[0],
10942 y2 = p[1],
10943 dx2 = x2 - x0,
10944 dy2 = y2 - y0,
10945 dz = dy * dx2 - dx * dy2;
10946 if (dz * dz / d2 > delta2 // perpendicular projected distance
10947 || Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
10948 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
10949 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
10950 stream.point(x2, y2);
10951 resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
10952 }
10953 }
10954 }
10955 return function(stream) {
10956 var lambda00, x00, y00, a00, b00, c00, // first point
10957 lambda0, x0, y0, a0, b0, c0; // previous point
10958
10959 var resampleStream = {
10960 point: point,
10961 lineStart: lineStart,
10962 lineEnd: lineEnd,
10963 polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
10964 polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
10965 };
10966
10967 function point(x, y) {
10968 x = project(x, y);
10969 stream.point(x[0], x[1]);
10970 }
10971
10972 function lineStart() {
10973 x0 = NaN;
10974 resampleStream.point = linePoint;
10975 stream.lineStart();
10976 }
10977
10978 function linePoint(lambda, phi) {
10979 var c = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesian"])([lambda, phi]), p = project(lambda, phi);
10980 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
10981 stream.point(x0, y0);
10982 }
10983
10984 function lineEnd() {
10985 resampleStream.point = point;
10986 stream.lineEnd();
10987 }
10988
10989 function ringStart() {
10990 lineStart();
10991 resampleStream.point = ringPoint;
10992 resampleStream.lineEnd = ringEnd;
10993 }
10994
10995 function ringPoint(lambda, phi) {
10996 linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
10997 resampleStream.point = linePoint;
10998 }
10999
11000 function ringEnd() {
11001 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
11002 resampleStream.lineEnd = lineEnd;
11003 lineEnd();
11004 }
11005
11006 return resampleStream;
11007 };
11008}
11009
11010
11011/***/ }),
11012
11013/***/ "./node_modules/d3-geo/src/projection/stereographic.js":
11014/*!*************************************************************!*\
11015 !*** ./node_modules/d3-geo/src/projection/stereographic.js ***!
11016 \*************************************************************/
11017/*! exports provided: stereographicRaw, default */
11018/***/ (function(module, __webpack_exports__, __webpack_require__) {
11019
11020"use strict";
11021__webpack_require__.r(__webpack_exports__);
11022/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stereographicRaw", function() { return stereographicRaw; });
11023/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
11024/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
11025/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
11026
11027
11028
11029
11030function stereographicRaw(x, y) {
11031 var cy = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y), k = 1 + Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x) * cy;
11032 return [cy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x) / k, Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y) / k];
11033}
11034
11035stereographicRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
11036 return 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan"])(z);
11037});
11038
11039/* harmony default export */ __webpack_exports__["default"] = (function() {
11040 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(stereographicRaw)
11041 .scale(250)
11042 .clipAngle(142);
11043});
11044
11045
11046/***/ }),
11047
11048/***/ "./node_modules/d3-geo/src/projection/transverseMercator.js":
11049/*!******************************************************************!*\
11050 !*** ./node_modules/d3-geo/src/projection/transverseMercator.js ***!
11051 \******************************************************************/
11052/*! exports provided: transverseMercatorRaw, default */
11053/***/ (function(module, __webpack_exports__, __webpack_require__) {
11054
11055"use strict";
11056__webpack_require__.r(__webpack_exports__);
11057/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transverseMercatorRaw", function() { return transverseMercatorRaw; });
11058/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
11059/* harmony import */ var _mercator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mercator */ "./node_modules/d3-geo/src/projection/mercator.js");
11060
11061
11062
11063function transverseMercatorRaw(lambda, phi) {
11064 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["log"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + phi) / 2)), -lambda];
11065}
11066
11067transverseMercatorRaw.invert = function(x, y) {
11068 return [-y, 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["exp"])(x)) - _math__WEBPACK_IMPORTED_MODULE_0__["halfPi"]];
11069};
11070
11071/* harmony default export */ __webpack_exports__["default"] = (function() {
11072 var m = Object(_mercator__WEBPACK_IMPORTED_MODULE_1__["mercatorProjection"])(transverseMercatorRaw),
11073 center = m.center,
11074 rotate = m.rotate;
11075
11076 m.center = function(_) {
11077 return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
11078 };
11079
11080 m.rotate = function(_) {
11081 return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
11082 };
11083
11084 return rotate([0, 0, 90])
11085 .scale(159.155);
11086});
11087
11088
11089/***/ }),
11090
11091/***/ "./node_modules/d3-geo/src/rotation.js":
11092/*!*********************************************!*\
11093 !*** ./node_modules/d3-geo/src/rotation.js ***!
11094 \*********************************************/
11095/*! exports provided: rotateRadians, default */
11096/***/ (function(module, __webpack_exports__, __webpack_require__) {
11097
11098"use strict";
11099__webpack_require__.r(__webpack_exports__);
11100/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rotateRadians", function() { return rotateRadians; });
11101/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./compose */ "./node_modules/d3-geo/src/compose.js");
11102/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
11103
11104
11105
11106function rotationIdentity(lambda, phi) {
11107 return [Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda) > _math__WEBPACK_IMPORTED_MODULE_1__["pi"] ? lambda + Math.round(-lambda / _math__WEBPACK_IMPORTED_MODULE_1__["tau"]) * _math__WEBPACK_IMPORTED_MODULE_1__["tau"] : lambda, phi];
11108}
11109
11110rotationIdentity.invert = rotationIdentity;
11111
11112function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
11113 return (deltaLambda %= _math__WEBPACK_IMPORTED_MODULE_1__["tau"]) ? (deltaPhi || deltaGamma ? Object(_compose__WEBPACK_IMPORTED_MODULE_0__["default"])(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
11114 : rotationLambda(deltaLambda))
11115 : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
11116 : rotationIdentity);
11117}
11118
11119function forwardRotationLambda(deltaLambda) {
11120 return function(lambda, phi) {
11121 return lambda += deltaLambda, [lambda > _math__WEBPACK_IMPORTED_MODULE_1__["pi"] ? lambda - _math__WEBPACK_IMPORTED_MODULE_1__["tau"] : lambda < -_math__WEBPACK_IMPORTED_MODULE_1__["pi"] ? lambda + _math__WEBPACK_IMPORTED_MODULE_1__["tau"] : lambda, phi];
11122 };
11123}
11124
11125function rotationLambda(deltaLambda) {
11126 var rotation = forwardRotationLambda(deltaLambda);
11127 rotation.invert = forwardRotationLambda(-deltaLambda);
11128 return rotation;
11129}
11130
11131function rotationPhiGamma(deltaPhi, deltaGamma) {
11132 var cosDeltaPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(deltaPhi),
11133 sinDeltaPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(deltaPhi),
11134 cosDeltaGamma = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(deltaGamma),
11135 sinDeltaGamma = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(deltaGamma);
11136
11137 function rotation(lambda, phi) {
11138 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
11139 x = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(lambda) * cosPhi,
11140 y = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda) * cosPhi,
11141 z = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
11142 k = z * cosDeltaPhi + x * sinDeltaPhi;
11143 return [
11144 Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
11145 Object(_math__WEBPACK_IMPORTED_MODULE_1__["asin"])(k * cosDeltaGamma + y * sinDeltaGamma)
11146 ];
11147 }
11148
11149 rotation.invert = function(lambda, phi) {
11150 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
11151 x = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(lambda) * cosPhi,
11152 y = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda) * cosPhi,
11153 z = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
11154 k = z * cosDeltaGamma - y * sinDeltaGamma;
11155 return [
11156 Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
11157 Object(_math__WEBPACK_IMPORTED_MODULE_1__["asin"])(k * cosDeltaPhi - x * sinDeltaPhi)
11158 ];
11159 };
11160
11161 return rotation;
11162}
11163
11164/* harmony default export */ __webpack_exports__["default"] = (function(rotate) {
11165 rotate = rotateRadians(rotate[0] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"], rotate[1] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"], rotate.length > 2 ? rotate[2] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"] : 0);
11166
11167 function forward(coordinates) {
11168 coordinates = rotate(coordinates[0] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"], coordinates[1] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"]);
11169 return coordinates[0] *= _math__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates[1] *= _math__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates;
11170 }
11171
11172 forward.invert = function(coordinates) {
11173 coordinates = rotate.invert(coordinates[0] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"], coordinates[1] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"]);
11174 return coordinates[0] *= _math__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates[1] *= _math__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates;
11175 };
11176
11177 return forward;
11178});
11179
11180
11181/***/ }),
11182
11183/***/ "./node_modules/d3-geo/src/stream.js":
11184/*!*******************************************!*\
11185 !*** ./node_modules/d3-geo/src/stream.js ***!
11186 \*******************************************/
11187/*! exports provided: default */
11188/***/ (function(module, __webpack_exports__, __webpack_require__) {
11189
11190"use strict";
11191__webpack_require__.r(__webpack_exports__);
11192function streamGeometry(geometry, stream) {
11193 if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
11194 streamGeometryType[geometry.type](geometry, stream);
11195 }
11196}
11197
11198var streamObjectType = {
11199 Feature: function(object, stream) {
11200 streamGeometry(object.geometry, stream);
11201 },
11202 FeatureCollection: function(object, stream) {
11203 var features = object.features, i = -1, n = features.length;
11204 while (++i < n) streamGeometry(features[i].geometry, stream);
11205 }
11206};
11207
11208var streamGeometryType = {
11209 Sphere: function(object, stream) {
11210 stream.sphere();
11211 },
11212 Point: function(object, stream) {
11213 object = object.coordinates;
11214 stream.point(object[0], object[1], object[2]);
11215 },
11216 MultiPoint: function(object, stream) {
11217 var coordinates = object.coordinates, i = -1, n = coordinates.length;
11218 while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
11219 },
11220 LineString: function(object, stream) {
11221 streamLine(object.coordinates, stream, 0);
11222 },
11223 MultiLineString: function(object, stream) {
11224 var coordinates = object.coordinates, i = -1, n = coordinates.length;
11225 while (++i < n) streamLine(coordinates[i], stream, 0);
11226 },
11227 Polygon: function(object, stream) {
11228 streamPolygon(object.coordinates, stream);
11229 },
11230 MultiPolygon: function(object, stream) {
11231 var coordinates = object.coordinates, i = -1, n = coordinates.length;
11232 while (++i < n) streamPolygon(coordinates[i], stream);
11233 },
11234 GeometryCollection: function(object, stream) {
11235 var geometries = object.geometries, i = -1, n = geometries.length;
11236 while (++i < n) streamGeometry(geometries[i], stream);
11237 }
11238};
11239
11240function streamLine(coordinates, stream, closed) {
11241 var i = -1, n = coordinates.length - closed, coordinate;
11242 stream.lineStart();
11243 while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
11244 stream.lineEnd();
11245}
11246
11247function streamPolygon(coordinates, stream) {
11248 var i = -1, n = coordinates.length;
11249 stream.polygonStart();
11250 while (++i < n) streamLine(coordinates[i], stream, 1);
11251 stream.polygonEnd();
11252}
11253
11254/* harmony default export */ __webpack_exports__["default"] = (function(object, stream) {
11255 if (object && streamObjectType.hasOwnProperty(object.type)) {
11256 streamObjectType[object.type](object, stream);
11257 } else {
11258 streamGeometry(object, stream);
11259 }
11260});
11261
11262
11263/***/ }),
11264
11265/***/ "./node_modules/d3-geo/src/transform.js":
11266/*!**********************************************!*\
11267 !*** ./node_modules/d3-geo/src/transform.js ***!
11268 \**********************************************/
11269/*! exports provided: default, transformer */
11270/***/ (function(module, __webpack_exports__, __webpack_require__) {
11271
11272"use strict";
11273__webpack_require__.r(__webpack_exports__);
11274/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformer", function() { return transformer; });
11275/* harmony default export */ __webpack_exports__["default"] = (function(methods) {
11276 return {
11277 stream: transformer(methods)
11278 };
11279});
11280
11281function transformer(methods) {
11282 return function(stream) {
11283 var s = new TransformStream;
11284 for (var key in methods) s[key] = methods[key];
11285 s.stream = stream;
11286 return s;
11287 };
11288}
11289
11290function TransformStream() {}
11291
11292TransformStream.prototype = {
11293 constructor: TransformStream,
11294 point: function(x, y) { this.stream.point(x, y); },
11295 sphere: function() { this.stream.sphere(); },
11296 lineStart: function() { this.stream.lineStart(); },
11297 lineEnd: function() { this.stream.lineEnd(); },
11298 polygonStart: function() { this.stream.polygonStart(); },
11299 polygonEnd: function() { this.stream.polygonEnd(); }
11300};
11301
11302
11303/***/ }),
11304
11305/***/ "./node_modules/d3-hierarchy/src/accessors.js":
11306/*!****************************************************!*\
11307 !*** ./node_modules/d3-hierarchy/src/accessors.js ***!
11308 \****************************************************/
11309/*! exports provided: optional, required */
11310/***/ (function(module, __webpack_exports__, __webpack_require__) {
11311
11312"use strict";
11313__webpack_require__.r(__webpack_exports__);
11314/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "optional", function() { return optional; });
11315/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "required", function() { return required; });
11316function optional(f) {
11317 return f == null ? null : required(f);
11318}
11319
11320function required(f) {
11321 if (typeof f !== "function") throw new Error;
11322 return f;
11323}
11324
11325
11326/***/ }),
11327
11328/***/ "./node_modules/d3-hierarchy/src/array.js":
11329/*!************************************************!*\
11330 !*** ./node_modules/d3-hierarchy/src/array.js ***!
11331 \************************************************/
11332/*! exports provided: slice, shuffle */
11333/***/ (function(module, __webpack_exports__, __webpack_require__) {
11334
11335"use strict";
11336__webpack_require__.r(__webpack_exports__);
11337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
11338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return shuffle; });
11339var slice = Array.prototype.slice;
11340
11341function shuffle(array) {
11342 var m = array.length,
11343 t,
11344 i;
11345
11346 while (m) {
11347 i = Math.random() * m-- | 0;
11348 t = array[m];
11349 array[m] = array[i];
11350 array[i] = t;
11351 }
11352
11353 return array;
11354}
11355
11356
11357/***/ }),
11358
11359/***/ "./node_modules/d3-hierarchy/src/cluster.js":
11360/*!**************************************************!*\
11361 !*** ./node_modules/d3-hierarchy/src/cluster.js ***!
11362 \**************************************************/
11363/*! exports provided: default */
11364/***/ (function(module, __webpack_exports__, __webpack_require__) {
11365
11366"use strict";
11367__webpack_require__.r(__webpack_exports__);
11368function defaultSeparation(a, b) {
11369 return a.parent === b.parent ? 1 : 2;
11370}
11371
11372function meanX(children) {
11373 return children.reduce(meanXReduce, 0) / children.length;
11374}
11375
11376function meanXReduce(x, c) {
11377 return x + c.x;
11378}
11379
11380function maxY(children) {
11381 return 1 + children.reduce(maxYReduce, 0);
11382}
11383
11384function maxYReduce(y, c) {
11385 return Math.max(y, c.y);
11386}
11387
11388function leafLeft(node) {
11389 var children;
11390 while (children = node.children) node = children[0];
11391 return node;
11392}
11393
11394function leafRight(node) {
11395 var children;
11396 while (children = node.children) node = children[children.length - 1];
11397 return node;
11398}
11399
11400/* harmony default export */ __webpack_exports__["default"] = (function() {
11401 var separation = defaultSeparation,
11402 dx = 1,
11403 dy = 1,
11404 nodeSize = false;
11405
11406 function cluster(root) {
11407 var previousNode,
11408 x = 0;
11409
11410 // First walk, computing the initial x & y values.
11411 root.eachAfter(function(node) {
11412 var children = node.children;
11413 if (children) {
11414 node.x = meanX(children);
11415 node.y = maxY(children);
11416 } else {
11417 node.x = previousNode ? x += separation(node, previousNode) : 0;
11418 node.y = 0;
11419 previousNode = node;
11420 }
11421 });
11422
11423 var left = leafLeft(root),
11424 right = leafRight(root),
11425 x0 = left.x - separation(left, right) / 2,
11426 x1 = right.x + separation(right, left) / 2;
11427
11428 // Second walk, normalizing x & y to the desired size.
11429 return root.eachAfter(nodeSize ? function(node) {
11430 node.x = (node.x - root.x) * dx;
11431 node.y = (root.y - node.y) * dy;
11432 } : function(node) {
11433 node.x = (node.x - x0) / (x1 - x0) * dx;
11434 node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;
11435 });
11436 }
11437
11438 cluster.separation = function(x) {
11439 return arguments.length ? (separation = x, cluster) : separation;
11440 };
11441
11442 cluster.size = function(x) {
11443 return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);
11444 };
11445
11446 cluster.nodeSize = function(x) {
11447 return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);
11448 };
11449
11450 return cluster;
11451});
11452
11453
11454/***/ }),
11455
11456/***/ "./node_modules/d3-hierarchy/src/constant.js":
11457/*!***************************************************!*\
11458 !*** ./node_modules/d3-hierarchy/src/constant.js ***!
11459 \***************************************************/
11460/*! exports provided: constantZero, default */
11461/***/ (function(module, __webpack_exports__, __webpack_require__) {
11462
11463"use strict";
11464__webpack_require__.r(__webpack_exports__);
11465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "constantZero", function() { return constantZero; });
11466function constantZero() {
11467 return 0;
11468}
11469
11470/* harmony default export */ __webpack_exports__["default"] = (function(x) {
11471 return function() {
11472 return x;
11473 };
11474});
11475
11476
11477/***/ }),
11478
11479/***/ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js":
11480/*!**************************************************************!*\
11481 !*** ./node_modules/d3-hierarchy/src/hierarchy/ancestors.js ***!
11482 \**************************************************************/
11483/*! exports provided: default */
11484/***/ (function(module, __webpack_exports__, __webpack_require__) {
11485
11486"use strict";
11487__webpack_require__.r(__webpack_exports__);
11488/* harmony default export */ __webpack_exports__["default"] = (function() {
11489 var node = this, nodes = [node];
11490 while (node = node.parent) {
11491 nodes.push(node);
11492 }
11493 return nodes;
11494});
11495
11496
11497/***/ }),
11498
11499/***/ "./node_modules/d3-hierarchy/src/hierarchy/count.js":
11500/*!**********************************************************!*\
11501 !*** ./node_modules/d3-hierarchy/src/hierarchy/count.js ***!
11502 \**********************************************************/
11503/*! exports provided: default */
11504/***/ (function(module, __webpack_exports__, __webpack_require__) {
11505
11506"use strict";
11507__webpack_require__.r(__webpack_exports__);
11508function count(node) {
11509 var sum = 0,
11510 children = node.children,
11511 i = children && children.length;
11512 if (!i) sum = 1;
11513 else while (--i >= 0) sum += children[i].value;
11514 node.value = sum;
11515}
11516
11517/* harmony default export */ __webpack_exports__["default"] = (function() {
11518 return this.eachAfter(count);
11519});
11520
11521
11522/***/ }),
11523
11524/***/ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js":
11525/*!****************************************************************!*\
11526 !*** ./node_modules/d3-hierarchy/src/hierarchy/descendants.js ***!
11527 \****************************************************************/
11528/*! exports provided: default */
11529/***/ (function(module, __webpack_exports__, __webpack_require__) {
11530
11531"use strict";
11532__webpack_require__.r(__webpack_exports__);
11533/* harmony default export */ __webpack_exports__["default"] = (function() {
11534 var nodes = [];
11535 this.each(function(node) {
11536 nodes.push(node);
11537 });
11538 return nodes;
11539});
11540
11541
11542/***/ }),
11543
11544/***/ "./node_modules/d3-hierarchy/src/hierarchy/each.js":
11545/*!*********************************************************!*\
11546 !*** ./node_modules/d3-hierarchy/src/hierarchy/each.js ***!
11547 \*********************************************************/
11548/*! exports provided: default */
11549/***/ (function(module, __webpack_exports__, __webpack_require__) {
11550
11551"use strict";
11552__webpack_require__.r(__webpack_exports__);
11553/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
11554 var node = this, current, next = [node], children, i, n;
11555 do {
11556 current = next.reverse(), next = [];
11557 while (node = current.pop()) {
11558 callback(node), children = node.children;
11559 if (children) for (i = 0, n = children.length; i < n; ++i) {
11560 next.push(children[i]);
11561 }
11562 }
11563 } while (next.length);
11564 return this;
11565});
11566
11567
11568/***/ }),
11569
11570/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js":
11571/*!**************************************************************!*\
11572 !*** ./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js ***!
11573 \**************************************************************/
11574/*! exports provided: default */
11575/***/ (function(module, __webpack_exports__, __webpack_require__) {
11576
11577"use strict";
11578__webpack_require__.r(__webpack_exports__);
11579/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
11580 var node = this, nodes = [node], next = [], children, i, n;
11581 while (node = nodes.pop()) {
11582 next.push(node), children = node.children;
11583 if (children) for (i = 0, n = children.length; i < n; ++i) {
11584 nodes.push(children[i]);
11585 }
11586 }
11587 while (node = next.pop()) {
11588 callback(node);
11589 }
11590 return this;
11591});
11592
11593
11594/***/ }),
11595
11596/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js":
11597/*!***************************************************************!*\
11598 !*** ./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js ***!
11599 \***************************************************************/
11600/*! exports provided: default */
11601/***/ (function(module, __webpack_exports__, __webpack_require__) {
11602
11603"use strict";
11604__webpack_require__.r(__webpack_exports__);
11605/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
11606 var node = this, nodes = [node], children, i;
11607 while (node = nodes.pop()) {
11608 callback(node), children = node.children;
11609 if (children) for (i = children.length - 1; i >= 0; --i) {
11610 nodes.push(children[i]);
11611 }
11612 }
11613 return this;
11614});
11615
11616
11617/***/ }),
11618
11619/***/ "./node_modules/d3-hierarchy/src/hierarchy/index.js":
11620/*!**********************************************************!*\
11621 !*** ./node_modules/d3-hierarchy/src/hierarchy/index.js ***!
11622 \**********************************************************/
11623/*! exports provided: default, computeHeight, Node */
11624/***/ (function(module, __webpack_exports__, __webpack_require__) {
11625
11626"use strict";
11627__webpack_require__.r(__webpack_exports__);
11628/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return hierarchy; });
11629/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeHeight", function() { return computeHeight; });
11630/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Node", function() { return Node; });
11631/* harmony import */ var _count__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./count */ "./node_modules/d3-hierarchy/src/hierarchy/count.js");
11632/* harmony import */ var _each__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each */ "./node_modules/d3-hierarchy/src/hierarchy/each.js");
11633/* harmony import */ var _eachBefore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./eachBefore */ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js");
11634/* harmony import */ var _eachAfter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eachAfter */ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js");
11635/* harmony import */ var _sum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sum */ "./node_modules/d3-hierarchy/src/hierarchy/sum.js");
11636/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sort */ "./node_modules/d3-hierarchy/src/hierarchy/sort.js");
11637/* harmony import */ var _path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./path */ "./node_modules/d3-hierarchy/src/hierarchy/path.js");
11638/* harmony import */ var _ancestors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ancestors */ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js");
11639/* harmony import */ var _descendants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./descendants */ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js");
11640/* harmony import */ var _leaves__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./leaves */ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js");
11641/* harmony import */ var _links__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./links */ "./node_modules/d3-hierarchy/src/hierarchy/links.js");
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654function hierarchy(data, children) {
11655 var root = new Node(data),
11656 valued = +data.value && (root.value = data.value),
11657 node,
11658 nodes = [root],
11659 child,
11660 childs,
11661 i,
11662 n;
11663
11664 if (children == null) children = defaultChildren;
11665
11666 while (node = nodes.pop()) {
11667 if (valued) node.value = +node.data.value;
11668 if ((childs = children(node.data)) && (n = childs.length)) {
11669 node.children = new Array(n);
11670 for (i = n - 1; i >= 0; --i) {
11671 nodes.push(child = node.children[i] = new Node(childs[i]));
11672 child.parent = node;
11673 child.depth = node.depth + 1;
11674 }
11675 }
11676 }
11677
11678 return root.eachBefore(computeHeight);
11679}
11680
11681function node_copy() {
11682 return hierarchy(this).eachBefore(copyData);
11683}
11684
11685function defaultChildren(d) {
11686 return d.children;
11687}
11688
11689function copyData(node) {
11690 node.data = node.data.data;
11691}
11692
11693function computeHeight(node) {
11694 var height = 0;
11695 do node.height = height;
11696 while ((node = node.parent) && (node.height < ++height));
11697}
11698
11699function Node(data) {
11700 this.data = data;
11701 this.depth =
11702 this.height = 0;
11703 this.parent = null;
11704}
11705
11706Node.prototype = hierarchy.prototype = {
11707 constructor: Node,
11708 count: _count__WEBPACK_IMPORTED_MODULE_0__["default"],
11709 each: _each__WEBPACK_IMPORTED_MODULE_1__["default"],
11710 eachAfter: _eachAfter__WEBPACK_IMPORTED_MODULE_3__["default"],
11711 eachBefore: _eachBefore__WEBPACK_IMPORTED_MODULE_2__["default"],
11712 sum: _sum__WEBPACK_IMPORTED_MODULE_4__["default"],
11713 sort: _sort__WEBPACK_IMPORTED_MODULE_5__["default"],
11714 path: _path__WEBPACK_IMPORTED_MODULE_6__["default"],
11715 ancestors: _ancestors__WEBPACK_IMPORTED_MODULE_7__["default"],
11716 descendants: _descendants__WEBPACK_IMPORTED_MODULE_8__["default"],
11717 leaves: _leaves__WEBPACK_IMPORTED_MODULE_9__["default"],
11718 links: _links__WEBPACK_IMPORTED_MODULE_10__["default"],
11719 copy: node_copy
11720};
11721
11722
11723/***/ }),
11724
11725/***/ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js":
11726/*!***********************************************************!*\
11727 !*** ./node_modules/d3-hierarchy/src/hierarchy/leaves.js ***!
11728 \***********************************************************/
11729/*! exports provided: default */
11730/***/ (function(module, __webpack_exports__, __webpack_require__) {
11731
11732"use strict";
11733__webpack_require__.r(__webpack_exports__);
11734/* harmony default export */ __webpack_exports__["default"] = (function() {
11735 var leaves = [];
11736 this.eachBefore(function(node) {
11737 if (!node.children) {
11738 leaves.push(node);
11739 }
11740 });
11741 return leaves;
11742});
11743
11744
11745/***/ }),
11746
11747/***/ "./node_modules/d3-hierarchy/src/hierarchy/links.js":
11748/*!**********************************************************!*\
11749 !*** ./node_modules/d3-hierarchy/src/hierarchy/links.js ***!
11750 \**********************************************************/
11751/*! exports provided: default */
11752/***/ (function(module, __webpack_exports__, __webpack_require__) {
11753
11754"use strict";
11755__webpack_require__.r(__webpack_exports__);
11756/* harmony default export */ __webpack_exports__["default"] = (function() {
11757 var root = this, links = [];
11758 root.each(function(node) {
11759 if (node !== root) { // Don’t include the root’s parent, if any.
11760 links.push({source: node.parent, target: node});
11761 }
11762 });
11763 return links;
11764});
11765
11766
11767/***/ }),
11768
11769/***/ "./node_modules/d3-hierarchy/src/hierarchy/path.js":
11770/*!*********************************************************!*\
11771 !*** ./node_modules/d3-hierarchy/src/hierarchy/path.js ***!
11772 \*********************************************************/
11773/*! exports provided: default */
11774/***/ (function(module, __webpack_exports__, __webpack_require__) {
11775
11776"use strict";
11777__webpack_require__.r(__webpack_exports__);
11778/* harmony default export */ __webpack_exports__["default"] = (function(end) {
11779 var start = this,
11780 ancestor = leastCommonAncestor(start, end),
11781 nodes = [start];
11782 while (start !== ancestor) {
11783 start = start.parent;
11784 nodes.push(start);
11785 }
11786 var k = nodes.length;
11787 while (end !== ancestor) {
11788 nodes.splice(k, 0, end);
11789 end = end.parent;
11790 }
11791 return nodes;
11792});
11793
11794function leastCommonAncestor(a, b) {
11795 if (a === b) return a;
11796 var aNodes = a.ancestors(),
11797 bNodes = b.ancestors(),
11798 c = null;
11799 a = aNodes.pop();
11800 b = bNodes.pop();
11801 while (a === b) {
11802 c = a;
11803 a = aNodes.pop();
11804 b = bNodes.pop();
11805 }
11806 return c;
11807}
11808
11809
11810/***/ }),
11811
11812/***/ "./node_modules/d3-hierarchy/src/hierarchy/sort.js":
11813/*!*********************************************************!*\
11814 !*** ./node_modules/d3-hierarchy/src/hierarchy/sort.js ***!
11815 \*********************************************************/
11816/*! exports provided: default */
11817/***/ (function(module, __webpack_exports__, __webpack_require__) {
11818
11819"use strict";
11820__webpack_require__.r(__webpack_exports__);
11821/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
11822 return this.eachBefore(function(node) {
11823 if (node.children) {
11824 node.children.sort(compare);
11825 }
11826 });
11827});
11828
11829
11830/***/ }),
11831
11832/***/ "./node_modules/d3-hierarchy/src/hierarchy/sum.js":
11833/*!********************************************************!*\
11834 !*** ./node_modules/d3-hierarchy/src/hierarchy/sum.js ***!
11835 \********************************************************/
11836/*! exports provided: default */
11837/***/ (function(module, __webpack_exports__, __webpack_require__) {
11838
11839"use strict";
11840__webpack_require__.r(__webpack_exports__);
11841/* harmony default export */ __webpack_exports__["default"] = (function(value) {
11842 return this.eachAfter(function(node) {
11843 var sum = +value(node.data) || 0,
11844 children = node.children,
11845 i = children && children.length;
11846 while (--i >= 0) sum += children[i].value;
11847 node.value = sum;
11848 });
11849});
11850
11851
11852/***/ }),
11853
11854/***/ "./node_modules/d3-hierarchy/src/index.js":
11855/*!************************************************!*\
11856 !*** ./node_modules/d3-hierarchy/src/index.js ***!
11857 \************************************************/
11858/*! exports provided: cluster, hierarchy, pack, packSiblings, packEnclose, partition, stratify, tree, treemap, treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify */
11859/***/ (function(module, __webpack_exports__, __webpack_require__) {
11860
11861"use strict";
11862__webpack_require__.r(__webpack_exports__);
11863/* harmony import */ var _cluster__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cluster */ "./node_modules/d3-hierarchy/src/cluster.js");
11864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cluster", function() { return _cluster__WEBPACK_IMPORTED_MODULE_0__["default"]; });
11865
11866/* harmony import */ var _hierarchy_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hierarchy/index */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
11867/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hierarchy", function() { return _hierarchy_index__WEBPACK_IMPORTED_MODULE_1__["default"]; });
11868
11869/* harmony import */ var _pack_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pack/index */ "./node_modules/d3-hierarchy/src/pack/index.js");
11870/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pack", function() { return _pack_index__WEBPACK_IMPORTED_MODULE_2__["default"]; });
11871
11872/* harmony import */ var _pack_siblings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pack/siblings */ "./node_modules/d3-hierarchy/src/pack/siblings.js");
11873/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packSiblings", function() { return _pack_siblings__WEBPACK_IMPORTED_MODULE_3__["default"]; });
11874
11875/* harmony import */ var _pack_enclose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pack/enclose */ "./node_modules/d3-hierarchy/src/pack/enclose.js");
11876/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return _pack_enclose__WEBPACK_IMPORTED_MODULE_4__["default"]; });
11877
11878/* harmony import */ var _partition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./partition */ "./node_modules/d3-hierarchy/src/partition.js");
11879/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _partition__WEBPACK_IMPORTED_MODULE_5__["default"]; });
11880
11881/* harmony import */ var _stratify__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./stratify */ "./node_modules/d3-hierarchy/src/stratify.js");
11882/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stratify", function() { return _stratify__WEBPACK_IMPORTED_MODULE_6__["default"]; });
11883
11884/* harmony import */ var _tree__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tree */ "./node_modules/d3-hierarchy/src/tree.js");
11885/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tree", function() { return _tree__WEBPACK_IMPORTED_MODULE_7__["default"]; });
11886
11887/* harmony import */ var _treemap_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./treemap/index */ "./node_modules/d3-hierarchy/src/treemap/index.js");
11888/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemap", function() { return _treemap_index__WEBPACK_IMPORTED_MODULE_8__["default"]; });
11889
11890/* harmony import */ var _treemap_binary__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./treemap/binary */ "./node_modules/d3-hierarchy/src/treemap/binary.js");
11891/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapBinary", function() { return _treemap_binary__WEBPACK_IMPORTED_MODULE_9__["default"]; });
11892
11893/* harmony import */ var _treemap_dice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./treemap/dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
11894/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapDice", function() { return _treemap_dice__WEBPACK_IMPORTED_MODULE_10__["default"]; });
11895
11896/* harmony import */ var _treemap_slice__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./treemap/slice */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
11897/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSlice", function() { return _treemap_slice__WEBPACK_IMPORTED_MODULE_11__["default"]; });
11898
11899/* harmony import */ var _treemap_sliceDice__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./treemap/sliceDice */ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js");
11900/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSliceDice", function() { return _treemap_sliceDice__WEBPACK_IMPORTED_MODULE_12__["default"]; });
11901
11902/* harmony import */ var _treemap_squarify__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./treemap/squarify */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
11903/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSquarify", function() { return _treemap_squarify__WEBPACK_IMPORTED_MODULE_13__["default"]; });
11904
11905/* harmony import */ var _treemap_resquarify__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./treemap/resquarify */ "./node_modules/d3-hierarchy/src/treemap/resquarify.js");
11906/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapResquarify", function() { return _treemap_resquarify__WEBPACK_IMPORTED_MODULE_14__["default"]; });
11907
11908
11909
11910
11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925/***/ }),
11926
11927/***/ "./node_modules/d3-hierarchy/src/pack/enclose.js":
11928/*!*******************************************************!*\
11929 !*** ./node_modules/d3-hierarchy/src/pack/enclose.js ***!
11930 \*******************************************************/
11931/*! exports provided: default */
11932/***/ (function(module, __webpack_exports__, __webpack_require__) {
11933
11934"use strict";
11935__webpack_require__.r(__webpack_exports__);
11936/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array */ "./node_modules/d3-hierarchy/src/array.js");
11937
11938
11939/* harmony default export */ __webpack_exports__["default"] = (function(circles) {
11940 var i = 0, n = (circles = Object(_array__WEBPACK_IMPORTED_MODULE_0__["shuffle"])(_array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(circles))).length, B = [], p, e;
11941
11942 while (i < n) {
11943 p = circles[i];
11944 if (e && enclosesWeak(e, p)) ++i;
11945 else e = encloseBasis(B = extendBasis(B, p)), i = 0;
11946 }
11947
11948 return e;
11949});
11950
11951function extendBasis(B, p) {
11952 var i, j;
11953
11954 if (enclosesWeakAll(p, B)) return [p];
11955
11956 // If we get here then B must have at least one element.
11957 for (i = 0; i < B.length; ++i) {
11958 if (enclosesNot(p, B[i])
11959 && enclosesWeakAll(encloseBasis2(B[i], p), B)) {
11960 return [B[i], p];
11961 }
11962 }
11963
11964 // If we get here then B must have at least two elements.
11965 for (i = 0; i < B.length - 1; ++i) {
11966 for (j = i + 1; j < B.length; ++j) {
11967 if (enclosesNot(encloseBasis2(B[i], B[j]), p)
11968 && enclosesNot(encloseBasis2(B[i], p), B[j])
11969 && enclosesNot(encloseBasis2(B[j], p), B[i])
11970 && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {
11971 return [B[i], B[j], p];
11972 }
11973 }
11974 }
11975
11976 // If we get here then something is very wrong.
11977 throw new Error;
11978}
11979
11980function enclosesNot(a, b) {
11981 var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;
11982 return dr < 0 || dr * dr < dx * dx + dy * dy;
11983}
11984
11985function enclosesWeak(a, b) {
11986 var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;
11987 return dr > 0 && dr * dr > dx * dx + dy * dy;
11988}
11989
11990function enclosesWeakAll(a, B) {
11991 for (var i = 0; i < B.length; ++i) {
11992 if (!enclosesWeak(a, B[i])) {
11993 return false;
11994 }
11995 }
11996 return true;
11997}
11998
11999function encloseBasis(B) {
12000 switch (B.length) {
12001 case 1: return encloseBasis1(B[0]);
12002 case 2: return encloseBasis2(B[0], B[1]);
12003 case 3: return encloseBasis3(B[0], B[1], B[2]);
12004 }
12005}
12006
12007function encloseBasis1(a) {
12008 return {
12009 x: a.x,
12010 y: a.y,
12011 r: a.r
12012 };
12013}
12014
12015function encloseBasis2(a, b) {
12016 var x1 = a.x, y1 = a.y, r1 = a.r,
12017 x2 = b.x, y2 = b.y, r2 = b.r,
12018 x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,
12019 l = Math.sqrt(x21 * x21 + y21 * y21);
12020 return {
12021 x: (x1 + x2 + x21 / l * r21) / 2,
12022 y: (y1 + y2 + y21 / l * r21) / 2,
12023 r: (l + r1 + r2) / 2
12024 };
12025}
12026
12027function encloseBasis3(a, b, c) {
12028 var x1 = a.x, y1 = a.y, r1 = a.r,
12029 x2 = b.x, y2 = b.y, r2 = b.r,
12030 x3 = c.x, y3 = c.y, r3 = c.r,
12031 a2 = x1 - x2,
12032 a3 = x1 - x3,
12033 b2 = y1 - y2,
12034 b3 = y1 - y3,
12035 c2 = r2 - r1,
12036 c3 = r3 - r1,
12037 d1 = x1 * x1 + y1 * y1 - r1 * r1,
12038 d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
12039 d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
12040 ab = a3 * b2 - a2 * b3,
12041 xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
12042 xb = (b3 * c2 - b2 * c3) / ab,
12043 ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
12044 yb = (a2 * c3 - a3 * c2) / ab,
12045 A = xb * xb + yb * yb - 1,
12046 B = 2 * (r1 + xa * xb + ya * yb),
12047 C = xa * xa + ya * ya - r1 * r1,
12048 r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
12049 return {
12050 x: x1 + xa + xb * r,
12051 y: y1 + ya + yb * r,
12052 r: r
12053 };
12054}
12055
12056
12057/***/ }),
12058
12059/***/ "./node_modules/d3-hierarchy/src/pack/index.js":
12060/*!*****************************************************!*\
12061 !*** ./node_modules/d3-hierarchy/src/pack/index.js ***!
12062 \*****************************************************/
12063/*! exports provided: default */
12064/***/ (function(module, __webpack_exports__, __webpack_require__) {
12065
12066"use strict";
12067__webpack_require__.r(__webpack_exports__);
12068/* harmony import */ var _siblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./siblings */ "./node_modules/d3-hierarchy/src/pack/siblings.js");
12069/* harmony import */ var _accessors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../accessors */ "./node_modules/d3-hierarchy/src/accessors.js");
12070/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-hierarchy/src/constant.js");
12071
12072
12073
12074
12075function defaultRadius(d) {
12076 return Math.sqrt(d.value);
12077}
12078
12079/* harmony default export */ __webpack_exports__["default"] = (function() {
12080 var radius = null,
12081 dx = 1,
12082 dy = 1,
12083 padding = _constant__WEBPACK_IMPORTED_MODULE_2__["constantZero"];
12084
12085 function pack(root) {
12086 root.x = dx / 2, root.y = dy / 2;
12087 if (radius) {
12088 root.eachBefore(radiusLeaf(radius))
12089 .eachAfter(packChildren(padding, 0.5))
12090 .eachBefore(translateChild(1));
12091 } else {
12092 root.eachBefore(radiusLeaf(defaultRadius))
12093 .eachAfter(packChildren(_constant__WEBPACK_IMPORTED_MODULE_2__["constantZero"], 1))
12094 .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))
12095 .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
12096 }
12097 return root;
12098 }
12099
12100 pack.radius = function(x) {
12101 return arguments.length ? (radius = Object(_accessors__WEBPACK_IMPORTED_MODULE_1__["optional"])(x), pack) : radius;
12102 };
12103
12104 pack.size = function(x) {
12105 return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
12106 };
12107
12108 pack.padding = function(x) {
12109 return arguments.length ? (padding = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(+x), pack) : padding;
12110 };
12111
12112 return pack;
12113});
12114
12115function radiusLeaf(radius) {
12116 return function(node) {
12117 if (!node.children) {
12118 node.r = Math.max(0, +radius(node) || 0);
12119 }
12120 };
12121}
12122
12123function packChildren(padding, k) {
12124 return function(node) {
12125 if (children = node.children) {
12126 var children,
12127 i,
12128 n = children.length,
12129 r = padding(node) * k || 0,
12130 e;
12131
12132 if (r) for (i = 0; i < n; ++i) children[i].r += r;
12133 e = Object(_siblings__WEBPACK_IMPORTED_MODULE_0__["packEnclose"])(children);
12134 if (r) for (i = 0; i < n; ++i) children[i].r -= r;
12135 node.r = e + r;
12136 }
12137 };
12138}
12139
12140function translateChild(k) {
12141 return function(node) {
12142 var parent = node.parent;
12143 node.r *= k;
12144 if (parent) {
12145 node.x = parent.x + k * node.x;
12146 node.y = parent.y + k * node.y;
12147 }
12148 };
12149}
12150
12151
12152/***/ }),
12153
12154/***/ "./node_modules/d3-hierarchy/src/pack/siblings.js":
12155/*!********************************************************!*\
12156 !*** ./node_modules/d3-hierarchy/src/pack/siblings.js ***!
12157 \********************************************************/
12158/*! exports provided: packEnclose, default */
12159/***/ (function(module, __webpack_exports__, __webpack_require__) {
12160
12161"use strict";
12162__webpack_require__.r(__webpack_exports__);
12163/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return packEnclose; });
12164/* harmony import */ var _enclose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enclose */ "./node_modules/d3-hierarchy/src/pack/enclose.js");
12165
12166
12167function place(b, a, c) {
12168 var dx = b.x - a.x, x, a2,
12169 dy = b.y - a.y, y, b2,
12170 d2 = dx * dx + dy * dy;
12171 if (d2) {
12172 a2 = a.r + c.r, a2 *= a2;
12173 b2 = b.r + c.r, b2 *= b2;
12174 if (a2 > b2) {
12175 x = (d2 + b2 - a2) / (2 * d2);
12176 y = Math.sqrt(Math.max(0, b2 / d2 - x * x));
12177 c.x = b.x - x * dx - y * dy;
12178 c.y = b.y - x * dy + y * dx;
12179 } else {
12180 x = (d2 + a2 - b2) / (2 * d2);
12181 y = Math.sqrt(Math.max(0, a2 / d2 - x * x));
12182 c.x = a.x + x * dx - y * dy;
12183 c.y = a.y + x * dy + y * dx;
12184 }
12185 } else {
12186 c.x = a.x + c.r;
12187 c.y = a.y;
12188 }
12189}
12190
12191function intersects(a, b) {
12192 var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;
12193 return dr > 0 && dr * dr > dx * dx + dy * dy;
12194}
12195
12196function score(node) {
12197 var a = node._,
12198 b = node.next._,
12199 ab = a.r + b.r,
12200 dx = (a.x * b.r + b.x * a.r) / ab,
12201 dy = (a.y * b.r + b.y * a.r) / ab;
12202 return dx * dx + dy * dy;
12203}
12204
12205function Node(circle) {
12206 this._ = circle;
12207 this.next = null;
12208 this.previous = null;
12209}
12210
12211function packEnclose(circles) {
12212 if (!(n = circles.length)) return 0;
12213
12214 var a, b, c, n, aa, ca, i, j, k, sj, sk;
12215
12216 // Place the first circle.
12217 a = circles[0], a.x = 0, a.y = 0;
12218 if (!(n > 1)) return a.r;
12219
12220 // Place the second circle.
12221 b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;
12222 if (!(n > 2)) return a.r + b.r;
12223
12224 // Place the third circle.
12225 place(b, a, c = circles[2]);
12226
12227 // Initialize the front-chain using the first three circles a, b and c.
12228 a = new Node(a), b = new Node(b), c = new Node(c);
12229 a.next = c.previous = b;
12230 b.next = a.previous = c;
12231 c.next = b.previous = a;
12232
12233 // Attempt to place each remaining circle…
12234 pack: for (i = 3; i < n; ++i) {
12235 place(a._, b._, c = circles[i]), c = new Node(c);
12236
12237 // Find the closest intersecting circle on the front-chain, if any.
12238 // “Closeness” is determined by linear distance along the front-chain.
12239 // “Ahead” or “behind” is likewise determined by linear distance.
12240 j = b.next, k = a.previous, sj = b._.r, sk = a._.r;
12241 do {
12242 if (sj <= sk) {
12243 if (intersects(j._, c._)) {
12244 b = j, a.next = b, b.previous = a, --i;
12245 continue pack;
12246 }
12247 sj += j._.r, j = j.next;
12248 } else {
12249 if (intersects(k._, c._)) {
12250 a = k, a.next = b, b.previous = a, --i;
12251 continue pack;
12252 }
12253 sk += k._.r, k = k.previous;
12254 }
12255 } while (j !== k.next);
12256
12257 // Success! Insert the new circle c between a and b.
12258 c.previous = a, c.next = b, a.next = b.previous = b = c;
12259
12260 // Compute the new closest circle pair to the centroid.
12261 aa = score(a);
12262 while ((c = c.next) !== b) {
12263 if ((ca = score(c)) < aa) {
12264 a = c, aa = ca;
12265 }
12266 }
12267 b = a.next;
12268 }
12269
12270 // Compute the enclosing circle of the front chain.
12271 a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = Object(_enclose__WEBPACK_IMPORTED_MODULE_0__["default"])(a);
12272
12273 // Translate the circles to put the enclosing circle around the origin.
12274 for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;
12275
12276 return c.r;
12277}
12278
12279/* harmony default export */ __webpack_exports__["default"] = (function(circles) {
12280 packEnclose(circles);
12281 return circles;
12282});
12283
12284
12285/***/ }),
12286
12287/***/ "./node_modules/d3-hierarchy/src/partition.js":
12288/*!****************************************************!*\
12289 !*** ./node_modules/d3-hierarchy/src/partition.js ***!
12290 \****************************************************/
12291/*! exports provided: default */
12292/***/ (function(module, __webpack_exports__, __webpack_require__) {
12293
12294"use strict";
12295__webpack_require__.r(__webpack_exports__);
12296/* harmony import */ var _treemap_round__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./treemap/round */ "./node_modules/d3-hierarchy/src/treemap/round.js");
12297/* harmony import */ var _treemap_dice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./treemap/dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
12298
12299
12300
12301/* harmony default export */ __webpack_exports__["default"] = (function() {
12302 var dx = 1,
12303 dy = 1,
12304 padding = 0,
12305 round = false;
12306
12307 function partition(root) {
12308 var n = root.height + 1;
12309 root.x0 =
12310 root.y0 = padding;
12311 root.x1 = dx;
12312 root.y1 = dy / n;
12313 root.eachBefore(positionNode(dy, n));
12314 if (round) root.eachBefore(_treemap_round__WEBPACK_IMPORTED_MODULE_0__["default"]);
12315 return root;
12316 }
12317
12318 function positionNode(dy, n) {
12319 return function(node) {
12320 if (node.children) {
12321 Object(_treemap_dice__WEBPACK_IMPORTED_MODULE_1__["default"])(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);
12322 }
12323 var x0 = node.x0,
12324 y0 = node.y0,
12325 x1 = node.x1 - padding,
12326 y1 = node.y1 - padding;
12327 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
12328 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
12329 node.x0 = x0;
12330 node.y0 = y0;
12331 node.x1 = x1;
12332 node.y1 = y1;
12333 };
12334 }
12335
12336 partition.round = function(x) {
12337 return arguments.length ? (round = !!x, partition) : round;
12338 };
12339
12340 partition.size = function(x) {
12341 return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];
12342 };
12343
12344 partition.padding = function(x) {
12345 return arguments.length ? (padding = +x, partition) : padding;
12346 };
12347
12348 return partition;
12349});
12350
12351
12352/***/ }),
12353
12354/***/ "./node_modules/d3-hierarchy/src/stratify.js":
12355/*!***************************************************!*\
12356 !*** ./node_modules/d3-hierarchy/src/stratify.js ***!
12357 \***************************************************/
12358/*! exports provided: default */
12359/***/ (function(module, __webpack_exports__, __webpack_require__) {
12360
12361"use strict";
12362__webpack_require__.r(__webpack_exports__);
12363/* harmony import */ var _accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./accessors */ "./node_modules/d3-hierarchy/src/accessors.js");
12364/* harmony import */ var _hierarchy_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hierarchy/index */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
12365
12366
12367
12368var keyPrefix = "$", // Protect against keys like “__proto__”.
12369 preroot = {depth: -1},
12370 ambiguous = {};
12371
12372function defaultId(d) {
12373 return d.id;
12374}
12375
12376function defaultParentId(d) {
12377 return d.parentId;
12378}
12379
12380/* harmony default export */ __webpack_exports__["default"] = (function() {
12381 var id = defaultId,
12382 parentId = defaultParentId;
12383
12384 function stratify(data) {
12385 var d,
12386 i,
12387 n = data.length,
12388 root,
12389 parent,
12390 node,
12391 nodes = new Array(n),
12392 nodeId,
12393 nodeKey,
12394 nodeByKey = {};
12395
12396 for (i = 0; i < n; ++i) {
12397 d = data[i], node = nodes[i] = new _hierarchy_index__WEBPACK_IMPORTED_MODULE_1__["Node"](d);
12398 if ((nodeId = id(d, i, data)) != null && (nodeId += "")) {
12399 nodeKey = keyPrefix + (node.id = nodeId);
12400 nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;
12401 }
12402 }
12403
12404 for (i = 0; i < n; ++i) {
12405 node = nodes[i], nodeId = parentId(data[i], i, data);
12406 if (nodeId == null || !(nodeId += "")) {
12407 if (root) throw new Error("multiple roots");
12408 root = node;
12409 } else {
12410 parent = nodeByKey[keyPrefix + nodeId];
12411 if (!parent) throw new Error("missing: " + nodeId);
12412 if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
12413 if (parent.children) parent.children.push(node);
12414 else parent.children = [node];
12415 node.parent = parent;
12416 }
12417 }
12418
12419 if (!root) throw new Error("no root");
12420 root.parent = preroot;
12421 root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(_hierarchy_index__WEBPACK_IMPORTED_MODULE_1__["computeHeight"]);
12422 root.parent = null;
12423 if (n > 0) throw new Error("cycle");
12424
12425 return root;
12426 }
12427
12428 stratify.id = function(x) {
12429 return arguments.length ? (id = Object(_accessors__WEBPACK_IMPORTED_MODULE_0__["required"])(x), stratify) : id;
12430 };
12431
12432 stratify.parentId = function(x) {
12433 return arguments.length ? (parentId = Object(_accessors__WEBPACK_IMPORTED_MODULE_0__["required"])(x), stratify) : parentId;
12434 };
12435
12436 return stratify;
12437});
12438
12439
12440/***/ }),
12441
12442/***/ "./node_modules/d3-hierarchy/src/tree.js":
12443/*!***********************************************!*\
12444 !*** ./node_modules/d3-hierarchy/src/tree.js ***!
12445 \***********************************************/
12446/*! exports provided: default */
12447/***/ (function(module, __webpack_exports__, __webpack_require__) {
12448
12449"use strict";
12450__webpack_require__.r(__webpack_exports__);
12451/* harmony import */ var _hierarchy_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hierarchy/index */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
12452
12453
12454function defaultSeparation(a, b) {
12455 return a.parent === b.parent ? 1 : 2;
12456}
12457
12458// function radialSeparation(a, b) {
12459// return (a.parent === b.parent ? 1 : 2) / a.depth;
12460// }
12461
12462// This function is used to traverse the left contour of a subtree (or
12463// subforest). It returns the successor of v on this contour. This successor is
12464// either given by the leftmost child of v or by the thread of v. The function
12465// returns null if and only if v is on the highest level of its subtree.
12466function nextLeft(v) {
12467 var children = v.children;
12468 return children ? children[0] : v.t;
12469}
12470
12471// This function works analogously to nextLeft.
12472function nextRight(v) {
12473 var children = v.children;
12474 return children ? children[children.length - 1] : v.t;
12475}
12476
12477// Shifts the current subtree rooted at w+. This is done by increasing
12478// prelim(w+) and mod(w+) by shift.
12479function moveSubtree(wm, wp, shift) {
12480 var change = shift / (wp.i - wm.i);
12481 wp.c -= change;
12482 wp.s += shift;
12483 wm.c += change;
12484 wp.z += shift;
12485 wp.m += shift;
12486}
12487
12488// All other shifts, applied to the smaller subtrees between w- and w+, are
12489// performed by this function. To prepare the shifts, we have to adjust
12490// change(w+), shift(w+), and change(w-).
12491function executeShifts(v) {
12492 var shift = 0,
12493 change = 0,
12494 children = v.children,
12495 i = children.length,
12496 w;
12497 while (--i >= 0) {
12498 w = children[i];
12499 w.z += shift;
12500 w.m += shift;
12501 shift += w.s + (change += w.c);
12502 }
12503}
12504
12505// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,
12506// returns the specified (default) ancestor.
12507function nextAncestor(vim, v, ancestor) {
12508 return vim.a.parent === v.parent ? vim.a : ancestor;
12509}
12510
12511function TreeNode(node, i) {
12512 this._ = node;
12513 this.parent = null;
12514 this.children = null;
12515 this.A = null; // default ancestor
12516 this.a = this; // ancestor
12517 this.z = 0; // prelim
12518 this.m = 0; // mod
12519 this.c = 0; // change
12520 this.s = 0; // shift
12521 this.t = null; // thread
12522 this.i = i; // number
12523}
12524
12525TreeNode.prototype = Object.create(_hierarchy_index__WEBPACK_IMPORTED_MODULE_0__["Node"].prototype);
12526
12527function treeRoot(root) {
12528 var tree = new TreeNode(root, 0),
12529 node,
12530 nodes = [tree],
12531 child,
12532 children,
12533 i,
12534 n;
12535
12536 while (node = nodes.pop()) {
12537 if (children = node._.children) {
12538 node.children = new Array(n = children.length);
12539 for (i = n - 1; i >= 0; --i) {
12540 nodes.push(child = node.children[i] = new TreeNode(children[i], i));
12541 child.parent = node;
12542 }
12543 }
12544 }
12545
12546 (tree.parent = new TreeNode(null, 0)).children = [tree];
12547 return tree;
12548}
12549
12550// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
12551/* harmony default export */ __webpack_exports__["default"] = (function() {
12552 var separation = defaultSeparation,
12553 dx = 1,
12554 dy = 1,
12555 nodeSize = null;
12556
12557 function tree(root) {
12558 var t = treeRoot(root);
12559
12560 // Compute the layout using Buchheim et al.’s algorithm.
12561 t.eachAfter(firstWalk), t.parent.m = -t.z;
12562 t.eachBefore(secondWalk);
12563
12564 // If a fixed node size is specified, scale x and y.
12565 if (nodeSize) root.eachBefore(sizeNode);
12566
12567 // If a fixed tree size is specified, scale x and y based on the extent.
12568 // Compute the left-most, right-most, and depth-most nodes for extents.
12569 else {
12570 var left = root,
12571 right = root,
12572 bottom = root;
12573 root.eachBefore(function(node) {
12574 if (node.x < left.x) left = node;
12575 if (node.x > right.x) right = node;
12576 if (node.depth > bottom.depth) bottom = node;
12577 });
12578 var s = left === right ? 1 : separation(left, right) / 2,
12579 tx = s - left.x,
12580 kx = dx / (right.x + s + tx),
12581 ky = dy / (bottom.depth || 1);
12582 root.eachBefore(function(node) {
12583 node.x = (node.x + tx) * kx;
12584 node.y = node.depth * ky;
12585 });
12586 }
12587
12588 return root;
12589 }
12590
12591 // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is
12592 // applied recursively to the children of v, as well as the function
12593 // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the
12594 // node v is placed to the midpoint of its outermost children.
12595 function firstWalk(v) {
12596 var children = v.children,
12597 siblings = v.parent.children,
12598 w = v.i ? siblings[v.i - 1] : null;
12599 if (children) {
12600 executeShifts(v);
12601 var midpoint = (children[0].z + children[children.length - 1].z) / 2;
12602 if (w) {
12603 v.z = w.z + separation(v._, w._);
12604 v.m = v.z - midpoint;
12605 } else {
12606 v.z = midpoint;
12607 }
12608 } else if (w) {
12609 v.z = w.z + separation(v._, w._);
12610 }
12611 v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
12612 }
12613
12614 // Computes all real x-coordinates by summing up the modifiers recursively.
12615 function secondWalk(v) {
12616 v._.x = v.z + v.parent.m;
12617 v.m += v.parent.m;
12618 }
12619
12620 // The core of the algorithm. Here, a new subtree is combined with the
12621 // previous subtrees. Threads are used to traverse the inside and outside
12622 // contours of the left and right subtree up to the highest common level. The
12623 // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the
12624 // superscript o means outside and i means inside, the subscript - means left
12625 // subtree and + means right subtree. For summing up the modifiers along the
12626 // contour, we use respective variables si+, si-, so-, and so+. Whenever two
12627 // nodes of the inside contours conflict, we compute the left one of the
12628 // greatest uncommon ancestors using the function ANCESTOR and call MOVE
12629 // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.
12630 // Finally, we add a new thread (if necessary).
12631 function apportion(v, w, ancestor) {
12632 if (w) {
12633 var vip = v,
12634 vop = v,
12635 vim = w,
12636 vom = vip.parent.children[0],
12637 sip = vip.m,
12638 sop = vop.m,
12639 sim = vim.m,
12640 som = vom.m,
12641 shift;
12642 while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
12643 vom = nextLeft(vom);
12644 vop = nextRight(vop);
12645 vop.a = v;
12646 shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
12647 if (shift > 0) {
12648 moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
12649 sip += shift;
12650 sop += shift;
12651 }
12652 sim += vim.m;
12653 sip += vip.m;
12654 som += vom.m;
12655 sop += vop.m;
12656 }
12657 if (vim && !nextRight(vop)) {
12658 vop.t = vim;
12659 vop.m += sim - sop;
12660 }
12661 if (vip && !nextLeft(vom)) {
12662 vom.t = vip;
12663 vom.m += sip - som;
12664 ancestor = v;
12665 }
12666 }
12667 return ancestor;
12668 }
12669
12670 function sizeNode(node) {
12671 node.x *= dx;
12672 node.y = node.depth * dy;
12673 }
12674
12675 tree.separation = function(x) {
12676 return arguments.length ? (separation = x, tree) : separation;
12677 };
12678
12679 tree.size = function(x) {
12680 return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);
12681 };
12682
12683 tree.nodeSize = function(x) {
12684 return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);
12685 };
12686
12687 return tree;
12688});
12689
12690
12691/***/ }),
12692
12693/***/ "./node_modules/d3-hierarchy/src/treemap/binary.js":
12694/*!*********************************************************!*\
12695 !*** ./node_modules/d3-hierarchy/src/treemap/binary.js ***!
12696 \*********************************************************/
12697/*! exports provided: default */
12698/***/ (function(module, __webpack_exports__, __webpack_require__) {
12699
12700"use strict";
12701__webpack_require__.r(__webpack_exports__);
12702/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
12703 var nodes = parent.children,
12704 i, n = nodes.length,
12705 sum, sums = new Array(n + 1);
12706
12707 for (sums[0] = sum = i = 0; i < n; ++i) {
12708 sums[i + 1] = sum += nodes[i].value;
12709 }
12710
12711 partition(0, n, parent.value, x0, y0, x1, y1);
12712
12713 function partition(i, j, value, x0, y0, x1, y1) {
12714 if (i >= j - 1) {
12715 var node = nodes[i];
12716 node.x0 = x0, node.y0 = y0;
12717 node.x1 = x1, node.y1 = y1;
12718 return;
12719 }
12720
12721 var valueOffset = sums[i],
12722 valueTarget = (value / 2) + valueOffset,
12723 k = i + 1,
12724 hi = j - 1;
12725
12726 while (k < hi) {
12727 var mid = k + hi >>> 1;
12728 if (sums[mid] < valueTarget) k = mid + 1;
12729 else hi = mid;
12730 }
12731
12732 if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;
12733
12734 var valueLeft = sums[k] - valueOffset,
12735 valueRight = value - valueLeft;
12736
12737 if ((x1 - x0) > (y1 - y0)) {
12738 var xk = (x0 * valueRight + x1 * valueLeft) / value;
12739 partition(i, k, valueLeft, x0, y0, xk, y1);
12740 partition(k, j, valueRight, xk, y0, x1, y1);
12741 } else {
12742 var yk = (y0 * valueRight + y1 * valueLeft) / value;
12743 partition(i, k, valueLeft, x0, y0, x1, yk);
12744 partition(k, j, valueRight, x0, yk, x1, y1);
12745 }
12746 }
12747});
12748
12749
12750/***/ }),
12751
12752/***/ "./node_modules/d3-hierarchy/src/treemap/dice.js":
12753/*!*******************************************************!*\
12754 !*** ./node_modules/d3-hierarchy/src/treemap/dice.js ***!
12755 \*******************************************************/
12756/*! exports provided: default */
12757/***/ (function(module, __webpack_exports__, __webpack_require__) {
12758
12759"use strict";
12760__webpack_require__.r(__webpack_exports__);
12761/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
12762 var nodes = parent.children,
12763 node,
12764 i = -1,
12765 n = nodes.length,
12766 k = parent.value && (x1 - x0) / parent.value;
12767
12768 while (++i < n) {
12769 node = nodes[i], node.y0 = y0, node.y1 = y1;
12770 node.x0 = x0, node.x1 = x0 += node.value * k;
12771 }
12772});
12773
12774
12775/***/ }),
12776
12777/***/ "./node_modules/d3-hierarchy/src/treemap/index.js":
12778/*!********************************************************!*\
12779 !*** ./node_modules/d3-hierarchy/src/treemap/index.js ***!
12780 \********************************************************/
12781/*! exports provided: default */
12782/***/ (function(module, __webpack_exports__, __webpack_require__) {
12783
12784"use strict";
12785__webpack_require__.r(__webpack_exports__);
12786/* harmony import */ var _round__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./round */ "./node_modules/d3-hierarchy/src/treemap/round.js");
12787/* harmony import */ var _squarify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./squarify */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
12788/* harmony import */ var _accessors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../accessors */ "./node_modules/d3-hierarchy/src/accessors.js");
12789/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-hierarchy/src/constant.js");
12790
12791
12792
12793
12794
12795/* harmony default export */ __webpack_exports__["default"] = (function() {
12796 var tile = _squarify__WEBPACK_IMPORTED_MODULE_1__["default"],
12797 round = false,
12798 dx = 1,
12799 dy = 1,
12800 paddingStack = [0],
12801 paddingInner = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
12802 paddingTop = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
12803 paddingRight = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
12804 paddingBottom = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
12805 paddingLeft = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"];
12806
12807 function treemap(root) {
12808 root.x0 =
12809 root.y0 = 0;
12810 root.x1 = dx;
12811 root.y1 = dy;
12812 root.eachBefore(positionNode);
12813 paddingStack = [0];
12814 if (round) root.eachBefore(_round__WEBPACK_IMPORTED_MODULE_0__["default"]);
12815 return root;
12816 }
12817
12818 function positionNode(node) {
12819 var p = paddingStack[node.depth],
12820 x0 = node.x0 + p,
12821 y0 = node.y0 + p,
12822 x1 = node.x1 - p,
12823 y1 = node.y1 - p;
12824 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
12825 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
12826 node.x0 = x0;
12827 node.y0 = y0;
12828 node.x1 = x1;
12829 node.y1 = y1;
12830 if (node.children) {
12831 p = paddingStack[node.depth + 1] = paddingInner(node) / 2;
12832 x0 += paddingLeft(node) - p;
12833 y0 += paddingTop(node) - p;
12834 x1 -= paddingRight(node) - p;
12835 y1 -= paddingBottom(node) - p;
12836 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
12837 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
12838 tile(node, x0, y0, x1, y1);
12839 }
12840 }
12841
12842 treemap.round = function(x) {
12843 return arguments.length ? (round = !!x, treemap) : round;
12844 };
12845
12846 treemap.size = function(x) {
12847 return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];
12848 };
12849
12850 treemap.tile = function(x) {
12851 return arguments.length ? (tile = Object(_accessors__WEBPACK_IMPORTED_MODULE_2__["required"])(x), treemap) : tile;
12852 };
12853
12854 treemap.padding = function(x) {
12855 return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();
12856 };
12857
12858 treemap.paddingInner = function(x) {
12859 return arguments.length ? (paddingInner = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingInner;
12860 };
12861
12862 treemap.paddingOuter = function(x) {
12863 return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();
12864 };
12865
12866 treemap.paddingTop = function(x) {
12867 return arguments.length ? (paddingTop = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingTop;
12868 };
12869
12870 treemap.paddingRight = function(x) {
12871 return arguments.length ? (paddingRight = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingRight;
12872 };
12873
12874 treemap.paddingBottom = function(x) {
12875 return arguments.length ? (paddingBottom = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingBottom;
12876 };
12877
12878 treemap.paddingLeft = function(x) {
12879 return arguments.length ? (paddingLeft = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingLeft;
12880 };
12881
12882 return treemap;
12883});
12884
12885
12886/***/ }),
12887
12888/***/ "./node_modules/d3-hierarchy/src/treemap/resquarify.js":
12889/*!*************************************************************!*\
12890 !*** ./node_modules/d3-hierarchy/src/treemap/resquarify.js ***!
12891 \*************************************************************/
12892/*! exports provided: default */
12893/***/ (function(module, __webpack_exports__, __webpack_require__) {
12894
12895"use strict";
12896__webpack_require__.r(__webpack_exports__);
12897/* harmony import */ var _dice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
12898/* harmony import */ var _slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
12899/* harmony import */ var _squarify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./squarify */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
12900
12901
12902
12903
12904/* harmony default export */ __webpack_exports__["default"] = ((function custom(ratio) {
12905
12906 function resquarify(parent, x0, y0, x1, y1) {
12907 if ((rows = parent._squarify) && (rows.ratio === ratio)) {
12908 var rows,
12909 row,
12910 nodes,
12911 i,
12912 j = -1,
12913 n,
12914 m = rows.length,
12915 value = parent.value;
12916
12917 while (++j < m) {
12918 row = rows[j], nodes = row.children;
12919 for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;
12920 if (row.dice) Object(_dice__WEBPACK_IMPORTED_MODULE_0__["default"])(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);
12921 else Object(_slice__WEBPACK_IMPORTED_MODULE_1__["default"])(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);
12922 value -= row.value;
12923 }
12924 } else {
12925 parent._squarify = rows = Object(_squarify__WEBPACK_IMPORTED_MODULE_2__["squarifyRatio"])(ratio, parent, x0, y0, x1, y1);
12926 rows.ratio = ratio;
12927 }
12928 }
12929
12930 resquarify.ratio = function(x) {
12931 return custom((x = +x) > 1 ? x : 1);
12932 };
12933
12934 return resquarify;
12935})(_squarify__WEBPACK_IMPORTED_MODULE_2__["phi"]));
12936
12937
12938/***/ }),
12939
12940/***/ "./node_modules/d3-hierarchy/src/treemap/round.js":
12941/*!********************************************************!*\
12942 !*** ./node_modules/d3-hierarchy/src/treemap/round.js ***!
12943 \********************************************************/
12944/*! exports provided: default */
12945/***/ (function(module, __webpack_exports__, __webpack_require__) {
12946
12947"use strict";
12948__webpack_require__.r(__webpack_exports__);
12949/* harmony default export */ __webpack_exports__["default"] = (function(node) {
12950 node.x0 = Math.round(node.x0);
12951 node.y0 = Math.round(node.y0);
12952 node.x1 = Math.round(node.x1);
12953 node.y1 = Math.round(node.y1);
12954});
12955
12956
12957/***/ }),
12958
12959/***/ "./node_modules/d3-hierarchy/src/treemap/slice.js":
12960/*!********************************************************!*\
12961 !*** ./node_modules/d3-hierarchy/src/treemap/slice.js ***!
12962 \********************************************************/
12963/*! exports provided: default */
12964/***/ (function(module, __webpack_exports__, __webpack_require__) {
12965
12966"use strict";
12967__webpack_require__.r(__webpack_exports__);
12968/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
12969 var nodes = parent.children,
12970 node,
12971 i = -1,
12972 n = nodes.length,
12973 k = parent.value && (y1 - y0) / parent.value;
12974
12975 while (++i < n) {
12976 node = nodes[i], node.x0 = x0, node.x1 = x1;
12977 node.y0 = y0, node.y1 = y0 += node.value * k;
12978 }
12979});
12980
12981
12982/***/ }),
12983
12984/***/ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js":
12985/*!************************************************************!*\
12986 !*** ./node_modules/d3-hierarchy/src/treemap/sliceDice.js ***!
12987 \************************************************************/
12988/*! exports provided: default */
12989/***/ (function(module, __webpack_exports__, __webpack_require__) {
12990
12991"use strict";
12992__webpack_require__.r(__webpack_exports__);
12993/* harmony import */ var _dice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
12994/* harmony import */ var _slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
12995
12996
12997
12998/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
12999 (parent.depth & 1 ? _slice__WEBPACK_IMPORTED_MODULE_1__["default"] : _dice__WEBPACK_IMPORTED_MODULE_0__["default"])(parent, x0, y0, x1, y1);
13000});
13001
13002
13003/***/ }),
13004
13005/***/ "./node_modules/d3-hierarchy/src/treemap/squarify.js":
13006/*!***********************************************************!*\
13007 !*** ./node_modules/d3-hierarchy/src/treemap/squarify.js ***!
13008 \***********************************************************/
13009/*! exports provided: phi, squarifyRatio, default */
13010/***/ (function(module, __webpack_exports__, __webpack_require__) {
13011
13012"use strict";
13013__webpack_require__.r(__webpack_exports__);
13014/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "phi", function() { return phi; });
13015/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "squarifyRatio", function() { return squarifyRatio; });
13016/* harmony import */ var _dice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
13017/* harmony import */ var _slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
13018
13019
13020
13021var phi = (1 + Math.sqrt(5)) / 2;
13022
13023function squarifyRatio(ratio, parent, x0, y0, x1, y1) {
13024 var rows = [],
13025 nodes = parent.children,
13026 row,
13027 nodeValue,
13028 i0 = 0,
13029 i1 = 0,
13030 n = nodes.length,
13031 dx, dy,
13032 value = parent.value,
13033 sumValue,
13034 minValue,
13035 maxValue,
13036 newRatio,
13037 minRatio,
13038 alpha,
13039 beta;
13040
13041 while (i0 < n) {
13042 dx = x1 - x0, dy = y1 - y0;
13043
13044 // Find the next non-empty node.
13045 do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);
13046 minValue = maxValue = sumValue;
13047 alpha = Math.max(dy / dx, dx / dy) / (value * ratio);
13048 beta = sumValue * sumValue * alpha;
13049 minRatio = Math.max(maxValue / beta, beta / minValue);
13050
13051 // Keep adding nodes while the aspect ratio maintains or improves.
13052 for (; i1 < n; ++i1) {
13053 sumValue += nodeValue = nodes[i1].value;
13054 if (nodeValue < minValue) minValue = nodeValue;
13055 if (nodeValue > maxValue) maxValue = nodeValue;
13056 beta = sumValue * sumValue * alpha;
13057 newRatio = Math.max(maxValue / beta, beta / minValue);
13058 if (newRatio > minRatio) { sumValue -= nodeValue; break; }
13059 minRatio = newRatio;
13060 }
13061
13062 // Position and record the row orientation.
13063 rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});
13064 if (row.dice) Object(_dice__WEBPACK_IMPORTED_MODULE_0__["default"])(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);
13065 else Object(_slice__WEBPACK_IMPORTED_MODULE_1__["default"])(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);
13066 value -= sumValue, i0 = i1;
13067 }
13068
13069 return rows;
13070}
13071
13072/* harmony default export */ __webpack_exports__["default"] = ((function custom(ratio) {
13073
13074 function squarify(parent, x0, y0, x1, y1) {
13075 squarifyRatio(ratio, parent, x0, y0, x1, y1);
13076 }
13077
13078 squarify.ratio = function(x) {
13079 return custom((x = +x) > 1 ? x : 1);
13080 };
13081
13082 return squarify;
13083})(phi));
13084
13085
13086/***/ }),
13087
13088/***/ "./node_modules/d3-interpolate/src/array.js":
13089/*!**************************************************!*\
13090 !*** ./node_modules/d3-interpolate/src/array.js ***!
13091 \**************************************************/
13092/*! exports provided: default */
13093/***/ (function(module, __webpack_exports__, __webpack_require__) {
13094
13095"use strict";
13096__webpack_require__.r(__webpack_exports__);
13097/* harmony import */ var _value__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value */ "./node_modules/d3-interpolate/src/value.js");
13098
13099
13100/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13101 var nb = b ? b.length : 0,
13102 na = a ? Math.min(nb, a.length) : 0,
13103 x = new Array(na),
13104 c = new Array(nb),
13105 i;
13106
13107 for (i = 0; i < na; ++i) x[i] = Object(_value__WEBPACK_IMPORTED_MODULE_0__["default"])(a[i], b[i]);
13108 for (; i < nb; ++i) c[i] = b[i];
13109
13110 return function(t) {
13111 for (i = 0; i < na; ++i) c[i] = x[i](t);
13112 return c;
13113 };
13114});
13115
13116
13117/***/ }),
13118
13119/***/ "./node_modules/d3-interpolate/src/basis.js":
13120/*!**************************************************!*\
13121 !*** ./node_modules/d3-interpolate/src/basis.js ***!
13122 \**************************************************/
13123/*! exports provided: basis, default */
13124/***/ (function(module, __webpack_exports__, __webpack_require__) {
13125
13126"use strict";
13127__webpack_require__.r(__webpack_exports__);
13128/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "basis", function() { return basis; });
13129function basis(t1, v0, v1, v2, v3) {
13130 var t2 = t1 * t1, t3 = t2 * t1;
13131 return ((1 - 3 * t1 + 3 * t2 - t3) * v0
13132 + (4 - 6 * t2 + 3 * t3) * v1
13133 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
13134 + t3 * v3) / 6;
13135}
13136
13137/* harmony default export */ __webpack_exports__["default"] = (function(values) {
13138 var n = values.length - 1;
13139 return function(t) {
13140 var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
13141 v1 = values[i],
13142 v2 = values[i + 1],
13143 v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
13144 v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
13145 return basis((t - i / n) * n, v0, v1, v2, v3);
13146 };
13147});
13148
13149
13150/***/ }),
13151
13152/***/ "./node_modules/d3-interpolate/src/basisClosed.js":
13153/*!********************************************************!*\
13154 !*** ./node_modules/d3-interpolate/src/basisClosed.js ***!
13155 \********************************************************/
13156/*! exports provided: default */
13157/***/ (function(module, __webpack_exports__, __webpack_require__) {
13158
13159"use strict";
13160__webpack_require__.r(__webpack_exports__);
13161/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-interpolate/src/basis.js");
13162
13163
13164/* harmony default export */ __webpack_exports__["default"] = (function(values) {
13165 var n = values.length;
13166 return function(t) {
13167 var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
13168 v0 = values[(i + n - 1) % n],
13169 v1 = values[i % n],
13170 v2 = values[(i + 1) % n],
13171 v3 = values[(i + 2) % n];
13172 return Object(_basis__WEBPACK_IMPORTED_MODULE_0__["basis"])((t - i / n) * n, v0, v1, v2, v3);
13173 };
13174});
13175
13176
13177/***/ }),
13178
13179/***/ "./node_modules/d3-interpolate/src/color.js":
13180/*!**************************************************!*\
13181 !*** ./node_modules/d3-interpolate/src/color.js ***!
13182 \**************************************************/
13183/*! exports provided: hue, gamma, default */
13184/***/ (function(module, __webpack_exports__, __webpack_require__) {
13185
13186"use strict";
13187__webpack_require__.r(__webpack_exports__);
13188/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hue", function() { return hue; });
13189/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "gamma", function() { return gamma; });
13190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return nogamma; });
13191/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-interpolate/src/constant.js");
13192
13193
13194function linear(a, d) {
13195 return function(t) {
13196 return a + t * d;
13197 };
13198}
13199
13200function exponential(a, b, y) {
13201 return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
13202 return Math.pow(a + t * b, y);
13203 };
13204}
13205
13206function hue(a, b) {
13207 var d = b - a;
13208 return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
13209}
13210
13211function gamma(y) {
13212 return (y = +y) === 1 ? nogamma : function(a, b) {
13213 return b - a ? exponential(a, b, y) : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
13214 };
13215}
13216
13217function nogamma(a, b) {
13218 var d = b - a;
13219 return d ? linear(a, d) : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
13220}
13221
13222
13223/***/ }),
13224
13225/***/ "./node_modules/d3-interpolate/src/constant.js":
13226/*!*****************************************************!*\
13227 !*** ./node_modules/d3-interpolate/src/constant.js ***!
13228 \*****************************************************/
13229/*! exports provided: default */
13230/***/ (function(module, __webpack_exports__, __webpack_require__) {
13231
13232"use strict";
13233__webpack_require__.r(__webpack_exports__);
13234/* harmony default export */ __webpack_exports__["default"] = (function(x) {
13235 return function() {
13236 return x;
13237 };
13238});
13239
13240
13241/***/ }),
13242
13243/***/ "./node_modules/d3-interpolate/src/cubehelix.js":
13244/*!******************************************************!*\
13245 !*** ./node_modules/d3-interpolate/src/cubehelix.js ***!
13246 \******************************************************/
13247/*! exports provided: default, cubehelixLong */
13248/***/ (function(module, __webpack_exports__, __webpack_require__) {
13249
13250"use strict";
13251__webpack_require__.r(__webpack_exports__);
13252/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubehelixLong", function() { return cubehelixLong; });
13253/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13254/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
13255
13256
13257
13258function cubehelix(hue) {
13259 return (function cubehelixGamma(y) {
13260 y = +y;
13261
13262 function cubehelix(start, end) {
13263 var h = hue((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])(start)).h, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])(end)).h),
13264 s = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.s, end.s),
13265 l = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
13266 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
13267 return function(t) {
13268 start.h = h(t);
13269 start.s = s(t);
13270 start.l = l(Math.pow(t, y));
13271 start.opacity = opacity(t);
13272 return start + "";
13273 };
13274 }
13275
13276 cubehelix.gamma = cubehelixGamma;
13277
13278 return cubehelix;
13279 })(1);
13280}
13281
13282/* harmony default export */ __webpack_exports__["default"] = (cubehelix(_color__WEBPACK_IMPORTED_MODULE_1__["hue"]));
13283var cubehelixLong = cubehelix(_color__WEBPACK_IMPORTED_MODULE_1__["default"]);
13284
13285
13286/***/ }),
13287
13288/***/ "./node_modules/d3-interpolate/src/date.js":
13289/*!*************************************************!*\
13290 !*** ./node_modules/d3-interpolate/src/date.js ***!
13291 \*************************************************/
13292/*! exports provided: default */
13293/***/ (function(module, __webpack_exports__, __webpack_require__) {
13294
13295"use strict";
13296__webpack_require__.r(__webpack_exports__);
13297/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13298 var d = new Date;
13299 return a = +a, b -= a, function(t) {
13300 return d.setTime(a + b * t), d;
13301 };
13302});
13303
13304
13305/***/ }),
13306
13307/***/ "./node_modules/d3-interpolate/src/discrete.js":
13308/*!*****************************************************!*\
13309 !*** ./node_modules/d3-interpolate/src/discrete.js ***!
13310 \*****************************************************/
13311/*! exports provided: default */
13312/***/ (function(module, __webpack_exports__, __webpack_require__) {
13313
13314"use strict";
13315__webpack_require__.r(__webpack_exports__);
13316/* harmony default export */ __webpack_exports__["default"] = (function(range) {
13317 var n = range.length;
13318 return function(t) {
13319 return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
13320 };
13321});
13322
13323
13324/***/ }),
13325
13326/***/ "./node_modules/d3-interpolate/src/hcl.js":
13327/*!************************************************!*\
13328 !*** ./node_modules/d3-interpolate/src/hcl.js ***!
13329 \************************************************/
13330/*! exports provided: default, hclLong */
13331/***/ (function(module, __webpack_exports__, __webpack_require__) {
13332
13333"use strict";
13334__webpack_require__.r(__webpack_exports__);
13335/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hclLong", function() { return hclLong; });
13336/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13337/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
13338
13339
13340
13341function hcl(hue) {
13342 return function(start, end) {
13343 var h = hue((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["hcl"])(start)).h, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["hcl"])(end)).h),
13344 c = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.c, end.c),
13345 l = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
13346 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
13347 return function(t) {
13348 start.h = h(t);
13349 start.c = c(t);
13350 start.l = l(t);
13351 start.opacity = opacity(t);
13352 return start + "";
13353 };
13354 }
13355}
13356
13357/* harmony default export */ __webpack_exports__["default"] = (hcl(_color__WEBPACK_IMPORTED_MODULE_1__["hue"]));
13358var hclLong = hcl(_color__WEBPACK_IMPORTED_MODULE_1__["default"]);
13359
13360
13361/***/ }),
13362
13363/***/ "./node_modules/d3-interpolate/src/hsl.js":
13364/*!************************************************!*\
13365 !*** ./node_modules/d3-interpolate/src/hsl.js ***!
13366 \************************************************/
13367/*! exports provided: default, hslLong */
13368/***/ (function(module, __webpack_exports__, __webpack_require__) {
13369
13370"use strict";
13371__webpack_require__.r(__webpack_exports__);
13372/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hslLong", function() { return hslLong; });
13373/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13374/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
13375
13376
13377
13378function hsl(hue) {
13379 return function(start, end) {
13380 var h = hue((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["hsl"])(start)).h, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["hsl"])(end)).h),
13381 s = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.s, end.s),
13382 l = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
13383 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
13384 return function(t) {
13385 start.h = h(t);
13386 start.s = s(t);
13387 start.l = l(t);
13388 start.opacity = opacity(t);
13389 return start + "";
13390 };
13391 }
13392}
13393
13394/* harmony default export */ __webpack_exports__["default"] = (hsl(_color__WEBPACK_IMPORTED_MODULE_1__["hue"]));
13395var hslLong = hsl(_color__WEBPACK_IMPORTED_MODULE_1__["default"]);
13396
13397
13398/***/ }),
13399
13400/***/ "./node_modules/d3-interpolate/src/hue.js":
13401/*!************************************************!*\
13402 !*** ./node_modules/d3-interpolate/src/hue.js ***!
13403 \************************************************/
13404/*! exports provided: default */
13405/***/ (function(module, __webpack_exports__, __webpack_require__) {
13406
13407"use strict";
13408__webpack_require__.r(__webpack_exports__);
13409/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
13410
13411
13412/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13413 var i = Object(_color__WEBPACK_IMPORTED_MODULE_0__["hue"])(+a, +b);
13414 return function(t) {
13415 var x = i(t);
13416 return x - 360 * Math.floor(x / 360);
13417 };
13418});
13419
13420
13421/***/ }),
13422
13423/***/ "./node_modules/d3-interpolate/src/index.js":
13424/*!**************************************************!*\
13425 !*** ./node_modules/d3-interpolate/src/index.js ***!
13426 \**************************************************/
13427/*! exports provided: interpolate, interpolateArray, interpolateBasis, interpolateBasisClosed, interpolateDate, interpolateDiscrete, interpolateHue, interpolateNumber, interpolateObject, interpolateRound, interpolateString, interpolateTransformCss, interpolateTransformSvg, interpolateZoom, interpolateRgb, interpolateRgbBasis, interpolateRgbBasisClosed, interpolateHsl, interpolateHslLong, interpolateLab, interpolateHcl, interpolateHclLong, interpolateCubehelix, interpolateCubehelixLong, piecewise, quantize */
13428/***/ (function(module, __webpack_exports__, __webpack_require__) {
13429
13430"use strict";
13431__webpack_require__.r(__webpack_exports__);
13432/* harmony import */ var _value__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value */ "./node_modules/d3-interpolate/src/value.js");
13433/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolate", function() { return _value__WEBPACK_IMPORTED_MODULE_0__["default"]; });
13434
13435/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-interpolate/src/array.js");
13436/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateArray", function() { return _array__WEBPACK_IMPORTED_MODULE_1__["default"]; });
13437
13438/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-interpolate/src/basis.js");
13439/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasis", function() { return _basis__WEBPACK_IMPORTED_MODULE_2__["default"]; });
13440
13441/* harmony import */ var _basisClosed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basisClosed */ "./node_modules/d3-interpolate/src/basisClosed.js");
13442/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasisClosed", function() { return _basisClosed__WEBPACK_IMPORTED_MODULE_3__["default"]; });
13443
13444/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./date */ "./node_modules/d3-interpolate/src/date.js");
13445/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDate", function() { return _date__WEBPACK_IMPORTED_MODULE_4__["default"]; });
13446
13447/* harmony import */ var _discrete__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./discrete */ "./node_modules/d3-interpolate/src/discrete.js");
13448/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDiscrete", function() { return _discrete__WEBPACK_IMPORTED_MODULE_5__["default"]; });
13449
13450/* harmony import */ var _hue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./hue */ "./node_modules/d3-interpolate/src/hue.js");
13451/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHue", function() { return _hue__WEBPACK_IMPORTED_MODULE_6__["default"]; });
13452
13453/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./number */ "./node_modules/d3-interpolate/src/number.js");
13454/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateNumber", function() { return _number__WEBPACK_IMPORTED_MODULE_7__["default"]; });
13455
13456/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./object */ "./node_modules/d3-interpolate/src/object.js");
13457/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateObject", function() { return _object__WEBPACK_IMPORTED_MODULE_8__["default"]; });
13458
13459/* harmony import */ var _round__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./round */ "./node_modules/d3-interpolate/src/round.js");
13460/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRound", function() { return _round__WEBPACK_IMPORTED_MODULE_9__["default"]; });
13461
13462/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./string */ "./node_modules/d3-interpolate/src/string.js");
13463/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateString", function() { return _string__WEBPACK_IMPORTED_MODULE_10__["default"]; });
13464
13465/* harmony import */ var _transform_index__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./transform/index */ "./node_modules/d3-interpolate/src/transform/index.js");
13466/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return _transform_index__WEBPACK_IMPORTED_MODULE_11__["interpolateTransformCss"]; });
13467
13468/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return _transform_index__WEBPACK_IMPORTED_MODULE_11__["interpolateTransformSvg"]; });
13469
13470/* harmony import */ var _zoom__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./zoom */ "./node_modules/d3-interpolate/src/zoom.js");
13471/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateZoom", function() { return _zoom__WEBPACK_IMPORTED_MODULE_12__["default"]; });
13472
13473/* harmony import */ var _rgb__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./rgb */ "./node_modules/d3-interpolate/src/rgb.js");
13474/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgb", function() { return _rgb__WEBPACK_IMPORTED_MODULE_13__["default"]; });
13475
13476/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasis", function() { return _rgb__WEBPACK_IMPORTED_MODULE_13__["rgbBasis"]; });
13477
13478/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasisClosed", function() { return _rgb__WEBPACK_IMPORTED_MODULE_13__["rgbBasisClosed"]; });
13479
13480/* harmony import */ var _hsl__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./hsl */ "./node_modules/d3-interpolate/src/hsl.js");
13481/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHsl", function() { return _hsl__WEBPACK_IMPORTED_MODULE_14__["default"]; });
13482
13483/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHslLong", function() { return _hsl__WEBPACK_IMPORTED_MODULE_14__["hslLong"]; });
13484
13485/* harmony import */ var _lab__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./lab */ "./node_modules/d3-interpolate/src/lab.js");
13486/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateLab", function() { return _lab__WEBPACK_IMPORTED_MODULE_15__["default"]; });
13487
13488/* harmony import */ var _hcl__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./hcl */ "./node_modules/d3-interpolate/src/hcl.js");
13489/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHcl", function() { return _hcl__WEBPACK_IMPORTED_MODULE_16__["default"]; });
13490
13491/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHclLong", function() { return _hcl__WEBPACK_IMPORTED_MODULE_16__["hclLong"]; });
13492
13493/* harmony import */ var _cubehelix__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./cubehelix */ "./node_modules/d3-interpolate/src/cubehelix.js");
13494/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelix", function() { return _cubehelix__WEBPACK_IMPORTED_MODULE_17__["default"]; });
13495
13496/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixLong", function() { return _cubehelix__WEBPACK_IMPORTED_MODULE_17__["cubehelixLong"]; });
13497
13498/* harmony import */ var _piecewise__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./piecewise */ "./node_modules/d3-interpolate/src/piecewise.js");
13499/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "piecewise", function() { return _piecewise__WEBPACK_IMPORTED_MODULE_18__["default"]; });
13500
13501/* harmony import */ var _quantize__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./quantize */ "./node_modules/d3-interpolate/src/quantize.js");
13502/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantize", function() { return _quantize__WEBPACK_IMPORTED_MODULE_19__["default"]; });
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526/***/ }),
13527
13528/***/ "./node_modules/d3-interpolate/src/lab.js":
13529/*!************************************************!*\
13530 !*** ./node_modules/d3-interpolate/src/lab.js ***!
13531 \************************************************/
13532/*! exports provided: default */
13533/***/ (function(module, __webpack_exports__, __webpack_require__) {
13534
13535"use strict";
13536__webpack_require__.r(__webpack_exports__);
13537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return lab; });
13538/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13539/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
13540
13541
13542
13543function lab(start, end) {
13544 var l = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["lab"])(start)).l, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["lab"])(end)).l),
13545 a = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.a, end.a),
13546 b = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.b, end.b),
13547 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
13548 return function(t) {
13549 start.l = l(t);
13550 start.a = a(t);
13551 start.b = b(t);
13552 start.opacity = opacity(t);
13553 return start + "";
13554 };
13555}
13556
13557
13558/***/ }),
13559
13560/***/ "./node_modules/d3-interpolate/src/number.js":
13561/*!***************************************************!*\
13562 !*** ./node_modules/d3-interpolate/src/number.js ***!
13563 \***************************************************/
13564/*! exports provided: default */
13565/***/ (function(module, __webpack_exports__, __webpack_require__) {
13566
13567"use strict";
13568__webpack_require__.r(__webpack_exports__);
13569/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13570 return a = +a, b -= a, function(t) {
13571 return a + b * t;
13572 };
13573});
13574
13575
13576/***/ }),
13577
13578/***/ "./node_modules/d3-interpolate/src/object.js":
13579/*!***************************************************!*\
13580 !*** ./node_modules/d3-interpolate/src/object.js ***!
13581 \***************************************************/
13582/*! exports provided: default */
13583/***/ (function(module, __webpack_exports__, __webpack_require__) {
13584
13585"use strict";
13586__webpack_require__.r(__webpack_exports__);
13587/* harmony import */ var _value__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value */ "./node_modules/d3-interpolate/src/value.js");
13588
13589
13590/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13591 var i = {},
13592 c = {},
13593 k;
13594
13595 if (a === null || typeof a !== "object") a = {};
13596 if (b === null || typeof b !== "object") b = {};
13597
13598 for (k in b) {
13599 if (k in a) {
13600 i[k] = Object(_value__WEBPACK_IMPORTED_MODULE_0__["default"])(a[k], b[k]);
13601 } else {
13602 c[k] = b[k];
13603 }
13604 }
13605
13606 return function(t) {
13607 for (k in i) c[k] = i[k](t);
13608 return c;
13609 };
13610});
13611
13612
13613/***/ }),
13614
13615/***/ "./node_modules/d3-interpolate/src/piecewise.js":
13616/*!******************************************************!*\
13617 !*** ./node_modules/d3-interpolate/src/piecewise.js ***!
13618 \******************************************************/
13619/*! exports provided: default */
13620/***/ (function(module, __webpack_exports__, __webpack_require__) {
13621
13622"use strict";
13623__webpack_require__.r(__webpack_exports__);
13624/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return piecewise; });
13625function piecewise(interpolate, values) {
13626 var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);
13627 while (i < n) I[i] = interpolate(v, v = values[++i]);
13628 return function(t) {
13629 var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
13630 return I[i](t - i);
13631 };
13632}
13633
13634
13635/***/ }),
13636
13637/***/ "./node_modules/d3-interpolate/src/quantize.js":
13638/*!*****************************************************!*\
13639 !*** ./node_modules/d3-interpolate/src/quantize.js ***!
13640 \*****************************************************/
13641/*! exports provided: default */
13642/***/ (function(module, __webpack_exports__, __webpack_require__) {
13643
13644"use strict";
13645__webpack_require__.r(__webpack_exports__);
13646/* harmony default export */ __webpack_exports__["default"] = (function(interpolator, n) {
13647 var samples = new Array(n);
13648 for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
13649 return samples;
13650});
13651
13652
13653/***/ }),
13654
13655/***/ "./node_modules/d3-interpolate/src/rgb.js":
13656/*!************************************************!*\
13657 !*** ./node_modules/d3-interpolate/src/rgb.js ***!
13658 \************************************************/
13659/*! exports provided: default, rgbBasis, rgbBasisClosed */
13660/***/ (function(module, __webpack_exports__, __webpack_require__) {
13661
13662"use strict";
13663__webpack_require__.r(__webpack_exports__);
13664/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbBasis", function() { return rgbBasis; });
13665/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbBasisClosed", function() { return rgbBasisClosed; });
13666/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13667/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-interpolate/src/basis.js");
13668/* harmony import */ var _basisClosed__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basisClosed */ "./node_modules/d3-interpolate/src/basisClosed.js");
13669/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
13670
13671
13672
13673
13674
13675/* harmony default export */ __webpack_exports__["default"] = ((function rgbGamma(y) {
13676 var color = Object(_color__WEBPACK_IMPORTED_MODULE_3__["gamma"])(y);
13677
13678 function rgb(start, end) {
13679 var r = color((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["rgb"])(start)).r, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["rgb"])(end)).r),
13680 g = color(start.g, end.g),
13681 b = color(start.b, end.b),
13682 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_3__["default"])(start.opacity, end.opacity);
13683 return function(t) {
13684 start.r = r(t);
13685 start.g = g(t);
13686 start.b = b(t);
13687 start.opacity = opacity(t);
13688 return start + "";
13689 };
13690 }
13691
13692 rgb.gamma = rgbGamma;
13693
13694 return rgb;
13695})(1));
13696
13697function rgbSpline(spline) {
13698 return function(colors) {
13699 var n = colors.length,
13700 r = new Array(n),
13701 g = new Array(n),
13702 b = new Array(n),
13703 i, color;
13704 for (i = 0; i < n; ++i) {
13705 color = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["rgb"])(colors[i]);
13706 r[i] = color.r || 0;
13707 g[i] = color.g || 0;
13708 b[i] = color.b || 0;
13709 }
13710 r = spline(r);
13711 g = spline(g);
13712 b = spline(b);
13713 color.opacity = 1;
13714 return function(t) {
13715 color.r = r(t);
13716 color.g = g(t);
13717 color.b = b(t);
13718 return color + "";
13719 };
13720 };
13721}
13722
13723var rgbBasis = rgbSpline(_basis__WEBPACK_IMPORTED_MODULE_1__["default"]);
13724var rgbBasisClosed = rgbSpline(_basisClosed__WEBPACK_IMPORTED_MODULE_2__["default"]);
13725
13726
13727/***/ }),
13728
13729/***/ "./node_modules/d3-interpolate/src/round.js":
13730/*!**************************************************!*\
13731 !*** ./node_modules/d3-interpolate/src/round.js ***!
13732 \**************************************************/
13733/*! exports provided: default */
13734/***/ (function(module, __webpack_exports__, __webpack_require__) {
13735
13736"use strict";
13737__webpack_require__.r(__webpack_exports__);
13738/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13739 return a = +a, b -= a, function(t) {
13740 return Math.round(a + b * t);
13741 };
13742});
13743
13744
13745/***/ }),
13746
13747/***/ "./node_modules/d3-interpolate/src/string.js":
13748/*!***************************************************!*\
13749 !*** ./node_modules/d3-interpolate/src/string.js ***!
13750 \***************************************************/
13751/*! exports provided: default */
13752/***/ (function(module, __webpack_exports__, __webpack_require__) {
13753
13754"use strict";
13755__webpack_require__.r(__webpack_exports__);
13756/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-interpolate/src/number.js");
13757
13758
13759var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
13760 reB = new RegExp(reA.source, "g");
13761
13762function zero(b) {
13763 return function() {
13764 return b;
13765 };
13766}
13767
13768function one(b) {
13769 return function(t) {
13770 return b(t) + "";
13771 };
13772}
13773
13774/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13775 var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
13776 am, // current match in a
13777 bm, // current match in b
13778 bs, // string preceding current number in b, if any
13779 i = -1, // index in s
13780 s = [], // string constants and placeholders
13781 q = []; // number interpolators
13782
13783 // Coerce inputs to strings.
13784 a = a + "", b = b + "";
13785
13786 // Interpolate pairs of numbers in a & b.
13787 while ((am = reA.exec(a))
13788 && (bm = reB.exec(b))) {
13789 if ((bs = bm.index) > bi) { // a string precedes the next number in b
13790 bs = b.slice(bi, bs);
13791 if (s[i]) s[i] += bs; // coalesce with previous string
13792 else s[++i] = bs;
13793 }
13794 if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
13795 if (s[i]) s[i] += bm; // coalesce with previous string
13796 else s[++i] = bm;
13797 } else { // interpolate non-matching numbers
13798 s[++i] = null;
13799 q.push({i: i, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(am, bm)});
13800 }
13801 bi = reB.lastIndex;
13802 }
13803
13804 // Add remains of b.
13805 if (bi < b.length) {
13806 bs = b.slice(bi);
13807 if (s[i]) s[i] += bs; // coalesce with previous string
13808 else s[++i] = bs;
13809 }
13810
13811 // Special optimization for only a single match.
13812 // Otherwise, interpolate each of the numbers and rejoin the string.
13813 return s.length < 2 ? (q[0]
13814 ? one(q[0].x)
13815 : zero(b))
13816 : (b = q.length, function(t) {
13817 for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
13818 return s.join("");
13819 });
13820});
13821
13822
13823/***/ }),
13824
13825/***/ "./node_modules/d3-interpolate/src/transform/decompose.js":
13826/*!****************************************************************!*\
13827 !*** ./node_modules/d3-interpolate/src/transform/decompose.js ***!
13828 \****************************************************************/
13829/*! exports provided: identity, default */
13830/***/ (function(module, __webpack_exports__, __webpack_require__) {
13831
13832"use strict";
13833__webpack_require__.r(__webpack_exports__);
13834/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
13835var degrees = 180 / Math.PI;
13836
13837var identity = {
13838 translateX: 0,
13839 translateY: 0,
13840 rotate: 0,
13841 skewX: 0,
13842 scaleX: 1,
13843 scaleY: 1
13844};
13845
13846/* harmony default export */ __webpack_exports__["default"] = (function(a, b, c, d, e, f) {
13847 var scaleX, scaleY, skewX;
13848 if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
13849 if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
13850 if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
13851 if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
13852 return {
13853 translateX: e,
13854 translateY: f,
13855 rotate: Math.atan2(b, a) * degrees,
13856 skewX: Math.atan(skewX) * degrees,
13857 scaleX: scaleX,
13858 scaleY: scaleY
13859 };
13860});
13861
13862
13863/***/ }),
13864
13865/***/ "./node_modules/d3-interpolate/src/transform/index.js":
13866/*!************************************************************!*\
13867 !*** ./node_modules/d3-interpolate/src/transform/index.js ***!
13868 \************************************************************/
13869/*! exports provided: interpolateTransformCss, interpolateTransformSvg */
13870/***/ (function(module, __webpack_exports__, __webpack_require__) {
13871
13872"use strict";
13873__webpack_require__.r(__webpack_exports__);
13874/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return interpolateTransformCss; });
13875/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return interpolateTransformSvg; });
13876/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../number */ "./node_modules/d3-interpolate/src/number.js");
13877/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse */ "./node_modules/d3-interpolate/src/transform/parse.js");
13878
13879
13880
13881function interpolateTransform(parse, pxComma, pxParen, degParen) {
13882
13883 function pop(s) {
13884 return s.length ? s.pop() + " " : "";
13885 }
13886
13887 function translate(xa, ya, xb, yb, s, q) {
13888 if (xa !== xb || ya !== yb) {
13889 var i = s.push("translate(", null, pxComma, null, pxParen);
13890 q.push({i: i - 4, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(xa, xb)}, {i: i - 2, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(ya, yb)});
13891 } else if (xb || yb) {
13892 s.push("translate(" + xb + pxComma + yb + pxParen);
13893 }
13894 }
13895
13896 function rotate(a, b, s, q) {
13897 if (a !== b) {
13898 if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
13899 q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)});
13900 } else if (b) {
13901 s.push(pop(s) + "rotate(" + b + degParen);
13902 }
13903 }
13904
13905 function skewX(a, b, s, q) {
13906 if (a !== b) {
13907 q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)});
13908 } else if (b) {
13909 s.push(pop(s) + "skewX(" + b + degParen);
13910 }
13911 }
13912
13913 function scale(xa, ya, xb, yb, s, q) {
13914 if (xa !== xb || ya !== yb) {
13915 var i = s.push(pop(s) + "scale(", null, ",", null, ")");
13916 q.push({i: i - 4, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(xa, xb)}, {i: i - 2, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(ya, yb)});
13917 } else if (xb !== 1 || yb !== 1) {
13918 s.push(pop(s) + "scale(" + xb + "," + yb + ")");
13919 }
13920 }
13921
13922 return function(a, b) {
13923 var s = [], // string constants and placeholders
13924 q = []; // number interpolators
13925 a = parse(a), b = parse(b);
13926 translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
13927 rotate(a.rotate, b.rotate, s, q);
13928 skewX(a.skewX, b.skewX, s, q);
13929 scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
13930 a = b = null; // gc
13931 return function(t) {
13932 var i = -1, n = q.length, o;
13933 while (++i < n) s[(o = q[i]).i] = o.x(t);
13934 return s.join("");
13935 };
13936 };
13937}
13938
13939var interpolateTransformCss = interpolateTransform(_parse__WEBPACK_IMPORTED_MODULE_1__["parseCss"], "px, ", "px)", "deg)");
13940var interpolateTransformSvg = interpolateTransform(_parse__WEBPACK_IMPORTED_MODULE_1__["parseSvg"], ", ", ")", ")");
13941
13942
13943/***/ }),
13944
13945/***/ "./node_modules/d3-interpolate/src/transform/parse.js":
13946/*!************************************************************!*\
13947 !*** ./node_modules/d3-interpolate/src/transform/parse.js ***!
13948 \************************************************************/
13949/*! exports provided: parseCss, parseSvg */
13950/***/ (function(module, __webpack_exports__, __webpack_require__) {
13951
13952"use strict";
13953__webpack_require__.r(__webpack_exports__);
13954/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseCss", function() { return parseCss; });
13955/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseSvg", function() { return parseSvg; });
13956/* harmony import */ var _decompose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./decompose */ "./node_modules/d3-interpolate/src/transform/decompose.js");
13957
13958
13959var cssNode,
13960 cssRoot,
13961 cssView,
13962 svgNode;
13963
13964function parseCss(value) {
13965 if (value === "none") return _decompose__WEBPACK_IMPORTED_MODULE_0__["identity"];
13966 if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView;
13967 cssNode.style.transform = value;
13968 value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform");
13969 cssRoot.removeChild(cssNode);
13970 value = value.slice(7, -1).split(",");
13971 return Object(_decompose__WEBPACK_IMPORTED_MODULE_0__["default"])(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);
13972}
13973
13974function parseSvg(value) {
13975 if (value == null) return _decompose__WEBPACK_IMPORTED_MODULE_0__["identity"];
13976 if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
13977 svgNode.setAttribute("transform", value);
13978 if (!(value = svgNode.transform.baseVal.consolidate())) return _decompose__WEBPACK_IMPORTED_MODULE_0__["identity"];
13979 value = value.matrix;
13980 return Object(_decompose__WEBPACK_IMPORTED_MODULE_0__["default"])(value.a, value.b, value.c, value.d, value.e, value.f);
13981}
13982
13983
13984/***/ }),
13985
13986/***/ "./node_modules/d3-interpolate/src/value.js":
13987/*!**************************************************!*\
13988 !*** ./node_modules/d3-interpolate/src/value.js ***!
13989 \**************************************************/
13990/*! exports provided: default */
13991/***/ (function(module, __webpack_exports__, __webpack_require__) {
13992
13993"use strict";
13994__webpack_require__.r(__webpack_exports__);
13995/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13996/* harmony import */ var _rgb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgb */ "./node_modules/d3-interpolate/src/rgb.js");
13997/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array */ "./node_modules/d3-interpolate/src/array.js");
13998/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./date */ "./node_modules/d3-interpolate/src/date.js");
13999/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number */ "./node_modules/d3-interpolate/src/number.js");
14000/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./object */ "./node_modules/d3-interpolate/src/object.js");
14001/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./string */ "./node_modules/d3-interpolate/src/string.js");
14002/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-interpolate/src/constant.js");
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
14013 var t = typeof b, c;
14014 return b == null || t === "boolean" ? Object(_constant__WEBPACK_IMPORTED_MODULE_7__["default"])(b)
14015 : (t === "number" ? _number__WEBPACK_IMPORTED_MODULE_4__["default"]
14016 : t === "string" ? ((c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["color"])(b)) ? (b = c, _rgb__WEBPACK_IMPORTED_MODULE_1__["default"]) : _string__WEBPACK_IMPORTED_MODULE_6__["default"])
14017 : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_0__["color"] ? _rgb__WEBPACK_IMPORTED_MODULE_1__["default"]
14018 : b instanceof Date ? _date__WEBPACK_IMPORTED_MODULE_3__["default"]
14019 : Array.isArray(b) ? _array__WEBPACK_IMPORTED_MODULE_2__["default"]
14020 : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? _object__WEBPACK_IMPORTED_MODULE_5__["default"]
14021 : _number__WEBPACK_IMPORTED_MODULE_4__["default"])(a, b);
14022});
14023
14024
14025/***/ }),
14026
14027/***/ "./node_modules/d3-interpolate/src/zoom.js":
14028/*!*************************************************!*\
14029 !*** ./node_modules/d3-interpolate/src/zoom.js ***!
14030 \*************************************************/
14031/*! exports provided: default */
14032/***/ (function(module, __webpack_exports__, __webpack_require__) {
14033
14034"use strict";
14035__webpack_require__.r(__webpack_exports__);
14036var rho = Math.SQRT2,
14037 rho2 = 2,
14038 rho4 = 4,
14039 epsilon2 = 1e-12;
14040
14041function cosh(x) {
14042 return ((x = Math.exp(x)) + 1 / x) / 2;
14043}
14044
14045function sinh(x) {
14046 return ((x = Math.exp(x)) - 1 / x) / 2;
14047}
14048
14049function tanh(x) {
14050 return ((x = Math.exp(2 * x)) - 1) / (x + 1);
14051}
14052
14053// p0 = [ux0, uy0, w0]
14054// p1 = [ux1, uy1, w1]
14055/* harmony default export */ __webpack_exports__["default"] = (function(p0, p1) {
14056 var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
14057 ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
14058 dx = ux1 - ux0,
14059 dy = uy1 - uy0,
14060 d2 = dx * dx + dy * dy,
14061 i,
14062 S;
14063
14064 // Special case for u0 ≅ u1.
14065 if (d2 < epsilon2) {
14066 S = Math.log(w1 / w0) / rho;
14067 i = function(t) {
14068 return [
14069 ux0 + t * dx,
14070 uy0 + t * dy,
14071 w0 * Math.exp(rho * t * S)
14072 ];
14073 }
14074 }
14075
14076 // General case.
14077 else {
14078 var d1 = Math.sqrt(d2),
14079 b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
14080 b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
14081 r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
14082 r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
14083 S = (r1 - r0) / rho;
14084 i = function(t) {
14085 var s = t * S,
14086 coshr0 = cosh(r0),
14087 u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
14088 return [
14089 ux0 + u * dx,
14090 uy0 + u * dy,
14091 w0 * coshr0 / cosh(rho * s + r0)
14092 ];
14093 }
14094 }
14095
14096 i.duration = S * 1000;
14097
14098 return i;
14099});
14100
14101
14102/***/ }),
14103
14104/***/ "./node_modules/d3-path/src/index.js":
14105/*!*******************************************!*\
14106 !*** ./node_modules/d3-path/src/index.js ***!
14107 \*******************************************/
14108/*! exports provided: path */
14109/***/ (function(module, __webpack_exports__, __webpack_require__) {
14110
14111"use strict";
14112__webpack_require__.r(__webpack_exports__);
14113/* harmony import */ var _path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./path */ "./node_modules/d3-path/src/path.js");
14114/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "path", function() { return _path__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14115
14116
14117
14118
14119/***/ }),
14120
14121/***/ "./node_modules/d3-path/src/path.js":
14122/*!******************************************!*\
14123 !*** ./node_modules/d3-path/src/path.js ***!
14124 \******************************************/
14125/*! exports provided: default */
14126/***/ (function(module, __webpack_exports__, __webpack_require__) {
14127
14128"use strict";
14129__webpack_require__.r(__webpack_exports__);
14130var pi = Math.PI,
14131 tau = 2 * pi,
14132 epsilon = 1e-6,
14133 tauEpsilon = tau - epsilon;
14134
14135function Path() {
14136 this._x0 = this._y0 = // start of current subpath
14137 this._x1 = this._y1 = null; // end of current subpath
14138 this._ = "";
14139}
14140
14141function path() {
14142 return new Path;
14143}
14144
14145Path.prototype = path.prototype = {
14146 constructor: Path,
14147 moveTo: function(x, y) {
14148 this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
14149 },
14150 closePath: function() {
14151 if (this._x1 !== null) {
14152 this._x1 = this._x0, this._y1 = this._y0;
14153 this._ += "Z";
14154 }
14155 },
14156 lineTo: function(x, y) {
14157 this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
14158 },
14159 quadraticCurveTo: function(x1, y1, x, y) {
14160 this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
14161 },
14162 bezierCurveTo: function(x1, y1, x2, y2, x, y) {
14163 this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
14164 },
14165 arcTo: function(x1, y1, x2, y2, r) {
14166 x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
14167 var x0 = this._x1,
14168 y0 = this._y1,
14169 x21 = x2 - x1,
14170 y21 = y2 - y1,
14171 x01 = x0 - x1,
14172 y01 = y0 - y1,
14173 l01_2 = x01 * x01 + y01 * y01;
14174
14175 // Is the radius negative? Error.
14176 if (r < 0) throw new Error("negative radius: " + r);
14177
14178 // Is this path empty? Move to (x1,y1).
14179 if (this._x1 === null) {
14180 this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
14181 }
14182
14183 // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
14184 else if (!(l01_2 > epsilon));
14185
14186 // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
14187 // Equivalently, is (x1,y1) coincident with (x2,y2)?
14188 // Or, is the radius zero? Line to (x1,y1).
14189 else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
14190 this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
14191 }
14192
14193 // Otherwise, draw an arc!
14194 else {
14195 var x20 = x2 - x0,
14196 y20 = y2 - y0,
14197 l21_2 = x21 * x21 + y21 * y21,
14198 l20_2 = x20 * x20 + y20 * y20,
14199 l21 = Math.sqrt(l21_2),
14200 l01 = Math.sqrt(l01_2),
14201 l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
14202 t01 = l / l01,
14203 t21 = l / l21;
14204
14205 // If the start tangent is not coincident with (x0,y0), line to.
14206 if (Math.abs(t01 - 1) > epsilon) {
14207 this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
14208 }
14209
14210 this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
14211 }
14212 },
14213 arc: function(x, y, r, a0, a1, ccw) {
14214 x = +x, y = +y, r = +r;
14215 var dx = r * Math.cos(a0),
14216 dy = r * Math.sin(a0),
14217 x0 = x + dx,
14218 y0 = y + dy,
14219 cw = 1 ^ ccw,
14220 da = ccw ? a0 - a1 : a1 - a0;
14221
14222 // Is the radius negative? Error.
14223 if (r < 0) throw new Error("negative radius: " + r);
14224
14225 // Is this path empty? Move to (x0,y0).
14226 if (this._x1 === null) {
14227 this._ += "M" + x0 + "," + y0;
14228 }
14229
14230 // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
14231 else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
14232 this._ += "L" + x0 + "," + y0;
14233 }
14234
14235 // Is this arc empty? We’re done.
14236 if (!r) return;
14237
14238 // Does the angle go the wrong way? Flip the direction.
14239 if (da < 0) da = da % tau + tau;
14240
14241 // Is this a complete circle? Draw two arcs to complete the circle.
14242 if (da > tauEpsilon) {
14243 this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
14244 }
14245
14246 // Is this arc non-empty? Draw an arc!
14247 else if (da > epsilon) {
14248 this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
14249 }
14250 },
14251 rect: function(x, y, w, h) {
14252 this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z";
14253 },
14254 toString: function() {
14255 return this._;
14256 }
14257};
14258
14259/* harmony default export */ __webpack_exports__["default"] = (path);
14260
14261
14262/***/ }),
14263
14264/***/ "./node_modules/d3-polygon/src/area.js":
14265/*!*********************************************!*\
14266 !*** ./node_modules/d3-polygon/src/area.js ***!
14267 \*********************************************/
14268/*! exports provided: default */
14269/***/ (function(module, __webpack_exports__, __webpack_require__) {
14270
14271"use strict";
14272__webpack_require__.r(__webpack_exports__);
14273/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
14274 var i = -1,
14275 n = polygon.length,
14276 a,
14277 b = polygon[n - 1],
14278 area = 0;
14279
14280 while (++i < n) {
14281 a = b;
14282 b = polygon[i];
14283 area += a[1] * b[0] - a[0] * b[1];
14284 }
14285
14286 return area / 2;
14287});
14288
14289
14290/***/ }),
14291
14292/***/ "./node_modules/d3-polygon/src/centroid.js":
14293/*!*************************************************!*\
14294 !*** ./node_modules/d3-polygon/src/centroid.js ***!
14295 \*************************************************/
14296/*! exports provided: default */
14297/***/ (function(module, __webpack_exports__, __webpack_require__) {
14298
14299"use strict";
14300__webpack_require__.r(__webpack_exports__);
14301/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
14302 var i = -1,
14303 n = polygon.length,
14304 x = 0,
14305 y = 0,
14306 a,
14307 b = polygon[n - 1],
14308 c,
14309 k = 0;
14310
14311 while (++i < n) {
14312 a = b;
14313 b = polygon[i];
14314 k += c = a[0] * b[1] - b[0] * a[1];
14315 x += (a[0] + b[0]) * c;
14316 y += (a[1] + b[1]) * c;
14317 }
14318
14319 return k *= 3, [x / k, y / k];
14320});
14321
14322
14323/***/ }),
14324
14325/***/ "./node_modules/d3-polygon/src/contains.js":
14326/*!*************************************************!*\
14327 !*** ./node_modules/d3-polygon/src/contains.js ***!
14328 \*************************************************/
14329/*! exports provided: default */
14330/***/ (function(module, __webpack_exports__, __webpack_require__) {
14331
14332"use strict";
14333__webpack_require__.r(__webpack_exports__);
14334/* harmony default export */ __webpack_exports__["default"] = (function(polygon, point) {
14335 var n = polygon.length,
14336 p = polygon[n - 1],
14337 x = point[0], y = point[1],
14338 x0 = p[0], y0 = p[1],
14339 x1, y1,
14340 inside = false;
14341
14342 for (var i = 0; i < n; ++i) {
14343 p = polygon[i], x1 = p[0], y1 = p[1];
14344 if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;
14345 x0 = x1, y0 = y1;
14346 }
14347
14348 return inside;
14349});
14350
14351
14352/***/ }),
14353
14354/***/ "./node_modules/d3-polygon/src/cross.js":
14355/*!**********************************************!*\
14356 !*** ./node_modules/d3-polygon/src/cross.js ***!
14357 \**********************************************/
14358/*! exports provided: default */
14359/***/ (function(module, __webpack_exports__, __webpack_require__) {
14360
14361"use strict";
14362__webpack_require__.r(__webpack_exports__);
14363// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
14364// the 3D cross product in a quadrant I Cartesian coordinate system (+x is
14365// right, +y is up). Returns a positive value if ABC is counter-clockwise,
14366// negative if clockwise, and zero if the points are collinear.
14367/* harmony default export */ __webpack_exports__["default"] = (function(a, b, c) {
14368 return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
14369});
14370
14371
14372/***/ }),
14373
14374/***/ "./node_modules/d3-polygon/src/hull.js":
14375/*!*********************************************!*\
14376 !*** ./node_modules/d3-polygon/src/hull.js ***!
14377 \*********************************************/
14378/*! exports provided: default */
14379/***/ (function(module, __webpack_exports__, __webpack_require__) {
14380
14381"use strict";
14382__webpack_require__.r(__webpack_exports__);
14383/* harmony import */ var _cross__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cross */ "./node_modules/d3-polygon/src/cross.js");
14384
14385
14386function lexicographicOrder(a, b) {
14387 return a[0] - b[0] || a[1] - b[1];
14388}
14389
14390// Computes the upper convex hull per the monotone chain algorithm.
14391// Assumes points.length >= 3, is sorted by x, unique in y.
14392// Returns an array of indices into points in left-to-right order.
14393function computeUpperHullIndexes(points) {
14394 var n = points.length,
14395 indexes = [0, 1],
14396 size = 2;
14397
14398 for (var i = 2; i < n; ++i) {
14399 while (size > 1 && Object(_cross__WEBPACK_IMPORTED_MODULE_0__["default"])(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;
14400 indexes[size++] = i;
14401 }
14402
14403 return indexes.slice(0, size); // remove popped points
14404}
14405
14406/* harmony default export */ __webpack_exports__["default"] = (function(points) {
14407 if ((n = points.length) < 3) return null;
14408
14409 var i,
14410 n,
14411 sortedPoints = new Array(n),
14412 flippedPoints = new Array(n);
14413
14414 for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];
14415 sortedPoints.sort(lexicographicOrder);
14416 for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];
14417
14418 var upperIndexes = computeUpperHullIndexes(sortedPoints),
14419 lowerIndexes = computeUpperHullIndexes(flippedPoints);
14420
14421 // Construct the hull polygon, removing possible duplicate endpoints.
14422 var skipLeft = lowerIndexes[0] === upperIndexes[0],
14423 skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],
14424 hull = [];
14425
14426 // Add upper hull in right-to-l order.
14427 // Then add lower hull in left-to-right order.
14428 for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);
14429 for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);
14430
14431 return hull;
14432});
14433
14434
14435/***/ }),
14436
14437/***/ "./node_modules/d3-polygon/src/index.js":
14438/*!**********************************************!*\
14439 !*** ./node_modules/d3-polygon/src/index.js ***!
14440 \**********************************************/
14441/*! exports provided: polygonArea, polygonCentroid, polygonHull, polygonContains, polygonLength */
14442/***/ (function(module, __webpack_exports__, __webpack_require__) {
14443
14444"use strict";
14445__webpack_require__.r(__webpack_exports__);
14446/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./area */ "./node_modules/d3-polygon/src/area.js");
14447/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonArea", function() { return _area__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14448
14449/* harmony import */ var _centroid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./centroid */ "./node_modules/d3-polygon/src/centroid.js");
14450/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonCentroid", function() { return _centroid__WEBPACK_IMPORTED_MODULE_1__["default"]; });
14451
14452/* harmony import */ var _hull__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hull */ "./node_modules/d3-polygon/src/hull.js");
14453/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonHull", function() { return _hull__WEBPACK_IMPORTED_MODULE_2__["default"]; });
14454
14455/* harmony import */ var _contains__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contains */ "./node_modules/d3-polygon/src/contains.js");
14456/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonContains", function() { return _contains__WEBPACK_IMPORTED_MODULE_3__["default"]; });
14457
14458/* harmony import */ var _length__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./length */ "./node_modules/d3-polygon/src/length.js");
14459/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonLength", function() { return _length__WEBPACK_IMPORTED_MODULE_4__["default"]; });
14460
14461
14462
14463
14464
14465
14466
14467
14468/***/ }),
14469
14470/***/ "./node_modules/d3-polygon/src/length.js":
14471/*!***********************************************!*\
14472 !*** ./node_modules/d3-polygon/src/length.js ***!
14473 \***********************************************/
14474/*! exports provided: default */
14475/***/ (function(module, __webpack_exports__, __webpack_require__) {
14476
14477"use strict";
14478__webpack_require__.r(__webpack_exports__);
14479/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
14480 var i = -1,
14481 n = polygon.length,
14482 b = polygon[n - 1],
14483 xa,
14484 ya,
14485 xb = b[0],
14486 yb = b[1],
14487 perimeter = 0;
14488
14489 while (++i < n) {
14490 xa = xb;
14491 ya = yb;
14492 b = polygon[i];
14493 xb = b[0];
14494 yb = b[1];
14495 xa -= xb;
14496 ya -= yb;
14497 perimeter += Math.sqrt(xa * xa + ya * ya);
14498 }
14499
14500 return perimeter;
14501});
14502
14503
14504/***/ }),
14505
14506/***/ "./node_modules/d3-quadtree/src/add.js":
14507/*!*********************************************!*\
14508 !*** ./node_modules/d3-quadtree/src/add.js ***!
14509 \*********************************************/
14510/*! exports provided: default, addAll */
14511/***/ (function(module, __webpack_exports__, __webpack_require__) {
14512
14513"use strict";
14514__webpack_require__.r(__webpack_exports__);
14515/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addAll", function() { return addAll; });
14516/* harmony default export */ __webpack_exports__["default"] = (function(d) {
14517 var x = +this._x.call(null, d),
14518 y = +this._y.call(null, d);
14519 return add(this.cover(x, y), x, y, d);
14520});
14521
14522function add(tree, x, y, d) {
14523 if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
14524
14525 var parent,
14526 node = tree._root,
14527 leaf = {data: d},
14528 x0 = tree._x0,
14529 y0 = tree._y0,
14530 x1 = tree._x1,
14531 y1 = tree._y1,
14532 xm,
14533 ym,
14534 xp,
14535 yp,
14536 right,
14537 bottom,
14538 i,
14539 j;
14540
14541 // If the tree is empty, initialize the root as a leaf.
14542 if (!node) return tree._root = leaf, tree;
14543
14544 // Find the existing leaf for the new point, or add it.
14545 while (node.length) {
14546 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
14547 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
14548 if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
14549 }
14550
14551 // Is the new point is exactly coincident with the existing point?
14552 xp = +tree._x.call(null, node.data);
14553 yp = +tree._y.call(null, node.data);
14554 if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;
14555
14556 // Otherwise, split the leaf node until the old and new point are separated.
14557 do {
14558 parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
14559 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
14560 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
14561 } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
14562 return parent[j] = node, parent[i] = leaf, tree;
14563}
14564
14565function addAll(data) {
14566 var d, i, n = data.length,
14567 x,
14568 y,
14569 xz = new Array(n),
14570 yz = new Array(n),
14571 x0 = Infinity,
14572 y0 = Infinity,
14573 x1 = -Infinity,
14574 y1 = -Infinity;
14575
14576 // Compute the points and their extent.
14577 for (i = 0; i < n; ++i) {
14578 if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
14579 xz[i] = x;
14580 yz[i] = y;
14581 if (x < x0) x0 = x;
14582 if (x > x1) x1 = x;
14583 if (y < y0) y0 = y;
14584 if (y > y1) y1 = y;
14585 }
14586
14587 // If there were no (valid) points, inherit the existing extent.
14588 if (x1 < x0) x0 = this._x0, x1 = this._x1;
14589 if (y1 < y0) y0 = this._y0, y1 = this._y1;
14590
14591 // Expand the tree to cover the new points.
14592 this.cover(x0, y0).cover(x1, y1);
14593
14594 // Add the new points.
14595 for (i = 0; i < n; ++i) {
14596 add(this, xz[i], yz[i], data[i]);
14597 }
14598
14599 return this;
14600}
14601
14602
14603/***/ }),
14604
14605/***/ "./node_modules/d3-quadtree/src/cover.js":
14606/*!***********************************************!*\
14607 !*** ./node_modules/d3-quadtree/src/cover.js ***!
14608 \***********************************************/
14609/*! exports provided: default */
14610/***/ (function(module, __webpack_exports__, __webpack_require__) {
14611
14612"use strict";
14613__webpack_require__.r(__webpack_exports__);
14614/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
14615 if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
14616
14617 var x0 = this._x0,
14618 y0 = this._y0,
14619 x1 = this._x1,
14620 y1 = this._y1;
14621
14622 // If the quadtree has no extent, initialize them.
14623 // Integer extent are necessary so that if we later double the extent,
14624 // the existing quadrant boundaries don’t change due to floating point error!
14625 if (isNaN(x0)) {
14626 x1 = (x0 = Math.floor(x)) + 1;
14627 y1 = (y0 = Math.floor(y)) + 1;
14628 }
14629
14630 // Otherwise, double repeatedly to cover.
14631 else if (x0 > x || x > x1 || y0 > y || y > y1) {
14632 var z = x1 - x0,
14633 node = this._root,
14634 parent,
14635 i;
14636
14637 switch (i = (y < (y0 + y1) / 2) << 1 | (x < (x0 + x1) / 2)) {
14638 case 0: {
14639 do parent = new Array(4), parent[i] = node, node = parent;
14640 while (z *= 2, x1 = x0 + z, y1 = y0 + z, x > x1 || y > y1);
14641 break;
14642 }
14643 case 1: {
14644 do parent = new Array(4), parent[i] = node, node = parent;
14645 while (z *= 2, x0 = x1 - z, y1 = y0 + z, x0 > x || y > y1);
14646 break;
14647 }
14648 case 2: {
14649 do parent = new Array(4), parent[i] = node, node = parent;
14650 while (z *= 2, x1 = x0 + z, y0 = y1 - z, x > x1 || y0 > y);
14651 break;
14652 }
14653 case 3: {
14654 do parent = new Array(4), parent[i] = node, node = parent;
14655 while (z *= 2, x0 = x1 - z, y0 = y1 - z, x0 > x || y0 > y);
14656 break;
14657 }
14658 }
14659
14660 if (this._root && this._root.length) this._root = node;
14661 }
14662
14663 // If the quadtree covers the point already, just return.
14664 else return this;
14665
14666 this._x0 = x0;
14667 this._y0 = y0;
14668 this._x1 = x1;
14669 this._y1 = y1;
14670 return this;
14671});
14672
14673
14674/***/ }),
14675
14676/***/ "./node_modules/d3-quadtree/src/data.js":
14677/*!**********************************************!*\
14678 !*** ./node_modules/d3-quadtree/src/data.js ***!
14679 \**********************************************/
14680/*! exports provided: default */
14681/***/ (function(module, __webpack_exports__, __webpack_require__) {
14682
14683"use strict";
14684__webpack_require__.r(__webpack_exports__);
14685/* harmony default export */ __webpack_exports__["default"] = (function() {
14686 var data = [];
14687 this.visit(function(node) {
14688 if (!node.length) do data.push(node.data); while (node = node.next)
14689 });
14690 return data;
14691});
14692
14693
14694/***/ }),
14695
14696/***/ "./node_modules/d3-quadtree/src/extent.js":
14697/*!************************************************!*\
14698 !*** ./node_modules/d3-quadtree/src/extent.js ***!
14699 \************************************************/
14700/*! exports provided: default */
14701/***/ (function(module, __webpack_exports__, __webpack_require__) {
14702
14703"use strict";
14704__webpack_require__.r(__webpack_exports__);
14705/* harmony default export */ __webpack_exports__["default"] = (function(_) {
14706 return arguments.length
14707 ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
14708 : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
14709});
14710
14711
14712/***/ }),
14713
14714/***/ "./node_modules/d3-quadtree/src/find.js":
14715/*!**********************************************!*\
14716 !*** ./node_modules/d3-quadtree/src/find.js ***!
14717 \**********************************************/
14718/*! exports provided: default */
14719/***/ (function(module, __webpack_exports__, __webpack_require__) {
14720
14721"use strict";
14722__webpack_require__.r(__webpack_exports__);
14723/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad */ "./node_modules/d3-quadtree/src/quad.js");
14724
14725
14726/* harmony default export */ __webpack_exports__["default"] = (function(x, y, radius) {
14727 var data,
14728 x0 = this._x0,
14729 y0 = this._y0,
14730 x1,
14731 y1,
14732 x2,
14733 y2,
14734 x3 = this._x1,
14735 y3 = this._y1,
14736 quads = [],
14737 node = this._root,
14738 q,
14739 i;
14740
14741 if (node) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node, x0, y0, x3, y3));
14742 if (radius == null) radius = Infinity;
14743 else {
14744 x0 = x - radius, y0 = y - radius;
14745 x3 = x + radius, y3 = y + radius;
14746 radius *= radius;
14747 }
14748
14749 while (q = quads.pop()) {
14750
14751 // Stop searching if this quadrant can’t contain a closer node.
14752 if (!(node = q.node)
14753 || (x1 = q.x0) > x3
14754 || (y1 = q.y0) > y3
14755 || (x2 = q.x1) < x0
14756 || (y2 = q.y1) < y0) continue;
14757
14758 // Bisect the current quadrant.
14759 if (node.length) {
14760 var xm = (x1 + x2) / 2,
14761 ym = (y1 + y2) / 2;
14762
14763 quads.push(
14764 new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node[3], xm, ym, x2, y2),
14765 new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node[2], x1, ym, xm, y2),
14766 new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node[1], xm, y1, x2, ym),
14767 new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node[0], x1, y1, xm, ym)
14768 );
14769
14770 // Visit the closest quadrant first.
14771 if (i = (y >= ym) << 1 | (x >= xm)) {
14772 q = quads[quads.length - 1];
14773 quads[quads.length - 1] = quads[quads.length - 1 - i];
14774 quads[quads.length - 1 - i] = q;
14775 }
14776 }
14777
14778 // Visit this point. (Visiting coincident points isn’t necessary!)
14779 else {
14780 var dx = x - +this._x.call(null, node.data),
14781 dy = y - +this._y.call(null, node.data),
14782 d2 = dx * dx + dy * dy;
14783 if (d2 < radius) {
14784 var d = Math.sqrt(radius = d2);
14785 x0 = x - d, y0 = y - d;
14786 x3 = x + d, y3 = y + d;
14787 data = node.data;
14788 }
14789 }
14790 }
14791
14792 return data;
14793});
14794
14795
14796/***/ }),
14797
14798/***/ "./node_modules/d3-quadtree/src/index.js":
14799/*!***********************************************!*\
14800 !*** ./node_modules/d3-quadtree/src/index.js ***!
14801 \***********************************************/
14802/*! exports provided: quadtree */
14803/***/ (function(module, __webpack_exports__, __webpack_require__) {
14804
14805"use strict";
14806__webpack_require__.r(__webpack_exports__);
14807/* harmony import */ var _quadtree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quadtree */ "./node_modules/d3-quadtree/src/quadtree.js");
14808/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quadtree", function() { return _quadtree__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14809
14810
14811
14812
14813/***/ }),
14814
14815/***/ "./node_modules/d3-quadtree/src/quad.js":
14816/*!**********************************************!*\
14817 !*** ./node_modules/d3-quadtree/src/quad.js ***!
14818 \**********************************************/
14819/*! exports provided: default */
14820/***/ (function(module, __webpack_exports__, __webpack_require__) {
14821
14822"use strict";
14823__webpack_require__.r(__webpack_exports__);
14824/* harmony default export */ __webpack_exports__["default"] = (function(node, x0, y0, x1, y1) {
14825 this.node = node;
14826 this.x0 = x0;
14827 this.y0 = y0;
14828 this.x1 = x1;
14829 this.y1 = y1;
14830});
14831
14832
14833/***/ }),
14834
14835/***/ "./node_modules/d3-quadtree/src/quadtree.js":
14836/*!**************************************************!*\
14837 !*** ./node_modules/d3-quadtree/src/quadtree.js ***!
14838 \**************************************************/
14839/*! exports provided: default */
14840/***/ (function(module, __webpack_exports__, __webpack_require__) {
14841
14842"use strict";
14843__webpack_require__.r(__webpack_exports__);
14844/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quadtree; });
14845/* harmony import */ var _add__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add */ "./node_modules/d3-quadtree/src/add.js");
14846/* harmony import */ var _cover__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cover */ "./node_modules/d3-quadtree/src/cover.js");
14847/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data */ "./node_modules/d3-quadtree/src/data.js");
14848/* harmony import */ var _extent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extent */ "./node_modules/d3-quadtree/src/extent.js");
14849/* harmony import */ var _find__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./find */ "./node_modules/d3-quadtree/src/find.js");
14850/* harmony import */ var _remove__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remove */ "./node_modules/d3-quadtree/src/remove.js");
14851/* harmony import */ var _root__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./root */ "./node_modules/d3-quadtree/src/root.js");
14852/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./size */ "./node_modules/d3-quadtree/src/size.js");
14853/* harmony import */ var _visit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./visit */ "./node_modules/d3-quadtree/src/visit.js");
14854/* harmony import */ var _visitAfter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./visitAfter */ "./node_modules/d3-quadtree/src/visitAfter.js");
14855/* harmony import */ var _x__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./x */ "./node_modules/d3-quadtree/src/x.js");
14856/* harmony import */ var _y__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./y */ "./node_modules/d3-quadtree/src/y.js");
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869
14870function quadtree(nodes, x, y) {
14871 var tree = new Quadtree(x == null ? _x__WEBPACK_IMPORTED_MODULE_10__["defaultX"] : x, y == null ? _y__WEBPACK_IMPORTED_MODULE_11__["defaultY"] : y, NaN, NaN, NaN, NaN);
14872 return nodes == null ? tree : tree.addAll(nodes);
14873}
14874
14875function Quadtree(x, y, x0, y0, x1, y1) {
14876 this._x = x;
14877 this._y = y;
14878 this._x0 = x0;
14879 this._y0 = y0;
14880 this._x1 = x1;
14881 this._y1 = y1;
14882 this._root = undefined;
14883}
14884
14885function leaf_copy(leaf) {
14886 var copy = {data: leaf.data}, next = copy;
14887 while (leaf = leaf.next) next = next.next = {data: leaf.data};
14888 return copy;
14889}
14890
14891var treeProto = quadtree.prototype = Quadtree.prototype;
14892
14893treeProto.copy = function() {
14894 var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
14895 node = this._root,
14896 nodes,
14897 child;
14898
14899 if (!node) return copy;
14900
14901 if (!node.length) return copy._root = leaf_copy(node), copy;
14902
14903 nodes = [{source: node, target: copy._root = new Array(4)}];
14904 while (node = nodes.pop()) {
14905 for (var i = 0; i < 4; ++i) {
14906 if (child = node.source[i]) {
14907 if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
14908 else node.target[i] = leaf_copy(child);
14909 }
14910 }
14911 }
14912
14913 return copy;
14914};
14915
14916treeProto.add = _add__WEBPACK_IMPORTED_MODULE_0__["default"];
14917treeProto.addAll = _add__WEBPACK_IMPORTED_MODULE_0__["addAll"];
14918treeProto.cover = _cover__WEBPACK_IMPORTED_MODULE_1__["default"];
14919treeProto.data = _data__WEBPACK_IMPORTED_MODULE_2__["default"];
14920treeProto.extent = _extent__WEBPACK_IMPORTED_MODULE_3__["default"];
14921treeProto.find = _find__WEBPACK_IMPORTED_MODULE_4__["default"];
14922treeProto.remove = _remove__WEBPACK_IMPORTED_MODULE_5__["default"];
14923treeProto.removeAll = _remove__WEBPACK_IMPORTED_MODULE_5__["removeAll"];
14924treeProto.root = _root__WEBPACK_IMPORTED_MODULE_6__["default"];
14925treeProto.size = _size__WEBPACK_IMPORTED_MODULE_7__["default"];
14926treeProto.visit = _visit__WEBPACK_IMPORTED_MODULE_8__["default"];
14927treeProto.visitAfter = _visitAfter__WEBPACK_IMPORTED_MODULE_9__["default"];
14928treeProto.x = _x__WEBPACK_IMPORTED_MODULE_10__["default"];
14929treeProto.y = _y__WEBPACK_IMPORTED_MODULE_11__["default"];
14930
14931
14932/***/ }),
14933
14934/***/ "./node_modules/d3-quadtree/src/remove.js":
14935/*!************************************************!*\
14936 !*** ./node_modules/d3-quadtree/src/remove.js ***!
14937 \************************************************/
14938/*! exports provided: default, removeAll */
14939/***/ (function(module, __webpack_exports__, __webpack_require__) {
14940
14941"use strict";
14942__webpack_require__.r(__webpack_exports__);
14943/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAll", function() { return removeAll; });
14944/* harmony default export */ __webpack_exports__["default"] = (function(d) {
14945 if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
14946
14947 var parent,
14948 node = this._root,
14949 retainer,
14950 previous,
14951 next,
14952 x0 = this._x0,
14953 y0 = this._y0,
14954 x1 = this._x1,
14955 y1 = this._y1,
14956 x,
14957 y,
14958 xm,
14959 ym,
14960 right,
14961 bottom,
14962 i,
14963 j;
14964
14965 // If the tree is empty, initialize the root as a leaf.
14966 if (!node) return this;
14967
14968 // Find the leaf node for the point.
14969 // While descending, also retain the deepest parent with a non-removed sibling.
14970 if (node.length) while (true) {
14971 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
14972 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
14973 if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
14974 if (!node.length) break;
14975 if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
14976 }
14977
14978 // Find the point to remove.
14979 while (node.data !== d) if (!(previous = node, node = node.next)) return this;
14980 if (next = node.next) delete node.next;
14981
14982 // If there are multiple coincident points, remove just the point.
14983 if (previous) return (next ? previous.next = next : delete previous.next), this;
14984
14985 // If this is the root point, remove it.
14986 if (!parent) return this._root = next, this;
14987
14988 // Remove this leaf.
14989 next ? parent[i] = next : delete parent[i];
14990
14991 // If the parent now contains exactly one leaf, collapse superfluous parents.
14992 if ((node = parent[0] || parent[1] || parent[2] || parent[3])
14993 && node === (parent[3] || parent[2] || parent[1] || parent[0])
14994 && !node.length) {
14995 if (retainer) retainer[j] = node;
14996 else this._root = node;
14997 }
14998
14999 return this;
15000});
15001
15002function removeAll(data) {
15003 for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
15004 return this;
15005}
15006
15007
15008/***/ }),
15009
15010/***/ "./node_modules/d3-quadtree/src/root.js":
15011/*!**********************************************!*\
15012 !*** ./node_modules/d3-quadtree/src/root.js ***!
15013 \**********************************************/
15014/*! exports provided: default */
15015/***/ (function(module, __webpack_exports__, __webpack_require__) {
15016
15017"use strict";
15018__webpack_require__.r(__webpack_exports__);
15019/* harmony default export */ __webpack_exports__["default"] = (function() {
15020 return this._root;
15021});
15022
15023
15024/***/ }),
15025
15026/***/ "./node_modules/d3-quadtree/src/size.js":
15027/*!**********************************************!*\
15028 !*** ./node_modules/d3-quadtree/src/size.js ***!
15029 \**********************************************/
15030/*! exports provided: default */
15031/***/ (function(module, __webpack_exports__, __webpack_require__) {
15032
15033"use strict";
15034__webpack_require__.r(__webpack_exports__);
15035/* harmony default export */ __webpack_exports__["default"] = (function() {
15036 var size = 0;
15037 this.visit(function(node) {
15038 if (!node.length) do ++size; while (node = node.next)
15039 });
15040 return size;
15041});
15042
15043
15044/***/ }),
15045
15046/***/ "./node_modules/d3-quadtree/src/visit.js":
15047/*!***********************************************!*\
15048 !*** ./node_modules/d3-quadtree/src/visit.js ***!
15049 \***********************************************/
15050/*! exports provided: default */
15051/***/ (function(module, __webpack_exports__, __webpack_require__) {
15052
15053"use strict";
15054__webpack_require__.r(__webpack_exports__);
15055/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad */ "./node_modules/d3-quadtree/src/quad.js");
15056
15057
15058/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
15059 var quads = [], q, node = this._root, child, x0, y0, x1, y1;
15060 if (node) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node, this._x0, this._y0, this._x1, this._y1));
15061 while (q = quads.pop()) {
15062 if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
15063 var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
15064 if (child = node[3]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, ym, x1, y1));
15065 if (child = node[2]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, ym, xm, y1));
15066 if (child = node[1]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, y0, x1, ym));
15067 if (child = node[0]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, y0, xm, ym));
15068 }
15069 }
15070 return this;
15071});
15072
15073
15074/***/ }),
15075
15076/***/ "./node_modules/d3-quadtree/src/visitAfter.js":
15077/*!****************************************************!*\
15078 !*** ./node_modules/d3-quadtree/src/visitAfter.js ***!
15079 \****************************************************/
15080/*! exports provided: default */
15081/***/ (function(module, __webpack_exports__, __webpack_require__) {
15082
15083"use strict";
15084__webpack_require__.r(__webpack_exports__);
15085/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad */ "./node_modules/d3-quadtree/src/quad.js");
15086
15087
15088/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
15089 var quads = [], next = [], q;
15090 if (this._root) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](this._root, this._x0, this._y0, this._x1, this._y1));
15091 while (q = quads.pop()) {
15092 var node = q.node;
15093 if (node.length) {
15094 var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
15095 if (child = node[0]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, y0, xm, ym));
15096 if (child = node[1]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, y0, x1, ym));
15097 if (child = node[2]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, ym, xm, y1));
15098 if (child = node[3]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, ym, x1, y1));
15099 }
15100 next.push(q);
15101 }
15102 while (q = next.pop()) {
15103 callback(q.node, q.x0, q.y0, q.x1, q.y1);
15104 }
15105 return this;
15106});
15107
15108
15109/***/ }),
15110
15111/***/ "./node_modules/d3-quadtree/src/x.js":
15112/*!*******************************************!*\
15113 !*** ./node_modules/d3-quadtree/src/x.js ***!
15114 \*******************************************/
15115/*! exports provided: defaultX, default */
15116/***/ (function(module, __webpack_exports__, __webpack_require__) {
15117
15118"use strict";
15119__webpack_require__.r(__webpack_exports__);
15120/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultX", function() { return defaultX; });
15121function defaultX(d) {
15122 return d[0];
15123}
15124
15125/* harmony default export */ __webpack_exports__["default"] = (function(_) {
15126 return arguments.length ? (this._x = _, this) : this._x;
15127});
15128
15129
15130/***/ }),
15131
15132/***/ "./node_modules/d3-quadtree/src/y.js":
15133/*!*******************************************!*\
15134 !*** ./node_modules/d3-quadtree/src/y.js ***!
15135 \*******************************************/
15136/*! exports provided: defaultY, default */
15137/***/ (function(module, __webpack_exports__, __webpack_require__) {
15138
15139"use strict";
15140__webpack_require__.r(__webpack_exports__);
15141/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultY", function() { return defaultY; });
15142function defaultY(d) {
15143 return d[1];
15144}
15145
15146/* harmony default export */ __webpack_exports__["default"] = (function(_) {
15147 return arguments.length ? (this._y = _, this) : this._y;
15148});
15149
15150
15151/***/ }),
15152
15153/***/ "./node_modules/d3-random/src/bates.js":
15154/*!*********************************************!*\
15155 !*** ./node_modules/d3-random/src/bates.js ***!
15156 \*********************************************/
15157/*! exports provided: default */
15158/***/ (function(module, __webpack_exports__, __webpack_require__) {
15159
15160"use strict";
15161__webpack_require__.r(__webpack_exports__);
15162/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15163/* harmony import */ var _irwinHall__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./irwinHall */ "./node_modules/d3-random/src/irwinHall.js");
15164
15165
15166
15167/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomBates(source) {
15168 function randomBates(n) {
15169 var randomIrwinHall = _irwinHall__WEBPACK_IMPORTED_MODULE_1__["default"].source(source)(n);
15170 return function() {
15171 return randomIrwinHall() / n;
15172 };
15173 }
15174
15175 randomBates.source = sourceRandomBates;
15176
15177 return randomBates;
15178})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15179
15180
15181/***/ }),
15182
15183/***/ "./node_modules/d3-random/src/defaultSource.js":
15184/*!*****************************************************!*\
15185 !*** ./node_modules/d3-random/src/defaultSource.js ***!
15186 \*****************************************************/
15187/*! exports provided: default */
15188/***/ (function(module, __webpack_exports__, __webpack_require__) {
15189
15190"use strict";
15191__webpack_require__.r(__webpack_exports__);
15192/* harmony default export */ __webpack_exports__["default"] = (function() {
15193 return Math.random();
15194});
15195
15196
15197/***/ }),
15198
15199/***/ "./node_modules/d3-random/src/exponential.js":
15200/*!***************************************************!*\
15201 !*** ./node_modules/d3-random/src/exponential.js ***!
15202 \***************************************************/
15203/*! exports provided: default */
15204/***/ (function(module, __webpack_exports__, __webpack_require__) {
15205
15206"use strict";
15207__webpack_require__.r(__webpack_exports__);
15208/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15209
15210
15211/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomExponential(source) {
15212 function randomExponential(lambda) {
15213 return function() {
15214 return -Math.log(1 - source()) / lambda;
15215 };
15216 }
15217
15218 randomExponential.source = sourceRandomExponential;
15219
15220 return randomExponential;
15221})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15222
15223
15224/***/ }),
15225
15226/***/ "./node_modules/d3-random/src/index.js":
15227/*!*********************************************!*\
15228 !*** ./node_modules/d3-random/src/index.js ***!
15229 \*********************************************/
15230/*! exports provided: randomUniform, randomNormal, randomLogNormal, randomBates, randomIrwinHall, randomExponential */
15231/***/ (function(module, __webpack_exports__, __webpack_require__) {
15232
15233"use strict";
15234__webpack_require__.r(__webpack_exports__);
15235/* harmony import */ var _uniform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uniform */ "./node_modules/d3-random/src/uniform.js");
15236/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomUniform", function() { return _uniform__WEBPACK_IMPORTED_MODULE_0__["default"]; });
15237
15238/* harmony import */ var _normal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normal */ "./node_modules/d3-random/src/normal.js");
15239/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomNormal", function() { return _normal__WEBPACK_IMPORTED_MODULE_1__["default"]; });
15240
15241/* harmony import */ var _logNormal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logNormal */ "./node_modules/d3-random/src/logNormal.js");
15242/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomLogNormal", function() { return _logNormal__WEBPACK_IMPORTED_MODULE_2__["default"]; });
15243
15244/* harmony import */ var _bates__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bates */ "./node_modules/d3-random/src/bates.js");
15245/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomBates", function() { return _bates__WEBPACK_IMPORTED_MODULE_3__["default"]; });
15246
15247/* harmony import */ var _irwinHall__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./irwinHall */ "./node_modules/d3-random/src/irwinHall.js");
15248/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomIrwinHall", function() { return _irwinHall__WEBPACK_IMPORTED_MODULE_4__["default"]; });
15249
15250/* harmony import */ var _exponential__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exponential */ "./node_modules/d3-random/src/exponential.js");
15251/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomExponential", function() { return _exponential__WEBPACK_IMPORTED_MODULE_5__["default"]; });
15252
15253
15254
15255
15256
15257
15258
15259
15260
15261/***/ }),
15262
15263/***/ "./node_modules/d3-random/src/irwinHall.js":
15264/*!*************************************************!*\
15265 !*** ./node_modules/d3-random/src/irwinHall.js ***!
15266 \*************************************************/
15267/*! exports provided: default */
15268/***/ (function(module, __webpack_exports__, __webpack_require__) {
15269
15270"use strict";
15271__webpack_require__.r(__webpack_exports__);
15272/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15273
15274
15275/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomIrwinHall(source) {
15276 function randomIrwinHall(n) {
15277 return function() {
15278 for (var sum = 0, i = 0; i < n; ++i) sum += source();
15279 return sum;
15280 };
15281 }
15282
15283 randomIrwinHall.source = sourceRandomIrwinHall;
15284
15285 return randomIrwinHall;
15286})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15287
15288
15289/***/ }),
15290
15291/***/ "./node_modules/d3-random/src/logNormal.js":
15292/*!*************************************************!*\
15293 !*** ./node_modules/d3-random/src/logNormal.js ***!
15294 \*************************************************/
15295/*! exports provided: default */
15296/***/ (function(module, __webpack_exports__, __webpack_require__) {
15297
15298"use strict";
15299__webpack_require__.r(__webpack_exports__);
15300/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15301/* harmony import */ var _normal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normal */ "./node_modules/d3-random/src/normal.js");
15302
15303
15304
15305/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomLogNormal(source) {
15306 function randomLogNormal() {
15307 var randomNormal = _normal__WEBPACK_IMPORTED_MODULE_1__["default"].source(source).apply(this, arguments);
15308 return function() {
15309 return Math.exp(randomNormal());
15310 };
15311 }
15312
15313 randomLogNormal.source = sourceRandomLogNormal;
15314
15315 return randomLogNormal;
15316})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15317
15318
15319/***/ }),
15320
15321/***/ "./node_modules/d3-random/src/normal.js":
15322/*!**********************************************!*\
15323 !*** ./node_modules/d3-random/src/normal.js ***!
15324 \**********************************************/
15325/*! exports provided: default */
15326/***/ (function(module, __webpack_exports__, __webpack_require__) {
15327
15328"use strict";
15329__webpack_require__.r(__webpack_exports__);
15330/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15331
15332
15333/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomNormal(source) {
15334 function randomNormal(mu, sigma) {
15335 var x, r;
15336 mu = mu == null ? 0 : +mu;
15337 sigma = sigma == null ? 1 : +sigma;
15338 return function() {
15339 var y;
15340
15341 // If available, use the second previously-generated uniform random.
15342 if (x != null) y = x, x = null;
15343
15344 // Otherwise, generate a new x and y.
15345 else do {
15346 x = source() * 2 - 1;
15347 y = source() * 2 - 1;
15348 r = x * x + y * y;
15349 } while (!r || r > 1);
15350
15351 return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
15352 };
15353 }
15354
15355 randomNormal.source = sourceRandomNormal;
15356
15357 return randomNormal;
15358})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15359
15360
15361/***/ }),
15362
15363/***/ "./node_modules/d3-random/src/uniform.js":
15364/*!***********************************************!*\
15365 !*** ./node_modules/d3-random/src/uniform.js ***!
15366 \***********************************************/
15367/*! exports provided: default */
15368/***/ (function(module, __webpack_exports__, __webpack_require__) {
15369
15370"use strict";
15371__webpack_require__.r(__webpack_exports__);
15372/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15373
15374
15375/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomUniform(source) {
15376 function randomUniform(min, max) {
15377 min = min == null ? 0 : +min;
15378 max = max == null ? 1 : +max;
15379 if (arguments.length === 1) max = min, min = 0;
15380 else max -= min;
15381 return function() {
15382 return source() * max + min;
15383 };
15384 }
15385
15386 randomUniform.source = sourceRandomUniform;
15387
15388 return randomUniform;
15389})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15390
15391
15392/***/ }),
15393
15394/***/ "./node_modules/d3-scale-chromatic/src/categorical/Accent.js":
15395/*!*******************************************************************!*\
15396 !*** ./node_modules/d3-scale-chromatic/src/categorical/Accent.js ***!
15397 \*******************************************************************/
15398/*! exports provided: default */
15399/***/ (function(module, __webpack_exports__, __webpack_require__) {
15400
15401"use strict";
15402__webpack_require__.r(__webpack_exports__);
15403/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15404
15405
15406/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"));
15407
15408
15409/***/ }),
15410
15411/***/ "./node_modules/d3-scale-chromatic/src/categorical/Dark2.js":
15412/*!******************************************************************!*\
15413 !*** ./node_modules/d3-scale-chromatic/src/categorical/Dark2.js ***!
15414 \******************************************************************/
15415/*! exports provided: default */
15416/***/ (function(module, __webpack_exports__, __webpack_require__) {
15417
15418"use strict";
15419__webpack_require__.r(__webpack_exports__);
15420/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15421
15422
15423/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"));
15424
15425
15426/***/ }),
15427
15428/***/ "./node_modules/d3-scale-chromatic/src/categorical/Paired.js":
15429/*!*******************************************************************!*\
15430 !*** ./node_modules/d3-scale-chromatic/src/categorical/Paired.js ***!
15431 \*******************************************************************/
15432/*! exports provided: default */
15433/***/ (function(module, __webpack_exports__, __webpack_require__) {
15434
15435"use strict";
15436__webpack_require__.r(__webpack_exports__);
15437/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15438
15439
15440/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"));
15441
15442
15443/***/ }),
15444
15445/***/ "./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js":
15446/*!********************************************************************!*\
15447 !*** ./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js ***!
15448 \********************************************************************/
15449/*! exports provided: default */
15450/***/ (function(module, __webpack_exports__, __webpack_require__) {
15451
15452"use strict";
15453__webpack_require__.r(__webpack_exports__);
15454/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15455
15456
15457/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"));
15458
15459
15460/***/ }),
15461
15462/***/ "./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js":
15463/*!********************************************************************!*\
15464 !*** ./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js ***!
15465 \********************************************************************/
15466/*! exports provided: default */
15467/***/ (function(module, __webpack_exports__, __webpack_require__) {
15468
15469"use strict";
15470__webpack_require__.r(__webpack_exports__);
15471/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15472
15473
15474/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"));
15475
15476
15477/***/ }),
15478
15479/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set1.js":
15480/*!*****************************************************************!*\
15481 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set1.js ***!
15482 \*****************************************************************/
15483/*! exports provided: default */
15484/***/ (function(module, __webpack_exports__, __webpack_require__) {
15485
15486"use strict";
15487__webpack_require__.r(__webpack_exports__);
15488/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15489
15490
15491/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"));
15492
15493
15494/***/ }),
15495
15496/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set2.js":
15497/*!*****************************************************************!*\
15498 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set2.js ***!
15499 \*****************************************************************/
15500/*! exports provided: default */
15501/***/ (function(module, __webpack_exports__, __webpack_require__) {
15502
15503"use strict";
15504__webpack_require__.r(__webpack_exports__);
15505/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15506
15507
15508/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"));
15509
15510
15511/***/ }),
15512
15513/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set3.js":
15514/*!*****************************************************************!*\
15515 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set3.js ***!
15516 \*****************************************************************/
15517/*! exports provided: default */
15518/***/ (function(module, __webpack_exports__, __webpack_require__) {
15519
15520"use strict";
15521__webpack_require__.r(__webpack_exports__);
15522/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15523
15524
15525/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"));
15526
15527
15528/***/ }),
15529
15530/***/ "./node_modules/d3-scale-chromatic/src/categorical/category10.js":
15531/*!***********************************************************************!*\
15532 !*** ./node_modules/d3-scale-chromatic/src/categorical/category10.js ***!
15533 \***********************************************************************/
15534/*! exports provided: default */
15535/***/ (function(module, __webpack_exports__, __webpack_require__) {
15536
15537"use strict";
15538__webpack_require__.r(__webpack_exports__);
15539/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15540
15541
15542/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"));
15543
15544
15545/***/ }),
15546
15547/***/ "./node_modules/d3-scale-chromatic/src/colors.js":
15548/*!*******************************************************!*\
15549 !*** ./node_modules/d3-scale-chromatic/src/colors.js ***!
15550 \*******************************************************/
15551/*! exports provided: default */
15552/***/ (function(module, __webpack_exports__, __webpack_require__) {
15553
15554"use strict";
15555__webpack_require__.r(__webpack_exports__);
15556/* harmony default export */ __webpack_exports__["default"] = (function(specifier) {
15557 var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;
15558 while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6);
15559 return colors;
15560});
15561
15562
15563/***/ }),
15564
15565/***/ "./node_modules/d3-scale-chromatic/src/diverging/BrBG.js":
15566/*!***************************************************************!*\
15567 !*** ./node_modules/d3-scale-chromatic/src/diverging/BrBG.js ***!
15568 \***************************************************************/
15569/*! exports provided: scheme, default */
15570/***/ (function(module, __webpack_exports__, __webpack_require__) {
15571
15572"use strict";
15573__webpack_require__.r(__webpack_exports__);
15574/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15575/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15576/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15577
15578
15579
15580var scheme = new Array(3).concat(
15581 "d8b365f5f5f55ab4ac",
15582 "a6611adfc27d80cdc1018571",
15583 "a6611adfc27df5f5f580cdc1018571",
15584 "8c510ad8b365f6e8c3c7eae55ab4ac01665e",
15585 "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
15586 "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
15587 "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
15588 "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
15589 "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30"
15590).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15591
15592/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15593
15594
15595/***/ }),
15596
15597/***/ "./node_modules/d3-scale-chromatic/src/diverging/PRGn.js":
15598/*!***************************************************************!*\
15599 !*** ./node_modules/d3-scale-chromatic/src/diverging/PRGn.js ***!
15600 \***************************************************************/
15601/*! exports provided: scheme, default */
15602/***/ (function(module, __webpack_exports__, __webpack_require__) {
15603
15604"use strict";
15605__webpack_require__.r(__webpack_exports__);
15606/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15607/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15608/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15609
15610
15611
15612var scheme = new Array(3).concat(
15613 "af8dc3f7f7f77fbf7b",
15614 "7b3294c2a5cfa6dba0008837",
15615 "7b3294c2a5cff7f7f7a6dba0008837",
15616 "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
15617 "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
15618 "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
15619 "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
15620 "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
15621 "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b"
15622).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15623
15624/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15625
15626
15627/***/ }),
15628
15629/***/ "./node_modules/d3-scale-chromatic/src/diverging/PiYG.js":
15630/*!***************************************************************!*\
15631 !*** ./node_modules/d3-scale-chromatic/src/diverging/PiYG.js ***!
15632 \***************************************************************/
15633/*! exports provided: scheme, default */
15634/***/ (function(module, __webpack_exports__, __webpack_require__) {
15635
15636"use strict";
15637__webpack_require__.r(__webpack_exports__);
15638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15639/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15640/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15641
15642
15643
15644var scheme = new Array(3).concat(
15645 "e9a3c9f7f7f7a1d76a",
15646 "d01c8bf1b6dab8e1864dac26",
15647 "d01c8bf1b6daf7f7f7b8e1864dac26",
15648 "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
15649 "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
15650 "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
15651 "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
15652 "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
15653 "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419"
15654).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15655
15656/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15657
15658
15659/***/ }),
15660
15661/***/ "./node_modules/d3-scale-chromatic/src/diverging/PuOr.js":
15662/*!***************************************************************!*\
15663 !*** ./node_modules/d3-scale-chromatic/src/diverging/PuOr.js ***!
15664 \***************************************************************/
15665/*! exports provided: scheme, default */
15666/***/ (function(module, __webpack_exports__, __webpack_require__) {
15667
15668"use strict";
15669__webpack_require__.r(__webpack_exports__);
15670/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15671/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15672/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15673
15674
15675
15676var scheme = new Array(3).concat(
15677 "998ec3f7f7f7f1a340",
15678 "5e3c99b2abd2fdb863e66101",
15679 "5e3c99b2abd2f7f7f7fdb863e66101",
15680 "542788998ec3d8daebfee0b6f1a340b35806",
15681 "542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
15682 "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
15683 "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
15684 "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
15685 "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08"
15686).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15687
15688/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15689
15690
15691/***/ }),
15692
15693/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdBu.js":
15694/*!***************************************************************!*\
15695 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdBu.js ***!
15696 \***************************************************************/
15697/*! exports provided: scheme, default */
15698/***/ (function(module, __webpack_exports__, __webpack_require__) {
15699
15700"use strict";
15701__webpack_require__.r(__webpack_exports__);
15702/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15703/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15704/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15705
15706
15707
15708var scheme = new Array(3).concat(
15709 "ef8a62f7f7f767a9cf",
15710 "ca0020f4a58292c5de0571b0",
15711 "ca0020f4a582f7f7f792c5de0571b0",
15712 "b2182bef8a62fddbc7d1e5f067a9cf2166ac",
15713 "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
15714 "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
15715 "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
15716 "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
15717 "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061"
15718).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15719
15720/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15721
15722
15723/***/ }),
15724
15725/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdGy.js":
15726/*!***************************************************************!*\
15727 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdGy.js ***!
15728 \***************************************************************/
15729/*! exports provided: scheme, default */
15730/***/ (function(module, __webpack_exports__, __webpack_require__) {
15731
15732"use strict";
15733__webpack_require__.r(__webpack_exports__);
15734/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15735/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15736/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15737
15738
15739
15740var scheme = new Array(3).concat(
15741 "ef8a62ffffff999999",
15742 "ca0020f4a582bababa404040",
15743 "ca0020f4a582ffffffbababa404040",
15744 "b2182bef8a62fddbc7e0e0e09999994d4d4d",
15745 "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
15746 "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
15747 "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
15748 "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
15749 "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a"
15750).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15751
15752/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15753
15754
15755/***/ }),
15756
15757/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js":
15758/*!*****************************************************************!*\
15759 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js ***!
15760 \*****************************************************************/
15761/*! exports provided: scheme, default */
15762/***/ (function(module, __webpack_exports__, __webpack_require__) {
15763
15764"use strict";
15765__webpack_require__.r(__webpack_exports__);
15766/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15767/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15768/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15769
15770
15771
15772var scheme = new Array(3).concat(
15773 "fc8d59ffffbf91bfdb",
15774 "d7191cfdae61abd9e92c7bb6",
15775 "d7191cfdae61ffffbfabd9e92c7bb6",
15776 "d73027fc8d59fee090e0f3f891bfdb4575b4",
15777 "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
15778 "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
15779 "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
15780 "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
15781 "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695"
15782).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15783
15784/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15785
15786
15787/***/ }),
15788
15789/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js":
15790/*!*****************************************************************!*\
15791 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js ***!
15792 \*****************************************************************/
15793/*! exports provided: scheme, default */
15794/***/ (function(module, __webpack_exports__, __webpack_require__) {
15795
15796"use strict";
15797__webpack_require__.r(__webpack_exports__);
15798/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15799/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15800/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15801
15802
15803
15804var scheme = new Array(3).concat(
15805 "fc8d59ffffbf91cf60",
15806 "d7191cfdae61a6d96a1a9641",
15807 "d7191cfdae61ffffbfa6d96a1a9641",
15808 "d73027fc8d59fee08bd9ef8b91cf601a9850",
15809 "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
15810 "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
15811 "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
15812 "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
15813 "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837"
15814).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15815
15816/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15817
15818
15819/***/ }),
15820
15821/***/ "./node_modules/d3-scale-chromatic/src/diverging/Spectral.js":
15822/*!*******************************************************************!*\
15823 !*** ./node_modules/d3-scale-chromatic/src/diverging/Spectral.js ***!
15824 \*******************************************************************/
15825/*! exports provided: scheme, default */
15826/***/ (function(module, __webpack_exports__, __webpack_require__) {
15827
15828"use strict";
15829__webpack_require__.r(__webpack_exports__);
15830/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15831/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
15832/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15833
15834
15835
15836var scheme = new Array(3).concat(
15837 "fc8d59ffffbf99d594",
15838 "d7191cfdae61abdda42b83ba",
15839 "d7191cfdae61ffffbfabdda42b83ba",
15840 "d53e4ffc8d59fee08be6f59899d5943288bd",
15841 "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
15842 "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
15843 "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
15844 "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
15845 "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2"
15846).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
15847
15848/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15849
15850
15851/***/ }),
15852
15853/***/ "./node_modules/d3-scale-chromatic/src/index.js":
15854/*!******************************************************!*\
15855 !*** ./node_modules/d3-scale-chromatic/src/index.js ***!
15856 \******************************************************/
15857/*! exports provided: schemeCategory10, schemeAccent, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, interpolateBrBG, schemeBrBG, interpolatePRGn, schemePRGn, interpolatePiYG, schemePiYG, interpolatePuOr, schemePuOr, interpolateRdBu, schemeRdBu, interpolateRdGy, schemeRdGy, interpolateRdYlBu, schemeRdYlBu, interpolateRdYlGn, schemeRdYlGn, interpolateSpectral, schemeSpectral, interpolateBuGn, schemeBuGn, interpolateBuPu, schemeBuPu, interpolateGnBu, schemeGnBu, interpolateOrRd, schemeOrRd, interpolatePuBuGn, schemePuBuGn, interpolatePuBu, schemePuBu, interpolatePuRd, schemePuRd, interpolateRdPu, schemeRdPu, interpolateYlGnBu, schemeYlGnBu, interpolateYlGn, schemeYlGn, interpolateYlOrBr, schemeYlOrBr, interpolateYlOrRd, schemeYlOrRd, interpolateBlues, schemeBlues, interpolateGreens, schemeGreens, interpolateGreys, schemeGreys, interpolatePurples, schemePurples, interpolateReds, schemeReds, interpolateOranges, schemeOranges, interpolateCubehelixDefault, interpolateRainbow, interpolateWarm, interpolateCool, interpolateSinebow, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma */
15858/***/ (function(module, __webpack_exports__, __webpack_require__) {
15859
15860"use strict";
15861__webpack_require__.r(__webpack_exports__);
15862/* harmony import */ var _categorical_category10__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorical/category10 */ "./node_modules/d3-scale-chromatic/src/categorical/category10.js");
15863/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory10", function() { return _categorical_category10__WEBPACK_IMPORTED_MODULE_0__["default"]; });
15864
15865/* harmony import */ var _categorical_Accent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categorical/Accent */ "./node_modules/d3-scale-chromatic/src/categorical/Accent.js");
15866/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeAccent", function() { return _categorical_Accent__WEBPACK_IMPORTED_MODULE_1__["default"]; });
15867
15868/* harmony import */ var _categorical_Dark2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./categorical/Dark2 */ "./node_modules/d3-scale-chromatic/src/categorical/Dark2.js");
15869/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeDark2", function() { return _categorical_Dark2__WEBPACK_IMPORTED_MODULE_2__["default"]; });
15870
15871/* harmony import */ var _categorical_Paired__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./categorical/Paired */ "./node_modules/d3-scale-chromatic/src/categorical/Paired.js");
15872/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePaired", function() { return _categorical_Paired__WEBPACK_IMPORTED_MODULE_3__["default"]; });
15873
15874/* harmony import */ var _categorical_Pastel1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./categorical/Pastel1 */ "./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js");
15875/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePastel1", function() { return _categorical_Pastel1__WEBPACK_IMPORTED_MODULE_4__["default"]; });
15876
15877/* harmony import */ var _categorical_Pastel2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./categorical/Pastel2 */ "./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js");
15878/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePastel2", function() { return _categorical_Pastel2__WEBPACK_IMPORTED_MODULE_5__["default"]; });
15879
15880/* harmony import */ var _categorical_Set1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./categorical/Set1 */ "./node_modules/d3-scale-chromatic/src/categorical/Set1.js");
15881/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet1", function() { return _categorical_Set1__WEBPACK_IMPORTED_MODULE_6__["default"]; });
15882
15883/* harmony import */ var _categorical_Set2__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./categorical/Set2 */ "./node_modules/d3-scale-chromatic/src/categorical/Set2.js");
15884/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet2", function() { return _categorical_Set2__WEBPACK_IMPORTED_MODULE_7__["default"]; });
15885
15886/* harmony import */ var _categorical_Set3__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./categorical/Set3 */ "./node_modules/d3-scale-chromatic/src/categorical/Set3.js");
15887/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet3", function() { return _categorical_Set3__WEBPACK_IMPORTED_MODULE_8__["default"]; });
15888
15889/* harmony import */ var _diverging_BrBG__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./diverging/BrBG */ "./node_modules/d3-scale-chromatic/src/diverging/BrBG.js");
15890/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBrBG", function() { return _diverging_BrBG__WEBPACK_IMPORTED_MODULE_9__["default"]; });
15891
15892/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBrBG", function() { return _diverging_BrBG__WEBPACK_IMPORTED_MODULE_9__["scheme"]; });
15893
15894/* harmony import */ var _diverging_PRGn__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diverging/PRGn */ "./node_modules/d3-scale-chromatic/src/diverging/PRGn.js");
15895/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePRGn", function() { return _diverging_PRGn__WEBPACK_IMPORTED_MODULE_10__["default"]; });
15896
15897/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePRGn", function() { return _diverging_PRGn__WEBPACK_IMPORTED_MODULE_10__["scheme"]; });
15898
15899/* harmony import */ var _diverging_PiYG__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diverging/PiYG */ "./node_modules/d3-scale-chromatic/src/diverging/PiYG.js");
15900/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePiYG", function() { return _diverging_PiYG__WEBPACK_IMPORTED_MODULE_11__["default"]; });
15901
15902/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePiYG", function() { return _diverging_PiYG__WEBPACK_IMPORTED_MODULE_11__["scheme"]; });
15903
15904/* harmony import */ var _diverging_PuOr__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diverging/PuOr */ "./node_modules/d3-scale-chromatic/src/diverging/PuOr.js");
15905/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuOr", function() { return _diverging_PuOr__WEBPACK_IMPORTED_MODULE_12__["default"]; });
15906
15907/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuOr", function() { return _diverging_PuOr__WEBPACK_IMPORTED_MODULE_12__["scheme"]; });
15908
15909/* harmony import */ var _diverging_RdBu__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diverging/RdBu */ "./node_modules/d3-scale-chromatic/src/diverging/RdBu.js");
15910/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdBu", function() { return _diverging_RdBu__WEBPACK_IMPORTED_MODULE_13__["default"]; });
15911
15912/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdBu", function() { return _diverging_RdBu__WEBPACK_IMPORTED_MODULE_13__["scheme"]; });
15913
15914/* harmony import */ var _diverging_RdGy__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diverging/RdGy */ "./node_modules/d3-scale-chromatic/src/diverging/RdGy.js");
15915/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdGy", function() { return _diverging_RdGy__WEBPACK_IMPORTED_MODULE_14__["default"]; });
15916
15917/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdGy", function() { return _diverging_RdGy__WEBPACK_IMPORTED_MODULE_14__["scheme"]; });
15918
15919/* harmony import */ var _diverging_RdYlBu__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diverging/RdYlBu */ "./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js");
15920/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdYlBu", function() { return _diverging_RdYlBu__WEBPACK_IMPORTED_MODULE_15__["default"]; });
15921
15922/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdYlBu", function() { return _diverging_RdYlBu__WEBPACK_IMPORTED_MODULE_15__["scheme"]; });
15923
15924/* harmony import */ var _diverging_RdYlGn__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./diverging/RdYlGn */ "./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js");
15925/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdYlGn", function() { return _diverging_RdYlGn__WEBPACK_IMPORTED_MODULE_16__["default"]; });
15926
15927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdYlGn", function() { return _diverging_RdYlGn__WEBPACK_IMPORTED_MODULE_16__["scheme"]; });
15928
15929/* harmony import */ var _diverging_Spectral__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diverging/Spectral */ "./node_modules/d3-scale-chromatic/src/diverging/Spectral.js");
15930/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateSpectral", function() { return _diverging_Spectral__WEBPACK_IMPORTED_MODULE_17__["default"]; });
15931
15932/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSpectral", function() { return _diverging_Spectral__WEBPACK_IMPORTED_MODULE_17__["scheme"]; });
15933
15934/* harmony import */ var _sequential_multi_BuGn__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./sequential-multi/BuGn */ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js");
15935/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBuGn", function() { return _sequential_multi_BuGn__WEBPACK_IMPORTED_MODULE_18__["default"]; });
15936
15937/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBuGn", function() { return _sequential_multi_BuGn__WEBPACK_IMPORTED_MODULE_18__["scheme"]; });
15938
15939/* harmony import */ var _sequential_multi_BuPu__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./sequential-multi/BuPu */ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js");
15940/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBuPu", function() { return _sequential_multi_BuPu__WEBPACK_IMPORTED_MODULE_19__["default"]; });
15941
15942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBuPu", function() { return _sequential_multi_BuPu__WEBPACK_IMPORTED_MODULE_19__["scheme"]; });
15943
15944/* harmony import */ var _sequential_multi_GnBu__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./sequential-multi/GnBu */ "./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js");
15945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGnBu", function() { return _sequential_multi_GnBu__WEBPACK_IMPORTED_MODULE_20__["default"]; });
15946
15947/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGnBu", function() { return _sequential_multi_GnBu__WEBPACK_IMPORTED_MODULE_20__["scheme"]; });
15948
15949/* harmony import */ var _sequential_multi_OrRd__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./sequential-multi/OrRd */ "./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js");
15950/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateOrRd", function() { return _sequential_multi_OrRd__WEBPACK_IMPORTED_MODULE_21__["default"]; });
15951
15952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeOrRd", function() { return _sequential_multi_OrRd__WEBPACK_IMPORTED_MODULE_21__["scheme"]; });
15953
15954/* harmony import */ var _sequential_multi_PuBuGn__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./sequential-multi/PuBuGn */ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js");
15955/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuBuGn", function() { return _sequential_multi_PuBuGn__WEBPACK_IMPORTED_MODULE_22__["default"]; });
15956
15957/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuBuGn", function() { return _sequential_multi_PuBuGn__WEBPACK_IMPORTED_MODULE_22__["scheme"]; });
15958
15959/* harmony import */ var _sequential_multi_PuBu__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./sequential-multi/PuBu */ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js");
15960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuBu", function() { return _sequential_multi_PuBu__WEBPACK_IMPORTED_MODULE_23__["default"]; });
15961
15962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuBu", function() { return _sequential_multi_PuBu__WEBPACK_IMPORTED_MODULE_23__["scheme"]; });
15963
15964/* harmony import */ var _sequential_multi_PuRd__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./sequential-multi/PuRd */ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js");
15965/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuRd", function() { return _sequential_multi_PuRd__WEBPACK_IMPORTED_MODULE_24__["default"]; });
15966
15967/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuRd", function() { return _sequential_multi_PuRd__WEBPACK_IMPORTED_MODULE_24__["scheme"]; });
15968
15969/* harmony import */ var _sequential_multi_RdPu__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./sequential-multi/RdPu */ "./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js");
15970/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdPu", function() { return _sequential_multi_RdPu__WEBPACK_IMPORTED_MODULE_25__["default"]; });
15971
15972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdPu", function() { return _sequential_multi_RdPu__WEBPACK_IMPORTED_MODULE_25__["scheme"]; });
15973
15974/* harmony import */ var _sequential_multi_YlGnBu__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./sequential-multi/YlGnBu */ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js");
15975/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlGnBu", function() { return _sequential_multi_YlGnBu__WEBPACK_IMPORTED_MODULE_26__["default"]; });
15976
15977/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlGnBu", function() { return _sequential_multi_YlGnBu__WEBPACK_IMPORTED_MODULE_26__["scheme"]; });
15978
15979/* harmony import */ var _sequential_multi_YlGn__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./sequential-multi/YlGn */ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js");
15980/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlGn", function() { return _sequential_multi_YlGn__WEBPACK_IMPORTED_MODULE_27__["default"]; });
15981
15982/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlGn", function() { return _sequential_multi_YlGn__WEBPACK_IMPORTED_MODULE_27__["scheme"]; });
15983
15984/* harmony import */ var _sequential_multi_YlOrBr__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./sequential-multi/YlOrBr */ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js");
15985/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlOrBr", function() { return _sequential_multi_YlOrBr__WEBPACK_IMPORTED_MODULE_28__["default"]; });
15986
15987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlOrBr", function() { return _sequential_multi_YlOrBr__WEBPACK_IMPORTED_MODULE_28__["scheme"]; });
15988
15989/* harmony import */ var _sequential_multi_YlOrRd__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./sequential-multi/YlOrRd */ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js");
15990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlOrRd", function() { return _sequential_multi_YlOrRd__WEBPACK_IMPORTED_MODULE_29__["default"]; });
15991
15992/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlOrRd", function() { return _sequential_multi_YlOrRd__WEBPACK_IMPORTED_MODULE_29__["scheme"]; });
15993
15994/* harmony import */ var _sequential_single_Blues__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./sequential-single/Blues */ "./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js");
15995/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBlues", function() { return _sequential_single_Blues__WEBPACK_IMPORTED_MODULE_30__["default"]; });
15996
15997/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBlues", function() { return _sequential_single_Blues__WEBPACK_IMPORTED_MODULE_30__["scheme"]; });
15998
15999/* harmony import */ var _sequential_single_Greens__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./sequential-single/Greens */ "./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js");
16000/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGreens", function() { return _sequential_single_Greens__WEBPACK_IMPORTED_MODULE_31__["default"]; });
16001
16002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGreens", function() { return _sequential_single_Greens__WEBPACK_IMPORTED_MODULE_31__["scheme"]; });
16003
16004/* harmony import */ var _sequential_single_Greys__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./sequential-single/Greys */ "./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js");
16005/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGreys", function() { return _sequential_single_Greys__WEBPACK_IMPORTED_MODULE_32__["default"]; });
16006
16007/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGreys", function() { return _sequential_single_Greys__WEBPACK_IMPORTED_MODULE_32__["scheme"]; });
16008
16009/* harmony import */ var _sequential_single_Purples__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./sequential-single/Purples */ "./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js");
16010/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePurples", function() { return _sequential_single_Purples__WEBPACK_IMPORTED_MODULE_33__["default"]; });
16011
16012/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePurples", function() { return _sequential_single_Purples__WEBPACK_IMPORTED_MODULE_33__["scheme"]; });
16013
16014/* harmony import */ var _sequential_single_Reds__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./sequential-single/Reds */ "./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js");
16015/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateReds", function() { return _sequential_single_Reds__WEBPACK_IMPORTED_MODULE_34__["default"]; });
16016
16017/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeReds", function() { return _sequential_single_Reds__WEBPACK_IMPORTED_MODULE_34__["scheme"]; });
16018
16019/* harmony import */ var _sequential_single_Oranges__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./sequential-single/Oranges */ "./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js");
16020/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateOranges", function() { return _sequential_single_Oranges__WEBPACK_IMPORTED_MODULE_35__["default"]; });
16021
16022/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeOranges", function() { return _sequential_single_Oranges__WEBPACK_IMPORTED_MODULE_35__["scheme"]; });
16023
16024/* harmony import */ var _sequential_multi_cubehelix__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./sequential-multi/cubehelix */ "./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js");
16025/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixDefault", function() { return _sequential_multi_cubehelix__WEBPACK_IMPORTED_MODULE_36__["default"]; });
16026
16027/* harmony import */ var _sequential_multi_rainbow__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./sequential-multi/rainbow */ "./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js");
16028/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRainbow", function() { return _sequential_multi_rainbow__WEBPACK_IMPORTED_MODULE_37__["default"]; });
16029
16030/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateWarm", function() { return _sequential_multi_rainbow__WEBPACK_IMPORTED_MODULE_37__["warm"]; });
16031
16032/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCool", function() { return _sequential_multi_rainbow__WEBPACK_IMPORTED_MODULE_37__["cool"]; });
16033
16034/* harmony import */ var _sequential_multi_sinebow__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./sequential-multi/sinebow */ "./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js");
16035/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateSinebow", function() { return _sequential_multi_sinebow__WEBPACK_IMPORTED_MODULE_38__["default"]; });
16036
16037/* harmony import */ var _sequential_multi_viridis__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./sequential-multi/viridis */ "./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js");
16038/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateViridis", function() { return _sequential_multi_viridis__WEBPACK_IMPORTED_MODULE_39__["default"]; });
16039
16040/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateMagma", function() { return _sequential_multi_viridis__WEBPACK_IMPORTED_MODULE_39__["magma"]; });
16041
16042/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateInferno", function() { return _sequential_multi_viridis__WEBPACK_IMPORTED_MODULE_39__["inferno"]; });
16043
16044/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePlasma", function() { return _sequential_multi_viridis__WEBPACK_IMPORTED_MODULE_39__["plasma"]; });
16045
16046
16047
16048
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083
16084
16085
16086
16087
16088/***/ }),
16089
16090/***/ "./node_modules/d3-scale-chromatic/src/ramp.js":
16091/*!*****************************************************!*\
16092 !*** ./node_modules/d3-scale-chromatic/src/ramp.js ***!
16093 \*****************************************************/
16094/*! exports provided: default */
16095/***/ (function(module, __webpack_exports__, __webpack_require__) {
16096
16097"use strict";
16098__webpack_require__.r(__webpack_exports__);
16099/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
16100
16101
16102/* harmony default export */ __webpack_exports__["default"] = (function(scheme) {
16103 return Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["interpolateRgbBasis"])(scheme[scheme.length - 1]);
16104});
16105
16106
16107/***/ }),
16108
16109/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js":
16110/*!**********************************************************************!*\
16111 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js ***!
16112 \**********************************************************************/
16113/*! exports provided: scheme, default */
16114/***/ (function(module, __webpack_exports__, __webpack_require__) {
16115
16116"use strict";
16117__webpack_require__.r(__webpack_exports__);
16118/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16119/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16120/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16121
16122
16123
16124var scheme = new Array(3).concat(
16125 "e5f5f999d8c92ca25f",
16126 "edf8fbb2e2e266c2a4238b45",
16127 "edf8fbb2e2e266c2a42ca25f006d2c",
16128 "edf8fbccece699d8c966c2a42ca25f006d2c",
16129 "edf8fbccece699d8c966c2a441ae76238b45005824",
16130 "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
16131 "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b"
16132).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16133
16134/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16135
16136
16137/***/ }),
16138
16139/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js":
16140/*!**********************************************************************!*\
16141 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js ***!
16142 \**********************************************************************/
16143/*! exports provided: scheme, default */
16144/***/ (function(module, __webpack_exports__, __webpack_require__) {
16145
16146"use strict";
16147__webpack_require__.r(__webpack_exports__);
16148/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16149/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16150/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16151
16152
16153
16154var scheme = new Array(3).concat(
16155 "e0ecf49ebcda8856a7",
16156 "edf8fbb3cde38c96c688419d",
16157 "edf8fbb3cde38c96c68856a7810f7c",
16158 "edf8fbbfd3e69ebcda8c96c68856a7810f7c",
16159 "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
16160 "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
16161 "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b"
16162).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16163
16164/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16165
16166
16167/***/ }),
16168
16169/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js":
16170/*!**********************************************************************!*\
16171 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js ***!
16172 \**********************************************************************/
16173/*! exports provided: scheme, default */
16174/***/ (function(module, __webpack_exports__, __webpack_require__) {
16175
16176"use strict";
16177__webpack_require__.r(__webpack_exports__);
16178/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16179/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16180/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16181
16182
16183
16184var scheme = new Array(3).concat(
16185 "e0f3dba8ddb543a2ca",
16186 "f0f9e8bae4bc7bccc42b8cbe",
16187 "f0f9e8bae4bc7bccc443a2ca0868ac",
16188 "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
16189 "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
16190 "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
16191 "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081"
16192).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16193
16194/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16195
16196
16197/***/ }),
16198
16199/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js":
16200/*!**********************************************************************!*\
16201 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js ***!
16202 \**********************************************************************/
16203/*! exports provided: scheme, default */
16204/***/ (function(module, __webpack_exports__, __webpack_require__) {
16205
16206"use strict";
16207__webpack_require__.r(__webpack_exports__);
16208/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16209/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16210/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16211
16212
16213
16214var scheme = new Array(3).concat(
16215 "fee8c8fdbb84e34a33",
16216 "fef0d9fdcc8afc8d59d7301f",
16217 "fef0d9fdcc8afc8d59e34a33b30000",
16218 "fef0d9fdd49efdbb84fc8d59e34a33b30000",
16219 "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
16220 "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
16221 "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000"
16222).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16223
16224/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16225
16226
16227/***/ }),
16228
16229/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js":
16230/*!**********************************************************************!*\
16231 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js ***!
16232 \**********************************************************************/
16233/*! exports provided: scheme, default */
16234/***/ (function(module, __webpack_exports__, __webpack_require__) {
16235
16236"use strict";
16237__webpack_require__.r(__webpack_exports__);
16238/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16239/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16240/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16241
16242
16243
16244var scheme = new Array(3).concat(
16245 "ece7f2a6bddb2b8cbe",
16246 "f1eef6bdc9e174a9cf0570b0",
16247 "f1eef6bdc9e174a9cf2b8cbe045a8d",
16248 "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
16249 "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
16250 "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
16251 "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858"
16252).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16253
16254/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16255
16256
16257/***/ }),
16258
16259/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js":
16260/*!************************************************************************!*\
16261 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js ***!
16262 \************************************************************************/
16263/*! exports provided: scheme, default */
16264/***/ (function(module, __webpack_exports__, __webpack_require__) {
16265
16266"use strict";
16267__webpack_require__.r(__webpack_exports__);
16268/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16269/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16270/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16271
16272
16273
16274var scheme = new Array(3).concat(
16275 "ece2f0a6bddb1c9099",
16276 "f6eff7bdc9e167a9cf02818a",
16277 "f6eff7bdc9e167a9cf1c9099016c59",
16278 "f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
16279 "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
16280 "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
16281 "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636"
16282).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16283
16284/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16285
16286
16287/***/ }),
16288
16289/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js":
16290/*!**********************************************************************!*\
16291 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js ***!
16292 \**********************************************************************/
16293/*! exports provided: scheme, default */
16294/***/ (function(module, __webpack_exports__, __webpack_require__) {
16295
16296"use strict";
16297__webpack_require__.r(__webpack_exports__);
16298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16299/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16300/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16301
16302
16303
16304var scheme = new Array(3).concat(
16305 "e7e1efc994c7dd1c77",
16306 "f1eef6d7b5d8df65b0ce1256",
16307 "f1eef6d7b5d8df65b0dd1c77980043",
16308 "f1eef6d4b9dac994c7df65b0dd1c77980043",
16309 "f1eef6d4b9dac994c7df65b0e7298ace125691003f",
16310 "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
16311 "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f"
16312).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16313
16314/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16315
16316
16317/***/ }),
16318
16319/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js":
16320/*!**********************************************************************!*\
16321 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js ***!
16322 \**********************************************************************/
16323/*! exports provided: scheme, default */
16324/***/ (function(module, __webpack_exports__, __webpack_require__) {
16325
16326"use strict";
16327__webpack_require__.r(__webpack_exports__);
16328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16329/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16330/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16331
16332
16333
16334var scheme = new Array(3).concat(
16335 "fde0ddfa9fb5c51b8a",
16336 "feebe2fbb4b9f768a1ae017e",
16337 "feebe2fbb4b9f768a1c51b8a7a0177",
16338 "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
16339 "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
16340 "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
16341 "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a"
16342).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16343
16344/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16345
16346
16347/***/ }),
16348
16349/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js":
16350/*!**********************************************************************!*\
16351 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js ***!
16352 \**********************************************************************/
16353/*! exports provided: scheme, default */
16354/***/ (function(module, __webpack_exports__, __webpack_require__) {
16355
16356"use strict";
16357__webpack_require__.r(__webpack_exports__);
16358/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16359/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16360/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16361
16362
16363
16364var scheme = new Array(3).concat(
16365 "f7fcb9addd8e31a354",
16366 "ffffccc2e69978c679238443",
16367 "ffffccc2e69978c67931a354006837",
16368 "ffffccd9f0a3addd8e78c67931a354006837",
16369 "ffffccd9f0a3addd8e78c67941ab5d238443005a32",
16370 "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
16371 "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529"
16372).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16373
16374/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16375
16376
16377/***/ }),
16378
16379/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js":
16380/*!************************************************************************!*\
16381 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js ***!
16382 \************************************************************************/
16383/*! exports provided: scheme, default */
16384/***/ (function(module, __webpack_exports__, __webpack_require__) {
16385
16386"use strict";
16387__webpack_require__.r(__webpack_exports__);
16388/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16389/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16390/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16391
16392
16393
16394var scheme = new Array(3).concat(
16395 "edf8b17fcdbb2c7fb8",
16396 "ffffcca1dab441b6c4225ea8",
16397 "ffffcca1dab441b6c42c7fb8253494",
16398 "ffffccc7e9b47fcdbb41b6c42c7fb8253494",
16399 "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
16400 "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
16401 "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58"
16402).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16403
16404/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16405
16406
16407/***/ }),
16408
16409/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js":
16410/*!************************************************************************!*\
16411 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js ***!
16412 \************************************************************************/
16413/*! exports provided: scheme, default */
16414/***/ (function(module, __webpack_exports__, __webpack_require__) {
16415
16416"use strict";
16417__webpack_require__.r(__webpack_exports__);
16418/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16419/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16420/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16421
16422
16423
16424var scheme = new Array(3).concat(
16425 "fff7bcfec44fd95f0e",
16426 "ffffd4fed98efe9929cc4c02",
16427 "ffffd4fed98efe9929d95f0e993404",
16428 "ffffd4fee391fec44ffe9929d95f0e993404",
16429 "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
16430 "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
16431 "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506"
16432).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16433
16434/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16435
16436
16437/***/ }),
16438
16439/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js":
16440/*!************************************************************************!*\
16441 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js ***!
16442 \************************************************************************/
16443/*! exports provided: scheme, default */
16444/***/ (function(module, __webpack_exports__, __webpack_require__) {
16445
16446"use strict";
16447__webpack_require__.r(__webpack_exports__);
16448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16449/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16450/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16451
16452
16453
16454var scheme = new Array(3).concat(
16455 "ffeda0feb24cf03b20",
16456 "ffffb2fecc5cfd8d3ce31a1c",
16457 "ffffb2fecc5cfd8d3cf03b20bd0026",
16458 "ffffb2fed976feb24cfd8d3cf03b20bd0026",
16459 "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
16460 "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
16461 "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026"
16462).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16463
16464/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16465
16466
16467/***/ }),
16468
16469/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js":
16470/*!***************************************************************************!*\
16471 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js ***!
16472 \***************************************************************************/
16473/*! exports provided: default */
16474/***/ (function(module, __webpack_exports__, __webpack_require__) {
16475
16476"use strict";
16477__webpack_require__.r(__webpack_exports__);
16478/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
16479/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
16480
16481
16482
16483/* harmony default export */ __webpack_exports__["default"] = (Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateCubehelixLong"])(Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])(300, 0.5, 0.0), Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])(-240, 0.5, 1.0)));
16484
16485
16486/***/ }),
16487
16488/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js":
16489/*!*************************************************************************!*\
16490 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js ***!
16491 \*************************************************************************/
16492/*! exports provided: warm, cool, default */
16493/***/ (function(module, __webpack_exports__, __webpack_require__) {
16494
16495"use strict";
16496__webpack_require__.r(__webpack_exports__);
16497/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warm", function() { return warm; });
16498/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cool", function() { return cool; });
16499/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
16500/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
16501
16502
16503
16504var warm = Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateCubehelixLong"])(Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])(-100, 0.75, 0.35), Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])(80, 1.50, 0.8));
16505
16506var cool = Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateCubehelixLong"])(Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])(260, 0.75, 0.35), Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])(80, 1.50, 0.8));
16507
16508var c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])();
16509
16510/* harmony default export */ __webpack_exports__["default"] = (function(t) {
16511 if (t < 0 || t > 1) t -= Math.floor(t);
16512 var ts = Math.abs(t - 0.5);
16513 c.h = 360 * t - 100;
16514 c.s = 1.5 - 1.5 * ts;
16515 c.l = 0.8 - 0.9 * ts;
16516 return c + "";
16517});
16518
16519
16520/***/ }),
16521
16522/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js":
16523/*!*************************************************************************!*\
16524 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js ***!
16525 \*************************************************************************/
16526/*! exports provided: default */
16527/***/ (function(module, __webpack_exports__, __webpack_require__) {
16528
16529"use strict";
16530__webpack_require__.r(__webpack_exports__);
16531/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
16532
16533
16534var c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["rgb"])(),
16535 pi_1_3 = Math.PI / 3,
16536 pi_2_3 = Math.PI * 2 / 3;
16537
16538/* harmony default export */ __webpack_exports__["default"] = (function(t) {
16539 var x;
16540 t = (0.5 - t) * Math.PI;
16541 c.r = 255 * (x = Math.sin(t)) * x;
16542 c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;
16543 c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;
16544 return c + "";
16545});
16546
16547
16548/***/ }),
16549
16550/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js":
16551/*!*************************************************************************!*\
16552 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js ***!
16553 \*************************************************************************/
16554/*! exports provided: default, magma, inferno, plasma */
16555/***/ (function(module, __webpack_exports__, __webpack_require__) {
16556
16557"use strict";
16558__webpack_require__.r(__webpack_exports__);
16559/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "magma", function() { return magma; });
16560/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inferno", function() { return inferno; });
16561/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "plasma", function() { return plasma; });
16562/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16563
16564
16565function ramp(range) {
16566 var n = range.length;
16567 return function(t) {
16568 return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
16569 };
16570}
16571
16572/* harmony default export */ __webpack_exports__["default"] = (ramp(Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")));
16573
16574var magma = ramp(Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));
16575
16576var inferno = ramp(Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));
16577
16578var plasma = ramp(Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));
16579
16580
16581/***/ }),
16582
16583/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js":
16584/*!************************************************************************!*\
16585 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js ***!
16586 \************************************************************************/
16587/*! exports provided: scheme, default */
16588/***/ (function(module, __webpack_exports__, __webpack_require__) {
16589
16590"use strict";
16591__webpack_require__.r(__webpack_exports__);
16592/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16593/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16594/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16595
16596
16597
16598var scheme = new Array(3).concat(
16599 "deebf79ecae13182bd",
16600 "eff3ffbdd7e76baed62171b5",
16601 "eff3ffbdd7e76baed63182bd08519c",
16602 "eff3ffc6dbef9ecae16baed63182bd08519c",
16603 "eff3ffc6dbef9ecae16baed64292c62171b5084594",
16604 "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
16605 "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b"
16606).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16607
16608/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16609
16610
16611/***/ }),
16612
16613/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js":
16614/*!*************************************************************************!*\
16615 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js ***!
16616 \*************************************************************************/
16617/*! exports provided: scheme, default */
16618/***/ (function(module, __webpack_exports__, __webpack_require__) {
16619
16620"use strict";
16621__webpack_require__.r(__webpack_exports__);
16622/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16623/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16624/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16625
16626
16627
16628var scheme = new Array(3).concat(
16629 "e5f5e0a1d99b31a354",
16630 "edf8e9bae4b374c476238b45",
16631 "edf8e9bae4b374c47631a354006d2c",
16632 "edf8e9c7e9c0a1d99b74c47631a354006d2c",
16633 "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
16634 "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
16635 "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b"
16636).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16637
16638/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16639
16640
16641/***/ }),
16642
16643/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js":
16644/*!************************************************************************!*\
16645 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js ***!
16646 \************************************************************************/
16647/*! exports provided: scheme, default */
16648/***/ (function(module, __webpack_exports__, __webpack_require__) {
16649
16650"use strict";
16651__webpack_require__.r(__webpack_exports__);
16652/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16653/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16654/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16655
16656
16657
16658var scheme = new Array(3).concat(
16659 "f0f0f0bdbdbd636363",
16660 "f7f7f7cccccc969696525252",
16661 "f7f7f7cccccc969696636363252525",
16662 "f7f7f7d9d9d9bdbdbd969696636363252525",
16663 "f7f7f7d9d9d9bdbdbd969696737373525252252525",
16664 "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
16665 "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000"
16666).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16667
16668/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16669
16670
16671/***/ }),
16672
16673/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js":
16674/*!**************************************************************************!*\
16675 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js ***!
16676 \**************************************************************************/
16677/*! exports provided: scheme, default */
16678/***/ (function(module, __webpack_exports__, __webpack_require__) {
16679
16680"use strict";
16681__webpack_require__.r(__webpack_exports__);
16682/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16683/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16684/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16685
16686
16687
16688var scheme = new Array(3).concat(
16689 "fee6cefdae6be6550d",
16690 "feeddefdbe85fd8d3cd94701",
16691 "feeddefdbe85fd8d3ce6550da63603",
16692 "feeddefdd0a2fdae6bfd8d3ce6550da63603",
16693 "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
16694 "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
16695 "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704"
16696).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16697
16698/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16699
16700
16701/***/ }),
16702
16703/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js":
16704/*!**************************************************************************!*\
16705 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js ***!
16706 \**************************************************************************/
16707/*! exports provided: scheme, default */
16708/***/ (function(module, __webpack_exports__, __webpack_require__) {
16709
16710"use strict";
16711__webpack_require__.r(__webpack_exports__);
16712/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16713/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16714/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16715
16716
16717
16718var scheme = new Array(3).concat(
16719 "efedf5bcbddc756bb1",
16720 "f2f0f7cbc9e29e9ac86a51a3",
16721 "f2f0f7cbc9e29e9ac8756bb154278f",
16722 "f2f0f7dadaebbcbddc9e9ac8756bb154278f",
16723 "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
16724 "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
16725 "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d"
16726).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16727
16728/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16729
16730
16731/***/ }),
16732
16733/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js":
16734/*!***********************************************************************!*\
16735 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js ***!
16736 \***********************************************************************/
16737/*! exports provided: scheme, default */
16738/***/ (function(module, __webpack_exports__, __webpack_require__) {
16739
16740"use strict";
16741__webpack_require__.r(__webpack_exports__);
16742/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16743/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors */ "./node_modules/d3-scale-chromatic/src/colors.js");
16744/* harmony import */ var _ramp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16745
16746
16747
16748var scheme = new Array(3).concat(
16749 "fee0d2fc9272de2d26",
16750 "fee5d9fcae91fb6a4acb181d",
16751 "fee5d9fcae91fb6a4ade2d26a50f15",
16752 "fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
16753 "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
16754 "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
16755 "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d"
16756).map(_colors__WEBPACK_IMPORTED_MODULE_0__["default"]);
16757
16758/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16759
16760
16761/***/ }),
16762
16763/***/ "./node_modules/d3-scale/src/array.js":
16764/*!********************************************!*\
16765 !*** ./node_modules/d3-scale/src/array.js ***!
16766 \********************************************/
16767/*! exports provided: map, slice */
16768/***/ (function(module, __webpack_exports__, __webpack_require__) {
16769
16770"use strict";
16771__webpack_require__.r(__webpack_exports__);
16772/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
16773/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
16774var array = Array.prototype;
16775
16776var map = array.map;
16777var slice = array.slice;
16778
16779
16780/***/ }),
16781
16782/***/ "./node_modules/d3-scale/src/band.js":
16783/*!*******************************************!*\
16784 !*** ./node_modules/d3-scale/src/band.js ***!
16785 \*******************************************/
16786/*! exports provided: default, point */
16787/***/ (function(module, __webpack_exports__, __webpack_require__) {
16788
16789"use strict";
16790__webpack_require__.r(__webpack_exports__);
16791/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return band; });
16792/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
16793/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
16794/* harmony import */ var _ordinal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ordinal */ "./node_modules/d3-scale/src/ordinal.js");
16795
16796
16797
16798function band() {
16799 var scale = Object(_ordinal__WEBPACK_IMPORTED_MODULE_1__["default"])().unknown(undefined),
16800 domain = scale.domain,
16801 ordinalRange = scale.range,
16802 range = [0, 1],
16803 step,
16804 bandwidth,
16805 round = false,
16806 paddingInner = 0,
16807 paddingOuter = 0,
16808 align = 0.5;
16809
16810 delete scale.unknown;
16811
16812 function rescale() {
16813 var n = domain().length,
16814 reverse = range[1] < range[0],
16815 start = range[reverse - 0],
16816 stop = range[1 - reverse];
16817 step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
16818 if (round) step = Math.floor(step);
16819 start += (stop - start - step * (n - paddingInner)) * align;
16820 bandwidth = step * (1 - paddingInner);
16821 if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
16822 var values = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n).map(function(i) { return start + step * i; });
16823 return ordinalRange(reverse ? values.reverse() : values);
16824 }
16825
16826 scale.domain = function(_) {
16827 return arguments.length ? (domain(_), rescale()) : domain();
16828 };
16829
16830 scale.range = function(_) {
16831 return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();
16832 };
16833
16834 scale.rangeRound = function(_) {
16835 return range = [+_[0], +_[1]], round = true, rescale();
16836 };
16837
16838 scale.bandwidth = function() {
16839 return bandwidth;
16840 };
16841
16842 scale.step = function() {
16843 return step;
16844 };
16845
16846 scale.round = function(_) {
16847 return arguments.length ? (round = !!_, rescale()) : round;
16848 };
16849
16850 scale.padding = function(_) {
16851 return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;
16852 };
16853
16854 scale.paddingInner = function(_) {
16855 return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;
16856 };
16857
16858 scale.paddingOuter = function(_) {
16859 return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;
16860 };
16861
16862 scale.align = function(_) {
16863 return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
16864 };
16865
16866 scale.copy = function() {
16867 return band()
16868 .domain(domain())
16869 .range(range)
16870 .round(round)
16871 .paddingInner(paddingInner)
16872 .paddingOuter(paddingOuter)
16873 .align(align);
16874 };
16875
16876 return rescale();
16877}
16878
16879function pointish(scale) {
16880 var copy = scale.copy;
16881
16882 scale.padding = scale.paddingOuter;
16883 delete scale.paddingInner;
16884 delete scale.paddingOuter;
16885
16886 scale.copy = function() {
16887 return pointish(copy());
16888 };
16889
16890 return scale;
16891}
16892
16893function point() {
16894 return pointish(band().paddingInner(1));
16895}
16896
16897
16898/***/ }),
16899
16900/***/ "./node_modules/d3-scale/src/constant.js":
16901/*!***********************************************!*\
16902 !*** ./node_modules/d3-scale/src/constant.js ***!
16903 \***********************************************/
16904/*! exports provided: default */
16905/***/ (function(module, __webpack_exports__, __webpack_require__) {
16906
16907"use strict";
16908__webpack_require__.r(__webpack_exports__);
16909/* harmony default export */ __webpack_exports__["default"] = (function(x) {
16910 return function() {
16911 return x;
16912 };
16913});
16914
16915
16916/***/ }),
16917
16918/***/ "./node_modules/d3-scale/src/continuous.js":
16919/*!*************************************************!*\
16920 !*** ./node_modules/d3-scale/src/continuous.js ***!
16921 \*************************************************/
16922/*! exports provided: deinterpolateLinear, copy, default */
16923/***/ (function(module, __webpack_exports__, __webpack_require__) {
16924
16925"use strict";
16926__webpack_require__.r(__webpack_exports__);
16927/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deinterpolateLinear", function() { return deinterpolateLinear; });
16928/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copy", function() { return copy; });
16929/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return continuous; });
16930/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
16931/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
16932/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
16933/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-scale/src/constant.js");
16934/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number */ "./node_modules/d3-scale/src/number.js");
16935
16936
16937
16938
16939
16940
16941var unit = [0, 1];
16942
16943function deinterpolateLinear(a, b) {
16944 return (b -= (a = +a))
16945 ? function(x) { return (x - a) / b; }
16946 : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(b);
16947}
16948
16949function deinterpolateClamp(deinterpolate) {
16950 return function(a, b) {
16951 var d = deinterpolate(a = +a, b = +b);
16952 return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };
16953 };
16954}
16955
16956function reinterpolateClamp(reinterpolate) {
16957 return function(a, b) {
16958 var r = reinterpolate(a = +a, b = +b);
16959 return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };
16960 };
16961}
16962
16963function bimap(domain, range, deinterpolate, reinterpolate) {
16964 var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
16965 if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);
16966 else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);
16967 return function(x) { return r0(d0(x)); };
16968}
16969
16970function polymap(domain, range, deinterpolate, reinterpolate) {
16971 var j = Math.min(domain.length, range.length) - 1,
16972 d = new Array(j),
16973 r = new Array(j),
16974 i = -1;
16975
16976 // Reverse descending domains.
16977 if (domain[j] < domain[0]) {
16978 domain = domain.slice().reverse();
16979 range = range.slice().reverse();
16980 }
16981
16982 while (++i < j) {
16983 d[i] = deinterpolate(domain[i], domain[i + 1]);
16984 r[i] = reinterpolate(range[i], range[i + 1]);
16985 }
16986
16987 return function(x) {
16988 var i = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 1, j) - 1;
16989 return r[i](d[i](x));
16990 };
16991}
16992
16993function copy(source, target) {
16994 return target
16995 .domain(source.domain())
16996 .range(source.range())
16997 .interpolate(source.interpolate())
16998 .clamp(source.clamp());
16999}
17000
17001// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
17002// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].
17003function continuous(deinterpolate, reinterpolate) {
17004 var domain = unit,
17005 range = unit,
17006 interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolate"],
17007 clamp = false,
17008 piecewise,
17009 output,
17010 input;
17011
17012 function rescale() {
17013 piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;
17014 output = input = null;
17015 return scale;
17016 }
17017
17018 function scale(x) {
17019 return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);
17020 }
17021
17022 scale.invert = function(y) {
17023 return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);
17024 };
17025
17026 scale.domain = function(_) {
17027 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_2__["map"].call(_, _number__WEBPACK_IMPORTED_MODULE_4__["default"]), rescale()) : domain.slice();
17028 };
17029
17030 scale.range = function(_) {
17031 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_2__["slice"].call(_), rescale()) : range.slice();
17032 };
17033
17034 scale.rangeRound = function(_) {
17035 return range = _array__WEBPACK_IMPORTED_MODULE_2__["slice"].call(_), interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRound"], rescale();
17036 };
17037
17038 scale.clamp = function(_) {
17039 return arguments.length ? (clamp = !!_, rescale()) : clamp;
17040 };
17041
17042 scale.interpolate = function(_) {
17043 return arguments.length ? (interpolate = _, rescale()) : interpolate;
17044 };
17045
17046 return rescale();
17047}
17048
17049
17050/***/ }),
17051
17052/***/ "./node_modules/d3-scale/src/diverging.js":
17053/*!************************************************!*\
17054 !*** ./node_modules/d3-scale/src/diverging.js ***!
17055 \************************************************/
17056/*! exports provided: default */
17057/***/ (function(module, __webpack_exports__, __webpack_require__) {
17058
17059"use strict";
17060__webpack_require__.r(__webpack_exports__);
17061/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return diverging; });
17062/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17063
17064
17065function diverging(interpolator) {
17066 var x0 = 0,
17067 x1 = 0.5,
17068 x2 = 1,
17069 k10 = 1,
17070 k21 = 1,
17071 clamp = false;
17072
17073 function scale(x) {
17074 var t = 0.5 + ((x = +x) - x1) * (x < x1 ? k10 : k21);
17075 return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);
17076 }
17077
17078 scale.domain = function(_) {
17079 return arguments.length ? (x0 = +_[0], x1 = +_[1], x2 = +_[2], k10 = x0 === x1 ? 0 : 0.5 / (x1 - x0), k21 = x1 === x2 ? 0 : 0.5 / (x2 - x1), scale) : [x0, x1, x2];
17080 };
17081
17082 scale.clamp = function(_) {
17083 return arguments.length ? (clamp = !!_, scale) : clamp;
17084 };
17085
17086 scale.interpolator = function(_) {
17087 return arguments.length ? (interpolator = _, scale) : interpolator;
17088 };
17089
17090 scale.copy = function() {
17091 return diverging(interpolator).domain([x0, x1, x2]).clamp(clamp);
17092 };
17093
17094 return Object(_linear__WEBPACK_IMPORTED_MODULE_0__["linearish"])(scale);
17095}
17096
17097
17098/***/ }),
17099
17100/***/ "./node_modules/d3-scale/src/identity.js":
17101/*!***********************************************!*\
17102 !*** ./node_modules/d3-scale/src/identity.js ***!
17103 \***********************************************/
17104/*! exports provided: default */
17105/***/ (function(module, __webpack_exports__, __webpack_require__) {
17106
17107"use strict";
17108__webpack_require__.r(__webpack_exports__);
17109/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return identity; });
17110/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17111/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17112/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./number */ "./node_modules/d3-scale/src/number.js");
17113
17114
17115
17116
17117function identity() {
17118 var domain = [0, 1];
17119
17120 function scale(x) {
17121 return +x;
17122 }
17123
17124 scale.invert = scale;
17125
17126 scale.domain = scale.range = function(_) {
17127 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_0__["map"].call(_, _number__WEBPACK_IMPORTED_MODULE_2__["default"]), scale) : domain.slice();
17128 };
17129
17130 scale.copy = function() {
17131 return identity().domain(domain);
17132 };
17133
17134 return Object(_linear__WEBPACK_IMPORTED_MODULE_1__["linearish"])(scale);
17135}
17136
17137
17138/***/ }),
17139
17140/***/ "./node_modules/d3-scale/src/index.js":
17141/*!********************************************!*\
17142 !*** ./node_modules/d3-scale/src/index.js ***!
17143 \********************************************/
17144/*! exports provided: scaleBand, scalePoint, scaleIdentity, scaleLinear, scaleLog, scaleOrdinal, scaleImplicit, scalePow, scaleSqrt, scaleQuantile, scaleQuantize, scaleThreshold, scaleTime, scaleUtc, scaleSequential, scaleDiverging */
17145/***/ (function(module, __webpack_exports__, __webpack_require__) {
17146
17147"use strict";
17148__webpack_require__.r(__webpack_exports__);
17149/* harmony import */ var _band__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./band */ "./node_modules/d3-scale/src/band.js");
17150/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleBand", function() { return _band__WEBPACK_IMPORTED_MODULE_0__["default"]; });
17151
17152/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePoint", function() { return _band__WEBPACK_IMPORTED_MODULE_0__["point"]; });
17153
17154/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-scale/src/identity.js");
17155/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return _identity__WEBPACK_IMPORTED_MODULE_1__["default"]; });
17156
17157/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17158/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return _linear__WEBPACK_IMPORTED_MODULE_2__["default"]; });
17159
17160/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log */ "./node_modules/d3-scale/src/log.js");
17161/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLog", function() { return _log__WEBPACK_IMPORTED_MODULE_3__["default"]; });
17162
17163/* harmony import */ var _ordinal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ordinal */ "./node_modules/d3-scale/src/ordinal.js");
17164/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return _ordinal__WEBPACK_IMPORTED_MODULE_4__["default"]; });
17165
17166/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return _ordinal__WEBPACK_IMPORTED_MODULE_4__["implicit"]; });
17167
17168/* harmony import */ var _pow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pow */ "./node_modules/d3-scale/src/pow.js");
17169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePow", function() { return _pow__WEBPACK_IMPORTED_MODULE_5__["default"]; });
17170
17171/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return _pow__WEBPACK_IMPORTED_MODULE_5__["sqrt"]; });
17172
17173/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./quantile */ "./node_modules/d3-scale/src/quantile.js");
17174/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return _quantile__WEBPACK_IMPORTED_MODULE_6__["default"]; });
17175
17176/* harmony import */ var _quantize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./quantize */ "./node_modules/d3-scale/src/quantize.js");
17177/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return _quantize__WEBPACK_IMPORTED_MODULE_7__["default"]; });
17178
17179/* harmony import */ var _threshold__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./threshold */ "./node_modules/d3-scale/src/threshold.js");
17180/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return _threshold__WEBPACK_IMPORTED_MODULE_8__["default"]; });
17181
17182/* harmony import */ var _time__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./time */ "./node_modules/d3-scale/src/time.js");
17183/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleTime", function() { return _time__WEBPACK_IMPORTED_MODULE_9__["default"]; });
17184
17185/* harmony import */ var _utcTime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utcTime */ "./node_modules/d3-scale/src/utcTime.js");
17186/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return _utcTime__WEBPACK_IMPORTED_MODULE_10__["default"]; });
17187
17188/* harmony import */ var _sequential__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./sequential */ "./node_modules/d3-scale/src/sequential.js");
17189/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return _sequential__WEBPACK_IMPORTED_MODULE_11__["default"]; });
17190
17191/* harmony import */ var _diverging__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diverging */ "./node_modules/d3-scale/src/diverging.js");
17192/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDiverging", function() { return _diverging__WEBPACK_IMPORTED_MODULE_12__["default"]; });
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
17216
17217
17218
17219
17220
17221/***/ }),
17222
17223/***/ "./node_modules/d3-scale/src/linear.js":
17224/*!*********************************************!*\
17225 !*** ./node_modules/d3-scale/src/linear.js ***!
17226 \*********************************************/
17227/*! exports provided: linearish, default */
17228/***/ (function(module, __webpack_exports__, __webpack_require__) {
17229
17230"use strict";
17231__webpack_require__.r(__webpack_exports__);
17232/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linearish", function() { return linearish; });
17233/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return linear; });
17234/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17235/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
17236/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
17237/* harmony import */ var _tickFormat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tickFormat */ "./node_modules/d3-scale/src/tickFormat.js");
17238
17239
17240
17241
17242
17243function linearish(scale) {
17244 var domain = scale.domain;
17245
17246 scale.ticks = function(count) {
17247 var d = domain();
17248 return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["ticks"])(d[0], d[d.length - 1], count == null ? 10 : count);
17249 };
17250
17251 scale.tickFormat = function(count, specifier) {
17252 return Object(_tickFormat__WEBPACK_IMPORTED_MODULE_3__["default"])(domain(), count, specifier);
17253 };
17254
17255 scale.nice = function(count) {
17256 if (count == null) count = 10;
17257
17258 var d = domain(),
17259 i0 = 0,
17260 i1 = d.length - 1,
17261 start = d[i0],
17262 stop = d[i1],
17263 step;
17264
17265 if (stop < start) {
17266 step = start, start = stop, stop = step;
17267 step = i0, i0 = i1, i1 = step;
17268 }
17269
17270 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
17271
17272 if (step > 0) {
17273 start = Math.floor(start / step) * step;
17274 stop = Math.ceil(stop / step) * step;
17275 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
17276 } else if (step < 0) {
17277 start = Math.ceil(start * step) / step;
17278 stop = Math.floor(stop * step) / step;
17279 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
17280 }
17281
17282 if (step > 0) {
17283 d[i0] = Math.floor(start / step) * step;
17284 d[i1] = Math.ceil(stop / step) * step;
17285 domain(d);
17286 } else if (step < 0) {
17287 d[i0] = Math.ceil(start * step) / step;
17288 d[i1] = Math.floor(stop * step) / step;
17289 domain(d);
17290 }
17291
17292 return scale;
17293 };
17294
17295 return scale;
17296}
17297
17298function linear() {
17299 var scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_2__["default"])(_continuous__WEBPACK_IMPORTED_MODULE_2__["deinterpolateLinear"], d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateNumber"]);
17300
17301 scale.copy = function() {
17302 return Object(_continuous__WEBPACK_IMPORTED_MODULE_2__["copy"])(scale, linear());
17303 };
17304
17305 return linearish(scale);
17306}
17307
17308
17309/***/ }),
17310
17311/***/ "./node_modules/d3-scale/src/log.js":
17312/*!******************************************!*\
17313 !*** ./node_modules/d3-scale/src/log.js ***!
17314 \******************************************/
17315/*! exports provided: default */
17316/***/ (function(module, __webpack_exports__, __webpack_require__) {
17317
17318"use strict";
17319__webpack_require__.r(__webpack_exports__);
17320/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return log; });
17321/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17322/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/index.js");
17323/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-scale/src/constant.js");
17324/* harmony import */ var _nice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nice */ "./node_modules/d3-scale/src/nice.js");
17325/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
17326
17327
17328
17329
17330
17331
17332function deinterpolate(a, b) {
17333 return (b = Math.log(b / a))
17334 ? function(x) { return Math.log(x / a) / b; }
17335 : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(b);
17336}
17337
17338function reinterpolate(a, b) {
17339 return a < 0
17340 ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }
17341 : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };
17342}
17343
17344function pow10(x) {
17345 return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
17346}
17347
17348function powp(base) {
17349 return base === 10 ? pow10
17350 : base === Math.E ? Math.exp
17351 : function(x) { return Math.pow(base, x); };
17352}
17353
17354function logp(base) {
17355 return base === Math.E ? Math.log
17356 : base === 10 && Math.log10
17357 || base === 2 && Math.log2
17358 || (base = Math.log(base), function(x) { return Math.log(x) / base; });
17359}
17360
17361function reflect(f) {
17362 return function(x) {
17363 return -f(-x);
17364 };
17365}
17366
17367function log() {
17368 var scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_4__["default"])(deinterpolate, reinterpolate).domain([1, 10]),
17369 domain = scale.domain,
17370 base = 10,
17371 logs = logp(10),
17372 pows = powp(10);
17373
17374 function rescale() {
17375 logs = logp(base), pows = powp(base);
17376 if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);
17377 return scale;
17378 }
17379
17380 scale.base = function(_) {
17381 return arguments.length ? (base = +_, rescale()) : base;
17382 };
17383
17384 scale.domain = function(_) {
17385 return arguments.length ? (domain(_), rescale()) : domain();
17386 };
17387
17388 scale.ticks = function(count) {
17389 var d = domain(),
17390 u = d[0],
17391 v = d[d.length - 1],
17392 r;
17393
17394 if (r = v < u) i = u, u = v, v = i;
17395
17396 var i = logs(u),
17397 j = logs(v),
17398 p,
17399 k,
17400 t,
17401 n = count == null ? 10 : +count,
17402 z = [];
17403
17404 if (!(base % 1) && j - i < n) {
17405 i = Math.round(i) - 1, j = Math.round(j) + 1;
17406 if (u > 0) for (; i < j; ++i) {
17407 for (k = 1, p = pows(i); k < base; ++k) {
17408 t = p * k;
17409 if (t < u) continue;
17410 if (t > v) break;
17411 z.push(t);
17412 }
17413 } else for (; i < j; ++i) {
17414 for (k = base - 1, p = pows(i); k >= 1; --k) {
17415 t = p * k;
17416 if (t < u) continue;
17417 if (t > v) break;
17418 z.push(t);
17419 }
17420 }
17421 } else {
17422 z = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["ticks"])(i, j, Math.min(j - i, n)).map(pows);
17423 }
17424
17425 return r ? z.reverse() : z;
17426 };
17427
17428 scale.tickFormat = function(count, specifier) {
17429 if (specifier == null) specifier = base === 10 ? ".0e" : ",";
17430 if (typeof specifier !== "function") specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["format"])(specifier);
17431 if (count === Infinity) return specifier;
17432 if (count == null) count = 10;
17433 var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
17434 return function(d) {
17435 var i = d / pows(Math.round(logs(d)));
17436 if (i * base < base - 0.5) i *= base;
17437 return i <= k ? specifier(d) : "";
17438 };
17439 };
17440
17441 scale.nice = function() {
17442 return domain(Object(_nice__WEBPACK_IMPORTED_MODULE_3__["default"])(domain(), {
17443 floor: function(x) { return pows(Math.floor(logs(x))); },
17444 ceil: function(x) { return pows(Math.ceil(logs(x))); }
17445 }));
17446 };
17447
17448 scale.copy = function() {
17449 return Object(_continuous__WEBPACK_IMPORTED_MODULE_4__["copy"])(scale, log().base(base));
17450 };
17451
17452 return scale;
17453}
17454
17455
17456/***/ }),
17457
17458/***/ "./node_modules/d3-scale/src/nice.js":
17459/*!*******************************************!*\
17460 !*** ./node_modules/d3-scale/src/nice.js ***!
17461 \*******************************************/
17462/*! exports provided: default */
17463/***/ (function(module, __webpack_exports__, __webpack_require__) {
17464
17465"use strict";
17466__webpack_require__.r(__webpack_exports__);
17467/* harmony default export */ __webpack_exports__["default"] = (function(domain, interval) {
17468 domain = domain.slice();
17469
17470 var i0 = 0,
17471 i1 = domain.length - 1,
17472 x0 = domain[i0],
17473 x1 = domain[i1],
17474 t;
17475
17476 if (x1 < x0) {
17477 t = i0, i0 = i1, i1 = t;
17478 t = x0, x0 = x1, x1 = t;
17479 }
17480
17481 domain[i0] = interval.floor(x0);
17482 domain[i1] = interval.ceil(x1);
17483 return domain;
17484});
17485
17486
17487/***/ }),
17488
17489/***/ "./node_modules/d3-scale/src/number.js":
17490/*!*********************************************!*\
17491 !*** ./node_modules/d3-scale/src/number.js ***!
17492 \*********************************************/
17493/*! exports provided: default */
17494/***/ (function(module, __webpack_exports__, __webpack_require__) {
17495
17496"use strict";
17497__webpack_require__.r(__webpack_exports__);
17498/* harmony default export */ __webpack_exports__["default"] = (function(x) {
17499 return +x;
17500});
17501
17502
17503/***/ }),
17504
17505/***/ "./node_modules/d3-scale/src/ordinal.js":
17506/*!**********************************************!*\
17507 !*** ./node_modules/d3-scale/src/ordinal.js ***!
17508 \**********************************************/
17509/*! exports provided: implicit, default */
17510/***/ (function(module, __webpack_exports__, __webpack_require__) {
17511
17512"use strict";
17513__webpack_require__.r(__webpack_exports__);
17514/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "implicit", function() { return implicit; });
17515/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ordinal; });
17516/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/src/index.js");
17517/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17518
17519
17520
17521var implicit = {name: "implicit"};
17522
17523function ordinal(range) {
17524 var index = Object(d3_collection__WEBPACK_IMPORTED_MODULE_0__["map"])(),
17525 domain = [],
17526 unknown = implicit;
17527
17528 range = range == null ? [] : _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(range);
17529
17530 function scale(d) {
17531 var key = d + "", i = index.get(key);
17532 if (!i) {
17533 if (unknown !== implicit) return unknown;
17534 index.set(key, i = domain.push(d));
17535 }
17536 return range[(i - 1) % range.length];
17537 }
17538
17539 scale.domain = function(_) {
17540 if (!arguments.length) return domain.slice();
17541 domain = [], index = Object(d3_collection__WEBPACK_IMPORTED_MODULE_0__["map"])();
17542 var i = -1, n = _.length, d, key;
17543 while (++i < n) if (!index.has(key = (d = _[i]) + "")) index.set(key, domain.push(d));
17544 return scale;
17545 };
17546
17547 scale.range = function(_) {
17548 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), scale) : range.slice();
17549 };
17550
17551 scale.unknown = function(_) {
17552 return arguments.length ? (unknown = _, scale) : unknown;
17553 };
17554
17555 scale.copy = function() {
17556 return ordinal()
17557 .domain(domain)
17558 .range(range)
17559 .unknown(unknown);
17560 };
17561
17562 return scale;
17563}
17564
17565
17566/***/ }),
17567
17568/***/ "./node_modules/d3-scale/src/pow.js":
17569/*!******************************************!*\
17570 !*** ./node_modules/d3-scale/src/pow.js ***!
17571 \******************************************/
17572/*! exports provided: default, sqrt */
17573/***/ (function(module, __webpack_exports__, __webpack_require__) {
17574
17575"use strict";
17576__webpack_require__.r(__webpack_exports__);
17577/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return pow; });
17578/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
17579/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-scale/src/constant.js");
17580/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17581/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
17582
17583
17584
17585
17586function raise(x, exponent) {
17587 return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
17588}
17589
17590function pow() {
17591 var exponent = 1,
17592 scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_2__["default"])(deinterpolate, reinterpolate),
17593 domain = scale.domain;
17594
17595 function deinterpolate(a, b) {
17596 return (b = raise(b, exponent) - (a = raise(a, exponent)))
17597 ? function(x) { return (raise(x, exponent) - a) / b; }
17598 : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(b);
17599 }
17600
17601 function reinterpolate(a, b) {
17602 b = raise(b, exponent) - (a = raise(a, exponent));
17603 return function(t) { return raise(a + b * t, 1 / exponent); };
17604 }
17605
17606 scale.exponent = function(_) {
17607 return arguments.length ? (exponent = +_, domain(domain())) : exponent;
17608 };
17609
17610 scale.copy = function() {
17611 return Object(_continuous__WEBPACK_IMPORTED_MODULE_2__["copy"])(scale, pow().exponent(exponent));
17612 };
17613
17614 return Object(_linear__WEBPACK_IMPORTED_MODULE_1__["linearish"])(scale);
17615}
17616
17617function sqrt() {
17618 return pow().exponent(0.5);
17619}
17620
17621
17622/***/ }),
17623
17624/***/ "./node_modules/d3-scale/src/quantile.js":
17625/*!***********************************************!*\
17626 !*** ./node_modules/d3-scale/src/quantile.js ***!
17627 \***********************************************/
17628/*! exports provided: default */
17629/***/ (function(module, __webpack_exports__, __webpack_require__) {
17630
17631"use strict";
17632__webpack_require__.r(__webpack_exports__);
17633/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quantile; });
17634/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17635/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17636
17637
17638
17639function quantile() {
17640 var domain = [],
17641 range = [],
17642 thresholds = [];
17643
17644 function rescale() {
17645 var i = 0, n = Math.max(1, range.length);
17646 thresholds = new Array(n - 1);
17647 while (++i < n) thresholds[i - 1] = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["quantile"])(domain, i / n);
17648 return scale;
17649 }
17650
17651 function scale(x) {
17652 if (!isNaN(x = +x)) return range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(thresholds, x)];
17653 }
17654
17655 scale.invertExtent = function(y) {
17656 var i = range.indexOf(y);
17657 return i < 0 ? [NaN, NaN] : [
17658 i > 0 ? thresholds[i - 1] : domain[0],
17659 i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
17660 ];
17661 };
17662
17663 scale.domain = function(_) {
17664 if (!arguments.length) return domain.slice();
17665 domain = [];
17666 for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);
17667 domain.sort(d3_array__WEBPACK_IMPORTED_MODULE_0__["ascending"]);
17668 return rescale();
17669 };
17670
17671 scale.range = function(_) {
17672 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), rescale()) : range.slice();
17673 };
17674
17675 scale.quantiles = function() {
17676 return thresholds.slice();
17677 };
17678
17679 scale.copy = function() {
17680 return quantile()
17681 .domain(domain)
17682 .range(range);
17683 };
17684
17685 return scale;
17686}
17687
17688
17689/***/ }),
17690
17691/***/ "./node_modules/d3-scale/src/quantize.js":
17692/*!***********************************************!*\
17693 !*** ./node_modules/d3-scale/src/quantize.js ***!
17694 \***********************************************/
17695/*! exports provided: default */
17696/***/ (function(module, __webpack_exports__, __webpack_require__) {
17697
17698"use strict";
17699__webpack_require__.r(__webpack_exports__);
17700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quantize; });
17701/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17702/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17703/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17704
17705
17706
17707
17708function quantize() {
17709 var x0 = 0,
17710 x1 = 1,
17711 n = 1,
17712 domain = [0.5],
17713 range = [0, 1];
17714
17715 function scale(x) {
17716 if (x <= x) return range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 0, n)];
17717 }
17718
17719 function rescale() {
17720 var i = -1;
17721 domain = new Array(n);
17722 while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
17723 return scale;
17724 }
17725
17726 scale.domain = function(_) {
17727 return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];
17728 };
17729
17730 scale.range = function(_) {
17731 return arguments.length ? (n = (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_)).length - 1, rescale()) : range.slice();
17732 };
17733
17734 scale.invertExtent = function(y) {
17735 var i = range.indexOf(y);
17736 return i < 0 ? [NaN, NaN]
17737 : i < 1 ? [x0, domain[0]]
17738 : i >= n ? [domain[n - 1], x1]
17739 : [domain[i - 1], domain[i]];
17740 };
17741
17742 scale.copy = function() {
17743 return quantize()
17744 .domain([x0, x1])
17745 .range(range);
17746 };
17747
17748 return Object(_linear__WEBPACK_IMPORTED_MODULE_2__["linearish"])(scale);
17749}
17750
17751
17752/***/ }),
17753
17754/***/ "./node_modules/d3-scale/src/sequential.js":
17755/*!*************************************************!*\
17756 !*** ./node_modules/d3-scale/src/sequential.js ***!
17757 \*************************************************/
17758/*! exports provided: default */
17759/***/ (function(module, __webpack_exports__, __webpack_require__) {
17760
17761"use strict";
17762__webpack_require__.r(__webpack_exports__);
17763/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return sequential; });
17764/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17765
17766
17767function sequential(interpolator) {
17768 var x0 = 0,
17769 x1 = 1,
17770 k10 = 1,
17771 clamp = false;
17772
17773 function scale(x) {
17774 var t = (x - x0) * k10;
17775 return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);
17776 }
17777
17778 scale.domain = function(_) {
17779 return arguments.length ? (x0 = +_[0], x1 = +_[1], k10 = x0 === x1 ? 0 : 1 / (x1 - x0), scale) : [x0, x1];
17780 };
17781
17782 scale.clamp = function(_) {
17783 return arguments.length ? (clamp = !!_, scale) : clamp;
17784 };
17785
17786 scale.interpolator = function(_) {
17787 return arguments.length ? (interpolator = _, scale) : interpolator;
17788 };
17789
17790 scale.copy = function() {
17791 return sequential(interpolator).domain([x0, x1]).clamp(clamp);
17792 };
17793
17794 return Object(_linear__WEBPACK_IMPORTED_MODULE_0__["linearish"])(scale);
17795}
17796
17797
17798/***/ }),
17799
17800/***/ "./node_modules/d3-scale/src/threshold.js":
17801/*!************************************************!*\
17802 !*** ./node_modules/d3-scale/src/threshold.js ***!
17803 \************************************************/
17804/*! exports provided: default */
17805/***/ (function(module, __webpack_exports__, __webpack_require__) {
17806
17807"use strict";
17808__webpack_require__.r(__webpack_exports__);
17809/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return threshold; });
17810/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17811/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17812
17813
17814
17815function threshold() {
17816 var domain = [0.5],
17817 range = [0, 1],
17818 n = 1;
17819
17820 function scale(x) {
17821 if (x <= x) return range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 0, n)];
17822 }
17823
17824 scale.domain = function(_) {
17825 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
17826 };
17827
17828 scale.range = function(_) {
17829 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
17830 };
17831
17832 scale.invertExtent = function(y) {
17833 var i = range.indexOf(y);
17834 return [domain[i - 1], domain[i]];
17835 };
17836
17837 scale.copy = function() {
17838 return threshold()
17839 .domain(domain)
17840 .range(range);
17841 };
17842
17843 return scale;
17844}
17845
17846
17847/***/ }),
17848
17849/***/ "./node_modules/d3-scale/src/tickFormat.js":
17850/*!*************************************************!*\
17851 !*** ./node_modules/d3-scale/src/tickFormat.js ***!
17852 \*************************************************/
17853/*! exports provided: default */
17854/***/ (function(module, __webpack_exports__, __webpack_require__) {
17855
17856"use strict";
17857__webpack_require__.r(__webpack_exports__);
17858/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17859/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/index.js");
17860
17861
17862
17863/* harmony default export */ __webpack_exports__["default"] = (function(domain, count, specifier) {
17864 var start = domain[0],
17865 stop = domain[domain.length - 1],
17866 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start, stop, count == null ? 10 : count),
17867 precision;
17868 specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["formatSpecifier"])(specifier == null ? ",f" : specifier);
17869 switch (specifier.type) {
17870 case "s": {
17871 var value = Math.max(Math.abs(start), Math.abs(stop));
17872 if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["precisionPrefix"])(step, value))) specifier.precision = precision;
17873 return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["formatPrefix"])(specifier, value);
17874 }
17875 case "":
17876 case "e":
17877 case "g":
17878 case "p":
17879 case "r": {
17880 if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["precisionRound"])(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
17881 break;
17882 }
17883 case "f":
17884 case "%": {
17885 if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["precisionFixed"])(step))) specifier.precision = precision - (specifier.type === "%") * 2;
17886 break;
17887 }
17888 }
17889 return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["format"])(specifier);
17890});
17891
17892
17893/***/ }),
17894
17895/***/ "./node_modules/d3-scale/src/time.js":
17896/*!*******************************************!*\
17897 !*** ./node_modules/d3-scale/src/time.js ***!
17898 \*******************************************/
17899/*! exports provided: calendar, default */
17900/***/ (function(module, __webpack_exports__, __webpack_require__) {
17901
17902"use strict";
17903__webpack_require__.r(__webpack_exports__);
17904/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calendar", function() { return calendar; });
17905/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17906/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
17907/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
17908/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/index.js");
17909/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17910/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
17911/* harmony import */ var _nice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./nice */ "./node_modules/d3-scale/src/nice.js");
17912
17913
17914
17915
17916
17917
17918
17919
17920var durationSecond = 1000,
17921 durationMinute = durationSecond * 60,
17922 durationHour = durationMinute * 60,
17923 durationDay = durationHour * 24,
17924 durationWeek = durationDay * 7,
17925 durationMonth = durationDay * 30,
17926 durationYear = durationDay * 365;
17927
17928function date(t) {
17929 return new Date(t);
17930}
17931
17932function number(t) {
17933 return t instanceof Date ? +t : +new Date(+t);
17934}
17935
17936function calendar(year, month, week, day, hour, minute, second, millisecond, format) {
17937 var scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_5__["default"])(_continuous__WEBPACK_IMPORTED_MODULE_5__["deinterpolateLinear"], d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateNumber"]),
17938 invert = scale.invert,
17939 domain = scale.domain;
17940
17941 var formatMillisecond = format(".%L"),
17942 formatSecond = format(":%S"),
17943 formatMinute = format("%I:%M"),
17944 formatHour = format("%I %p"),
17945 formatDay = format("%a %d"),
17946 formatWeek = format("%b %d"),
17947 formatMonth = format("%B"),
17948 formatYear = format("%Y");
17949
17950 var tickIntervals = [
17951 [second, 1, durationSecond],
17952 [second, 5, 5 * durationSecond],
17953 [second, 15, 15 * durationSecond],
17954 [second, 30, 30 * durationSecond],
17955 [minute, 1, durationMinute],
17956 [minute, 5, 5 * durationMinute],
17957 [minute, 15, 15 * durationMinute],
17958 [minute, 30, 30 * durationMinute],
17959 [ hour, 1, durationHour ],
17960 [ hour, 3, 3 * durationHour ],
17961 [ hour, 6, 6 * durationHour ],
17962 [ hour, 12, 12 * durationHour ],
17963 [ day, 1, durationDay ],
17964 [ day, 2, 2 * durationDay ],
17965 [ week, 1, durationWeek ],
17966 [ month, 1, durationMonth ],
17967 [ month, 3, 3 * durationMonth ],
17968 [ year, 1, durationYear ]
17969 ];
17970
17971 function tickFormat(date) {
17972 return (second(date) < date ? formatMillisecond
17973 : minute(date) < date ? formatSecond
17974 : hour(date) < date ? formatMinute
17975 : day(date) < date ? formatHour
17976 : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
17977 : year(date) < date ? formatMonth
17978 : formatYear)(date);
17979 }
17980
17981 function tickInterval(interval, start, stop, step) {
17982 if (interval == null) interval = 10;
17983
17984 // If a desired tick count is specified, pick a reasonable tick interval
17985 // based on the extent of the domain and a rough estimate of tick size.
17986 // Otherwise, assume interval is already a time interval and use it.
17987 if (typeof interval === "number") {
17988 var target = Math.abs(stop - start) / interval,
17989 i = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisector"])(function(i) { return i[2]; }).right(tickIntervals, target);
17990 if (i === tickIntervals.length) {
17991 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start / durationYear, stop / durationYear, interval);
17992 interval = year;
17993 } else if (i) {
17994 i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
17995 step = i[1];
17996 interval = i[0];
17997 } else {
17998 step = Math.max(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start, stop, interval), 1);
17999 interval = millisecond;
18000 }
18001 }
18002
18003 return step == null ? interval : interval.every(step);
18004 }
18005
18006 scale.invert = function(y) {
18007 return new Date(invert(y));
18008 };
18009
18010 scale.domain = function(_) {
18011 return arguments.length ? domain(_array__WEBPACK_IMPORTED_MODULE_4__["map"].call(_, number)) : domain().map(date);
18012 };
18013
18014 scale.ticks = function(interval, step) {
18015 var d = domain(),
18016 t0 = d[0],
18017 t1 = d[d.length - 1],
18018 r = t1 < t0,
18019 t;
18020 if (r) t = t0, t0 = t1, t1 = t;
18021 t = tickInterval(interval, t0, t1, step);
18022 t = t ? t.range(t0, t1 + 1) : []; // inclusive stop
18023 return r ? t.reverse() : t;
18024 };
18025
18026 scale.tickFormat = function(count, specifier) {
18027 return specifier == null ? tickFormat : format(specifier);
18028 };
18029
18030 scale.nice = function(interval, step) {
18031 var d = domain();
18032 return (interval = tickInterval(interval, d[0], d[d.length - 1], step))
18033 ? domain(Object(_nice__WEBPACK_IMPORTED_MODULE_6__["default"])(d, interval))
18034 : scale;
18035 };
18036
18037 scale.copy = function() {
18038 return Object(_continuous__WEBPACK_IMPORTED_MODULE_5__["copy"])(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));
18039 };
18040
18041 return scale;
18042}
18043
18044/* harmony default export */ __webpack_exports__["default"] = (function() {
18045 return calendar(d3_time__WEBPACK_IMPORTED_MODULE_2__["timeYear"], d3_time__WEBPACK_IMPORTED_MODULE_2__["timeMonth"], d3_time__WEBPACK_IMPORTED_MODULE_2__["timeWeek"], d3_time__WEBPACK_IMPORTED_MODULE_2__["timeDay"], d3_time__WEBPACK_IMPORTED_MODULE_2__["timeHour"], d3_time__WEBPACK_IMPORTED_MODULE_2__["timeMinute"], d3_time__WEBPACK_IMPORTED_MODULE_2__["timeSecond"], d3_time__WEBPACK_IMPORTED_MODULE_2__["timeMillisecond"], d3_time_format__WEBPACK_IMPORTED_MODULE_3__["timeFormat"]).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);
18046});
18047
18048
18049/***/ }),
18050
18051/***/ "./node_modules/d3-scale/src/utcTime.js":
18052/*!**********************************************!*\
18053 !*** ./node_modules/d3-scale/src/utcTime.js ***!
18054 \**********************************************/
18055/*! exports provided: default */
18056/***/ (function(module, __webpack_exports__, __webpack_require__) {
18057
18058"use strict";
18059__webpack_require__.r(__webpack_exports__);
18060/* harmony import */ var _time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./time */ "./node_modules/d3-scale/src/time.js");
18061/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/index.js");
18062/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
18063
18064
18065
18066
18067/* harmony default export */ __webpack_exports__["default"] = (function() {
18068 return Object(_time__WEBPACK_IMPORTED_MODULE_0__["calendar"])(d3_time__WEBPACK_IMPORTED_MODULE_2__["utcYear"], d3_time__WEBPACK_IMPORTED_MODULE_2__["utcMonth"], d3_time__WEBPACK_IMPORTED_MODULE_2__["utcWeek"], d3_time__WEBPACK_IMPORTED_MODULE_2__["utcDay"], d3_time__WEBPACK_IMPORTED_MODULE_2__["utcHour"], d3_time__WEBPACK_IMPORTED_MODULE_2__["utcMinute"], d3_time__WEBPACK_IMPORTED_MODULE_2__["utcSecond"], d3_time__WEBPACK_IMPORTED_MODULE_2__["utcMillisecond"], d3_time_format__WEBPACK_IMPORTED_MODULE_1__["utcFormat"]).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);
18069});
18070
18071
18072/***/ }),
18073
18074/***/ "./node_modules/d3-selection/src/constant.js":
18075/*!***************************************************!*\
18076 !*** ./node_modules/d3-selection/src/constant.js ***!
18077 \***************************************************/
18078/*! exports provided: default */
18079/***/ (function(module, __webpack_exports__, __webpack_require__) {
18080
18081"use strict";
18082__webpack_require__.r(__webpack_exports__);
18083/* harmony default export */ __webpack_exports__["default"] = (function(x) {
18084 return function() {
18085 return x;
18086 };
18087});
18088
18089
18090/***/ }),
18091
18092/***/ "./node_modules/d3-selection/src/create.js":
18093/*!*************************************************!*\
18094 !*** ./node_modules/d3-selection/src/create.js ***!
18095 \*************************************************/
18096/*! exports provided: default */
18097/***/ (function(module, __webpack_exports__, __webpack_require__) {
18098
18099"use strict";
18100__webpack_require__.r(__webpack_exports__);
18101/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./creator */ "./node_modules/d3-selection/src/creator.js");
18102/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select */ "./node_modules/d3-selection/src/select.js");
18103
18104
18105
18106/* harmony default export */ __webpack_exports__["default"] = (function(name) {
18107 return Object(_select__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name).call(document.documentElement));
18108});
18109
18110
18111/***/ }),
18112
18113/***/ "./node_modules/d3-selection/src/creator.js":
18114/*!**************************************************!*\
18115 !*** ./node_modules/d3-selection/src/creator.js ***!
18116 \**************************************************/
18117/*! exports provided: default */
18118/***/ (function(module, __webpack_exports__, __webpack_require__) {
18119
18120"use strict";
18121__webpack_require__.r(__webpack_exports__);
18122/* harmony import */ var _namespace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespace */ "./node_modules/d3-selection/src/namespace.js");
18123/* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./namespaces */ "./node_modules/d3-selection/src/namespaces.js");
18124
18125
18126
18127function creatorInherit(name) {
18128 return function() {
18129 var document = this.ownerDocument,
18130 uri = this.namespaceURI;
18131 return uri === _namespaces__WEBPACK_IMPORTED_MODULE_1__["xhtml"] && document.documentElement.namespaceURI === _namespaces__WEBPACK_IMPORTED_MODULE_1__["xhtml"]
18132 ? document.createElement(name)
18133 : document.createElementNS(uri, name);
18134 };
18135}
18136
18137function creatorFixed(fullname) {
18138 return function() {
18139 return this.ownerDocument.createElementNS(fullname.space, fullname.local);
18140 };
18141}
18142
18143/* harmony default export */ __webpack_exports__["default"] = (function(name) {
18144 var fullname = Object(_namespace__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
18145 return (fullname.local
18146 ? creatorFixed
18147 : creatorInherit)(fullname);
18148});
18149
18150
18151/***/ }),
18152
18153/***/ "./node_modules/d3-selection/src/index.js":
18154/*!************************************************!*\
18155 !*** ./node_modules/d3-selection/src/index.js ***!
18156 \************************************************/
18157/*! exports provided: create, creator, local, matcher, mouse, namespace, namespaces, clientPoint, select, selectAll, selection, selector, selectorAll, style, touch, touches, window, event, customEvent */
18158/***/ (function(module, __webpack_exports__, __webpack_require__) {
18159
18160"use strict";
18161__webpack_require__.r(__webpack_exports__);
18162/* harmony import */ var _create__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create */ "./node_modules/d3-selection/src/create.js");
18163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "create", function() { return _create__WEBPACK_IMPORTED_MODULE_0__["default"]; });
18164
18165/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./creator */ "./node_modules/d3-selection/src/creator.js");
18166/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "creator", function() { return _creator__WEBPACK_IMPORTED_MODULE_1__["default"]; });
18167
18168/* harmony import */ var _local__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./local */ "./node_modules/d3-selection/src/local.js");
18169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "local", function() { return _local__WEBPACK_IMPORTED_MODULE_2__["default"]; });
18170
18171/* harmony import */ var _matcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./matcher */ "./node_modules/d3-selection/src/matcher.js");
18172/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return _matcher__WEBPACK_IMPORTED_MODULE_3__["default"]; });
18173
18174/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mouse */ "./node_modules/d3-selection/src/mouse.js");
18175/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mouse", function() { return _mouse__WEBPACK_IMPORTED_MODULE_4__["default"]; });
18176
18177/* harmony import */ var _namespace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./namespace */ "./node_modules/d3-selection/src/namespace.js");
18178/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return _namespace__WEBPACK_IMPORTED_MODULE_5__["default"]; });
18179
18180/* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./namespaces */ "./node_modules/d3-selection/src/namespaces.js");
18181/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespaces", function() { return _namespaces__WEBPACK_IMPORTED_MODULE_6__["default"]; });
18182
18183/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
18184/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clientPoint", function() { return _point__WEBPACK_IMPORTED_MODULE_7__["default"]; });
18185
18186/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./select */ "./node_modules/d3-selection/src/select.js");
18187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "select", function() { return _select__WEBPACK_IMPORTED_MODULE_8__["default"]; });
18188
18189/* harmony import */ var _selectAll__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectAll */ "./node_modules/d3-selection/src/selectAll.js");
18190/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectAll", function() { return _selectAll__WEBPACK_IMPORTED_MODULE_9__["default"]; });
18191
18192/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-selection/src/selection/index.js");
18193/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selection", function() { return _selection_index__WEBPACK_IMPORTED_MODULE_10__["default"]; });
18194
18195/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./selector */ "./node_modules/d3-selection/src/selector.js");
18196/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selector", function() { return _selector__WEBPACK_IMPORTED_MODULE_11__["default"]; });
18197
18198/* harmony import */ var _selectorAll__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./selectorAll */ "./node_modules/d3-selection/src/selectorAll.js");
18199/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectorAll", function() { return _selectorAll__WEBPACK_IMPORTED_MODULE_12__["default"]; });
18200
18201/* harmony import */ var _selection_style__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./selection/style */ "./node_modules/d3-selection/src/selection/style.js");
18202/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "style", function() { return _selection_style__WEBPACK_IMPORTED_MODULE_13__["styleValue"]; });
18203
18204/* harmony import */ var _touch__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./touch */ "./node_modules/d3-selection/src/touch.js");
18205/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touch", function() { return _touch__WEBPACK_IMPORTED_MODULE_14__["default"]; });
18206
18207/* harmony import */ var _touches__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./touches */ "./node_modules/d3-selection/src/touches.js");
18208/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touches", function() { return _touches__WEBPACK_IMPORTED_MODULE_15__["default"]; });
18209
18210/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./window */ "./node_modules/d3-selection/src/window.js");
18211/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _window__WEBPACK_IMPORTED_MODULE_16__["default"]; });
18212
18213/* harmony import */ var _selection_on__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./selection/on */ "./node_modules/d3-selection/src/selection/on.js");
18214/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "event", function() { return _selection_on__WEBPACK_IMPORTED_MODULE_17__["event"]; });
18215
18216/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return _selection_on__WEBPACK_IMPORTED_MODULE_17__["customEvent"]; });
18217
18218
18219
18220
18221
18222
18223
18224
18225
18226
18227
18228
18229
18230
18231
18232
18233
18234
18235
18236
18237
18238/***/ }),
18239
18240/***/ "./node_modules/d3-selection/src/local.js":
18241/*!************************************************!*\
18242 !*** ./node_modules/d3-selection/src/local.js ***!
18243 \************************************************/
18244/*! exports provided: default */
18245/***/ (function(module, __webpack_exports__, __webpack_require__) {
18246
18247"use strict";
18248__webpack_require__.r(__webpack_exports__);
18249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return local; });
18250var nextId = 0;
18251
18252function local() {
18253 return new Local;
18254}
18255
18256function Local() {
18257 this._ = "@" + (++nextId).toString(36);
18258}
18259
18260Local.prototype = local.prototype = {
18261 constructor: Local,
18262 get: function(node) {
18263 var id = this._;
18264 while (!(id in node)) if (!(node = node.parentNode)) return;
18265 return node[id];
18266 },
18267 set: function(node, value) {
18268 return node[this._] = value;
18269 },
18270 remove: function(node) {
18271 return this._ in node && delete node[this._];
18272 },
18273 toString: function() {
18274 return this._;
18275 }
18276};
18277
18278
18279/***/ }),
18280
18281/***/ "./node_modules/d3-selection/src/matcher.js":
18282/*!**************************************************!*\
18283 !*** ./node_modules/d3-selection/src/matcher.js ***!
18284 \**************************************************/
18285/*! exports provided: default */
18286/***/ (function(module, __webpack_exports__, __webpack_require__) {
18287
18288"use strict";
18289__webpack_require__.r(__webpack_exports__);
18290var matcher = function(selector) {
18291 return function() {
18292 return this.matches(selector);
18293 };
18294};
18295
18296if (typeof document !== "undefined") {
18297 var element = document.documentElement;
18298 if (!element.matches) {
18299 var vendorMatches = element.webkitMatchesSelector
18300 || element.msMatchesSelector
18301 || element.mozMatchesSelector
18302 || element.oMatchesSelector;
18303 matcher = function(selector) {
18304 return function() {
18305 return vendorMatches.call(this, selector);
18306 };
18307 };
18308 }
18309}
18310
18311/* harmony default export */ __webpack_exports__["default"] = (matcher);
18312
18313
18314/***/ }),
18315
18316/***/ "./node_modules/d3-selection/src/mouse.js":
18317/*!************************************************!*\
18318 !*** ./node_modules/d3-selection/src/mouse.js ***!
18319 \************************************************/
18320/*! exports provided: default */
18321/***/ (function(module, __webpack_exports__, __webpack_require__) {
18322
18323"use strict";
18324__webpack_require__.r(__webpack_exports__);
18325/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
18326/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
18327
18328
18329
18330/* harmony default export */ __webpack_exports__["default"] = (function(node) {
18331 var event = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])();
18332 if (event.changedTouches) event = event.changedTouches[0];
18333 return Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, event);
18334});
18335
18336
18337/***/ }),
18338
18339/***/ "./node_modules/d3-selection/src/namespace.js":
18340/*!****************************************************!*\
18341 !*** ./node_modules/d3-selection/src/namespace.js ***!
18342 \****************************************************/
18343/*! exports provided: default */
18344/***/ (function(module, __webpack_exports__, __webpack_require__) {
18345
18346"use strict";
18347__webpack_require__.r(__webpack_exports__);
18348/* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespaces */ "./node_modules/d3-selection/src/namespaces.js");
18349
18350
18351/* harmony default export */ __webpack_exports__["default"] = (function(name) {
18352 var prefix = name += "", i = prefix.indexOf(":");
18353 if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
18354 return _namespaces__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProperty(prefix) ? {space: _namespaces__WEBPACK_IMPORTED_MODULE_0__["default"][prefix], local: name} : name;
18355});
18356
18357
18358/***/ }),
18359
18360/***/ "./node_modules/d3-selection/src/namespaces.js":
18361/*!*****************************************************!*\
18362 !*** ./node_modules/d3-selection/src/namespaces.js ***!
18363 \*****************************************************/
18364/*! exports provided: xhtml, default */
18365/***/ (function(module, __webpack_exports__, __webpack_require__) {
18366
18367"use strict";
18368__webpack_require__.r(__webpack_exports__);
18369/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "xhtml", function() { return xhtml; });
18370var xhtml = "http://www.w3.org/1999/xhtml";
18371
18372/* harmony default export */ __webpack_exports__["default"] = ({
18373 svg: "http://www.w3.org/2000/svg",
18374 xhtml: xhtml,
18375 xlink: "http://www.w3.org/1999/xlink",
18376 xml: "http://www.w3.org/XML/1998/namespace",
18377 xmlns: "http://www.w3.org/2000/xmlns/"
18378});
18379
18380
18381/***/ }),
18382
18383/***/ "./node_modules/d3-selection/src/point.js":
18384/*!************************************************!*\
18385 !*** ./node_modules/d3-selection/src/point.js ***!
18386 \************************************************/
18387/*! exports provided: default */
18388/***/ (function(module, __webpack_exports__, __webpack_require__) {
18389
18390"use strict";
18391__webpack_require__.r(__webpack_exports__);
18392/* harmony default export */ __webpack_exports__["default"] = (function(node, event) {
18393 var svg = node.ownerSVGElement || node;
18394
18395 if (svg.createSVGPoint) {
18396 var point = svg.createSVGPoint();
18397 point.x = event.clientX, point.y = event.clientY;
18398 point = point.matrixTransform(node.getScreenCTM().inverse());
18399 return [point.x, point.y];
18400 }
18401
18402 var rect = node.getBoundingClientRect();
18403 return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
18404});
18405
18406
18407/***/ }),
18408
18409/***/ "./node_modules/d3-selection/src/select.js":
18410/*!*************************************************!*\
18411 !*** ./node_modules/d3-selection/src/select.js ***!
18412 \*************************************************/
18413/*! exports provided: default */
18414/***/ (function(module, __webpack_exports__, __webpack_require__) {
18415
18416"use strict";
18417__webpack_require__.r(__webpack_exports__);
18418/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-selection/src/selection/index.js");
18419
18420
18421/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
18422 return typeof selector === "string"
18423 ? new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([[document.querySelector(selector)]], [document.documentElement])
18424 : new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([[selector]], _selection_index__WEBPACK_IMPORTED_MODULE_0__["root"]);
18425});
18426
18427
18428/***/ }),
18429
18430/***/ "./node_modules/d3-selection/src/selectAll.js":
18431/*!****************************************************!*\
18432 !*** ./node_modules/d3-selection/src/selectAll.js ***!
18433 \****************************************************/
18434/*! exports provided: default */
18435/***/ (function(module, __webpack_exports__, __webpack_require__) {
18436
18437"use strict";
18438__webpack_require__.r(__webpack_exports__);
18439/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-selection/src/selection/index.js");
18440
18441
18442/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
18443 return typeof selector === "string"
18444 ? new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([document.querySelectorAll(selector)], [document.documentElement])
18445 : new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([selector == null ? [] : selector], _selection_index__WEBPACK_IMPORTED_MODULE_0__["root"]);
18446});
18447
18448
18449/***/ }),
18450
18451/***/ "./node_modules/d3-selection/src/selection/append.js":
18452/*!***********************************************************!*\
18453 !*** ./node_modules/d3-selection/src/selection/append.js ***!
18454 \***********************************************************/
18455/*! exports provided: default */
18456/***/ (function(module, __webpack_exports__, __webpack_require__) {
18457
18458"use strict";
18459__webpack_require__.r(__webpack_exports__);
18460/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator */ "./node_modules/d3-selection/src/creator.js");
18461
18462
18463/* harmony default export */ __webpack_exports__["default"] = (function(name) {
18464 var create = typeof name === "function" ? name : Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
18465 return this.select(function() {
18466 return this.appendChild(create.apply(this, arguments));
18467 });
18468});
18469
18470
18471/***/ }),
18472
18473/***/ "./node_modules/d3-selection/src/selection/attr.js":
18474/*!*********************************************************!*\
18475 !*** ./node_modules/d3-selection/src/selection/attr.js ***!
18476 \*********************************************************/
18477/*! exports provided: default */
18478/***/ (function(module, __webpack_exports__, __webpack_require__) {
18479
18480"use strict";
18481__webpack_require__.r(__webpack_exports__);
18482/* harmony import */ var _namespace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../namespace */ "./node_modules/d3-selection/src/namespace.js");
18483
18484
18485function attrRemove(name) {
18486 return function() {
18487 this.removeAttribute(name);
18488 };
18489}
18490
18491function attrRemoveNS(fullname) {
18492 return function() {
18493 this.removeAttributeNS(fullname.space, fullname.local);
18494 };
18495}
18496
18497function attrConstant(name, value) {
18498 return function() {
18499 this.setAttribute(name, value);
18500 };
18501}
18502
18503function attrConstantNS(fullname, value) {
18504 return function() {
18505 this.setAttributeNS(fullname.space, fullname.local, value);
18506 };
18507}
18508
18509function attrFunction(name, value) {
18510 return function() {
18511 var v = value.apply(this, arguments);
18512 if (v == null) this.removeAttribute(name);
18513 else this.setAttribute(name, v);
18514 };
18515}
18516
18517function attrFunctionNS(fullname, value) {
18518 return function() {
18519 var v = value.apply(this, arguments);
18520 if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
18521 else this.setAttributeNS(fullname.space, fullname.local, v);
18522 };
18523}
18524
18525/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
18526 var fullname = Object(_namespace__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
18527
18528 if (arguments.length < 2) {
18529 var node = this.node();
18530 return fullname.local
18531 ? node.getAttributeNS(fullname.space, fullname.local)
18532 : node.getAttribute(fullname);
18533 }
18534
18535 return this.each((value == null
18536 ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
18537 ? (fullname.local ? attrFunctionNS : attrFunction)
18538 : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
18539});
18540
18541
18542/***/ }),
18543
18544/***/ "./node_modules/d3-selection/src/selection/call.js":
18545/*!*********************************************************!*\
18546 !*** ./node_modules/d3-selection/src/selection/call.js ***!
18547 \*********************************************************/
18548/*! exports provided: default */
18549/***/ (function(module, __webpack_exports__, __webpack_require__) {
18550
18551"use strict";
18552__webpack_require__.r(__webpack_exports__);
18553/* harmony default export */ __webpack_exports__["default"] = (function() {
18554 var callback = arguments[0];
18555 arguments[0] = this;
18556 callback.apply(null, arguments);
18557 return this;
18558});
18559
18560
18561/***/ }),
18562
18563/***/ "./node_modules/d3-selection/src/selection/classed.js":
18564/*!************************************************************!*\
18565 !*** ./node_modules/d3-selection/src/selection/classed.js ***!
18566 \************************************************************/
18567/*! exports provided: default */
18568/***/ (function(module, __webpack_exports__, __webpack_require__) {
18569
18570"use strict";
18571__webpack_require__.r(__webpack_exports__);
18572function classArray(string) {
18573 return string.trim().split(/^|\s+/);
18574}
18575
18576function classList(node) {
18577 return node.classList || new ClassList(node);
18578}
18579
18580function ClassList(node) {
18581 this._node = node;
18582 this._names = classArray(node.getAttribute("class") || "");
18583}
18584
18585ClassList.prototype = {
18586 add: function(name) {
18587 var i = this._names.indexOf(name);
18588 if (i < 0) {
18589 this._names.push(name);
18590 this._node.setAttribute("class", this._names.join(" "));
18591 }
18592 },
18593 remove: function(name) {
18594 var i = this._names.indexOf(name);
18595 if (i >= 0) {
18596 this._names.splice(i, 1);
18597 this._node.setAttribute("class", this._names.join(" "));
18598 }
18599 },
18600 contains: function(name) {
18601 return this._names.indexOf(name) >= 0;
18602 }
18603};
18604
18605function classedAdd(node, names) {
18606 var list = classList(node), i = -1, n = names.length;
18607 while (++i < n) list.add(names[i]);
18608}
18609
18610function classedRemove(node, names) {
18611 var list = classList(node), i = -1, n = names.length;
18612 while (++i < n) list.remove(names[i]);
18613}
18614
18615function classedTrue(names) {
18616 return function() {
18617 classedAdd(this, names);
18618 };
18619}
18620
18621function classedFalse(names) {
18622 return function() {
18623 classedRemove(this, names);
18624 };
18625}
18626
18627function classedFunction(names, value) {
18628 return function() {
18629 (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
18630 };
18631}
18632
18633/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
18634 var names = classArray(name + "");
18635
18636 if (arguments.length < 2) {
18637 var list = classList(this.node()), i = -1, n = names.length;
18638 while (++i < n) if (!list.contains(names[i])) return false;
18639 return true;
18640 }
18641
18642 return this.each((typeof value === "function"
18643 ? classedFunction : value
18644 ? classedTrue
18645 : classedFalse)(names, value));
18646});
18647
18648
18649/***/ }),
18650
18651/***/ "./node_modules/d3-selection/src/selection/clone.js":
18652/*!**********************************************************!*\
18653 !*** ./node_modules/d3-selection/src/selection/clone.js ***!
18654 \**********************************************************/
18655/*! exports provided: default */
18656/***/ (function(module, __webpack_exports__, __webpack_require__) {
18657
18658"use strict";
18659__webpack_require__.r(__webpack_exports__);
18660function selection_cloneShallow() {
18661 return this.parentNode.insertBefore(this.cloneNode(false), this.nextSibling);
18662}
18663
18664function selection_cloneDeep() {
18665 return this.parentNode.insertBefore(this.cloneNode(true), this.nextSibling);
18666}
18667
18668/* harmony default export */ __webpack_exports__["default"] = (function(deep) {
18669 return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
18670});
18671
18672
18673/***/ }),
18674
18675/***/ "./node_modules/d3-selection/src/selection/data.js":
18676/*!*********************************************************!*\
18677 !*** ./node_modules/d3-selection/src/selection/data.js ***!
18678 \*********************************************************/
18679/*! exports provided: default */
18680/***/ (function(module, __webpack_exports__, __webpack_require__) {
18681
18682"use strict";
18683__webpack_require__.r(__webpack_exports__);
18684/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
18685/* harmony import */ var _enter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enter */ "./node_modules/d3-selection/src/selection/enter.js");
18686/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-selection/src/constant.js");
18687
18688
18689
18690
18691var keyPrefix = "$"; // Protect against keys like “__proto__”.
18692
18693function bindIndex(parent, group, enter, update, exit, data) {
18694 var i = 0,
18695 node,
18696 groupLength = group.length,
18697 dataLength = data.length;
18698
18699 // Put any non-null nodes that fit into update.
18700 // Put any null nodes into enter.
18701 // Put any remaining data into enter.
18702 for (; i < dataLength; ++i) {
18703 if (node = group[i]) {
18704 node.__data__ = data[i];
18705 update[i] = node;
18706 } else {
18707 enter[i] = new _enter__WEBPACK_IMPORTED_MODULE_1__["EnterNode"](parent, data[i]);
18708 }
18709 }
18710
18711 // Put any non-null nodes that don’t fit into exit.
18712 for (; i < groupLength; ++i) {
18713 if (node = group[i]) {
18714 exit[i] = node;
18715 }
18716 }
18717}
18718
18719function bindKey(parent, group, enter, update, exit, data, key) {
18720 var i,
18721 node,
18722 nodeByKeyValue = {},
18723 groupLength = group.length,
18724 dataLength = data.length,
18725 keyValues = new Array(groupLength),
18726 keyValue;
18727
18728 // Compute the key for each node.
18729 // If multiple nodes have the same key, the duplicates are added to exit.
18730 for (i = 0; i < groupLength; ++i) {
18731 if (node = group[i]) {
18732 keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);
18733 if (keyValue in nodeByKeyValue) {
18734 exit[i] = node;
18735 } else {
18736 nodeByKeyValue[keyValue] = node;
18737 }
18738 }
18739 }
18740
18741 // Compute the key for each datum.
18742 // If there a node associated with this key, join and add it to update.
18743 // If there is not (or the key is a duplicate), add it to enter.
18744 for (i = 0; i < dataLength; ++i) {
18745 keyValue = keyPrefix + key.call(parent, data[i], i, data);
18746 if (node = nodeByKeyValue[keyValue]) {
18747 update[i] = node;
18748 node.__data__ = data[i];
18749 nodeByKeyValue[keyValue] = null;
18750 } else {
18751 enter[i] = new _enter__WEBPACK_IMPORTED_MODULE_1__["EnterNode"](parent, data[i]);
18752 }
18753 }
18754
18755 // Add any remaining nodes that were not bound to data to exit.
18756 for (i = 0; i < groupLength; ++i) {
18757 if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {
18758 exit[i] = node;
18759 }
18760 }
18761}
18762
18763/* harmony default export */ __webpack_exports__["default"] = (function(value, key) {
18764 if (!value) {
18765 data = new Array(this.size()), j = -1;
18766 this.each(function(d) { data[++j] = d; });
18767 return data;
18768 }
18769
18770 var bind = key ? bindKey : bindIndex,
18771 parents = this._parents,
18772 groups = this._groups;
18773
18774 if (typeof value !== "function") value = Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(value);
18775
18776 for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
18777 var parent = parents[j],
18778 group = groups[j],
18779 groupLength = group.length,
18780 data = value.call(parent, parent && parent.__data__, j, parents),
18781 dataLength = data.length,
18782 enterGroup = enter[j] = new Array(dataLength),
18783 updateGroup = update[j] = new Array(dataLength),
18784 exitGroup = exit[j] = new Array(groupLength);
18785
18786 bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
18787
18788 // Now connect the enter nodes to their following update node, such that
18789 // appendChild can insert the materialized enter node before this node,
18790 // rather than at the end of the parent node.
18791 for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
18792 if (previous = enterGroup[i0]) {
18793 if (i0 >= i1) i1 = i0 + 1;
18794 while (!(next = updateGroup[i1]) && ++i1 < dataLength);
18795 previous._next = next || null;
18796 }
18797 }
18798 }
18799
18800 update = new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](update, parents);
18801 update._enter = enter;
18802 update._exit = exit;
18803 return update;
18804});
18805
18806
18807/***/ }),
18808
18809/***/ "./node_modules/d3-selection/src/selection/datum.js":
18810/*!**********************************************************!*\
18811 !*** ./node_modules/d3-selection/src/selection/datum.js ***!
18812 \**********************************************************/
18813/*! exports provided: default */
18814/***/ (function(module, __webpack_exports__, __webpack_require__) {
18815
18816"use strict";
18817__webpack_require__.r(__webpack_exports__);
18818/* harmony default export */ __webpack_exports__["default"] = (function(value) {
18819 return arguments.length
18820 ? this.property("__data__", value)
18821 : this.node().__data__;
18822});
18823
18824
18825/***/ }),
18826
18827/***/ "./node_modules/d3-selection/src/selection/dispatch.js":
18828/*!*************************************************************!*\
18829 !*** ./node_modules/d3-selection/src/selection/dispatch.js ***!
18830 \*************************************************************/
18831/*! exports provided: default */
18832/***/ (function(module, __webpack_exports__, __webpack_require__) {
18833
18834"use strict";
18835__webpack_require__.r(__webpack_exports__);
18836/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window */ "./node_modules/d3-selection/src/window.js");
18837
18838
18839function dispatchEvent(node, type, params) {
18840 var window = Object(_window__WEBPACK_IMPORTED_MODULE_0__["default"])(node),
18841 event = window.CustomEvent;
18842
18843 if (typeof event === "function") {
18844 event = new event(type, params);
18845 } else {
18846 event = window.document.createEvent("Event");
18847 if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
18848 else event.initEvent(type, false, false);
18849 }
18850
18851 node.dispatchEvent(event);
18852}
18853
18854function dispatchConstant(type, params) {
18855 return function() {
18856 return dispatchEvent(this, type, params);
18857 };
18858}
18859
18860function dispatchFunction(type, params) {
18861 return function() {
18862 return dispatchEvent(this, type, params.apply(this, arguments));
18863 };
18864}
18865
18866/* harmony default export */ __webpack_exports__["default"] = (function(type, params) {
18867 return this.each((typeof params === "function"
18868 ? dispatchFunction
18869 : dispatchConstant)(type, params));
18870});
18871
18872
18873/***/ }),
18874
18875/***/ "./node_modules/d3-selection/src/selection/each.js":
18876/*!*********************************************************!*\
18877 !*** ./node_modules/d3-selection/src/selection/each.js ***!
18878 \*********************************************************/
18879/*! exports provided: default */
18880/***/ (function(module, __webpack_exports__, __webpack_require__) {
18881
18882"use strict";
18883__webpack_require__.r(__webpack_exports__);
18884/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
18885
18886 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
18887 for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
18888 if (node = group[i]) callback.call(node, node.__data__, i, group);
18889 }
18890 }
18891
18892 return this;
18893});
18894
18895
18896/***/ }),
18897
18898/***/ "./node_modules/d3-selection/src/selection/empty.js":
18899/*!**********************************************************!*\
18900 !*** ./node_modules/d3-selection/src/selection/empty.js ***!
18901 \**********************************************************/
18902/*! exports provided: default */
18903/***/ (function(module, __webpack_exports__, __webpack_require__) {
18904
18905"use strict";
18906__webpack_require__.r(__webpack_exports__);
18907/* harmony default export */ __webpack_exports__["default"] = (function() {
18908 return !this.node();
18909});
18910
18911
18912/***/ }),
18913
18914/***/ "./node_modules/d3-selection/src/selection/enter.js":
18915/*!**********************************************************!*\
18916 !*** ./node_modules/d3-selection/src/selection/enter.js ***!
18917 \**********************************************************/
18918/*! exports provided: default, EnterNode */
18919/***/ (function(module, __webpack_exports__, __webpack_require__) {
18920
18921"use strict";
18922__webpack_require__.r(__webpack_exports__);
18923/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EnterNode", function() { return EnterNode; });
18924/* harmony import */ var _sparse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sparse */ "./node_modules/d3-selection/src/selection/sparse.js");
18925/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
18926
18927
18928
18929/* harmony default export */ __webpack_exports__["default"] = (function() {
18930 return new _index__WEBPACK_IMPORTED_MODULE_1__["Selection"](this._enter || this._groups.map(_sparse__WEBPACK_IMPORTED_MODULE_0__["default"]), this._parents);
18931});
18932
18933function EnterNode(parent, datum) {
18934 this.ownerDocument = parent.ownerDocument;
18935 this.namespaceURI = parent.namespaceURI;
18936 this._next = null;
18937 this._parent = parent;
18938 this.__data__ = datum;
18939}
18940
18941EnterNode.prototype = {
18942 constructor: EnterNode,
18943 appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
18944 insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
18945 querySelector: function(selector) { return this._parent.querySelector(selector); },
18946 querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
18947};
18948
18949
18950/***/ }),
18951
18952/***/ "./node_modules/d3-selection/src/selection/exit.js":
18953/*!*********************************************************!*\
18954 !*** ./node_modules/d3-selection/src/selection/exit.js ***!
18955 \*********************************************************/
18956/*! exports provided: default */
18957/***/ (function(module, __webpack_exports__, __webpack_require__) {
18958
18959"use strict";
18960__webpack_require__.r(__webpack_exports__);
18961/* harmony import */ var _sparse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sparse */ "./node_modules/d3-selection/src/selection/sparse.js");
18962/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
18963
18964
18965
18966/* harmony default export */ __webpack_exports__["default"] = (function() {
18967 return new _index__WEBPACK_IMPORTED_MODULE_1__["Selection"](this._exit || this._groups.map(_sparse__WEBPACK_IMPORTED_MODULE_0__["default"]), this._parents);
18968});
18969
18970
18971/***/ }),
18972
18973/***/ "./node_modules/d3-selection/src/selection/filter.js":
18974/*!***********************************************************!*\
18975 !*** ./node_modules/d3-selection/src/selection/filter.js ***!
18976 \***********************************************************/
18977/*! exports provided: default */
18978/***/ (function(module, __webpack_exports__, __webpack_require__) {
18979
18980"use strict";
18981__webpack_require__.r(__webpack_exports__);
18982/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
18983/* harmony import */ var _matcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../matcher */ "./node_modules/d3-selection/src/matcher.js");
18984
18985
18986
18987/* harmony default export */ __webpack_exports__["default"] = (function(match) {
18988 if (typeof match !== "function") match = Object(_matcher__WEBPACK_IMPORTED_MODULE_1__["default"])(match);
18989
18990 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
18991 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
18992 if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
18993 subgroup.push(node);
18994 }
18995 }
18996 }
18997
18998 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, this._parents);
18999});
19000
19001
19002/***/ }),
19003
19004/***/ "./node_modules/d3-selection/src/selection/html.js":
19005/*!*********************************************************!*\
19006 !*** ./node_modules/d3-selection/src/selection/html.js ***!
19007 \*********************************************************/
19008/*! exports provided: default */
19009/***/ (function(module, __webpack_exports__, __webpack_require__) {
19010
19011"use strict";
19012__webpack_require__.r(__webpack_exports__);
19013function htmlRemove() {
19014 this.innerHTML = "";
19015}
19016
19017function htmlConstant(value) {
19018 return function() {
19019 this.innerHTML = value;
19020 };
19021}
19022
19023function htmlFunction(value) {
19024 return function() {
19025 var v = value.apply(this, arguments);
19026 this.innerHTML = v == null ? "" : v;
19027 };
19028}
19029
19030/* harmony default export */ __webpack_exports__["default"] = (function(value) {
19031 return arguments.length
19032 ? this.each(value == null
19033 ? htmlRemove : (typeof value === "function"
19034 ? htmlFunction
19035 : htmlConstant)(value))
19036 : this.node().innerHTML;
19037});
19038
19039
19040/***/ }),
19041
19042/***/ "./node_modules/d3-selection/src/selection/index.js":
19043/*!**********************************************************!*\
19044 !*** ./node_modules/d3-selection/src/selection/index.js ***!
19045 \**********************************************************/
19046/*! exports provided: root, Selection, default */
19047/***/ (function(module, __webpack_exports__, __webpack_require__) {
19048
19049"use strict";
19050__webpack_require__.r(__webpack_exports__);
19051/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "root", function() { return root; });
19052/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return Selection; });
19053/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select */ "./node_modules/d3-selection/src/selection/select.js");
19054/* harmony import */ var _selectAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectAll */ "./node_modules/d3-selection/src/selection/selectAll.js");
19055/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter */ "./node_modules/d3-selection/src/selection/filter.js");
19056/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data */ "./node_modules/d3-selection/src/selection/data.js");
19057/* harmony import */ var _enter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./enter */ "./node_modules/d3-selection/src/selection/enter.js");
19058/* harmony import */ var _exit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exit */ "./node_modules/d3-selection/src/selection/exit.js");
19059/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./merge */ "./node_modules/d3-selection/src/selection/merge.js");
19060/* harmony import */ var _order__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./order */ "./node_modules/d3-selection/src/selection/order.js");
19061/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./sort */ "./node_modules/d3-selection/src/selection/sort.js");
19062/* harmony import */ var _call__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./call */ "./node_modules/d3-selection/src/selection/call.js");
19063/* harmony import */ var _nodes__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./nodes */ "./node_modules/d3-selection/src/selection/nodes.js");
19064/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./node */ "./node_modules/d3-selection/src/selection/node.js");
19065/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./size */ "./node_modules/d3-selection/src/selection/size.js");
19066/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./empty */ "./node_modules/d3-selection/src/selection/empty.js");
19067/* harmony import */ var _each__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./each */ "./node_modules/d3-selection/src/selection/each.js");
19068/* harmony import */ var _attr__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./attr */ "./node_modules/d3-selection/src/selection/attr.js");
19069/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./style */ "./node_modules/d3-selection/src/selection/style.js");
19070/* harmony import */ var _property__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./property */ "./node_modules/d3-selection/src/selection/property.js");
19071/* harmony import */ var _classed__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./classed */ "./node_modules/d3-selection/src/selection/classed.js");
19072/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./text */ "./node_modules/d3-selection/src/selection/text.js");
19073/* harmony import */ var _html__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./html */ "./node_modules/d3-selection/src/selection/html.js");
19074/* harmony import */ var _raise__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./raise */ "./node_modules/d3-selection/src/selection/raise.js");
19075/* harmony import */ var _lower__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./lower */ "./node_modules/d3-selection/src/selection/lower.js");
19076/* harmony import */ var _append__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./append */ "./node_modules/d3-selection/src/selection/append.js");
19077/* harmony import */ var _insert__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./insert */ "./node_modules/d3-selection/src/selection/insert.js");
19078/* harmony import */ var _remove__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./remove */ "./node_modules/d3-selection/src/selection/remove.js");
19079/* harmony import */ var _clone__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./clone */ "./node_modules/d3-selection/src/selection/clone.js");
19080/* harmony import */ var _datum__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./datum */ "./node_modules/d3-selection/src/selection/datum.js");
19081/* harmony import */ var _on__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./on */ "./node_modules/d3-selection/src/selection/on.js");
19082/* harmony import */ var _dispatch__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./dispatch */ "./node_modules/d3-selection/src/selection/dispatch.js");
19083
19084
19085
19086
19087
19088
19089
19090
19091
19092
19093
19094
19095
19096
19097
19098
19099
19100
19101
19102
19103
19104
19105
19106
19107
19108
19109
19110
19111
19112
19113
19114var root = [null];
19115
19116function Selection(groups, parents) {
19117 this._groups = groups;
19118 this._parents = parents;
19119}
19120
19121function selection() {
19122 return new Selection([[document.documentElement]], root);
19123}
19124
19125Selection.prototype = selection.prototype = {
19126 constructor: Selection,
19127 select: _select__WEBPACK_IMPORTED_MODULE_0__["default"],
19128 selectAll: _selectAll__WEBPACK_IMPORTED_MODULE_1__["default"],
19129 filter: _filter__WEBPACK_IMPORTED_MODULE_2__["default"],
19130 data: _data__WEBPACK_IMPORTED_MODULE_3__["default"],
19131 enter: _enter__WEBPACK_IMPORTED_MODULE_4__["default"],
19132 exit: _exit__WEBPACK_IMPORTED_MODULE_5__["default"],
19133 merge: _merge__WEBPACK_IMPORTED_MODULE_6__["default"],
19134 order: _order__WEBPACK_IMPORTED_MODULE_7__["default"],
19135 sort: _sort__WEBPACK_IMPORTED_MODULE_8__["default"],
19136 call: _call__WEBPACK_IMPORTED_MODULE_9__["default"],
19137 nodes: _nodes__WEBPACK_IMPORTED_MODULE_10__["default"],
19138 node: _node__WEBPACK_IMPORTED_MODULE_11__["default"],
19139 size: _size__WEBPACK_IMPORTED_MODULE_12__["default"],
19140 empty: _empty__WEBPACK_IMPORTED_MODULE_13__["default"],
19141 each: _each__WEBPACK_IMPORTED_MODULE_14__["default"],
19142 attr: _attr__WEBPACK_IMPORTED_MODULE_15__["default"],
19143 style: _style__WEBPACK_IMPORTED_MODULE_16__["default"],
19144 property: _property__WEBPACK_IMPORTED_MODULE_17__["default"],
19145 classed: _classed__WEBPACK_IMPORTED_MODULE_18__["default"],
19146 text: _text__WEBPACK_IMPORTED_MODULE_19__["default"],
19147 html: _html__WEBPACK_IMPORTED_MODULE_20__["default"],
19148 raise: _raise__WEBPACK_IMPORTED_MODULE_21__["default"],
19149 lower: _lower__WEBPACK_IMPORTED_MODULE_22__["default"],
19150 append: _append__WEBPACK_IMPORTED_MODULE_23__["default"],
19151 insert: _insert__WEBPACK_IMPORTED_MODULE_24__["default"],
19152 remove: _remove__WEBPACK_IMPORTED_MODULE_25__["default"],
19153 clone: _clone__WEBPACK_IMPORTED_MODULE_26__["default"],
19154 datum: _datum__WEBPACK_IMPORTED_MODULE_27__["default"],
19155 on: _on__WEBPACK_IMPORTED_MODULE_28__["default"],
19156 dispatch: _dispatch__WEBPACK_IMPORTED_MODULE_29__["default"]
19157};
19158
19159/* harmony default export */ __webpack_exports__["default"] = (selection);
19160
19161
19162/***/ }),
19163
19164/***/ "./node_modules/d3-selection/src/selection/insert.js":
19165/*!***********************************************************!*\
19166 !*** ./node_modules/d3-selection/src/selection/insert.js ***!
19167 \***********************************************************/
19168/*! exports provided: default */
19169/***/ (function(module, __webpack_exports__, __webpack_require__) {
19170
19171"use strict";
19172__webpack_require__.r(__webpack_exports__);
19173/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator */ "./node_modules/d3-selection/src/creator.js");
19174/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector */ "./node_modules/d3-selection/src/selector.js");
19175
19176
19177
19178function constantNull() {
19179 return null;
19180}
19181
19182/* harmony default export */ __webpack_exports__["default"] = (function(name, before) {
19183 var create = typeof name === "function" ? name : Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name),
19184 select = before == null ? constantNull : typeof before === "function" ? before : Object(_selector__WEBPACK_IMPORTED_MODULE_1__["default"])(before);
19185 return this.select(function() {
19186 return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
19187 });
19188});
19189
19190
19191/***/ }),
19192
19193/***/ "./node_modules/d3-selection/src/selection/lower.js":
19194/*!**********************************************************!*\
19195 !*** ./node_modules/d3-selection/src/selection/lower.js ***!
19196 \**********************************************************/
19197/*! exports provided: default */
19198/***/ (function(module, __webpack_exports__, __webpack_require__) {
19199
19200"use strict";
19201__webpack_require__.r(__webpack_exports__);
19202function lower() {
19203 if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
19204}
19205
19206/* harmony default export */ __webpack_exports__["default"] = (function() {
19207 return this.each(lower);
19208});
19209
19210
19211/***/ }),
19212
19213/***/ "./node_modules/d3-selection/src/selection/merge.js":
19214/*!**********************************************************!*\
19215 !*** ./node_modules/d3-selection/src/selection/merge.js ***!
19216 \**********************************************************/
19217/*! exports provided: default */
19218/***/ (function(module, __webpack_exports__, __webpack_require__) {
19219
19220"use strict";
19221__webpack_require__.r(__webpack_exports__);
19222/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19223
19224
19225/* harmony default export */ __webpack_exports__["default"] = (function(selection) {
19226
19227 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) {
19228 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
19229 if (node = group0[i] || group1[i]) {
19230 merge[i] = node;
19231 }
19232 }
19233 }
19234
19235 for (; j < m0; ++j) {
19236 merges[j] = groups0[j];
19237 }
19238
19239 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](merges, this._parents);
19240});
19241
19242
19243/***/ }),
19244
19245/***/ "./node_modules/d3-selection/src/selection/node.js":
19246/*!*********************************************************!*\
19247 !*** ./node_modules/d3-selection/src/selection/node.js ***!
19248 \*********************************************************/
19249/*! exports provided: default */
19250/***/ (function(module, __webpack_exports__, __webpack_require__) {
19251
19252"use strict";
19253__webpack_require__.r(__webpack_exports__);
19254/* harmony default export */ __webpack_exports__["default"] = (function() {
19255
19256 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
19257 for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
19258 var node = group[i];
19259 if (node) return node;
19260 }
19261 }
19262
19263 return null;
19264});
19265
19266
19267/***/ }),
19268
19269/***/ "./node_modules/d3-selection/src/selection/nodes.js":
19270/*!**********************************************************!*\
19271 !*** ./node_modules/d3-selection/src/selection/nodes.js ***!
19272 \**********************************************************/
19273/*! exports provided: default */
19274/***/ (function(module, __webpack_exports__, __webpack_require__) {
19275
19276"use strict";
19277__webpack_require__.r(__webpack_exports__);
19278/* harmony default export */ __webpack_exports__["default"] = (function() {
19279 var nodes = new Array(this.size()), i = -1;
19280 this.each(function() { nodes[++i] = this; });
19281 return nodes;
19282});
19283
19284
19285/***/ }),
19286
19287/***/ "./node_modules/d3-selection/src/selection/on.js":
19288/*!*******************************************************!*\
19289 !*** ./node_modules/d3-selection/src/selection/on.js ***!
19290 \*******************************************************/
19291/*! exports provided: event, default, customEvent */
19292/***/ (function(module, __webpack_exports__, __webpack_require__) {
19293
19294"use strict";
19295__webpack_require__.r(__webpack_exports__);
19296/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "event", function() { return event; });
19297/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return customEvent; });
19298var filterEvents = {};
19299
19300var event = null;
19301
19302if (typeof document !== "undefined") {
19303 var element = document.documentElement;
19304 if (!("onmouseenter" in element)) {
19305 filterEvents = {mouseenter: "mouseover", mouseleave: "mouseout"};
19306 }
19307}
19308
19309function filterContextListener(listener, index, group) {
19310 listener = contextListener(listener, index, group);
19311 return function(event) {
19312 var related = event.relatedTarget;
19313 if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {
19314 listener.call(this, event);
19315 }
19316 };
19317}
19318
19319function contextListener(listener, index, group) {
19320 return function(event1) {
19321 var event0 = event; // Events can be reentrant (e.g., focus).
19322 event = event1;
19323 try {
19324 listener.call(this, this.__data__, index, group);
19325 } finally {
19326 event = event0;
19327 }
19328 };
19329}
19330
19331function parseTypenames(typenames) {
19332 return typenames.trim().split(/^|\s+/).map(function(t) {
19333 var name = "", i = t.indexOf(".");
19334 if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
19335 return {type: t, name: name};
19336 });
19337}
19338
19339function onRemove(typename) {
19340 return function() {
19341 var on = this.__on;
19342 if (!on) return;
19343 for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
19344 if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
19345 this.removeEventListener(o.type, o.listener, o.capture);
19346 } else {
19347 on[++i] = o;
19348 }
19349 }
19350 if (++i) on.length = i;
19351 else delete this.__on;
19352 };
19353}
19354
19355function onAdd(typename, value, capture) {
19356 var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;
19357 return function(d, i, group) {
19358 var on = this.__on, o, listener = wrap(value, i, group);
19359 if (on) for (var j = 0, m = on.length; j < m; ++j) {
19360 if ((o = on[j]).type === typename.type && o.name === typename.name) {
19361 this.removeEventListener(o.type, o.listener, o.capture);
19362 this.addEventListener(o.type, o.listener = listener, o.capture = capture);
19363 o.value = value;
19364 return;
19365 }
19366 }
19367 this.addEventListener(typename.type, listener, capture);
19368 o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};
19369 if (!on) this.__on = [o];
19370 else on.push(o);
19371 };
19372}
19373
19374/* harmony default export */ __webpack_exports__["default"] = (function(typename, value, capture) {
19375 var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
19376
19377 if (arguments.length < 2) {
19378 var on = this.node().__on;
19379 if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
19380 for (i = 0, o = on[j]; i < n; ++i) {
19381 if ((t = typenames[i]).type === o.type && t.name === o.name) {
19382 return o.value;
19383 }
19384 }
19385 }
19386 return;
19387 }
19388
19389 on = value ? onAdd : onRemove;
19390 if (capture == null) capture = false;
19391 for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));
19392 return this;
19393});
19394
19395function customEvent(event1, listener, that, args) {
19396 var event0 = event;
19397 event1.sourceEvent = event;
19398 event = event1;
19399 try {
19400 return listener.apply(that, args);
19401 } finally {
19402 event = event0;
19403 }
19404}
19405
19406
19407/***/ }),
19408
19409/***/ "./node_modules/d3-selection/src/selection/order.js":
19410/*!**********************************************************!*\
19411 !*** ./node_modules/d3-selection/src/selection/order.js ***!
19412 \**********************************************************/
19413/*! exports provided: default */
19414/***/ (function(module, __webpack_exports__, __webpack_require__) {
19415
19416"use strict";
19417__webpack_require__.r(__webpack_exports__);
19418/* harmony default export */ __webpack_exports__["default"] = (function() {
19419
19420 for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
19421 for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
19422 if (node = group[i]) {
19423 if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
19424 next = node;
19425 }
19426 }
19427 }
19428
19429 return this;
19430});
19431
19432
19433/***/ }),
19434
19435/***/ "./node_modules/d3-selection/src/selection/property.js":
19436/*!*************************************************************!*\
19437 !*** ./node_modules/d3-selection/src/selection/property.js ***!
19438 \*************************************************************/
19439/*! exports provided: default */
19440/***/ (function(module, __webpack_exports__, __webpack_require__) {
19441
19442"use strict";
19443__webpack_require__.r(__webpack_exports__);
19444function propertyRemove(name) {
19445 return function() {
19446 delete this[name];
19447 };
19448}
19449
19450function propertyConstant(name, value) {
19451 return function() {
19452 this[name] = value;
19453 };
19454}
19455
19456function propertyFunction(name, value) {
19457 return function() {
19458 var v = value.apply(this, arguments);
19459 if (v == null) delete this[name];
19460 else this[name] = v;
19461 };
19462}
19463
19464/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
19465 return arguments.length > 1
19466 ? this.each((value == null
19467 ? propertyRemove : typeof value === "function"
19468 ? propertyFunction
19469 : propertyConstant)(name, value))
19470 : this.node()[name];
19471});
19472
19473
19474/***/ }),
19475
19476/***/ "./node_modules/d3-selection/src/selection/raise.js":
19477/*!**********************************************************!*\
19478 !*** ./node_modules/d3-selection/src/selection/raise.js ***!
19479 \**********************************************************/
19480/*! exports provided: default */
19481/***/ (function(module, __webpack_exports__, __webpack_require__) {
19482
19483"use strict";
19484__webpack_require__.r(__webpack_exports__);
19485function raise() {
19486 if (this.nextSibling) this.parentNode.appendChild(this);
19487}
19488
19489/* harmony default export */ __webpack_exports__["default"] = (function() {
19490 return this.each(raise);
19491});
19492
19493
19494/***/ }),
19495
19496/***/ "./node_modules/d3-selection/src/selection/remove.js":
19497/*!***********************************************************!*\
19498 !*** ./node_modules/d3-selection/src/selection/remove.js ***!
19499 \***********************************************************/
19500/*! exports provided: default */
19501/***/ (function(module, __webpack_exports__, __webpack_require__) {
19502
19503"use strict";
19504__webpack_require__.r(__webpack_exports__);
19505function remove() {
19506 var parent = this.parentNode;
19507 if (parent) parent.removeChild(this);
19508}
19509
19510/* harmony default export */ __webpack_exports__["default"] = (function() {
19511 return this.each(remove);
19512});
19513
19514
19515/***/ }),
19516
19517/***/ "./node_modules/d3-selection/src/selection/select.js":
19518/*!***********************************************************!*\
19519 !*** ./node_modules/d3-selection/src/selection/select.js ***!
19520 \***********************************************************/
19521/*! exports provided: default */
19522/***/ (function(module, __webpack_exports__, __webpack_require__) {
19523
19524"use strict";
19525__webpack_require__.r(__webpack_exports__);
19526/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19527/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector */ "./node_modules/d3-selection/src/selector.js");
19528
19529
19530
19531/* harmony default export */ __webpack_exports__["default"] = (function(select) {
19532 if (typeof select !== "function") select = Object(_selector__WEBPACK_IMPORTED_MODULE_1__["default"])(select);
19533
19534 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
19535 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
19536 if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
19537 if ("__data__" in node) subnode.__data__ = node.__data__;
19538 subgroup[i] = subnode;
19539 }
19540 }
19541 }
19542
19543 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, this._parents);
19544});
19545
19546
19547/***/ }),
19548
19549/***/ "./node_modules/d3-selection/src/selection/selectAll.js":
19550/*!**************************************************************!*\
19551 !*** ./node_modules/d3-selection/src/selection/selectAll.js ***!
19552 \**************************************************************/
19553/*! exports provided: default */
19554/***/ (function(module, __webpack_exports__, __webpack_require__) {
19555
19556"use strict";
19557__webpack_require__.r(__webpack_exports__);
19558/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19559/* harmony import */ var _selectorAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selectorAll */ "./node_modules/d3-selection/src/selectorAll.js");
19560
19561
19562
19563/* harmony default export */ __webpack_exports__["default"] = (function(select) {
19564 if (typeof select !== "function") select = Object(_selectorAll__WEBPACK_IMPORTED_MODULE_1__["default"])(select);
19565
19566 for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
19567 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
19568 if (node = group[i]) {
19569 subgroups.push(select.call(node, node.__data__, i, group));
19570 parents.push(node);
19571 }
19572 }
19573 }
19574
19575 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, parents);
19576});
19577
19578
19579/***/ }),
19580
19581/***/ "./node_modules/d3-selection/src/selection/size.js":
19582/*!*********************************************************!*\
19583 !*** ./node_modules/d3-selection/src/selection/size.js ***!
19584 \*********************************************************/
19585/*! exports provided: default */
19586/***/ (function(module, __webpack_exports__, __webpack_require__) {
19587
19588"use strict";
19589__webpack_require__.r(__webpack_exports__);
19590/* harmony default export */ __webpack_exports__["default"] = (function() {
19591 var size = 0;
19592 this.each(function() { ++size; });
19593 return size;
19594});
19595
19596
19597/***/ }),
19598
19599/***/ "./node_modules/d3-selection/src/selection/sort.js":
19600/*!*********************************************************!*\
19601 !*** ./node_modules/d3-selection/src/selection/sort.js ***!
19602 \*********************************************************/
19603/*! exports provided: default */
19604/***/ (function(module, __webpack_exports__, __webpack_require__) {
19605
19606"use strict";
19607__webpack_require__.r(__webpack_exports__);
19608/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19609
19610
19611/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
19612 if (!compare) compare = ascending;
19613
19614 function compareNode(a, b) {
19615 return a && b ? compare(a.__data__, b.__data__) : !a - !b;
19616 }
19617
19618 for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
19619 for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
19620 if (node = group[i]) {
19621 sortgroup[i] = node;
19622 }
19623 }
19624 sortgroup.sort(compareNode);
19625 }
19626
19627 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](sortgroups, this._parents).order();
19628});
19629
19630function ascending(a, b) {
19631 return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
19632}
19633
19634
19635/***/ }),
19636
19637/***/ "./node_modules/d3-selection/src/selection/sparse.js":
19638/*!***********************************************************!*\
19639 !*** ./node_modules/d3-selection/src/selection/sparse.js ***!
19640 \***********************************************************/
19641/*! exports provided: default */
19642/***/ (function(module, __webpack_exports__, __webpack_require__) {
19643
19644"use strict";
19645__webpack_require__.r(__webpack_exports__);
19646/* harmony default export */ __webpack_exports__["default"] = (function(update) {
19647 return new Array(update.length);
19648});
19649
19650
19651/***/ }),
19652
19653/***/ "./node_modules/d3-selection/src/selection/style.js":
19654/*!**********************************************************!*\
19655 !*** ./node_modules/d3-selection/src/selection/style.js ***!
19656 \**********************************************************/
19657/*! exports provided: default, styleValue */
19658/***/ (function(module, __webpack_exports__, __webpack_require__) {
19659
19660"use strict";
19661__webpack_require__.r(__webpack_exports__);
19662/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styleValue", function() { return styleValue; });
19663/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window */ "./node_modules/d3-selection/src/window.js");
19664
19665
19666function styleRemove(name) {
19667 return function() {
19668 this.style.removeProperty(name);
19669 };
19670}
19671
19672function styleConstant(name, value, priority) {
19673 return function() {
19674 this.style.setProperty(name, value, priority);
19675 };
19676}
19677
19678function styleFunction(name, value, priority) {
19679 return function() {
19680 var v = value.apply(this, arguments);
19681 if (v == null) this.style.removeProperty(name);
19682 else this.style.setProperty(name, v, priority);
19683 };
19684}
19685
19686/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
19687 return arguments.length > 1
19688 ? this.each((value == null
19689 ? styleRemove : typeof value === "function"
19690 ? styleFunction
19691 : styleConstant)(name, value, priority == null ? "" : priority))
19692 : styleValue(this.node(), name);
19693});
19694
19695function styleValue(node, name) {
19696 return node.style.getPropertyValue(name)
19697 || Object(_window__WEBPACK_IMPORTED_MODULE_0__["default"])(node).getComputedStyle(node, null).getPropertyValue(name);
19698}
19699
19700
19701/***/ }),
19702
19703/***/ "./node_modules/d3-selection/src/selection/text.js":
19704/*!*********************************************************!*\
19705 !*** ./node_modules/d3-selection/src/selection/text.js ***!
19706 \*********************************************************/
19707/*! exports provided: default */
19708/***/ (function(module, __webpack_exports__, __webpack_require__) {
19709
19710"use strict";
19711__webpack_require__.r(__webpack_exports__);
19712function textRemove() {
19713 this.textContent = "";
19714}
19715
19716function textConstant(value) {
19717 return function() {
19718 this.textContent = value;
19719 };
19720}
19721
19722function textFunction(value) {
19723 return function() {
19724 var v = value.apply(this, arguments);
19725 this.textContent = v == null ? "" : v;
19726 };
19727}
19728
19729/* harmony default export */ __webpack_exports__["default"] = (function(value) {
19730 return arguments.length
19731 ? this.each(value == null
19732 ? textRemove : (typeof value === "function"
19733 ? textFunction
19734 : textConstant)(value))
19735 : this.node().textContent;
19736});
19737
19738
19739/***/ }),
19740
19741/***/ "./node_modules/d3-selection/src/selector.js":
19742/*!***************************************************!*\
19743 !*** ./node_modules/d3-selection/src/selector.js ***!
19744 \***************************************************/
19745/*! exports provided: default */
19746/***/ (function(module, __webpack_exports__, __webpack_require__) {
19747
19748"use strict";
19749__webpack_require__.r(__webpack_exports__);
19750function none() {}
19751
19752/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
19753 return selector == null ? none : function() {
19754 return this.querySelector(selector);
19755 };
19756});
19757
19758
19759/***/ }),
19760
19761/***/ "./node_modules/d3-selection/src/selectorAll.js":
19762/*!******************************************************!*\
19763 !*** ./node_modules/d3-selection/src/selectorAll.js ***!
19764 \******************************************************/
19765/*! exports provided: default */
19766/***/ (function(module, __webpack_exports__, __webpack_require__) {
19767
19768"use strict";
19769__webpack_require__.r(__webpack_exports__);
19770function empty() {
19771 return [];
19772}
19773
19774/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
19775 return selector == null ? empty : function() {
19776 return this.querySelectorAll(selector);
19777 };
19778});
19779
19780
19781/***/ }),
19782
19783/***/ "./node_modules/d3-selection/src/sourceEvent.js":
19784/*!******************************************************!*\
19785 !*** ./node_modules/d3-selection/src/sourceEvent.js ***!
19786 \******************************************************/
19787/*! exports provided: default */
19788/***/ (function(module, __webpack_exports__, __webpack_require__) {
19789
19790"use strict";
19791__webpack_require__.r(__webpack_exports__);
19792/* harmony import */ var _selection_on__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/on */ "./node_modules/d3-selection/src/selection/on.js");
19793
19794
19795/* harmony default export */ __webpack_exports__["default"] = (function() {
19796 var current = _selection_on__WEBPACK_IMPORTED_MODULE_0__["event"], source;
19797 while (source = current.sourceEvent) current = source;
19798 return current;
19799});
19800
19801
19802/***/ }),
19803
19804/***/ "./node_modules/d3-selection/src/touch.js":
19805/*!************************************************!*\
19806 !*** ./node_modules/d3-selection/src/touch.js ***!
19807 \************************************************/
19808/*! exports provided: default */
19809/***/ (function(module, __webpack_exports__, __webpack_require__) {
19810
19811"use strict";
19812__webpack_require__.r(__webpack_exports__);
19813/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
19814/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
19815
19816
19817
19818/* harmony default export */ __webpack_exports__["default"] = (function(node, touches, identifier) {
19819 if (arguments.length < 3) identifier = touches, touches = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])().changedTouches;
19820
19821 for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {
19822 if ((touch = touches[i]).identifier === identifier) {
19823 return Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, touch);
19824 }
19825 }
19826
19827 return null;
19828});
19829
19830
19831/***/ }),
19832
19833/***/ "./node_modules/d3-selection/src/touches.js":
19834/*!**************************************************!*\
19835 !*** ./node_modules/d3-selection/src/touches.js ***!
19836 \**************************************************/
19837/*! exports provided: default */
19838/***/ (function(module, __webpack_exports__, __webpack_require__) {
19839
19840"use strict";
19841__webpack_require__.r(__webpack_exports__);
19842/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
19843/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
19844
19845
19846
19847/* harmony default export */ __webpack_exports__["default"] = (function(node, touches) {
19848 if (touches == null) touches = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])().touches;
19849
19850 for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {
19851 points[i] = Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, touches[i]);
19852 }
19853
19854 return points;
19855});
19856
19857
19858/***/ }),
19859
19860/***/ "./node_modules/d3-selection/src/window.js":
19861/*!*************************************************!*\
19862 !*** ./node_modules/d3-selection/src/window.js ***!
19863 \*************************************************/
19864/*! exports provided: default */
19865/***/ (function(module, __webpack_exports__, __webpack_require__) {
19866
19867"use strict";
19868__webpack_require__.r(__webpack_exports__);
19869/* harmony default export */ __webpack_exports__["default"] = (function(node) {
19870 return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
19871 || (node.document && node) // node is a Window
19872 || node.defaultView; // node is a Document
19873});
19874
19875
19876/***/ }),
19877
19878/***/ "./node_modules/d3-shape/src/arc.js":
19879/*!******************************************!*\
19880 !*** ./node_modules/d3-shape/src/arc.js ***!
19881 \******************************************/
19882/*! exports provided: default */
19883/***/ (function(module, __webpack_exports__, __webpack_require__) {
19884
19885"use strict";
19886__webpack_require__.r(__webpack_exports__);
19887/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
19888/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
19889/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-shape/src/math.js");
19890
19891
19892
19893
19894function arcInnerRadius(d) {
19895 return d.innerRadius;
19896}
19897
19898function arcOuterRadius(d) {
19899 return d.outerRadius;
19900}
19901
19902function arcStartAngle(d) {
19903 return d.startAngle;
19904}
19905
19906function arcEndAngle(d) {
19907 return d.endAngle;
19908}
19909
19910function arcPadAngle(d) {
19911 return d && d.padAngle; // Note: optional!
19912}
19913
19914function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
19915 var x10 = x1 - x0, y10 = y1 - y0,
19916 x32 = x3 - x2, y32 = y3 - y2,
19917 t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / (y32 * x10 - x32 * y10);
19918 return [x0 + t * x10, y0 + t * y10];
19919}
19920
19921// Compute perpendicular offset line of length rc.
19922// http://mathworld.wolfram.com/Circle-LineIntersection.html
19923function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
19924 var x01 = x0 - x1,
19925 y01 = y0 - y1,
19926 lo = (cw ? rc : -rc) / Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(x01 * x01 + y01 * y01),
19927 ox = lo * y01,
19928 oy = -lo * x01,
19929 x11 = x0 + ox,
19930 y11 = y0 + oy,
19931 x10 = x1 + ox,
19932 y10 = y1 + oy,
19933 x00 = (x11 + x10) / 2,
19934 y00 = (y11 + y10) / 2,
19935 dx = x10 - x11,
19936 dy = y10 - y11,
19937 d2 = dx * dx + dy * dy,
19938 r = r1 - rc,
19939 D = x11 * y10 - x10 * y11,
19940 d = (dy < 0 ? -1 : 1) * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(Object(_math__WEBPACK_IMPORTED_MODULE_2__["max"])(0, r * r * d2 - D * D)),
19941 cx0 = (D * dy - dx * d) / d2,
19942 cy0 = (-D * dx - dy * d) / d2,
19943 cx1 = (D * dy + dx * d) / d2,
19944 cy1 = (-D * dx + dy * d) / d2,
19945 dx0 = cx0 - x00,
19946 dy0 = cy0 - y00,
19947 dx1 = cx1 - x00,
19948 dy1 = cy1 - y00;
19949
19950 // Pick the closer of the two intersection points.
19951 // TODO Is there a faster way to determine which intersection to use?
19952 if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
19953
19954 return {
19955 cx: cx0,
19956 cy: cy0,
19957 x01: -ox,
19958 y01: -oy,
19959 x11: cx0 * (r1 / r - 1),
19960 y11: cy0 * (r1 / r - 1)
19961 };
19962}
19963
19964/* harmony default export */ __webpack_exports__["default"] = (function() {
19965 var innerRadius = arcInnerRadius,
19966 outerRadius = arcOuterRadius,
19967 cornerRadius = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(0),
19968 padRadius = null,
19969 startAngle = arcStartAngle,
19970 endAngle = arcEndAngle,
19971 padAngle = arcPadAngle,
19972 context = null;
19973
19974 function arc() {
19975 var buffer,
19976 r,
19977 r0 = +innerRadius.apply(this, arguments),
19978 r1 = +outerRadius.apply(this, arguments),
19979 a0 = startAngle.apply(this, arguments) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
19980 a1 = endAngle.apply(this, arguments) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
19981 da = Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(a1 - a0),
19982 cw = a1 > a0;
19983
19984 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
19985
19986 // Ensure that the outer radius is always larger than the inner radius.
19987 if (r1 < r0) r = r1, r1 = r0, r0 = r;
19988
19989 // Is it a point?
19990 if (!(r1 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.moveTo(0, 0);
19991
19992 // Or is it a circle or annulus?
19993 else if (da > _math__WEBPACK_IMPORTED_MODULE_2__["tau"] - _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
19994 context.moveTo(r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a0), r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a0));
19995 context.arc(0, 0, r1, a0, a1, !cw);
19996 if (r0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
19997 context.moveTo(r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a1), r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a1));
19998 context.arc(0, 0, r0, a1, a0, cw);
19999 }
20000 }
20001
20002 // Or is it a circular or annular sector?
20003 else {
20004 var a01 = a0,
20005 a11 = a1,
20006 a00 = a0,
20007 a10 = a1,
20008 da0 = da,
20009 da1 = da,
20010 ap = padAngle.apply(this, arguments) / 2,
20011 rp = (ap > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) && (padRadius ? +padRadius.apply(this, arguments) : Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(r0 * r0 + r1 * r1)),
20012 rc = Object(_math__WEBPACK_IMPORTED_MODULE_2__["min"])(Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
20013 rc0 = rc,
20014 rc1 = rc,
20015 t0,
20016 t1;
20017
20018 // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
20019 if (rp > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20020 var p0 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["asin"])(rp / r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(ap)),
20021 p1 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["asin"])(rp / r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(ap));
20022 if ((da0 -= p0 * 2) > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
20023 else da0 = 0, a00 = a10 = (a0 + a1) / 2;
20024 if ((da1 -= p1 * 2) > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
20025 else da1 = 0, a01 = a11 = (a0 + a1) / 2;
20026 }
20027
20028 var x01 = r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a01),
20029 y01 = r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a01),
20030 x10 = r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a10),
20031 y10 = r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a10);
20032
20033 // Apply rounded corners?
20034 if (rc > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20035 var x11 = r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a11),
20036 y11 = r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a11),
20037 x00 = r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a00),
20038 y00 = r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a00);
20039
20040 // Restrict the corner radius according to the sector angle.
20041 if (da < _math__WEBPACK_IMPORTED_MODULE_2__["pi"]) {
20042 var oc = da0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] ? intersect(x01, y01, x00, y00, x11, y11, x10, y10) : [x10, y10],
20043 ax = x01 - oc[0],
20044 ay = y01 - oc[1],
20045 bx = x11 - oc[0],
20046 by = y11 - oc[1],
20047 kc = 1 / Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(Object(_math__WEBPACK_IMPORTED_MODULE_2__["acos"])((ax * bx + ay * by) / (Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(ax * ax + ay * ay) * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(bx * bx + by * by))) / 2),
20048 lc = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(oc[0] * oc[0] + oc[1] * oc[1]);
20049 rc0 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["min"])(rc, (r0 - lc) / (kc - 1));
20050 rc1 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["min"])(rc, (r1 - lc) / (kc + 1));
20051 }
20052 }
20053
20054 // Is the sector collapsed to a line?
20055 if (!(da1 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.moveTo(x01, y01);
20056
20057 // Does the sector’s outer ring have rounded corners?
20058 else if (rc1 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20059 t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
20060 t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
20061
20062 context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
20063
20064 // Have the corners merged?
20065 if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y01, t0.x01), Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y01, t1.x01), !cw);
20066
20067 // Otherwise, draw the two corners and the ring.
20068 else {
20069 context.arc(t0.cx, t0.cy, rc1, Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y01, t0.x01), Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y11, t0.x11), !cw);
20070 context.arc(0, 0, r1, Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.cy + t0.y11, t0.cx + t0.x11), Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
20071 context.arc(t1.cx, t1.cy, rc1, Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y11, t1.x11), Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y01, t1.x01), !cw);
20072 }
20073 }
20074
20075 // Or is the outer ring just a circular arc?
20076 else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
20077
20078 // Is there no inner ring, and it’s a circular sector?
20079 // Or perhaps it’s an annular sector collapsed due to padding?
20080 if (!(r0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) || !(da0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.lineTo(x10, y10);
20081
20082 // Does the sector’s inner ring (or point) have rounded corners?
20083 else if (rc0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20084 t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
20085 t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
20086
20087 context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
20088
20089 // Have the corners merged?
20090 if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y01, t0.x01), Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y01, t1.x01), !cw);
20091
20092 // Otherwise, draw the two corners and the ring.
20093 else {
20094 context.arc(t0.cx, t0.cy, rc0, Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y01, t0.x01), Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y11, t0.x11), !cw);
20095 context.arc(0, 0, r0, Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.cy + t0.y11, t0.cx + t0.x11), Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.cy + t1.y11, t1.cx + t1.x11), cw);
20096 context.arc(t1.cx, t1.cy, rc0, Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y11, t1.x11), Object(_math__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y01, t1.x01), !cw);
20097 }
20098 }
20099
20100 // Or is the inner ring just a circular arc?
20101 else context.arc(0, 0, r0, a10, a00, cw);
20102 }
20103
20104 context.closePath();
20105
20106 if (buffer) return context = null, buffer + "" || null;
20107 }
20108
20109 arc.centroid = function() {
20110 var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
20111 a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - _math__WEBPACK_IMPORTED_MODULE_2__["pi"] / 2;
20112 return [Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a) * r, Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a) * r];
20113 };
20114
20115 arc.innerRadius = function(_) {
20116 return arguments.length ? (innerRadius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : innerRadius;
20117 };
20118
20119 arc.outerRadius = function(_) {
20120 return arguments.length ? (outerRadius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : outerRadius;
20121 };
20122
20123 arc.cornerRadius = function(_) {
20124 return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : cornerRadius;
20125 };
20126
20127 arc.padRadius = function(_) {
20128 return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : padRadius;
20129 };
20130
20131 arc.startAngle = function(_) {
20132 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : startAngle;
20133 };
20134
20135 arc.endAngle = function(_) {
20136 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : endAngle;
20137 };
20138
20139 arc.padAngle = function(_) {
20140 return arguments.length ? (padAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : padAngle;
20141 };
20142
20143 arc.context = function(_) {
20144 return arguments.length ? ((context = _ == null ? null : _), arc) : context;
20145 };
20146
20147 return arc;
20148});
20149
20150
20151/***/ }),
20152
20153/***/ "./node_modules/d3-shape/src/area.js":
20154/*!*******************************************!*\
20155 !*** ./node_modules/d3-shape/src/area.js ***!
20156 \*******************************************/
20157/*! exports provided: default */
20158/***/ (function(module, __webpack_exports__, __webpack_require__) {
20159
20160"use strict";
20161__webpack_require__.r(__webpack_exports__);
20162/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
20163/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
20164/* harmony import */ var _curve_linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curve/linear */ "./node_modules/d3-shape/src/curve/linear.js");
20165/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./line */ "./node_modules/d3-shape/src/line.js");
20166/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./point */ "./node_modules/d3-shape/src/point.js");
20167
20168
20169
20170
20171
20172
20173/* harmony default export */ __webpack_exports__["default"] = (function() {
20174 var x0 = _point__WEBPACK_IMPORTED_MODULE_4__["x"],
20175 x1 = null,
20176 y0 = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(0),
20177 y1 = _point__WEBPACK_IMPORTED_MODULE_4__["y"],
20178 defined = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(true),
20179 context = null,
20180 curve = _curve_linear__WEBPACK_IMPORTED_MODULE_2__["default"],
20181 output = null;
20182
20183 function area(data) {
20184 var i,
20185 j,
20186 k,
20187 n = data.length,
20188 d,
20189 defined0 = false,
20190 buffer,
20191 x0z = new Array(n),
20192 y0z = new Array(n);
20193
20194 if (context == null) output = curve(buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])());
20195
20196 for (i = 0; i <= n; ++i) {
20197 if (!(i < n && defined(d = data[i], i, data)) === defined0) {
20198 if (defined0 = !defined0) {
20199 j = i;
20200 output.areaStart();
20201 output.lineStart();
20202 } else {
20203 output.lineEnd();
20204 output.lineStart();
20205 for (k = i - 1; k >= j; --k) {
20206 output.point(x0z[k], y0z[k]);
20207 }
20208 output.lineEnd();
20209 output.areaEnd();
20210 }
20211 }
20212 if (defined0) {
20213 x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
20214 output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
20215 }
20216 }
20217
20218 if (buffer) return output = null, buffer + "" || null;
20219 }
20220
20221 function arealine() {
20222 return Object(_line__WEBPACK_IMPORTED_MODULE_3__["default"])().defined(defined).curve(curve).context(context);
20223 }
20224
20225 area.x = function(_) {
20226 return arguments.length ? (x0 = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), x1 = null, area) : x0;
20227 };
20228
20229 area.x0 = function(_) {
20230 return arguments.length ? (x0 = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : x0;
20231 };
20232
20233 area.x1 = function(_) {
20234 return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : x1;
20235 };
20236
20237 area.y = function(_) {
20238 return arguments.length ? (y0 = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), y1 = null, area) : y0;
20239 };
20240
20241 area.y0 = function(_) {
20242 return arguments.length ? (y0 = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : y0;
20243 };
20244
20245 area.y1 = function(_) {
20246 return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : y1;
20247 };
20248
20249 area.lineX0 =
20250 area.lineY0 = function() {
20251 return arealine().x(x0).y(y0);
20252 };
20253
20254 area.lineY1 = function() {
20255 return arealine().x(x0).y(y1);
20256 };
20257
20258 area.lineX1 = function() {
20259 return arealine().x(x1).y(y0);
20260 };
20261
20262 area.defined = function(_) {
20263 return arguments.length ? (defined = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), area) : defined;
20264 };
20265
20266 area.curve = function(_) {
20267 return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
20268 };
20269
20270 area.context = function(_) {
20271 return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
20272 };
20273
20274 return area;
20275});
20276
20277
20278/***/ }),
20279
20280/***/ "./node_modules/d3-shape/src/areaRadial.js":
20281/*!*************************************************!*\
20282 !*** ./node_modules/d3-shape/src/areaRadial.js ***!
20283 \*************************************************/
20284/*! exports provided: default */
20285/***/ (function(module, __webpack_exports__, __webpack_require__) {
20286
20287"use strict";
20288__webpack_require__.r(__webpack_exports__);
20289/* harmony import */ var _curve_radial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial */ "./node_modules/d3-shape/src/curve/radial.js");
20290/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area */ "./node_modules/d3-shape/src/area.js");
20291/* harmony import */ var _lineRadial__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lineRadial */ "./node_modules/d3-shape/src/lineRadial.js");
20292
20293
20294
20295
20296/* harmony default export */ __webpack_exports__["default"] = (function() {
20297 var a = Object(_area__WEBPACK_IMPORTED_MODULE_1__["default"])().curve(_curve_radial__WEBPACK_IMPORTED_MODULE_0__["curveRadialLinear"]),
20298 c = a.curve,
20299 x0 = a.lineX0,
20300 x1 = a.lineX1,
20301 y0 = a.lineY0,
20302 y1 = a.lineY1;
20303
20304 a.angle = a.x, delete a.x;
20305 a.startAngle = a.x0, delete a.x0;
20306 a.endAngle = a.x1, delete a.x1;
20307 a.radius = a.y, delete a.y;
20308 a.innerRadius = a.y0, delete a.y0;
20309 a.outerRadius = a.y1, delete a.y1;
20310 a.lineStartAngle = function() { return Object(_lineRadial__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(x0()); }, delete a.lineX0;
20311 a.lineEndAngle = function() { return Object(_lineRadial__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(x1()); }, delete a.lineX1;
20312 a.lineInnerRadius = function() { return Object(_lineRadial__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(y0()); }, delete a.lineY0;
20313 a.lineOuterRadius = function() { return Object(_lineRadial__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(y1()); }, delete a.lineY1;
20314
20315 a.curve = function(_) {
20316 return arguments.length ? c(Object(_curve_radial__WEBPACK_IMPORTED_MODULE_0__["default"])(_)) : c()._curve;
20317 };
20318
20319 return a;
20320});
20321
20322
20323/***/ }),
20324
20325/***/ "./node_modules/d3-shape/src/array.js":
20326/*!********************************************!*\
20327 !*** ./node_modules/d3-shape/src/array.js ***!
20328 \********************************************/
20329/*! exports provided: slice */
20330/***/ (function(module, __webpack_exports__, __webpack_require__) {
20331
20332"use strict";
20333__webpack_require__.r(__webpack_exports__);
20334/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
20335var slice = Array.prototype.slice;
20336
20337
20338/***/ }),
20339
20340/***/ "./node_modules/d3-shape/src/constant.js":
20341/*!***********************************************!*\
20342 !*** ./node_modules/d3-shape/src/constant.js ***!
20343 \***********************************************/
20344/*! exports provided: default */
20345/***/ (function(module, __webpack_exports__, __webpack_require__) {
20346
20347"use strict";
20348__webpack_require__.r(__webpack_exports__);
20349/* harmony default export */ __webpack_exports__["default"] = (function(x) {
20350 return function constant() {
20351 return x;
20352 };
20353});
20354
20355
20356/***/ }),
20357
20358/***/ "./node_modules/d3-shape/src/curve/basis.js":
20359/*!**************************************************!*\
20360 !*** ./node_modules/d3-shape/src/curve/basis.js ***!
20361 \**************************************************/
20362/*! exports provided: point, Basis, default */
20363/***/ (function(module, __webpack_exports__, __webpack_require__) {
20364
20365"use strict";
20366__webpack_require__.r(__webpack_exports__);
20367/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
20368/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Basis", function() { return Basis; });
20369function point(that, x, y) {
20370 that._context.bezierCurveTo(
20371 (2 * that._x0 + that._x1) / 3,
20372 (2 * that._y0 + that._y1) / 3,
20373 (that._x0 + 2 * that._x1) / 3,
20374 (that._y0 + 2 * that._y1) / 3,
20375 (that._x0 + 4 * that._x1 + x) / 6,
20376 (that._y0 + 4 * that._y1 + y) / 6
20377 );
20378}
20379
20380function Basis(context) {
20381 this._context = context;
20382}
20383
20384Basis.prototype = {
20385 areaStart: function() {
20386 this._line = 0;
20387 },
20388 areaEnd: function() {
20389 this._line = NaN;
20390 },
20391 lineStart: function() {
20392 this._x0 = this._x1 =
20393 this._y0 = this._y1 = NaN;
20394 this._point = 0;
20395 },
20396 lineEnd: function() {
20397 switch (this._point) {
20398 case 3: point(this, this._x1, this._y1); // proceed
20399 case 2: this._context.lineTo(this._x1, this._y1); break;
20400 }
20401 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
20402 this._line = 1 - this._line;
20403 },
20404 point: function(x, y) {
20405 x = +x, y = +y;
20406 switch (this._point) {
20407 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
20408 case 1: this._point = 2; break;
20409 case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed
20410 default: point(this, x, y); break;
20411 }
20412 this._x0 = this._x1, this._x1 = x;
20413 this._y0 = this._y1, this._y1 = y;
20414 }
20415};
20416
20417/* harmony default export */ __webpack_exports__["default"] = (function(context) {
20418 return new Basis(context);
20419});
20420
20421
20422/***/ }),
20423
20424/***/ "./node_modules/d3-shape/src/curve/basisClosed.js":
20425/*!********************************************************!*\
20426 !*** ./node_modules/d3-shape/src/curve/basisClosed.js ***!
20427 \********************************************************/
20428/*! exports provided: default */
20429/***/ (function(module, __webpack_exports__, __webpack_require__) {
20430
20431"use strict";
20432__webpack_require__.r(__webpack_exports__);
20433/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-shape/src/noop.js");
20434/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-shape/src/curve/basis.js");
20435
20436
20437
20438function BasisClosed(context) {
20439 this._context = context;
20440}
20441
20442BasisClosed.prototype = {
20443 areaStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
20444 areaEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
20445 lineStart: function() {
20446 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
20447 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
20448 this._point = 0;
20449 },
20450 lineEnd: function() {
20451 switch (this._point) {
20452 case 1: {
20453 this._context.moveTo(this._x2, this._y2);
20454 this._context.closePath();
20455 break;
20456 }
20457 case 2: {
20458 this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
20459 this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
20460 this._context.closePath();
20461 break;
20462 }
20463 case 3: {
20464 this.point(this._x2, this._y2);
20465 this.point(this._x3, this._y3);
20466 this.point(this._x4, this._y4);
20467 break;
20468 }
20469 }
20470 },
20471 point: function(x, y) {
20472 x = +x, y = +y;
20473 switch (this._point) {
20474 case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
20475 case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
20476 case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;
20477 default: Object(_basis__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
20478 }
20479 this._x0 = this._x1, this._x1 = x;
20480 this._y0 = this._y1, this._y1 = y;
20481 }
20482};
20483
20484/* harmony default export */ __webpack_exports__["default"] = (function(context) {
20485 return new BasisClosed(context);
20486});
20487
20488
20489/***/ }),
20490
20491/***/ "./node_modules/d3-shape/src/curve/basisOpen.js":
20492/*!******************************************************!*\
20493 !*** ./node_modules/d3-shape/src/curve/basisOpen.js ***!
20494 \******************************************************/
20495/*! exports provided: default */
20496/***/ (function(module, __webpack_exports__, __webpack_require__) {
20497
20498"use strict";
20499__webpack_require__.r(__webpack_exports__);
20500/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-shape/src/curve/basis.js");
20501
20502
20503function BasisOpen(context) {
20504 this._context = context;
20505}
20506
20507BasisOpen.prototype = {
20508 areaStart: function() {
20509 this._line = 0;
20510 },
20511 areaEnd: function() {
20512 this._line = NaN;
20513 },
20514 lineStart: function() {
20515 this._x0 = this._x1 =
20516 this._y0 = this._y1 = NaN;
20517 this._point = 0;
20518 },
20519 lineEnd: function() {
20520 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
20521 this._line = 1 - this._line;
20522 },
20523 point: function(x, y) {
20524 x = +x, y = +y;
20525 switch (this._point) {
20526 case 0: this._point = 1; break;
20527 case 1: this._point = 2; break;
20528 case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;
20529 case 3: this._point = 4; // proceed
20530 default: Object(_basis__WEBPACK_IMPORTED_MODULE_0__["point"])(this, x, y); break;
20531 }
20532 this._x0 = this._x1, this._x1 = x;
20533 this._y0 = this._y1, this._y1 = y;
20534 }
20535};
20536
20537/* harmony default export */ __webpack_exports__["default"] = (function(context) {
20538 return new BasisOpen(context);
20539});
20540
20541
20542/***/ }),
20543
20544/***/ "./node_modules/d3-shape/src/curve/bundle.js":
20545/*!***************************************************!*\
20546 !*** ./node_modules/d3-shape/src/curve/bundle.js ***!
20547 \***************************************************/
20548/*! exports provided: default */
20549/***/ (function(module, __webpack_exports__, __webpack_require__) {
20550
20551"use strict";
20552__webpack_require__.r(__webpack_exports__);
20553/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-shape/src/curve/basis.js");
20554
20555
20556function Bundle(context, beta) {
20557 this._basis = new _basis__WEBPACK_IMPORTED_MODULE_0__["Basis"](context);
20558 this._beta = beta;
20559}
20560
20561Bundle.prototype = {
20562 lineStart: function() {
20563 this._x = [];
20564 this._y = [];
20565 this._basis.lineStart();
20566 },
20567 lineEnd: function() {
20568 var x = this._x,
20569 y = this._y,
20570 j = x.length - 1;
20571
20572 if (j > 0) {
20573 var x0 = x[0],
20574 y0 = y[0],
20575 dx = x[j] - x0,
20576 dy = y[j] - y0,
20577 i = -1,
20578 t;
20579
20580 while (++i <= j) {
20581 t = i / j;
20582 this._basis.point(
20583 this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
20584 this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
20585 );
20586 }
20587 }
20588
20589 this._x = this._y = null;
20590 this._basis.lineEnd();
20591 },
20592 point: function(x, y) {
20593 this._x.push(+x);
20594 this._y.push(+y);
20595 }
20596};
20597
20598/* harmony default export */ __webpack_exports__["default"] = ((function custom(beta) {
20599
20600 function bundle(context) {
20601 return beta === 1 ? new _basis__WEBPACK_IMPORTED_MODULE_0__["Basis"](context) : new Bundle(context, beta);
20602 }
20603
20604 bundle.beta = function(beta) {
20605 return custom(+beta);
20606 };
20607
20608 return bundle;
20609})(0.85));
20610
20611
20612/***/ }),
20613
20614/***/ "./node_modules/d3-shape/src/curve/cardinal.js":
20615/*!*****************************************************!*\
20616 !*** ./node_modules/d3-shape/src/curve/cardinal.js ***!
20617 \*****************************************************/
20618/*! exports provided: point, Cardinal, default */
20619/***/ (function(module, __webpack_exports__, __webpack_require__) {
20620
20621"use strict";
20622__webpack_require__.r(__webpack_exports__);
20623/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
20624/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Cardinal", function() { return Cardinal; });
20625function point(that, x, y) {
20626 that._context.bezierCurveTo(
20627 that._x1 + that._k * (that._x2 - that._x0),
20628 that._y1 + that._k * (that._y2 - that._y0),
20629 that._x2 + that._k * (that._x1 - x),
20630 that._y2 + that._k * (that._y1 - y),
20631 that._x2,
20632 that._y2
20633 );
20634}
20635
20636function Cardinal(context, tension) {
20637 this._context = context;
20638 this._k = (1 - tension) / 6;
20639}
20640
20641Cardinal.prototype = {
20642 areaStart: function() {
20643 this._line = 0;
20644 },
20645 areaEnd: function() {
20646 this._line = NaN;
20647 },
20648 lineStart: function() {
20649 this._x0 = this._x1 = this._x2 =
20650 this._y0 = this._y1 = this._y2 = NaN;
20651 this._point = 0;
20652 },
20653 lineEnd: function() {
20654 switch (this._point) {
20655 case 2: this._context.lineTo(this._x2, this._y2); break;
20656 case 3: point(this, this._x1, this._y1); break;
20657 }
20658 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
20659 this._line = 1 - this._line;
20660 },
20661 point: function(x, y) {
20662 x = +x, y = +y;
20663 switch (this._point) {
20664 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
20665 case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
20666 case 2: this._point = 3; // proceed
20667 default: point(this, x, y); break;
20668 }
20669 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
20670 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
20671 }
20672};
20673
20674/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
20675
20676 function cardinal(context) {
20677 return new Cardinal(context, tension);
20678 }
20679
20680 cardinal.tension = function(tension) {
20681 return custom(+tension);
20682 };
20683
20684 return cardinal;
20685})(0));
20686
20687
20688/***/ }),
20689
20690/***/ "./node_modules/d3-shape/src/curve/cardinalClosed.js":
20691/*!***********************************************************!*\
20692 !*** ./node_modules/d3-shape/src/curve/cardinalClosed.js ***!
20693 \***********************************************************/
20694/*! exports provided: CardinalClosed, default */
20695/***/ (function(module, __webpack_exports__, __webpack_require__) {
20696
20697"use strict";
20698__webpack_require__.r(__webpack_exports__);
20699/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardinalClosed", function() { return CardinalClosed; });
20700/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-shape/src/noop.js");
20701/* harmony import */ var _cardinal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal */ "./node_modules/d3-shape/src/curve/cardinal.js");
20702
20703
20704
20705function CardinalClosed(context, tension) {
20706 this._context = context;
20707 this._k = (1 - tension) / 6;
20708}
20709
20710CardinalClosed.prototype = {
20711 areaStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
20712 areaEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
20713 lineStart: function() {
20714 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
20715 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
20716 this._point = 0;
20717 },
20718 lineEnd: function() {
20719 switch (this._point) {
20720 case 1: {
20721 this._context.moveTo(this._x3, this._y3);
20722 this._context.closePath();
20723 break;
20724 }
20725 case 2: {
20726 this._context.lineTo(this._x3, this._y3);
20727 this._context.closePath();
20728 break;
20729 }
20730 case 3: {
20731 this.point(this._x3, this._y3);
20732 this.point(this._x4, this._y4);
20733 this.point(this._x5, this._y5);
20734 break;
20735 }
20736 }
20737 },
20738 point: function(x, y) {
20739 x = +x, y = +y;
20740 switch (this._point) {
20741 case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
20742 case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
20743 case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
20744 default: Object(_cardinal__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
20745 }
20746 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
20747 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
20748 }
20749};
20750
20751/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
20752
20753 function cardinal(context) {
20754 return new CardinalClosed(context, tension);
20755 }
20756
20757 cardinal.tension = function(tension) {
20758 return custom(+tension);
20759 };
20760
20761 return cardinal;
20762})(0));
20763
20764
20765/***/ }),
20766
20767/***/ "./node_modules/d3-shape/src/curve/cardinalOpen.js":
20768/*!*********************************************************!*\
20769 !*** ./node_modules/d3-shape/src/curve/cardinalOpen.js ***!
20770 \*********************************************************/
20771/*! exports provided: CardinalOpen, default */
20772/***/ (function(module, __webpack_exports__, __webpack_require__) {
20773
20774"use strict";
20775__webpack_require__.r(__webpack_exports__);
20776/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardinalOpen", function() { return CardinalOpen; });
20777/* harmony import */ var _cardinal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinal */ "./node_modules/d3-shape/src/curve/cardinal.js");
20778
20779
20780function CardinalOpen(context, tension) {
20781 this._context = context;
20782 this._k = (1 - tension) / 6;
20783}
20784
20785CardinalOpen.prototype = {
20786 areaStart: function() {
20787 this._line = 0;
20788 },
20789 areaEnd: function() {
20790 this._line = NaN;
20791 },
20792 lineStart: function() {
20793 this._x0 = this._x1 = this._x2 =
20794 this._y0 = this._y1 = this._y2 = NaN;
20795 this._point = 0;
20796 },
20797 lineEnd: function() {
20798 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
20799 this._line = 1 - this._line;
20800 },
20801 point: function(x, y) {
20802 x = +x, y = +y;
20803 switch (this._point) {
20804 case 0: this._point = 1; break;
20805 case 1: this._point = 2; break;
20806 case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
20807 case 3: this._point = 4; // proceed
20808 default: Object(_cardinal__WEBPACK_IMPORTED_MODULE_0__["point"])(this, x, y); break;
20809 }
20810 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
20811 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
20812 }
20813};
20814
20815/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
20816
20817 function cardinal(context) {
20818 return new CardinalOpen(context, tension);
20819 }
20820
20821 cardinal.tension = function(tension) {
20822 return custom(+tension);
20823 };
20824
20825 return cardinal;
20826})(0));
20827
20828
20829/***/ }),
20830
20831/***/ "./node_modules/d3-shape/src/curve/catmullRom.js":
20832/*!*******************************************************!*\
20833 !*** ./node_modules/d3-shape/src/curve/catmullRom.js ***!
20834 \*******************************************************/
20835/*! exports provided: point, default */
20836/***/ (function(module, __webpack_exports__, __webpack_require__) {
20837
20838"use strict";
20839__webpack_require__.r(__webpack_exports__);
20840/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
20841/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-shape/src/math.js");
20842/* harmony import */ var _cardinal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal */ "./node_modules/d3-shape/src/curve/cardinal.js");
20843
20844
20845
20846function point(that, x, y) {
20847 var x1 = that._x1,
20848 y1 = that._y1,
20849 x2 = that._x2,
20850 y2 = that._y2;
20851
20852 if (that._l01_a > _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) {
20853 var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
20854 n = 3 * that._l01_a * (that._l01_a + that._l12_a);
20855 x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
20856 y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
20857 }
20858
20859 if (that._l23_a > _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) {
20860 var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
20861 m = 3 * that._l23_a * (that._l23_a + that._l12_a);
20862 x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
20863 y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
20864 }
20865
20866 that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
20867}
20868
20869function CatmullRom(context, alpha) {
20870 this._context = context;
20871 this._alpha = alpha;
20872}
20873
20874CatmullRom.prototype = {
20875 areaStart: function() {
20876 this._line = 0;
20877 },
20878 areaEnd: function() {
20879 this._line = NaN;
20880 },
20881 lineStart: function() {
20882 this._x0 = this._x1 = this._x2 =
20883 this._y0 = this._y1 = this._y2 = NaN;
20884 this._l01_a = this._l12_a = this._l23_a =
20885 this._l01_2a = this._l12_2a = this._l23_2a =
20886 this._point = 0;
20887 },
20888 lineEnd: function() {
20889 switch (this._point) {
20890 case 2: this._context.lineTo(this._x2, this._y2); break;
20891 case 3: this.point(this._x2, this._y2); break;
20892 }
20893 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
20894 this._line = 1 - this._line;
20895 },
20896 point: function(x, y) {
20897 x = +x, y = +y;
20898
20899 if (this._point) {
20900 var x23 = this._x2 - x,
20901 y23 = this._y2 - y;
20902 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
20903 }
20904
20905 switch (this._point) {
20906 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
20907 case 1: this._point = 2; break;
20908 case 2: this._point = 3; // proceed
20909 default: point(this, x, y); break;
20910 }
20911
20912 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
20913 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
20914 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
20915 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
20916 }
20917};
20918
20919/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
20920
20921 function catmullRom(context) {
20922 return alpha ? new CatmullRom(context, alpha) : new _cardinal__WEBPACK_IMPORTED_MODULE_1__["Cardinal"](context, 0);
20923 }
20924
20925 catmullRom.alpha = function(alpha) {
20926 return custom(+alpha);
20927 };
20928
20929 return catmullRom;
20930})(0.5));
20931
20932
20933/***/ }),
20934
20935/***/ "./node_modules/d3-shape/src/curve/catmullRomClosed.js":
20936/*!*************************************************************!*\
20937 !*** ./node_modules/d3-shape/src/curve/catmullRomClosed.js ***!
20938 \*************************************************************/
20939/*! exports provided: default */
20940/***/ (function(module, __webpack_exports__, __webpack_require__) {
20941
20942"use strict";
20943__webpack_require__.r(__webpack_exports__);
20944/* harmony import */ var _cardinalClosed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinalClosed */ "./node_modules/d3-shape/src/curve/cardinalClosed.js");
20945/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-shape/src/noop.js");
20946/* harmony import */ var _catmullRom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./catmullRom */ "./node_modules/d3-shape/src/curve/catmullRom.js");
20947
20948
20949
20950
20951function CatmullRomClosed(context, alpha) {
20952 this._context = context;
20953 this._alpha = alpha;
20954}
20955
20956CatmullRomClosed.prototype = {
20957 areaStart: _noop__WEBPACK_IMPORTED_MODULE_1__["default"],
20958 areaEnd: _noop__WEBPACK_IMPORTED_MODULE_1__["default"],
20959 lineStart: function() {
20960 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
20961 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
20962 this._l01_a = this._l12_a = this._l23_a =
20963 this._l01_2a = this._l12_2a = this._l23_2a =
20964 this._point = 0;
20965 },
20966 lineEnd: function() {
20967 switch (this._point) {
20968 case 1: {
20969 this._context.moveTo(this._x3, this._y3);
20970 this._context.closePath();
20971 break;
20972 }
20973 case 2: {
20974 this._context.lineTo(this._x3, this._y3);
20975 this._context.closePath();
20976 break;
20977 }
20978 case 3: {
20979 this.point(this._x3, this._y3);
20980 this.point(this._x4, this._y4);
20981 this.point(this._x5, this._y5);
20982 break;
20983 }
20984 }
20985 },
20986 point: function(x, y) {
20987 x = +x, y = +y;
20988
20989 if (this._point) {
20990 var x23 = this._x2 - x,
20991 y23 = this._y2 - y;
20992 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
20993 }
20994
20995 switch (this._point) {
20996 case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
20997 case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
20998 case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
20999 default: Object(_catmullRom__WEBPACK_IMPORTED_MODULE_2__["point"])(this, x, y); break;
21000 }
21001
21002 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
21003 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
21004 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
21005 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
21006 }
21007};
21008
21009/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
21010
21011 function catmullRom(context) {
21012 return alpha ? new CatmullRomClosed(context, alpha) : new _cardinalClosed__WEBPACK_IMPORTED_MODULE_0__["CardinalClosed"](context, 0);
21013 }
21014
21015 catmullRom.alpha = function(alpha) {
21016 return custom(+alpha);
21017 };
21018
21019 return catmullRom;
21020})(0.5));
21021
21022
21023/***/ }),
21024
21025/***/ "./node_modules/d3-shape/src/curve/catmullRomOpen.js":
21026/*!***********************************************************!*\
21027 !*** ./node_modules/d3-shape/src/curve/catmullRomOpen.js ***!
21028 \***********************************************************/
21029/*! exports provided: default */
21030/***/ (function(module, __webpack_exports__, __webpack_require__) {
21031
21032"use strict";
21033__webpack_require__.r(__webpack_exports__);
21034/* harmony import */ var _cardinalOpen__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinalOpen */ "./node_modules/d3-shape/src/curve/cardinalOpen.js");
21035/* harmony import */ var _catmullRom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./catmullRom */ "./node_modules/d3-shape/src/curve/catmullRom.js");
21036
21037
21038
21039function CatmullRomOpen(context, alpha) {
21040 this._context = context;
21041 this._alpha = alpha;
21042}
21043
21044CatmullRomOpen.prototype = {
21045 areaStart: function() {
21046 this._line = 0;
21047 },
21048 areaEnd: function() {
21049 this._line = NaN;
21050 },
21051 lineStart: function() {
21052 this._x0 = this._x1 = this._x2 =
21053 this._y0 = this._y1 = this._y2 = NaN;
21054 this._l01_a = this._l12_a = this._l23_a =
21055 this._l01_2a = this._l12_2a = this._l23_2a =
21056 this._point = 0;
21057 },
21058 lineEnd: function() {
21059 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
21060 this._line = 1 - this._line;
21061 },
21062 point: function(x, y) {
21063 x = +x, y = +y;
21064
21065 if (this._point) {
21066 var x23 = this._x2 - x,
21067 y23 = this._y2 - y;
21068 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
21069 }
21070
21071 switch (this._point) {
21072 case 0: this._point = 1; break;
21073 case 1: this._point = 2; break;
21074 case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
21075 case 3: this._point = 4; // proceed
21076 default: Object(_catmullRom__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
21077 }
21078
21079 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
21080 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
21081 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
21082 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
21083 }
21084};
21085
21086/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
21087
21088 function catmullRom(context) {
21089 return alpha ? new CatmullRomOpen(context, alpha) : new _cardinalOpen__WEBPACK_IMPORTED_MODULE_0__["CardinalOpen"](context, 0);
21090 }
21091
21092 catmullRom.alpha = function(alpha) {
21093 return custom(+alpha);
21094 };
21095
21096 return catmullRom;
21097})(0.5));
21098
21099
21100/***/ }),
21101
21102/***/ "./node_modules/d3-shape/src/curve/linear.js":
21103/*!***************************************************!*\
21104 !*** ./node_modules/d3-shape/src/curve/linear.js ***!
21105 \***************************************************/
21106/*! exports provided: default */
21107/***/ (function(module, __webpack_exports__, __webpack_require__) {
21108
21109"use strict";
21110__webpack_require__.r(__webpack_exports__);
21111function Linear(context) {
21112 this._context = context;
21113}
21114
21115Linear.prototype = {
21116 areaStart: function() {
21117 this._line = 0;
21118 },
21119 areaEnd: function() {
21120 this._line = NaN;
21121 },
21122 lineStart: function() {
21123 this._point = 0;
21124 },
21125 lineEnd: function() {
21126 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
21127 this._line = 1 - this._line;
21128 },
21129 point: function(x, y) {
21130 x = +x, y = +y;
21131 switch (this._point) {
21132 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
21133 case 1: this._point = 2; // proceed
21134 default: this._context.lineTo(x, y); break;
21135 }
21136 }
21137};
21138
21139/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21140 return new Linear(context);
21141});
21142
21143
21144/***/ }),
21145
21146/***/ "./node_modules/d3-shape/src/curve/linearClosed.js":
21147/*!*********************************************************!*\
21148 !*** ./node_modules/d3-shape/src/curve/linearClosed.js ***!
21149 \*********************************************************/
21150/*! exports provided: default */
21151/***/ (function(module, __webpack_exports__, __webpack_require__) {
21152
21153"use strict";
21154__webpack_require__.r(__webpack_exports__);
21155/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-shape/src/noop.js");
21156
21157
21158function LinearClosed(context) {
21159 this._context = context;
21160}
21161
21162LinearClosed.prototype = {
21163 areaStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
21164 areaEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
21165 lineStart: function() {
21166 this._point = 0;
21167 },
21168 lineEnd: function() {
21169 if (this._point) this._context.closePath();
21170 },
21171 point: function(x, y) {
21172 x = +x, y = +y;
21173 if (this._point) this._context.lineTo(x, y);
21174 else this._point = 1, this._context.moveTo(x, y);
21175 }
21176};
21177
21178/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21179 return new LinearClosed(context);
21180});
21181
21182
21183/***/ }),
21184
21185/***/ "./node_modules/d3-shape/src/curve/monotone.js":
21186/*!*****************************************************!*\
21187 !*** ./node_modules/d3-shape/src/curve/monotone.js ***!
21188 \*****************************************************/
21189/*! exports provided: monotoneX, monotoneY */
21190/***/ (function(module, __webpack_exports__, __webpack_require__) {
21191
21192"use strict";
21193__webpack_require__.r(__webpack_exports__);
21194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monotoneX", function() { return monotoneX; });
21195/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monotoneY", function() { return monotoneY; });
21196function sign(x) {
21197 return x < 0 ? -1 : 1;
21198}
21199
21200// Calculate the slopes of the tangents (Hermite-type interpolation) based on
21201// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
21202// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
21203// NOV(II), P. 443, 1990.
21204function slope3(that, x2, y2) {
21205 var h0 = that._x1 - that._x0,
21206 h1 = x2 - that._x1,
21207 s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
21208 s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
21209 p = (s0 * h1 + s1 * h0) / (h0 + h1);
21210 return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
21211}
21212
21213// Calculate a one-sided slope.
21214function slope2(that, t) {
21215 var h = that._x1 - that._x0;
21216 return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
21217}
21218
21219// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
21220// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
21221// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
21222function point(that, t0, t1) {
21223 var x0 = that._x0,
21224 y0 = that._y0,
21225 x1 = that._x1,
21226 y1 = that._y1,
21227 dx = (x1 - x0) / 3;
21228 that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
21229}
21230
21231function MonotoneX(context) {
21232 this._context = context;
21233}
21234
21235MonotoneX.prototype = {
21236 areaStart: function() {
21237 this._line = 0;
21238 },
21239 areaEnd: function() {
21240 this._line = NaN;
21241 },
21242 lineStart: function() {
21243 this._x0 = this._x1 =
21244 this._y0 = this._y1 =
21245 this._t0 = NaN;
21246 this._point = 0;
21247 },
21248 lineEnd: function() {
21249 switch (this._point) {
21250 case 2: this._context.lineTo(this._x1, this._y1); break;
21251 case 3: point(this, this._t0, slope2(this, this._t0)); break;
21252 }
21253 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
21254 this._line = 1 - this._line;
21255 },
21256 point: function(x, y) {
21257 var t1 = NaN;
21258
21259 x = +x, y = +y;
21260 if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
21261 switch (this._point) {
21262 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
21263 case 1: this._point = 2; break;
21264 case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
21265 default: point(this, this._t0, t1 = slope3(this, x, y)); break;
21266 }
21267
21268 this._x0 = this._x1, this._x1 = x;
21269 this._y0 = this._y1, this._y1 = y;
21270 this._t0 = t1;
21271 }
21272}
21273
21274function MonotoneY(context) {
21275 this._context = new ReflectContext(context);
21276}
21277
21278(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
21279 MonotoneX.prototype.point.call(this, y, x);
21280};
21281
21282function ReflectContext(context) {
21283 this._context = context;
21284}
21285
21286ReflectContext.prototype = {
21287 moveTo: function(x, y) { this._context.moveTo(y, x); },
21288 closePath: function() { this._context.closePath(); },
21289 lineTo: function(x, y) { this._context.lineTo(y, x); },
21290 bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
21291};
21292
21293function monotoneX(context) {
21294 return new MonotoneX(context);
21295}
21296
21297function monotoneY(context) {
21298 return new MonotoneY(context);
21299}
21300
21301
21302/***/ }),
21303
21304/***/ "./node_modules/d3-shape/src/curve/natural.js":
21305/*!****************************************************!*\
21306 !*** ./node_modules/d3-shape/src/curve/natural.js ***!
21307 \****************************************************/
21308/*! exports provided: default */
21309/***/ (function(module, __webpack_exports__, __webpack_require__) {
21310
21311"use strict";
21312__webpack_require__.r(__webpack_exports__);
21313function Natural(context) {
21314 this._context = context;
21315}
21316
21317Natural.prototype = {
21318 areaStart: function() {
21319 this._line = 0;
21320 },
21321 areaEnd: function() {
21322 this._line = NaN;
21323 },
21324 lineStart: function() {
21325 this._x = [];
21326 this._y = [];
21327 },
21328 lineEnd: function() {
21329 var x = this._x,
21330 y = this._y,
21331 n = x.length;
21332
21333 if (n) {
21334 this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
21335 if (n === 2) {
21336 this._context.lineTo(x[1], y[1]);
21337 } else {
21338 var px = controlPoints(x),
21339 py = controlPoints(y);
21340 for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
21341 this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
21342 }
21343 }
21344 }
21345
21346 if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
21347 this._line = 1 - this._line;
21348 this._x = this._y = null;
21349 },
21350 point: function(x, y) {
21351 this._x.push(+x);
21352 this._y.push(+y);
21353 }
21354};
21355
21356// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
21357function controlPoints(x) {
21358 var i,
21359 n = x.length - 1,
21360 m,
21361 a = new Array(n),
21362 b = new Array(n),
21363 r = new Array(n);
21364 a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
21365 for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
21366 a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
21367 for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
21368 a[n - 1] = r[n - 1] / b[n - 1];
21369 for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
21370 b[n - 1] = (x[n] + a[n - 1]) / 2;
21371 for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
21372 return [a, b];
21373}
21374
21375/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21376 return new Natural(context);
21377});
21378
21379
21380/***/ }),
21381
21382/***/ "./node_modules/d3-shape/src/curve/radial.js":
21383/*!***************************************************!*\
21384 !*** ./node_modules/d3-shape/src/curve/radial.js ***!
21385 \***************************************************/
21386/*! exports provided: curveRadialLinear, default */
21387/***/ (function(module, __webpack_exports__, __webpack_require__) {
21388
21389"use strict";
21390__webpack_require__.r(__webpack_exports__);
21391/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "curveRadialLinear", function() { return curveRadialLinear; });
21392/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return curveRadial; });
21393/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-shape/src/curve/linear.js");
21394
21395
21396var curveRadialLinear = curveRadial(_linear__WEBPACK_IMPORTED_MODULE_0__["default"]);
21397
21398function Radial(curve) {
21399 this._curve = curve;
21400}
21401
21402Radial.prototype = {
21403 areaStart: function() {
21404 this._curve.areaStart();
21405 },
21406 areaEnd: function() {
21407 this._curve.areaEnd();
21408 },
21409 lineStart: function() {
21410 this._curve.lineStart();
21411 },
21412 lineEnd: function() {
21413 this._curve.lineEnd();
21414 },
21415 point: function(a, r) {
21416 this._curve.point(r * Math.sin(a), r * -Math.cos(a));
21417 }
21418};
21419
21420function curveRadial(curve) {
21421
21422 function radial(context) {
21423 return new Radial(curve(context));
21424 }
21425
21426 radial._curve = curve;
21427
21428 return radial;
21429}
21430
21431
21432/***/ }),
21433
21434/***/ "./node_modules/d3-shape/src/curve/step.js":
21435/*!*************************************************!*\
21436 !*** ./node_modules/d3-shape/src/curve/step.js ***!
21437 \*************************************************/
21438/*! exports provided: default, stepBefore, stepAfter */
21439/***/ (function(module, __webpack_exports__, __webpack_require__) {
21440
21441"use strict";
21442__webpack_require__.r(__webpack_exports__);
21443/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stepBefore", function() { return stepBefore; });
21444/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stepAfter", function() { return stepAfter; });
21445function Step(context, t) {
21446 this._context = context;
21447 this._t = t;
21448}
21449
21450Step.prototype = {
21451 areaStart: function() {
21452 this._line = 0;
21453 },
21454 areaEnd: function() {
21455 this._line = NaN;
21456 },
21457 lineStart: function() {
21458 this._x = this._y = NaN;
21459 this._point = 0;
21460 },
21461 lineEnd: function() {
21462 if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
21463 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
21464 if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
21465 },
21466 point: function(x, y) {
21467 x = +x, y = +y;
21468 switch (this._point) {
21469 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
21470 case 1: this._point = 2; // proceed
21471 default: {
21472 if (this._t <= 0) {
21473 this._context.lineTo(this._x, y);
21474 this._context.lineTo(x, y);
21475 } else {
21476 var x1 = this._x * (1 - this._t) + x * this._t;
21477 this._context.lineTo(x1, this._y);
21478 this._context.lineTo(x1, y);
21479 }
21480 break;
21481 }
21482 }
21483 this._x = x, this._y = y;
21484 }
21485};
21486
21487/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21488 return new Step(context, 0.5);
21489});
21490
21491function stepBefore(context) {
21492 return new Step(context, 0);
21493}
21494
21495function stepAfter(context) {
21496 return new Step(context, 1);
21497}
21498
21499
21500/***/ }),
21501
21502/***/ "./node_modules/d3-shape/src/descending.js":
21503/*!*************************************************!*\
21504 !*** ./node_modules/d3-shape/src/descending.js ***!
21505 \*************************************************/
21506/*! exports provided: default */
21507/***/ (function(module, __webpack_exports__, __webpack_require__) {
21508
21509"use strict";
21510__webpack_require__.r(__webpack_exports__);
21511/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
21512 return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
21513});
21514
21515
21516/***/ }),
21517
21518/***/ "./node_modules/d3-shape/src/identity.js":
21519/*!***********************************************!*\
21520 !*** ./node_modules/d3-shape/src/identity.js ***!
21521 \***********************************************/
21522/*! exports provided: default */
21523/***/ (function(module, __webpack_exports__, __webpack_require__) {
21524
21525"use strict";
21526__webpack_require__.r(__webpack_exports__);
21527/* harmony default export */ __webpack_exports__["default"] = (function(d) {
21528 return d;
21529});
21530
21531
21532/***/ }),
21533
21534/***/ "./node_modules/d3-shape/src/index.js":
21535/*!********************************************!*\
21536 !*** ./node_modules/d3-shape/src/index.js ***!
21537 \********************************************/
21538/*! exports provided: arc, area, line, pie, areaRadial, radialArea, lineRadial, radialLine, pointRadial, linkHorizontal, linkVertical, linkRadial, symbol, symbols, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye, curveBasisClosed, curveBasisOpen, curveBasis, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, stack, stackOffsetExpand, stackOffsetDiverging, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderAscending, stackOrderDescending, stackOrderInsideOut, stackOrderNone, stackOrderReverse */
21539/***/ (function(module, __webpack_exports__, __webpack_require__) {
21540
21541"use strict";
21542__webpack_require__.r(__webpack_exports__);
21543/* harmony import */ var _arc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arc */ "./node_modules/d3-shape/src/arc.js");
21544/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arc", function() { return _arc__WEBPACK_IMPORTED_MODULE_0__["default"]; });
21545
21546/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area */ "./node_modules/d3-shape/src/area.js");
21547/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "area", function() { return _area__WEBPACK_IMPORTED_MODULE_1__["default"]; });
21548
21549/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line */ "./node_modules/d3-shape/src/line.js");
21550/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "line", function() { return _line__WEBPACK_IMPORTED_MODULE_2__["default"]; });
21551
21552/* harmony import */ var _pie__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pie */ "./node_modules/d3-shape/src/pie.js");
21553/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pie", function() { return _pie__WEBPACK_IMPORTED_MODULE_3__["default"]; });
21554
21555/* harmony import */ var _areaRadial__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./areaRadial */ "./node_modules/d3-shape/src/areaRadial.js");
21556/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "areaRadial", function() { return _areaRadial__WEBPACK_IMPORTED_MODULE_4__["default"]; });
21557
21558/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialArea", function() { return _areaRadial__WEBPACK_IMPORTED_MODULE_4__["default"]; });
21559
21560/* harmony import */ var _lineRadial__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lineRadial */ "./node_modules/d3-shape/src/lineRadial.js");
21561/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return _lineRadial__WEBPACK_IMPORTED_MODULE_5__["default"]; });
21562
21563/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialLine", function() { return _lineRadial__WEBPACK_IMPORTED_MODULE_5__["default"]; });
21564
21565/* harmony import */ var _pointRadial__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pointRadial */ "./node_modules/d3-shape/src/pointRadial.js");
21566/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pointRadial", function() { return _pointRadial__WEBPACK_IMPORTED_MODULE_6__["default"]; });
21567
21568/* harmony import */ var _link_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./link/index */ "./node_modules/d3-shape/src/link/index.js");
21569/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return _link_index__WEBPACK_IMPORTED_MODULE_7__["linkHorizontal"]; });
21570
21571/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return _link_index__WEBPACK_IMPORTED_MODULE_7__["linkVertical"]; });
21572
21573/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return _link_index__WEBPACK_IMPORTED_MODULE_7__["linkRadial"]; });
21574
21575/* harmony import */ var _symbol__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./symbol */ "./node_modules/d3-shape/src/symbol.js");
21576/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbol", function() { return _symbol__WEBPACK_IMPORTED_MODULE_8__["default"]; });
21577
21578/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return _symbol__WEBPACK_IMPORTED_MODULE_8__["symbols"]; });
21579
21580/* harmony import */ var _symbol_circle__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./symbol/circle */ "./node_modules/d3-shape/src/symbol/circle.js");
21581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCircle", function() { return _symbol_circle__WEBPACK_IMPORTED_MODULE_9__["default"]; });
21582
21583/* harmony import */ var _symbol_cross__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./symbol/cross */ "./node_modules/d3-shape/src/symbol/cross.js");
21584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCross", function() { return _symbol_cross__WEBPACK_IMPORTED_MODULE_10__["default"]; });
21585
21586/* harmony import */ var _symbol_diamond__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./symbol/diamond */ "./node_modules/d3-shape/src/symbol/diamond.js");
21587/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolDiamond", function() { return _symbol_diamond__WEBPACK_IMPORTED_MODULE_11__["default"]; });
21588
21589/* harmony import */ var _symbol_square__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./symbol/square */ "./node_modules/d3-shape/src/symbol/square.js");
21590/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolSquare", function() { return _symbol_square__WEBPACK_IMPORTED_MODULE_12__["default"]; });
21591
21592/* harmony import */ var _symbol_star__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./symbol/star */ "./node_modules/d3-shape/src/symbol/star.js");
21593/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolStar", function() { return _symbol_star__WEBPACK_IMPORTED_MODULE_13__["default"]; });
21594
21595/* harmony import */ var _symbol_triangle__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./symbol/triangle */ "./node_modules/d3-shape/src/symbol/triangle.js");
21596/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolTriangle", function() { return _symbol_triangle__WEBPACK_IMPORTED_MODULE_14__["default"]; });
21597
21598/* harmony import */ var _symbol_wye__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./symbol/wye */ "./node_modules/d3-shape/src/symbol/wye.js");
21599/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolWye", function() { return _symbol_wye__WEBPACK_IMPORTED_MODULE_15__["default"]; });
21600
21601/* harmony import */ var _curve_basisClosed__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./curve/basisClosed */ "./node_modules/d3-shape/src/curve/basisClosed.js");
21602/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisClosed", function() { return _curve_basisClosed__WEBPACK_IMPORTED_MODULE_16__["default"]; });
21603
21604/* harmony import */ var _curve_basisOpen__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./curve/basisOpen */ "./node_modules/d3-shape/src/curve/basisOpen.js");
21605/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisOpen", function() { return _curve_basisOpen__WEBPACK_IMPORTED_MODULE_17__["default"]; });
21606
21607/* harmony import */ var _curve_basis__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./curve/basis */ "./node_modules/d3-shape/src/curve/basis.js");
21608/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasis", function() { return _curve_basis__WEBPACK_IMPORTED_MODULE_18__["default"]; });
21609
21610/* harmony import */ var _curve_bundle__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./curve/bundle */ "./node_modules/d3-shape/src/curve/bundle.js");
21611/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBundle", function() { return _curve_bundle__WEBPACK_IMPORTED_MODULE_19__["default"]; });
21612
21613/* harmony import */ var _curve_cardinalClosed__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./curve/cardinalClosed */ "./node_modules/d3-shape/src/curve/cardinalClosed.js");
21614/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalClosed", function() { return _curve_cardinalClosed__WEBPACK_IMPORTED_MODULE_20__["default"]; });
21615
21616/* harmony import */ var _curve_cardinalOpen__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./curve/cardinalOpen */ "./node_modules/d3-shape/src/curve/cardinalOpen.js");
21617/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalOpen", function() { return _curve_cardinalOpen__WEBPACK_IMPORTED_MODULE_21__["default"]; });
21618
21619/* harmony import */ var _curve_cardinal__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./curve/cardinal */ "./node_modules/d3-shape/src/curve/cardinal.js");
21620/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinal", function() { return _curve_cardinal__WEBPACK_IMPORTED_MODULE_22__["default"]; });
21621
21622/* harmony import */ var _curve_catmullRomClosed__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./curve/catmullRomClosed */ "./node_modules/d3-shape/src/curve/catmullRomClosed.js");
21623/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomClosed", function() { return _curve_catmullRomClosed__WEBPACK_IMPORTED_MODULE_23__["default"]; });
21624
21625/* harmony import */ var _curve_catmullRomOpen__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./curve/catmullRomOpen */ "./node_modules/d3-shape/src/curve/catmullRomOpen.js");
21626/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomOpen", function() { return _curve_catmullRomOpen__WEBPACK_IMPORTED_MODULE_24__["default"]; });
21627
21628/* harmony import */ var _curve_catmullRom__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./curve/catmullRom */ "./node_modules/d3-shape/src/curve/catmullRom.js");
21629/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRom", function() { return _curve_catmullRom__WEBPACK_IMPORTED_MODULE_25__["default"]; });
21630
21631/* harmony import */ var _curve_linearClosed__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./curve/linearClosed */ "./node_modules/d3-shape/src/curve/linearClosed.js");
21632/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinearClosed", function() { return _curve_linearClosed__WEBPACK_IMPORTED_MODULE_26__["default"]; });
21633
21634/* harmony import */ var _curve_linear__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./curve/linear */ "./node_modules/d3-shape/src/curve/linear.js");
21635/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinear", function() { return _curve_linear__WEBPACK_IMPORTED_MODULE_27__["default"]; });
21636
21637/* harmony import */ var _curve_monotone__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./curve/monotone */ "./node_modules/d3-shape/src/curve/monotone.js");
21638/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneX", function() { return _curve_monotone__WEBPACK_IMPORTED_MODULE_28__["monotoneX"]; });
21639
21640/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneY", function() { return _curve_monotone__WEBPACK_IMPORTED_MODULE_28__["monotoneY"]; });
21641
21642/* harmony import */ var _curve_natural__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./curve/natural */ "./node_modules/d3-shape/src/curve/natural.js");
21643/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveNatural", function() { return _curve_natural__WEBPACK_IMPORTED_MODULE_29__["default"]; });
21644
21645/* harmony import */ var _curve_step__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./curve/step */ "./node_modules/d3-shape/src/curve/step.js");
21646/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStep", function() { return _curve_step__WEBPACK_IMPORTED_MODULE_30__["default"]; });
21647
21648/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepAfter", function() { return _curve_step__WEBPACK_IMPORTED_MODULE_30__["stepAfter"]; });
21649
21650/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepBefore", function() { return _curve_step__WEBPACK_IMPORTED_MODULE_30__["stepBefore"]; });
21651
21652/* harmony import */ var _stack__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./stack */ "./node_modules/d3-shape/src/stack.js");
21653/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stack", function() { return _stack__WEBPACK_IMPORTED_MODULE_31__["default"]; });
21654
21655/* harmony import */ var _offset_expand__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./offset/expand */ "./node_modules/d3-shape/src/offset/expand.js");
21656/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetExpand", function() { return _offset_expand__WEBPACK_IMPORTED_MODULE_32__["default"]; });
21657
21658/* harmony import */ var _offset_diverging__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./offset/diverging */ "./node_modules/d3-shape/src/offset/diverging.js");
21659/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetDiverging", function() { return _offset_diverging__WEBPACK_IMPORTED_MODULE_33__["default"]; });
21660
21661/* harmony import */ var _offset_none__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./offset/none */ "./node_modules/d3-shape/src/offset/none.js");
21662/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetNone", function() { return _offset_none__WEBPACK_IMPORTED_MODULE_34__["default"]; });
21663
21664/* harmony import */ var _offset_silhouette__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./offset/silhouette */ "./node_modules/d3-shape/src/offset/silhouette.js");
21665/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetSilhouette", function() { return _offset_silhouette__WEBPACK_IMPORTED_MODULE_35__["default"]; });
21666
21667/* harmony import */ var _offset_wiggle__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./offset/wiggle */ "./node_modules/d3-shape/src/offset/wiggle.js");
21668/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetWiggle", function() { return _offset_wiggle__WEBPACK_IMPORTED_MODULE_36__["default"]; });
21669
21670/* harmony import */ var _order_ascending__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./order/ascending */ "./node_modules/d3-shape/src/order/ascending.js");
21671/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderAscending", function() { return _order_ascending__WEBPACK_IMPORTED_MODULE_37__["default"]; });
21672
21673/* harmony import */ var _order_descending__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./order/descending */ "./node_modules/d3-shape/src/order/descending.js");
21674/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderDescending", function() { return _order_descending__WEBPACK_IMPORTED_MODULE_38__["default"]; });
21675
21676/* harmony import */ var _order_insideOut__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./order/insideOut */ "./node_modules/d3-shape/src/order/insideOut.js");
21677/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderInsideOut", function() { return _order_insideOut__WEBPACK_IMPORTED_MODULE_39__["default"]; });
21678
21679/* harmony import */ var _order_none__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./order/none */ "./node_modules/d3-shape/src/order/none.js");
21680/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderNone", function() { return _order_none__WEBPACK_IMPORTED_MODULE_40__["default"]; });
21681
21682/* harmony import */ var _order_reverse__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./order/reverse */ "./node_modules/d3-shape/src/order/reverse.js");
21683/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderReverse", function() { return _order_reverse__WEBPACK_IMPORTED_MODULE_41__["default"]; });
21684
21685
21686
21687
21688
21689 // Note: radialArea is deprecated!
21690 // Note: radialLine is deprecated!
21691
21692
21693
21694
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723
21724
21725
21726
21727
21728
21729
21730
21731
21732/***/ }),
21733
21734/***/ "./node_modules/d3-shape/src/line.js":
21735/*!*******************************************!*\
21736 !*** ./node_modules/d3-shape/src/line.js ***!
21737 \*******************************************/
21738/*! exports provided: default */
21739/***/ (function(module, __webpack_exports__, __webpack_require__) {
21740
21741"use strict";
21742__webpack_require__.r(__webpack_exports__);
21743/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
21744/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
21745/* harmony import */ var _curve_linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curve/linear */ "./node_modules/d3-shape/src/curve/linear.js");
21746/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./point */ "./node_modules/d3-shape/src/point.js");
21747
21748
21749
21750
21751
21752/* harmony default export */ __webpack_exports__["default"] = (function() {
21753 var x = _point__WEBPACK_IMPORTED_MODULE_3__["x"],
21754 y = _point__WEBPACK_IMPORTED_MODULE_3__["y"],
21755 defined = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(true),
21756 context = null,
21757 curve = _curve_linear__WEBPACK_IMPORTED_MODULE_2__["default"],
21758 output = null;
21759
21760 function line(data) {
21761 var i,
21762 n = data.length,
21763 d,
21764 defined0 = false,
21765 buffer;
21766
21767 if (context == null) output = curve(buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])());
21768
21769 for (i = 0; i <= n; ++i) {
21770 if (!(i < n && defined(d = data[i], i, data)) === defined0) {
21771 if (defined0 = !defined0) output.lineStart();
21772 else output.lineEnd();
21773 }
21774 if (defined0) output.point(+x(d, i, data), +y(d, i, data));
21775 }
21776
21777 if (buffer) return output = null, buffer + "" || null;
21778 }
21779
21780 line.x = function(_) {
21781 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), line) : x;
21782 };
21783
21784 line.y = function(_) {
21785 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), line) : y;
21786 };
21787
21788 line.defined = function(_) {
21789 return arguments.length ? (defined = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), line) : defined;
21790 };
21791
21792 line.curve = function(_) {
21793 return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
21794 };
21795
21796 line.context = function(_) {
21797 return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
21798 };
21799
21800 return line;
21801});
21802
21803
21804/***/ }),
21805
21806/***/ "./node_modules/d3-shape/src/lineRadial.js":
21807/*!*************************************************!*\
21808 !*** ./node_modules/d3-shape/src/lineRadial.js ***!
21809 \*************************************************/
21810/*! exports provided: lineRadial, default */
21811/***/ (function(module, __webpack_exports__, __webpack_require__) {
21812
21813"use strict";
21814__webpack_require__.r(__webpack_exports__);
21815/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return lineRadial; });
21816/* harmony import */ var _curve_radial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial */ "./node_modules/d3-shape/src/curve/radial.js");
21817/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./line */ "./node_modules/d3-shape/src/line.js");
21818
21819
21820
21821function lineRadial(l) {
21822 var c = l.curve;
21823
21824 l.angle = l.x, delete l.x;
21825 l.radius = l.y, delete l.y;
21826
21827 l.curve = function(_) {
21828 return arguments.length ? c(Object(_curve_radial__WEBPACK_IMPORTED_MODULE_0__["default"])(_)) : c()._curve;
21829 };
21830
21831 return l;
21832}
21833
21834/* harmony default export */ __webpack_exports__["default"] = (function() {
21835 return lineRadial(Object(_line__WEBPACK_IMPORTED_MODULE_1__["default"])().curve(_curve_radial__WEBPACK_IMPORTED_MODULE_0__["curveRadialLinear"]));
21836});
21837
21838
21839/***/ }),
21840
21841/***/ "./node_modules/d3-shape/src/link/index.js":
21842/*!*************************************************!*\
21843 !*** ./node_modules/d3-shape/src/link/index.js ***!
21844 \*************************************************/
21845/*! exports provided: linkHorizontal, linkVertical, linkRadial */
21846/***/ (function(module, __webpack_exports__, __webpack_require__) {
21847
21848"use strict";
21849__webpack_require__.r(__webpack_exports__);
21850/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return linkHorizontal; });
21851/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return linkVertical; });
21852/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return linkRadial; });
21853/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
21854/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../array */ "./node_modules/d3-shape/src/array.js");
21855/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-shape/src/constant.js");
21856/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../point */ "./node_modules/d3-shape/src/point.js");
21857/* harmony import */ var _pointRadial__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../pointRadial */ "./node_modules/d3-shape/src/pointRadial.js");
21858
21859
21860
21861
21862
21863
21864function linkSource(d) {
21865 return d.source;
21866}
21867
21868function linkTarget(d) {
21869 return d.target;
21870}
21871
21872function link(curve) {
21873 var source = linkSource,
21874 target = linkTarget,
21875 x = _point__WEBPACK_IMPORTED_MODULE_3__["x"],
21876 y = _point__WEBPACK_IMPORTED_MODULE_3__["y"],
21877 context = null;
21878
21879 function link() {
21880 var buffer, argv = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);
21881 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
21882 curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));
21883 if (buffer) return context = null, buffer + "" || null;
21884 }
21885
21886 link.source = function(_) {
21887 return arguments.length ? (source = _, link) : source;
21888 };
21889
21890 link.target = function(_) {
21891 return arguments.length ? (target = _, link) : target;
21892 };
21893
21894 link.x = function(_) {
21895 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), link) : x;
21896 };
21897
21898 link.y = function(_) {
21899 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), link) : y;
21900 };
21901
21902 link.context = function(_) {
21903 return arguments.length ? ((context = _ == null ? null : _), link) : context;
21904 };
21905
21906 return link;
21907}
21908
21909function curveHorizontal(context, x0, y0, x1, y1) {
21910 context.moveTo(x0, y0);
21911 context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);
21912}
21913
21914function curveVertical(context, x0, y0, x1, y1) {
21915 context.moveTo(x0, y0);
21916 context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);
21917}
21918
21919function curveRadial(context, x0, y0, x1, y1) {
21920 var p0 = Object(_pointRadial__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, y0),
21921 p1 = Object(_pointRadial__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, y0 = (y0 + y1) / 2),
21922 p2 = Object(_pointRadial__WEBPACK_IMPORTED_MODULE_4__["default"])(x1, y0),
21923 p3 = Object(_pointRadial__WEBPACK_IMPORTED_MODULE_4__["default"])(x1, y1);
21924 context.moveTo(p0[0], p0[1]);
21925 context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);
21926}
21927
21928function linkHorizontal() {
21929 return link(curveHorizontal);
21930}
21931
21932function linkVertical() {
21933 return link(curveVertical);
21934}
21935
21936function linkRadial() {
21937 var l = link(curveRadial);
21938 l.angle = l.x, delete l.x;
21939 l.radius = l.y, delete l.y;
21940 return l;
21941}
21942
21943
21944/***/ }),
21945
21946/***/ "./node_modules/d3-shape/src/math.js":
21947/*!*******************************************!*\
21948 !*** ./node_modules/d3-shape/src/math.js ***!
21949 \*******************************************/
21950/*! exports provided: abs, atan2, cos, max, min, sin, sqrt, epsilon, pi, halfPi, tau, acos, asin */
21951/***/ (function(module, __webpack_exports__, __webpack_require__) {
21952
21953"use strict";
21954__webpack_require__.r(__webpack_exports__);
21955/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "abs", function() { return abs; });
21956/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan2", function() { return atan2; });
21957/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
21958/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; });
21959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; });
21960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
21961/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
21962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
21963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
21964/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
21965/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
21966/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "acos", function() { return acos; });
21967/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asin", function() { return asin; });
21968var abs = Math.abs;
21969var atan2 = Math.atan2;
21970var cos = Math.cos;
21971var max = Math.max;
21972var min = Math.min;
21973var sin = Math.sin;
21974var sqrt = Math.sqrt;
21975
21976var epsilon = 1e-12;
21977var pi = Math.PI;
21978var halfPi = pi / 2;
21979var tau = 2 * pi;
21980
21981function acos(x) {
21982 return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
21983}
21984
21985function asin(x) {
21986 return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
21987}
21988
21989
21990/***/ }),
21991
21992/***/ "./node_modules/d3-shape/src/noop.js":
21993/*!*******************************************!*\
21994 !*** ./node_modules/d3-shape/src/noop.js ***!
21995 \*******************************************/
21996/*! exports provided: default */
21997/***/ (function(module, __webpack_exports__, __webpack_require__) {
21998
21999"use strict";
22000__webpack_require__.r(__webpack_exports__);
22001/* harmony default export */ __webpack_exports__["default"] = (function() {});
22002
22003
22004/***/ }),
22005
22006/***/ "./node_modules/d3-shape/src/offset/diverging.js":
22007/*!*******************************************************!*\
22008 !*** ./node_modules/d3-shape/src/offset/diverging.js ***!
22009 \*******************************************************/
22010/*! exports provided: default */
22011/***/ (function(module, __webpack_exports__, __webpack_require__) {
22012
22013"use strict";
22014__webpack_require__.r(__webpack_exports__);
22015/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22016 if (!((n = series.length) > 1)) return;
22017 for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
22018 for (yp = yn = 0, i = 0; i < n; ++i) {
22019 if ((dy = (d = series[order[i]][j])[1] - d[0]) >= 0) {
22020 d[0] = yp, d[1] = yp += dy;
22021 } else if (dy < 0) {
22022 d[1] = yn, d[0] = yn += dy;
22023 } else {
22024 d[0] = yp;
22025 }
22026 }
22027 }
22028});
22029
22030
22031/***/ }),
22032
22033/***/ "./node_modules/d3-shape/src/offset/expand.js":
22034/*!****************************************************!*\
22035 !*** ./node_modules/d3-shape/src/offset/expand.js ***!
22036 \****************************************************/
22037/*! exports provided: default */
22038/***/ (function(module, __webpack_exports__, __webpack_require__) {
22039
22040"use strict";
22041__webpack_require__.r(__webpack_exports__);
22042/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/offset/none.js");
22043
22044
22045/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22046 if (!((n = series.length) > 0)) return;
22047 for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
22048 for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
22049 if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
22050 }
22051 Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
22052});
22053
22054
22055/***/ }),
22056
22057/***/ "./node_modules/d3-shape/src/offset/none.js":
22058/*!**************************************************!*\
22059 !*** ./node_modules/d3-shape/src/offset/none.js ***!
22060 \**************************************************/
22061/*! exports provided: default */
22062/***/ (function(module, __webpack_exports__, __webpack_require__) {
22063
22064"use strict";
22065__webpack_require__.r(__webpack_exports__);
22066/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22067 if (!((n = series.length) > 1)) return;
22068 for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
22069 s0 = s1, s1 = series[order[i]];
22070 for (j = 0; j < m; ++j) {
22071 s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
22072 }
22073 }
22074});
22075
22076
22077/***/ }),
22078
22079/***/ "./node_modules/d3-shape/src/offset/silhouette.js":
22080/*!********************************************************!*\
22081 !*** ./node_modules/d3-shape/src/offset/silhouette.js ***!
22082 \********************************************************/
22083/*! exports provided: default */
22084/***/ (function(module, __webpack_exports__, __webpack_require__) {
22085
22086"use strict";
22087__webpack_require__.r(__webpack_exports__);
22088/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/offset/none.js");
22089
22090
22091/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22092 if (!((n = series.length) > 0)) return;
22093 for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
22094 for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
22095 s0[j][1] += s0[j][0] = -y / 2;
22096 }
22097 Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
22098});
22099
22100
22101/***/ }),
22102
22103/***/ "./node_modules/d3-shape/src/offset/wiggle.js":
22104/*!****************************************************!*\
22105 !*** ./node_modules/d3-shape/src/offset/wiggle.js ***!
22106 \****************************************************/
22107/*! exports provided: default */
22108/***/ (function(module, __webpack_exports__, __webpack_require__) {
22109
22110"use strict";
22111__webpack_require__.r(__webpack_exports__);
22112/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/offset/none.js");
22113
22114
22115/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22116 if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
22117 for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
22118 for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
22119 var si = series[order[i]],
22120 sij0 = si[j][1] || 0,
22121 sij1 = si[j - 1][1] || 0,
22122 s3 = (sij0 - sij1) / 2;
22123 for (var k = 0; k < i; ++k) {
22124 var sk = series[order[k]],
22125 skj0 = sk[j][1] || 0,
22126 skj1 = sk[j - 1][1] || 0;
22127 s3 += skj0 - skj1;
22128 }
22129 s1 += sij0, s2 += s3 * sij0;
22130 }
22131 s0[j - 1][1] += s0[j - 1][0] = y;
22132 if (s1) y -= s2 / s1;
22133 }
22134 s0[j - 1][1] += s0[j - 1][0] = y;
22135 Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
22136});
22137
22138
22139/***/ }),
22140
22141/***/ "./node_modules/d3-shape/src/order/ascending.js":
22142/*!******************************************************!*\
22143 !*** ./node_modules/d3-shape/src/order/ascending.js ***!
22144 \******************************************************/
22145/*! exports provided: default, sum */
22146/***/ (function(module, __webpack_exports__, __webpack_require__) {
22147
22148"use strict";
22149__webpack_require__.r(__webpack_exports__);
22150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return sum; });
22151/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/order/none.js");
22152
22153
22154/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22155 var sums = series.map(sum);
22156 return Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series).sort(function(a, b) { return sums[a] - sums[b]; });
22157});
22158
22159function sum(series) {
22160 var s = 0, i = -1, n = series.length, v;
22161 while (++i < n) if (v = +series[i][1]) s += v;
22162 return s;
22163}
22164
22165
22166/***/ }),
22167
22168/***/ "./node_modules/d3-shape/src/order/descending.js":
22169/*!*******************************************************!*\
22170 !*** ./node_modules/d3-shape/src/order/descending.js ***!
22171 \*******************************************************/
22172/*! exports provided: default */
22173/***/ (function(module, __webpack_exports__, __webpack_require__) {
22174
22175"use strict";
22176__webpack_require__.r(__webpack_exports__);
22177/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-shape/src/order/ascending.js");
22178
22179
22180/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22181 return Object(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"])(series).reverse();
22182});
22183
22184
22185/***/ }),
22186
22187/***/ "./node_modules/d3-shape/src/order/insideOut.js":
22188/*!******************************************************!*\
22189 !*** ./node_modules/d3-shape/src/order/insideOut.js ***!
22190 \******************************************************/
22191/*! exports provided: default */
22192/***/ (function(module, __webpack_exports__, __webpack_require__) {
22193
22194"use strict";
22195__webpack_require__.r(__webpack_exports__);
22196/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/order/none.js");
22197/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-shape/src/order/ascending.js");
22198
22199
22200
22201/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22202 var n = series.length,
22203 i,
22204 j,
22205 sums = series.map(_ascending__WEBPACK_IMPORTED_MODULE_1__["sum"]),
22206 order = Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series).sort(function(a, b) { return sums[b] - sums[a]; }),
22207 top = 0,
22208 bottom = 0,
22209 tops = [],
22210 bottoms = [];
22211
22212 for (i = 0; i < n; ++i) {
22213 j = order[i];
22214 if (top < bottom) {
22215 top += sums[j];
22216 tops.push(j);
22217 } else {
22218 bottom += sums[j];
22219 bottoms.push(j);
22220 }
22221 }
22222
22223 return bottoms.reverse().concat(tops);
22224});
22225
22226
22227/***/ }),
22228
22229/***/ "./node_modules/d3-shape/src/order/none.js":
22230/*!*************************************************!*\
22231 !*** ./node_modules/d3-shape/src/order/none.js ***!
22232 \*************************************************/
22233/*! exports provided: default */
22234/***/ (function(module, __webpack_exports__, __webpack_require__) {
22235
22236"use strict";
22237__webpack_require__.r(__webpack_exports__);
22238/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22239 var n = series.length, o = new Array(n);
22240 while (--n >= 0) o[n] = n;
22241 return o;
22242});
22243
22244
22245/***/ }),
22246
22247/***/ "./node_modules/d3-shape/src/order/reverse.js":
22248/*!****************************************************!*\
22249 !*** ./node_modules/d3-shape/src/order/reverse.js ***!
22250 \****************************************************/
22251/*! exports provided: default */
22252/***/ (function(module, __webpack_exports__, __webpack_require__) {
22253
22254"use strict";
22255__webpack_require__.r(__webpack_exports__);
22256/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/order/none.js");
22257
22258
22259/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22260 return Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series).reverse();
22261});
22262
22263
22264/***/ }),
22265
22266/***/ "./node_modules/d3-shape/src/pie.js":
22267/*!******************************************!*\
22268 !*** ./node_modules/d3-shape/src/pie.js ***!
22269 \******************************************/
22270/*! exports provided: default */
22271/***/ (function(module, __webpack_exports__, __webpack_require__) {
22272
22273"use strict";
22274__webpack_require__.r(__webpack_exports__);
22275/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
22276/* harmony import */ var _descending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./descending */ "./node_modules/d3-shape/src/descending.js");
22277/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-shape/src/identity.js");
22278/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./math */ "./node_modules/d3-shape/src/math.js");
22279
22280
22281
22282
22283
22284/* harmony default export */ __webpack_exports__["default"] = (function() {
22285 var value = _identity__WEBPACK_IMPORTED_MODULE_2__["default"],
22286 sortValues = _descending__WEBPACK_IMPORTED_MODULE_1__["default"],
22287 sort = null,
22288 startAngle = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0),
22289 endAngle = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(_math__WEBPACK_IMPORTED_MODULE_3__["tau"]),
22290 padAngle = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0);
22291
22292 function pie(data) {
22293 var i,
22294 n = data.length,
22295 j,
22296 k,
22297 sum = 0,
22298 index = new Array(n),
22299 arcs = new Array(n),
22300 a0 = +startAngle.apply(this, arguments),
22301 da = Math.min(_math__WEBPACK_IMPORTED_MODULE_3__["tau"], Math.max(-_math__WEBPACK_IMPORTED_MODULE_3__["tau"], endAngle.apply(this, arguments) - a0)),
22302 a1,
22303 p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
22304 pa = p * (da < 0 ? -1 : 1),
22305 v;
22306
22307 for (i = 0; i < n; ++i) {
22308 if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
22309 sum += v;
22310 }
22311 }
22312
22313 // Optionally sort the arcs by previously-computed values or by data.
22314 if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
22315 else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
22316
22317 // Compute the arcs! They are stored in the original data's order.
22318 for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
22319 j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
22320 data: data[j],
22321 index: i,
22322 value: v,
22323 startAngle: a0,
22324 endAngle: a1,
22325 padAngle: p
22326 };
22327 }
22328
22329 return arcs;
22330 }
22331
22332 pie.value = function(_) {
22333 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : value;
22334 };
22335
22336 pie.sortValues = function(_) {
22337 return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
22338 };
22339
22340 pie.sort = function(_) {
22341 return arguments.length ? (sort = _, sortValues = null, pie) : sort;
22342 };
22343
22344 pie.startAngle = function(_) {
22345 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : startAngle;
22346 };
22347
22348 pie.endAngle = function(_) {
22349 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : endAngle;
22350 };
22351
22352 pie.padAngle = function(_) {
22353 return arguments.length ? (padAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : padAngle;
22354 };
22355
22356 return pie;
22357});
22358
22359
22360/***/ }),
22361
22362/***/ "./node_modules/d3-shape/src/point.js":
22363/*!********************************************!*\
22364 !*** ./node_modules/d3-shape/src/point.js ***!
22365 \********************************************/
22366/*! exports provided: x, y */
22367/***/ (function(module, __webpack_exports__, __webpack_require__) {
22368
22369"use strict";
22370__webpack_require__.r(__webpack_exports__);
22371/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
22372/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
22373function x(p) {
22374 return p[0];
22375}
22376
22377function y(p) {
22378 return p[1];
22379}
22380
22381
22382/***/ }),
22383
22384/***/ "./node_modules/d3-shape/src/pointRadial.js":
22385/*!**************************************************!*\
22386 !*** ./node_modules/d3-shape/src/pointRadial.js ***!
22387 \**************************************************/
22388/*! exports provided: default */
22389/***/ (function(module, __webpack_exports__, __webpack_require__) {
22390
22391"use strict";
22392__webpack_require__.r(__webpack_exports__);
22393/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
22394 return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
22395});
22396
22397
22398/***/ }),
22399
22400/***/ "./node_modules/d3-shape/src/stack.js":
22401/*!********************************************!*\
22402 !*** ./node_modules/d3-shape/src/stack.js ***!
22403 \********************************************/
22404/*! exports provided: default */
22405/***/ (function(module, __webpack_exports__, __webpack_require__) {
22406
22407"use strict";
22408__webpack_require__.r(__webpack_exports__);
22409/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-shape/src/array.js");
22410/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
22411/* harmony import */ var _offset_none__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset/none */ "./node_modules/d3-shape/src/offset/none.js");
22412/* harmony import */ var _order_none__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./order/none */ "./node_modules/d3-shape/src/order/none.js");
22413
22414
22415
22416
22417
22418function stackValue(d, key) {
22419 return d[key];
22420}
22421
22422/* harmony default export */ __webpack_exports__["default"] = (function() {
22423 var keys = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])([]),
22424 order = _order_none__WEBPACK_IMPORTED_MODULE_3__["default"],
22425 offset = _offset_none__WEBPACK_IMPORTED_MODULE_2__["default"],
22426 value = stackValue;
22427
22428 function stack(data) {
22429 var kz = keys.apply(this, arguments),
22430 i,
22431 m = data.length,
22432 n = kz.length,
22433 sz = new Array(n),
22434 oz;
22435
22436 for (i = 0; i < n; ++i) {
22437 for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {
22438 si[j] = sij = [0, +value(data[j], ki, j, data)];
22439 sij.data = data[j];
22440 }
22441 si.key = ki;
22442 }
22443
22444 for (i = 0, oz = order(sz); i < n; ++i) {
22445 sz[oz[i]].index = i;
22446 }
22447
22448 offset(sz, oz);
22449 return sz;
22450 }
22451
22452 stack.keys = function(_) {
22453 return arguments.length ? (keys = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(_array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_)), stack) : keys;
22454 };
22455
22456 stack.value = function(_) {
22457 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), stack) : value;
22458 };
22459
22460 stack.order = function(_) {
22461 return arguments.length ? (order = _ == null ? _order_none__WEBPACK_IMPORTED_MODULE_3__["default"] : typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(_array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_)), stack) : order;
22462 };
22463
22464 stack.offset = function(_) {
22465 return arguments.length ? (offset = _ == null ? _offset_none__WEBPACK_IMPORTED_MODULE_2__["default"] : _, stack) : offset;
22466 };
22467
22468 return stack;
22469});
22470
22471
22472/***/ }),
22473
22474/***/ "./node_modules/d3-shape/src/symbol.js":
22475/*!*********************************************!*\
22476 !*** ./node_modules/d3-shape/src/symbol.js ***!
22477 \*********************************************/
22478/*! exports provided: symbols, default */
22479/***/ (function(module, __webpack_exports__, __webpack_require__) {
22480
22481"use strict";
22482__webpack_require__.r(__webpack_exports__);
22483/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return symbols; });
22484/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
22485/* harmony import */ var _symbol_circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./symbol/circle */ "./node_modules/d3-shape/src/symbol/circle.js");
22486/* harmony import */ var _symbol_cross__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./symbol/cross */ "./node_modules/d3-shape/src/symbol/cross.js");
22487/* harmony import */ var _symbol_diamond__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./symbol/diamond */ "./node_modules/d3-shape/src/symbol/diamond.js");
22488/* harmony import */ var _symbol_star__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symbol/star */ "./node_modules/d3-shape/src/symbol/star.js");
22489/* harmony import */ var _symbol_square__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./symbol/square */ "./node_modules/d3-shape/src/symbol/square.js");
22490/* harmony import */ var _symbol_triangle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./symbol/triangle */ "./node_modules/d3-shape/src/symbol/triangle.js");
22491/* harmony import */ var _symbol_wye__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./symbol/wye */ "./node_modules/d3-shape/src/symbol/wye.js");
22492/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
22493
22494
22495
22496
22497
22498
22499
22500
22501
22502
22503var symbols = [
22504 _symbol_circle__WEBPACK_IMPORTED_MODULE_1__["default"],
22505 _symbol_cross__WEBPACK_IMPORTED_MODULE_2__["default"],
22506 _symbol_diamond__WEBPACK_IMPORTED_MODULE_3__["default"],
22507 _symbol_square__WEBPACK_IMPORTED_MODULE_5__["default"],
22508 _symbol_star__WEBPACK_IMPORTED_MODULE_4__["default"],
22509 _symbol_triangle__WEBPACK_IMPORTED_MODULE_6__["default"],
22510 _symbol_wye__WEBPACK_IMPORTED_MODULE_7__["default"]
22511];
22512
22513/* harmony default export */ __webpack_exports__["default"] = (function() {
22514 var type = Object(_constant__WEBPACK_IMPORTED_MODULE_8__["default"])(_symbol_circle__WEBPACK_IMPORTED_MODULE_1__["default"]),
22515 size = Object(_constant__WEBPACK_IMPORTED_MODULE_8__["default"])(64),
22516 context = null;
22517
22518 function symbol() {
22519 var buffer;
22520 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
22521 type.apply(this, arguments).draw(context, +size.apply(this, arguments));
22522 if (buffer) return context = null, buffer + "" || null;
22523 }
22524
22525 symbol.type = function(_) {
22526 return arguments.length ? (type = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_8__["default"])(_), symbol) : type;
22527 };
22528
22529 symbol.size = function(_) {
22530 return arguments.length ? (size = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_8__["default"])(+_), symbol) : size;
22531 };
22532
22533 symbol.context = function(_) {
22534 return arguments.length ? (context = _ == null ? null : _, symbol) : context;
22535 };
22536
22537 return symbol;
22538});
22539
22540
22541/***/ }),
22542
22543/***/ "./node_modules/d3-shape/src/symbol/circle.js":
22544/*!****************************************************!*\
22545 !*** ./node_modules/d3-shape/src/symbol/circle.js ***!
22546 \****************************************************/
22547/*! exports provided: default */
22548/***/ (function(module, __webpack_exports__, __webpack_require__) {
22549
22550"use strict";
22551__webpack_require__.r(__webpack_exports__);
22552/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-shape/src/math.js");
22553
22554
22555/* harmony default export */ __webpack_exports__["default"] = ({
22556 draw: function(context, size) {
22557 var r = Math.sqrt(size / _math__WEBPACK_IMPORTED_MODULE_0__["pi"]);
22558 context.moveTo(r, 0);
22559 context.arc(0, 0, r, 0, _math__WEBPACK_IMPORTED_MODULE_0__["tau"]);
22560 }
22561});
22562
22563
22564/***/ }),
22565
22566/***/ "./node_modules/d3-shape/src/symbol/cross.js":
22567/*!***************************************************!*\
22568 !*** ./node_modules/d3-shape/src/symbol/cross.js ***!
22569 \***************************************************/
22570/*! exports provided: default */
22571/***/ (function(module, __webpack_exports__, __webpack_require__) {
22572
22573"use strict";
22574__webpack_require__.r(__webpack_exports__);
22575/* harmony default export */ __webpack_exports__["default"] = ({
22576 draw: function(context, size) {
22577 var r = Math.sqrt(size / 5) / 2;
22578 context.moveTo(-3 * r, -r);
22579 context.lineTo(-r, -r);
22580 context.lineTo(-r, -3 * r);
22581 context.lineTo(r, -3 * r);
22582 context.lineTo(r, -r);
22583 context.lineTo(3 * r, -r);
22584 context.lineTo(3 * r, r);
22585 context.lineTo(r, r);
22586 context.lineTo(r, 3 * r);
22587 context.lineTo(-r, 3 * r);
22588 context.lineTo(-r, r);
22589 context.lineTo(-3 * r, r);
22590 context.closePath();
22591 }
22592});
22593
22594
22595/***/ }),
22596
22597/***/ "./node_modules/d3-shape/src/symbol/diamond.js":
22598/*!*****************************************************!*\
22599 !*** ./node_modules/d3-shape/src/symbol/diamond.js ***!
22600 \*****************************************************/
22601/*! exports provided: default */
22602/***/ (function(module, __webpack_exports__, __webpack_require__) {
22603
22604"use strict";
22605__webpack_require__.r(__webpack_exports__);
22606var tan30 = Math.sqrt(1 / 3),
22607 tan30_2 = tan30 * 2;
22608
22609/* harmony default export */ __webpack_exports__["default"] = ({
22610 draw: function(context, size) {
22611 var y = Math.sqrt(size / tan30_2),
22612 x = y * tan30;
22613 context.moveTo(0, -y);
22614 context.lineTo(x, 0);
22615 context.lineTo(0, y);
22616 context.lineTo(-x, 0);
22617 context.closePath();
22618 }
22619});
22620
22621
22622/***/ }),
22623
22624/***/ "./node_modules/d3-shape/src/symbol/square.js":
22625/*!****************************************************!*\
22626 !*** ./node_modules/d3-shape/src/symbol/square.js ***!
22627 \****************************************************/
22628/*! exports provided: default */
22629/***/ (function(module, __webpack_exports__, __webpack_require__) {
22630
22631"use strict";
22632__webpack_require__.r(__webpack_exports__);
22633/* harmony default export */ __webpack_exports__["default"] = ({
22634 draw: function(context, size) {
22635 var w = Math.sqrt(size),
22636 x = -w / 2;
22637 context.rect(x, x, w, w);
22638 }
22639});
22640
22641
22642/***/ }),
22643
22644/***/ "./node_modules/d3-shape/src/symbol/star.js":
22645/*!**************************************************!*\
22646 !*** ./node_modules/d3-shape/src/symbol/star.js ***!
22647 \**************************************************/
22648/*! exports provided: default */
22649/***/ (function(module, __webpack_exports__, __webpack_require__) {
22650
22651"use strict";
22652__webpack_require__.r(__webpack_exports__);
22653/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-shape/src/math.js");
22654
22655
22656var ka = 0.89081309152928522810,
22657 kr = Math.sin(_math__WEBPACK_IMPORTED_MODULE_0__["pi"] / 10) / Math.sin(7 * _math__WEBPACK_IMPORTED_MODULE_0__["pi"] / 10),
22658 kx = Math.sin(_math__WEBPACK_IMPORTED_MODULE_0__["tau"] / 10) * kr,
22659 ky = -Math.cos(_math__WEBPACK_IMPORTED_MODULE_0__["tau"] / 10) * kr;
22660
22661/* harmony default export */ __webpack_exports__["default"] = ({
22662 draw: function(context, size) {
22663 var r = Math.sqrt(size * ka),
22664 x = kx * r,
22665 y = ky * r;
22666 context.moveTo(0, -r);
22667 context.lineTo(x, y);
22668 for (var i = 1; i < 5; ++i) {
22669 var a = _math__WEBPACK_IMPORTED_MODULE_0__["tau"] * i / 5,
22670 c = Math.cos(a),
22671 s = Math.sin(a);
22672 context.lineTo(s * r, -c * r);
22673 context.lineTo(c * x - s * y, s * x + c * y);
22674 }
22675 context.closePath();
22676 }
22677});
22678
22679
22680/***/ }),
22681
22682/***/ "./node_modules/d3-shape/src/symbol/triangle.js":
22683/*!******************************************************!*\
22684 !*** ./node_modules/d3-shape/src/symbol/triangle.js ***!
22685 \******************************************************/
22686/*! exports provided: default */
22687/***/ (function(module, __webpack_exports__, __webpack_require__) {
22688
22689"use strict";
22690__webpack_require__.r(__webpack_exports__);
22691var sqrt3 = Math.sqrt(3);
22692
22693/* harmony default export */ __webpack_exports__["default"] = ({
22694 draw: function(context, size) {
22695 var y = -Math.sqrt(size / (sqrt3 * 3));
22696 context.moveTo(0, y * 2);
22697 context.lineTo(-sqrt3 * y, -y);
22698 context.lineTo(sqrt3 * y, -y);
22699 context.closePath();
22700 }
22701});
22702
22703
22704/***/ }),
22705
22706/***/ "./node_modules/d3-shape/src/symbol/wye.js":
22707/*!*************************************************!*\
22708 !*** ./node_modules/d3-shape/src/symbol/wye.js ***!
22709 \*************************************************/
22710/*! exports provided: default */
22711/***/ (function(module, __webpack_exports__, __webpack_require__) {
22712
22713"use strict";
22714__webpack_require__.r(__webpack_exports__);
22715var c = -0.5,
22716 s = Math.sqrt(3) / 2,
22717 k = 1 / Math.sqrt(12),
22718 a = (k / 2 + 1) * 3;
22719
22720/* harmony default export */ __webpack_exports__["default"] = ({
22721 draw: function(context, size) {
22722 var r = Math.sqrt(size / a),
22723 x0 = r / 2,
22724 y0 = r * k,
22725 x1 = x0,
22726 y1 = r * k + r,
22727 x2 = -x1,
22728 y2 = y1;
22729 context.moveTo(x0, y0);
22730 context.lineTo(x1, y1);
22731 context.lineTo(x2, y2);
22732 context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
22733 context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
22734 context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
22735 context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
22736 context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
22737 context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
22738 context.closePath();
22739 }
22740});
22741
22742
22743/***/ }),
22744
22745/***/ "./node_modules/d3-time-format/src/defaultLocale.js":
22746/*!**********************************************************!*\
22747 !*** ./node_modules/d3-time-format/src/defaultLocale.js ***!
22748 \**********************************************************/
22749/*! exports provided: timeFormat, timeParse, utcFormat, utcParse, default */
22750/***/ (function(module, __webpack_exports__, __webpack_require__) {
22751
22752"use strict";
22753__webpack_require__.r(__webpack_exports__);
22754/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return timeFormat; });
22755/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return timeParse; });
22756/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return utcFormat; });
22757/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return utcParse; });
22758/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return defaultLocale; });
22759/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale */ "./node_modules/d3-time-format/src/locale.js");
22760
22761
22762var locale;
22763var timeFormat;
22764var timeParse;
22765var utcFormat;
22766var utcParse;
22767
22768defaultLocale({
22769 dateTime: "%x, %X",
22770 date: "%-m/%-d/%Y",
22771 time: "%-I:%M:%S %p",
22772 periods: ["AM", "PM"],
22773 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
22774 shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
22775 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
22776 shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
22777});
22778
22779function defaultLocale(definition) {
22780 locale = Object(_locale__WEBPACK_IMPORTED_MODULE_0__["default"])(definition);
22781 timeFormat = locale.format;
22782 timeParse = locale.parse;
22783 utcFormat = locale.utcFormat;
22784 utcParse = locale.utcParse;
22785 return locale;
22786}
22787
22788
22789/***/ }),
22790
22791/***/ "./node_modules/d3-time-format/src/index.js":
22792/*!**************************************************!*\
22793 !*** ./node_modules/d3-time-format/src/index.js ***!
22794 \**************************************************/
22795/*! exports provided: timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse, timeFormatLocale, isoFormat, isoParse */
22796/***/ (function(module, __webpack_exports__, __webpack_require__) {
22797
22798"use strict";
22799__webpack_require__.r(__webpack_exports__);
22800/* harmony import */ var _defaultLocale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale */ "./node_modules/d3-time-format/src/defaultLocale.js");
22801/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatDefaultLocale", function() { return _defaultLocale__WEBPACK_IMPORTED_MODULE_0__["default"]; });
22802
22803/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return _defaultLocale__WEBPACK_IMPORTED_MODULE_0__["timeFormat"]; });
22804
22805/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return _defaultLocale__WEBPACK_IMPORTED_MODULE_0__["timeParse"]; });
22806
22807/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return _defaultLocale__WEBPACK_IMPORTED_MODULE_0__["utcFormat"]; });
22808
22809/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return _defaultLocale__WEBPACK_IMPORTED_MODULE_0__["utcParse"]; });
22810
22811/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale */ "./node_modules/d3-time-format/src/locale.js");
22812/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatLocale", function() { return _locale__WEBPACK_IMPORTED_MODULE_1__["default"]; });
22813
22814/* harmony import */ var _isoFormat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isoFormat */ "./node_modules/d3-time-format/src/isoFormat.js");
22815/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoFormat", function() { return _isoFormat__WEBPACK_IMPORTED_MODULE_2__["default"]; });
22816
22817/* harmony import */ var _isoParse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isoParse */ "./node_modules/d3-time-format/src/isoParse.js");
22818/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoParse", function() { return _isoParse__WEBPACK_IMPORTED_MODULE_3__["default"]; });
22819
22820
22821
22822
22823
22824
22825
22826/***/ }),
22827
22828/***/ "./node_modules/d3-time-format/src/isoFormat.js":
22829/*!******************************************************!*\
22830 !*** ./node_modules/d3-time-format/src/isoFormat.js ***!
22831 \******************************************************/
22832/*! exports provided: isoSpecifier, default */
22833/***/ (function(module, __webpack_exports__, __webpack_require__) {
22834
22835"use strict";
22836__webpack_require__.r(__webpack_exports__);
22837/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isoSpecifier", function() { return isoSpecifier; });
22838/* harmony import */ var _defaultLocale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale */ "./node_modules/d3-time-format/src/defaultLocale.js");
22839
22840
22841var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
22842
22843function formatIsoNative(date) {
22844 return date.toISOString();
22845}
22846
22847var formatIso = Date.prototype.toISOString
22848 ? formatIsoNative
22849 : Object(_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["utcFormat"])(isoSpecifier);
22850
22851/* harmony default export */ __webpack_exports__["default"] = (formatIso);
22852
22853
22854/***/ }),
22855
22856/***/ "./node_modules/d3-time-format/src/isoParse.js":
22857/*!*****************************************************!*\
22858 !*** ./node_modules/d3-time-format/src/isoParse.js ***!
22859 \*****************************************************/
22860/*! exports provided: default */
22861/***/ (function(module, __webpack_exports__, __webpack_require__) {
22862
22863"use strict";
22864__webpack_require__.r(__webpack_exports__);
22865/* harmony import */ var _isoFormat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isoFormat */ "./node_modules/d3-time-format/src/isoFormat.js");
22866/* harmony import */ var _defaultLocale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultLocale */ "./node_modules/d3-time-format/src/defaultLocale.js");
22867
22868
22869
22870function parseIsoNative(string) {
22871 var date = new Date(string);
22872 return isNaN(date) ? null : date;
22873}
22874
22875var parseIso = +new Date("2000-01-01T00:00:00.000Z")
22876 ? parseIsoNative
22877 : Object(_defaultLocale__WEBPACK_IMPORTED_MODULE_1__["utcParse"])(_isoFormat__WEBPACK_IMPORTED_MODULE_0__["isoSpecifier"]);
22878
22879/* harmony default export */ __webpack_exports__["default"] = (parseIso);
22880
22881
22882/***/ }),
22883
22884/***/ "./node_modules/d3-time-format/src/locale.js":
22885/*!***************************************************!*\
22886 !*** ./node_modules/d3-time-format/src/locale.js ***!
22887 \***************************************************/
22888/*! exports provided: default */
22889/***/ (function(module, __webpack_exports__, __webpack_require__) {
22890
22891"use strict";
22892__webpack_require__.r(__webpack_exports__);
22893/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLocale; });
22894/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
22895
22896
22897function localDate(d) {
22898 if (0 <= d.y && d.y < 100) {
22899 var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
22900 date.setFullYear(d.y);
22901 return date;
22902 }
22903 return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
22904}
22905
22906function utcDate(d) {
22907 if (0 <= d.y && d.y < 100) {
22908 var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
22909 date.setUTCFullYear(d.y);
22910 return date;
22911 }
22912 return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
22913}
22914
22915function newYear(y) {
22916 return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};
22917}
22918
22919function formatLocale(locale) {
22920 var locale_dateTime = locale.dateTime,
22921 locale_date = locale.date,
22922 locale_time = locale.time,
22923 locale_periods = locale.periods,
22924 locale_weekdays = locale.days,
22925 locale_shortWeekdays = locale.shortDays,
22926 locale_months = locale.months,
22927 locale_shortMonths = locale.shortMonths;
22928
22929 var periodRe = formatRe(locale_periods),
22930 periodLookup = formatLookup(locale_periods),
22931 weekdayRe = formatRe(locale_weekdays),
22932 weekdayLookup = formatLookup(locale_weekdays),
22933 shortWeekdayRe = formatRe(locale_shortWeekdays),
22934 shortWeekdayLookup = formatLookup(locale_shortWeekdays),
22935 monthRe = formatRe(locale_months),
22936 monthLookup = formatLookup(locale_months),
22937 shortMonthRe = formatRe(locale_shortMonths),
22938 shortMonthLookup = formatLookup(locale_shortMonths);
22939
22940 var formats = {
22941 "a": formatShortWeekday,
22942 "A": formatWeekday,
22943 "b": formatShortMonth,
22944 "B": formatMonth,
22945 "c": null,
22946 "d": formatDayOfMonth,
22947 "e": formatDayOfMonth,
22948 "f": formatMicroseconds,
22949 "H": formatHour24,
22950 "I": formatHour12,
22951 "j": formatDayOfYear,
22952 "L": formatMilliseconds,
22953 "m": formatMonthNumber,
22954 "M": formatMinutes,
22955 "p": formatPeriod,
22956 "Q": formatUnixTimestamp,
22957 "s": formatUnixTimestampSeconds,
22958 "S": formatSeconds,
22959 "u": formatWeekdayNumberMonday,
22960 "U": formatWeekNumberSunday,
22961 "V": formatWeekNumberISO,
22962 "w": formatWeekdayNumberSunday,
22963 "W": formatWeekNumberMonday,
22964 "x": null,
22965 "X": null,
22966 "y": formatYear,
22967 "Y": formatFullYear,
22968 "Z": formatZone,
22969 "%": formatLiteralPercent
22970 };
22971
22972 var utcFormats = {
22973 "a": formatUTCShortWeekday,
22974 "A": formatUTCWeekday,
22975 "b": formatUTCShortMonth,
22976 "B": formatUTCMonth,
22977 "c": null,
22978 "d": formatUTCDayOfMonth,
22979 "e": formatUTCDayOfMonth,
22980 "f": formatUTCMicroseconds,
22981 "H": formatUTCHour24,
22982 "I": formatUTCHour12,
22983 "j": formatUTCDayOfYear,
22984 "L": formatUTCMilliseconds,
22985 "m": formatUTCMonthNumber,
22986 "M": formatUTCMinutes,
22987 "p": formatUTCPeriod,
22988 "Q": formatUnixTimestamp,
22989 "s": formatUnixTimestampSeconds,
22990 "S": formatUTCSeconds,
22991 "u": formatUTCWeekdayNumberMonday,
22992 "U": formatUTCWeekNumberSunday,
22993 "V": formatUTCWeekNumberISO,
22994 "w": formatUTCWeekdayNumberSunday,
22995 "W": formatUTCWeekNumberMonday,
22996 "x": null,
22997 "X": null,
22998 "y": formatUTCYear,
22999 "Y": formatUTCFullYear,
23000 "Z": formatUTCZone,
23001 "%": formatLiteralPercent
23002 };
23003
23004 var parses = {
23005 "a": parseShortWeekday,
23006 "A": parseWeekday,
23007 "b": parseShortMonth,
23008 "B": parseMonth,
23009 "c": parseLocaleDateTime,
23010 "d": parseDayOfMonth,
23011 "e": parseDayOfMonth,
23012 "f": parseMicroseconds,
23013 "H": parseHour24,
23014 "I": parseHour24,
23015 "j": parseDayOfYear,
23016 "L": parseMilliseconds,
23017 "m": parseMonthNumber,
23018 "M": parseMinutes,
23019 "p": parsePeriod,
23020 "Q": parseUnixTimestamp,
23021 "s": parseUnixTimestampSeconds,
23022 "S": parseSeconds,
23023 "u": parseWeekdayNumberMonday,
23024 "U": parseWeekNumberSunday,
23025 "V": parseWeekNumberISO,
23026 "w": parseWeekdayNumberSunday,
23027 "W": parseWeekNumberMonday,
23028 "x": parseLocaleDate,
23029 "X": parseLocaleTime,
23030 "y": parseYear,
23031 "Y": parseFullYear,
23032 "Z": parseZone,
23033 "%": parseLiteralPercent
23034 };
23035
23036 // These recursive directive definitions must be deferred.
23037 formats.x = newFormat(locale_date, formats);
23038 formats.X = newFormat(locale_time, formats);
23039 formats.c = newFormat(locale_dateTime, formats);
23040 utcFormats.x = newFormat(locale_date, utcFormats);
23041 utcFormats.X = newFormat(locale_time, utcFormats);
23042 utcFormats.c = newFormat(locale_dateTime, utcFormats);
23043
23044 function newFormat(specifier, formats) {
23045 return function(date) {
23046 var string = [],
23047 i = -1,
23048 j = 0,
23049 n = specifier.length,
23050 c,
23051 pad,
23052 format;
23053
23054 if (!(date instanceof Date)) date = new Date(+date);
23055
23056 while (++i < n) {
23057 if (specifier.charCodeAt(i) === 37) {
23058 string.push(specifier.slice(j, i));
23059 if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
23060 else pad = c === "e" ? " " : "0";
23061 if (format = formats[c]) c = format(date, pad);
23062 string.push(c);
23063 j = i + 1;
23064 }
23065 }
23066
23067 string.push(specifier.slice(j, i));
23068 return string.join("");
23069 };
23070 }
23071
23072 function newParse(specifier, newDate) {
23073 return function(string) {
23074 var d = newYear(1900),
23075 i = parseSpecifier(d, specifier, string += "", 0),
23076 week, day;
23077 if (i != string.length) return null;
23078
23079 // If a UNIX timestamp is specified, return it.
23080 if ("Q" in d) return new Date(d.Q);
23081
23082 // The am-pm flag is 0 for AM, and 1 for PM.
23083 if ("p" in d) d.H = d.H % 12 + d.p * 12;
23084
23085 // Convert day-of-week and week-of-year to day-of-year.
23086 if ("V" in d) {
23087 if (d.V < 1 || d.V > 53) return null;
23088 if (!("w" in d)) d.w = 1;
23089 if ("Z" in d) {
23090 week = utcDate(newYear(d.y)), day = week.getUTCDay();
23091 week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"])(week);
23092 week = d3_time__WEBPACK_IMPORTED_MODULE_0__["utcDay"].offset(week, (d.V - 1) * 7);
23093 d.y = week.getUTCFullYear();
23094 d.m = week.getUTCMonth();
23095 d.d = week.getUTCDate() + (d.w + 6) % 7;
23096 } else {
23097 week = newDate(newYear(d.y)), day = week.getDay();
23098 week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"])(week);
23099 week = d3_time__WEBPACK_IMPORTED_MODULE_0__["timeDay"].offset(week, (d.V - 1) * 7);
23100 d.y = week.getFullYear();
23101 d.m = week.getMonth();
23102 d.d = week.getDate() + (d.w + 6) % 7;
23103 }
23104 } else if ("W" in d || "U" in d) {
23105 if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
23106 day = "Z" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();
23107 d.m = 0;
23108 d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
23109 }
23110
23111 // If a time zone is specified, all fields are interpreted as UTC and then
23112 // offset according to the specified time zone.
23113 if ("Z" in d) {
23114 d.H += d.Z / 100 | 0;
23115 d.M += d.Z % 100;
23116 return utcDate(d);
23117 }
23118
23119 // Otherwise, all fields are in local time.
23120 return newDate(d);
23121 };
23122 }
23123
23124 function parseSpecifier(d, specifier, string, j) {
23125 var i = 0,
23126 n = specifier.length,
23127 m = string.length,
23128 c,
23129 parse;
23130
23131 while (i < n) {
23132 if (j >= m) return -1;
23133 c = specifier.charCodeAt(i++);
23134 if (c === 37) {
23135 c = specifier.charAt(i++);
23136 parse = parses[c in pads ? specifier.charAt(i++) : c];
23137 if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
23138 } else if (c != string.charCodeAt(j++)) {
23139 return -1;
23140 }
23141 }
23142
23143 return j;
23144 }
23145
23146 function parsePeriod(d, string, i) {
23147 var n = periodRe.exec(string.slice(i));
23148 return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23149 }
23150
23151 function parseShortWeekday(d, string, i) {
23152 var n = shortWeekdayRe.exec(string.slice(i));
23153 return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23154 }
23155
23156 function parseWeekday(d, string, i) {
23157 var n = weekdayRe.exec(string.slice(i));
23158 return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23159 }
23160
23161 function parseShortMonth(d, string, i) {
23162 var n = shortMonthRe.exec(string.slice(i));
23163 return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23164 }
23165
23166 function parseMonth(d, string, i) {
23167 var n = monthRe.exec(string.slice(i));
23168 return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23169 }
23170
23171 function parseLocaleDateTime(d, string, i) {
23172 return parseSpecifier(d, locale_dateTime, string, i);
23173 }
23174
23175 function parseLocaleDate(d, string, i) {
23176 return parseSpecifier(d, locale_date, string, i);
23177 }
23178
23179 function parseLocaleTime(d, string, i) {
23180 return parseSpecifier(d, locale_time, string, i);
23181 }
23182
23183 function formatShortWeekday(d) {
23184 return locale_shortWeekdays[d.getDay()];
23185 }
23186
23187 function formatWeekday(d) {
23188 return locale_weekdays[d.getDay()];
23189 }
23190
23191 function formatShortMonth(d) {
23192 return locale_shortMonths[d.getMonth()];
23193 }
23194
23195 function formatMonth(d) {
23196 return locale_months[d.getMonth()];
23197 }
23198
23199 function formatPeriod(d) {
23200 return locale_periods[+(d.getHours() >= 12)];
23201 }
23202
23203 function formatUTCShortWeekday(d) {
23204 return locale_shortWeekdays[d.getUTCDay()];
23205 }
23206
23207 function formatUTCWeekday(d) {
23208 return locale_weekdays[d.getUTCDay()];
23209 }
23210
23211 function formatUTCShortMonth(d) {
23212 return locale_shortMonths[d.getUTCMonth()];
23213 }
23214
23215 function formatUTCMonth(d) {
23216 return locale_months[d.getUTCMonth()];
23217 }
23218
23219 function formatUTCPeriod(d) {
23220 return locale_periods[+(d.getUTCHours() >= 12)];
23221 }
23222
23223 return {
23224 format: function(specifier) {
23225 var f = newFormat(specifier += "", formats);
23226 f.toString = function() { return specifier; };
23227 return f;
23228 },
23229 parse: function(specifier) {
23230 var p = newParse(specifier += "", localDate);
23231 p.toString = function() { return specifier; };
23232 return p;
23233 },
23234 utcFormat: function(specifier) {
23235 var f = newFormat(specifier += "", utcFormats);
23236 f.toString = function() { return specifier; };
23237 return f;
23238 },
23239 utcParse: function(specifier) {
23240 var p = newParse(specifier, utcDate);
23241 p.toString = function() { return specifier; };
23242 return p;
23243 }
23244 };
23245}
23246
23247var pads = {"-": "", "_": " ", "0": "0"},
23248 numberRe = /^\s*\d+/, // note: ignores next directive
23249 percentRe = /^%/,
23250 requoteRe = /[\\^$*+?|[\]().{}]/g;
23251
23252function pad(value, fill, width) {
23253 var sign = value < 0 ? "-" : "",
23254 string = (sign ? -value : value) + "",
23255 length = string.length;
23256 return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
23257}
23258
23259function requote(s) {
23260 return s.replace(requoteRe, "\\$&");
23261}
23262
23263function formatRe(names) {
23264 return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
23265}
23266
23267function formatLookup(names) {
23268 var map = {}, i = -1, n = names.length;
23269 while (++i < n) map[names[i].toLowerCase()] = i;
23270 return map;
23271}
23272
23273function parseWeekdayNumberSunday(d, string, i) {
23274 var n = numberRe.exec(string.slice(i, i + 1));
23275 return n ? (d.w = +n[0], i + n[0].length) : -1;
23276}
23277
23278function parseWeekdayNumberMonday(d, string, i) {
23279 var n = numberRe.exec(string.slice(i, i + 1));
23280 return n ? (d.u = +n[0], i + n[0].length) : -1;
23281}
23282
23283function parseWeekNumberSunday(d, string, i) {
23284 var n = numberRe.exec(string.slice(i, i + 2));
23285 return n ? (d.U = +n[0], i + n[0].length) : -1;
23286}
23287
23288function parseWeekNumberISO(d, string, i) {
23289 var n = numberRe.exec(string.slice(i, i + 2));
23290 return n ? (d.V = +n[0], i + n[0].length) : -1;
23291}
23292
23293function parseWeekNumberMonday(d, string, i) {
23294 var n = numberRe.exec(string.slice(i, i + 2));
23295 return n ? (d.W = +n[0], i + n[0].length) : -1;
23296}
23297
23298function parseFullYear(d, string, i) {
23299 var n = numberRe.exec(string.slice(i, i + 4));
23300 return n ? (d.y = +n[0], i + n[0].length) : -1;
23301}
23302
23303function parseYear(d, string, i) {
23304 var n = numberRe.exec(string.slice(i, i + 2));
23305 return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
23306}
23307
23308function parseZone(d, string, i) {
23309 var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
23310 return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
23311}
23312
23313function parseMonthNumber(d, string, i) {
23314 var n = numberRe.exec(string.slice(i, i + 2));
23315 return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
23316}
23317
23318function parseDayOfMonth(d, string, i) {
23319 var n = numberRe.exec(string.slice(i, i + 2));
23320 return n ? (d.d = +n[0], i + n[0].length) : -1;
23321}
23322
23323function parseDayOfYear(d, string, i) {
23324 var n = numberRe.exec(string.slice(i, i + 3));
23325 return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
23326}
23327
23328function parseHour24(d, string, i) {
23329 var n = numberRe.exec(string.slice(i, i + 2));
23330 return n ? (d.H = +n[0], i + n[0].length) : -1;
23331}
23332
23333function parseMinutes(d, string, i) {
23334 var n = numberRe.exec(string.slice(i, i + 2));
23335 return n ? (d.M = +n[0], i + n[0].length) : -1;
23336}
23337
23338function parseSeconds(d, string, i) {
23339 var n = numberRe.exec(string.slice(i, i + 2));
23340 return n ? (d.S = +n[0], i + n[0].length) : -1;
23341}
23342
23343function parseMilliseconds(d, string, i) {
23344 var n = numberRe.exec(string.slice(i, i + 3));
23345 return n ? (d.L = +n[0], i + n[0].length) : -1;
23346}
23347
23348function parseMicroseconds(d, string, i) {
23349 var n = numberRe.exec(string.slice(i, i + 6));
23350 return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
23351}
23352
23353function parseLiteralPercent(d, string, i) {
23354 var n = percentRe.exec(string.slice(i, i + 1));
23355 return n ? i + n[0].length : -1;
23356}
23357
23358function parseUnixTimestamp(d, string, i) {
23359 var n = numberRe.exec(string.slice(i));
23360 return n ? (d.Q = +n[0], i + n[0].length) : -1;
23361}
23362
23363function parseUnixTimestampSeconds(d, string, i) {
23364 var n = numberRe.exec(string.slice(i));
23365 return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;
23366}
23367
23368function formatDayOfMonth(d, p) {
23369 return pad(d.getDate(), p, 2);
23370}
23371
23372function formatHour24(d, p) {
23373 return pad(d.getHours(), p, 2);
23374}
23375
23376function formatHour12(d, p) {
23377 return pad(d.getHours() % 12 || 12, p, 2);
23378}
23379
23380function formatDayOfYear(d, p) {
23381 return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__["timeDay"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d), d), p, 3);
23382}
23383
23384function formatMilliseconds(d, p) {
23385 return pad(d.getMilliseconds(), p, 3);
23386}
23387
23388function formatMicroseconds(d, p) {
23389 return formatMilliseconds(d, p) + "000";
23390}
23391
23392function formatMonthNumber(d, p) {
23393 return pad(d.getMonth() + 1, p, 2);
23394}
23395
23396function formatMinutes(d, p) {
23397 return pad(d.getMinutes(), p, 2);
23398}
23399
23400function formatSeconds(d, p) {
23401 return pad(d.getSeconds(), p, 2);
23402}
23403
23404function formatWeekdayNumberMonday(d) {
23405 var day = d.getDay();
23406 return day === 0 ? 7 : day;
23407}
23408
23409function formatWeekNumberSunday(d, p) {
23410 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeSunday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d), d), p, 2);
23411}
23412
23413function formatWeekNumberISO(d, p) {
23414 var day = d.getDay();
23415 d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeThursday"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__["timeThursday"].ceil(d);
23416 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeThursday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d), d) + (Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d).getDay() === 4), p, 2);
23417}
23418
23419function formatWeekdayNumberSunday(d) {
23420 return d.getDay();
23421}
23422
23423function formatWeekNumberMonday(d, p) {
23424 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d), d), p, 2);
23425}
23426
23427function formatYear(d, p) {
23428 return pad(d.getFullYear() % 100, p, 2);
23429}
23430
23431function formatFullYear(d, p) {
23432 return pad(d.getFullYear() % 10000, p, 4);
23433}
23434
23435function formatZone(d) {
23436 var z = d.getTimezoneOffset();
23437 return (z > 0 ? "-" : (z *= -1, "+"))
23438 + pad(z / 60 | 0, "0", 2)
23439 + pad(z % 60, "0", 2);
23440}
23441
23442function formatUTCDayOfMonth(d, p) {
23443 return pad(d.getUTCDate(), p, 2);
23444}
23445
23446function formatUTCHour24(d, p) {
23447 return pad(d.getUTCHours(), p, 2);
23448}
23449
23450function formatUTCHour12(d, p) {
23451 return pad(d.getUTCHours() % 12 || 12, p, 2);
23452}
23453
23454function formatUTCDayOfYear(d, p) {
23455 return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__["utcDay"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d), d), p, 3);
23456}
23457
23458function formatUTCMilliseconds(d, p) {
23459 return pad(d.getUTCMilliseconds(), p, 3);
23460}
23461
23462function formatUTCMicroseconds(d, p) {
23463 return formatUTCMilliseconds(d, p) + "000";
23464}
23465
23466function formatUTCMonthNumber(d, p) {
23467 return pad(d.getUTCMonth() + 1, p, 2);
23468}
23469
23470function formatUTCMinutes(d, p) {
23471 return pad(d.getUTCMinutes(), p, 2);
23472}
23473
23474function formatUTCSeconds(d, p) {
23475 return pad(d.getUTCSeconds(), p, 2);
23476}
23477
23478function formatUTCWeekdayNumberMonday(d) {
23479 var dow = d.getUTCDay();
23480 return dow === 0 ? 7 : dow;
23481}
23482
23483function formatUTCWeekNumberSunday(d, p) {
23484 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcSunday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d), d), p, 2);
23485}
23486
23487function formatUTCWeekNumberISO(d, p) {
23488 var day = d.getUTCDay();
23489 d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcThursday"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__["utcThursday"].ceil(d);
23490 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcThursday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d), d) + (Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d).getUTCDay() === 4), p, 2);
23491}
23492
23493function formatUTCWeekdayNumberSunday(d) {
23494 return d.getUTCDay();
23495}
23496
23497function formatUTCWeekNumberMonday(d, p) {
23498 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d), d), p, 2);
23499}
23500
23501function formatUTCYear(d, p) {
23502 return pad(d.getUTCFullYear() % 100, p, 2);
23503}
23504
23505function formatUTCFullYear(d, p) {
23506 return pad(d.getUTCFullYear() % 10000, p, 4);
23507}
23508
23509function formatUTCZone() {
23510 return "+0000";
23511}
23512
23513function formatLiteralPercent() {
23514 return "%";
23515}
23516
23517function formatUnixTimestamp(d) {
23518 return +d;
23519}
23520
23521function formatUnixTimestampSeconds(d) {
23522 return Math.floor(+d / 1000);
23523}
23524
23525
23526/***/ }),
23527
23528/***/ "./node_modules/d3-time/src/day.js":
23529/*!*****************************************!*\
23530 !*** ./node_modules/d3-time/src/day.js ***!
23531 \*****************************************/
23532/*! exports provided: default, days */
23533/***/ (function(module, __webpack_exports__, __webpack_require__) {
23534
23535"use strict";
23536__webpack_require__.r(__webpack_exports__);
23537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "days", function() { return days; });
23538/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
23539/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
23540
23541
23542
23543var day = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
23544 date.setHours(0, 0, 0, 0);
23545}, function(date, step) {
23546 date.setDate(date.getDate() + step);
23547}, function(start, end) {
23548 return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationDay"];
23549}, function(date) {
23550 return date.getDate() - 1;
23551});
23552
23553/* harmony default export */ __webpack_exports__["default"] = (day);
23554var days = day.range;
23555
23556
23557/***/ }),
23558
23559/***/ "./node_modules/d3-time/src/duration.js":
23560/*!**********************************************!*\
23561 !*** ./node_modules/d3-time/src/duration.js ***!
23562 \**********************************************/
23563/*! exports provided: durationSecond, durationMinute, durationHour, durationDay, durationWeek */
23564/***/ (function(module, __webpack_exports__, __webpack_require__) {
23565
23566"use strict";
23567__webpack_require__.r(__webpack_exports__);
23568/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationSecond", function() { return durationSecond; });
23569/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationMinute", function() { return durationMinute; });
23570/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationHour", function() { return durationHour; });
23571/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationDay", function() { return durationDay; });
23572/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationWeek", function() { return durationWeek; });
23573var durationSecond = 1e3;
23574var durationMinute = 6e4;
23575var durationHour = 36e5;
23576var durationDay = 864e5;
23577var durationWeek = 6048e5;
23578
23579
23580/***/ }),
23581
23582/***/ "./node_modules/d3-time/src/hour.js":
23583/*!******************************************!*\
23584 !*** ./node_modules/d3-time/src/hour.js ***!
23585 \******************************************/
23586/*! exports provided: default, hours */
23587/***/ (function(module, __webpack_exports__, __webpack_require__) {
23588
23589"use strict";
23590__webpack_require__.r(__webpack_exports__);
23591/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hours", function() { return hours; });
23592/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
23593/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
23594
23595
23596
23597var hour = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
23598 var offset = date.getTimezoneOffset() * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"] % _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
23599 if (offset < 0) offset += _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
23600 date.setTime(Math.floor((+date - offset) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"]) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"] + offset);
23601}, function(date, step) {
23602 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"]);
23603}, function(start, end) {
23604 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
23605}, function(date) {
23606 return date.getHours();
23607});
23608
23609/* harmony default export */ __webpack_exports__["default"] = (hour);
23610var hours = hour.range;
23611
23612
23613/***/ }),
23614
23615/***/ "./node_modules/d3-time/src/index.js":
23616/*!*******************************************!*\
23617 !*** ./node_modules/d3-time/src/index.js ***!
23618 \*******************************************/
23619/*! exports provided: timeInterval, timeMillisecond, timeMilliseconds, utcMillisecond, utcMilliseconds, timeSecond, timeSeconds, utcSecond, utcSeconds, timeMinute, timeMinutes, timeHour, timeHours, timeDay, timeDays, timeWeek, timeWeeks, timeSunday, timeSundays, timeMonday, timeMondays, timeTuesday, timeTuesdays, timeWednesday, timeWednesdays, timeThursday, timeThursdays, timeFriday, timeFridays, timeSaturday, timeSaturdays, timeMonth, timeMonths, timeYear, timeYears, utcMinute, utcMinutes, utcHour, utcHours, utcDay, utcDays, utcWeek, utcWeeks, utcSunday, utcSundays, utcMonday, utcMondays, utcTuesday, utcTuesdays, utcWednesday, utcWednesdays, utcThursday, utcThursdays, utcFriday, utcFridays, utcSaturday, utcSaturdays, utcMonth, utcMonths, utcYear, utcYears */
23620/***/ (function(module, __webpack_exports__, __webpack_require__) {
23621
23622"use strict";
23623__webpack_require__.r(__webpack_exports__);
23624/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
23625/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _interval__WEBPACK_IMPORTED_MODULE_0__["default"]; });
23626
23627/* harmony import */ var _millisecond__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./millisecond */ "./node_modules/d3-time/src/millisecond.js");
23628/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMillisecond", function() { return _millisecond__WEBPACK_IMPORTED_MODULE_1__["default"]; });
23629
23630/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMilliseconds", function() { return _millisecond__WEBPACK_IMPORTED_MODULE_1__["milliseconds"]; });
23631
23632/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMillisecond", function() { return _millisecond__WEBPACK_IMPORTED_MODULE_1__["default"]; });
23633
23634/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMilliseconds", function() { return _millisecond__WEBPACK_IMPORTED_MODULE_1__["milliseconds"]; });
23635
23636/* harmony import */ var _second__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./second */ "./node_modules/d3-time/src/second.js");
23637/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSecond", function() { return _second__WEBPACK_IMPORTED_MODULE_2__["default"]; });
23638
23639/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSeconds", function() { return _second__WEBPACK_IMPORTED_MODULE_2__["seconds"]; });
23640
23641/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSecond", function() { return _second__WEBPACK_IMPORTED_MODULE_2__["default"]; });
23642
23643/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSeconds", function() { return _second__WEBPACK_IMPORTED_MODULE_2__["seconds"]; });
23644
23645/* harmony import */ var _minute__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minute */ "./node_modules/d3-time/src/minute.js");
23646/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinute", function() { return _minute__WEBPACK_IMPORTED_MODULE_3__["default"]; });
23647
23648/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinutes", function() { return _minute__WEBPACK_IMPORTED_MODULE_3__["minutes"]; });
23649
23650/* harmony import */ var _hour__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hour */ "./node_modules/d3-time/src/hour.js");
23651/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHour", function() { return _hour__WEBPACK_IMPORTED_MODULE_4__["default"]; });
23652
23653/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHours", function() { return _hour__WEBPACK_IMPORTED_MODULE_4__["hours"]; });
23654
23655/* harmony import */ var _day__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./day */ "./node_modules/d3-time/src/day.js");
23656/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDay", function() { return _day__WEBPACK_IMPORTED_MODULE_5__["default"]; });
23657
23658/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDays", function() { return _day__WEBPACK_IMPORTED_MODULE_5__["days"]; });
23659
23660/* harmony import */ var _week__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./week */ "./node_modules/d3-time/src/week.js");
23661/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeek", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["sunday"]; });
23662
23663/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeeks", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["sundays"]; });
23664
23665/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSunday", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["sunday"]; });
23666
23667/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSundays", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["sundays"]; });
23668
23669/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonday", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["monday"]; });
23670
23671/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMondays", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["mondays"]; });
23672
23673/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesday", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["tuesday"]; });
23674
23675/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesdays", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["tuesdays"]; });
23676
23677/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesday", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["wednesday"]; });
23678
23679/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesdays", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["wednesdays"]; });
23680
23681/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursday", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["thursday"]; });
23682
23683/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursdays", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["thursdays"]; });
23684
23685/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFriday", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["friday"]; });
23686
23687/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFridays", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["fridays"]; });
23688
23689/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturday", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["saturday"]; });
23690
23691/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturdays", function() { return _week__WEBPACK_IMPORTED_MODULE_6__["saturdays"]; });
23692
23693/* harmony import */ var _month__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./month */ "./node_modules/d3-time/src/month.js");
23694/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonth", function() { return _month__WEBPACK_IMPORTED_MODULE_7__["default"]; });
23695
23696/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonths", function() { return _month__WEBPACK_IMPORTED_MODULE_7__["months"]; });
23697
23698/* harmony import */ var _year__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./year */ "./node_modules/d3-time/src/year.js");
23699/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYear", function() { return _year__WEBPACK_IMPORTED_MODULE_8__["default"]; });
23700
23701/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYears", function() { return _year__WEBPACK_IMPORTED_MODULE_8__["years"]; });
23702
23703/* harmony import */ var _utcMinute__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utcMinute */ "./node_modules/d3-time/src/utcMinute.js");
23704/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinute", function() { return _utcMinute__WEBPACK_IMPORTED_MODULE_9__["default"]; });
23705
23706/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return _utcMinute__WEBPACK_IMPORTED_MODULE_9__["utcMinutes"]; });
23707
23708/* harmony import */ var _utcHour__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utcHour */ "./node_modules/d3-time/src/utcHour.js");
23709/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHour", function() { return _utcHour__WEBPACK_IMPORTED_MODULE_10__["default"]; });
23710
23711/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return _utcHour__WEBPACK_IMPORTED_MODULE_10__["utcHours"]; });
23712
23713/* harmony import */ var _utcDay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utcDay */ "./node_modules/d3-time/src/utcDay.js");
23714/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDay", function() { return _utcDay__WEBPACK_IMPORTED_MODULE_11__["default"]; });
23715
23716/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return _utcDay__WEBPACK_IMPORTED_MODULE_11__["utcDays"]; });
23717
23718/* harmony import */ var _utcWeek__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utcWeek */ "./node_modules/d3-time/src/utcWeek.js");
23719/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeek", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSunday"]; });
23720
23721/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeeks", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSundays"]; });
23722
23723/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSunday"]; });
23724
23725/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSundays"]; });
23726
23727/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcMonday"]; });
23728
23729/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcMondays"]; });
23730
23731/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcTuesday"]; });
23732
23733/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcTuesdays"]; });
23734
23735/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcWednesday"]; });
23736
23737/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcWednesdays"]; });
23738
23739/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcThursday"]; });
23740
23741/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcThursdays"]; });
23742
23743/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcFriday"]; });
23744
23745/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcFridays"]; });
23746
23747/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSaturday"]; });
23748
23749/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSaturdays"]; });
23750
23751/* harmony import */ var _utcMonth__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utcMonth */ "./node_modules/d3-time/src/utcMonth.js");
23752/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonth", function() { return _utcMonth__WEBPACK_IMPORTED_MODULE_13__["default"]; });
23753
23754/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return _utcMonth__WEBPACK_IMPORTED_MODULE_13__["utcMonths"]; });
23755
23756/* harmony import */ var _utcYear__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utcYear */ "./node_modules/d3-time/src/utcYear.js");
23757/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYear", function() { return _utcYear__WEBPACK_IMPORTED_MODULE_14__["default"]; });
23758
23759/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return _utcYear__WEBPACK_IMPORTED_MODULE_14__["utcYears"]; });
23760
23761
23762
23763
23764
23765
23766
23767
23768
23769
23770
23771
23772
23773
23774
23775
23776
23777
23778
23779
23780
23781
23782
23783
23784
23785
23786
23787
23788
23789
23790
23791
23792/***/ }),
23793
23794/***/ "./node_modules/d3-time/src/interval.js":
23795/*!**********************************************!*\
23796 !*** ./node_modules/d3-time/src/interval.js ***!
23797 \**********************************************/
23798/*! exports provided: default */
23799/***/ (function(module, __webpack_exports__, __webpack_require__) {
23800
23801"use strict";
23802__webpack_require__.r(__webpack_exports__);
23803/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return newInterval; });
23804var t0 = new Date,
23805 t1 = new Date;
23806
23807function newInterval(floori, offseti, count, field) {
23808
23809 function interval(date) {
23810 return floori(date = new Date(+date)), date;
23811 }
23812
23813 interval.floor = interval;
23814
23815 interval.ceil = function(date) {
23816 return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
23817 };
23818
23819 interval.round = function(date) {
23820 var d0 = interval(date),
23821 d1 = interval.ceil(date);
23822 return date - d0 < d1 - date ? d0 : d1;
23823 };
23824
23825 interval.offset = function(date, step) {
23826 return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
23827 };
23828
23829 interval.range = function(start, stop, step) {
23830 var range = [], previous;
23831 start = interval.ceil(start);
23832 step = step == null ? 1 : Math.floor(step);
23833 if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
23834 do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
23835 while (previous < start && start < stop);
23836 return range;
23837 };
23838
23839 interval.filter = function(test) {
23840 return newInterval(function(date) {
23841 if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
23842 }, function(date, step) {
23843 if (date >= date) {
23844 if (step < 0) while (++step <= 0) {
23845 while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
23846 } else while (--step >= 0) {
23847 while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
23848 }
23849 }
23850 });
23851 };
23852
23853 if (count) {
23854 interval.count = function(start, end) {
23855 t0.setTime(+start), t1.setTime(+end);
23856 floori(t0), floori(t1);
23857 return Math.floor(count(t0, t1));
23858 };
23859
23860 interval.every = function(step) {
23861 step = Math.floor(step);
23862 return !isFinite(step) || !(step > 0) ? null
23863 : !(step > 1) ? interval
23864 : interval.filter(field
23865 ? function(d) { return field(d) % step === 0; }
23866 : function(d) { return interval.count(0, d) % step === 0; });
23867 };
23868 }
23869
23870 return interval;
23871}
23872
23873
23874/***/ }),
23875
23876/***/ "./node_modules/d3-time/src/millisecond.js":
23877/*!*************************************************!*\
23878 !*** ./node_modules/d3-time/src/millisecond.js ***!
23879 \*************************************************/
23880/*! exports provided: default, milliseconds */
23881/***/ (function(module, __webpack_exports__, __webpack_require__) {
23882
23883"use strict";
23884__webpack_require__.r(__webpack_exports__);
23885/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "milliseconds", function() { return milliseconds; });
23886/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
23887
23888
23889var millisecond = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function() {
23890 // noop
23891}, function(date, step) {
23892 date.setTime(+date + step);
23893}, function(start, end) {
23894 return end - start;
23895});
23896
23897// An optimized implementation for this simple case.
23898millisecond.every = function(k) {
23899 k = Math.floor(k);
23900 if (!isFinite(k) || !(k > 0)) return null;
23901 if (!(k > 1)) return millisecond;
23902 return Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
23903 date.setTime(Math.floor(date / k) * k);
23904 }, function(date, step) {
23905 date.setTime(+date + step * k);
23906 }, function(start, end) {
23907 return (end - start) / k;
23908 });
23909};
23910
23911/* harmony default export */ __webpack_exports__["default"] = (millisecond);
23912var milliseconds = millisecond.range;
23913
23914
23915/***/ }),
23916
23917/***/ "./node_modules/d3-time/src/minute.js":
23918/*!********************************************!*\
23919 !*** ./node_modules/d3-time/src/minute.js ***!
23920 \********************************************/
23921/*! exports provided: default, minutes */
23922/***/ (function(module, __webpack_exports__, __webpack_require__) {
23923
23924"use strict";
23925__webpack_require__.r(__webpack_exports__);
23926/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "minutes", function() { return minutes; });
23927/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
23928/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
23929
23930
23931
23932var minute = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
23933 date.setTime(Math.floor(date / _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
23934}, function(date, step) {
23935 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
23936}, function(start, end) {
23937 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"];
23938}, function(date) {
23939 return date.getMinutes();
23940});
23941
23942/* harmony default export */ __webpack_exports__["default"] = (minute);
23943var minutes = minute.range;
23944
23945
23946/***/ }),
23947
23948/***/ "./node_modules/d3-time/src/month.js":
23949/*!*******************************************!*\
23950 !*** ./node_modules/d3-time/src/month.js ***!
23951 \*******************************************/
23952/*! exports provided: default, months */
23953/***/ (function(module, __webpack_exports__, __webpack_require__) {
23954
23955"use strict";
23956__webpack_require__.r(__webpack_exports__);
23957/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "months", function() { return months; });
23958/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
23959
23960
23961var month = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
23962 date.setDate(1);
23963 date.setHours(0, 0, 0, 0);
23964}, function(date, step) {
23965 date.setMonth(date.getMonth() + step);
23966}, function(start, end) {
23967 return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
23968}, function(date) {
23969 return date.getMonth();
23970});
23971
23972/* harmony default export */ __webpack_exports__["default"] = (month);
23973var months = month.range;
23974
23975
23976/***/ }),
23977
23978/***/ "./node_modules/d3-time/src/second.js":
23979/*!********************************************!*\
23980 !*** ./node_modules/d3-time/src/second.js ***!
23981 \********************************************/
23982/*! exports provided: default, seconds */
23983/***/ (function(module, __webpack_exports__, __webpack_require__) {
23984
23985"use strict";
23986__webpack_require__.r(__webpack_exports__);
23987/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "seconds", function() { return seconds; });
23988/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
23989/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
23990
23991
23992
23993var second = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
23994 date.setTime(Math.floor(date / _duration__WEBPACK_IMPORTED_MODULE_1__["durationSecond"]) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationSecond"]);
23995}, function(date, step) {
23996 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationSecond"]);
23997}, function(start, end) {
23998 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationSecond"];
23999}, function(date) {
24000 return date.getUTCSeconds();
24001});
24002
24003/* harmony default export */ __webpack_exports__["default"] = (second);
24004var seconds = second.range;
24005
24006
24007/***/ }),
24008
24009/***/ "./node_modules/d3-time/src/utcDay.js":
24010/*!********************************************!*\
24011 !*** ./node_modules/d3-time/src/utcDay.js ***!
24012 \********************************************/
24013/*! exports provided: default, utcDays */
24014/***/ (function(module, __webpack_exports__, __webpack_require__) {
24015
24016"use strict";
24017__webpack_require__.r(__webpack_exports__);
24018/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return utcDays; });
24019/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
24020/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
24021
24022
24023
24024var utcDay = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24025 date.setUTCHours(0, 0, 0, 0);
24026}, function(date, step) {
24027 date.setUTCDate(date.getUTCDate() + step);
24028}, function(start, end) {
24029 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationDay"];
24030}, function(date) {
24031 return date.getUTCDate() - 1;
24032});
24033
24034/* harmony default export */ __webpack_exports__["default"] = (utcDay);
24035var utcDays = utcDay.range;
24036
24037
24038/***/ }),
24039
24040/***/ "./node_modules/d3-time/src/utcHour.js":
24041/*!*********************************************!*\
24042 !*** ./node_modules/d3-time/src/utcHour.js ***!
24043 \*********************************************/
24044/*! exports provided: default, utcHours */
24045/***/ (function(module, __webpack_exports__, __webpack_require__) {
24046
24047"use strict";
24048__webpack_require__.r(__webpack_exports__);
24049/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return utcHours; });
24050/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
24051/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
24052
24053
24054
24055var utcHour = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24056 date.setUTCMinutes(0, 0, 0);
24057}, function(date, step) {
24058 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"]);
24059}, function(start, end) {
24060 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
24061}, function(date) {
24062 return date.getUTCHours();
24063});
24064
24065/* harmony default export */ __webpack_exports__["default"] = (utcHour);
24066var utcHours = utcHour.range;
24067
24068
24069/***/ }),
24070
24071/***/ "./node_modules/d3-time/src/utcMinute.js":
24072/*!***********************************************!*\
24073 !*** ./node_modules/d3-time/src/utcMinute.js ***!
24074 \***********************************************/
24075/*! exports provided: default, utcMinutes */
24076/***/ (function(module, __webpack_exports__, __webpack_require__) {
24077
24078"use strict";
24079__webpack_require__.r(__webpack_exports__);
24080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return utcMinutes; });
24081/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
24082/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
24083
24084
24085
24086var utcMinute = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24087 date.setUTCSeconds(0, 0);
24088}, function(date, step) {
24089 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
24090}, function(start, end) {
24091 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"];
24092}, function(date) {
24093 return date.getUTCMinutes();
24094});
24095
24096/* harmony default export */ __webpack_exports__["default"] = (utcMinute);
24097var utcMinutes = utcMinute.range;
24098
24099
24100/***/ }),
24101
24102/***/ "./node_modules/d3-time/src/utcMonth.js":
24103/*!**********************************************!*\
24104 !*** ./node_modules/d3-time/src/utcMonth.js ***!
24105 \**********************************************/
24106/*! exports provided: default, utcMonths */
24107/***/ (function(module, __webpack_exports__, __webpack_require__) {
24108
24109"use strict";
24110__webpack_require__.r(__webpack_exports__);
24111/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return utcMonths; });
24112/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
24113
24114
24115var utcMonth = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24116 date.setUTCDate(1);
24117 date.setUTCHours(0, 0, 0, 0);
24118}, function(date, step) {
24119 date.setUTCMonth(date.getUTCMonth() + step);
24120}, function(start, end) {
24121 return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
24122}, function(date) {
24123 return date.getUTCMonth();
24124});
24125
24126/* harmony default export */ __webpack_exports__["default"] = (utcMonth);
24127var utcMonths = utcMonth.range;
24128
24129
24130/***/ }),
24131
24132/***/ "./node_modules/d3-time/src/utcWeek.js":
24133/*!*********************************************!*\
24134 !*** ./node_modules/d3-time/src/utcWeek.js ***!
24135 \*********************************************/
24136/*! exports provided: utcSunday, utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSundays, utcMondays, utcTuesdays, utcWednesdays, utcThursdays, utcFridays, utcSaturdays */
24137/***/ (function(module, __webpack_exports__, __webpack_require__) {
24138
24139"use strict";
24140__webpack_require__.r(__webpack_exports__);
24141/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return utcSunday; });
24142/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return utcMonday; });
24143/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return utcTuesday; });
24144/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return utcWednesday; });
24145/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return utcThursday; });
24146/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return utcFriday; });
24147/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return utcSaturday; });
24148/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return utcSundays; });
24149/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return utcMondays; });
24150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return utcTuesdays; });
24151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return utcWednesdays; });
24152/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return utcThursdays; });
24153/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return utcFridays; });
24154/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return utcSaturdays; });
24155/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
24156/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
24157
24158
24159
24160function utcWeekday(i) {
24161 return Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24162 date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
24163 date.setUTCHours(0, 0, 0, 0);
24164 }, function(date, step) {
24165 date.setUTCDate(date.getUTCDate() + step * 7);
24166 }, function(start, end) {
24167 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationWeek"];
24168 });
24169}
24170
24171var utcSunday = utcWeekday(0);
24172var utcMonday = utcWeekday(1);
24173var utcTuesday = utcWeekday(2);
24174var utcWednesday = utcWeekday(3);
24175var utcThursday = utcWeekday(4);
24176var utcFriday = utcWeekday(5);
24177var utcSaturday = utcWeekday(6);
24178
24179var utcSundays = utcSunday.range;
24180var utcMondays = utcMonday.range;
24181var utcTuesdays = utcTuesday.range;
24182var utcWednesdays = utcWednesday.range;
24183var utcThursdays = utcThursday.range;
24184var utcFridays = utcFriday.range;
24185var utcSaturdays = utcSaturday.range;
24186
24187
24188/***/ }),
24189
24190/***/ "./node_modules/d3-time/src/utcYear.js":
24191/*!*********************************************!*\
24192 !*** ./node_modules/d3-time/src/utcYear.js ***!
24193 \*********************************************/
24194/*! exports provided: default, utcYears */
24195/***/ (function(module, __webpack_exports__, __webpack_require__) {
24196
24197"use strict";
24198__webpack_require__.r(__webpack_exports__);
24199/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return utcYears; });
24200/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
24201
24202
24203var utcYear = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24204 date.setUTCMonth(0, 1);
24205 date.setUTCHours(0, 0, 0, 0);
24206}, function(date, step) {
24207 date.setUTCFullYear(date.getUTCFullYear() + step);
24208}, function(start, end) {
24209 return end.getUTCFullYear() - start.getUTCFullYear();
24210}, function(date) {
24211 return date.getUTCFullYear();
24212});
24213
24214// An optimized implementation for this simple case.
24215utcYear.every = function(k) {
24216 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24217 date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
24218 date.setUTCMonth(0, 1);
24219 date.setUTCHours(0, 0, 0, 0);
24220 }, function(date, step) {
24221 date.setUTCFullYear(date.getUTCFullYear() + step * k);
24222 });
24223};
24224
24225/* harmony default export */ __webpack_exports__["default"] = (utcYear);
24226var utcYears = utcYear.range;
24227
24228
24229/***/ }),
24230
24231/***/ "./node_modules/d3-time/src/week.js":
24232/*!******************************************!*\
24233 !*** ./node_modules/d3-time/src/week.js ***!
24234 \******************************************/
24235/*! exports provided: sunday, monday, tuesday, wednesday, thursday, friday, saturday, sundays, mondays, tuesdays, wednesdays, thursdays, fridays, saturdays */
24236/***/ (function(module, __webpack_exports__, __webpack_require__) {
24237
24238"use strict";
24239__webpack_require__.r(__webpack_exports__);
24240/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sunday", function() { return sunday; });
24241/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monday", function() { return monday; });
24242/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tuesday", function() { return tuesday; });
24243/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wednesday", function() { return wednesday; });
24244/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "thursday", function() { return thursday; });
24245/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "friday", function() { return friday; });
24246/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "saturday", function() { return saturday; });
24247/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sundays", function() { return sundays; });
24248/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mondays", function() { return mondays; });
24249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tuesdays", function() { return tuesdays; });
24250/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wednesdays", function() { return wednesdays; });
24251/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "thursdays", function() { return thursdays; });
24252/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fridays", function() { return fridays; });
24253/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "saturdays", function() { return saturdays; });
24254/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
24255/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
24256
24257
24258
24259function weekday(i) {
24260 return Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24261 date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
24262 date.setHours(0, 0, 0, 0);
24263 }, function(date, step) {
24264 date.setDate(date.getDate() + step * 7);
24265 }, function(start, end) {
24266 return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationWeek"];
24267 });
24268}
24269
24270var sunday = weekday(0);
24271var monday = weekday(1);
24272var tuesday = weekday(2);
24273var wednesday = weekday(3);
24274var thursday = weekday(4);
24275var friday = weekday(5);
24276var saturday = weekday(6);
24277
24278var sundays = sunday.range;
24279var mondays = monday.range;
24280var tuesdays = tuesday.range;
24281var wednesdays = wednesday.range;
24282var thursdays = thursday.range;
24283var fridays = friday.range;
24284var saturdays = saturday.range;
24285
24286
24287/***/ }),
24288
24289/***/ "./node_modules/d3-time/src/year.js":
24290/*!******************************************!*\
24291 !*** ./node_modules/d3-time/src/year.js ***!
24292 \******************************************/
24293/*! exports provided: default, years */
24294/***/ (function(module, __webpack_exports__, __webpack_require__) {
24295
24296"use strict";
24297__webpack_require__.r(__webpack_exports__);
24298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "years", function() { return years; });
24299/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
24300
24301
24302var year = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24303 date.setMonth(0, 1);
24304 date.setHours(0, 0, 0, 0);
24305}, function(date, step) {
24306 date.setFullYear(date.getFullYear() + step);
24307}, function(start, end) {
24308 return end.getFullYear() - start.getFullYear();
24309}, function(date) {
24310 return date.getFullYear();
24311});
24312
24313// An optimized implementation for this simple case.
24314year.every = function(k) {
24315 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24316 date.setFullYear(Math.floor(date.getFullYear() / k) * k);
24317 date.setMonth(0, 1);
24318 date.setHours(0, 0, 0, 0);
24319 }, function(date, step) {
24320 date.setFullYear(date.getFullYear() + step * k);
24321 });
24322};
24323
24324/* harmony default export */ __webpack_exports__["default"] = (year);
24325var years = year.range;
24326
24327
24328/***/ }),
24329
24330/***/ "./node_modules/d3-timer/src/index.js":
24331/*!********************************************!*\
24332 !*** ./node_modules/d3-timer/src/index.js ***!
24333 \********************************************/
24334/*! exports provided: now, timer, timerFlush, timeout, interval */
24335/***/ (function(module, __webpack_exports__, __webpack_require__) {
24336
24337"use strict";
24338__webpack_require__.r(__webpack_exports__);
24339/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer */ "./node_modules/d3-timer/src/timer.js");
24340/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "now", function() { return _timer__WEBPACK_IMPORTED_MODULE_0__["now"]; });
24341
24342/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return _timer__WEBPACK_IMPORTED_MODULE_0__["timer"]; });
24343
24344/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return _timer__WEBPACK_IMPORTED_MODULE_0__["timerFlush"]; });
24345
24346/* harmony import */ var _timeout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./timeout */ "./node_modules/d3-timer/src/timeout.js");
24347/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _timeout__WEBPACK_IMPORTED_MODULE_1__["default"]; });
24348
24349/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-timer/src/interval.js");
24350/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return _interval__WEBPACK_IMPORTED_MODULE_2__["default"]; });
24351
24352
24353
24354
24355
24356
24357
24358
24359/***/ }),
24360
24361/***/ "./node_modules/d3-timer/src/interval.js":
24362/*!***********************************************!*\
24363 !*** ./node_modules/d3-timer/src/interval.js ***!
24364 \***********************************************/
24365/*! exports provided: default */
24366/***/ (function(module, __webpack_exports__, __webpack_require__) {
24367
24368"use strict";
24369__webpack_require__.r(__webpack_exports__);
24370/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer */ "./node_modules/d3-timer/src/timer.js");
24371
24372
24373/* harmony default export */ __webpack_exports__["default"] = (function(callback, delay, time) {
24374 var t = new _timer__WEBPACK_IMPORTED_MODULE_0__["Timer"], total = delay;
24375 if (delay == null) return t.restart(callback, delay, time), t;
24376 delay = +delay, time = time == null ? Object(_timer__WEBPACK_IMPORTED_MODULE_0__["now"])() : +time;
24377 t.restart(function tick(elapsed) {
24378 elapsed += total;
24379 t.restart(tick, total += delay, time);
24380 callback(elapsed);
24381 }, delay, time);
24382 return t;
24383});
24384
24385
24386/***/ }),
24387
24388/***/ "./node_modules/d3-timer/src/timeout.js":
24389/*!**********************************************!*\
24390 !*** ./node_modules/d3-timer/src/timeout.js ***!
24391 \**********************************************/
24392/*! exports provided: default */
24393/***/ (function(module, __webpack_exports__, __webpack_require__) {
24394
24395"use strict";
24396__webpack_require__.r(__webpack_exports__);
24397/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer */ "./node_modules/d3-timer/src/timer.js");
24398
24399
24400/* harmony default export */ __webpack_exports__["default"] = (function(callback, delay, time) {
24401 var t = new _timer__WEBPACK_IMPORTED_MODULE_0__["Timer"];
24402 delay = delay == null ? 0 : +delay;
24403 t.restart(function(elapsed) {
24404 t.stop();
24405 callback(elapsed + delay);
24406 }, delay, time);
24407 return t;
24408});
24409
24410
24411/***/ }),
24412
24413/***/ "./node_modules/d3-timer/src/timer.js":
24414/*!********************************************!*\
24415 !*** ./node_modules/d3-timer/src/timer.js ***!
24416 \********************************************/
24417/*! exports provided: now, Timer, timer, timerFlush */
24418/***/ (function(module, __webpack_exports__, __webpack_require__) {
24419
24420"use strict";
24421__webpack_require__.r(__webpack_exports__);
24422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "now", function() { return now; });
24423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return Timer; });
24424/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return timer; });
24425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return timerFlush; });
24426var frame = 0, // is an animation frame pending?
24427 timeout = 0, // is a timeout pending?
24428 interval = 0, // are any timers active?
24429 pokeDelay = 1000, // how frequently we check for clock skew
24430 taskHead,
24431 taskTail,
24432 clockLast = 0,
24433 clockNow = 0,
24434 clockSkew = 0,
24435 clock = typeof performance === "object" && performance.now ? performance : Date,
24436 setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };
24437
24438function now() {
24439 return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
24440}
24441
24442function clearNow() {
24443 clockNow = 0;
24444}
24445
24446function Timer() {
24447 this._call =
24448 this._time =
24449 this._next = null;
24450}
24451
24452Timer.prototype = timer.prototype = {
24453 constructor: Timer,
24454 restart: function(callback, delay, time) {
24455 if (typeof callback !== "function") throw new TypeError("callback is not a function");
24456 time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
24457 if (!this._next && taskTail !== this) {
24458 if (taskTail) taskTail._next = this;
24459 else taskHead = this;
24460 taskTail = this;
24461 }
24462 this._call = callback;
24463 this._time = time;
24464 sleep();
24465 },
24466 stop: function() {
24467 if (this._call) {
24468 this._call = null;
24469 this._time = Infinity;
24470 sleep();
24471 }
24472 }
24473};
24474
24475function timer(callback, delay, time) {
24476 var t = new Timer;
24477 t.restart(callback, delay, time);
24478 return t;
24479}
24480
24481function timerFlush() {
24482 now(); // Get the current time, if not already set.
24483 ++frame; // Pretend we’ve set an alarm, if we haven’t already.
24484 var t = taskHead, e;
24485 while (t) {
24486 if ((e = clockNow - t._time) >= 0) t._call.call(null, e);
24487 t = t._next;
24488 }
24489 --frame;
24490}
24491
24492function wake() {
24493 clockNow = (clockLast = clock.now()) + clockSkew;
24494 frame = timeout = 0;
24495 try {
24496 timerFlush();
24497 } finally {
24498 frame = 0;
24499 nap();
24500 clockNow = 0;
24501 }
24502}
24503
24504function poke() {
24505 var now = clock.now(), delay = now - clockLast;
24506 if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
24507}
24508
24509function nap() {
24510 var t0, t1 = taskHead, t2, time = Infinity;
24511 while (t1) {
24512 if (t1._call) {
24513 if (time > t1._time) time = t1._time;
24514 t0 = t1, t1 = t1._next;
24515 } else {
24516 t2 = t1._next, t1._next = null;
24517 t1 = t0 ? t0._next = t2 : taskHead = t2;
24518 }
24519 }
24520 taskTail = t0;
24521 sleep(time);
24522}
24523
24524function sleep(time) {
24525 if (frame) return; // Soonest alarm already set, or will be.
24526 if (timeout) timeout = clearTimeout(timeout);
24527 var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
24528 if (delay > 24) {
24529 if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
24530 if (interval) interval = clearInterval(interval);
24531 } else {
24532 if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
24533 frame = 1, setFrame(wake);
24534 }
24535}
24536
24537
24538/***/ }),
24539
24540/***/ "./node_modules/d3-transition/src/active.js":
24541/*!**************************************************!*\
24542 !*** ./node_modules/d3-transition/src/active.js ***!
24543 \**************************************************/
24544/*! exports provided: default */
24545/***/ (function(module, __webpack_exports__, __webpack_require__) {
24546
24547"use strict";
24548__webpack_require__.r(__webpack_exports__);
24549/* harmony import */ var _transition_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transition/index */ "./node_modules/d3-transition/src/transition/index.js");
24550/* harmony import */ var _transition_schedule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transition/schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
24551
24552
24553
24554var root = [null];
24555
24556/* harmony default export */ __webpack_exports__["default"] = (function(node, name) {
24557 var schedules = node.__transition,
24558 schedule,
24559 i;
24560
24561 if (schedules) {
24562 name = name == null ? null : name + "";
24563 for (i in schedules) {
24564 if ((schedule = schedules[i]).state > _transition_schedule__WEBPACK_IMPORTED_MODULE_1__["SCHEDULED"] && schedule.name === name) {
24565 return new _transition_index__WEBPACK_IMPORTED_MODULE_0__["Transition"]([[node]], root, name, +i);
24566 }
24567 }
24568 }
24569
24570 return null;
24571});
24572
24573
24574/***/ }),
24575
24576/***/ "./node_modules/d3-transition/src/index.js":
24577/*!*************************************************!*\
24578 !*** ./node_modules/d3-transition/src/index.js ***!
24579 \*************************************************/
24580/*! exports provided: transition, active, interrupt */
24581/***/ (function(module, __webpack_exports__, __webpack_require__) {
24582
24583"use strict";
24584__webpack_require__.r(__webpack_exports__);
24585/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-transition/src/selection/index.js");
24586/* harmony import */ var _transition_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transition/index */ "./node_modules/d3-transition/src/transition/index.js");
24587/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return _transition_index__WEBPACK_IMPORTED_MODULE_1__["default"]; });
24588
24589/* harmony import */ var _active__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./active */ "./node_modules/d3-transition/src/active.js");
24590/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "active", function() { return _active__WEBPACK_IMPORTED_MODULE_2__["default"]; });
24591
24592/* harmony import */ var _interrupt__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interrupt */ "./node_modules/d3-transition/src/interrupt.js");
24593/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interrupt", function() { return _interrupt__WEBPACK_IMPORTED_MODULE_3__["default"]; });
24594
24595
24596
24597
24598
24599
24600
24601/***/ }),
24602
24603/***/ "./node_modules/d3-transition/src/interrupt.js":
24604/*!*****************************************************!*\
24605 !*** ./node_modules/d3-transition/src/interrupt.js ***!
24606 \*****************************************************/
24607/*! exports provided: default */
24608/***/ (function(module, __webpack_exports__, __webpack_require__) {
24609
24610"use strict";
24611__webpack_require__.r(__webpack_exports__);
24612/* harmony import */ var _transition_schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transition/schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
24613
24614
24615/* harmony default export */ __webpack_exports__["default"] = (function(node, name) {
24616 var schedules = node.__transition,
24617 schedule,
24618 active,
24619 empty = true,
24620 i;
24621
24622 if (!schedules) return;
24623
24624 name = name == null ? null : name + "";
24625
24626 for (i in schedules) {
24627 if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
24628 active = schedule.state > _transition_schedule__WEBPACK_IMPORTED_MODULE_0__["STARTING"] && schedule.state < _transition_schedule__WEBPACK_IMPORTED_MODULE_0__["ENDING"];
24629 schedule.state = _transition_schedule__WEBPACK_IMPORTED_MODULE_0__["ENDED"];
24630 schedule.timer.stop();
24631 if (active) schedule.on.call("interrupt", node, node.__data__, schedule.index, schedule.group);
24632 delete schedules[i];
24633 }
24634
24635 if (empty) delete node.__transition;
24636});
24637
24638
24639/***/ }),
24640
24641/***/ "./node_modules/d3-transition/src/selection/index.js":
24642/*!***********************************************************!*\
24643 !*** ./node_modules/d3-transition/src/selection/index.js ***!
24644 \***********************************************************/
24645/*! no exports provided */
24646/***/ (function(module, __webpack_exports__, __webpack_require__) {
24647
24648"use strict";
24649__webpack_require__.r(__webpack_exports__);
24650/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
24651/* harmony import */ var _interrupt__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./interrupt */ "./node_modules/d3-transition/src/selection/interrupt.js");
24652/* harmony import */ var _transition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transition */ "./node_modules/d3-transition/src/selection/transition.js");
24653
24654
24655
24656
24657d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.interrupt = _interrupt__WEBPACK_IMPORTED_MODULE_1__["default"];
24658d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.transition = _transition__WEBPACK_IMPORTED_MODULE_2__["default"];
24659
24660
24661/***/ }),
24662
24663/***/ "./node_modules/d3-transition/src/selection/interrupt.js":
24664/*!***************************************************************!*\
24665 !*** ./node_modules/d3-transition/src/selection/interrupt.js ***!
24666 \***************************************************************/
24667/*! exports provided: default */
24668/***/ (function(module, __webpack_exports__, __webpack_require__) {
24669
24670"use strict";
24671__webpack_require__.r(__webpack_exports__);
24672/* harmony import */ var _interrupt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interrupt */ "./node_modules/d3-transition/src/interrupt.js");
24673
24674
24675/* harmony default export */ __webpack_exports__["default"] = (function(name) {
24676 return this.each(function() {
24677 Object(_interrupt__WEBPACK_IMPORTED_MODULE_0__["default"])(this, name);
24678 });
24679});
24680
24681
24682/***/ }),
24683
24684/***/ "./node_modules/d3-transition/src/selection/transition.js":
24685/*!****************************************************************!*\
24686 !*** ./node_modules/d3-transition/src/selection/transition.js ***!
24687 \****************************************************************/
24688/*! exports provided: default */
24689/***/ (function(module, __webpack_exports__, __webpack_require__) {
24690
24691"use strict";
24692__webpack_require__.r(__webpack_exports__);
24693/* harmony import */ var _transition_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transition/index */ "./node_modules/d3-transition/src/transition/index.js");
24694/* harmony import */ var _transition_schedule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transition/schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
24695/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-ease */ "./node_modules/d3-ease/src/index.js");
24696/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
24697
24698
24699
24700
24701
24702var defaultTiming = {
24703 time: null, // Set on use.
24704 delay: 0,
24705 duration: 250,
24706 ease: d3_ease__WEBPACK_IMPORTED_MODULE_2__["easeCubicInOut"]
24707};
24708
24709function inherit(node, id) {
24710 var timing;
24711 while (!(timing = node.__transition) || !(timing = timing[id])) {
24712 if (!(node = node.parentNode)) {
24713 return defaultTiming.time = Object(d3_timer__WEBPACK_IMPORTED_MODULE_3__["now"])(), defaultTiming;
24714 }
24715 }
24716 return timing;
24717}
24718
24719/* harmony default export */ __webpack_exports__["default"] = (function(name) {
24720 var id,
24721 timing;
24722
24723 if (name instanceof _transition_index__WEBPACK_IMPORTED_MODULE_0__["Transition"]) {
24724 id = name._id, name = name._name;
24725 } else {
24726 id = Object(_transition_index__WEBPACK_IMPORTED_MODULE_0__["newId"])(), (timing = defaultTiming).time = Object(d3_timer__WEBPACK_IMPORTED_MODULE_3__["now"])(), name = name == null ? null : name + "";
24727 }
24728
24729 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
24730 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
24731 if (node = group[i]) {
24732 Object(_transition_schedule__WEBPACK_IMPORTED_MODULE_1__["default"])(node, name, id, i, group, timing || inherit(node, id));
24733 }
24734 }
24735 }
24736
24737 return new _transition_index__WEBPACK_IMPORTED_MODULE_0__["Transition"](groups, this._parents, name, id);
24738});
24739
24740
24741/***/ }),
24742
24743/***/ "./node_modules/d3-transition/src/transition/attr.js":
24744/*!***********************************************************!*\
24745 !*** ./node_modules/d3-transition/src/transition/attr.js ***!
24746 \***********************************************************/
24747/*! exports provided: default */
24748/***/ (function(module, __webpack_exports__, __webpack_require__) {
24749
24750"use strict";
24751__webpack_require__.r(__webpack_exports__);
24752/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
24753/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
24754/* harmony import */ var _tween__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tween */ "./node_modules/d3-transition/src/transition/tween.js");
24755/* harmony import */ var _interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interpolate */ "./node_modules/d3-transition/src/transition/interpolate.js");
24756
24757
24758
24759
24760
24761function attrRemove(name) {
24762 return function() {
24763 this.removeAttribute(name);
24764 };
24765}
24766
24767function attrRemoveNS(fullname) {
24768 return function() {
24769 this.removeAttributeNS(fullname.space, fullname.local);
24770 };
24771}
24772
24773function attrConstant(name, interpolate, value1) {
24774 var value00,
24775 interpolate0;
24776 return function() {
24777 var value0 = this.getAttribute(name);
24778 return value0 === value1 ? null
24779 : value0 === value00 ? interpolate0
24780 : interpolate0 = interpolate(value00 = value0, value1);
24781 };
24782}
24783
24784function attrConstantNS(fullname, interpolate, value1) {
24785 var value00,
24786 interpolate0;
24787 return function() {
24788 var value0 = this.getAttributeNS(fullname.space, fullname.local);
24789 return value0 === value1 ? null
24790 : value0 === value00 ? interpolate0
24791 : interpolate0 = interpolate(value00 = value0, value1);
24792 };
24793}
24794
24795function attrFunction(name, interpolate, value) {
24796 var value00,
24797 value10,
24798 interpolate0;
24799 return function() {
24800 var value0, value1 = value(this);
24801 if (value1 == null) return void this.removeAttribute(name);
24802 value0 = this.getAttribute(name);
24803 return value0 === value1 ? null
24804 : value0 === value00 && value1 === value10 ? interpolate0
24805 : interpolate0 = interpolate(value00 = value0, value10 = value1);
24806 };
24807}
24808
24809function attrFunctionNS(fullname, interpolate, value) {
24810 var value00,
24811 value10,
24812 interpolate0;
24813 return function() {
24814 var value0, value1 = value(this);
24815 if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
24816 value0 = this.getAttributeNS(fullname.space, fullname.local);
24817 return value0 === value1 ? null
24818 : value0 === value00 && value1 === value10 ? interpolate0
24819 : interpolate0 = interpolate(value00 = value0, value10 = value1);
24820 };
24821}
24822
24823/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
24824 var fullname = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["namespace"])(name), i = fullname === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["interpolateTransformSvg"] : _interpolate__WEBPACK_IMPORTED_MODULE_3__["default"];
24825 return this.attrTween(name, typeof value === "function"
24826 ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, Object(_tween__WEBPACK_IMPORTED_MODULE_2__["tweenValue"])(this, "attr." + name, value))
24827 : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)
24828 : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + ""));
24829});
24830
24831
24832/***/ }),
24833
24834/***/ "./node_modules/d3-transition/src/transition/attrTween.js":
24835/*!****************************************************************!*\
24836 !*** ./node_modules/d3-transition/src/transition/attrTween.js ***!
24837 \****************************************************************/
24838/*! exports provided: default */
24839/***/ (function(module, __webpack_exports__, __webpack_require__) {
24840
24841"use strict";
24842__webpack_require__.r(__webpack_exports__);
24843/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
24844
24845
24846function attrTweenNS(fullname, value) {
24847 function tween() {
24848 var node = this, i = value.apply(node, arguments);
24849 return i && function(t) {
24850 node.setAttributeNS(fullname.space, fullname.local, i(t));
24851 };
24852 }
24853 tween._value = value;
24854 return tween;
24855}
24856
24857function attrTween(name, value) {
24858 function tween() {
24859 var node = this, i = value.apply(node, arguments);
24860 return i && function(t) {
24861 node.setAttribute(name, i(t));
24862 };
24863 }
24864 tween._value = value;
24865 return tween;
24866}
24867
24868/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
24869 var key = "attr." + name;
24870 if (arguments.length < 2) return (key = this.tween(key)) && key._value;
24871 if (value == null) return this.tween(key, null);
24872 if (typeof value !== "function") throw new Error;
24873 var fullname = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["namespace"])(name);
24874 return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
24875});
24876
24877
24878/***/ }),
24879
24880/***/ "./node_modules/d3-transition/src/transition/delay.js":
24881/*!************************************************************!*\
24882 !*** ./node_modules/d3-transition/src/transition/delay.js ***!
24883 \************************************************************/
24884/*! exports provided: default */
24885/***/ (function(module, __webpack_exports__, __webpack_require__) {
24886
24887"use strict";
24888__webpack_require__.r(__webpack_exports__);
24889/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
24890
24891
24892function delayFunction(id, value) {
24893 return function() {
24894 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["init"])(this, id).delay = +value.apply(this, arguments);
24895 };
24896}
24897
24898function delayConstant(id, value) {
24899 return value = +value, function() {
24900 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["init"])(this, id).delay = value;
24901 };
24902}
24903
24904/* harmony default export */ __webpack_exports__["default"] = (function(value) {
24905 var id = this._id;
24906
24907 return arguments.length
24908 ? this.each((typeof value === "function"
24909 ? delayFunction
24910 : delayConstant)(id, value))
24911 : Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).delay;
24912});
24913
24914
24915/***/ }),
24916
24917/***/ "./node_modules/d3-transition/src/transition/duration.js":
24918/*!***************************************************************!*\
24919 !*** ./node_modules/d3-transition/src/transition/duration.js ***!
24920 \***************************************************************/
24921/*! exports provided: default */
24922/***/ (function(module, __webpack_exports__, __webpack_require__) {
24923
24924"use strict";
24925__webpack_require__.r(__webpack_exports__);
24926/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
24927
24928
24929function durationFunction(id, value) {
24930 return function() {
24931 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).duration = +value.apply(this, arguments);
24932 };
24933}
24934
24935function durationConstant(id, value) {
24936 return value = +value, function() {
24937 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).duration = value;
24938 };
24939}
24940
24941/* harmony default export */ __webpack_exports__["default"] = (function(value) {
24942 var id = this._id;
24943
24944 return arguments.length
24945 ? this.each((typeof value === "function"
24946 ? durationFunction
24947 : durationConstant)(id, value))
24948 : Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).duration;
24949});
24950
24951
24952/***/ }),
24953
24954/***/ "./node_modules/d3-transition/src/transition/ease.js":
24955/*!***********************************************************!*\
24956 !*** ./node_modules/d3-transition/src/transition/ease.js ***!
24957 \***********************************************************/
24958/*! exports provided: default */
24959/***/ (function(module, __webpack_exports__, __webpack_require__) {
24960
24961"use strict";
24962__webpack_require__.r(__webpack_exports__);
24963/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
24964
24965
24966function easeConstant(id, value) {
24967 if (typeof value !== "function") throw new Error;
24968 return function() {
24969 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).ease = value;
24970 };
24971}
24972
24973/* harmony default export */ __webpack_exports__["default"] = (function(value) {
24974 var id = this._id;
24975
24976 return arguments.length
24977 ? this.each(easeConstant(id, value))
24978 : Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).ease;
24979});
24980
24981
24982/***/ }),
24983
24984/***/ "./node_modules/d3-transition/src/transition/filter.js":
24985/*!*************************************************************!*\
24986 !*** ./node_modules/d3-transition/src/transition/filter.js ***!
24987 \*************************************************************/
24988/*! exports provided: default */
24989/***/ (function(module, __webpack_exports__, __webpack_require__) {
24990
24991"use strict";
24992__webpack_require__.r(__webpack_exports__);
24993/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
24994/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
24995
24996
24997
24998/* harmony default export */ __webpack_exports__["default"] = (function(match) {
24999 if (typeof match !== "function") match = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["matcher"])(match);
25000
25001 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
25002 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
25003 if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
25004 subgroup.push(node);
25005 }
25006 }
25007 }
25008
25009 return new _index__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, this._parents, this._name, this._id);
25010});
25011
25012
25013/***/ }),
25014
25015/***/ "./node_modules/d3-transition/src/transition/index.js":
25016/*!************************************************************!*\
25017 !*** ./node_modules/d3-transition/src/transition/index.js ***!
25018 \************************************************************/
25019/*! exports provided: Transition, default, newId */
25020/***/ (function(module, __webpack_exports__, __webpack_require__) {
25021
25022"use strict";
25023__webpack_require__.r(__webpack_exports__);
25024/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transition", function() { return Transition; });
25025/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return transition; });
25026/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "newId", function() { return newId; });
25027/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25028/* harmony import */ var _attr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./attr */ "./node_modules/d3-transition/src/transition/attr.js");
25029/* harmony import */ var _attrTween__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./attrTween */ "./node_modules/d3-transition/src/transition/attrTween.js");
25030/* harmony import */ var _delay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delay */ "./node_modules/d3-transition/src/transition/delay.js");
25031/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-transition/src/transition/duration.js");
25032/* harmony import */ var _ease__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ease */ "./node_modules/d3-transition/src/transition/ease.js");
25033/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter */ "./node_modules/d3-transition/src/transition/filter.js");
25034/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./merge */ "./node_modules/d3-transition/src/transition/merge.js");
25035/* harmony import */ var _on__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./on */ "./node_modules/d3-transition/src/transition/on.js");
25036/* harmony import */ var _remove__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./remove */ "./node_modules/d3-transition/src/transition/remove.js");
25037/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./select */ "./node_modules/d3-transition/src/transition/select.js");
25038/* harmony import */ var _selectAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./selectAll */ "./node_modules/d3-transition/src/transition/selectAll.js");
25039/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./selection */ "./node_modules/d3-transition/src/transition/selection.js");
25040/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./style */ "./node_modules/d3-transition/src/transition/style.js");
25041/* harmony import */ var _styleTween__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./styleTween */ "./node_modules/d3-transition/src/transition/styleTween.js");
25042/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./text */ "./node_modules/d3-transition/src/transition/text.js");
25043/* harmony import */ var _transition__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./transition */ "./node_modules/d3-transition/src/transition/transition.js");
25044/* harmony import */ var _tween__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tween */ "./node_modules/d3-transition/src/transition/tween.js");
25045
25046
25047
25048
25049
25050
25051
25052
25053
25054
25055
25056
25057
25058
25059
25060
25061
25062
25063
25064var id = 0;
25065
25066function Transition(groups, parents, name, id) {
25067 this._groups = groups;
25068 this._parents = parents;
25069 this._name = name;
25070 this._id = id;
25071}
25072
25073function transition(name) {
25074 return Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"])().transition(name);
25075}
25076
25077function newId() {
25078 return ++id;
25079}
25080
25081var selection_prototype = d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype;
25082
25083Transition.prototype = transition.prototype = {
25084 constructor: Transition,
25085 select: _select__WEBPACK_IMPORTED_MODULE_10__["default"],
25086 selectAll: _selectAll__WEBPACK_IMPORTED_MODULE_11__["default"],
25087 filter: _filter__WEBPACK_IMPORTED_MODULE_6__["default"],
25088 merge: _merge__WEBPACK_IMPORTED_MODULE_7__["default"],
25089 selection: _selection__WEBPACK_IMPORTED_MODULE_12__["default"],
25090 transition: _transition__WEBPACK_IMPORTED_MODULE_16__["default"],
25091 call: selection_prototype.call,
25092 nodes: selection_prototype.nodes,
25093 node: selection_prototype.node,
25094 size: selection_prototype.size,
25095 empty: selection_prototype.empty,
25096 each: selection_prototype.each,
25097 on: _on__WEBPACK_IMPORTED_MODULE_8__["default"],
25098 attr: _attr__WEBPACK_IMPORTED_MODULE_1__["default"],
25099 attrTween: _attrTween__WEBPACK_IMPORTED_MODULE_2__["default"],
25100 style: _style__WEBPACK_IMPORTED_MODULE_13__["default"],
25101 styleTween: _styleTween__WEBPACK_IMPORTED_MODULE_14__["default"],
25102 text: _text__WEBPACK_IMPORTED_MODULE_15__["default"],
25103 remove: _remove__WEBPACK_IMPORTED_MODULE_9__["default"],
25104 tween: _tween__WEBPACK_IMPORTED_MODULE_17__["default"],
25105 delay: _delay__WEBPACK_IMPORTED_MODULE_3__["default"],
25106 duration: _duration__WEBPACK_IMPORTED_MODULE_4__["default"],
25107 ease: _ease__WEBPACK_IMPORTED_MODULE_5__["default"]
25108};
25109
25110
25111/***/ }),
25112
25113/***/ "./node_modules/d3-transition/src/transition/interpolate.js":
25114/*!******************************************************************!*\
25115 !*** ./node_modules/d3-transition/src/transition/interpolate.js ***!
25116 \******************************************************************/
25117/*! exports provided: default */
25118/***/ (function(module, __webpack_exports__, __webpack_require__) {
25119
25120"use strict";
25121__webpack_require__.r(__webpack_exports__);
25122/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
25123/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
25124
25125
25126
25127/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
25128 var c;
25129 return (typeof b === "number" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateNumber"]
25130 : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_0__["color"] ? d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRgb"]
25131 : (c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["color"])(b)) ? (b = c, d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRgb"])
25132 : d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateString"])(a, b);
25133});
25134
25135
25136/***/ }),
25137
25138/***/ "./node_modules/d3-transition/src/transition/merge.js":
25139/*!************************************************************!*\
25140 !*** ./node_modules/d3-transition/src/transition/merge.js ***!
25141 \************************************************************/
25142/*! exports provided: default */
25143/***/ (function(module, __webpack_exports__, __webpack_require__) {
25144
25145"use strict";
25146__webpack_require__.r(__webpack_exports__);
25147/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
25148
25149
25150/* harmony default export */ __webpack_exports__["default"] = (function(transition) {
25151 if (transition._id !== this._id) throw new Error;
25152
25153 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) {
25154 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
25155 if (node = group0[i] || group1[i]) {
25156 merge[i] = node;
25157 }
25158 }
25159 }
25160
25161 for (; j < m0; ++j) {
25162 merges[j] = groups0[j];
25163 }
25164
25165 return new _index__WEBPACK_IMPORTED_MODULE_0__["Transition"](merges, this._parents, this._name, this._id);
25166});
25167
25168
25169/***/ }),
25170
25171/***/ "./node_modules/d3-transition/src/transition/on.js":
25172/*!*********************************************************!*\
25173 !*** ./node_modules/d3-transition/src/transition/on.js ***!
25174 \*********************************************************/
25175/*! exports provided: default */
25176/***/ (function(module, __webpack_exports__, __webpack_require__) {
25177
25178"use strict";
25179__webpack_require__.r(__webpack_exports__);
25180/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
25181
25182
25183function start(name) {
25184 return (name + "").trim().split(/^|\s+/).every(function(t) {
25185 var i = t.indexOf(".");
25186 if (i >= 0) t = t.slice(0, i);
25187 return !t || t === "start";
25188 });
25189}
25190
25191function onFunction(id, name, listener) {
25192 var on0, on1, sit = start(name) ? _schedule__WEBPACK_IMPORTED_MODULE_0__["init"] : _schedule__WEBPACK_IMPORTED_MODULE_0__["set"];
25193 return function() {
25194 var schedule = sit(this, id),
25195 on = schedule.on;
25196
25197 // If this node shared a dispatch with the previous node,
25198 // just assign the updated shared dispatch and we’re done!
25199 // Otherwise, copy-on-write.
25200 if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
25201
25202 schedule.on = on1;
25203 };
25204}
25205
25206/* harmony default export */ __webpack_exports__["default"] = (function(name, listener) {
25207 var id = this._id;
25208
25209 return arguments.length < 2
25210 ? Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).on.on(name)
25211 : this.each(onFunction(id, name, listener));
25212});
25213
25214
25215/***/ }),
25216
25217/***/ "./node_modules/d3-transition/src/transition/remove.js":
25218/*!*************************************************************!*\
25219 !*** ./node_modules/d3-transition/src/transition/remove.js ***!
25220 \*************************************************************/
25221/*! exports provided: default */
25222/***/ (function(module, __webpack_exports__, __webpack_require__) {
25223
25224"use strict";
25225__webpack_require__.r(__webpack_exports__);
25226function removeFunction(id) {
25227 return function() {
25228 var parent = this.parentNode;
25229 for (var i in this.__transition) if (+i !== id) return;
25230 if (parent) parent.removeChild(this);
25231 };
25232}
25233
25234/* harmony default export */ __webpack_exports__["default"] = (function() {
25235 return this.on("end.remove", removeFunction(this._id));
25236});
25237
25238
25239/***/ }),
25240
25241/***/ "./node_modules/d3-transition/src/transition/schedule.js":
25242/*!***************************************************************!*\
25243 !*** ./node_modules/d3-transition/src/transition/schedule.js ***!
25244 \***************************************************************/
25245/*! exports provided: CREATED, SCHEDULED, STARTING, STARTED, RUNNING, ENDING, ENDED, default, init, set, get */
25246/***/ (function(module, __webpack_exports__, __webpack_require__) {
25247
25248"use strict";
25249__webpack_require__.r(__webpack_exports__);
25250/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATED", function() { return CREATED; });
25251/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCHEDULED", function() { return SCHEDULED; });
25252/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "STARTING", function() { return STARTING; });
25253/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "STARTED", function() { return STARTED; });
25254/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RUNNING", function() { return RUNNING; });
25255/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ENDING", function() { return ENDING; });
25256/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ENDED", function() { return ENDED; });
25257/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "init", function() { return init; });
25258/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
25259/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
25260/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
25261/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
25262
25263
25264
25265var emptyOn = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "end", "interrupt");
25266var emptyTween = [];
25267
25268var CREATED = 0;
25269var SCHEDULED = 1;
25270var STARTING = 2;
25271var STARTED = 3;
25272var RUNNING = 4;
25273var ENDING = 5;
25274var ENDED = 6;
25275
25276/* harmony default export */ __webpack_exports__["default"] = (function(node, name, id, index, group, timing) {
25277 var schedules = node.__transition;
25278 if (!schedules) node.__transition = {};
25279 else if (id in schedules) return;
25280 create(node, id, {
25281 name: name,
25282 index: index, // For context during callback.
25283 group: group, // For context during callback.
25284 on: emptyOn,
25285 tween: emptyTween,
25286 time: timing.time,
25287 delay: timing.delay,
25288 duration: timing.duration,
25289 ease: timing.ease,
25290 timer: null,
25291 state: CREATED
25292 });
25293});
25294
25295function init(node, id) {
25296 var schedule = get(node, id);
25297 if (schedule.state > CREATED) throw new Error("too late; already scheduled");
25298 return schedule;
25299}
25300
25301function set(node, id) {
25302 var schedule = get(node, id);
25303 if (schedule.state > STARTING) throw new Error("too late; already started");
25304 return schedule;
25305}
25306
25307function get(node, id) {
25308 var schedule = node.__transition;
25309 if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
25310 return schedule;
25311}
25312
25313function create(node, id, self) {
25314 var schedules = node.__transition,
25315 tween;
25316
25317 // Initialize the self timer when the transition is created.
25318 // Note the actual delay is not known until the first callback!
25319 schedules[id] = self;
25320 self.timer = Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timer"])(schedule, 0, self.time);
25321
25322 function schedule(elapsed) {
25323 self.state = SCHEDULED;
25324 self.timer.restart(start, self.delay, self.time);
25325
25326 // If the elapsed delay is less than our first sleep, start immediately.
25327 if (self.delay <= elapsed) start(elapsed - self.delay);
25328 }
25329
25330 function start(elapsed) {
25331 var i, j, n, o;
25332
25333 // If the state is not SCHEDULED, then we previously errored on start.
25334 if (self.state !== SCHEDULED) return stop();
25335
25336 for (i in schedules) {
25337 o = schedules[i];
25338 if (o.name !== self.name) continue;
25339
25340 // While this element already has a starting transition during this frame,
25341 // defer starting an interrupting transition until that transition has a
25342 // chance to tick (and possibly end); see d3/d3-transition#54!
25343 if (o.state === STARTED) return Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timeout"])(start);
25344
25345 // Interrupt the active transition, if any.
25346 // Dispatch the interrupt event.
25347 if (o.state === RUNNING) {
25348 o.state = ENDED;
25349 o.timer.stop();
25350 o.on.call("interrupt", node, node.__data__, o.index, o.group);
25351 delete schedules[i];
25352 }
25353
25354 // Cancel any pre-empted transitions. No interrupt event is dispatched
25355 // because the cancelled transitions never started. Note that this also
25356 // removes this transition from the pending list!
25357 else if (+i < id) {
25358 o.state = ENDED;
25359 o.timer.stop();
25360 delete schedules[i];
25361 }
25362 }
25363
25364 // Defer the first tick to end of the current frame; see d3/d3#1576.
25365 // Note the transition may be canceled after start and before the first tick!
25366 // Note this must be scheduled before the start event; see d3/d3-transition#16!
25367 // Assuming this is successful, subsequent callbacks go straight to tick.
25368 Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timeout"])(function() {
25369 if (self.state === STARTED) {
25370 self.state = RUNNING;
25371 self.timer.restart(tick, self.delay, self.time);
25372 tick(elapsed);
25373 }
25374 });
25375
25376 // Dispatch the start event.
25377 // Note this must be done before the tween are initialized.
25378 self.state = STARTING;
25379 self.on.call("start", node, node.__data__, self.index, self.group);
25380 if (self.state !== STARTING) return; // interrupted
25381 self.state = STARTED;
25382
25383 // Initialize the tween, deleting null tween.
25384 tween = new Array(n = self.tween.length);
25385 for (i = 0, j = -1; i < n; ++i) {
25386 if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
25387 tween[++j] = o;
25388 }
25389 }
25390 tween.length = j + 1;
25391 }
25392
25393 function tick(elapsed) {
25394 var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
25395 i = -1,
25396 n = tween.length;
25397
25398 while (++i < n) {
25399 tween[i].call(null, t);
25400 }
25401
25402 // Dispatch the end event.
25403 if (self.state === ENDING) {
25404 self.on.call("end", node, node.__data__, self.index, self.group);
25405 stop();
25406 }
25407 }
25408
25409 function stop() {
25410 self.state = ENDED;
25411 self.timer.stop();
25412 delete schedules[id];
25413 for (var i in schedules) return; // eslint-disable-line no-unused-vars
25414 delete node.__transition;
25415 }
25416}
25417
25418
25419/***/ }),
25420
25421/***/ "./node_modules/d3-transition/src/transition/select.js":
25422/*!*************************************************************!*\
25423 !*** ./node_modules/d3-transition/src/transition/select.js ***!
25424 \*************************************************************/
25425/*! exports provided: default */
25426/***/ (function(module, __webpack_exports__, __webpack_require__) {
25427
25428"use strict";
25429__webpack_require__.r(__webpack_exports__);
25430/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25431/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
25432/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
25433
25434
25435
25436
25437/* harmony default export */ __webpack_exports__["default"] = (function(select) {
25438 var name = this._name,
25439 id = this._id;
25440
25441 if (typeof select !== "function") select = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selector"])(select);
25442
25443 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
25444 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
25445 if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
25446 if ("__data__" in node) subnode.__data__ = node.__data__;
25447 subgroup[i] = subnode;
25448 Object(_schedule__WEBPACK_IMPORTED_MODULE_2__["default"])(subgroup[i], name, id, i, subgroup, Object(_schedule__WEBPACK_IMPORTED_MODULE_2__["get"])(node, id));
25449 }
25450 }
25451 }
25452
25453 return new _index__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, this._parents, name, id);
25454});
25455
25456
25457/***/ }),
25458
25459/***/ "./node_modules/d3-transition/src/transition/selectAll.js":
25460/*!****************************************************************!*\
25461 !*** ./node_modules/d3-transition/src/transition/selectAll.js ***!
25462 \****************************************************************/
25463/*! exports provided: default */
25464/***/ (function(module, __webpack_exports__, __webpack_require__) {
25465
25466"use strict";
25467__webpack_require__.r(__webpack_exports__);
25468/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25469/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
25470/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
25471
25472
25473
25474
25475/* harmony default export */ __webpack_exports__["default"] = (function(select) {
25476 var name = this._name,
25477 id = this._id;
25478
25479 if (typeof select !== "function") select = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selectorAll"])(select);
25480
25481 for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
25482 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
25483 if (node = group[i]) {
25484 for (var children = select.call(node, node.__data__, i, group), child, inherit = Object(_schedule__WEBPACK_IMPORTED_MODULE_2__["get"])(node, id), k = 0, l = children.length; k < l; ++k) {
25485 if (child = children[k]) {
25486 Object(_schedule__WEBPACK_IMPORTED_MODULE_2__["default"])(child, name, id, k, children, inherit);
25487 }
25488 }
25489 subgroups.push(children);
25490 parents.push(node);
25491 }
25492 }
25493 }
25494
25495 return new _index__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, parents, name, id);
25496});
25497
25498
25499/***/ }),
25500
25501/***/ "./node_modules/d3-transition/src/transition/selection.js":
25502/*!****************************************************************!*\
25503 !*** ./node_modules/d3-transition/src/transition/selection.js ***!
25504 \****************************************************************/
25505/*! exports provided: default */
25506/***/ (function(module, __webpack_exports__, __webpack_require__) {
25507
25508"use strict";
25509__webpack_require__.r(__webpack_exports__);
25510/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25511
25512
25513var Selection = d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.constructor;
25514
25515/* harmony default export */ __webpack_exports__["default"] = (function() {
25516 return new Selection(this._groups, this._parents);
25517});
25518
25519
25520/***/ }),
25521
25522/***/ "./node_modules/d3-transition/src/transition/style.js":
25523/*!************************************************************!*\
25524 !*** ./node_modules/d3-transition/src/transition/style.js ***!
25525 \************************************************************/
25526/*! exports provided: default */
25527/***/ (function(module, __webpack_exports__, __webpack_require__) {
25528
25529"use strict";
25530__webpack_require__.r(__webpack_exports__);
25531/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
25532/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25533/* harmony import */ var _tween__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tween */ "./node_modules/d3-transition/src/transition/tween.js");
25534/* harmony import */ var _interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interpolate */ "./node_modules/d3-transition/src/transition/interpolate.js");
25535
25536
25537
25538
25539
25540function styleRemove(name, interpolate) {
25541 var value00,
25542 value10,
25543 interpolate0;
25544 return function() {
25545 var value0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name),
25546 value1 = (this.style.removeProperty(name), Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name));
25547 return value0 === value1 ? null
25548 : value0 === value00 && value1 === value10 ? interpolate0
25549 : interpolate0 = interpolate(value00 = value0, value10 = value1);
25550 };
25551}
25552
25553function styleRemoveEnd(name) {
25554 return function() {
25555 this.style.removeProperty(name);
25556 };
25557}
25558
25559function styleConstant(name, interpolate, value1) {
25560 var value00,
25561 interpolate0;
25562 return function() {
25563 var value0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name);
25564 return value0 === value1 ? null
25565 : value0 === value00 ? interpolate0
25566 : interpolate0 = interpolate(value00 = value0, value1);
25567 };
25568}
25569
25570function styleFunction(name, interpolate, value) {
25571 var value00,
25572 value10,
25573 interpolate0;
25574 return function() {
25575 var value0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name),
25576 value1 = value(this);
25577 if (value1 == null) value1 = (this.style.removeProperty(name), Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name));
25578 return value0 === value1 ? null
25579 : value0 === value00 && value1 === value10 ? interpolate0
25580 : interpolate0 = interpolate(value00 = value0, value10 = value1);
25581 };
25582}
25583
25584/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
25585 var i = (name += "") === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["interpolateTransformCss"] : _interpolate__WEBPACK_IMPORTED_MODULE_3__["default"];
25586 return value == null ? this
25587 .styleTween(name, styleRemove(name, i))
25588 .on("end.style." + name, styleRemoveEnd(name))
25589 : this.styleTween(name, typeof value === "function"
25590 ? styleFunction(name, i, Object(_tween__WEBPACK_IMPORTED_MODULE_2__["tweenValue"])(this, "style." + name, value))
25591 : styleConstant(name, i, value + ""), priority);
25592});
25593
25594
25595/***/ }),
25596
25597/***/ "./node_modules/d3-transition/src/transition/styleTween.js":
25598/*!*****************************************************************!*\
25599 !*** ./node_modules/d3-transition/src/transition/styleTween.js ***!
25600 \*****************************************************************/
25601/*! exports provided: default */
25602/***/ (function(module, __webpack_exports__, __webpack_require__) {
25603
25604"use strict";
25605__webpack_require__.r(__webpack_exports__);
25606function styleTween(name, value, priority) {
25607 function tween() {
25608 var node = this, i = value.apply(node, arguments);
25609 return i && function(t) {
25610 node.style.setProperty(name, i(t), priority);
25611 };
25612 }
25613 tween._value = value;
25614 return tween;
25615}
25616
25617/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
25618 var key = "style." + (name += "");
25619 if (arguments.length < 2) return (key = this.tween(key)) && key._value;
25620 if (value == null) return this.tween(key, null);
25621 if (typeof value !== "function") throw new Error;
25622 return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
25623});
25624
25625
25626/***/ }),
25627
25628/***/ "./node_modules/d3-transition/src/transition/text.js":
25629/*!***********************************************************!*\
25630 !*** ./node_modules/d3-transition/src/transition/text.js ***!
25631 \***********************************************************/
25632/*! exports provided: default */
25633/***/ (function(module, __webpack_exports__, __webpack_require__) {
25634
25635"use strict";
25636__webpack_require__.r(__webpack_exports__);
25637/* harmony import */ var _tween__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tween */ "./node_modules/d3-transition/src/transition/tween.js");
25638
25639
25640function textConstant(value) {
25641 return function() {
25642 this.textContent = value;
25643 };
25644}
25645
25646function textFunction(value) {
25647 return function() {
25648 var value1 = value(this);
25649 this.textContent = value1 == null ? "" : value1;
25650 };
25651}
25652
25653/* harmony default export */ __webpack_exports__["default"] = (function(value) {
25654 return this.tween("text", typeof value === "function"
25655 ? textFunction(Object(_tween__WEBPACK_IMPORTED_MODULE_0__["tweenValue"])(this, "text", value))
25656 : textConstant(value == null ? "" : value + ""));
25657});
25658
25659
25660/***/ }),
25661
25662/***/ "./node_modules/d3-transition/src/transition/transition.js":
25663/*!*****************************************************************!*\
25664 !*** ./node_modules/d3-transition/src/transition/transition.js ***!
25665 \*****************************************************************/
25666/*! exports provided: default */
25667/***/ (function(module, __webpack_exports__, __webpack_require__) {
25668
25669"use strict";
25670__webpack_require__.r(__webpack_exports__);
25671/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
25672/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
25673
25674
25675
25676/* harmony default export */ __webpack_exports__["default"] = (function() {
25677 var name = this._name,
25678 id0 = this._id,
25679 id1 = Object(_index__WEBPACK_IMPORTED_MODULE_0__["newId"])();
25680
25681 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
25682 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
25683 if (node = group[i]) {
25684 var inherit = Object(_schedule__WEBPACK_IMPORTED_MODULE_1__["get"])(node, id0);
25685 Object(_schedule__WEBPACK_IMPORTED_MODULE_1__["default"])(node, name, id1, i, group, {
25686 time: inherit.time + inherit.delay + inherit.duration,
25687 delay: 0,
25688 duration: inherit.duration,
25689 ease: inherit.ease
25690 });
25691 }
25692 }
25693 }
25694
25695 return new _index__WEBPACK_IMPORTED_MODULE_0__["Transition"](groups, this._parents, name, id1);
25696});
25697
25698
25699/***/ }),
25700
25701/***/ "./node_modules/d3-transition/src/transition/tween.js":
25702/*!************************************************************!*\
25703 !*** ./node_modules/d3-transition/src/transition/tween.js ***!
25704 \************************************************************/
25705/*! exports provided: default, tweenValue */
25706/***/ (function(module, __webpack_exports__, __webpack_require__) {
25707
25708"use strict";
25709__webpack_require__.r(__webpack_exports__);
25710/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tweenValue", function() { return tweenValue; });
25711/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
25712
25713
25714function tweenRemove(id, name) {
25715 var tween0, tween1;
25716 return function() {
25717 var schedule = Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id),
25718 tween = schedule.tween;
25719
25720 // If this node shared tween with the previous node,
25721 // just assign the updated shared tween and we’re done!
25722 // Otherwise, copy-on-write.
25723 if (tween !== tween0) {
25724 tween1 = tween0 = tween;
25725 for (var i = 0, n = tween1.length; i < n; ++i) {
25726 if (tween1[i].name === name) {
25727 tween1 = tween1.slice();
25728 tween1.splice(i, 1);
25729 break;
25730 }
25731 }
25732 }
25733
25734 schedule.tween = tween1;
25735 };
25736}
25737
25738function tweenFunction(id, name, value) {
25739 var tween0, tween1;
25740 if (typeof value !== "function") throw new Error;
25741 return function() {
25742 var schedule = Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id),
25743 tween = schedule.tween;
25744
25745 // If this node shared tween with the previous node,
25746 // just assign the updated shared tween and we’re done!
25747 // Otherwise, copy-on-write.
25748 if (tween !== tween0) {
25749 tween1 = (tween0 = tween).slice();
25750 for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
25751 if (tween1[i].name === name) {
25752 tween1[i] = t;
25753 break;
25754 }
25755 }
25756 if (i === n) tween1.push(t);
25757 }
25758
25759 schedule.tween = tween1;
25760 };
25761}
25762
25763/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
25764 var id = this._id;
25765
25766 name += "";
25767
25768 if (arguments.length < 2) {
25769 var tween = Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).tween;
25770 for (var i = 0, n = tween.length, t; i < n; ++i) {
25771 if ((t = tween[i]).name === name) {
25772 return t.value;
25773 }
25774 }
25775 return null;
25776 }
25777
25778 return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
25779});
25780
25781function tweenValue(transition, name, value) {
25782 var id = transition._id;
25783
25784 transition.each(function() {
25785 var schedule = Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id);
25786 (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
25787 });
25788
25789 return function(node) {
25790 return Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(node, id).value[name];
25791 };
25792}
25793
25794
25795/***/ }),
25796
25797/***/ "./node_modules/d3-voronoi/src/Beach.js":
25798/*!**********************************************!*\
25799 !*** ./node_modules/d3-voronoi/src/Beach.js ***!
25800 \**********************************************/
25801/*! exports provided: removeBeach, addBeach */
25802/***/ (function(module, __webpack_exports__, __webpack_require__) {
25803
25804"use strict";
25805__webpack_require__.r(__webpack_exports__);
25806/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeBeach", function() { return removeBeach; });
25807/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addBeach", function() { return addBeach; });
25808/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
25809/* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Cell */ "./node_modules/d3-voronoi/src/Cell.js");
25810/* harmony import */ var _Circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Circle */ "./node_modules/d3-voronoi/src/Circle.js");
25811/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
25812/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
25813
25814
25815
25816
25817
25818
25819var beachPool = [];
25820
25821function Beach() {
25822 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(this);
25823 this.edge =
25824 this.site =
25825 this.circle = null;
25826}
25827
25828function createBeach(site) {
25829 var beach = beachPool.pop() || new Beach;
25830 beach.site = site;
25831 return beach;
25832}
25833
25834function detachBeach(beach) {
25835 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(beach);
25836 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].remove(beach);
25837 beachPool.push(beach);
25838 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(beach);
25839}
25840
25841function removeBeach(beach) {
25842 var circle = beach.circle,
25843 x = circle.x,
25844 y = circle.cy,
25845 vertex = [x, y],
25846 previous = beach.P,
25847 next = beach.N,
25848 disappearing = [beach];
25849
25850 detachBeach(beach);
25851
25852 var lArc = previous;
25853 while (lArc.circle
25854 && Math.abs(x - lArc.circle.x) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]
25855 && Math.abs(y - lArc.circle.cy) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
25856 previous = lArc.P;
25857 disappearing.unshift(lArc);
25858 detachBeach(lArc);
25859 lArc = previous;
25860 }
25861
25862 disappearing.unshift(lArc);
25863 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
25864
25865 var rArc = next;
25866 while (rArc.circle
25867 && Math.abs(x - rArc.circle.x) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]
25868 && Math.abs(y - rArc.circle.cy) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
25869 next = rArc.N;
25870 disappearing.push(rArc);
25871 detachBeach(rArc);
25872 rArc = next;
25873 }
25874
25875 disappearing.push(rArc);
25876 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(rArc);
25877
25878 var nArcs = disappearing.length,
25879 iArc;
25880 for (iArc = 1; iArc < nArcs; ++iArc) {
25881 rArc = disappearing[iArc];
25882 lArc = disappearing[iArc - 1];
25883 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["setEdgeEnd"])(rArc.edge, lArc.site, rArc.site, vertex);
25884 }
25885
25886 lArc = disappearing[0];
25887 rArc = disappearing[nArcs - 1];
25888 rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, rArc.site, null, vertex);
25889
25890 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
25891 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
25892}
25893
25894function addBeach(site) {
25895 var x = site[0],
25896 directrix = site[1],
25897 lArc,
25898 rArc,
25899 dxl,
25900 dxr,
25901 node = _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"]._;
25902
25903 while (node) {
25904 dxl = leftBreakPoint(node, directrix) - x;
25905 if (dxl > _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) node = node.L; else {
25906 dxr = x - rightBreakPoint(node, directrix);
25907 if (dxr > _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
25908 if (!node.R) {
25909 lArc = node;
25910 break;
25911 }
25912 node = node.R;
25913 } else {
25914 if (dxl > -_Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
25915 lArc = node.P;
25916 rArc = node;
25917 } else if (dxr > -_Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
25918 lArc = node;
25919 rArc = node.N;
25920 } else {
25921 lArc = rArc = node;
25922 }
25923 break;
25924 }
25925 }
25926 }
25927
25928 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["createCell"])(site);
25929 var newArc = createBeach(site);
25930 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].insert(lArc, newArc);
25931
25932 if (!lArc && !rArc) return;
25933
25934 if (lArc === rArc) {
25935 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
25936 rArc = createBeach(lArc.site);
25937 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].insert(newArc, rArc);
25938 newArc.edge = rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, newArc.site);
25939 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
25940 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
25941 return;
25942 }
25943
25944 if (!rArc) { // && lArc
25945 newArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, newArc.site);
25946 return;
25947 }
25948
25949 // else lArc !== rArc
25950 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
25951 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(rArc);
25952
25953 var lSite = lArc.site,
25954 ax = lSite[0],
25955 ay = lSite[1],
25956 bx = site[0] - ax,
25957 by = site[1] - ay,
25958 rSite = rArc.site,
25959 cx = rSite[0] - ax,
25960 cy = rSite[1] - ay,
25961 d = 2 * (bx * cy - by * cx),
25962 hb = bx * bx + by * by,
25963 hc = cx * cx + cy * cy,
25964 vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];
25965
25966 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["setEdgeEnd"])(rArc.edge, lSite, rSite, vertex);
25967 newArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lSite, site, null, vertex);
25968 rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(site, rSite, null, vertex);
25969 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
25970 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
25971}
25972
25973function leftBreakPoint(arc, directrix) {
25974 var site = arc.site,
25975 rfocx = site[0],
25976 rfocy = site[1],
25977 pby2 = rfocy - directrix;
25978
25979 if (!pby2) return rfocx;
25980
25981 var lArc = arc.P;
25982 if (!lArc) return -Infinity;
25983
25984 site = lArc.site;
25985 var lfocx = site[0],
25986 lfocy = site[1],
25987 plby2 = lfocy - directrix;
25988
25989 if (!plby2) return lfocx;
25990
25991 var hl = lfocx - rfocx,
25992 aby2 = 1 / pby2 - 1 / plby2,
25993 b = hl / plby2;
25994
25995 if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;
25996
25997 return (rfocx + lfocx) / 2;
25998}
25999
26000function rightBreakPoint(arc, directrix) {
26001 var rArc = arc.N;
26002 if (rArc) return leftBreakPoint(rArc, directrix);
26003 var site = arc.site;
26004 return site[1] === directrix ? site[0] : Infinity;
26005}
26006
26007
26008/***/ }),
26009
26010/***/ "./node_modules/d3-voronoi/src/Cell.js":
26011/*!*********************************************!*\
26012 !*** ./node_modules/d3-voronoi/src/Cell.js ***!
26013 \*********************************************/
26014/*! exports provided: createCell, cellHalfedgeStart, cellHalfedgeEnd, sortCellHalfedges, clipCells */
26015/***/ (function(module, __webpack_exports__, __webpack_require__) {
26016
26017"use strict";
26018__webpack_require__.r(__webpack_exports__);
26019/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCell", function() { return createCell; });
26020/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cellHalfedgeStart", function() { return cellHalfedgeStart; });
26021/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cellHalfedgeEnd", function() { return cellHalfedgeEnd; });
26022/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortCellHalfedges", function() { return sortCellHalfedges; });
26023/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clipCells", function() { return clipCells; });
26024/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
26025/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
26026
26027
26028
26029function createCell(site) {
26030 return _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][site.index] = {
26031 site: site,
26032 halfedges: []
26033 };
26034}
26035
26036function cellHalfedgeAngle(cell, edge) {
26037 var site = cell.site,
26038 va = edge.left,
26039 vb = edge.right;
26040 if (site === vb) vb = va, va = site;
26041 if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);
26042 if (site === va) va = edge[1], vb = edge[0];
26043 else va = edge[0], vb = edge[1];
26044 return Math.atan2(va[0] - vb[0], vb[1] - va[1]);
26045}
26046
26047function cellHalfedgeStart(cell, edge) {
26048 return edge[+(edge.left !== cell.site)];
26049}
26050
26051function cellHalfedgeEnd(cell, edge) {
26052 return edge[+(edge.left === cell.site)];
26053}
26054
26055function sortCellHalfedges() {
26056 for (var i = 0, n = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"].length, cell, halfedges, j, m; i < n; ++i) {
26057 if ((cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][i]) && (m = (halfedges = cell.halfedges).length)) {
26058 var index = new Array(m),
26059 array = new Array(m);
26060 for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[j]]);
26061 index.sort(function(i, j) { return array[j] - array[i]; });
26062 for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];
26063 for (j = 0; j < m; ++j) halfedges[j] = array[j];
26064 }
26065 }
26066}
26067
26068function clipCells(x0, y0, x1, y1) {
26069 var nCells = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"].length,
26070 iCell,
26071 cell,
26072 site,
26073 iHalfedge,
26074 halfedges,
26075 nHalfedges,
26076 start,
26077 startX,
26078 startY,
26079 end,
26080 endX,
26081 endY,
26082 cover = true;
26083
26084 for (iCell = 0; iCell < nCells; ++iCell) {
26085 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
26086 site = cell.site;
26087 halfedges = cell.halfedges;
26088 iHalfedge = halfedges.length;
26089
26090 // Remove any dangling clipped edges.
26091 while (iHalfedge--) {
26092 if (!_Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[iHalfedge]]) {
26093 halfedges.splice(iHalfedge, 1);
26094 }
26095 }
26096
26097 // Insert any border edges as necessary.
26098 iHalfedge = 0, nHalfedges = halfedges.length;
26099 while (iHalfedge < nHalfedges) {
26100 end = cellHalfedgeEnd(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[iHalfedge]]), endX = end[0], endY = end[1];
26101 start = cellHalfedgeStart(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];
26102 if (Math.abs(endX - startX) > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] || Math.abs(endY - startY) > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) {
26103 halfedges.splice(iHalfedge, 0, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, end,
26104 Math.abs(endX - x0) < _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] && y1 - endY > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? [x0, Math.abs(startX - x0) < _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? startY : y1]
26105 : Math.abs(endY - y1) < _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] && x1 - endX > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? [Math.abs(startY - y1) < _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? startX : x1, y1]
26106 : Math.abs(endX - x1) < _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] && endY - y0 > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? [x1, Math.abs(startX - x1) < _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? startY : y0]
26107 : Math.abs(endY - y0) < _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] && endX - x0 > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? [Math.abs(startY - y0) < _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? startX : x0, y0]
26108 : null)) - 1);
26109 ++nHalfedges;
26110 }
26111 }
26112
26113 if (nHalfedges) cover = false;
26114 }
26115 }
26116
26117 // If there weren’t any edges, have the closest site cover the extent.
26118 // It doesn’t matter which corner of the extent we measure!
26119 if (cover) {
26120 var dx, dy, d2, dc = Infinity;
26121
26122 for (iCell = 0, cover = null; iCell < nCells; ++iCell) {
26123 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
26124 site = cell.site;
26125 dx = site[0] - x0;
26126 dy = site[1] - y0;
26127 d2 = dx * dx + dy * dy;
26128 if (d2 < dc) dc = d2, cover = cell;
26129 }
26130 }
26131
26132 if (cover) {
26133 var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];
26134 cover.halfedges.push(
26135 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site = cover.site, v00, v01)) - 1,
26136 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v01, v11)) - 1,
26137 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v11, v10)) - 1,
26138 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v10, v00)) - 1
26139 );
26140 }
26141 }
26142
26143 // Lastly delete any cells with no edges; these were entirely clipped.
26144 for (iCell = 0; iCell < nCells; ++iCell) {
26145 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
26146 if (!cell.halfedges.length) {
26147 delete _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell];
26148 }
26149 }
26150 }
26151}
26152
26153
26154/***/ }),
26155
26156/***/ "./node_modules/d3-voronoi/src/Circle.js":
26157/*!***********************************************!*\
26158 !*** ./node_modules/d3-voronoi/src/Circle.js ***!
26159 \***********************************************/
26160/*! exports provided: firstCircle, attachCircle, detachCircle */
26161/***/ (function(module, __webpack_exports__, __webpack_require__) {
26162
26163"use strict";
26164__webpack_require__.r(__webpack_exports__);
26165/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstCircle", function() { return firstCircle; });
26166/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attachCircle", function() { return attachCircle; });
26167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detachCircle", function() { return detachCircle; });
26168/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
26169/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
26170
26171
26172
26173var circlePool = [];
26174
26175var firstCircle;
26176
26177function Circle() {
26178 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(this);
26179 this.x =
26180 this.y =
26181 this.arc =
26182 this.site =
26183 this.cy = null;
26184}
26185
26186function attachCircle(arc) {
26187 var lArc = arc.P,
26188 rArc = arc.N;
26189
26190 if (!lArc || !rArc) return;
26191
26192 var lSite = lArc.site,
26193 cSite = arc.site,
26194 rSite = rArc.site;
26195
26196 if (lSite === rSite) return;
26197
26198 var bx = cSite[0],
26199 by = cSite[1],
26200 ax = lSite[0] - bx,
26201 ay = lSite[1] - by,
26202 cx = rSite[0] - bx,
26203 cy = rSite[1] - by;
26204
26205 var d = 2 * (ax * cy - ay * cx);
26206 if (d >= -_Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon2"]) return;
26207
26208 var ha = ax * ax + ay * ay,
26209 hc = cx * cx + cy * cy,
26210 x = (cy * ha - ay * hc) / d,
26211 y = (ax * hc - cx * ha) / d;
26212
26213 var circle = circlePool.pop() || new Circle;
26214 circle.arc = arc;
26215 circle.site = cSite;
26216 circle.x = x + bx;
26217 circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom
26218
26219 arc.circle = circle;
26220
26221 var before = null,
26222 node = _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"]._;
26223
26224 while (node) {
26225 if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {
26226 if (node.L) node = node.L;
26227 else { before = node.P; break; }
26228 } else {
26229 if (node.R) node = node.R;
26230 else { before = node; break; }
26231 }
26232 }
26233
26234 _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"].insert(before, circle);
26235 if (!before) firstCircle = circle;
26236}
26237
26238function detachCircle(arc) {
26239 var circle = arc.circle;
26240 if (circle) {
26241 if (!circle.P) firstCircle = circle.N;
26242 _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"].remove(circle);
26243 circlePool.push(circle);
26244 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(circle);
26245 arc.circle = null;
26246 }
26247}
26248
26249
26250/***/ }),
26251
26252/***/ "./node_modules/d3-voronoi/src/Diagram.js":
26253/*!************************************************!*\
26254 !*** ./node_modules/d3-voronoi/src/Diagram.js ***!
26255 \************************************************/
26256/*! exports provided: epsilon, epsilon2, beaches, cells, circles, edges, default */
26257/***/ (function(module, __webpack_exports__, __webpack_require__) {
26258
26259"use strict";
26260__webpack_require__.r(__webpack_exports__);
26261/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
26262/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon2", function() { return epsilon2; });
26263/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "beaches", function() { return beaches; });
26264/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cells", function() { return cells; });
26265/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circles", function() { return circles; });
26266/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "edges", function() { return edges; });
26267/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Diagram; });
26268/* harmony import */ var _Beach__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Beach */ "./node_modules/d3-voronoi/src/Beach.js");
26269/* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Cell */ "./node_modules/d3-voronoi/src/Cell.js");
26270/* harmony import */ var _Circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Circle */ "./node_modules/d3-voronoi/src/Circle.js");
26271/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
26272/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
26273
26274
26275
26276
26277
26278
26279var epsilon = 1e-6;
26280var epsilon2 = 1e-12;
26281var beaches;
26282var cells;
26283var circles;
26284var edges;
26285
26286function triangleArea(a, b, c) {
26287 return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);
26288}
26289
26290function lexicographic(a, b) {
26291 return b[1] - a[1]
26292 || b[0] - a[0];
26293}
26294
26295function Diagram(sites, extent) {
26296 var site = sites.sort(lexicographic).pop(),
26297 x,
26298 y,
26299 circle;
26300
26301 edges = [];
26302 cells = new Array(sites.length);
26303 beaches = new _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__["default"];
26304 circles = new _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__["default"];
26305
26306 while (true) {
26307 circle = _Circle__WEBPACK_IMPORTED_MODULE_2__["firstCircle"];
26308 if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {
26309 if (site[0] !== x || site[1] !== y) {
26310 Object(_Beach__WEBPACK_IMPORTED_MODULE_0__["addBeach"])(site);
26311 x = site[0], y = site[1];
26312 }
26313 site = sites.pop();
26314 } else if (circle) {
26315 Object(_Beach__WEBPACK_IMPORTED_MODULE_0__["removeBeach"])(circle.arc);
26316 } else {
26317 break;
26318 }
26319 }
26320
26321 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["sortCellHalfedges"])();
26322
26323 if (extent) {
26324 var x0 = +extent[0][0],
26325 y0 = +extent[0][1],
26326 x1 = +extent[1][0],
26327 y1 = +extent[1][1];
26328 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["clipEdges"])(x0, y0, x1, y1);
26329 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["clipCells"])(x0, y0, x1, y1);
26330 }
26331
26332 this.edges = edges;
26333 this.cells = cells;
26334
26335 beaches =
26336 circles =
26337 edges =
26338 cells = null;
26339}
26340
26341Diagram.prototype = {
26342 constructor: Diagram,
26343
26344 polygons: function() {
26345 var edges = this.edges;
26346
26347 return this.cells.map(function(cell) {
26348 var polygon = cell.halfedges.map(function(i) { return Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["cellHalfedgeStart"])(cell, edges[i]); });
26349 polygon.data = cell.site.data;
26350 return polygon;
26351 });
26352 },
26353
26354 triangles: function() {
26355 var triangles = [],
26356 edges = this.edges;
26357
26358 this.cells.forEach(function(cell, i) {
26359 if (!(m = (halfedges = cell.halfedges).length)) return;
26360 var site = cell.site,
26361 halfedges,
26362 j = -1,
26363 m,
26364 s0,
26365 e1 = edges[halfedges[m - 1]],
26366 s1 = e1.left === site ? e1.right : e1.left;
26367
26368 while (++j < m) {
26369 s0 = s1;
26370 e1 = edges[halfedges[j]];
26371 s1 = e1.left === site ? e1.right : e1.left;
26372 if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {
26373 triangles.push([site.data, s0.data, s1.data]);
26374 }
26375 }
26376 });
26377
26378 return triangles;
26379 },
26380
26381 links: function() {
26382 return this.edges.filter(function(edge) {
26383 return edge.right;
26384 }).map(function(edge) {
26385 return {
26386 source: edge.left.data,
26387 target: edge.right.data
26388 };
26389 });
26390 },
26391
26392 find: function(x, y, radius) {
26393 var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;
26394
26395 // Use the previously-found cell, or start with an arbitrary one.
26396 while (!(cell = that.cells[i1])) if (++i1 >= n) return null;
26397 var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;
26398
26399 // Traverse the half-edges to find a closer cell, if any.
26400 do {
26401 cell = that.cells[i0 = i1], i1 = null;
26402 cell.halfedges.forEach(function(e) {
26403 var edge = that.edges[e], v = edge.left;
26404 if ((v === cell.site || !v) && !(v = edge.right)) return;
26405 var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;
26406 if (v2 < d2) d2 = v2, i1 = v.index;
26407 });
26408 } while (i1 !== null);
26409
26410 that._found = i0;
26411
26412 return radius == null || d2 <= radius * radius ? cell.site : null;
26413 }
26414}
26415
26416
26417/***/ }),
26418
26419/***/ "./node_modules/d3-voronoi/src/Edge.js":
26420/*!*********************************************!*\
26421 !*** ./node_modules/d3-voronoi/src/Edge.js ***!
26422 \*********************************************/
26423/*! exports provided: createEdge, createBorderEdge, setEdgeEnd, clipEdges */
26424/***/ (function(module, __webpack_exports__, __webpack_require__) {
26425
26426"use strict";
26427__webpack_require__.r(__webpack_exports__);
26428/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createEdge", function() { return createEdge; });
26429/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createBorderEdge", function() { return createBorderEdge; });
26430/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setEdgeEnd", function() { return setEdgeEnd; });
26431/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clipEdges", function() { return clipEdges; });
26432/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
26433
26434
26435function createEdge(left, right, v0, v1) {
26436 var edge = [null, null],
26437 index = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"].push(edge) - 1;
26438 edge.left = left;
26439 edge.right = right;
26440 if (v0) setEdgeEnd(edge, left, right, v0);
26441 if (v1) setEdgeEnd(edge, right, left, v1);
26442 _Diagram__WEBPACK_IMPORTED_MODULE_0__["cells"][left.index].halfedges.push(index);
26443 _Diagram__WEBPACK_IMPORTED_MODULE_0__["cells"][right.index].halfedges.push(index);
26444 return edge;
26445}
26446
26447function createBorderEdge(left, v0, v1) {
26448 var edge = [v0, v1];
26449 edge.left = left;
26450 return edge;
26451}
26452
26453function setEdgeEnd(edge, left, right, vertex) {
26454 if (!edge[0] && !edge[1]) {
26455 edge[0] = vertex;
26456 edge.left = left;
26457 edge.right = right;
26458 } else if (edge.left === right) {
26459 edge[1] = vertex;
26460 } else {
26461 edge[0] = vertex;
26462 }
26463}
26464
26465// Liang–Barsky line clipping.
26466function clipEdge(edge, x0, y0, x1, y1) {
26467 var a = edge[0],
26468 b = edge[1],
26469 ax = a[0],
26470 ay = a[1],
26471 bx = b[0],
26472 by = b[1],
26473 t0 = 0,
26474 t1 = 1,
26475 dx = bx - ax,
26476 dy = by - ay,
26477 r;
26478
26479 r = x0 - ax;
26480 if (!dx && r > 0) return;
26481 r /= dx;
26482 if (dx < 0) {
26483 if (r < t0) return;
26484 if (r < t1) t1 = r;
26485 } else if (dx > 0) {
26486 if (r > t1) return;
26487 if (r > t0) t0 = r;
26488 }
26489
26490 r = x1 - ax;
26491 if (!dx && r < 0) return;
26492 r /= dx;
26493 if (dx < 0) {
26494 if (r > t1) return;
26495 if (r > t0) t0 = r;
26496 } else if (dx > 0) {
26497 if (r < t0) return;
26498 if (r < t1) t1 = r;
26499 }
26500
26501 r = y0 - ay;
26502 if (!dy && r > 0) return;
26503 r /= dy;
26504 if (dy < 0) {
26505 if (r < t0) return;
26506 if (r < t1) t1 = r;
26507 } else if (dy > 0) {
26508 if (r > t1) return;
26509 if (r > t0) t0 = r;
26510 }
26511
26512 r = y1 - ay;
26513 if (!dy && r < 0) return;
26514 r /= dy;
26515 if (dy < 0) {
26516 if (r > t1) return;
26517 if (r > t0) t0 = r;
26518 } else if (dy > 0) {
26519 if (r < t0) return;
26520 if (r < t1) t1 = r;
26521 }
26522
26523 if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?
26524
26525 if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];
26526 if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];
26527 return true;
26528}
26529
26530function connectEdge(edge, x0, y0, x1, y1) {
26531 var v1 = edge[1];
26532 if (v1) return true;
26533
26534 var v0 = edge[0],
26535 left = edge.left,
26536 right = edge.right,
26537 lx = left[0],
26538 ly = left[1],
26539 rx = right[0],
26540 ry = right[1],
26541 fx = (lx + rx) / 2,
26542 fy = (ly + ry) / 2,
26543 fm,
26544 fb;
26545
26546 if (ry === ly) {
26547 if (fx < x0 || fx >= x1) return;
26548 if (lx > rx) {
26549 if (!v0) v0 = [fx, y0];
26550 else if (v0[1] >= y1) return;
26551 v1 = [fx, y1];
26552 } else {
26553 if (!v0) v0 = [fx, y1];
26554 else if (v0[1] < y0) return;
26555 v1 = [fx, y0];
26556 }
26557 } else {
26558 fm = (lx - rx) / (ry - ly);
26559 fb = fy - fm * fx;
26560 if (fm < -1 || fm > 1) {
26561 if (lx > rx) {
26562 if (!v0) v0 = [(y0 - fb) / fm, y0];
26563 else if (v0[1] >= y1) return;
26564 v1 = [(y1 - fb) / fm, y1];
26565 } else {
26566 if (!v0) v0 = [(y1 - fb) / fm, y1];
26567 else if (v0[1] < y0) return;
26568 v1 = [(y0 - fb) / fm, y0];
26569 }
26570 } else {
26571 if (ly < ry) {
26572 if (!v0) v0 = [x0, fm * x0 + fb];
26573 else if (v0[0] >= x1) return;
26574 v1 = [x1, fm * x1 + fb];
26575 } else {
26576 if (!v0) v0 = [x1, fm * x1 + fb];
26577 else if (v0[0] < x0) return;
26578 v1 = [x0, fm * x0 + fb];
26579 }
26580 }
26581 }
26582
26583 edge[0] = v0;
26584 edge[1] = v1;
26585 return true;
26586}
26587
26588function clipEdges(x0, y0, x1, y1) {
26589 var i = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"].length,
26590 edge;
26591
26592 while (i--) {
26593 if (!connectEdge(edge = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"][i], x0, y0, x1, y1)
26594 || !clipEdge(edge, x0, y0, x1, y1)
26595 || !(Math.abs(edge[0][0] - edge[1][0]) > _Diagram__WEBPACK_IMPORTED_MODULE_0__["epsilon"]
26596 || Math.abs(edge[0][1] - edge[1][1]) > _Diagram__WEBPACK_IMPORTED_MODULE_0__["epsilon"])) {
26597 delete _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"][i];
26598 }
26599 }
26600}
26601
26602
26603/***/ }),
26604
26605/***/ "./node_modules/d3-voronoi/src/RedBlackTree.js":
26606/*!*****************************************************!*\
26607 !*** ./node_modules/d3-voronoi/src/RedBlackTree.js ***!
26608 \*****************************************************/
26609/*! exports provided: RedBlackNode, default */
26610/***/ (function(module, __webpack_exports__, __webpack_require__) {
26611
26612"use strict";
26613__webpack_require__.r(__webpack_exports__);
26614/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedBlackNode", function() { return RedBlackNode; });
26615function RedBlackTree() {
26616 this._ = null; // root node
26617}
26618
26619function RedBlackNode(node) {
26620 node.U = // parent node
26621 node.C = // color - true for red, false for black
26622 node.L = // left node
26623 node.R = // right node
26624 node.P = // previous node
26625 node.N = null; // next node
26626}
26627
26628RedBlackTree.prototype = {
26629 constructor: RedBlackTree,
26630
26631 insert: function(after, node) {
26632 var parent, grandpa, uncle;
26633
26634 if (after) {
26635 node.P = after;
26636 node.N = after.N;
26637 if (after.N) after.N.P = node;
26638 after.N = node;
26639 if (after.R) {
26640 after = after.R;
26641 while (after.L) after = after.L;
26642 after.L = node;
26643 } else {
26644 after.R = node;
26645 }
26646 parent = after;
26647 } else if (this._) {
26648 after = RedBlackFirst(this._);
26649 node.P = null;
26650 node.N = after;
26651 after.P = after.L = node;
26652 parent = after;
26653 } else {
26654 node.P = node.N = null;
26655 this._ = node;
26656 parent = null;
26657 }
26658 node.L = node.R = null;
26659 node.U = parent;
26660 node.C = true;
26661
26662 after = node;
26663 while (parent && parent.C) {
26664 grandpa = parent.U;
26665 if (parent === grandpa.L) {
26666 uncle = grandpa.R;
26667 if (uncle && uncle.C) {
26668 parent.C = uncle.C = false;
26669 grandpa.C = true;
26670 after = grandpa;
26671 } else {
26672 if (after === parent.R) {
26673 RedBlackRotateLeft(this, parent);
26674 after = parent;
26675 parent = after.U;
26676 }
26677 parent.C = false;
26678 grandpa.C = true;
26679 RedBlackRotateRight(this, grandpa);
26680 }
26681 } else {
26682 uncle = grandpa.L;
26683 if (uncle && uncle.C) {
26684 parent.C = uncle.C = false;
26685 grandpa.C = true;
26686 after = grandpa;
26687 } else {
26688 if (after === parent.L) {
26689 RedBlackRotateRight(this, parent);
26690 after = parent;
26691 parent = after.U;
26692 }
26693 parent.C = false;
26694 grandpa.C = true;
26695 RedBlackRotateLeft(this, grandpa);
26696 }
26697 }
26698 parent = after.U;
26699 }
26700 this._.C = false;
26701 },
26702
26703 remove: function(node) {
26704 if (node.N) node.N.P = node.P;
26705 if (node.P) node.P.N = node.N;
26706 node.N = node.P = null;
26707
26708 var parent = node.U,
26709 sibling,
26710 left = node.L,
26711 right = node.R,
26712 next,
26713 red;
26714
26715 if (!left) next = right;
26716 else if (!right) next = left;
26717 else next = RedBlackFirst(right);
26718
26719 if (parent) {
26720 if (parent.L === node) parent.L = next;
26721 else parent.R = next;
26722 } else {
26723 this._ = next;
26724 }
26725
26726 if (left && right) {
26727 red = next.C;
26728 next.C = node.C;
26729 next.L = left;
26730 left.U = next;
26731 if (next !== right) {
26732 parent = next.U;
26733 next.U = node.U;
26734 node = next.R;
26735 parent.L = node;
26736 next.R = right;
26737 right.U = next;
26738 } else {
26739 next.U = parent;
26740 parent = next;
26741 node = next.R;
26742 }
26743 } else {
26744 red = node.C;
26745 node = next;
26746 }
26747
26748 if (node) node.U = parent;
26749 if (red) return;
26750 if (node && node.C) { node.C = false; return; }
26751
26752 do {
26753 if (node === this._) break;
26754 if (node === parent.L) {
26755 sibling = parent.R;
26756 if (sibling.C) {
26757 sibling.C = false;
26758 parent.C = true;
26759 RedBlackRotateLeft(this, parent);
26760 sibling = parent.R;
26761 }
26762 if ((sibling.L && sibling.L.C)
26763 || (sibling.R && sibling.R.C)) {
26764 if (!sibling.R || !sibling.R.C) {
26765 sibling.L.C = false;
26766 sibling.C = true;
26767 RedBlackRotateRight(this, sibling);
26768 sibling = parent.R;
26769 }
26770 sibling.C = parent.C;
26771 parent.C = sibling.R.C = false;
26772 RedBlackRotateLeft(this, parent);
26773 node = this._;
26774 break;
26775 }
26776 } else {
26777 sibling = parent.L;
26778 if (sibling.C) {
26779 sibling.C = false;
26780 parent.C = true;
26781 RedBlackRotateRight(this, parent);
26782 sibling = parent.L;
26783 }
26784 if ((sibling.L && sibling.L.C)
26785 || (sibling.R && sibling.R.C)) {
26786 if (!sibling.L || !sibling.L.C) {
26787 sibling.R.C = false;
26788 sibling.C = true;
26789 RedBlackRotateLeft(this, sibling);
26790 sibling = parent.L;
26791 }
26792 sibling.C = parent.C;
26793 parent.C = sibling.L.C = false;
26794 RedBlackRotateRight(this, parent);
26795 node = this._;
26796 break;
26797 }
26798 }
26799 sibling.C = true;
26800 node = parent;
26801 parent = parent.U;
26802 } while (!node.C);
26803
26804 if (node) node.C = false;
26805 }
26806};
26807
26808function RedBlackRotateLeft(tree, node) {
26809 var p = node,
26810 q = node.R,
26811 parent = p.U;
26812
26813 if (parent) {
26814 if (parent.L === p) parent.L = q;
26815 else parent.R = q;
26816 } else {
26817 tree._ = q;
26818 }
26819
26820 q.U = parent;
26821 p.U = q;
26822 p.R = q.L;
26823 if (p.R) p.R.U = p;
26824 q.L = p;
26825}
26826
26827function RedBlackRotateRight(tree, node) {
26828 var p = node,
26829 q = node.L,
26830 parent = p.U;
26831
26832 if (parent) {
26833 if (parent.L === p) parent.L = q;
26834 else parent.R = q;
26835 } else {
26836 tree._ = q;
26837 }
26838
26839 q.U = parent;
26840 p.U = q;
26841 p.L = q.R;
26842 if (p.L) p.L.U = p;
26843 q.R = p;
26844}
26845
26846function RedBlackFirst(node) {
26847 while (node.L) node = node.L;
26848 return node;
26849}
26850
26851/* harmony default export */ __webpack_exports__["default"] = (RedBlackTree);
26852
26853
26854/***/ }),
26855
26856/***/ "./node_modules/d3-voronoi/src/constant.js":
26857/*!*************************************************!*\
26858 !*** ./node_modules/d3-voronoi/src/constant.js ***!
26859 \*************************************************/
26860/*! exports provided: default */
26861/***/ (function(module, __webpack_exports__, __webpack_require__) {
26862
26863"use strict";
26864__webpack_require__.r(__webpack_exports__);
26865/* harmony default export */ __webpack_exports__["default"] = (function(x) {
26866 return function() {
26867 return x;
26868 };
26869});
26870
26871
26872/***/ }),
26873
26874/***/ "./node_modules/d3-voronoi/src/index.js":
26875/*!**********************************************!*\
26876 !*** ./node_modules/d3-voronoi/src/index.js ***!
26877 \**********************************************/
26878/*! exports provided: voronoi */
26879/***/ (function(module, __webpack_exports__, __webpack_require__) {
26880
26881"use strict";
26882__webpack_require__.r(__webpack_exports__);
26883/* harmony import */ var _voronoi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./voronoi */ "./node_modules/d3-voronoi/src/voronoi.js");
26884/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "voronoi", function() { return _voronoi__WEBPACK_IMPORTED_MODULE_0__["default"]; });
26885
26886
26887
26888
26889/***/ }),
26890
26891/***/ "./node_modules/d3-voronoi/src/point.js":
26892/*!**********************************************!*\
26893 !*** ./node_modules/d3-voronoi/src/point.js ***!
26894 \**********************************************/
26895/*! exports provided: x, y */
26896/***/ (function(module, __webpack_exports__, __webpack_require__) {
26897
26898"use strict";
26899__webpack_require__.r(__webpack_exports__);
26900/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
26901/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
26902function x(d) {
26903 return d[0];
26904}
26905
26906function y(d) {
26907 return d[1];
26908}
26909
26910
26911/***/ }),
26912
26913/***/ "./node_modules/d3-voronoi/src/voronoi.js":
26914/*!************************************************!*\
26915 !*** ./node_modules/d3-voronoi/src/voronoi.js ***!
26916 \************************************************/
26917/*! exports provided: default */
26918/***/ (function(module, __webpack_exports__, __webpack_require__) {
26919
26920"use strict";
26921__webpack_require__.r(__webpack_exports__);
26922/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-voronoi/src/constant.js");
26923/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-voronoi/src/point.js");
26924/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
26925
26926
26927
26928
26929/* harmony default export */ __webpack_exports__["default"] = (function() {
26930 var x = _point__WEBPACK_IMPORTED_MODULE_1__["x"],
26931 y = _point__WEBPACK_IMPORTED_MODULE_1__["y"],
26932 extent = null;
26933
26934 function voronoi(data) {
26935 return new _Diagram__WEBPACK_IMPORTED_MODULE_2__["default"](data.map(function(d, i) {
26936 var s = [Math.round(x(d, i, data) / _Diagram__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) * _Diagram__WEBPACK_IMPORTED_MODULE_2__["epsilon"], Math.round(y(d, i, data) / _Diagram__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) * _Diagram__WEBPACK_IMPORTED_MODULE_2__["epsilon"]];
26937 s.index = i;
26938 s.data = d;
26939 return s;
26940 }), extent);
26941 }
26942
26943 voronoi.polygons = function(data) {
26944 return voronoi(data).polygons();
26945 };
26946
26947 voronoi.links = function(data) {
26948 return voronoi(data).links();
26949 };
26950
26951 voronoi.triangles = function(data) {
26952 return voronoi(data).triangles();
26953 };
26954
26955 voronoi.x = function(_) {
26956 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), voronoi) : x;
26957 };
26958
26959 voronoi.y = function(_) {
26960 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), voronoi) : y;
26961 };
26962
26963 voronoi.extent = function(_) {
26964 return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];
26965 };
26966
26967 voronoi.size = function(_) {
26968 return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];
26969 };
26970
26971 return voronoi;
26972});
26973
26974
26975/***/ }),
26976
26977/***/ "./node_modules/d3-zoom/src/constant.js":
26978/*!**********************************************!*\
26979 !*** ./node_modules/d3-zoom/src/constant.js ***!
26980 \**********************************************/
26981/*! exports provided: default */
26982/***/ (function(module, __webpack_exports__, __webpack_require__) {
26983
26984"use strict";
26985__webpack_require__.r(__webpack_exports__);
26986/* harmony default export */ __webpack_exports__["default"] = (function(x) {
26987 return function() {
26988 return x;
26989 };
26990});
26991
26992
26993/***/ }),
26994
26995/***/ "./node_modules/d3-zoom/src/event.js":
26996/*!*******************************************!*\
26997 !*** ./node_modules/d3-zoom/src/event.js ***!
26998 \*******************************************/
26999/*! exports provided: default */
27000/***/ (function(module, __webpack_exports__, __webpack_require__) {
27001
27002"use strict";
27003__webpack_require__.r(__webpack_exports__);
27004/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ZoomEvent; });
27005function ZoomEvent(target, type, transform) {
27006 this.target = target;
27007 this.type = type;
27008 this.transform = transform;
27009}
27010
27011
27012/***/ }),
27013
27014/***/ "./node_modules/d3-zoom/src/index.js":
27015/*!*******************************************!*\
27016 !*** ./node_modules/d3-zoom/src/index.js ***!
27017 \*******************************************/
27018/*! exports provided: zoom, zoomTransform, zoomIdentity */
27019/***/ (function(module, __webpack_exports__, __webpack_require__) {
27020
27021"use strict";
27022__webpack_require__.r(__webpack_exports__);
27023/* harmony import */ var _zoom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zoom */ "./node_modules/d3-zoom/src/zoom.js");
27024/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoom", function() { return _zoom__WEBPACK_IMPORTED_MODULE_0__["default"]; });
27025
27026/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transform */ "./node_modules/d3-zoom/src/transform.js");
27027/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomTransform", function() { return _transform__WEBPACK_IMPORTED_MODULE_1__["default"]; });
27028
27029/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomIdentity", function() { return _transform__WEBPACK_IMPORTED_MODULE_1__["identity"]; });
27030
27031
27032
27033
27034
27035/***/ }),
27036
27037/***/ "./node_modules/d3-zoom/src/noevent.js":
27038/*!*********************************************!*\
27039 !*** ./node_modules/d3-zoom/src/noevent.js ***!
27040 \*********************************************/
27041/*! exports provided: nopropagation, default */
27042/***/ (function(module, __webpack_exports__, __webpack_require__) {
27043
27044"use strict";
27045__webpack_require__.r(__webpack_exports__);
27046/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
27047/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
27048
27049
27050function nopropagation() {
27051 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
27052}
27053
27054/* harmony default export */ __webpack_exports__["default"] = (function() {
27055 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
27056 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
27057});
27058
27059
27060/***/ }),
27061
27062/***/ "./node_modules/d3-zoom/src/transform.js":
27063/*!***********************************************!*\
27064 !*** ./node_modules/d3-zoom/src/transform.js ***!
27065 \***********************************************/
27066/*! exports provided: Transform, identity, default */
27067/***/ (function(module, __webpack_exports__, __webpack_require__) {
27068
27069"use strict";
27070__webpack_require__.r(__webpack_exports__);
27071/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transform", function() { return Transform; });
27072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
27073/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return transform; });
27074function Transform(k, x, y) {
27075 this.k = k;
27076 this.x = x;
27077 this.y = y;
27078}
27079
27080Transform.prototype = {
27081 constructor: Transform,
27082 scale: function(k) {
27083 return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
27084 },
27085 translate: function(x, y) {
27086 return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
27087 },
27088 apply: function(point) {
27089 return [point[0] * this.k + this.x, point[1] * this.k + this.y];
27090 },
27091 applyX: function(x) {
27092 return x * this.k + this.x;
27093 },
27094 applyY: function(y) {
27095 return y * this.k + this.y;
27096 },
27097 invert: function(location) {
27098 return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
27099 },
27100 invertX: function(x) {
27101 return (x - this.x) / this.k;
27102 },
27103 invertY: function(y) {
27104 return (y - this.y) / this.k;
27105 },
27106 rescaleX: function(x) {
27107 return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
27108 },
27109 rescaleY: function(y) {
27110 return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
27111 },
27112 toString: function() {
27113 return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
27114 }
27115};
27116
27117var identity = new Transform(1, 0, 0);
27118
27119transform.prototype = Transform.prototype;
27120
27121function transform(node) {
27122 return node.__zoom || identity;
27123}
27124
27125
27126/***/ }),
27127
27128/***/ "./node_modules/d3-zoom/src/zoom.js":
27129/*!******************************************!*\
27130 !*** ./node_modules/d3-zoom/src/zoom.js ***!
27131 \******************************************/
27132/*! exports provided: default */
27133/***/ (function(module, __webpack_exports__, __webpack_require__) {
27134
27135"use strict";
27136__webpack_require__.r(__webpack_exports__);
27137/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
27138/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/index.js");
27139/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
27140/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
27141/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
27142/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-zoom/src/constant.js");
27143/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./event */ "./node_modules/d3-zoom/src/event.js");
27144/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./transform */ "./node_modules/d3-zoom/src/transform.js");
27145/* harmony import */ var _noevent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./noevent */ "./node_modules/d3-zoom/src/noevent.js");
27146
27147
27148
27149
27150
27151
27152
27153
27154
27155
27156// Ignore right-click, since that should open the context menu.
27157function defaultFilter() {
27158 return !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].button;
27159}
27160
27161function defaultExtent() {
27162 var e = this, w, h;
27163 if (e instanceof SVGElement) {
27164 e = e.ownerSVGElement || e;
27165 w = e.width.baseVal.value;
27166 h = e.height.baseVal.value;
27167 } else {
27168 w = e.clientWidth;
27169 h = e.clientHeight;
27170 }
27171 return [[0, 0], [w, h]];
27172}
27173
27174function defaultTransform() {
27175 return this.__zoom || _transform__WEBPACK_IMPORTED_MODULE_7__["identity"];
27176}
27177
27178function defaultWheelDelta() {
27179 return -d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].deltaY * (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].deltaMode ? 120 : 1) / 500;
27180}
27181
27182function defaultTouchable() {
27183 return "ontouchstart" in this;
27184}
27185
27186function defaultConstrain(transform, extent, translateExtent) {
27187 var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
27188 dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
27189 dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
27190 dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
27191 return transform.translate(
27192 dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
27193 dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
27194 );
27195}
27196
27197/* harmony default export */ __webpack_exports__["default"] = (function() {
27198 var filter = defaultFilter,
27199 extent = defaultExtent,
27200 constrain = defaultConstrain,
27201 wheelDelta = defaultWheelDelta,
27202 touchable = defaultTouchable,
27203 scaleExtent = [0, Infinity],
27204 translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
27205 duration = 250,
27206 interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["interpolateZoom"],
27207 gestures = [],
27208 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "zoom", "end"),
27209 touchstarting,
27210 touchending,
27211 touchDelay = 500,
27212 wheelDelay = 150,
27213 clickDistance2 = 0;
27214
27215 function zoom(selection) {
27216 selection
27217 .property("__zoom", defaultTransform)
27218 .on("wheel.zoom", wheeled)
27219 .on("mousedown.zoom", mousedowned)
27220 .on("dblclick.zoom", dblclicked)
27221 .filter(touchable)
27222 .on("touchstart.zoom", touchstarted)
27223 .on("touchmove.zoom", touchmoved)
27224 .on("touchend.zoom touchcancel.zoom", touchended)
27225 .style("touch-action", "none")
27226 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
27227 }
27228
27229 zoom.transform = function(collection, transform) {
27230 var selection = collection.selection ? collection.selection() : collection;
27231 selection.property("__zoom", defaultTransform);
27232 if (collection !== selection) {
27233 schedule(collection, transform);
27234 } else {
27235 selection.interrupt().each(function() {
27236 gesture(this, arguments)
27237 .start()
27238 .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
27239 .end();
27240 });
27241 }
27242 };
27243
27244 zoom.scaleBy = function(selection, k) {
27245 zoom.scaleTo(selection, function() {
27246 var k0 = this.__zoom.k,
27247 k1 = typeof k === "function" ? k.apply(this, arguments) : k;
27248 return k0 * k1;
27249 });
27250 };
27251
27252 zoom.scaleTo = function(selection, k) {
27253 zoom.transform(selection, function() {
27254 var e = extent.apply(this, arguments),
27255 t0 = this.__zoom,
27256 p0 = centroid(e),
27257 p1 = t0.invert(p0),
27258 k1 = typeof k === "function" ? k.apply(this, arguments) : k;
27259 return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
27260 });
27261 };
27262
27263 zoom.translateBy = function(selection, x, y) {
27264 zoom.transform(selection, function() {
27265 return constrain(this.__zoom.translate(
27266 typeof x === "function" ? x.apply(this, arguments) : x,
27267 typeof y === "function" ? y.apply(this, arguments) : y
27268 ), extent.apply(this, arguments), translateExtent);
27269 });
27270 };
27271
27272 zoom.translateTo = function(selection, x, y) {
27273 zoom.transform(selection, function() {
27274 var e = extent.apply(this, arguments),
27275 t = this.__zoom,
27276 p = centroid(e);
27277 return constrain(_transform__WEBPACK_IMPORTED_MODULE_7__["identity"].translate(p[0], p[1]).scale(t.k).translate(
27278 typeof x === "function" ? -x.apply(this, arguments) : -x,
27279 typeof y === "function" ? -y.apply(this, arguments) : -y
27280 ), e, translateExtent);
27281 });
27282 };
27283
27284 function scale(transform, k) {
27285 k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
27286 return k === transform.k ? transform : new _transform__WEBPACK_IMPORTED_MODULE_7__["Transform"](k, transform.x, transform.y);
27287 }
27288
27289 function translate(transform, p0, p1) {
27290 var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
27291 return x === transform.x && y === transform.y ? transform : new _transform__WEBPACK_IMPORTED_MODULE_7__["Transform"](transform.k, x, y);
27292 }
27293
27294 function centroid(extent) {
27295 return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
27296 }
27297
27298 function schedule(transition, transform, center) {
27299 transition
27300 .on("start.zoom", function() { gesture(this, arguments).start(); })
27301 .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).end(); })
27302 .tween("zoom", function() {
27303 var that = this,
27304 args = arguments,
27305 g = gesture(that, args),
27306 e = extent.apply(that, args),
27307 p = center || centroid(e),
27308 w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
27309 a = that.__zoom,
27310 b = typeof transform === "function" ? transform.apply(that, args) : transform,
27311 i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
27312 return function(t) {
27313 if (t === 1) t = b; // Avoid rounding error on end.
27314 else { var l = i(t), k = w / l[2]; t = new _transform__WEBPACK_IMPORTED_MODULE_7__["Transform"](k, p[0] - l[0] * k, p[1] - l[1] * k); }
27315 g.zoom(null, t);
27316 };
27317 });
27318 }
27319
27320 function gesture(that, args) {
27321 for (var i = 0, n = gestures.length, g; i < n; ++i) {
27322 if ((g = gestures[i]).that === that) {
27323 return g;
27324 }
27325 }
27326 return new Gesture(that, args);
27327 }
27328
27329 function Gesture(that, args) {
27330 this.that = that;
27331 this.args = args;
27332 this.index = -1;
27333 this.active = 0;
27334 this.extent = extent.apply(that, args);
27335 }
27336
27337 Gesture.prototype = {
27338 start: function() {
27339 if (++this.active === 1) {
27340 this.index = gestures.push(this) - 1;
27341 this.emit("start");
27342 }
27343 return this;
27344 },
27345 zoom: function(key, transform) {
27346 if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
27347 if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
27348 if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
27349 this.that.__zoom = transform;
27350 this.emit("zoom");
27351 return this;
27352 },
27353 end: function() {
27354 if (--this.active === 0) {
27355 gestures.splice(this.index, 1);
27356 this.index = -1;
27357 this.emit("end");
27358 }
27359 return this;
27360 },
27361 emit: function(type) {
27362 Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["customEvent"])(new _event__WEBPACK_IMPORTED_MODULE_6__["default"](zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);
27363 }
27364 };
27365
27366 function wheeled() {
27367 if (!filter.apply(this, arguments)) return;
27368 var g = gesture(this, arguments),
27369 t = this.__zoom,
27370 k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
27371 p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this);
27372
27373 // If the mouse is in the same location as before, reuse it.
27374 // If there were recent wheel events, reset the wheel idle timeout.
27375 if (g.wheel) {
27376 if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
27377 g.mouse[1] = t.invert(g.mouse[0] = p);
27378 }
27379 clearTimeout(g.wheel);
27380 }
27381
27382 // If this wheel event won’t trigger a transform change, ignore it.
27383 else if (t.k === k) return;
27384
27385 // Otherwise, capture the mouse point and location at the start.
27386 else {
27387 g.mouse = [p, t.invert(p)];
27388 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
27389 g.start();
27390 }
27391
27392 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
27393 g.wheel = setTimeout(wheelidled, wheelDelay);
27394 g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
27395
27396 function wheelidled() {
27397 g.wheel = null;
27398 g.end();
27399 }
27400 }
27401
27402 function mousedowned() {
27403 if (touchending || !filter.apply(this, arguments)) return;
27404 var g = gesture(this, arguments),
27405 v = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
27406 p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this),
27407 x0 = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientX,
27408 y0 = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientY;
27409
27410 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragDisable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view);
27411 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
27412 g.mouse = [p, this.__zoom.invert(p)];
27413 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
27414 g.start();
27415
27416 function mousemoved() {
27417 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
27418 if (!g.moved) {
27419 var dx = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientX - x0, dy = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientY - y0;
27420 g.moved = dx * dx + dy * dy > clickDistance2;
27421 }
27422 g.zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(g.that), g.mouse[1]), g.extent, translateExtent));
27423 }
27424
27425 function mouseupped() {
27426 v.on("mousemove.zoom mouseup.zoom", null);
27427 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragEnable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view, g.moved);
27428 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
27429 g.end();
27430 }
27431 }
27432
27433 function dblclicked() {
27434 if (!filter.apply(this, arguments)) return;
27435 var t0 = this.__zoom,
27436 p0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this),
27437 p1 = t0.invert(p0),
27438 k1 = t0.k * (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].shiftKey ? 0.5 : 2),
27439 t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);
27440
27441 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
27442 if (duration > 0) Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).transition().duration(duration).call(schedule, t1, p0);
27443 else Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).call(zoom.transform, t1);
27444 }
27445
27446 function touchstarted() {
27447 if (!filter.apply(this, arguments)) return;
27448 var g = gesture(this, arguments),
27449 touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches,
27450 started,
27451 n = touches.length, i, t, p;
27452
27453 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
27454 for (i = 0; i < n; ++i) {
27455 t = touches[i], p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["touch"])(this, touches, t.identifier);
27456 p = [p, this.__zoom.invert(p), t.identifier];
27457 if (!g.touch0) g.touch0 = p, started = true;
27458 else if (!g.touch1) g.touch1 = p;
27459 }
27460
27461 // If this is a dbltap, reroute to the (optional) dblclick.zoom handler.
27462 if (touchstarting) {
27463 touchstarting = clearTimeout(touchstarting);
27464 if (!g.touch1) {
27465 g.end();
27466 p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).on("dblclick.zoom");
27467 if (p) p.apply(this, arguments);
27468 return;
27469 }
27470 }
27471
27472 if (started) {
27473 touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
27474 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
27475 g.start();
27476 }
27477 }
27478
27479 function touchmoved() {
27480 var g = gesture(this, arguments),
27481 touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches,
27482 n = touches.length, i, t, p, l;
27483
27484 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
27485 if (touchstarting) touchstarting = clearTimeout(touchstarting);
27486 for (i = 0; i < n; ++i) {
27487 t = touches[i], p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["touch"])(this, touches, t.identifier);
27488 if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
27489 else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
27490 }
27491 t = g.that.__zoom;
27492 if (g.touch1) {
27493 var p0 = g.touch0[0], l0 = g.touch0[1],
27494 p1 = g.touch1[0], l1 = g.touch1[1],
27495 dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
27496 dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
27497 t = scale(t, Math.sqrt(dp / dl));
27498 p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
27499 l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
27500 }
27501 else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
27502 else return;
27503 g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
27504 }
27505
27506 function touchended() {
27507 var g = gesture(this, arguments),
27508 touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches,
27509 n = touches.length, i, t;
27510
27511 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
27512 if (touchending) clearTimeout(touchending);
27513 touchending = setTimeout(function() { touchending = null; }, touchDelay);
27514 for (i = 0; i < n; ++i) {
27515 t = touches[i];
27516 if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
27517 else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
27518 }
27519 if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
27520 if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
27521 else g.end();
27522 }
27523
27524 zoom.wheelDelta = function(_) {
27525 return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])(+_), zoom) : wheelDelta;
27526 };
27527
27528 zoom.filter = function(_) {
27529 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), zoom) : filter;
27530 };
27531
27532 zoom.touchable = function(_) {
27533 return arguments.length ? (touchable = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), zoom) : touchable;
27534 };
27535
27536 zoom.extent = function(_) {
27537 return arguments.length ? (extent = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
27538 };
27539
27540 zoom.scaleExtent = function(_) {
27541 return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
27542 };
27543
27544 zoom.translateExtent = function(_) {
27545 return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];
27546 };
27547
27548 zoom.constrain = function(_) {
27549 return arguments.length ? (constrain = _, zoom) : constrain;
27550 };
27551
27552 zoom.duration = function(_) {
27553 return arguments.length ? (duration = +_, zoom) : duration;
27554 };
27555
27556 zoom.interpolate = function(_) {
27557 return arguments.length ? (interpolate = _, zoom) : interpolate;
27558 };
27559
27560 zoom.on = function() {
27561 var value = listeners.on.apply(listeners, arguments);
27562 return value === listeners ? zoom : value;
27563 };
27564
27565 zoom.clickDistance = function(_) {
27566 return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
27567 };
27568
27569 return zoom;
27570});
27571
27572
27573/***/ }),
27574
27575/***/ "./node_modules/d3/dist/package.js":
27576/*!*****************************************!*\
27577 !*** ./node_modules/d3/dist/package.js ***!
27578 \*****************************************/
27579/*! exports provided: name, version, description, keywords, homepage, license, author, main, unpkg, jsdelivr, module, repository, scripts, devDependencies, dependencies */
27580/***/ (function(module, __webpack_exports__, __webpack_require__) {
27581
27582"use strict";
27583__webpack_require__.r(__webpack_exports__);
27584/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "name", function() { return name; });
27585/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; });
27586/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "description", function() { return description; });
27587/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keywords", function() { return keywords; });
27588/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "homepage", function() { return homepage; });
27589/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "license", function() { return license; });
27590/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "author", function() { return author; });
27591/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "main", function() { return main; });
27592/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unpkg", function() { return unpkg; });
27593/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jsdelivr", function() { return jsdelivr; });
27594/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "module", function() { return module; });
27595/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repository", function() { return repository; });
27596/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scripts", function() { return scripts; });
27597/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "devDependencies", function() { return devDependencies; });
27598/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dependencies", function() { return dependencies; });
27599var name = "d3";
27600var version = "5.7.0";
27601var description = "Data-Driven Documents";
27602var keywords = ["dom","visualization","svg","animation","canvas"];
27603var homepage = "https://d3js.org";
27604var license = "BSD-3-Clause";
27605var author = {"name":"Mike Bostock","url":"https://bost.ocks.org/mike"};
27606var main = "dist/d3.node.js";
27607var unpkg = "dist/d3.min.js";
27608var jsdelivr = "dist/d3.min.js";
27609var module = "index.js";
27610var repository = {"type":"git","url":"https://github.com/d3/d3.git"};
27611var scripts = {"pretest":"rimraf dist && mkdir dist && json2module package.json > dist/package.js && node rollup.node","test":"tape 'test/**/*-test.js'","prepublishOnly":"yarn test && rollup -c","postpublish":"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v5.js && cp ../d3/dist/d3.min.js d3.v5.min.js && git add d3.v5.js d3.v5.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/dist/d3.js ../d3/dist/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m \"${npm_package_version}\" && git tag -am \"${npm_package_version}\" v${npm_package_version} && git push && git push --tags && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js"};
27612var devDependencies = {"json2module":"0.0","rimraf":"2","rollup":"0.64","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"3","rollup-plugin-terser":"1","tape":"4"};
27613var dependencies = {"d3-array":"1","d3-axis":"1","d3-brush":"1","d3-chord":"1","d3-collection":"1","d3-color":"1","d3-contour":"1","d3-dispatch":"1","d3-drag":"1","d3-dsv":"1","d3-ease":"1","d3-fetch":"1","d3-force":"1","d3-format":"1","d3-geo":"1","d3-hierarchy":"1","d3-interpolate":"1","d3-path":"1","d3-polygon":"1","d3-quadtree":"1","d3-random":"1","d3-scale":"2","d3-scale-chromatic":"1","d3-selection":"1","d3-shape":"1","d3-time":"1","d3-time-format":"2","d3-timer":"1","d3-transition":"1","d3-voronoi":"1","d3-zoom":"1"};
27614
27615
27616/***/ }),
27617
27618/***/ "./node_modules/d3/index.js":
27619/*!**********************************!*\
27620 !*** ./node_modules/d3/index.js ***!
27621 \**********************************/
27622/*! exports provided: version, bisect, bisectRight, bisectLeft, ascending, bisector, cross, descending, deviation, extent, histogram, thresholdFreedmanDiaconis, thresholdScott, thresholdSturges, max, mean, median, merge, min, pairs, permute, quantile, range, scan, shuffle, sum, ticks, tickIncrement, tickStep, transpose, variance, zip, axisTop, axisRight, axisBottom, axisLeft, brush, brushX, brushY, brushSelection, chord, ribbon, nest, set, map, keys, values, entries, color, rgb, hsl, lab, hcl, lch, gray, cubehelix, contours, contourDensity, dispatch, drag, dragDisable, dragEnable, dsvFormat, csvParse, csvParseRows, csvFormat, csvFormatRows, tsvParse, tsvParseRows, tsvFormat, tsvFormatRows, easeLinear, easeQuad, easeQuadIn, easeQuadOut, easeQuadInOut, easeCubic, easeCubicIn, easeCubicOut, easeCubicInOut, easePoly, easePolyIn, easePolyOut, easePolyInOut, easeSin, easeSinIn, easeSinOut, easeSinInOut, easeExp, easeExpIn, easeExpOut, easeExpInOut, easeCircle, easeCircleIn, easeCircleOut, easeCircleInOut, easeBounce, easeBounceIn, easeBounceOut, easeBounceInOut, easeBack, easeBackIn, easeBackOut, easeBackInOut, easeElastic, easeElasticIn, easeElasticOut, easeElasticInOut, blob, buffer, dsv, csv, tsv, image, json, text, xml, html, svg, forceCenter, forceCollide, forceLink, forceManyBody, forceRadial, forceSimulation, forceX, forceY, formatDefaultLocale, format, formatPrefix, formatLocale, formatSpecifier, precisionFixed, precisionPrefix, precisionRound, geoArea, geoBounds, geoCentroid, geoCircle, geoClipAntimeridian, geoClipCircle, geoClipExtent, geoClipRectangle, geoContains, geoDistance, geoGraticule, geoGraticule10, geoInterpolate, geoLength, geoPath, geoAlbers, geoAlbersUsa, geoAzimuthalEqualArea, geoAzimuthalEqualAreaRaw, geoAzimuthalEquidistant, geoAzimuthalEquidistantRaw, geoConicConformal, geoConicConformalRaw, geoConicEqualArea, geoConicEqualAreaRaw, geoConicEquidistant, geoConicEquidistantRaw, geoEqualEarth, geoEqualEarthRaw, geoEquirectangular, geoEquirectangularRaw, geoGnomonic, geoGnomonicRaw, geoIdentity, geoProjection, geoProjectionMutator, geoMercator, geoMercatorRaw, geoNaturalEarth1, geoNaturalEarth1Raw, geoOrthographic, geoOrthographicRaw, geoStereographic, geoStereographicRaw, geoTransverseMercator, geoTransverseMercatorRaw, geoRotation, geoStream, geoTransform, cluster, hierarchy, pack, packSiblings, packEnclose, partition, stratify, tree, treemap, treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify, interpolate, interpolateArray, interpolateBasis, interpolateBasisClosed, interpolateDate, interpolateDiscrete, interpolateHue, interpolateNumber, interpolateObject, interpolateRound, interpolateString, interpolateTransformCss, interpolateTransformSvg, interpolateZoom, interpolateRgb, interpolateRgbBasis, interpolateRgbBasisClosed, interpolateHsl, interpolateHslLong, interpolateLab, interpolateHcl, interpolateHclLong, interpolateCubehelix, interpolateCubehelixLong, piecewise, quantize, path, polygonArea, polygonCentroid, polygonHull, polygonContains, polygonLength, quadtree, randomUniform, randomNormal, randomLogNormal, randomBates, randomIrwinHall, randomExponential, scaleBand, scalePoint, scaleIdentity, scaleLinear, scaleLog, scaleOrdinal, scaleImplicit, scalePow, scaleSqrt, scaleQuantile, scaleQuantize, scaleThreshold, scaleTime, scaleUtc, scaleSequential, scaleDiverging, schemeCategory10, schemeAccent, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, interpolateBrBG, schemeBrBG, interpolatePRGn, schemePRGn, interpolatePiYG, schemePiYG, interpolatePuOr, schemePuOr, interpolateRdBu, schemeRdBu, interpolateRdGy, schemeRdGy, interpolateRdYlBu, schemeRdYlBu, interpolateRdYlGn, schemeRdYlGn, interpolateSpectral, schemeSpectral, interpolateBuGn, schemeBuGn, interpolateBuPu, schemeBuPu, interpolateGnBu, schemeGnBu, interpolateOrRd, schemeOrRd, interpolatePuBuGn, schemePuBuGn, interpolatePuBu, schemePuBu, interpolatePuRd, schemePuRd, interpolateRdPu, schemeRdPu, interpolateYlGnBu, schemeYlGnBu, interpolateYlGn, schemeYlGn, interpolateYlOrBr, schemeYlOrBr, interpolateYlOrRd, schemeYlOrRd, interpolateBlues, schemeBlues, interpolateGreens, schemeGreens, interpolateGreys, schemeGreys, interpolatePurples, schemePurples, interpolateReds, schemeReds, interpolateOranges, schemeOranges, interpolateCubehelixDefault, interpolateRainbow, interpolateWarm, interpolateCool, interpolateSinebow, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma, create, creator, local, matcher, mouse, namespace, namespaces, clientPoint, select, selectAll, selection, selector, selectorAll, style, touch, touches, window, event, customEvent, arc, area, line, pie, areaRadial, radialArea, lineRadial, radialLine, pointRadial, linkHorizontal, linkVertical, linkRadial, symbol, symbols, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye, curveBasisClosed, curveBasisOpen, curveBasis, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, stack, stackOffsetExpand, stackOffsetDiverging, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderAscending, stackOrderDescending, stackOrderInsideOut, stackOrderNone, stackOrderReverse, timeInterval, timeMillisecond, timeMilliseconds, utcMillisecond, utcMilliseconds, timeSecond, timeSeconds, utcSecond, utcSeconds, timeMinute, timeMinutes, timeHour, timeHours, timeDay, timeDays, timeWeek, timeWeeks, timeSunday, timeSundays, timeMonday, timeMondays, timeTuesday, timeTuesdays, timeWednesday, timeWednesdays, timeThursday, timeThursdays, timeFriday, timeFridays, timeSaturday, timeSaturdays, timeMonth, timeMonths, timeYear, timeYears, utcMinute, utcMinutes, utcHour, utcHours, utcDay, utcDays, utcWeek, utcWeeks, utcSunday, utcSundays, utcMonday, utcMondays, utcTuesday, utcTuesdays, utcWednesday, utcWednesdays, utcThursday, utcThursdays, utcFriday, utcFridays, utcSaturday, utcSaturdays, utcMonth, utcMonths, utcYear, utcYears, timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse, timeFormatLocale, isoFormat, isoParse, now, timer, timerFlush, timeout, interval, transition, active, interrupt, voronoi, zoom, zoomTransform, zoomIdentity */
27623/***/ (function(module, __webpack_exports__, __webpack_require__) {
27624
27625"use strict";
27626__webpack_require__.r(__webpack_exports__);
27627/* harmony import */ var _dist_package__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dist/package */ "./node_modules/d3/dist/package.js");
27628/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "version", function() { return _dist_package__WEBPACK_IMPORTED_MODULE_0__["version"]; });
27629
27630/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
27631/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisect", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisect"]; });
27632
27633/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisectRight"]; });
27634
27635/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisectLeft"]; });
27636
27637/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ascending", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["ascending"]; });
27638
27639/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisector", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisector"]; });
27640
27641/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cross", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["cross"]; });
27642
27643/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "descending", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["descending"]; });
27644
27645/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deviation", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["deviation"]; });
27646
27647/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extent", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["extent"]; });
27648
27649/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "histogram", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["histogram"]; });
27650
27651/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdFreedmanDiaconis", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdFreedmanDiaconis"]; });
27652
27653/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdScott", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdScott"]; });
27654
27655/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdSturges", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdSturges"]; });
27656
27657/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["max"]; });
27658
27659/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mean", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["mean"]; });
27660
27661/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "median", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["median"]; });
27662
27663/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["merge"]; });
27664
27665/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["min"]; });
27666
27667/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["pairs"]; });
27668
27669/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "permute", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["permute"]; });
27670
27671/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantile", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["quantile"]; });
27672
27673/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["range"]; });
27674
27675/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["scan"]; });
27676
27677/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["shuffle"]; });
27678
27679/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["sum"]; });
27680
27681/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ticks", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["ticks"]; });
27682
27683/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["tickIncrement"]; });
27684
27685/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["tickStep"]; });
27686
27687/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transpose", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["transpose"]; });
27688
27689/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "variance", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["variance"]; });
27690
27691/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["zip"]; });
27692
27693/* harmony import */ var d3_axis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-axis */ "./node_modules/d3-axis/src/index.js");
27694/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisTop"]; });
27695
27696/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisRight"]; });
27697
27698/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisBottom"]; });
27699
27700/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisLeft"]; });
27701
27702/* harmony import */ var d3_brush__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-brush */ "./node_modules/d3-brush/src/index.js");
27703/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brush", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brush"]; });
27704
27705/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushX"]; });
27706
27707/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushY"]; });
27708
27709/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushSelection"]; });
27710
27711/* harmony import */ var d3_chord__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-chord */ "./node_modules/d3-chord/src/index.js");
27712/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chord", function() { return d3_chord__WEBPACK_IMPORTED_MODULE_4__["chord"]; });
27713
27714/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ribbon", function() { return d3_chord__WEBPACK_IMPORTED_MODULE_4__["ribbon"]; });
27715
27716/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/src/index.js");
27717/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nest", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["nest"]; });
27718
27719/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "set", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["set"]; });
27720
27721/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["map"]; });
27722
27723/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["keys"]; });
27724
27725/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["values"]; });
27726
27727/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "entries", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["entries"]; });
27728
27729/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
27730/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "color", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["color"]; });
27731
27732/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["rgb"]; });
27733
27734/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["hsl"]; });
27735
27736/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lab", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["lab"]; });
27737
27738/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["hcl"]; });
27739
27740/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lch", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["lch"]; });
27741
27742/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "gray", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["gray"]; });
27743
27744/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cubehelix", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["cubehelix"]; });
27745
27746/* harmony import */ var d3_contour__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-contour */ "./node_modules/d3-contour/src/index.js");
27747/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contours", function() { return d3_contour__WEBPACK_IMPORTED_MODULE_7__["contours"]; });
27748
27749/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contourDensity", function() { return d3_contour__WEBPACK_IMPORTED_MODULE_7__["contourDensity"]; });
27750
27751/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
27752/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return d3_dispatch__WEBPACK_IMPORTED_MODULE_8__["dispatch"]; });
27753
27754/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/index.js");
27755/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "drag", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_9__["drag"]; });
27756
27757/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragDisable", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_9__["dragDisable"]; });
27758
27759/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragEnable", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_9__["dragEnable"]; });
27760
27761/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/src/index.js");
27762/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["dsvFormat"]; });
27763
27764/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvParse"]; });
27765
27766/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvParseRows"]; });
27767
27768/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvFormat"]; });
27769
27770/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvFormatRows"]; });
27771
27772/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvParse"]; });
27773
27774/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvParseRows"]; });
27775
27776/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvFormat"]; });
27777
27778/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvFormatRows"]; });
27779
27780/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! d3-ease */ "./node_modules/d3-ease/src/index.js");
27781/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeLinear", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeLinear"]; });
27782
27783/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuad", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeQuad"]; });
27784
27785/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeQuadIn"]; });
27786
27787/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeQuadOut"]; });
27788
27789/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeQuadInOut"]; });
27790
27791/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubic", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCubic"]; });
27792
27793/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCubicIn"]; });
27794
27795/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCubicOut"]; });
27796
27797/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCubicInOut"]; });
27798
27799/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePoly", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easePoly"]; });
27800
27801/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easePolyIn"]; });
27802
27803/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easePolyOut"]; });
27804
27805/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easePolyInOut"]; });
27806
27807/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSin", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeSin"]; });
27808
27809/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeSinIn"]; });
27810
27811/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeSinOut"]; });
27812
27813/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeSinInOut"]; });
27814
27815/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExp", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeExp"]; });
27816
27817/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeExpIn"]; });
27818
27819/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeExpOut"]; });
27820
27821/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeExpInOut"]; });
27822
27823/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircle", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCircle"]; });
27824
27825/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCircleIn"]; });
27826
27827/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCircleOut"]; });
27828
27829/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCircleInOut"]; });
27830
27831/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounce", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBounce"]; });
27832
27833/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBounceIn"]; });
27834
27835/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBounceOut"]; });
27836
27837/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBounceInOut"]; });
27838
27839/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBack", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBack"]; });
27840
27841/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBackIn"]; });
27842
27843/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBackOut"]; });
27844
27845/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBackInOut"]; });
27846
27847/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElastic", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeElastic"]; });
27848
27849/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeElasticIn"]; });
27850
27851/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeElasticOut"]; });
27852
27853/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeElasticInOut"]; });
27854
27855/* harmony import */ var d3_fetch__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! d3-fetch */ "./node_modules/d3-fetch/src/index.js");
27856/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "blob", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["blob"]; });
27857
27858/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["buffer"]; });
27859
27860/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsv", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["dsv"]; });
27861
27862/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csv", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["csv"]; });
27863
27864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsv", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["tsv"]; });
27865
27866/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "image", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["image"]; });
27867
27868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "json", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["json"]; });
27869
27870/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "text", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["text"]; });
27871
27872/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "xml", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["xml"]; });
27873
27874/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "html", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["html"]; });
27875
27876/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "svg", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["svg"]; });
27877
27878/* harmony import */ var d3_force__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! d3-force */ "./node_modules/d3-force/src/index.js");
27879/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCenter", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceCenter"]; });
27880
27881/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCollide", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceCollide"]; });
27882
27883/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceLink", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceLink"]; });
27884
27885/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceManyBody", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceManyBody"]; });
27886
27887/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceRadial", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceRadial"]; });
27888
27889/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceSimulation", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceSimulation"]; });
27890
27891/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceX", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceX"]; });
27892
27893/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceY", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceY"]; });
27894
27895/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/index.js");
27896/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatDefaultLocale", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["formatDefaultLocale"]; });
27897
27898/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["format"]; });
27899
27900/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["formatPrefix"]; });
27901
27902/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatLocale", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["formatLocale"]; });
27903
27904/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatSpecifier", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["formatSpecifier"]; });
27905
27906/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionFixed", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["precisionFixed"]; });
27907
27908/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionPrefix", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["precisionPrefix"]; });
27909
27910/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["precisionRound"]; });
27911
27912/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! d3-geo */ "./node_modules/d3-geo/src/index.js");
27913/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoArea"]; });
27914
27915/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoBounds", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoBounds"]; });
27916
27917/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCentroid", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoCentroid"]; });
27918
27919/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCircle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoCircle"]; });
27920
27921/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipAntimeridian", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoClipAntimeridian"]; });
27922
27923/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipCircle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoClipCircle"]; });
27924
27925/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipExtent", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoClipExtent"]; });
27926
27927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipRectangle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoClipRectangle"]; });
27928
27929/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoContains", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoContains"]; });
27930
27931/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoDistance", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoDistance"]; });
27932
27933/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoGraticule"]; });
27934
27935/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule10", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoGraticule10"]; });
27936
27937/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoInterpolate", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoInterpolate"]; });
27938
27939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoLength", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoLength"]; });
27940
27941/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoPath", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoPath"]; });
27942
27943/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbers", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAlbers"]; });
27944
27945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbersUsa", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAlbersUsa"]; });
27946
27947/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAzimuthalEqualArea"]; });
27948
27949/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualAreaRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAzimuthalEqualAreaRaw"]; });
27950
27951/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistant", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAzimuthalEquidistant"]; });
27952
27953/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistantRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAzimuthalEquidistantRaw"]; });
27954
27955/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformal", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicConformal"]; });
27956
27957/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformalRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicConformalRaw"]; });
27958
27959/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicEqualArea"]; });
27960
27961/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualAreaRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicEqualAreaRaw"]; });
27962
27963/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistant", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicEquidistant"]; });
27964
27965/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistantRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicEquidistantRaw"]; });
27966
27967/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEqualEarth", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoEqualEarth"]; });
27968
27969/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEqualEarthRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoEqualEarthRaw"]; });
27970
27971/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangular", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoEquirectangular"]; });
27972
27973/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangularRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoEquirectangularRaw"]; });
27974
27975/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoGnomonic"]; });
27976
27977/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoGnomonicRaw"]; });
27978
27979/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoIdentity", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoIdentity"]; });
27980
27981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjection", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoProjection"]; });
27982
27983/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjectionMutator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoProjectionMutator"]; });
27984
27985/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoMercator"]; });
27986
27987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercatorRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoMercatorRaw"]; });
27988
27989/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoNaturalEarth1"]; });
27990
27991/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1Raw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoNaturalEarth1Raw"]; });
27992
27993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoOrthographic"]; });
27994
27995/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoOrthographicRaw"]; });
27996
27997/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoStereographic"]; });
27998
27999/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoStereographicRaw"]; });
28000
28001/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoTransverseMercator"]; });
28002
28003/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercatorRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoTransverseMercatorRaw"]; });
28004
28005/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoRotation", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoRotation"]; });
28006
28007/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStream", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoStream"]; });
28008
28009/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransform", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoTransform"]; });
28010
28011/* harmony import */ var d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! d3-hierarchy */ "./node_modules/d3-hierarchy/src/index.js");
28012/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cluster", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["cluster"]; });
28013
28014/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hierarchy", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["hierarchy"]; });
28015
28016/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pack", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["pack"]; });
28017
28018/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packSiblings", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["packSiblings"]; });
28019
28020/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["packEnclose"]; });
28021
28022/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["partition"]; });
28023
28024/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stratify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["stratify"]; });
28025
28026/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tree", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["tree"]; });
28027
28028/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemap", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemap"]; });
28029
28030/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapBinary", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapBinary"]; });
28031
28032/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapDice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapDice"]; });
28033
28034/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSlice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapSlice"]; });
28035
28036/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSliceDice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapSliceDice"]; });
28037
28038/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSquarify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapSquarify"]; });
28039
28040/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapResquarify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapResquarify"]; });
28041
28042/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
28043/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolate", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolate"]; });
28044
28045/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateArray", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateArray"]; });
28046
28047/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasis", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateBasis"]; });
28048
28049/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasisClosed", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateBasisClosed"]; });
28050
28051/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDate", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateDate"]; });
28052
28053/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDiscrete", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateDiscrete"]; });
28054
28055/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHue", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHue"]; });
28056
28057/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateNumber", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateNumber"]; });
28058
28059/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateObject", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateObject"]; });
28060
28061/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRound", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateRound"]; });
28062
28063/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateString", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateString"]; });
28064
28065/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateTransformCss"]; });
28066
28067/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateTransformSvg"]; });
28068
28069/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateZoom", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateZoom"]; });
28070
28071/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgb", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateRgb"]; });
28072
28073/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasis", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateRgbBasis"]; });
28074
28075/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasisClosed", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateRgbBasisClosed"]; });
28076
28077/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHsl", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHsl"]; });
28078
28079/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHslLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHslLong"]; });
28080
28081/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateLab", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateLab"]; });
28082
28083/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHcl", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHcl"]; });
28084
28085/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHclLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHclLong"]; });
28086
28087/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelix", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateCubehelix"]; });
28088
28089/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateCubehelixLong"]; });
28090
28091/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "piecewise", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["piecewise"]; });
28092
28093/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantize", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["quantize"]; });
28094
28095/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
28096/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "path", function() { return d3_path__WEBPACK_IMPORTED_MODULE_18__["path"]; });
28097
28098/* harmony import */ var d3_polygon__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! d3-polygon */ "./node_modules/d3-polygon/src/index.js");
28099/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonArea", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonArea"]; });
28100
28101/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonCentroid", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonCentroid"]; });
28102
28103/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonHull", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonHull"]; });
28104
28105/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonContains", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonContains"]; });
28106
28107/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonLength", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonLength"]; });
28108
28109/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/index.js");
28110/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quadtree", function() { return d3_quadtree__WEBPACK_IMPORTED_MODULE_20__["quadtree"]; });
28111
28112/* harmony import */ var d3_random__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! d3-random */ "./node_modules/d3-random/src/index.js");
28113/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomUniform", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomUniform"]; });
28114
28115/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomNormal", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomNormal"]; });
28116
28117/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomLogNormal", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomLogNormal"]; });
28118
28119/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomBates", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomBates"]; });
28120
28121/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomIrwinHall", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomIrwinHall"]; });
28122
28123/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomExponential", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomExponential"]; });
28124
28125/* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! d3-scale */ "./node_modules/d3-scale/src/index.js");
28126/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleBand", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleBand"]; });
28127
28128/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePoint", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scalePoint"]; });
28129
28130/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleIdentity"]; });
28131
28132/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleLinear"]; });
28133
28134/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLog", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleLog"]; });
28135
28136/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleOrdinal"]; });
28137
28138/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleImplicit"]; });
28139
28140/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePow", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scalePow"]; });
28141
28142/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSqrt"]; });
28143
28144/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleQuantile"]; });
28145
28146/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleQuantize"]; });
28147
28148/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleThreshold"]; });
28149
28150/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleTime", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleTime"]; });
28151
28152/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleUtc"]; });
28153
28154/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSequential"]; });
28155
28156/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDiverging", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleDiverging"]; });
28157
28158/* harmony import */ var d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! d3-scale-chromatic */ "./node_modules/d3-scale-chromatic/src/index.js");
28159/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory10", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeCategory10"]; });
28160
28161/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeAccent", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeAccent"]; });
28162
28163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeDark2", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeDark2"]; });
28164
28165/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePaired", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePaired"]; });
28166
28167/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePastel1", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePastel1"]; });
28168
28169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePastel2", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePastel2"]; });
28170
28171/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet1", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeSet1"]; });
28172
28173/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet2", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeSet2"]; });
28174
28175/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet3", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeSet3"]; });
28176
28177/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBrBG", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateBrBG"]; });
28178
28179/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBrBG", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeBrBG"]; });
28180
28181/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePRGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePRGn"]; });
28182
28183/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePRGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePRGn"]; });
28184
28185/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePiYG", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePiYG"]; });
28186
28187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePiYG", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePiYG"]; });
28188
28189/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuOr", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePuOr"]; });
28190
28191/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuOr", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePuOr"]; });
28192
28193/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdBu"]; });
28194
28195/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdBu"]; });
28196
28197/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdGy", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdGy"]; });
28198
28199/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdGy", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdGy"]; });
28200
28201/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdYlBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdYlBu"]; });
28202
28203/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdYlBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdYlBu"]; });
28204
28205/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdYlGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdYlGn"]; });
28206
28207/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdYlGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdYlGn"]; });
28208
28209/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateSpectral", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateSpectral"]; });
28210
28211/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSpectral", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeSpectral"]; });
28212
28213/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBuGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateBuGn"]; });
28214
28215/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBuGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeBuGn"]; });
28216
28217/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBuPu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateBuPu"]; });
28218
28219/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBuPu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeBuPu"]; });
28220
28221/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGnBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateGnBu"]; });
28222
28223/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGnBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeGnBu"]; });
28224
28225/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateOrRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateOrRd"]; });
28226
28227/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeOrRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeOrRd"]; });
28228
28229/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuBuGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePuBuGn"]; });
28230
28231/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuBuGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePuBuGn"]; });
28232
28233/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePuBu"]; });
28234
28235/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePuBu"]; });
28236
28237/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePuRd"]; });
28238
28239/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePuRd"]; });
28240
28241/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdPu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdPu"]; });
28242
28243/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdPu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdPu"]; });
28244
28245/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlGnBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateYlGnBu"]; });
28246
28247/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlGnBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeYlGnBu"]; });
28248
28249/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateYlGn"]; });
28250
28251/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeYlGn"]; });
28252
28253/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlOrBr", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateYlOrBr"]; });
28254
28255/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlOrBr", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeYlOrBr"]; });
28256
28257/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlOrRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateYlOrRd"]; });
28258
28259/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlOrRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeYlOrRd"]; });
28260
28261/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBlues", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateBlues"]; });
28262
28263/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBlues", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeBlues"]; });
28264
28265/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGreens", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateGreens"]; });
28266
28267/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGreens", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeGreens"]; });
28268
28269/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGreys", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateGreys"]; });
28270
28271/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGreys", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeGreys"]; });
28272
28273/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePurples", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePurples"]; });
28274
28275/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePurples", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePurples"]; });
28276
28277/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateReds", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateReds"]; });
28278
28279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeReds", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeReds"]; });
28280
28281/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateOranges", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateOranges"]; });
28282
28283/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeOranges", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeOranges"]; });
28284
28285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixDefault", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateCubehelixDefault"]; });
28286
28287/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRainbow", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRainbow"]; });
28288
28289/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateWarm", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateWarm"]; });
28290
28291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCool", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateCool"]; });
28292
28293/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateSinebow", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateSinebow"]; });
28294
28295/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateViridis", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateViridis"]; });
28296
28297/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateMagma", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateMagma"]; });
28298
28299/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateInferno", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateInferno"]; });
28300
28301/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePlasma", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePlasma"]; });
28302
28303/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
28304/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "create", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["create"]; });
28305
28306/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "creator", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["creator"]; });
28307
28308/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "local", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["local"]; });
28309
28310/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["matcher"]; });
28311
28312/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mouse", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["mouse"]; });
28313
28314/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["namespace"]; });
28315
28316/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespaces", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["namespaces"]; });
28317
28318/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clientPoint", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["clientPoint"]; });
28319
28320/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "select", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["select"]; });
28321
28322/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectAll", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["selectAll"]; });
28323
28324/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selection", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["selection"]; });
28325
28326/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selector", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["selector"]; });
28327
28328/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectorAll", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["selectorAll"]; });
28329
28330/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "style", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["style"]; });
28331
28332/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touch", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["touch"]; });
28333
28334/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touches", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["touches"]; });
28335
28336/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["window"]; });
28337
28338/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "event", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["event"]; });
28339
28340/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["customEvent"]; });
28341
28342/* harmony import */ var d3_shape__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! d3-shape */ "./node_modules/d3-shape/src/index.js");
28343/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arc", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["arc"]; });
28344
28345/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "area", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["area"]; });
28346
28347/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "line", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["line"]; });
28348
28349/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pie", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["pie"]; });
28350
28351/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "areaRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["areaRadial"]; });
28352
28353/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialArea", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["radialArea"]; });
28354
28355/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["lineRadial"]; });
28356
28357/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialLine", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["radialLine"]; });
28358
28359/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pointRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["pointRadial"]; });
28360
28361/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["linkHorizontal"]; });
28362
28363/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["linkVertical"]; });
28364
28365/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["linkRadial"]; });
28366
28367/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbol", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbol"]; });
28368
28369/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbols"]; });
28370
28371/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCircle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolCircle"]; });
28372
28373/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCross", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolCross"]; });
28374
28375/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolDiamond", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolDiamond"]; });
28376
28377/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolSquare", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolSquare"]; });
28378
28379/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolStar", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolStar"]; });
28380
28381/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolTriangle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolTriangle"]; });
28382
28383/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolWye", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolWye"]; });
28384
28385/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveBasisClosed"]; });
28386
28387/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveBasisOpen"]; });
28388
28389/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasis", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveBasis"]; });
28390
28391/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBundle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveBundle"]; });
28392
28393/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCardinalClosed"]; });
28394
28395/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCardinalOpen"]; });
28396
28397/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinal", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCardinal"]; });
28398
28399/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCatmullRomClosed"]; });
28400
28401/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCatmullRomOpen"]; });
28402
28403/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRom", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCatmullRom"]; });
28404
28405/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinearClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveLinearClosed"]; });
28406
28407/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinear", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveLinear"]; });
28408
28409/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneX", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveMonotoneX"]; });
28410
28411/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneY", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveMonotoneY"]; });
28412
28413/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveNatural", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveNatural"]; });
28414
28415/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStep", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveStep"]; });
28416
28417/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepAfter", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveStepAfter"]; });
28418
28419/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepBefore", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveStepBefore"]; });
28420
28421/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stack", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stack"]; });
28422
28423/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetExpand", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetExpand"]; });
28424
28425/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetDiverging", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetDiverging"]; });
28426
28427/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetNone", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetNone"]; });
28428
28429/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetSilhouette", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetSilhouette"]; });
28430
28431/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetWiggle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetWiggle"]; });
28432
28433/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderAscending", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderAscending"]; });
28434
28435/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderDescending", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderDescending"]; });
28436
28437/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderInsideOut", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderInsideOut"]; });
28438
28439/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderNone", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderNone"]; });
28440
28441/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderReverse", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderReverse"]; });
28442
28443/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
28444/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeInterval"]; });
28445
28446/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMillisecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMillisecond"]; });
28447
28448/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMilliseconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMilliseconds"]; });
28449
28450/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMillisecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMillisecond"]; });
28451
28452/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMilliseconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMilliseconds"]; });
28453
28454/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSecond"]; });
28455
28456/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSeconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSeconds"]; });
28457
28458/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSecond"]; });
28459
28460/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSeconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSeconds"]; });
28461
28462/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinute", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMinute"]; });
28463
28464/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinutes", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMinutes"]; });
28465
28466/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHour", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeHour"]; });
28467
28468/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHours", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeHours"]; });
28469
28470/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDay", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeDay"]; });
28471
28472/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeDays"]; });
28473
28474/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeek", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeWeek"]; });
28475
28476/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeeks", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeWeeks"]; });
28477
28478/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSunday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSunday"]; });
28479
28480/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSundays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSundays"]; });
28481
28482/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMonday"]; });
28483
28484/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMondays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMondays"]; });
28485
28486/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeTuesday"]; });
28487
28488/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeTuesdays"]; });
28489
28490/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeWednesday"]; });
28491
28492/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeWednesdays"]; });
28493
28494/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeThursday"]; });
28495
28496/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeThursdays"]; });
28497
28498/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFriday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeFriday"]; });
28499
28500/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFridays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeFridays"]; });
28501
28502/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSaturday"]; });
28503
28504/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSaturdays"]; });
28505
28506/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonth", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMonth"]; });
28507
28508/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonths", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMonths"]; });
28509
28510/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYear", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeYear"]; });
28511
28512/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYears", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeYears"]; });
28513
28514/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinute", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMinute"]; });
28515
28516/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMinutes"]; });
28517
28518/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHour", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcHour"]; });
28519
28520/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcHours"]; });
28521
28522/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDay", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcDay"]; });
28523
28524/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcDays"]; });
28525
28526/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeek", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcWeek"]; });
28527
28528/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeeks", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcWeeks"]; });
28529
28530/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSunday"]; });
28531
28532/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSundays"]; });
28533
28534/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMonday"]; });
28535
28536/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMondays"]; });
28537
28538/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcTuesday"]; });
28539
28540/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcTuesdays"]; });
28541
28542/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcWednesday"]; });
28543
28544/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcWednesdays"]; });
28545
28546/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcThursday"]; });
28547
28548/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcThursdays"]; });
28549
28550/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcFriday"]; });
28551
28552/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcFridays"]; });
28553
28554/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSaturday"]; });
28555
28556/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSaturdays"]; });
28557
28558/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonth", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMonth"]; });
28559
28560/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMonths"]; });
28561
28562/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYear", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcYear"]; });
28563
28564/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcYears"]; });
28565
28566/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/index.js");
28567/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatDefaultLocale", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["timeFormatDefaultLocale"]; });
28568
28569/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["timeFormat"]; });
28570
28571/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["timeParse"]; });
28572
28573/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["utcFormat"]; });
28574
28575/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["utcParse"]; });
28576
28577/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatLocale", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["timeFormatLocale"]; });
28578
28579/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["isoFormat"]; });
28580
28581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["isoParse"]; });
28582
28583/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
28584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "now", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["now"]; });
28585
28586/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["timer"]; });
28587
28588/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["timerFlush"]; });
28589
28590/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["timeout"]; });
28591
28592/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["interval"]; });
28593
28594/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
28595/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_29__["transition"]; });
28596
28597/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "active", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_29__["active"]; });
28598
28599/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interrupt", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_29__["interrupt"]; });
28600
28601/* harmony import */ var d3_voronoi__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! d3-voronoi */ "./node_modules/d3-voronoi/src/index.js");
28602/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "voronoi", function() { return d3_voronoi__WEBPACK_IMPORTED_MODULE_30__["voronoi"]; });
28603
28604/* harmony import */ var d3_zoom__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! d3-zoom */ "./node_modules/d3-zoom/src/index.js");
28605/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoom", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_31__["zoom"]; });
28606
28607/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomTransform", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_31__["zoomTransform"]; });
28608
28609/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomIdentity", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_31__["zoomIdentity"]; });
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644
28645/***/ }),
28646
28647/***/ "./node_modules/dagre-d3-renderer/dist/dagre-d3.core.js":
28648/*!**************************************************************!*\
28649 !*** ./node_modules/dagre-d3-renderer/dist/dagre-d3.core.js ***!
28650 \**************************************************************/
28651/*! no static exports found */
28652/***/ (function(module, exports, __webpack_require__) {
28653
28654module.exports=function(t){var e={};function a(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=t,a.c=e,a.d=function(t,e,r){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},a.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a.w={},a(a.s=25)}([function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n=a(2),l=(r=n)&&r.__esModule?r:{default:r};var u=/:/g;function i(t){return t?String(t).replace(u,"\\:"):""}e.default={isSubgraph:function(t,e){return!!t.children(e).length},edgeToId:function(t){return i(t.v)+":"+i(t.w)+":"+i(t.name)},applyStyle:function(t,e){e&&t.attr("style",e)},applyClass:function(t,e,a){e&&t.attr("class",e).attr("class",a+" "+t.attr("class"))},applyTransition:function(t,e){var a=e.graph();if(l.default.isPlainObject(a)){var r=a.transition;if(l.default.isFunction(r))return r(t)}return t}}},function(t,e){t.exports=__webpack_require__(/*! d3 */ "./node_modules/d3/index.js")},function(t,e){t.exports=__webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js")},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(a(16)),n=u(a(15)),l=u(a(14));function u(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e,a){var u=e.label,i=t.append("g");"svg"===e.labelType?(0,l.default)(i,e):"string"!=typeof u||"html"===e.labelType?(0,n.default)(i,e):(0,r.default)(i,e);var d=i.node().getBBox(),o=void 0;switch(a){case"top":o=-e.height/2;break;case"bottom":o=e.height/2-d.height;break;default:o=-d.height/2}return i.attr("transform","translate("+-d.width/2+","+o+")"),i}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,a,r){var n=t.x,l=t.y,u=n-r.x,i=l-r.y,d=Math.sqrt(e*e*i*i+a*a*u*u),o=Math.abs(e*a*u/d);r.x<n&&(o=-o);var s=Math.abs(e*a*i/d);return r.y<l&&(s=-s),{x:n+o,y:l+s}}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var a=t.x,r=t.y,n=e.x-a,l=e.y-r,u=t.width/2,i=t.height/2,d=void 0,o=void 0;return Math.abs(l)*u>Math.abs(n)*i?(l<0&&(i=-i),d=0===l?0:i*n/l,o=i):(n<0&&(u=-u),d=u,o=0===n?0:u*l/n),{x:a+d,y:r+o}}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n=a(23),l=(r=n)&&r.__esModule?r:{default:r};e.default=function(t,e,a){var r=t.x,n=t.y,u=[],i=Number.POSITIVE_INFINITY,d=Number.POSITIVE_INFINITY;e.forEach(function(t){i=Math.min(i,t.x),d=Math.min(d,t.y)});for(var o=r-t.width/2-i,s=n-t.height/2-d,f=0;f<e.length;f+=1){var c=e[f],h=e[f<e.length-1?f+1:0],p=(0,l.default)(t,a,{x:o+c.x,y:s+c.y},{x:o+h.x,y:s+h.y});p&&u.push(p)}return u.length?(u.length>1&&u.sort(function(t,e){var r=t.x-a.x,n=t.y-a.y,l=Math.sqrt(r*r+n*n),u=e.x-a.x,i=e.y-a.y,d=Math.sqrt(u*u+i*i);return l<d?-1:l===d?0:1}),u[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",t),t)}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n=a(4),l=(r=n)&&r.__esModule?r:{default:r};e.default=function(t,e,a){return(0,l.default)(t,e,e,a)}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){return t.intersect(e)}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n=a(0),l=(r=n)&&r.__esModule?r:{default:r};function u(t,e,a,r){var n=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");l.default.applyStyle(n,a[r+"Style"]),a[r+"Class"]&&n.attr("class",a[r+"Class"])}e.default={normal:u,vee:function(t,e,a,r){var n=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");l.default.applyStyle(n,a[r+"Style"]),a[r+"Class"]&&n.attr("class",a[r+"Class"])},undirected:function(t,e,a,r){var n=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");l.default.applyStyle(n,a[r+"Style"]),a[r+"Class"]&&n.attr("class",a[r+"Class"])},default:u}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=i(a(5)),n=i(a(4)),l=i(a(7)),u=i(a(6));function i(t){return t&&t.__esModule?t:{default:t}}e.default={rect:function(t,e,a){var n=t.insert("rect",":first-child").attr("rx",a.rx).attr("ry",a.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return a.intersect=function(t){return(0,r.default)(a,t)},n},ellipse:function(t,e,a){var r=e.width/2,l=e.height/2,u=t.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",r).attr("ry",l);return a.intersect=function(t){return(0,n.default)(a,r,l,t)},u},circle:function(t,e,a){var r=Math.max(e.width,e.height)/2,n=t.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",r);return a.intersect=function(t){return(0,l.default)(a,r,t)},n},diamond:function(t,e,a){var r=e.width*Math.SQRT2/2,n=e.height*Math.SQRT2/2,l=[{x:0,y:-n},{x:-r,y:0},{x:0,y:n},{x:r,y:0}],i=t.insert("polygon",":first-child").attr("points",l.map(function(t){return t.x+","+t.y}).join(" "));return a.intersect=function(t){return(0,u.default)(a,l,t)},i}}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(1)),n=i(a(2)),l=i(a(8)),u=i(a(0));function i(t){return t&&t.__esModule?t:{default:t}}function d(t,e){var a=r.line().x(function(t){return t.x}).y(function(t){return t.y});return a.curve(t.curve),a(e)}e.default=function(t,e,a){var i=t.selectAll("g.edgePath").data(e.edges(),function(t){return u.default.edgeToId(t)}).classed("update",!0);return function(t,e){var a=t.enter().append("g").attr("class","edgePath").style("opacity",0);a.append("path").attr("class","path").attr("d",function(t){var a=e.edge(t),r=e.node(t.v).elem,l=n.default.range(a.points.length).map(function(){return e=(t=r).getBBox(),{x:(a=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2)).e,y:a.f};var t,e,a});return d(a,l)}),a.append("defs")}(i,e),function(t,e){var a=t.exit();u.default.applyTransition(a,e).style("opacity",0).remove(),u.default.applyTransition(a.select("path.path"),e).attr("d",function(t){var a=e.node(t.v);if(a){var l=n.default.range(this.getTotalLength()).map(function(){return a});return d({},l)}return r.select(this).attr("d")})}(i,e),i=t.selectAll("g.edgePath"),u.default.applyTransition(i,e).style("opacity",1),i.each(function(t){var a=r.select(this),n=e.edge(t);n.elem=this,n.id&&a.attr("id",n.id),u.default.applyClass(a,n.class,(a.classed("update")?"update ":"")+"edgePath")}),i.selectAll("path.path").each(function(t){var a=e.edge(t);a.arrowheadId=n.default.uniqueId("arrowhead");var i=r.select(this).attr("marker-end",function(){return"url(#"+a.arrowheadId+")"}).style("fill","none");u.default.applyTransition(i,e).attr("d",function(t){return function(t,e){var a=t.edge(e),r=t.node(e.v),n=t.node(e.w),u=a.points.slice(1,a.points.length-1);return u.unshift((0,l.default)(r,u[0])),u.push((0,l.default)(n,u[u.length-1])),d(a,u)}(e,t)}),u.default.applyStyle(i,a.style)}),i.selectAll("defs *").remove(),i.selectAll("defs").each(function(t){var n=e.edge(t);(0,a[n.arrowhead])(r.select(this),n.arrowheadId,n,"arrowhead")}),i}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(1)),n=i(a(2)),l=i(a(3)),u=i(a(0));function i(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){var a=t.selectAll("g.edgeLabel").data(e.edges(),function(t){return u.default.edgeToId(t)}).classed("update",!0);return a.selectAll("*").remove(),a.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(a=t.selectAll("g.edgeLabel")).each(function(t){var a=e.edge(t),u=(0,l.default)(r.select(this),e.edge(t),0,0).classed("label",!0),i=u.node().getBBox();a.labelId&&u.attr("id",a.labelId),n.default.has(a,"width")||(a.width=i.width),n.default.has(a,"height")||(a.height=i.height)}),u.default.applyTransition(a.exit(),e).style("opacity",0).remove(),a}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(1)),n=u(a(0)),l=u(a(3));function u(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){var a=e.nodes().filter(function(t){return n.default.isSubgraph(e,t)}),u=t.selectAll("g.cluster").data(a,function(t){return t});return u.selectAll("*").remove(),u.enter().append("g").attr("class","cluster").attr("id",function(t){return e.node(t).id}).style("opacity",0),u=t.selectAll("g.cluster"),n.default.applyTransition(u,e).style("opacity",1),u.each(function(t){var a=e.node(t),n=r.select(this);r.select(this).append("rect");var u=n.append("g").attr("class","label");(0,l.default)(u,a,a.clusterLabelPos)}),u.selectAll("rect").each(function(t){var a=e.node(t),l=r.select(this);n.default.applyStyle(l,a.style)}),n.default.applyTransition(u.exit(),e).style("opacity",0).remove(),u}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n=a(0),l=(r=n)&&r.__esModule?r:{default:r};e.default=function(t,e){var a=t;return a.node().appendChild(e.label),l.default.applyStyle(a,e.labelStyle),a}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l=a(0),u=(r=l)&&r.__esModule?r:{default:r};e.default=function(t,e){var a=t.append("foreignObject").attr("width","100000"),r=a.append("xhtml:div");r.attr("xmlns","http://www.w3.org/1999/xhtml");var l=e.label;switch(void 0===l?"undefined":n(l)){case"function":r.insert(l);break;case"object":r.insert(function(){return l});break;default:r.html(l)}u.default.applyStyle(r,e.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap");var i=r.node().getBoundingClientRect();return a.attr("width",i.width).attr("height",i.height),a}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n=a(0),l=(r=n)&&r.__esModule?r:{default:r};e.default=function(t,e){for(var a=t.append("text"),r=function(t){for(var e="",a=!1,r=null,n=0;n<t.length;n+=1)if(r=t[n],a){switch(r){case"n":e+="\n";break;default:e+=r}a=!1}else"\\"===r?a=!0:e+=r;return e}(e.label).split("\n"),n=0;n<r.length;n+=1)a.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(r[n]);return l.default.applyStyle(a,e.labelStyle),a}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=i(a(2)),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(1)),l=i(a(3)),u=i(a(0));function i(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e,a){var i=e.nodes().filter(function(t){return!u.default.isSubgraph(e,t)}),d=t.selectAll("g.node").data(i,function(t){return t}).classed("update",!0);return d.selectAll("*").remove(),d.enter().append("g").attr("class","node").style("opacity",0),(d=t.selectAll("g.node")).each(function(t){var i=e.node(t),d=n.select(this);u.default.applyClass(d,i.class,(d.classed("update")?"update ":"")+"node");var o=d.append("g").attr("class","label"),s=(0,l.default)(o,i),f=a[i.shape],c=r.default.pick(s.node().getBBox(),"width","height");i.elem=this,i.id&&d.attr("id",i.id),i.labelId&&o.attr("id",i.labelId),r.default.has(i,"width")&&(c.width=i.width),r.default.has(i,"height")&&(c.height=i.height),c.width+=i.paddingLeft+i.paddingRight,c.height+=i.paddingTop+i.paddingBottom,o.attr("transform","translate("+(i.paddingLeft-i.paddingRight)/2+","+(i.paddingTop-i.paddingBottom)/2+")");var h=f(n.select(this),c,i);u.default.applyStyle(h,i.style);var p=h.node().getBBox();i.width=p.width,i.height=p.height}),u.default.applyTransition(d.exit(),e).style("opacity",0).remove(),d}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(1)),l=a(0),u=(r=l)&&r.__esModule?r:{default:r};e.default=function(t,e){var a=t.filter(function(){return!n.select(this).classed("update")});function r(t){var a=e.node(t);return"translate("+a.x+","+a.y+")"}a.attr("transform",r),u.default.applyTransition(t,e).style("opacity",1).attr("transform",r),u.default.applyTransition(a.selectAll("rect"),e).attr("width",function(t){return e.node(t).width}).attr("height",function(t){return e.node(t).height}).attr("x",function(t){return-e.node(t).width/2}).attr("y",function(t){return-e.node(t).height/2})}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(1)),n=u(a(2)),l=u(a(0));function u(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){function a(t){var a=e.edge(t);return n.default.has(a,"x")?"translate("+a.x+","+a.y+")":""}t.filter(function(){return!r.select(this).classed("update")}).attr("transform",a),l.default.applyTransition(t,e).style("opacity",1).attr("transform",a)}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(1)),l=a(0),u=(r=l)&&r.__esModule?r:{default:r};e.default=function(t,e){function a(t){var a=e.node(t);return"translate("+a.x+","+a.y+")"}t.filter(function(){return!n.select(this).classed("update")}).attr("transform",a),u.default.applyTransition(t,e).style("opacity",1).attr("transform",a)}},function(t,e){t.exports=__webpack_require__(/*! dagre-layout */ "./node_modules/dagre-layout/dist/dagre-layout.core.js")},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=y(a(2)),n=y(a(21)),l=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(1)),u=y(a(20)),i=y(a(19)),d=y(a(18)),o=y(a(17)),s=y(a(13)),f=y(a(12)),c=y(a(11)),h=y(a(10)),p=y(a(9));function y(t){return t&&t.__esModule?t:{default:t}}var g={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},v={arrowhead:"normal",curve:l.curveLinear};function _(t,e){var a=t.select("g."+e);return a.empty()&&(a=t.append("g").attr("class",e)),a}e.default=function(){var t=o.default,e=s.default,a=f.default,l=c.default,y=h.default,x=p.default,b=function(o,s){!function(t){t.nodes().forEach(function(e){var a=t.node(e);r.default.has(a,"label")||t.children(e).length||(a.label=e),r.default.has(a,"paddingX")&&r.default.defaults(a,{paddingLeft:a.paddingX,paddingRight:a.paddingX}),r.default.has(a,"paddingY")&&r.default.defaults(a,{paddingTop:a.paddingY,paddingBottom:a.paddingY}),r.default.has(a,"padding")&&r.default.defaults(a,{paddingLeft:a.padding,paddingRight:a.padding,paddingTop:a.padding,paddingBottom:a.padding}),r.default.defaults(a,g),r.default.each(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(t){a[t]=Number(a[t])}),r.default.has(a,"width")&&(a._prevWidth=a.width),r.default.has(a,"height")&&(a._prevHeight=a.height)}),t.edges().forEach(function(e){var a=t.edge(e);r.default.has(a,"label")||(a.label=""),r.default.defaults(a,v)})}(s),o.selectAll("*").remove();var f=_(o,"output"),c=_(f,"clusters"),h=_(f,"edgePaths"),p=a(_(f,"edgeLabels"),s),b=t(_(f,"nodes"),s,y);n.default.layout(s);var m=1e3,M=1e3,w=-1e3,O=-1e3,P=s;P.nodes().map(function(t){return P.node(t)}).forEach(function(t){m=Math.min(m,t.x-t.width/2),M=Math.min(M,t.y-t.height/2),w=Math.max(w,t.x+t.width/2),O=Math.max(O,t.y+t.height/2)}),P.edges().forEach(function(t){var e=P.edge(t);void 0!==e.label&&void 0!==e.x&&void 0!==e.y&&(m=Math.min(m,e.x-e.width/2),M=Math.min(M,e.y-e.height/2),w=Math.max(w,e.x+e.width/2),O=Math.max(O,e.y+e.height/2));for(var a=e.points.slice(1,e.points.length-1),r=0;r<a.length;r++){var n=a[r];m=Math.min(m,n.x),M=Math.min(M,n.y),w=Math.max(w,n.x),O=Math.max(O,n.y)}}),P.minX=m,P.minY=M,P.maxX=w,P.maxY=O,(0,u.default)(b,s),(0,i.default)(p,s),l(h,s,x);var j=e(c,s);(0,d.default)(j,s),function(t){r.default.each(t.nodes(),function(e){var a=t.node(e);r.default.has(a,"_prevWidth")?a.width=a._prevWidth:delete a.width,r.default.has(a,"_prevHeight")?a.height=a._prevHeight:delete a.height,delete a._prevWidth,delete a._prevHeight})}(s)};return b.createNodes=function(e){return arguments.length?(t=e,b):t},b.createClusters=function(t){return arguments.length?(e=t,b):e},b.createEdgeLabels=function(t){return arguments.length?(a=t,b):a},b.createEdgePaths=function(t){return arguments.length?(l=t,b):l},b.shapes=function(t){return arguments.length?(y=t,b):y},b.arrows=function(t){return arguments.length?(x=t,b):x},b}},function(t,e,a){"use strict";function r(t,e){return t*e>0}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,a,n){var l=e.y-t.y,u=t.x-e.x,i=e.x*t.y-t.x*e.y,d=l*a.x+u*a.y+i,o=l*n.x+u*n.y+i;if(0===d||0===o||!r(d,o)){var s=n.y-a.y,f=a.x-n.x,c=n.x*a.y-a.x*n.y,h=s*t.x+f*t.y+c,p=s*e.x+f*e.y+c;if(0===h||0===p||!r(h,p)){var y=l*f-s*u;if(0!==y){var g=Math.abs(y/2),v=u*c-f*i;return{x:v<0?(v-g)/y:(v+g)/y,y:(v=s*i-l*c)<0?(v-g)/y:(v+g)/y}}}}}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=d(a(8)),n=d(a(7)),l=d(a(4)),u=d(a(6)),i=d(a(5));function d(t){return t&&t.__esModule?t:{default:t}}e.default={node:r.default,circle:n.default,ellipse:l.default,polygon:u.default,rect:i.default}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(a(24)),n=u(a(22)),l=u(a(0));function u(t){return t&&t.__esModule?t:{default:t}}e.default={intersect:r.default,render:n.default,util:l.default}}]);
28655//# sourceMappingURL=dagre-d3.core.js.map
28656
28657/***/ }),
28658
28659/***/ "./node_modules/dagre-d3-renderer/lib/label/add-html-label.js":
28660/*!********************************************************************!*\
28661 !*** ./node_modules/dagre-d3-renderer/lib/label/add-html-label.js ***!
28662 \********************************************************************/
28663/*! exports provided: default */
28664/***/ (function(module, __webpack_exports__, __webpack_require__) {
28665
28666"use strict";
28667__webpack_require__.r(__webpack_exports__);
28668/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ "./node_modules/dagre-d3-renderer/lib/util.js");
28669
28670
28671function addHtmlLabel(root, node) {
28672 const fo = root.append('foreignObject').attr('width', '100000');
28673 const div = fo.append('xhtml:div');
28674 div.attr('xmlns', 'http://www.w3.org/1999/xhtml');
28675 const label = node.label;
28676
28677 switch (typeof label) {
28678 case 'function':
28679 div.insert(label);
28680 break;
28681
28682 case 'object':
28683 // Currently we assume this is a DOM object.
28684 div.insert(function () {
28685 return label;
28686 });
28687 break;
28688
28689 default:
28690 div.html(label);
28691 }
28692
28693 _util__WEBPACK_IMPORTED_MODULE_0__["default"].applyStyle(div, node.labelStyle);
28694 div.style('display', 'inline-block'); // Fix for firefox
28695
28696 div.style('white-space', 'nowrap');
28697 const client = div.node().getBoundingClientRect();
28698 fo.attr('width', client.width).attr('height', client.height);
28699 return fo;
28700}
28701
28702/* harmony default export */ __webpack_exports__["default"] = (addHtmlLabel);
28703
28704/***/ }),
28705
28706/***/ "./node_modules/dagre-d3-renderer/lib/util.js":
28707/*!****************************************************!*\
28708 !*** ./node_modules/dagre-d3-renderer/lib/util.js ***!
28709 \****************************************************/
28710/*! exports provided: default */
28711/***/ (function(module, __webpack_exports__, __webpack_require__) {
28712
28713"use strict";
28714__webpack_require__.r(__webpack_exports__);
28715/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
28716/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
28717
28718/*
28719 * Returns true if the specified node in the graph is a subgraph node. A
28720 * subgraph node is one that contains other nodes.
28721 */
28722
28723function isSubgraph(g, v) {
28724 return !!g.children(v).length;
28725}
28726
28727function edgeToId(e) {
28728 return escapeId(e.v) + ':' + escapeId(e.w) + ':' + escapeId(e.name);
28729}
28730
28731const ID_DELIM = /:/g;
28732
28733function escapeId(str) {
28734 return str ? String(str).replace(ID_DELIM, '\\:') : '';
28735}
28736
28737function applyStyle(dom, styleFn) {
28738 if (styleFn) {
28739 dom.attr('style', styleFn);
28740 }
28741}
28742
28743function applyClass(dom, classFn, otherClasses) {
28744 if (classFn) {
28745 dom.attr('class', classFn).attr('class', otherClasses + ' ' + dom.attr('class'));
28746 }
28747}
28748
28749function applyTransition(selection, g) {
28750 const graph = g.graph();
28751
28752 if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isPlainObject(graph)) {
28753 const transition = graph.transition;
28754
28755 if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isFunction(transition)) {
28756 return transition(selection);
28757 }
28758 }
28759
28760 return selection;
28761} // Public utility functions
28762
28763
28764/* harmony default export */ __webpack_exports__["default"] = ({
28765 isSubgraph,
28766 edgeToId,
28767 applyStyle,
28768 applyClass,
28769 applyTransition
28770});
28771
28772/***/ }),
28773
28774/***/ "./node_modules/dagre-layout/dist/dagre-layout.core.js":
28775/*!*************************************************************!*\
28776 !*** ./node_modules/dagre-layout/dist/dagre-layout.core.js ***!
28777 \*************************************************************/
28778/*! no static exports found */
28779/***/ (function(module, exports, __webpack_require__) {
28780
28781module.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n.w={},n(n.s=27)}([function(e,t){e.exports=__webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addDummyNode=d,t.simplify=f,t.asNonCompoundGraph=i,t.successorWeights=l,t.predecessorWeights=c,t.intersectRect=s,t.buildLayerMatrix=h,t.normalizeRanks=v,t.removeEmptyRanks=g,t.addBorderNode=p,t.maxRank=m,t.partition=E,t.time=b,t.notime=w;var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r},o=n(2);function d(e,t,n,r){var a=void 0;do{a=u.default.uniqueId(r)}while(e.hasNode(a));return n.dummy=t,e.setNode(a,n),a}function f(e){var t=(new o.Graph).setGraph(e.graph());return u.default.forEach(e.nodes(),function(n){t.setNode(n,e.node(n))}),u.default.forEach(e.edges(),function(n){var r=t.edge(n.v,n.w)||{weight:0,minlen:1},a=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+a.weight,minlen:Math.max(r.minlen,a.minlen)})}),t}function i(e){var t=new o.Graph({multigraph:e.isMultigraph()}).setGraph(e.graph());return u.default.forEach(e.nodes(),function(n){e.children(n).length||t.setNode(n,e.node(n))}),u.default.forEach(e.edges(),function(n){t.setEdge(n,e.edge(n))}),t}function l(e){var t=u.default.map(e.nodes(),function(t){var n={};return u.default.forEach(e.outEdges(t),function(t){n[t.w]=(n[t.w]||0)+e.edge(t).weight}),n});return u.default.zipObject(e.nodes(),t)}function c(e){var t=u.default.map(e.nodes(),function(t){var n={};return u.default.forEach(e.inEdges(t),function(t){n[t.v]=(n[t.v]||0)+e.edge(t).weight}),n});return u.default.zipObject(e.nodes(),t)}function s(e,t){var n=e.x,r=e.y,a=t.x-n,u=t.y-r,o=e.width/2,d=e.height/2;if(!a&&!u)throw new Error("Not possible to find intersection inside of the rectangle");var f=void 0,i=void 0;return Math.abs(u)*o>Math.abs(a)*d?(u<0&&(d=-d),f=d*a/u,i=d):(a<0&&(o=-o),f=o,i=o*u/a),{x:n+f,y:r+i}}function h(e){var t=u.default.map(u.default.range(m(e)+1),function(){return[]});return u.default.forEach(e.nodes(),function(n){var r=e.node(n),a=r.rank;u.default.isUndefined(a)||(t[a][r.order]=n)}),t}function v(e){var t=u.default.min(u.default.map(e.nodes(),function(t){return e.node(t).rank}));u.default.forEach(e.nodes(),function(n){var r=e.node(n);u.default.has(r,"rank")&&(r.rank-=t)})}function g(e){var t=u.default.min(u.default.map(e.nodes(),function(t){return e.node(t).rank})),n=[];u.default.forEach(e.nodes(),function(r){var a=e.node(r).rank-t;n[a]||(n[a]=[]),n[a].push(r)});var r=0,a=e.graph().nodeRankFactor;u.default.forEach(n,function(t,n){u.default.isUndefined(t)&&n%a!=0?--r:r&&u.default.forEach(t,function(t){e.node(t).rank+=r})})}function p(e,t,n,r){var a={width:0,height:0};return arguments.length>=4&&(a.rank=n,a.order=r),d(e,"border",a,t)}function m(e){return u.default.max(u.default.map(e.nodes(),function(t){var n=e.node(t).rank;if(!u.default.isUndefined(n))return n}))}function E(e,t){var n={lhs:[],rhs:[]};return u.default.forEach(e,function(e){t(e)?n.lhs.push(e):n.rhs.push(e)}),n}function b(e,t){var n=u.default.now();try{return t()}finally{console.log(e+" time: "+(u.default.now()-n)+"ms")}}function w(e,t){return t()}t.default={addDummyNode:d,simplify:f,asNonCompoundGraph:i,successorWeights:l,predecessorWeights:c,intersectRect:s,buildLayerMatrix:h,normalizeRanks:v,removeEmptyRanks:g,addBorderNode:p,maxRank:m,partition:E,time:b,notime:w}},function(e,t){e.exports=__webpack_require__(/*! graphlibrary */ "./node_modules/graphlibrary/index.js")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.longestPath=o,t.slack=d;var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};function o(e){var t={};u.default.forEach(e.sources(),function n(r){var a=e.node(r);if(u.default.has(t,r))return a.rank;t[r]=!0;var o=u.default.min(u.default.map(e.outEdges(r),function(t){return n(t.w)-e.edge(t).minlen}))||0;return a.rank=o})}function d(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}t.default={longestPath:o,slack:d}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r},o=n(2),d=n(3);function f(e,t){return u.default.forEach(e.nodes(),function n(r){u.default.forEach(t.nodeEdges(r),function(a){var u=a.v,o=r===u?a.w:u;e.hasNode(o)||(0,d.slack)(t,a)||(e.setNode(o,{}),e.setEdge(r,o,{}),n(o))})}),e.nodeCount()}function i(e,t){return u.default.minBy(t.edges(),function(n){if(e.hasNode(n.v)!==e.hasNode(n.w))return(0,d.slack)(t,n)})}function l(e,t,n){u.default.forEach(e.nodes(),function(e){t.node(e).rank+=n})}t.default=function(e){var t=new o.Graph({directed:!1}),n=e.nodes()[0],r=e.nodeCount();t.setNode(n,{});for(var a=void 0;f(t,e)<r;)a=i(t,e),l(t,e,t.hasNode(a.v)?(0,d.slack)(e,a):-(0,d.slack)(e,a));return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.positionX=p;var r=o(n(0)),a=n(2),u=o(n(1));function o(e){return e&&e.__esModule?e:{default:e}}function d(e,t){var n={};return r.default.reduce(t,function(t,a){var u=0,o=0,d=t.length,f=r.default.last(a);return r.default.forEach(a,function(t,l){var c=function(e,t){if(e.node(t).dummy)return r.default.find(e.predecessors(t),function(t){return e.node(t).dummy})}(e,t),s=c?e.node(c).order:d;(c||t===f)&&(r.default.forEach(a.slice(o,l+1),function(t){r.default.forEach(e.predecessors(t),function(r){var a=e.node(r),o=a.order;!(o<u||s<o)||a.dummy&&e.node(t).dummy||i(n,r,t)})}),o=l+1,u=s)}),a}),n}function f(e,t){var n={};function a(t,a,u,o,d){var f=void 0;r.default.forEach(r.default.range(a,u),function(a){f=t[a],e.node(f).dummy&&r.default.forEach(e.predecessors(f),function(t){var r=e.node(t);r.dummy&&(r.order<o||r.order>d)&&i(n,t,f)})})}return r.default.reduce(t,function(t,n){var u=-1,o=void 0,d=0;return r.default.forEach(n,function(r,f){if("border"===e.node(r).dummy){var i=e.predecessors(r);i.length&&(o=e.node(i[0]).order,a(n,d,f,u,o),d=f,u=o)}a(n,d,n.length,o,t.length)}),n}),n}function i(e,t,n){if(t>n){var r=t;t=n,n=r}var a=e[t];a||(e[t]=a={}),a[n]=!0}function l(e,t,n){if(t>n){var a=t;t=n,n=a}return r.default.has(e[t],n)}function c(e,t,n,a){var u={},o={},d={};return r.default.forEach(t,function(e){r.default.forEach(e,function(e,t){u[e]=e,o[e]=e,d[e]=t})}),r.default.forEach(t,function(e){var t=-1;r.default.forEach(e,function(e){var f=a(e);if(f.length)for(var i=((f=r.default.sortBy(f,function(e){return d[e]})).length-1)/2,c=Math.floor(i),s=Math.ceil(i);c<=s;++c){var h=f[c];o[e]===e&&t<d[h]&&!l(n,e,h)&&(o[h]=e,o[e]=u[e]=u[h],t=d[h])}})}),{root:u,align:o}}function s(e,t,n,u,o){var d={},f=function(e,t,n,u){var o=new a.Graph,d=e.graph(),f=function(e,t,n){return function(a,u,o){var d=a.node(u),f=a.node(o),i=0,l=void 0;if(i+=d.width/2,r.default.has(d,"labelpos"))switch(d.labelpos.toLowerCase()){case"l":l=-d.width/2;break;case"r":l=d.width/2}if(l&&(i+=n?l:-l),l=0,i+=(d.dummy?t:e)/2,i+=(f.dummy?t:e)/2,i+=f.width/2,r.default.has(f,"labelpos"))switch(f.labelpos.toLowerCase()){case"l":l=f.width/2;break;case"r":l=-f.width/2}return l&&(i+=n?l:-l),l=0,i}}(d.nodesep,d.edgesep,u);return r.default.forEach(t,function(t){var a=void 0;r.default.forEach(t,function(t){var r=n[t];if(o.setNode(r),a){var u=n[a],d=o.edge(u,r);o.setEdge(u,r,Math.max(f(e,t,a),d||0))}a=t})}),o}(e,t,n,o),i={};r.default.forEach(f.nodes(),function e(t){r.default.has(i,t)||(i[t]=!0,d[t]=r.default.reduce(f.inEdges(t),function(t,n){return e(n.v),Math.max(t,d[n.v]+f.edge(n))},0))});var l=o?"borderLeft":"borderRight";return r.default.forEach(f.nodes(),function t(n){if(2!==i[n]){i[n]++;var a=e.node(n),u=r.default.reduce(f.outEdges(n),function(e,n){return t(n.w),Math.min(e,d[n.w]-f.edge(n))},Number.POSITIVE_INFINITY);u!==Number.POSITIVE_INFINITY&&a.borderType!==l&&(d[n]=Math.max(d[n],u))}}),r.default.forEach(u,function(e){d[e]=d[n[e]]}),d}function h(e,t){return r.default.minBy(r.default.values(t),function(t){var n=(r.default.minBy(r.default.toPairs(t),function(t){return t[1]-m(e,t[0])/2})||["k",0])[1];return(r.default.maxBy(r.default.toPairs(t),function(t){return t[1]+m(e,t[0])/2})||["k",0])[1]-n})}function v(e,t){var n=r.default.values(t),a=r.default.min(n),u=r.default.max(n);r.default.forEach(["u","d"],function(n){r.default.forEach(["l","r"],function(o){var d=n+o,f=e[d];if(f!==t){var i=r.default.values(f),l="l"===o?a-r.default.min(i):u-r.default.max(i);l&&(e[d]=r.default.mapValues(f,function(e){return e+l}))}})})}function g(e,t){return r.default.mapValues(e.ul,function(n,a){if(t)return e[t.toLowerCase()][a];var u=r.default.sortBy(r.default.map(e,a));return(u[1]+u[2])/2})}function p(e){var t=u.default.buildLayerMatrix(e),n=r.default.merge(d(e,t),f(e,t)),a={},o=void 0;r.default.forEach(["u","d"],function(u){o="u"===u?t:r.default.values(t).reverse(),r.default.forEach(["l","r"],function(t){"r"===t&&(o=r.default.map(o,function(e){return r.default.values(e).reverse()}));var d=r.default.bind("u"===u?e.predecessors:e.successors,e),f=c(0,o,n,d),i=s(e,o,f.root,f.align,"r"===t);"r"===t&&(i=r.default.mapValues(i,function(e){return-e})),a[u+t]=i})});var i=h(e,a);return v(a,i),g(a,e.graph().align)}function m(e,t){return e.node(t).width}t.default={positionX:p,findType1Conflicts:d,findType2Conflicts:f,addConflict:i,hasConflict:l,verticalAlignment:c,horizontalCompaction:s,alignCoordinates:v,findSmallestWidthAlignment:h,balance:g}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(0)),a=o(n(1)),u=n(5);function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){(function(e){var t=a.default.buildLayerMatrix(e),n=e.graph().ranksep,u=0;r.default.forEach(t,function(t){var a=r.default.max(r.default.map(t,function(t){return e.node(t).height}));r.default.forEach(t,function(t){e.node(t).y=u+a/2}),u+=a+n})})(e=a.default.asNonCompoundGraph(e)),r.default.forEach((0,u.positionX)(e),function(t,n){e.node(n).x=t})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t,n){var r={},a=void 0;u.default.forEach(n,function(n){for(var u=e.parent(n),o=void 0,d=void 0;u;){if((o=e.parent(u))?(d=r[o],r[o]=u):(d=a,a=u),d&&d!==u)return void t.setEdge(d,u);u=o}})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r},o=n(2);t.default=function(e,t,n){var r=function(e){for(var t=void 0;e.hasNode(t=u.default.uniqueId("_root")););return t}(e),a=new o.Graph({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(function(t){return e.node(t)});return u.default.forEach(e.nodes(),function(o){var d=e.node(o),f=e.parent(o);(d.rank===t||d.minRank<=t&&t<=d.maxRank)&&(a.setNode(o),a.setParent(o,f||r),u.default.forEach(e[n](o),function(t){var n=t.v===o?t.w:t.v,r=a.edge(n,o),d=u.default.isUndefined(r)?0:r.weight;a.setEdge(n,o,{weight:e.edge(t).weight+d})}),u.default.has(d,"minRank")&&a.setNode(o,{borderLeft:d.borderLeft[t],borderRight:d.borderRight[t]}))}),a}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(0)),a=u(n(1));function u(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){for(var a=void 0;t.length&&(a=r.default.last(t)).i<=n;)t.pop(),e.push(a.vs),n++;return n}t.default=function(e,t){var n,u=a.default.partition(e,function(e){return r.default.has(e,"barycenter")}),d=u.lhs,f=r.default.sortBy(u.rhs,function(e){return-e.i}),i=[],l=0,c=0,s=0;d.sort((n=!!t,function(e,t){return e.barycenter<t.barycenter?-1:e.barycenter>t.barycenter?1:n?t.i-e.i:e.i-t.i})),s=o(i,f,s),r.default.forEach(d,function(e){s+=e.vs.length,i.push(e.vs),l+=e.barycenter*e.weight,c+=e.weight,s=o(i,f,s)});var h={vs:r.default.flatten(i,!0)};return c&&(h.barycenter=l/c,h.weight=c),h}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t){var n={};return u.default.forEach(e,function(e,t){var r=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:t};u.default.isUndefined(e.barycenter)||(r.barycenter=e.barycenter,r.weight=e.weight)}),u.default.forEach(t.edges(),function(e){var t=n[e.v],r=n[e.w];u.default.isUndefined(t)||u.default.isUndefined(r)||(r.indegree++,t.out.push(n[e.w]))}),function(e){var t=[];function n(e){return function(t){var n,r,a,o;t.merged||(u.default.isUndefined(t.barycenter)||u.default.isUndefined(e.barycenter)||t.barycenter>=e.barycenter)&&(r=t,a=0,o=0,(n=e).weight&&(a+=n.barycenter*n.weight,o+=n.weight),r.weight&&(a+=r.barycenter*r.weight,o+=r.weight),n.vs=r.vs.concat(n.vs),n.barycenter=a/o,n.weight=o,n.i=Math.min(r.i,n.i),r.merged=!0)}}function r(t){return function(n){n.in.push(t),0==--n.indegree&&e.push(n)}}for(;e.length;){var a=e.pop();t.push(a),u.default.forEach(a.in.reverse(),n(a)),u.default.forEach(a.out,r(a))}return u.default.chain(t).filter(function(e){return!e.merged}).map(function(e){return u.default.pick(e,["vs","i","barycenter","weight"])}).value()}(u.default.filter(n,function(e){return!e.indegree}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t){return u.default.map(t,function(t){var n=e.inEdges(t);if(n.length){var r=u.default.reduce(n,function(t,n){var r=e.edge(n),a=e.node(n.v);return{sum:t.sum+r.weight*a.order,weight:t.weight+r.weight}},{sum:0,weight:0});return{v:t,barycenter:r.sum/r.weight,weight:r.weight}}return{v:t}})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=d(n(0)),a=d(n(11)),u=d(n(10)),o=d(n(9));function d(e){return e&&e.__esModule?e:{default:e}}t.default=function e(t,n,d,f){var i=t.children(n),l=t.node(n),c=l?l.borderLeft:void 0,s=l?l.borderRight:void 0,h={};c&&(i=r.default.filter(i,function(e){return e!==c&&e!==s}));var v=(0,a.default)(t,i);r.default.forEach(v,function(n){if(t.children(n.v).length){var a=e(t,n.v,d,f);h[n.v]=a,r.default.has(a,"barycenter")&&(u=n,o=a,r.default.isUndefined(u.barycenter)?(u.barycenter=o.barycenter,u.weight=o.weight):(u.barycenter=(u.barycenter*u.weight+o.barycenter*o.weight)/(u.weight+o.weight),u.weight+=o.weight))}var u,o});var g=(0,u.default)(v,d);!function(e,t){r.default.forEach(e,function(e){e.vs=r.default.flatten(e.vs.map(function(e){return t[e]?t[e].vs:e}),!0)})}(g,h);var p=(0,o.default)(g,f);if(c&&(p.vs=r.default.flatten([c,p.vs,s],!0),t.predecessors(c).length)){var m=t.node(t.predecessors(c)[0]),E=t.node(t.predecessors(s)[0]);r.default.has(p,"barycenter")||(p.barycenter=0,p.weight=0),p.barycenter=(p.barycenter*p.weight+m.order+E.order)/(p.weight+2),p.weight+=2}return p}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};function o(e,t,n){for(var r=u.default.zipObject(n,u.default.map(n,function(e,t){return t})),a=u.default.flatten(u.default.map(t,function(t){return u.default.chain(e.outEdges(t)).map(function(t){return{pos:r[t.w],weight:e.edge(t).weight}}).sortBy("pos").value()}),!0),o=1;o<n.length;)o<<=1;var d=2*o-1;o-=1;var f=u.default.map(new Array(d),function(){return 0}),i=0;return u.default.forEach(a.forEach(function(e){var t=e.pos+o;f[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=f[t+1]),f[t=t-1>>1]+=e.weight;i+=e.weight*n})),i}t.default=function(e,t){for(var n=0,r=1;r<t.length;++r)n+=o(e,t[r-1],t[r]);return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};t.default=function(e){var t={},n=u.default.filter(e.nodes(),function(t){return!e.children(t).length}),r=u.default.max(u.default.map(n,function(t){return e.node(t).rank})),a=u.default.map(u.default.range(r+1),function(){return[]}),o=u.default.sortBy(n,function(t){return e.node(t).rank});return u.default.forEach(o,function n(r){if(!u.default.has(t,r)){t[r]=!0;var o=e.node(r);a[o.rank].push(r),u.default.forEach(e.successors(r),n)}}),a}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n(0)),a=n(2),u=c(n(14)),o=c(n(13)),d=c(n(12)),f=c(n(8)),i=c(n(7)),l=c(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function s(e,t,n){return r.default.map(t,function(t){return(0,f.default)(e,t,n)})}function h(e,t){var n=new a.Graph;r.default.forEach(e,function(e){var a=e.graph().root,u=(0,d.default)(e,a,n,t);r.default.forEach(u.vs,function(t,n){e.node(t).order=n}),(0,i.default)(e,n,u.vs)})}function v(e,t){r.default.forEach(t,function(t){r.default.forEach(t,function(t,n){e.node(t).order=n})})}t.default=function(e){var t=l.default.maxRank(e),n=s(e,r.default.range(1,t+1),"inEdges"),a=s(e,r.default.range(t-1,-1,-1),"outEdges"),d=(0,u.default)(e);v(e,d);for(var f=Number.POSITIVE_INFINITY,i=void 0,c=0,g=0;g<4;++c,++g){h(c%2?n:a,c%4>=2),d=l.default.buildLayerMatrix(e);var p=(0,o.default)(e,d);p<f&&(g=0,i=r.default.cloneDeep(d),f=p)}v(e,i)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};function o(e){u.default.forEach(e.nodes(),function(t){d(e.node(t))}),u.default.forEach(e.edges(),function(t){d(e.edge(t))})}function d(e){var t=e.width;e.width=e.height,e.height=t}function f(e){e.y=-e.y}function i(e){var t=e.x;e.x=e.y,e.y=t}t.default={adjust:function(e){var t=e.graph().rankdir.toLowerCase();"lr"!==t&&"rl"!==t||o(e)},undo:function(e){var t=e.graph().rankdir.toLowerCase();"bt"!==t&&"rl"!==t||function(e){u.default.forEach(e.nodes(),function(t){f(e.node(t))}),u.default.forEach(e.edges(),function(t){var n=e.edge(t);u.default.forEach(n.points,f),u.default.has(n,"y")&&f(n)})}(e),"lr"!==t&&"rl"!==t||(function(e){u.default.forEach(e.nodes(),function(t){i(e.node(t))}),u.default.forEach(e.edges(),function(t){var n=e.edge(t);u.default.forEach(n.points,i),u.default.has(n,"x")&&i(n)})}(e),o(e))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(0)),a=u(n(1));function u(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n,r,u,o){var d={width:0,height:0,rank:o,borderType:t},f=u[t][o-1],i=a.default.addDummyNode(e,"border",d,n);u[t][o]=i,e.setParent(i,r),f&&e.setEdge(f,i,{weight:1})}t.default=function(e){r.default.forEach(e.children(),function t(n){var a=e.children(n),u=e.node(n);if(a.length&&r.default.forEach(a,t),r.default.has(u,"minRank")){u.borderLeft=[],u.borderRight=[];for(var d=u.minRank,f=u.maxRank+1;d<f;++d)o(e,"borderLeft","_bl",n,u,d),o(e,"borderRight","_br",n,u,d)}})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(0)),a=u(n(1));function u(e){return e&&e.__esModule?e:{default:e}}t.default={run:function(e){var t=a.default.addDummyNode(e,"root",{},"_root"),n=function(e){var t={};return r.default.forEach(e.children(),function(n){!function n(a,u){var o=e.children(a);o&&o.length&&r.default.forEach(o,function(e){n(e,u+1)}),t[a]=u}(n,1)}),t}(e),u=r.default.max(r.default.values(n))-1,o=2*u+1;e.graph().nestingRoot=t,r.default.forEach(e.edges(),function(t){e.edge(t).minlen*=o});var d=function(e){return r.default.reduce(e.edges(),function(t,n){return t+e.edge(n).weight},0)}(e)+1;r.default.forEach(e.children(),function(f){!function e(t,n,u,o,d,f,i){var l=t.children(i);if(l.length){var c=a.default.addBorderNode(t,"_bt"),s=a.default.addBorderNode(t,"_bb"),h=t.node(i);t.setParent(c,i),h.borderTop=c,t.setParent(s,i),h.borderBottom=s,r.default.forEach(l,function(r){e(t,n,u,o,d,f,r);var a=t.node(r),l=a.borderTop?a.borderTop:r,h=a.borderBottom?a.borderBottom:r,v=a.borderTop?o:2*o,g=l!==h?1:d-f[i]+1;t.setEdge(c,l,{weight:v,minlen:g,nestingEdge:!0}),t.setEdge(h,s,{weight:v,minlen:g,nestingEdge:!0})}),t.parent(i)||t.setEdge(n,c,{weight:0,minlen:d+f[i]})}else i!==n&&t.setEdge(n,i,{weight:0,minlen:u})}(e,t,o,d,u,n,f)}),e.graph().nodeRankFactor=o},cleanup:function(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,r.default.forEach(e.edges(),function(t){e.edge(t).nestingEdge&&e.removeEdge(t)})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};t.default=function(e){var t=function(e){var t={},n=0;return u.default.forEach(e.children(),function r(a){var o=n;u.default.forEach(e.children(a),r),t[a]={low:o,lim:n++}}),t}(e);u.default.forEach(e.graph().dummyChains,function(n){for(var r=e.node(n),a=r.edgeObj,u=function(e,t,n,r){var a=[],u=[],o=Math.min(t[n].low,t[r].low),d=Math.max(t[n].lim,t[r].lim),f=void 0,i=void 0;f=n;do{f=e.parent(f),a.push(f)}while(f&&(t[f].low>o||d>t[f].lim));for(i=f,f=r;(f=e.parent(f))!==i;)u.push(f);return{path:a.concat(u.reverse()),lca:i}}(e,t,a.v,a.w),o=u.path,d=u.lca,f=0,i=o[f],l=!0;n!==a.w;){if(r=e.node(n),l){for(;(i=o[f])!==d&&e.node(i).maxRank<r.rank;)f++;i===d&&(l=!1)}if(!l){for(;f<o.length-1&&e.node(i=o[f+1]).minRank<=r.rank;)f++;i=o[f]}e.setParent(n,i),n=e.successors(n)[0]}})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(0)),a=n(2),u=f(n(4)),o=n(3),d=n(1);function f(e){return e&&e.__esModule?e:{default:e}}var i=a.alg.preorder,l=a.alg.postorder;function c(e){e=(0,d.simplify)(e),(0,o.longestPath)(e);var t=(0,u.default)(e);v(t),s(t,e);for(var n=void 0;n=g(t);)m(t,e,n,p(t,e,n))}function s(e,t){var n=l(e,e.nodes());n=n.slice(0,n.length-1),r.default.forEach(n,function(n){!function(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=h(e,t,n)}(e,t,n)})}function h(e,t,n){var a=e.node(n).parent,u=!0,o=t.edge(n,a),d=0;return o||(u=!1,o=t.edge(a,n)),d=o.weight,r.default.forEach(t.nodeEdges(n),function(r){var o,f,i=r.v===n,l=i?r.w:r.v;if(l!==a){var c=i===u,s=t.edge(r).weight;if(d+=c?s:-s,o=n,f=l,e.hasEdge(o,f)){var h=e.edge(n,l).cutvalue;d+=c?-h:h}}}),d}function v(e,t){arguments.length<2&&(t=e.nodes()[0]),function e(t,n,a,u,o){var d=a;var f=t.node(u);n[u]=!0;r.default.forEach(t.neighbors(u),function(o){r.default.has(n,o)||(a=e(t,n,a,o,u))});f.low=d;f.lim=a++;o?f.parent=o:delete f.parent;return a}(e,{},1,t)}function g(e){return r.default.find(e.edges(),function(t){return e.edge(t).cutvalue<0})}function p(e,t,n){var a=n.v,u=n.w;t.hasEdge(a,u)||(a=n.w,u=n.v);var d=e.node(a),f=e.node(u),i=d,l=!1;d.lim>f.lim&&(i=f,l=!0);var c=r.default.filter(t.edges(),function(t){return l===E(e,e.node(t.v),i)&&l!==E(e,e.node(t.w),i)});return r.default.minBy(c,function(e){return(0,o.slack)(t,e)})}function m(e,t,n,a){var u=n.v,o=n.w;e.removeEdge(u,o),e.setEdge(a.v,a.w,{}),v(e),s(e,t),function(e,t){var n=r.default.find(e.nodes(),function(e){return!t.node(e).parent}),a=i(e,n);a=a.slice(1),r.default.forEach(a,function(n){var r=e.node(n).parent,a=t.edge(n,r),u=!1;a||(a=t.edge(r,n),u=!0),t.node(n).rank=t.node(r).rank+(u?a.minlen:-a.minlen)})}(e,t)}function E(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}c.initLowLimValues=v,c.initCutValues=s,c.calcCutValue=h,c.leaveEdge=g,c.enterEdge=p,c.exchangeEdges=m,t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),a=o(n(4)),u=o(n(20));function o(e){return e&&e.__esModule?e:{default:e}}var d=r.longestPath;function f(e){(0,u.default)(e)}t.default=function(e){switch(e.graph().ranker){case"network-simplex":f(e);break;case"tight-tree":!function(e){(0,r.longestPath)(e),(0,a.default)(e)}(e);break;case"longest-path":d(e);break;default:f(e)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(0)),a=u(n(1));function u(e){return e&&e.__esModule?e:{default:e}}t.default={run:function(e){e.graph().dummyChains=[],r.default.forEach(e.edges(),function(t){!function(e,t){var n=t.v,r=e.node(n).rank,u=t.w,o=e.node(u).rank,d=t.name,f=e.edge(t),i=f.labelRank;if(o!==r+1){e.removeEdge(t);var l=void 0,c=void 0,s=void 0;for(s=0,++r;r<o;++s,++r)f.points=[],c={width:0,height:0,edgeLabel:f,edgeObj:t,rank:r},l=a.default.addDummyNode(e,"edge",c,"_d"),r===i&&(c.width=f.width,c.height=f.height,c.dummy="edge-label",c.labelpos=f.labelpos),e.setEdge(n,l,{weight:f.weight},d),0===s&&e.graph().dummyChains.push(l),n=l;e.setEdge(n,u,{weight:f.weight},d)}}(e,t)})},undo:function(e){r.default.forEach(e.graph().dummyChains,function(t){var n=e.node(t),r=n.edgeLabel,a=null;for(e.setEdge(n.edgeObj,r);n.dummy;)a=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),"edge-label"===n.dummy&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=a,n=e.node(t)})}}},function(e,t,n){"use strict";function r(){var e={};e._next=e._prev=e,this._sentinel=e}function a(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function u(e,t){if("_next"!==e&&"_prev"!==e)return t}Object.defineProperty(t,"__esModule",{value:!0}),r.prototype.dequeue=function(){var e=this._sentinel,t=e._prev;if(t!==e)return a(t),t},r.prototype.enqueue=function(e){var t=this._sentinel;e._prev&&e._next&&a(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t},r.prototype.toString=function(){for(var e=[],t=this._sentinel,n=t._prev;n!==t;)e.push(JSON.stringify(n,u)),n=n._prev;return"["+e.join(", ")+"]"},t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(0)),a=n(2),u=o(n(23));function o(e){return e&&e.__esModule?e:{default:e}}var d=r.default.constant(1);function f(e,t,n,a,u){var o=u?[]:void 0;return r.default.forEach(e.inEdges(a.v),function(r){var a=e.edge(r),d=e.node(r.v);u&&o.push({v:r.v,w:r.w}),d.out-=a,i(t,n,d)}),r.default.forEach(e.outEdges(a.v),function(r){var a=e.edge(r),u=r.w,o=e.node(u);o.in-=a,i(t,n,o)}),e.removeNode(a.v),o}function i(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}t.default=function(e,t){if(e.nodeCount()<=1)return[];var n=function(e,t){var n=new a.Graph,o=0,d=0;r.default.forEach(e.nodes(),function(e){n.setNode(e,{v:e,in:0,out:0})}),r.default.forEach(e.edges(),function(e){var r=n.edge(e.v,e.w)||0,a=t(e),u=r+a;n.setEdge(e.v,e.w,u),d=Math.max(d,n.node(e.v).out+=a),o=Math.max(o,n.node(e.w).in+=a)});var f=r.default.range(d+o+3).map(function(){return new u.default}),l=o+1;return r.default.forEach(n.nodes(),function(e){i(f,l,n.node(e))}),{graph:n,buckets:f,zeroIdx:l}}(e,t||d),o=function(e,t,n){for(var r=[],a=t[t.length-1],u=t[0],o=void 0;e.nodeCount();){for(;o=u.dequeue();)f(e,t,n,o);for(;o=a.dequeue();)f(e,t,n,o);if(e.nodeCount())for(var d=t.length-2;d>0;--d)if(o=t[d].dequeue()){r=r.concat(f(e,t,n,o,!0));break}}return r}(n.graph,n.buckets,n.zeroIdx);return r.default.flatten(r.default.map(o,function(t){return e.outEdges(t.v,t.w)}),!0)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(0)),a=u(n(24));function u(e){return e&&e.__esModule?e:{default:e}}t.default={run:function(e){var t="greedy"===e.graph().acyclicer?(0,a.default)(e,function(e){return function(t){return e.edge(t).weight}}(e)):function(e){var t=[],n={},a={};return r.default.forEach(e.nodes(),function u(o){r.default.has(a,o)||(a[o]=!0,n[o]=!0,r.default.forEach(e.outEdges(o),function(e){r.default.has(n,e.w)?t.push(e):u(e.w)}),delete n[o])}),t}(e);r.default.forEach(t,function(t){var n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,r.default.uniqueId("rev"))})},undo:function(e){r.default.forEach(e.edges(),function(t){var n=e.edge(t);if(n.reversed){e.removeEdge(t);var r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p(n(0)),a=n(2),u=p(n(25)),o=p(n(22)),d=p(n(21)),f=n(1),i=p(f),l=p(n(19)),c=p(n(18)),s=p(n(17)),h=p(n(16)),v=p(n(15)),g=p(n(6));function p(e){return e&&e.__esModule?e:{default:e}}var m=["nodesep","edgesep","ranksep","marginx","marginy"],E={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},b=["acyclicer","ranker","rankdir","align"],w=["width","height"],y={width:0,height:0},_=["minlen","weight","width","height","labeloffset"],x={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},k=["labelpos"];function M(e,t){return r.default.mapValues(r.default.pick(e,t),Number)}function N(e){var t={};return r.default.forEach(e,function(e,n){t[n.toLowerCase()]=e}),t}t.default=function(e,t){var n=t&&t.debugTiming?i.default.time:i.default.notime;n("layout",function(){var t=n(" buildLayoutGraph",function(){return function(e){var t=new a.Graph({multigraph:!0,compound:!0}),n=N(e.graph());return t.setGraph(r.default.merge({},E,M(n,m),r.default.pick(n,b))),r.default.forEach(e.nodes(),function(n){var a=N(e.node(n));t.setNode(n,r.default.defaults(M(a,w),y)),t.setParent(n,e.parent(n))}),r.default.forEach(e.edges(),function(n){var a=N(e.edge(n));t.setEdge(n,r.default.merge({},x,M(a,_),r.default.pick(a,k)))}),t}(e)});n(" runLayout",function(){!function(e,t){t(" makeSpaceForEdgeLabels",function(){!function(e){var t=e.graph();t.ranksep/=2,r.default.forEach(e.edges(),function(n){var r=e.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===t.rankdir||"BT"===t.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})}(e)}),t(" removeSelfEdges",function(){!function(e){r.default.forEach(e.edges(),function(t){if(t.v===t.w){var n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}(e)}),t(" acyclic",function(){u.default.run(e)}),t(" nestingGraph.run",function(){c.default.run(e)}),t(" rank",function(){(0,d.default)(i.default.asNonCompoundGraph(e))}),t(" injectEdgeLabelProxies",function(){!function(e){r.default.forEach(e.edges(),function(t){var n=e.edge(t);if(n.width&&n.height){var r=e.node(t.v),a=e.node(t.w),u={rank:(a.rank-r.rank)/2+r.rank,e:t};i.default.addDummyNode(e,"edge-proxy",u,"_ep")}})}(e)}),t(" removeEmptyRanks",function(){(0,f.removeEmptyRanks)(e)}),t(" nestingGraph.cleanup",function(){c.default.cleanup(e)}),t(" normalizeRanks",function(){(0,f.normalizeRanks)(e)}),t(" assignRankMinMax",function(){!function(e){var t=0;r.default.forEach(e.nodes(),function(n){var r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}(e)}),t(" removeEdgeLabelProxies",function(){!function(e){r.default.forEach(e.nodes(),function(t){var n=e.node(t);"edge-proxy"===n.dummy&&(e.edge(n.e).labelRank=n.rank,e.removeNode(t))})}(e)}),t(" normalize.run",function(){o.default.run(e)}),t(" parentDummyChains",function(){(0,l.default)(e)}),t(" addBorderSegments",function(){(0,s.default)(e)}),t(" order",function(){(0,v.default)(e)}),t(" insertSelfEdges",function(){!function(e){var t=i.default.buildLayerMatrix(e);r.default.forEach(t,function(t){var n=0;r.default.forEach(t,function(t,a){var u=e.node(t);u.order=a+n,r.default.forEach(u.selfEdges,function(t){i.default.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:u.rank,order:a+ ++n,e:t.e,label:t.label},"_se")}),delete u.selfEdges})})}(e)}),t(" adjustCoordinateSystem",function(){h.default.adjust(e)}),t(" position",function(){(0,g.default)(e)}),t(" positionSelfEdges",function(){!function(e){r.default.forEach(e.nodes(),function(t){var n=e.node(t);if("selfedge"===n.dummy){var r=e.node(n.e.v),a=r.x+r.width/2,u=r.y,o=n.x-a,d=r.height/2;e.setEdge(n.e,n.label),e.removeNode(t),n.label.points=[{x:a+2*o/3,y:u-d},{x:a+5*o/6,y:u-d},{x:a+o,y:u},{x:a+5*o/6,y:u+d},{x:a+2*o/3,y:u+d}],n.label.x=n.x,n.label.y=n.y}})}(e)}),t(" removeBorderNodes",function(){!function(e){r.default.forEach(e.nodes(),function(t){if(e.children(t).length){var n=e.node(t),a=e.node(n.borderTop),u=e.node(n.borderBottom),o=e.node(r.default.last(n.borderLeft)),d=e.node(r.default.last(n.borderRight));n.width=Math.abs(d.x-o.x),n.height=Math.abs(u.y-a.y),n.x=o.x+n.width/2,n.y=a.y+n.height/2}}),r.default.forEach(e.nodes(),function(t){"border"===e.node(t).dummy&&e.removeNode(t)})}(e)}),t(" normalize.undo",function(){o.default.undo(e)}),t(" fixupEdgeLabelCoords",function(){!function(e){r.default.forEach(e.edges(),function(t){var n=e.edge(t);if(r.default.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}(e)}),t(" undoCoordinateSystem",function(){h.default.undo(e)}),t(" translateGraph",function(){!function(e){var t=Number.POSITIVE_INFINITY,n=0,a=Number.POSITIVE_INFINITY,u=0,o=e.graph(),d=o.marginx||0,f=o.marginy||0;function i(e){var r=e.x,o=e.y,d=e.width,f=e.height;t=Math.min(t,r-d/2),n=Math.max(n,r+d/2),a=Math.min(a,o-f/2),u=Math.max(u,o+f/2)}r.default.forEach(e.nodes(),function(t){i(e.node(t))}),r.default.forEach(e.edges(),function(t){var n=e.edge(t);r.default.has(n,"x")&&i(n)}),t-=d,a-=f,r.default.forEach(e.nodes(),function(n){var r=e.node(n);r.x-=t,r.y-=a}),r.default.forEach(e.edges(),function(n){var u=e.edge(n);r.default.forEach(u.points,function(e){e.x-=t,e.y-=a}),r.default.has(u,"x")&&(u.x-=t),r.default.has(u,"y")&&(u.y-=a)}),o.width=n-t+d,o.height=u-a+f}(e)}),t(" assignNodeIntersects",function(){!function(e){r.default.forEach(e.edges(),function(t){var n=e.edge(t),r=e.node(t.v),a=e.node(t.w),u=null,o=null;n.points?(u=n.points[0],o=n.points[n.points.length-1]):(n.points=[],u=a,o=r),n.points.unshift(i.default.intersectRect(r,u)),n.points.push(i.default.intersectRect(a,o))})}(e)}),t(" reversePoints",function(){!function(e){r.default.forEach(e.edges(),function(t){var n=e.edge(t);n.reversed&&n.points.reverse()})}(e)}),t(" acyclic.undo",function(){u.default.undo(e)})}(t,n)}),n(" updateInputGraph",function(){!function(e,t){r.default.forEach(e.nodes(),function(n){var r=e.node(n),a=t.node(n);r&&(r.x=a.x,r.y=a.y,t.children(n).length&&(r.width=a.width,r.height=a.height))}),r.default.forEach(e.edges(),function(n){var a=e.edge(n),u=t.edge(n);a.points=u.points,r.default.has(u,"x")&&(a.x=u.x,a.y=u.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}(e,t)})})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(26),u=(r=a)&&r.__esModule?r:{default:r};t.default={layout:u.default}}]);
28782//# sourceMappingURL=dagre-layout.core.js.map
28783
28784/***/ }),
28785
28786/***/ "./node_modules/escaper/dist/escaper.js":
28787/*!**********************************************!*\
28788 !*** ./node_modules/escaper/dist/escaper.js ***!
28789 \**********************************************/
28790/*! no static exports found */
28791/***/ (function(module, exports, __webpack_require__) {
28792
28793/*!
28794 * Escaper v2.5.3
28795 * https://github.com/kobezzza/Escaper
28796 *
28797 * Released under the MIT license
28798 * https://github.com/kobezzza/Escaper/blob/master/LICENSE
28799 *
28800 * Date: Tue, 23 Jan 2018 15:58:45 GMT
28801 */
28802
28803(function (global, factory) {
28804 true ? factory(exports) :
28805 undefined;
28806}(this, (function (exports) { 'use strict';
28807
28808var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
28809 return typeof obj;
28810} : function (obj) {
28811 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
28812};
28813
28814var Escaper = void 0;
28815var escaper = Escaper = {
28816 VERSION: [2, 5, 3],
28817 content: [],
28818 cache: {},
28819 snakeskinRgxp: null,
28820 symbols: null,
28821 replace: replace,
28822 paste: paste
28823};
28824
28825var stringLiterals = {
28826 '"': true,
28827 '\'': true,
28828 '`': true
28829};
28830
28831var literals = {
28832 '/': true
28833};
28834
28835for (var key in stringLiterals) {
28836 if (!stringLiterals.hasOwnProperty(key)) {
28837 break;
28838 }
28839
28840 literals[key] = true;
28841}
28842
28843var singleComments = {
28844 '//': true,
28845 '//*': true,
28846 '//!': true,
28847 '//#': true,
28848 '//@': true,
28849 '//$': true
28850};
28851
28852var multComments = {
28853 '/*': true,
28854 '/**': true,
28855 '/*!': true,
28856 '/*#': true,
28857 '/*@': true,
28858 '/*$': true
28859};
28860
28861var keyArr = [];
28862var finalMap = {};
28863
28864for (var _key in literals) {
28865 if (!literals.hasOwnProperty(_key)) {
28866 break;
28867 }
28868
28869 keyArr.push(_key);
28870 finalMap[_key] = true;
28871}
28872
28873for (var _key2 in singleComments) {
28874 if (!singleComments.hasOwnProperty(_key2)) {
28875 break;
28876 }
28877
28878 keyArr.push(_key2);
28879 finalMap[_key2] = true;
28880}
28881
28882for (var _key3 in multComments) {
28883 if (!multComments.hasOwnProperty(_key3)) {
28884 break;
28885 }
28886
28887 keyArr.push(_key3);
28888 finalMap[_key3] = true;
28889}
28890
28891var rgxpFlags = [];
28892var rgxpFlagsMap = {
28893 'g': true,
28894 'm': true,
28895 'i': true,
28896 'y': true,
28897 'u': true
28898};
28899
28900for (var _key4 in rgxpFlagsMap) {
28901 if (!rgxpFlagsMap.hasOwnProperty(_key4)) {
28902 break;
28903 }
28904
28905 rgxpFlags.push(_key4);
28906}
28907
28908var escapeEndMap = {
28909 '-': true,
28910 '+': true,
28911 '*': true,
28912 '%': true,
28913 '~': true,
28914 '>': true,
28915 '<': true,
28916 '^': true,
28917 ',': true,
28918 ';': true,
28919 '=': true,
28920 '|': true,
28921 '&': true,
28922 '!': true,
28923 '?': true,
28924 ':': true,
28925 '(': true,
28926 '{': true,
28927 '[': true
28928};
28929
28930var escapeEndWordMap = {
28931 'return': true,
28932 'yield': true,
28933 'await': true,
28934 'typeof': true,
28935 'void': true,
28936 'instanceof': true,
28937 'delete': true,
28938 'in': true,
28939 'new': true,
28940 'of': true
28941};
28942
28943/**
28944 * @param {!Object} obj
28945 * @param {!Object} p
28946 * @param {(boolean|number)} val
28947 */
28948function mix(obj, p, val) {
28949 for (var _key5 in obj) {
28950 if (!obj.hasOwnProperty(_key5)) {
28951 break;
28952 }
28953
28954 if (_key5 in p === false) {
28955 p[_key5] = val;
28956 }
28957 }
28958}
28959
28960var symbols = void 0;
28961var snakeskinRgxp = void 0;
28962
28963var uSRgxp = /[^\s/]/;
28964var wRgxp = /[a-z]/;
28965var sRgxp = /\s/;
28966var nRgxp = /[\r\n]/;
28967var posRgxp = /\${pos}/g;
28968
28969var objMap = {
28970 'object': true,
28971 'function': true
28972};
28973
28974/**
28975 * Replaces all found blocks ' ... ', " ... ", ` ... `, / ... /, // ..., /* ... *\/ to
28976 * __ESCAPER_QUOT__number_ in a string and returns a new string
28977 *
28978 * @param {string} str - source string
28979 * @param {(Object<string, boolean>|boolean)=} [opt_withCommentsOrParams=false] - parameters:
28980 *
28981 * (if a parameter value is set to -1, then all found matches will be removed from the final string,
28982 * or if the value will be set to true/false they will be included/excluded)
28983 *
28984 * *) @label - template for replacement, e.g. __ESCAPER_QUOT__${pos}_
28985 * *) @all - replaces all found matches
28986 * *) @comments - replaces all kinds of comments
28987 * *) @strings - replaces all kinds of string literals
28988 * *) @literals - replaces all kinds of string literals and regular expressions
28989 * *) `
28990 * *) '
28991 * *) "
28992 * *) /
28993 * *) //
28994 * *) //*
28995 * *) //!
28996 * *) //#
28997 * *) //@
28998 * *) //$
28999 * *) /*
29000 * *) /**
29001 * *) /*!
29002 * *) /*#
29003 * *) /*@
29004 * *) /*$
29005 *
29006 * OR if the value is boolean, then will be replaced all found comments (true) / literals (false)
29007 *
29008 * @param {Array=} [opt_content=Escaper.content] - array for matches
29009 * @param {?boolean=} [opt_snakeskin] - private parameter for using with Snakeskin
29010 * @return {string}
29011 */
29012function replace(str, opt_withCommentsOrParams, opt_content, opt_snakeskin) {
29013 symbols = symbols || Escaper.symbols || 'a-z';
29014 snakeskinRgxp = snakeskinRgxp || Escaper.snakeskinRgxp || new RegExp('[!$' + symbols + '_]', 'i');
29015
29016 var _Escaper = Escaper,
29017 cache = _Escaper.cache,
29018 content = _Escaper.content;
29019
29020
29021 var isObj = Boolean(opt_withCommentsOrParams && objMap[typeof opt_withCommentsOrParams === 'undefined' ? 'undefined' : _typeof(opt_withCommentsOrParams)]);
29022
29023 var p = isObj ? Object(opt_withCommentsOrParams) : {};
29024
29025 function mark(pos) {
29026 if (p['@label']) {
29027 return p['@label'].replace(posRgxp, pos);
29028 }
29029
29030 return '__ESCAPER_QUOT__' + pos + '_';
29031 }
29032
29033 var withComments = false;
29034 if (typeof opt_withCommentsOrParams === 'boolean') {
29035 withComments = Boolean(opt_withCommentsOrParams);
29036 }
29037
29038 if ('@comments' in p) {
29039 mix(multComments, p, p['@comments']);
29040 mix(singleComments, p, p['@comments']);
29041 delete p['@comments'];
29042 }
29043
29044 if ('@strings' in p) {
29045 mix(stringLiterals, p, p['@strings']);
29046 delete p['@strings'];
29047 }
29048
29049 if ('@literals' in p) {
29050 mix(literals, p, p['@literals']);
29051 delete p['@literals'];
29052 }
29053
29054 if ('@all' in p) {
29055 mix(finalMap, p, p['@all']);
29056 delete p['@all'];
29057 }
29058
29059 var cacheKey = '';
29060 for (var i = -1; ++i < keyArr.length;) {
29061 var el = keyArr[i];
29062
29063 if (multComments[el] || singleComments[el]) {
29064 p[el] = withComments || p[el];
29065 } else {
29066 p[el] = p[el] || !isObj;
29067 }
29068
29069 cacheKey += p[el] + ',';
29070 }
29071
29072 var initStr = str,
29073 stack = opt_content || content;
29074
29075 if (stack === content && cache[cacheKey] && cache[cacheKey][initStr]) {
29076 return cache[cacheKey][initStr];
29077 }
29078
29079 var begin = false,
29080 end = true;
29081
29082 var escape = false,
29083 comment = false;
29084
29085 var selectionStart = 0,
29086 block = false;
29087
29088 var templateVar = 0,
29089 filterStart = false;
29090
29091 var cut = void 0,
29092 label = void 0;
29093
29094 var part = '',
29095 rPart = '';
29096
29097 for (var _i = -1; ++_i < str.length;) {
29098 var _el = str.charAt(_i);
29099
29100 var next = str.charAt(_i + 1),
29101 word = str.substr(_i, 2),
29102 extWord = str.substr(_i, 3);
29103
29104 if (!comment) {
29105 if (!begin) {
29106 if (_el === '/') {
29107 if (singleComments[word] || multComments[word]) {
29108 if (singleComments[extWord] || multComments[extWord]) {
29109 comment = extWord;
29110 } else {
29111 comment = word;
29112 }
29113 }
29114
29115 if (comment) {
29116 selectionStart = _i;
29117 continue;
29118 }
29119 }
29120
29121 if (escapeEndMap[_el] || escapeEndWordMap[rPart]) {
29122 end = true;
29123 rPart = '';
29124 } else if (uSRgxp.test(_el)) {
29125 end = false;
29126 }
29127
29128 if (wRgxp.test(_el)) {
29129 part += _el;
29130 } else {
29131 rPart = part;
29132 part = '';
29133 }
29134
29135 var skip = false;
29136 if (opt_snakeskin) {
29137 if (_el === '|' && snakeskinRgxp.test(next)) {
29138 filterStart = true;
29139 end = false;
29140 skip = true;
29141 } else if (filterStart && sRgxp.test(_el)) {
29142 filterStart = false;
29143 end = true;
29144 skip = true;
29145 }
29146 }
29147
29148 if (!skip) {
29149 if (escapeEndMap[_el]) {
29150 end = true;
29151 } else if (uSRgxp.test(_el)) {
29152 end = false;
29153 }
29154 }
29155 }
29156
29157 // [] inside RegExp
29158 if (begin === '/' && !escape) {
29159 if (_el === '[') {
29160 block = true;
29161 } else if (_el === ']') {
29162 block = false;
29163 }
29164 }
29165
29166 if (!begin && templateVar) {
29167 if (_el === '}') {
29168 templateVar--;
29169 } else if (_el === '{') {
29170 templateVar++;
29171 }
29172
29173 if (!templateVar) {
29174 _el = '`';
29175 }
29176 }
29177
29178 if (begin === '`' && !escape && word === '${') {
29179 _el = '`';
29180 _i++;
29181 templateVar++;
29182 }
29183
29184 if (finalMap[_el] && (_el !== '/' || end) && !begin) {
29185 begin = _el;
29186 selectionStart = _i;
29187 } else if (begin && (_el === '\\' || escape)) {
29188 escape = !escape;
29189 } else if (finalMap[_el] && begin === _el && !escape && (begin !== '/' || !block)) {
29190 if (_el === '/') {
29191 for (var j = -1; ++j < rgxpFlags.length;) {
29192 if (rgxpFlagsMap[str.charAt(_i + 1)]) {
29193 _i++;
29194 }
29195 }
29196 }
29197
29198 begin = false;
29199 end = false;
29200
29201 if (p[_el]) {
29202 cut = str.substring(selectionStart, _i + 1);
29203
29204 if (p[_el] === -1) {
29205 label = '';
29206 } else {
29207 label = mark(stack.length);
29208 stack.push(cut);
29209 }
29210
29211 str = str.substring(0, selectionStart) + label + str.substring(_i + 1);
29212 _i += label.length - cut.length;
29213 }
29214 }
29215 } else if (nRgxp.test(next) && singleComments[comment] || multComments[_el + str.charAt(_i - 1)] && _i - selectionStart > 2 && multComments[comment]) {
29216 if (p[comment]) {
29217 cut = str.substring(selectionStart, _i + 1);
29218
29219 if (p[comment] === -1) {
29220 label = '';
29221 } else {
29222 label = mark(stack.length);
29223 stack.push(cut);
29224 }
29225
29226 str = str.substring(0, selectionStart) + label + str.substring(_i + 1);
29227 _i += label.length - cut.length;
29228 }
29229
29230 comment = false;
29231 }
29232 }
29233
29234 if (stack === content) {
29235 cache[cacheKey] = cache[cacheKey] || {};
29236 cache[cacheKey][initStr] = str;
29237 }
29238
29239 return str;
29240}
29241
29242var pasteRgxp = /__ESCAPER_QUOT__(\d+)_/g;
29243
29244/**
29245 * Replaces all found blocks __ESCAPER_QUOT__number_ to real content in a string
29246 * and returns a new string
29247 *
29248 * @param {string} str - source string
29249 * @param {Array=} [opt_content=Escaper.content] - array of matches
29250 * @param {RegExp=} [opt_rgxp] - RegExp for searching, e.g. /__ESCAPER_QUOT__(\d+)_/g
29251 * @return {string}
29252 */
29253function paste(str, opt_content, opt_rgxp) {
29254 return str.replace(opt_rgxp || pasteRgxp, function (str, pos) {
29255 return (opt_content || Escaper.content)[pos];
29256 });
29257}
29258
29259exports['default'] = escaper;
29260exports.replace = replace;
29261exports.paste = paste;
29262
29263Object.defineProperty(exports, '__esModule', { value: true });
29264
29265})));
29266
29267
29268/***/ }),
29269
29270/***/ "./node_modules/graphlibrary/index.js":
29271/*!********************************************!*\
29272 !*** ./node_modules/graphlibrary/index.js ***!
29273 \********************************************/
29274/*! no static exports found */
29275/***/ (function(module, exports, __webpack_require__) {
29276
29277module.exports = {
29278 Graph: __webpack_require__(/*! ./lib/graph */ "./node_modules/graphlibrary/lib/graph.js"),
29279 json: __webpack_require__(/*! ./lib/json */ "./node_modules/graphlibrary/lib/json.js"),
29280 alg: __webpack_require__(/*! ./lib/alg */ "./node_modules/graphlibrary/lib/alg/index.js")
29281}
29282
29283
29284/***/ }),
29285
29286/***/ "./node_modules/graphlibrary/lib/alg/components.js":
29287/*!*********************************************************!*\
29288 !*** ./node_modules/graphlibrary/lib/alg/components.js ***!
29289 \*********************************************************/
29290/*! no static exports found */
29291/***/ (function(module, exports, __webpack_require__) {
29292
29293var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29294
29295module.exports = components
29296
29297function components (g) {
29298 const visited = {}
29299 const cmpts = []
29300 let cmpt
29301
29302 function dfs (v) {
29303 if (_.has(visited, v)) return
29304 visited[v] = true
29305 cmpt.push(v)
29306 _.each(g.successors(v), dfs)
29307 _.each(g.predecessors(v), dfs)
29308 }
29309
29310 _.each(g.nodes(), function (v) {
29311 cmpt = []
29312 dfs(v)
29313 if (cmpt.length) {
29314 cmpts.push(cmpt)
29315 }
29316 })
29317
29318 return cmpts
29319}
29320
29321
29322/***/ }),
29323
29324/***/ "./node_modules/graphlibrary/lib/alg/dfs.js":
29325/*!**************************************************!*\
29326 !*** ./node_modules/graphlibrary/lib/alg/dfs.js ***!
29327 \**************************************************/
29328/*! no static exports found */
29329/***/ (function(module, exports, __webpack_require__) {
29330
29331var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29332
29333module.exports = dfs
29334
29335/*
29336 * A helper that preforms a pre- or post-order traversal on the input graph
29337 * and returns the nodes in the order they were visited. If the graph is
29338 * undirected then this algorithm will navigate using neighbors. If the graph
29339 * is directed then this algorithm will navigate using successors.
29340 *
29341 * Order must be one of "pre" or "post".
29342 */
29343function dfs (g, vs, order) {
29344 if (!_.isArray(vs)) {
29345 vs = [vs]
29346 }
29347
29348 var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g)
29349
29350 const acc = []
29351 const visited = {}
29352 _.each(vs, function (v) {
29353 if (!g.hasNode(v)) {
29354 throw new Error('Graph does not have node: ' + v)
29355 }
29356
29357 doDfs(g, v, order === 'post', visited, navigation, acc)
29358 })
29359 return acc
29360}
29361
29362function doDfs (g, v, postorder, visited, navigation, acc) {
29363 if (!_.has(visited, v)) {
29364 visited[v] = true
29365
29366 if (!postorder) { acc.push(v) }
29367 _.each(navigation(v), function (w) {
29368 doDfs(g, w, postorder, visited, navigation, acc)
29369 })
29370 if (postorder) { acc.push(v) }
29371 }
29372}
29373
29374
29375/***/ }),
29376
29377/***/ "./node_modules/graphlibrary/lib/alg/dijkstra-all.js":
29378/*!***********************************************************!*\
29379 !*** ./node_modules/graphlibrary/lib/alg/dijkstra-all.js ***!
29380 \***********************************************************/
29381/*! no static exports found */
29382/***/ (function(module, exports, __webpack_require__) {
29383
29384const dijkstra = __webpack_require__(/*! ./dijkstra */ "./node_modules/graphlibrary/lib/alg/dijkstra.js")
29385const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29386
29387module.exports = dijkstraAll
29388
29389function dijkstraAll (g, weightFunc, edgeFunc) {
29390 return _.transform(g.nodes(), function (acc, v) {
29391 acc[v] = dijkstra(g, v, weightFunc, edgeFunc)
29392 }, {})
29393}
29394
29395
29396/***/ }),
29397
29398/***/ "./node_modules/graphlibrary/lib/alg/dijkstra.js":
29399/*!*******************************************************!*\
29400 !*** ./node_modules/graphlibrary/lib/alg/dijkstra.js ***!
29401 \*******************************************************/
29402/*! no static exports found */
29403/***/ (function(module, exports, __webpack_require__) {
29404
29405const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29406const PriorityQueue = __webpack_require__(/*! ../data/priority-queue */ "./node_modules/graphlibrary/lib/data/priority-queue.js")
29407
29408module.exports = dijkstra
29409
29410var DEFAULT_WEIGHT_FUNC = _.constant(1)
29411
29412function dijkstra (g, source, weightFn, edgeFn) {
29413 return runDijkstra(g, String(source),
29414 weightFn || DEFAULT_WEIGHT_FUNC,
29415 edgeFn || function (v) { return g.outEdges(v) })
29416}
29417
29418function runDijkstra (g, source, weightFn, edgeFn) {
29419 const results = {}
29420 const pq = new PriorityQueue()
29421 let v, vEntry
29422
29423 var updateNeighbors = function (edge) {
29424 const w = edge.v !== v ? edge.v : edge.w
29425 const wEntry = results[w]
29426 const weight = weightFn(edge)
29427 const distance = vEntry.distance + weight
29428
29429 if (weight < 0) {
29430 throw new Error('dijkstra does not allow negative edge weights. ' +
29431 'Bad edge: ' + edge + ' Weight: ' + weight)
29432 }
29433
29434 if (distance < wEntry.distance) {
29435 wEntry.distance = distance
29436 wEntry.predecessor = v
29437 pq.decrease(w, distance)
29438 }
29439 }
29440
29441 g.nodes().forEach(function (v) {
29442 var distance = v === source ? 0 : Number.POSITIVE_INFINITY
29443 results[v] = { distance: distance }
29444 pq.add(v, distance)
29445 })
29446
29447 while (pq.size() > 0) {
29448 v = pq.removeMin()
29449 vEntry = results[v]
29450 if (vEntry.distance === Number.POSITIVE_INFINITY) {
29451 break
29452 }
29453
29454 edgeFn(v).forEach(updateNeighbors)
29455 }
29456
29457 return results
29458}
29459
29460
29461/***/ }),
29462
29463/***/ "./node_modules/graphlibrary/lib/alg/find-cycles.js":
29464/*!**********************************************************!*\
29465 !*** ./node_modules/graphlibrary/lib/alg/find-cycles.js ***!
29466 \**********************************************************/
29467/*! no static exports found */
29468/***/ (function(module, exports, __webpack_require__) {
29469
29470const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29471const tarjan = __webpack_require__(/*! ./tarjan */ "./node_modules/graphlibrary/lib/alg/tarjan.js")
29472
29473module.exports = findCycles
29474
29475function findCycles (g) {
29476 return _.filter(tarjan(g), function (cmpt) {
29477 return cmpt.length > 1 || (cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]))
29478 })
29479}
29480
29481
29482/***/ }),
29483
29484/***/ "./node_modules/graphlibrary/lib/alg/floyd-warshall.js":
29485/*!*************************************************************!*\
29486 !*** ./node_modules/graphlibrary/lib/alg/floyd-warshall.js ***!
29487 \*************************************************************/
29488/*! no static exports found */
29489/***/ (function(module, exports, __webpack_require__) {
29490
29491var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29492
29493module.exports = floydWarshall
29494
29495var DEFAULT_WEIGHT_FUNC = _.constant(1)
29496
29497function floydWarshall (g, weightFn, edgeFn) {
29498 return runFloydWarshall(g,
29499 weightFn || DEFAULT_WEIGHT_FUNC,
29500 edgeFn || function (v) { return g.outEdges(v) })
29501}
29502
29503function runFloydWarshall (g, weightFn, edgeFn) {
29504 const results = {}
29505 const nodes = g.nodes()
29506
29507 nodes.forEach(function (v) {
29508 results[v] = {}
29509 results[v][v] = { distance: 0 }
29510 nodes.forEach(function (w) {
29511 if (v !== w) {
29512 results[v][w] = { distance: Number.POSITIVE_INFINITY }
29513 }
29514 })
29515 edgeFn(v).forEach(function (edge) {
29516 const w = edge.v === v ? edge.w : edge.v
29517 const d = weightFn(edge)
29518 results[v][w] = { distance: d, predecessor: v }
29519 })
29520 })
29521
29522 nodes.forEach(function (k) {
29523 var rowK = results[k]
29524 nodes.forEach(function (i) {
29525 var rowI = results[i]
29526 nodes.forEach(function (j) {
29527 var ik = rowI[k]
29528 var kj = rowK[j]
29529 var ij = rowI[j]
29530 var altDistance = ik.distance + kj.distance
29531 if (altDistance < ij.distance) {
29532 ij.distance = altDistance
29533 ij.predecessor = kj.predecessor
29534 }
29535 })
29536 })
29537 })
29538
29539 return results
29540}
29541
29542
29543/***/ }),
29544
29545/***/ "./node_modules/graphlibrary/lib/alg/index.js":
29546/*!****************************************************!*\
29547 !*** ./node_modules/graphlibrary/lib/alg/index.js ***!
29548 \****************************************************/
29549/*! no static exports found */
29550/***/ (function(module, exports, __webpack_require__) {
29551
29552module.exports = {
29553 components: __webpack_require__(/*! ./components */ "./node_modules/graphlibrary/lib/alg/components.js"),
29554 dijkstra: __webpack_require__(/*! ./dijkstra */ "./node_modules/graphlibrary/lib/alg/dijkstra.js"),
29555 dijkstraAll: __webpack_require__(/*! ./dijkstra-all */ "./node_modules/graphlibrary/lib/alg/dijkstra-all.js"),
29556 findCycles: __webpack_require__(/*! ./find-cycles */ "./node_modules/graphlibrary/lib/alg/find-cycles.js"),
29557 floydWarshall: __webpack_require__(/*! ./floyd-warshall */ "./node_modules/graphlibrary/lib/alg/floyd-warshall.js"),
29558 isAcyclic: __webpack_require__(/*! ./is-acyclic */ "./node_modules/graphlibrary/lib/alg/is-acyclic.js"),
29559 postorder: __webpack_require__(/*! ./postorder */ "./node_modules/graphlibrary/lib/alg/postorder.js"),
29560 preorder: __webpack_require__(/*! ./preorder */ "./node_modules/graphlibrary/lib/alg/preorder.js"),
29561 prim: __webpack_require__(/*! ./prim */ "./node_modules/graphlibrary/lib/alg/prim.js"),
29562 tarjan: __webpack_require__(/*! ./tarjan */ "./node_modules/graphlibrary/lib/alg/tarjan.js"),
29563 topsort: __webpack_require__(/*! ./topsort */ "./node_modules/graphlibrary/lib/alg/topsort.js")
29564}
29565
29566
29567/***/ }),
29568
29569/***/ "./node_modules/graphlibrary/lib/alg/is-acyclic.js":
29570/*!*********************************************************!*\
29571 !*** ./node_modules/graphlibrary/lib/alg/is-acyclic.js ***!
29572 \*********************************************************/
29573/*! no static exports found */
29574/***/ (function(module, exports, __webpack_require__) {
29575
29576var topsort = __webpack_require__(/*! ./topsort */ "./node_modules/graphlibrary/lib/alg/topsort.js")
29577
29578module.exports = isAcyclic
29579
29580function isAcyclic (g) {
29581 try {
29582 topsort(g)
29583 } catch (e) {
29584 if (e instanceof topsort.CycleException) {
29585 return false
29586 }
29587 throw e
29588 }
29589 return true
29590}
29591
29592
29593/***/ }),
29594
29595/***/ "./node_modules/graphlibrary/lib/alg/postorder.js":
29596/*!********************************************************!*\
29597 !*** ./node_modules/graphlibrary/lib/alg/postorder.js ***!
29598 \********************************************************/
29599/*! no static exports found */
29600/***/ (function(module, exports, __webpack_require__) {
29601
29602var dfs = __webpack_require__(/*! ./dfs */ "./node_modules/graphlibrary/lib/alg/dfs.js")
29603
29604module.exports = postorder
29605
29606function postorder (g, vs) {
29607 return dfs(g, vs, 'post')
29608}
29609
29610
29611/***/ }),
29612
29613/***/ "./node_modules/graphlibrary/lib/alg/preorder.js":
29614/*!*******************************************************!*\
29615 !*** ./node_modules/graphlibrary/lib/alg/preorder.js ***!
29616 \*******************************************************/
29617/*! no static exports found */
29618/***/ (function(module, exports, __webpack_require__) {
29619
29620var dfs = __webpack_require__(/*! ./dfs */ "./node_modules/graphlibrary/lib/alg/dfs.js")
29621
29622module.exports = preorder
29623
29624function preorder (g, vs) {
29625 return dfs(g, vs, 'pre')
29626}
29627
29628
29629/***/ }),
29630
29631/***/ "./node_modules/graphlibrary/lib/alg/prim.js":
29632/*!***************************************************!*\
29633 !*** ./node_modules/graphlibrary/lib/alg/prim.js ***!
29634 \***************************************************/
29635/*! no static exports found */
29636/***/ (function(module, exports, __webpack_require__) {
29637
29638const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29639const Graph = __webpack_require__(/*! ../graph */ "./node_modules/graphlibrary/lib/graph.js")
29640const PriorityQueue = __webpack_require__(/*! ../data/priority-queue */ "./node_modules/graphlibrary/lib/data/priority-queue.js")
29641
29642module.exports = prim
29643
29644function prim (g, weightFunc) {
29645 const result = new Graph()
29646 const parents = {}
29647 const pq = new PriorityQueue()
29648 let v
29649
29650 function updateNeighbors (edge) {
29651 const w = edge.v === v ? edge.w : edge.v
29652 const pri = pq.priority(w)
29653 if (pri !== undefined) {
29654 var edgeWeight = weightFunc(edge)
29655 if (edgeWeight < pri) {
29656 parents[w] = v
29657 pq.decrease(w, edgeWeight)
29658 }
29659 }
29660 }
29661
29662 if (g.nodeCount() === 0) {
29663 return result
29664 }
29665
29666 _.each(g.nodes(), function (v) {
29667 pq.add(v, Number.POSITIVE_INFINITY)
29668 result.setNode(v)
29669 })
29670
29671 // Start from an arbitrary node
29672 pq.decrease(g.nodes()[0], 0)
29673
29674 var init = false
29675 while (pq.size() > 0) {
29676 v = pq.removeMin()
29677 if (_.has(parents, v)) {
29678 result.setEdge(v, parents[v])
29679 } else if (init) {
29680 throw new Error('Input graph is not connected: ' + g)
29681 } else {
29682 init = true
29683 }
29684
29685 g.nodeEdges(v).forEach(updateNeighbors)
29686 }
29687
29688 return result
29689}
29690
29691
29692/***/ }),
29693
29694/***/ "./node_modules/graphlibrary/lib/alg/tarjan.js":
29695/*!*****************************************************!*\
29696 !*** ./node_modules/graphlibrary/lib/alg/tarjan.js ***!
29697 \*****************************************************/
29698/*! no static exports found */
29699/***/ (function(module, exports, __webpack_require__) {
29700
29701var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29702
29703module.exports = tarjan
29704
29705function tarjan (g) {
29706 let index = 0
29707 const stack = []
29708 const visited = {} // node id -> { onStack, lowlink, index }
29709 const results = []
29710
29711 function dfs (v) {
29712 var entry = visited[v] = {
29713 onStack: true,
29714 lowlink: index,
29715 index: index++
29716 }
29717 stack.push(v)
29718
29719 g.successors(v).forEach(function (w) {
29720 if (!_.has(visited, w)) {
29721 dfs(w)
29722 entry.lowlink = Math.min(entry.lowlink, visited[w].lowlink)
29723 } else if (visited[w].onStack) {
29724 entry.lowlink = Math.min(entry.lowlink, visited[w].index)
29725 }
29726 })
29727
29728 if (entry.lowlink === entry.index) {
29729 const cmpt = []
29730 let w
29731 do {
29732 w = stack.pop()
29733 visited[w].onStack = false
29734 cmpt.push(w)
29735 } while (v !== w)
29736 results.push(cmpt)
29737 }
29738 }
29739
29740 g.nodes().forEach(function (v) {
29741 if (!_.has(visited, v)) {
29742 dfs(v)
29743 }
29744 })
29745
29746 return results
29747}
29748
29749
29750/***/ }),
29751
29752/***/ "./node_modules/graphlibrary/lib/alg/topsort.js":
29753/*!******************************************************!*\
29754 !*** ./node_modules/graphlibrary/lib/alg/topsort.js ***!
29755 \******************************************************/
29756/*! no static exports found */
29757/***/ (function(module, exports, __webpack_require__) {
29758
29759const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29760
29761module.exports = topsort
29762topsort.CycleException = CycleException
29763
29764function topsort (g) {
29765 const visited = {}
29766 const stack = {}
29767 const results = []
29768
29769 function visit (node) {
29770 if (_.has(stack, node)) {
29771 throw new CycleException()
29772 }
29773
29774 if (!_.has(visited, node)) {
29775 stack[node] = true
29776 visited[node] = true
29777 _.each(g.predecessors(node), visit)
29778 delete stack[node]
29779 results.push(node)
29780 }
29781 }
29782
29783 _.each(g.sinks(), visit)
29784
29785 if (_.size(visited) !== g.nodeCount()) {
29786 throw new CycleException()
29787 }
29788
29789 return results
29790}
29791
29792function CycleException () {}
29793CycleException.prototype = new Error() // must be an instance of Error to pass testing
29794
29795
29796/***/ }),
29797
29798/***/ "./node_modules/graphlibrary/lib/data/priority-queue.js":
29799/*!**************************************************************!*\
29800 !*** ./node_modules/graphlibrary/lib/data/priority-queue.js ***!
29801 \**************************************************************/
29802/*! no static exports found */
29803/***/ (function(module, exports, __webpack_require__) {
29804
29805const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29806
29807module.exports = PriorityQueue
29808
29809/**
29810 * A min-priority queue data structure. This algorithm is derived from Cormen,
29811 * et al., "Introduction to Algorithms". The basic idea of a min-priority
29812 * queue is that you can efficiently (in O(1) time) get the smallest key in
29813 * the queue. Adding and removing elements takes O(log n) time. A key can
29814 * have its priority decreased in O(log n) time.
29815 */
29816function PriorityQueue () {
29817 this._arr = []
29818 this._keyIndices = {}
29819}
29820
29821/**
29822 * Returns the number of elements in the queue. Takes `O(1)` time.
29823 */
29824PriorityQueue.prototype.size = function () {
29825 return this._arr.length
29826}
29827
29828/**
29829 * Returns the keys that are in the queue. Takes `O(n)` time.
29830 */
29831PriorityQueue.prototype.keys = function () {
29832 return this._arr.map(function (x) { return x.key })
29833}
29834
29835/**
29836 * Returns `true` if **key** is in the queue and `false` if not.
29837 */
29838PriorityQueue.prototype.has = function (key) {
29839 return _.has(this._keyIndices, key)
29840}
29841
29842/**
29843 * Returns the priority for **key**. If **key** is not present in the queue
29844 * then this function returns `undefined`. Takes `O(1)` time.
29845 *
29846 * @param {Object} key
29847 */
29848PriorityQueue.prototype.priority = function (key) {
29849 var index = this._keyIndices[key]
29850 if (index !== undefined) {
29851 return this._arr[index].priority
29852 }
29853}
29854
29855/**
29856 * Returns the key for the minimum element in this queue. If the queue is
29857 * empty this function throws an Error. Takes `O(1)` time.
29858 */
29859PriorityQueue.prototype.min = function () {
29860 if (this.size() === 0) {
29861 throw new Error('Queue underflow')
29862 }
29863 return this._arr[0].key
29864}
29865
29866/**
29867 * Inserts a new key into the priority queue. If the key already exists in
29868 * the queue this function returns `false`; otherwise it will return `true`.
29869 * Takes `O(n)` time.
29870 *
29871 * @param {Object} key the key to add
29872 * @param {Number} priority the initial priority for the key
29873 */
29874PriorityQueue.prototype.add = function (key, priority) {
29875 var keyIndices = this._keyIndices
29876 key = String(key)
29877 if (!_.has(keyIndices, key)) {
29878 var arr = this._arr
29879 var index = arr.length
29880 keyIndices[key] = index
29881 arr.push({key: key, priority: priority})
29882 this._decrease(index)
29883 return true
29884 }
29885 return false
29886}
29887
29888/**
29889 * Removes and returns the smallest key in the queue. Takes `O(log n)` time.
29890 */
29891PriorityQueue.prototype.removeMin = function () {
29892 this._swap(0, this._arr.length - 1)
29893 var min = this._arr.pop()
29894 delete this._keyIndices[min.key]
29895 this._heapify(0)
29896 return min.key
29897}
29898
29899/**
29900 * Decreases the priority for **key** to **priority**. If the new priority is
29901 * greater than the previous priority, this function will throw an Error.
29902 *
29903 * @param {Object} key the key for which to raise priority
29904 * @param {Number} priority the new priority for the key
29905 */
29906PriorityQueue.prototype.decrease = function (key, priority) {
29907 var index = this._keyIndices[key]
29908 if (priority > this._arr[index].priority) {
29909 throw new Error('New priority is greater than current priority. ' +
29910 'Key: ' + key + ' Old: ' + this._arr[index].priority + ' New: ' + priority)
29911 }
29912 this._arr[index].priority = priority
29913 this._decrease(index)
29914}
29915
29916PriorityQueue.prototype._heapify = function (i) {
29917 const arr = this._arr
29918 const l = 2 * i
29919 const r = l + 1
29920 let largest = i
29921 if (l < arr.length) {
29922 largest = arr[l].priority < arr[largest].priority ? l : largest
29923 if (r < arr.length) {
29924 largest = arr[r].priority < arr[largest].priority ? r : largest
29925 }
29926 if (largest !== i) {
29927 this._swap(i, largest)
29928 this._heapify(largest)
29929 }
29930 }
29931}
29932
29933PriorityQueue.prototype._decrease = function (index) {
29934 var arr = this._arr
29935 var priority = arr[index].priority
29936 var parent
29937 while (index !== 0) {
29938 parent = index >> 1
29939 if (arr[parent].priority < priority) {
29940 break
29941 }
29942 this._swap(index, parent)
29943 index = parent
29944 }
29945}
29946
29947PriorityQueue.prototype._swap = function (i, j) {
29948 var arr = this._arr
29949 var keyIndices = this._keyIndices
29950 var origArrI = arr[i]
29951 var origArrJ = arr[j]
29952 arr[i] = origArrJ
29953 arr[j] = origArrI
29954 keyIndices[origArrJ.key] = i
29955 keyIndices[origArrI.key] = j
29956}
29957
29958
29959/***/ }),
29960
29961/***/ "./node_modules/graphlibrary/lib/graph.js":
29962/*!************************************************!*\
29963 !*** ./node_modules/graphlibrary/lib/graph.js ***!
29964 \************************************************/
29965/*! no static exports found */
29966/***/ (function(module, exports, __webpack_require__) {
29967
29968const _ = __webpack_require__(/*! ./lodash */ "./node_modules/graphlibrary/lib/lodash.js")
29969
29970module.exports = Graph
29971
29972const DEFAULT_EDGE_NAME = '\x00'
29973const GRAPH_NODE = '\x00'
29974const EDGE_KEY_DELIM = '\x01'
29975
29976// Implementation notes:
29977//
29978// * Node id query functions should return string ids for the nodes
29979// * Edge id query functions should return an "edgeObj", edge object, that is
29980// composed of enough information to uniquely identify an edge: {v, w, name}.
29981// * Internally we use an "edgeId", a stringified form of the edgeObj, to
29982// reference edges. This is because we need a performant way to look these
29983// edges up and, object properties, which have string keys, are the closest
29984// we're going to get to a performant hashtable in JavaScript.
29985
29986function Graph (opts) {
29987 this._isDirected = _.has(opts, 'directed') ? opts.directed : true
29988 this._isMultigraph = _.has(opts, 'multigraph') ? opts.multigraph : false
29989 this._isCompound = _.has(opts, 'compound') ? opts.compound : false
29990
29991 // Label for the graph itself
29992 this._label = undefined
29993
29994 // Defaults to be set when creating a new node
29995 this._defaultNodeLabelFn = _.constant(undefined)
29996
29997 // Defaults to be set when creating a new edge
29998 this._defaultEdgeLabelFn = _.constant(undefined)
29999
30000 // v -> label
30001 this._nodes = {}
30002
30003 if (this._isCompound) {
30004 // v -> parent
30005 this._parent = {}
30006
30007 // v -> children
30008 this._children = {}
30009 this._children[GRAPH_NODE] = {}
30010 }
30011
30012 // v -> edgeObj
30013 this._in = {}
30014
30015 // u -> v -> Number
30016 this._preds = {}
30017
30018 // v -> edgeObj
30019 this._out = {}
30020
30021 // v -> w -> Number
30022 this._sucs = {}
30023
30024 // e -> edgeObj
30025 this._edgeObjs = {}
30026
30027 // e -> label
30028 this._edgeLabels = {}
30029}
30030
30031/* Number of nodes in the graph. Should only be changed by the implementation. */
30032Graph.prototype._nodeCount = 0
30033
30034/* Number of edges in the graph. Should only be changed by the implementation. */
30035Graph.prototype._edgeCount = 0
30036
30037/* === Graph functions ========= */
30038
30039Graph.prototype.isDirected = function () {
30040 return this._isDirected
30041}
30042
30043Graph.prototype.isMultigraph = function () {
30044 return this._isMultigraph
30045}
30046
30047Graph.prototype.isCompound = function () {
30048 return this._isCompound
30049}
30050
30051Graph.prototype.setGraph = function (label) {
30052 this._label = label
30053 return this
30054}
30055
30056Graph.prototype.graph = function () {
30057 return this._label
30058}
30059
30060/* === Node functions ========== */
30061
30062Graph.prototype.setDefaultNodeLabel = function (newDefault) {
30063 if (!_.isFunction(newDefault)) {
30064 newDefault = _.constant(newDefault)
30065 }
30066 this._defaultNodeLabelFn = newDefault
30067 return this
30068}
30069
30070Graph.prototype.nodeCount = function () {
30071 return this._nodeCount
30072}
30073
30074Graph.prototype.nodes = function () {
30075 return _.keys(this._nodes)
30076}
30077
30078Graph.prototype.sources = function () {
30079 var self = this
30080 return _.filter(this.nodes(), function (v) {
30081 return _.isEmpty(self._in[v])
30082 })
30083}
30084
30085Graph.prototype.sinks = function () {
30086 var self = this
30087 return _.filter(this.nodes(), function (v) {
30088 return _.isEmpty(self._out[v])
30089 })
30090}
30091
30092Graph.prototype.setNodes = function (vs, value) {
30093 var args = arguments
30094 var self = this
30095 _.each(vs, function (v) {
30096 if (args.length > 1) {
30097 self.setNode(v, value)
30098 } else {
30099 self.setNode(v)
30100 }
30101 })
30102 return this
30103}
30104
30105Graph.prototype.setNode = function (v, value) {
30106 if (_.has(this._nodes, v)) {
30107 if (arguments.length > 1) {
30108 this._nodes[v] = value
30109 }
30110 return this
30111 }
30112
30113 this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v)
30114 if (this._isCompound) {
30115 this._parent[v] = GRAPH_NODE
30116 this._children[v] = {}
30117 this._children[GRAPH_NODE][v] = true
30118 }
30119 this._in[v] = {}
30120 this._preds[v] = {}
30121 this._out[v] = {}
30122 this._sucs[v] = {}
30123 ++this._nodeCount
30124 return this
30125}
30126
30127Graph.prototype.node = function (v) {
30128 return this._nodes[v]
30129}
30130
30131Graph.prototype.hasNode = function (v) {
30132 return _.has(this._nodes, v)
30133}
30134
30135Graph.prototype.removeNode = function (v) {
30136 var self = this
30137 if (_.has(this._nodes, v)) {
30138 var removeEdge = function (e) { self.removeEdge(self._edgeObjs[e]) }
30139 delete this._nodes[v]
30140 if (this._isCompound) {
30141 this._removeFromParentsChildList(v)
30142 delete this._parent[v]
30143 _.each(this.children(v), function (child) {
30144 self.setParent(child)
30145 })
30146 delete this._children[v]
30147 }
30148 _.each(_.keys(this._in[v]), removeEdge)
30149 delete this._in[v]
30150 delete this._preds[v]
30151 _.each(_.keys(this._out[v]), removeEdge)
30152 delete this._out[v]
30153 delete this._sucs[v]
30154 --this._nodeCount
30155 }
30156 return this
30157}
30158
30159Graph.prototype.setParent = function (v, parent) {
30160 if (!this._isCompound) {
30161 throw new Error('Cannot set parent in a non-compound graph')
30162 }
30163
30164 if (_.isUndefined(parent)) {
30165 parent = GRAPH_NODE
30166 } else {
30167 // Coerce parent to string
30168 parent += ''
30169 for (var ancestor = parent;
30170 !_.isUndefined(ancestor);
30171 ancestor = this.parent(ancestor)) {
30172 if (ancestor === v) {
30173 throw new Error('Setting ' + parent + ' as parent of ' + v +
30174 ' would create a cycle')
30175 }
30176 }
30177
30178 this.setNode(parent)
30179 }
30180
30181 this.setNode(v)
30182 this._removeFromParentsChildList(v)
30183 this._parent[v] = parent
30184 this._children[parent][v] = true
30185 return this
30186}
30187
30188Graph.prototype._removeFromParentsChildList = function (v) {
30189 delete this._children[this._parent[v]][v]
30190}
30191
30192Graph.prototype.parent = function (v) {
30193 if (this._isCompound) {
30194 var parent = this._parent[v]
30195 if (parent !== GRAPH_NODE) {
30196 return parent
30197 }
30198 }
30199}
30200
30201Graph.prototype.children = function (v) {
30202 if (_.isUndefined(v)) {
30203 v = GRAPH_NODE
30204 }
30205
30206 if (this._isCompound) {
30207 var children = this._children[v]
30208 if (children) {
30209 return _.keys(children)
30210 }
30211 } else if (v === GRAPH_NODE) {
30212 return this.nodes()
30213 } else if (this.hasNode(v)) {
30214 return []
30215 }
30216}
30217
30218Graph.prototype.predecessors = function (v) {
30219 var predsV = this._preds[v]
30220 if (predsV) {
30221 return _.keys(predsV)
30222 }
30223}
30224
30225Graph.prototype.successors = function (v) {
30226 var sucsV = this._sucs[v]
30227 if (sucsV) {
30228 return _.keys(sucsV)
30229 }
30230}
30231
30232Graph.prototype.neighbors = function (v) {
30233 var preds = this.predecessors(v)
30234 if (preds) {
30235 return _.union(preds, this.successors(v))
30236 }
30237}
30238
30239Graph.prototype.isLeaf = function (v) {
30240 var neighbors
30241 if (this.isDirected()) {
30242 neighbors = this.successors(v)
30243 } else {
30244 neighbors = this.neighbors(v)
30245 }
30246 return neighbors.length === 0
30247}
30248
30249Graph.prototype.filterNodes = function (filter) {
30250 var copy = new this.constructor({
30251 directed: this._isDirected,
30252 multigraph: this._isMultigraph,
30253 compound: this._isCompound
30254 })
30255
30256 copy.setGraph(this.graph())
30257
30258 var self = this
30259 _.each(this._nodes, function (value, v) {
30260 if (filter(v)) {
30261 copy.setNode(v, value)
30262 }
30263 })
30264
30265 _.each(this._edgeObjs, function (e) {
30266 if (copy.hasNode(e.v) && copy.hasNode(e.w)) {
30267 copy.setEdge(e, self.edge(e))
30268 }
30269 })
30270
30271 var parents = {}
30272 function findParent (v) {
30273 var parent = self.parent(v)
30274 if (parent === undefined || copy.hasNode(parent)) {
30275 parents[v] = parent
30276 return parent
30277 } else if (parent in parents) {
30278 return parents[parent]
30279 } else {
30280 return findParent(parent)
30281 }
30282 }
30283
30284 if (this._isCompound) {
30285 _.each(copy.nodes(), function (v) {
30286 copy.setParent(v, findParent(v))
30287 })
30288 }
30289
30290 return copy
30291}
30292
30293/* === Edge functions ========== */
30294
30295Graph.prototype.setDefaultEdgeLabel = function (newDefault) {
30296 if (!_.isFunction(newDefault)) {
30297 newDefault = _.constant(newDefault)
30298 }
30299 this._defaultEdgeLabelFn = newDefault
30300 return this
30301}
30302
30303Graph.prototype.edgeCount = function () {
30304 return this._edgeCount
30305}
30306
30307Graph.prototype.edges = function () {
30308 return _.values(this._edgeObjs)
30309}
30310
30311Graph.prototype.setPath = function (vs, value) {
30312 const self = this
30313 const args = arguments
30314 _.reduce(vs, function (v, w) {
30315 if (args.length > 1) {
30316 self.setEdge(v, w, value)
30317 } else {
30318 self.setEdge(v, w)
30319 }
30320 return w
30321 })
30322 return this
30323}
30324
30325/*
30326 * setEdge(v, w, [value, [name]])
30327 * setEdge({ v, w, [name] }, [value])
30328 */
30329Graph.prototype.setEdge = function () {
30330 let v, w, name, value
30331 let valueSpecified = false
30332 const arg0 = arguments[0]
30333
30334 if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {
30335 v = arg0.v
30336 w = arg0.w
30337 name = arg0.name
30338 if (arguments.length === 2) {
30339 value = arguments[1]
30340 valueSpecified = true
30341 }
30342 } else {
30343 v = arg0
30344 w = arguments[1]
30345 name = arguments[3]
30346 if (arguments.length > 2) {
30347 value = arguments[2]
30348 valueSpecified = true
30349 }
30350 }
30351
30352 v = '' + v
30353 w = '' + w
30354 if (!_.isUndefined(name)) {
30355 name = '' + name
30356 }
30357
30358 var e = edgeArgsToId(this._isDirected, v, w, name)
30359 if (_.has(this._edgeLabels, e)) {
30360 if (valueSpecified) {
30361 this._edgeLabels[e] = value
30362 }
30363 return this
30364 }
30365
30366 if (!_.isUndefined(name) && !this._isMultigraph) {
30367 throw new Error('Cannot set a named edge when isMultigraph = false')
30368 }
30369
30370 // It didn't exist, so we need to create it.
30371 // First ensure the nodes exist.
30372 this.setNode(v)
30373 this.setNode(w)
30374
30375 this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name)
30376
30377 var edgeObj = edgeArgsToObj(this._isDirected, v, w, name)
30378 // Ensure we add undirected edges in a consistent way.
30379 v = edgeObj.v
30380 w = edgeObj.w
30381
30382 Object.freeze(edgeObj)
30383 this._edgeObjs[e] = edgeObj
30384 incrementOrInitEntry(this._preds[w], v)
30385 incrementOrInitEntry(this._sucs[v], w)
30386 this._in[w][e] = edgeObj
30387 this._out[v][e] = edgeObj
30388 this._edgeCount++
30389 return this
30390}
30391
30392Graph.prototype.edge = function (v, w, name) {
30393 var e = (arguments.length === 1
30394 ? edgeObjToId(this._isDirected, arguments[0])
30395 : edgeArgsToId(this._isDirected, v, w, name))
30396 return this._edgeLabels[e]
30397}
30398
30399Graph.prototype.hasEdge = function (v, w, name) {
30400 var e = (arguments.length === 1
30401 ? edgeObjToId(this._isDirected, arguments[0])
30402 : edgeArgsToId(this._isDirected, v, w, name))
30403 return _.has(this._edgeLabels, e)
30404}
30405
30406Graph.prototype.removeEdge = function (v, w, name) {
30407 const e = (arguments.length === 1
30408 ? edgeObjToId(this._isDirected, arguments[0])
30409 : edgeArgsToId(this._isDirected, v, w, name))
30410 const edge = this._edgeObjs[e]
30411 if (edge) {
30412 v = edge.v
30413 w = edge.w
30414 delete this._edgeLabels[e]
30415 delete this._edgeObjs[e]
30416 decrementOrRemoveEntry(this._preds[w], v)
30417 decrementOrRemoveEntry(this._sucs[v], w)
30418 delete this._in[w][e]
30419 delete this._out[v][e]
30420 this._edgeCount--
30421 }
30422 return this
30423}
30424
30425Graph.prototype.inEdges = function (v, u) {
30426 var inV = this._in[v]
30427 if (inV) {
30428 var edges = _.values(inV)
30429 if (!u) {
30430 return edges
30431 }
30432 return _.filter(edges, function (edge) { return edge.v === u })
30433 }
30434}
30435
30436Graph.prototype.outEdges = function (v, w) {
30437 var outV = this._out[v]
30438 if (outV) {
30439 var edges = _.values(outV)
30440 if (!w) {
30441 return edges
30442 }
30443 return _.filter(edges, function (edge) { return edge.w === w })
30444 }
30445}
30446
30447Graph.prototype.nodeEdges = function (v, w) {
30448 var inEdges = this.inEdges(v, w)
30449 if (inEdges) {
30450 return inEdges.concat(this.outEdges(v, w))
30451 }
30452}
30453
30454function incrementOrInitEntry (map, k) {
30455 if (map[k]) {
30456 map[k]++
30457 } else {
30458 map[k] = 1
30459 }
30460}
30461
30462function decrementOrRemoveEntry (map, k) {
30463 if (!--map[k]) { delete map[k] }
30464}
30465
30466function edgeArgsToId (isDirected, v_, w_, name) {
30467 var v = '' + v_
30468 var w = '' + w_
30469 if (!isDirected && v > w) {
30470 var tmp = v
30471 v = w
30472 w = tmp
30473 }
30474 return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM +
30475 (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name)
30476}
30477
30478function edgeArgsToObj (isDirected, v_, w_, name) {
30479 var v = '' + v_
30480 var w = '' + w_
30481 if (!isDirected && v > w) {
30482 var tmp = v
30483 v = w
30484 w = tmp
30485 }
30486 var edgeObj = { v: v, w: w }
30487 if (name) {
30488 edgeObj.name = name
30489 }
30490 return edgeObj
30491}
30492
30493function edgeObjToId (isDirected, edgeObj) {
30494 return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name)
30495}
30496
30497
30498/***/ }),
30499
30500/***/ "./node_modules/graphlibrary/lib/json.js":
30501/*!***********************************************!*\
30502 !*** ./node_modules/graphlibrary/lib/json.js ***!
30503 \***********************************************/
30504/*! no static exports found */
30505/***/ (function(module, exports, __webpack_require__) {
30506
30507const _ = __webpack_require__(/*! ./lodash */ "./node_modules/graphlibrary/lib/lodash.js")
30508const Graph = __webpack_require__(/*! ./graph */ "./node_modules/graphlibrary/lib/graph.js")
30509
30510module.exports = {
30511 write: write,
30512 read: read
30513}
30514
30515function write (g) {
30516 var json = {
30517 options: {
30518 directed: g.isDirected(),
30519 multigraph: g.isMultigraph(),
30520 compound: g.isCompound()
30521 },
30522 nodes: writeNodes(g),
30523 edges: writeEdges(g)
30524 }
30525 if (!_.isUndefined(g.graph())) {
30526 json.value = _.clone(g.graph())
30527 }
30528 return json
30529}
30530
30531function writeNodes (g) {
30532 return _.map(g.nodes(), function (v) {
30533 const nodeValue = g.node(v)
30534 const parent = g.parent(v)
30535 const node = { v: v }
30536 if (!_.isUndefined(nodeValue)) {
30537 node.value = nodeValue
30538 }
30539 if (!_.isUndefined(parent)) {
30540 node.parent = parent
30541 }
30542 return node
30543 })
30544}
30545
30546function writeEdges (g) {
30547 return _.map(g.edges(), function (e) {
30548 const edgeValue = g.edge(e)
30549 const edge = { v: e.v, w: e.w }
30550 if (!_.isUndefined(e.name)) {
30551 edge.name = e.name
30552 }
30553 if (!_.isUndefined(edgeValue)) {
30554 edge.value = edgeValue
30555 }
30556 return edge
30557 })
30558}
30559
30560function read (json) {
30561 var g = new Graph(json.options).setGraph(json.value)
30562 _.each(json.nodes, function (entry) {
30563 g.setNode(entry.v, entry.value)
30564 if (entry.parent) {
30565 g.setParent(entry.v, entry.parent)
30566 }
30567 })
30568 _.each(json.edges, function (entry) {
30569 g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value)
30570 })
30571 return g
30572}
30573
30574
30575/***/ }),
30576
30577/***/ "./node_modules/graphlibrary/lib/lodash.js":
30578/*!*************************************************!*\
30579 !*** ./node_modules/graphlibrary/lib/lodash.js ***!
30580 \*************************************************/
30581/*! no static exports found */
30582/***/ (function(module, exports, __webpack_require__) {
30583
30584/* global window */
30585
30586var lodash
30587
30588if (true) {
30589 try {
30590 lodash = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js")
30591 } catch (e) {}
30592}
30593
30594if (!lodash) {
30595 lodash = window._
30596}
30597
30598module.exports = lodash
30599
30600
30601/***/ }),
30602
30603/***/ "./node_modules/he/he.js":
30604/*!*******************************!*\
30605 !*** ./node_modules/he/he.js ***!
30606 \*******************************/
30607/*! no static exports found */
30608/***/ (function(module, exports, __webpack_require__) {
30609
30610/* WEBPACK VAR INJECTION */(function(module, global) {/*! https://mths.be/he v1.2.0 by @mathias | MIT license */
30611;(function(root) {
30612
30613 // Detect free variables `exports`.
30614 var freeExports = true && exports;
30615
30616 // Detect free variable `module`.
30617 var freeModule = true && module &&
30618 module.exports == freeExports && module;
30619
30620 // Detect free variable `global`, from Node.js or Browserified code,
30621 // and use it as `root`.
30622 var freeGlobal = typeof global == 'object' && global;
30623 if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
30624 root = freeGlobal;
30625 }
30626
30627 /*--------------------------------------------------------------------------*/
30628
30629 // All astral symbols.
30630 var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
30631 // All ASCII symbols (not just printable ASCII) except those listed in the
30632 // first column of the overrides table.
30633 // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides
30634 var regexAsciiWhitelist = /[\x01-\x7F]/g;
30635 // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
30636 // code points listed in the first column of the overrides table on
30637 // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.
30638 var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
30639
30640 var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;
30641 var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'};
30642
30643 var regexEscape = /["&'<>`]/g;
30644 var escapeMap = {
30645 '"': '&quot;',
30646 '&': '&amp;',
30647 '\'': '&#x27;',
30648 '<': '&lt;',
30649 // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
30650 // following is not strictly necessary unless it’s part of a tag or an
30651 // unquoted attribute value. We’re only escaping it to support those
30652 // situations, and for XML support.
30653 '>': '&gt;',
30654 // In Internet Explorer ≤ 8, the backtick character can be used
30655 // to break out of (un)quoted attribute values or HTML comments.
30656 // See http://html5sec.org/#102, http://html5sec.org/#108, and
30657 // http://html5sec.org/#133.
30658 '`': '&#x60;'
30659 };
30660
30661 var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
30662 var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
30663 var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;
30664 var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'};
30665 var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'};
30666 var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'};
30667 var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];
30668
30669 /*--------------------------------------------------------------------------*/
30670
30671 var stringFromCharCode = String.fromCharCode;
30672
30673 var object = {};
30674 var hasOwnProperty = object.hasOwnProperty;
30675 var has = function(object, propertyName) {
30676 return hasOwnProperty.call(object, propertyName);
30677 };
30678
30679 var contains = function(array, value) {
30680 var index = -1;
30681 var length = array.length;
30682 while (++index < length) {
30683 if (array[index] == value) {
30684 return true;
30685 }
30686 }
30687 return false;
30688 };
30689
30690 var merge = function(options, defaults) {
30691 if (!options) {
30692 return defaults;
30693 }
30694 var result = {};
30695 var key;
30696 for (key in defaults) {
30697 // A `hasOwnProperty` check is not needed here, since only recognized
30698 // option names are used anyway. Any others are ignored.
30699 result[key] = has(options, key) ? options[key] : defaults[key];
30700 }
30701 return result;
30702 };
30703
30704 // Modified version of `ucs2encode`; see https://mths.be/punycode.
30705 var codePointToSymbol = function(codePoint, strict) {
30706 var output = '';
30707 if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
30708 // See issue #4:
30709 // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
30710 // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
30711 // REPLACEMENT CHARACTER.”
30712 if (strict) {
30713 parseError('character reference outside the permissible Unicode range');
30714 }
30715 return '\uFFFD';
30716 }
30717 if (has(decodeMapNumeric, codePoint)) {
30718 if (strict) {
30719 parseError('disallowed character reference');
30720 }
30721 return decodeMapNumeric[codePoint];
30722 }
30723 if (strict && contains(invalidReferenceCodePoints, codePoint)) {
30724 parseError('disallowed character reference');
30725 }
30726 if (codePoint > 0xFFFF) {
30727 codePoint -= 0x10000;
30728 output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);
30729 codePoint = 0xDC00 | codePoint & 0x3FF;
30730 }
30731 output += stringFromCharCode(codePoint);
30732 return output;
30733 };
30734
30735 var hexEscape = function(codePoint) {
30736 return '&#x' + codePoint.toString(16).toUpperCase() + ';';
30737 };
30738
30739 var decEscape = function(codePoint) {
30740 return '&#' + codePoint + ';';
30741 };
30742
30743 var parseError = function(message) {
30744 throw Error('Parse error: ' + message);
30745 };
30746
30747 /*--------------------------------------------------------------------------*/
30748
30749 var encode = function(string, options) {
30750 options = merge(options, encode.options);
30751 var strict = options.strict;
30752 if (strict && regexInvalidRawCodePoint.test(string)) {
30753 parseError('forbidden code point');
30754 }
30755 var encodeEverything = options.encodeEverything;
30756 var useNamedReferences = options.useNamedReferences;
30757 var allowUnsafeSymbols = options.allowUnsafeSymbols;
30758 var escapeCodePoint = options.decimal ? decEscape : hexEscape;
30759
30760 var escapeBmpSymbol = function(symbol) {
30761 return escapeCodePoint(symbol.charCodeAt(0));
30762 };
30763
30764 if (encodeEverything) {
30765 // Encode ASCII symbols.
30766 string = string.replace(regexAsciiWhitelist, function(symbol) {
30767 // Use named references if requested & possible.
30768 if (useNamedReferences && has(encodeMap, symbol)) {
30769 return '&' + encodeMap[symbol] + ';';
30770 }
30771 return escapeBmpSymbol(symbol);
30772 });
30773 // Shorten a few escapes that represent two symbols, of which at least one
30774 // is within the ASCII range.
30775 if (useNamedReferences) {
30776 string = string
30777 .replace(/&gt;\u20D2/g, '&nvgt;')
30778 .replace(/&lt;\u20D2/g, '&nvlt;')
30779 .replace(/&#x66;&#x6A;/g, '&fjlig;');
30780 }
30781 // Encode non-ASCII symbols.
30782 if (useNamedReferences) {
30783 // Encode non-ASCII symbols that can be replaced with a named reference.
30784 string = string.replace(regexEncodeNonAscii, function(string) {
30785 // Note: there is no need to check `has(encodeMap, string)` here.
30786 return '&' + encodeMap[string] + ';';
30787 });
30788 }
30789 // Note: any remaining non-ASCII symbols are handled outside of the `if`.
30790 } else if (useNamedReferences) {
30791 // Apply named character references.
30792 // Encode `<>"'&` using named character references.
30793 if (!allowUnsafeSymbols) {
30794 string = string.replace(regexEscape, function(string) {
30795 return '&' + encodeMap[string] + ';'; // no need to check `has()` here
30796 });
30797 }
30798 // Shorten escapes that represent two symbols, of which at least one is
30799 // `<>"'&`.
30800 string = string
30801 .replace(/&gt;\u20D2/g, '&nvgt;')
30802 .replace(/&lt;\u20D2/g, '&nvlt;');
30803 // Encode non-ASCII symbols that can be replaced with a named reference.
30804 string = string.replace(regexEncodeNonAscii, function(string) {
30805 // Note: there is no need to check `has(encodeMap, string)` here.
30806 return '&' + encodeMap[string] + ';';
30807 });
30808 } else if (!allowUnsafeSymbols) {
30809 // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
30810 // using named character references.
30811 string = string.replace(regexEscape, escapeBmpSymbol);
30812 }
30813 return string
30814 // Encode astral symbols.
30815 .replace(regexAstralSymbols, function($0) {
30816 // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
30817 var high = $0.charCodeAt(0);
30818 var low = $0.charCodeAt(1);
30819 var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
30820 return escapeCodePoint(codePoint);
30821 })
30822 // Encode any remaining BMP symbols that are not printable ASCII symbols
30823 // using a hexadecimal escape.
30824 .replace(regexBmpWhitelist, escapeBmpSymbol);
30825 };
30826 // Expose default options (so they can be overridden globally).
30827 encode.options = {
30828 'allowUnsafeSymbols': false,
30829 'encodeEverything': false,
30830 'strict': false,
30831 'useNamedReferences': false,
30832 'decimal' : false
30833 };
30834
30835 var decode = function(html, options) {
30836 options = merge(options, decode.options);
30837 var strict = options.strict;
30838 if (strict && regexInvalidEntity.test(html)) {
30839 parseError('malformed character reference');
30840 }
30841 return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {
30842 var codePoint;
30843 var semicolon;
30844 var decDigits;
30845 var hexDigits;
30846 var reference;
30847 var next;
30848
30849 if ($1) {
30850 reference = $1;
30851 // Note: there is no need to check `has(decodeMap, reference)`.
30852 return decodeMap[reference];
30853 }
30854
30855 if ($2) {
30856 // Decode named character references without trailing `;`, e.g. `&amp`.
30857 // This is only a parse error if it gets converted to `&`, or if it is
30858 // followed by `=` in an attribute context.
30859 reference = $2;
30860 next = $3;
30861 if (next && options.isAttributeValue) {
30862 if (strict && next == '=') {
30863 parseError('`&` did not start a character reference');
30864 }
30865 return $0;
30866 } else {
30867 if (strict) {
30868 parseError(
30869 'named character reference was not terminated by a semicolon'
30870 );
30871 }
30872 // Note: there is no need to check `has(decodeMapLegacy, reference)`.
30873 return decodeMapLegacy[reference] + (next || '');
30874 }
30875 }
30876
30877 if ($4) {
30878 // Decode decimal escapes, e.g. `&#119558;`.
30879 decDigits = $4;
30880 semicolon = $5;
30881 if (strict && !semicolon) {
30882 parseError('character reference was not terminated by a semicolon');
30883 }
30884 codePoint = parseInt(decDigits, 10);
30885 return codePointToSymbol(codePoint, strict);
30886 }
30887
30888 if ($6) {
30889 // Decode hexadecimal escapes, e.g. `&#x1D306;`.
30890 hexDigits = $6;
30891 semicolon = $7;
30892 if (strict && !semicolon) {
30893 parseError('character reference was not terminated by a semicolon');
30894 }
30895 codePoint = parseInt(hexDigits, 16);
30896 return codePointToSymbol(codePoint, strict);
30897 }
30898
30899 // If we’re still here, `if ($7)` is implied; it’s an ambiguous
30900 // ampersand for sure. https://mths.be/notes/ambiguous-ampersands
30901 if (strict) {
30902 parseError(
30903 'named character reference was not terminated by a semicolon'
30904 );
30905 }
30906 return $0;
30907 });
30908 };
30909 // Expose default options (so they can be overridden globally).
30910 decode.options = {
30911 'isAttributeValue': false,
30912 'strict': false
30913 };
30914
30915 var escape = function(string) {
30916 return string.replace(regexEscape, function($0) {
30917 // Note: there is no need to check `has(escapeMap, $0)` here.
30918 return escapeMap[$0];
30919 });
30920 };
30921
30922 /*--------------------------------------------------------------------------*/
30923
30924 var he = {
30925 'version': '1.2.0',
30926 'encode': encode,
30927 'decode': decode,
30928 'escape': escape,
30929 'unescape': decode
30930 };
30931
30932 // Some AMD build optimizers, like r.js, check for specific condition patterns
30933 // like the following:
30934 if (
30935 typeof define == 'function' &&
30936 typeof define.amd == 'object' &&
30937 define.amd
30938 ) {
30939 define(function() {
30940 return he;
30941 });
30942 } else if (freeExports && !freeExports.nodeType) {
30943 if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+
30944 freeModule.exports = he;
30945 } else { // in Narwhal or RingoJS v0.7.0-
30946 for (var key in he) {
30947 has(he, key) && (freeExports[key] = he[key]);
30948 }
30949 }
30950 } else { // in Rhino or a web browser
30951 root.he = he;
30952 }
30953
30954}(this));
30955
30956/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module), __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
30957
30958/***/ }),
30959
30960/***/ "./node_modules/is-regexp/index.js":
30961/*!*****************************************!*\
30962 !*** ./node_modules/is-regexp/index.js ***!
30963 \*****************************************/
30964/*! no static exports found */
30965/***/ (function(module, exports, __webpack_require__) {
30966
30967"use strict";
30968
30969module.exports = function (re) {
30970 return Object.prototype.toString.call(re) === '[object RegExp]';
30971};
30972
30973
30974/***/ }),
30975
30976/***/ "./node_modules/lodash/lodash.js":
30977/*!***************************************!*\
30978 !*** ./node_modules/lodash/lodash.js ***!
30979 \***************************************/
30980/*! no static exports found */
30981/***/ (function(module, exports, __webpack_require__) {
30982
30983/* WEBPACK VAR INJECTION */(function(global, module) {/**
30984 * @license
30985 * Lodash <https://lodash.com/>
30986 * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
30987 * Released under MIT license <https://lodash.com/license>
30988 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
30989 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
30990 */
30991;(function() {
30992
30993 /** Used as a safe reference for `undefined` in pre-ES5 environments. */
30994 var undefined;
30995
30996 /** Used as the semantic version number. */
30997 var VERSION = '4.17.13';
30998
30999 /** Used as the size to enable large array optimizations. */
31000 var LARGE_ARRAY_SIZE = 200;
31001
31002 /** Error message constants. */
31003 var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',
31004 FUNC_ERROR_TEXT = 'Expected a function';
31005
31006 /** Used to stand-in for `undefined` hash values. */
31007 var HASH_UNDEFINED = '__lodash_hash_undefined__';
31008
31009 /** Used as the maximum memoize cache size. */
31010 var MAX_MEMOIZE_SIZE = 500;
31011
31012 /** Used as the internal argument placeholder. */
31013 var PLACEHOLDER = '__lodash_placeholder__';
31014
31015 /** Used to compose bitmasks for cloning. */
31016 var CLONE_DEEP_FLAG = 1,
31017 CLONE_FLAT_FLAG = 2,
31018 CLONE_SYMBOLS_FLAG = 4;
31019
31020 /** Used to compose bitmasks for value comparisons. */
31021 var COMPARE_PARTIAL_FLAG = 1,
31022 COMPARE_UNORDERED_FLAG = 2;
31023
31024 /** Used to compose bitmasks for function metadata. */
31025 var WRAP_BIND_FLAG = 1,
31026 WRAP_BIND_KEY_FLAG = 2,
31027 WRAP_CURRY_BOUND_FLAG = 4,
31028 WRAP_CURRY_FLAG = 8,
31029 WRAP_CURRY_RIGHT_FLAG = 16,
31030 WRAP_PARTIAL_FLAG = 32,
31031 WRAP_PARTIAL_RIGHT_FLAG = 64,
31032 WRAP_ARY_FLAG = 128,
31033 WRAP_REARG_FLAG = 256,
31034 WRAP_FLIP_FLAG = 512;
31035
31036 /** Used as default options for `_.truncate`. */
31037 var DEFAULT_TRUNC_LENGTH = 30,
31038 DEFAULT_TRUNC_OMISSION = '...';
31039
31040 /** Used to detect hot functions by number of calls within a span of milliseconds. */
31041 var HOT_COUNT = 800,
31042 HOT_SPAN = 16;
31043
31044 /** Used to indicate the type of lazy iteratees. */
31045 var LAZY_FILTER_FLAG = 1,
31046 LAZY_MAP_FLAG = 2,
31047 LAZY_WHILE_FLAG = 3;
31048
31049 /** Used as references for various `Number` constants. */
31050 var INFINITY = 1 / 0,
31051 MAX_SAFE_INTEGER = 9007199254740991,
31052 MAX_INTEGER = 1.7976931348623157e+308,
31053 NAN = 0 / 0;
31054
31055 /** Used as references for the maximum length and index of an array. */
31056 var MAX_ARRAY_LENGTH = 4294967295,
31057 MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,
31058 HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
31059
31060 /** Used to associate wrap methods with their bit flags. */
31061 var wrapFlags = [
31062 ['ary', WRAP_ARY_FLAG],
31063 ['bind', WRAP_BIND_FLAG],
31064 ['bindKey', WRAP_BIND_KEY_FLAG],
31065 ['curry', WRAP_CURRY_FLAG],
31066 ['curryRight', WRAP_CURRY_RIGHT_FLAG],
31067 ['flip', WRAP_FLIP_FLAG],
31068 ['partial', WRAP_PARTIAL_FLAG],
31069 ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],
31070 ['rearg', WRAP_REARG_FLAG]
31071 ];
31072
31073 /** `Object#toString` result references. */
31074 var argsTag = '[object Arguments]',
31075 arrayTag = '[object Array]',
31076 asyncTag = '[object AsyncFunction]',
31077 boolTag = '[object Boolean]',
31078 dateTag = '[object Date]',
31079 domExcTag = '[object DOMException]',
31080 errorTag = '[object Error]',
31081 funcTag = '[object Function]',
31082 genTag = '[object GeneratorFunction]',
31083 mapTag = '[object Map]',
31084 numberTag = '[object Number]',
31085 nullTag = '[object Null]',
31086 objectTag = '[object Object]',
31087 promiseTag = '[object Promise]',
31088 proxyTag = '[object Proxy]',
31089 regexpTag = '[object RegExp]',
31090 setTag = '[object Set]',
31091 stringTag = '[object String]',
31092 symbolTag = '[object Symbol]',
31093 undefinedTag = '[object Undefined]',
31094 weakMapTag = '[object WeakMap]',
31095 weakSetTag = '[object WeakSet]';
31096
31097 var arrayBufferTag = '[object ArrayBuffer]',
31098 dataViewTag = '[object DataView]',
31099 float32Tag = '[object Float32Array]',
31100 float64Tag = '[object Float64Array]',
31101 int8Tag = '[object Int8Array]',
31102 int16Tag = '[object Int16Array]',
31103 int32Tag = '[object Int32Array]',
31104 uint8Tag = '[object Uint8Array]',
31105 uint8ClampedTag = '[object Uint8ClampedArray]',
31106 uint16Tag = '[object Uint16Array]',
31107 uint32Tag = '[object Uint32Array]';
31108
31109 /** Used to match empty string literals in compiled template source. */
31110 var reEmptyStringLeading = /\b__p \+= '';/g,
31111 reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
31112 reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
31113
31114 /** Used to match HTML entities and HTML characters. */
31115 var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,
31116 reUnescapedHtml = /[&<>"']/g,
31117 reHasEscapedHtml = RegExp(reEscapedHtml.source),
31118 reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
31119
31120 /** Used to match template delimiters. */
31121 var reEscape = /<%-([\s\S]+?)%>/g,
31122 reEvaluate = /<%([\s\S]+?)%>/g,
31123 reInterpolate = /<%=([\s\S]+?)%>/g;
31124
31125 /** Used to match property names within property paths. */
31126 var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
31127 reIsPlainProp = /^\w*$/,
31128 rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
31129
31130 /**
31131 * Used to match `RegExp`
31132 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
31133 */
31134 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
31135 reHasRegExpChar = RegExp(reRegExpChar.source);
31136
31137 /** Used to match leading and trailing whitespace. */
31138 var reTrim = /^\s+|\s+$/g,
31139 reTrimStart = /^\s+/,
31140 reTrimEnd = /\s+$/;
31141
31142 /** Used to match wrap detail comments. */
31143 var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,
31144 reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/,
31145 reSplitDetails = /,? & /;
31146
31147 /** Used to match words composed of alphanumeric characters. */
31148 var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
31149
31150 /** Used to match backslashes in property paths. */
31151 var reEscapeChar = /\\(\\)?/g;
31152
31153 /**
31154 * Used to match
31155 * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
31156 */
31157 var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
31158
31159 /** Used to match `RegExp` flags from their coerced string values. */
31160 var reFlags = /\w*$/;
31161
31162 /** Used to detect bad signed hexadecimal string values. */
31163 var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
31164
31165 /** Used to detect binary string values. */
31166 var reIsBinary = /^0b[01]+$/i;
31167
31168 /** Used to detect host constructors (Safari). */
31169 var reIsHostCtor = /^\[object .+?Constructor\]$/;
31170
31171 /** Used to detect octal string values. */
31172 var reIsOctal = /^0o[0-7]+$/i;
31173
31174 /** Used to detect unsigned integer values. */
31175 var reIsUint = /^(?:0|[1-9]\d*)$/;
31176
31177 /** Used to match Latin Unicode letters (excluding mathematical operators). */
31178 var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
31179
31180 /** Used to ensure capturing order of template delimiters. */
31181 var reNoMatch = /($^)/;
31182
31183 /** Used to match unescaped characters in compiled string literals. */
31184 var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
31185
31186 /** Used to compose unicode character classes. */
31187 var rsAstralRange = '\\ud800-\\udfff',
31188 rsComboMarksRange = '\\u0300-\\u036f',
31189 reComboHalfMarksRange = '\\ufe20-\\ufe2f',
31190 rsComboSymbolsRange = '\\u20d0-\\u20ff',
31191 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
31192 rsDingbatRange = '\\u2700-\\u27bf',
31193 rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
31194 rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
31195 rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf',
31196 rsPunctuationRange = '\\u2000-\\u206f',
31197 rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000',
31198 rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde',
31199 rsVarRange = '\\ufe0e\\ufe0f',
31200 rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
31201
31202 /** Used to compose unicode capture groups. */
31203 var rsApos = "['\u2019]",
31204 rsAstral = '[' + rsAstralRange + ']',
31205 rsBreak = '[' + rsBreakRange + ']',
31206 rsCombo = '[' + rsComboRange + ']',
31207 rsDigits = '\\d+',
31208 rsDingbat = '[' + rsDingbatRange + ']',
31209 rsLower = '[' + rsLowerRange + ']',
31210 rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',
31211 rsFitz = '\\ud83c[\\udffb-\\udfff]',
31212 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
31213 rsNonAstral = '[^' + rsAstralRange + ']',
31214 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
31215 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
31216 rsUpper = '[' + rsUpperRange + ']',
31217 rsZWJ = '\\u200d';
31218
31219 /** Used to compose unicode regexes. */
31220 var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',
31221 rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',
31222 rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
31223 rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
31224 reOptMod = rsModifier + '?',
31225 rsOptVar = '[' + rsVarRange + ']?',
31226 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
31227 rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])',
31228 rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])',
31229 rsSeq = rsOptVar + reOptMod + rsOptJoin,
31230 rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
31231 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
31232
31233 /** Used to match apostrophes. */
31234 var reApos = RegExp(rsApos, 'g');
31235
31236 /**
31237 * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
31238 * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
31239 */
31240 var reComboMark = RegExp(rsCombo, 'g');
31241
31242 /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
31243 var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
31244
31245 /** Used to match complex or compound words. */
31246 var reUnicodeWord = RegExp([
31247 rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
31248 rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',
31249 rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,
31250 rsUpper + '+' + rsOptContrUpper,
31251 rsOrdUpper,
31252 rsOrdLower,
31253 rsDigits,
31254 rsEmoji
31255 ].join('|'), 'g');
31256
31257 /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
31258 var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
31259
31260 /** Used to detect strings that need a more robust regexp to match words. */
31261 var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
31262
31263 /** Used to assign default `context` object properties. */
31264 var contextProps = [
31265 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',
31266 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',
31267 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',
31268 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
31269 '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'
31270 ];
31271
31272 /** Used to make template sourceURLs easier to identify. */
31273 var templateCounter = -1;
31274
31275 /** Used to identify `toStringTag` values of typed arrays. */
31276 var typedArrayTags = {};
31277 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
31278 typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
31279 typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
31280 typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
31281 typedArrayTags[uint32Tag] = true;
31282 typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
31283 typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
31284 typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
31285 typedArrayTags[errorTag] = typedArrayTags[funcTag] =
31286 typedArrayTags[mapTag] = typedArrayTags[numberTag] =
31287 typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
31288 typedArrayTags[setTag] = typedArrayTags[stringTag] =
31289 typedArrayTags[weakMapTag] = false;
31290
31291 /** Used to identify `toStringTag` values supported by `_.clone`. */
31292 var cloneableTags = {};
31293 cloneableTags[argsTag] = cloneableTags[arrayTag] =
31294 cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
31295 cloneableTags[boolTag] = cloneableTags[dateTag] =
31296 cloneableTags[float32Tag] = cloneableTags[float64Tag] =
31297 cloneableTags[int8Tag] = cloneableTags[int16Tag] =
31298 cloneableTags[int32Tag] = cloneableTags[mapTag] =
31299 cloneableTags[numberTag] = cloneableTags[objectTag] =
31300 cloneableTags[regexpTag] = cloneableTags[setTag] =
31301 cloneableTags[stringTag] = cloneableTags[symbolTag] =
31302 cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
31303 cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
31304 cloneableTags[errorTag] = cloneableTags[funcTag] =
31305 cloneableTags[weakMapTag] = false;
31306
31307 /** Used to map Latin Unicode letters to basic Latin letters. */
31308 var deburredLetters = {
31309 // Latin-1 Supplement block.
31310 '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A',
31311 '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a',
31312 '\xc7': 'C', '\xe7': 'c',
31313 '\xd0': 'D', '\xf0': 'd',
31314 '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E',
31315 '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e',
31316 '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I',
31317 '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i',
31318 '\xd1': 'N', '\xf1': 'n',
31319 '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O',
31320 '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o',
31321 '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U',
31322 '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u',
31323 '\xdd': 'Y', '\xfd': 'y', '\xff': 'y',
31324 '\xc6': 'Ae', '\xe6': 'ae',
31325 '\xde': 'Th', '\xfe': 'th',
31326 '\xdf': 'ss',
31327 // Latin Extended-A block.
31328 '\u0100': 'A', '\u0102': 'A', '\u0104': 'A',
31329 '\u0101': 'a', '\u0103': 'a', '\u0105': 'a',
31330 '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C',
31331 '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c',
31332 '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd',
31333 '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E',
31334 '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e',
31335 '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G',
31336 '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g',
31337 '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h',
31338 '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I',
31339 '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i',
31340 '\u0134': 'J', '\u0135': 'j',
31341 '\u0136': 'K', '\u0137': 'k', '\u0138': 'k',
31342 '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L',
31343 '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l',
31344 '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N',
31345 '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n',
31346 '\u014c': 'O', '\u014e': 'O', '\u0150': 'O',
31347 '\u014d': 'o', '\u014f': 'o', '\u0151': 'o',
31348 '\u0154': 'R', '\u0156': 'R', '\u0158': 'R',
31349 '\u0155': 'r', '\u0157': 'r', '\u0159': 'r',
31350 '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S',
31351 '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's',
31352 '\u0162': 'T', '\u0164': 'T', '\u0166': 'T',
31353 '\u0163': 't', '\u0165': 't', '\u0167': 't',
31354 '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U',
31355 '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u',
31356 '\u0174': 'W', '\u0175': 'w',
31357 '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y',
31358 '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z',
31359 '\u017a': 'z', '\u017c': 'z', '\u017e': 'z',
31360 '\u0132': 'IJ', '\u0133': 'ij',
31361 '\u0152': 'Oe', '\u0153': 'oe',
31362 '\u0149': "'n", '\u017f': 's'
31363 };
31364
31365 /** Used to map characters to HTML entities. */
31366 var htmlEscapes = {
31367 '&': '&amp;',
31368 '<': '&lt;',
31369 '>': '&gt;',
31370 '"': '&quot;',
31371 "'": '&#39;'
31372 };
31373
31374 /** Used to map HTML entities to characters. */
31375 var htmlUnescapes = {
31376 '&amp;': '&',
31377 '&lt;': '<',
31378 '&gt;': '>',
31379 '&quot;': '"',
31380 '&#39;': "'"
31381 };
31382
31383 /** Used to escape characters for inclusion in compiled string literals. */
31384 var stringEscapes = {
31385 '\\': '\\',
31386 "'": "'",
31387 '\n': 'n',
31388 '\r': 'r',
31389 '\u2028': 'u2028',
31390 '\u2029': 'u2029'
31391 };
31392
31393 /** Built-in method references without a dependency on `root`. */
31394 var freeParseFloat = parseFloat,
31395 freeParseInt = parseInt;
31396
31397 /** Detect free variable `global` from Node.js. */
31398 var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
31399
31400 /** Detect free variable `self`. */
31401 var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
31402
31403 /** Used as a reference to the global object. */
31404 var root = freeGlobal || freeSelf || Function('return this')();
31405
31406 /** Detect free variable `exports`. */
31407 var freeExports = true && exports && !exports.nodeType && exports;
31408
31409 /** Detect free variable `module`. */
31410 var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
31411
31412 /** Detect the popular CommonJS extension `module.exports`. */
31413 var moduleExports = freeModule && freeModule.exports === freeExports;
31414
31415 /** Detect free variable `process` from Node.js. */
31416 var freeProcess = moduleExports && freeGlobal.process;
31417
31418 /** Used to access faster Node.js helpers. */
31419 var nodeUtil = (function() {
31420 try {
31421 // Use `util.types` for Node.js 10+.
31422 var types = freeModule && freeModule.require && freeModule.require('util').types;
31423
31424 if (types) {
31425 return types;
31426 }
31427
31428 // Legacy `process.binding('util')` for Node.js < 10.
31429 return freeProcess && freeProcess.binding && freeProcess.binding('util');
31430 } catch (e) {}
31431 }());
31432
31433 /* Node.js helper references. */
31434 var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,
31435 nodeIsDate = nodeUtil && nodeUtil.isDate,
31436 nodeIsMap = nodeUtil && nodeUtil.isMap,
31437 nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,
31438 nodeIsSet = nodeUtil && nodeUtil.isSet,
31439 nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
31440
31441 /*--------------------------------------------------------------------------*/
31442
31443 /**
31444 * A faster alternative to `Function#apply`, this function invokes `func`
31445 * with the `this` binding of `thisArg` and the arguments of `args`.
31446 *
31447 * @private
31448 * @param {Function} func The function to invoke.
31449 * @param {*} thisArg The `this` binding of `func`.
31450 * @param {Array} args The arguments to invoke `func` with.
31451 * @returns {*} Returns the result of `func`.
31452 */
31453 function apply(func, thisArg, args) {
31454 switch (args.length) {
31455 case 0: return func.call(thisArg);
31456 case 1: return func.call(thisArg, args[0]);
31457 case 2: return func.call(thisArg, args[0], args[1]);
31458 case 3: return func.call(thisArg, args[0], args[1], args[2]);
31459 }
31460 return func.apply(thisArg, args);
31461 }
31462
31463 /**
31464 * A specialized version of `baseAggregator` for arrays.
31465 *
31466 * @private
31467 * @param {Array} [array] The array to iterate over.
31468 * @param {Function} setter The function to set `accumulator` values.
31469 * @param {Function} iteratee The iteratee to transform keys.
31470 * @param {Object} accumulator The initial aggregated object.
31471 * @returns {Function} Returns `accumulator`.
31472 */
31473 function arrayAggregator(array, setter, iteratee, accumulator) {
31474 var index = -1,
31475 length = array == null ? 0 : array.length;
31476
31477 while (++index < length) {
31478 var value = array[index];
31479 setter(accumulator, value, iteratee(value), array);
31480 }
31481 return accumulator;
31482 }
31483
31484 /**
31485 * A specialized version of `_.forEach` for arrays without support for
31486 * iteratee shorthands.
31487 *
31488 * @private
31489 * @param {Array} [array] The array to iterate over.
31490 * @param {Function} iteratee The function invoked per iteration.
31491 * @returns {Array} Returns `array`.
31492 */
31493 function arrayEach(array, iteratee) {
31494 var index = -1,
31495 length = array == null ? 0 : array.length;
31496
31497 while (++index < length) {
31498 if (iteratee(array[index], index, array) === false) {
31499 break;
31500 }
31501 }
31502 return array;
31503 }
31504
31505 /**
31506 * A specialized version of `_.forEachRight` for arrays without support for
31507 * iteratee shorthands.
31508 *
31509 * @private
31510 * @param {Array} [array] The array to iterate over.
31511 * @param {Function} iteratee The function invoked per iteration.
31512 * @returns {Array} Returns `array`.
31513 */
31514 function arrayEachRight(array, iteratee) {
31515 var length = array == null ? 0 : array.length;
31516
31517 while (length--) {
31518 if (iteratee(array[length], length, array) === false) {
31519 break;
31520 }
31521 }
31522 return array;
31523 }
31524
31525 /**
31526 * A specialized version of `_.every` for arrays without support for
31527 * iteratee shorthands.
31528 *
31529 * @private
31530 * @param {Array} [array] The array to iterate over.
31531 * @param {Function} predicate The function invoked per iteration.
31532 * @returns {boolean} Returns `true` if all elements pass the predicate check,
31533 * else `false`.
31534 */
31535 function arrayEvery(array, predicate) {
31536 var index = -1,
31537 length = array == null ? 0 : array.length;
31538
31539 while (++index < length) {
31540 if (!predicate(array[index], index, array)) {
31541 return false;
31542 }
31543 }
31544 return true;
31545 }
31546
31547 /**
31548 * A specialized version of `_.filter` for arrays without support for
31549 * iteratee shorthands.
31550 *
31551 * @private
31552 * @param {Array} [array] The array to iterate over.
31553 * @param {Function} predicate The function invoked per iteration.
31554 * @returns {Array} Returns the new filtered array.
31555 */
31556 function arrayFilter(array, predicate) {
31557 var index = -1,
31558 length = array == null ? 0 : array.length,
31559 resIndex = 0,
31560 result = [];
31561
31562 while (++index < length) {
31563 var value = array[index];
31564 if (predicate(value, index, array)) {
31565 result[resIndex++] = value;
31566 }
31567 }
31568 return result;
31569 }
31570
31571 /**
31572 * A specialized version of `_.includes` for arrays without support for
31573 * specifying an index to search from.
31574 *
31575 * @private
31576 * @param {Array} [array] The array to inspect.
31577 * @param {*} target The value to search for.
31578 * @returns {boolean} Returns `true` if `target` is found, else `false`.
31579 */
31580 function arrayIncludes(array, value) {
31581 var length = array == null ? 0 : array.length;
31582 return !!length && baseIndexOf(array, value, 0) > -1;
31583 }
31584
31585 /**
31586 * This function is like `arrayIncludes` except that it accepts a comparator.
31587 *
31588 * @private
31589 * @param {Array} [array] The array to inspect.
31590 * @param {*} target The value to search for.
31591 * @param {Function} comparator The comparator invoked per element.
31592 * @returns {boolean} Returns `true` if `target` is found, else `false`.
31593 */
31594 function arrayIncludesWith(array, value, comparator) {
31595 var index = -1,
31596 length = array == null ? 0 : array.length;
31597
31598 while (++index < length) {
31599 if (comparator(value, array[index])) {
31600 return true;
31601 }
31602 }
31603 return false;
31604 }
31605
31606 /**
31607 * A specialized version of `_.map` for arrays without support for iteratee
31608 * shorthands.
31609 *
31610 * @private
31611 * @param {Array} [array] The array to iterate over.
31612 * @param {Function} iteratee The function invoked per iteration.
31613 * @returns {Array} Returns the new mapped array.
31614 */
31615 function arrayMap(array, iteratee) {
31616 var index = -1,
31617 length = array == null ? 0 : array.length,
31618 result = Array(length);
31619
31620 while (++index < length) {
31621 result[index] = iteratee(array[index], index, array);
31622 }
31623 return result;
31624 }
31625
31626 /**
31627 * Appends the elements of `values` to `array`.
31628 *
31629 * @private
31630 * @param {Array} array The array to modify.
31631 * @param {Array} values The values to append.
31632 * @returns {Array} Returns `array`.
31633 */
31634 function arrayPush(array, values) {
31635 var index = -1,
31636 length = values.length,
31637 offset = array.length;
31638
31639 while (++index < length) {
31640 array[offset + index] = values[index];
31641 }
31642 return array;
31643 }
31644
31645 /**
31646 * A specialized version of `_.reduce` for arrays without support for
31647 * iteratee shorthands.
31648 *
31649 * @private
31650 * @param {Array} [array] The array to iterate over.
31651 * @param {Function} iteratee The function invoked per iteration.
31652 * @param {*} [accumulator] The initial value.
31653 * @param {boolean} [initAccum] Specify using the first element of `array` as
31654 * the initial value.
31655 * @returns {*} Returns the accumulated value.
31656 */
31657 function arrayReduce(array, iteratee, accumulator, initAccum) {
31658 var index = -1,
31659 length = array == null ? 0 : array.length;
31660
31661 if (initAccum && length) {
31662 accumulator = array[++index];
31663 }
31664 while (++index < length) {
31665 accumulator = iteratee(accumulator, array[index], index, array);
31666 }
31667 return accumulator;
31668 }
31669
31670 /**
31671 * A specialized version of `_.reduceRight` for arrays without support for
31672 * iteratee shorthands.
31673 *
31674 * @private
31675 * @param {Array} [array] The array to iterate over.
31676 * @param {Function} iteratee The function invoked per iteration.
31677 * @param {*} [accumulator] The initial value.
31678 * @param {boolean} [initAccum] Specify using the last element of `array` as
31679 * the initial value.
31680 * @returns {*} Returns the accumulated value.
31681 */
31682 function arrayReduceRight(array, iteratee, accumulator, initAccum) {
31683 var length = array == null ? 0 : array.length;
31684 if (initAccum && length) {
31685 accumulator = array[--length];
31686 }
31687 while (length--) {
31688 accumulator = iteratee(accumulator, array[length], length, array);
31689 }
31690 return accumulator;
31691 }
31692
31693 /**
31694 * A specialized version of `_.some` for arrays without support for iteratee
31695 * shorthands.
31696 *
31697 * @private
31698 * @param {Array} [array] The array to iterate over.
31699 * @param {Function} predicate The function invoked per iteration.
31700 * @returns {boolean} Returns `true` if any element passes the predicate check,
31701 * else `false`.
31702 */
31703 function arraySome(array, predicate) {
31704 var index = -1,
31705 length = array == null ? 0 : array.length;
31706
31707 while (++index < length) {
31708 if (predicate(array[index], index, array)) {
31709 return true;
31710 }
31711 }
31712 return false;
31713 }
31714
31715 /**
31716 * Gets the size of an ASCII `string`.
31717 *
31718 * @private
31719 * @param {string} string The string inspect.
31720 * @returns {number} Returns the string size.
31721 */
31722 var asciiSize = baseProperty('length');
31723
31724 /**
31725 * Converts an ASCII `string` to an array.
31726 *
31727 * @private
31728 * @param {string} string The string to convert.
31729 * @returns {Array} Returns the converted array.
31730 */
31731 function asciiToArray(string) {
31732 return string.split('');
31733 }
31734
31735 /**
31736 * Splits an ASCII `string` into an array of its words.
31737 *
31738 * @private
31739 * @param {string} The string to inspect.
31740 * @returns {Array} Returns the words of `string`.
31741 */
31742 function asciiWords(string) {
31743 return string.match(reAsciiWord) || [];
31744 }
31745
31746 /**
31747 * The base implementation of methods like `_.findKey` and `_.findLastKey`,
31748 * without support for iteratee shorthands, which iterates over `collection`
31749 * using `eachFunc`.
31750 *
31751 * @private
31752 * @param {Array|Object} collection The collection to inspect.
31753 * @param {Function} predicate The function invoked per iteration.
31754 * @param {Function} eachFunc The function to iterate over `collection`.
31755 * @returns {*} Returns the found element or its key, else `undefined`.
31756 */
31757 function baseFindKey(collection, predicate, eachFunc) {
31758 var result;
31759 eachFunc(collection, function(value, key, collection) {
31760 if (predicate(value, key, collection)) {
31761 result = key;
31762 return false;
31763 }
31764 });
31765 return result;
31766 }
31767
31768 /**
31769 * The base implementation of `_.findIndex` and `_.findLastIndex` without
31770 * support for iteratee shorthands.
31771 *
31772 * @private
31773 * @param {Array} array The array to inspect.
31774 * @param {Function} predicate The function invoked per iteration.
31775 * @param {number} fromIndex The index to search from.
31776 * @param {boolean} [fromRight] Specify iterating from right to left.
31777 * @returns {number} Returns the index of the matched value, else `-1`.
31778 */
31779 function baseFindIndex(array, predicate, fromIndex, fromRight) {
31780 var length = array.length,
31781 index = fromIndex + (fromRight ? 1 : -1);
31782
31783 while ((fromRight ? index-- : ++index < length)) {
31784 if (predicate(array[index], index, array)) {
31785 return index;
31786 }
31787 }
31788 return -1;
31789 }
31790
31791 /**
31792 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
31793 *
31794 * @private
31795 * @param {Array} array The array to inspect.
31796 * @param {*} value The value to search for.
31797 * @param {number} fromIndex The index to search from.
31798 * @returns {number} Returns the index of the matched value, else `-1`.
31799 */
31800 function baseIndexOf(array, value, fromIndex) {
31801 return value === value
31802 ? strictIndexOf(array, value, fromIndex)
31803 : baseFindIndex(array, baseIsNaN, fromIndex);
31804 }
31805
31806 /**
31807 * This function is like `baseIndexOf` except that it accepts a comparator.
31808 *
31809 * @private
31810 * @param {Array} array The array to inspect.
31811 * @param {*} value The value to search for.
31812 * @param {number} fromIndex The index to search from.
31813 * @param {Function} comparator The comparator invoked per element.
31814 * @returns {number} Returns the index of the matched value, else `-1`.
31815 */
31816 function baseIndexOfWith(array, value, fromIndex, comparator) {
31817 var index = fromIndex - 1,
31818 length = array.length;
31819
31820 while (++index < length) {
31821 if (comparator(array[index], value)) {
31822 return index;
31823 }
31824 }
31825 return -1;
31826 }
31827
31828 /**
31829 * The base implementation of `_.isNaN` without support for number objects.
31830 *
31831 * @private
31832 * @param {*} value The value to check.
31833 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
31834 */
31835 function baseIsNaN(value) {
31836 return value !== value;
31837 }
31838
31839 /**
31840 * The base implementation of `_.mean` and `_.meanBy` without support for
31841 * iteratee shorthands.
31842 *
31843 * @private
31844 * @param {Array} array The array to iterate over.
31845 * @param {Function} iteratee The function invoked per iteration.
31846 * @returns {number} Returns the mean.
31847 */
31848 function baseMean(array, iteratee) {
31849 var length = array == null ? 0 : array.length;
31850 return length ? (baseSum(array, iteratee) / length) : NAN;
31851 }
31852
31853 /**
31854 * The base implementation of `_.property` without support for deep paths.
31855 *
31856 * @private
31857 * @param {string} key The key of the property to get.
31858 * @returns {Function} Returns the new accessor function.
31859 */
31860 function baseProperty(key) {
31861 return function(object) {
31862 return object == null ? undefined : object[key];
31863 };
31864 }
31865
31866 /**
31867 * The base implementation of `_.propertyOf` without support for deep paths.
31868 *
31869 * @private
31870 * @param {Object} object The object to query.
31871 * @returns {Function} Returns the new accessor function.
31872 */
31873 function basePropertyOf(object) {
31874 return function(key) {
31875 return object == null ? undefined : object[key];
31876 };
31877 }
31878
31879 /**
31880 * The base implementation of `_.reduce` and `_.reduceRight`, without support
31881 * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
31882 *
31883 * @private
31884 * @param {Array|Object} collection The collection to iterate over.
31885 * @param {Function} iteratee The function invoked per iteration.
31886 * @param {*} accumulator The initial value.
31887 * @param {boolean} initAccum Specify using the first or last element of
31888 * `collection` as the initial value.
31889 * @param {Function} eachFunc The function to iterate over `collection`.
31890 * @returns {*} Returns the accumulated value.
31891 */
31892 function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
31893 eachFunc(collection, function(value, index, collection) {
31894 accumulator = initAccum
31895 ? (initAccum = false, value)
31896 : iteratee(accumulator, value, index, collection);
31897 });
31898 return accumulator;
31899 }
31900
31901 /**
31902 * The base implementation of `_.sortBy` which uses `comparer` to define the
31903 * sort order of `array` and replaces criteria objects with their corresponding
31904 * values.
31905 *
31906 * @private
31907 * @param {Array} array The array to sort.
31908 * @param {Function} comparer The function to define sort order.
31909 * @returns {Array} Returns `array`.
31910 */
31911 function baseSortBy(array, comparer) {
31912 var length = array.length;
31913
31914 array.sort(comparer);
31915 while (length--) {
31916 array[length] = array[length].value;
31917 }
31918 return array;
31919 }
31920
31921 /**
31922 * The base implementation of `_.sum` and `_.sumBy` without support for
31923 * iteratee shorthands.
31924 *
31925 * @private
31926 * @param {Array} array The array to iterate over.
31927 * @param {Function} iteratee The function invoked per iteration.
31928 * @returns {number} Returns the sum.
31929 */
31930 function baseSum(array, iteratee) {
31931 var result,
31932 index = -1,
31933 length = array.length;
31934
31935 while (++index < length) {
31936 var current = iteratee(array[index]);
31937 if (current !== undefined) {
31938 result = result === undefined ? current : (result + current);
31939 }
31940 }
31941 return result;
31942 }
31943
31944 /**
31945 * The base implementation of `_.times` without support for iteratee shorthands
31946 * or max array length checks.
31947 *
31948 * @private
31949 * @param {number} n The number of times to invoke `iteratee`.
31950 * @param {Function} iteratee The function invoked per iteration.
31951 * @returns {Array} Returns the array of results.
31952 */
31953 function baseTimes(n, iteratee) {
31954 var index = -1,
31955 result = Array(n);
31956
31957 while (++index < n) {
31958 result[index] = iteratee(index);
31959 }
31960 return result;
31961 }
31962
31963 /**
31964 * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
31965 * of key-value pairs for `object` corresponding to the property names of `props`.
31966 *
31967 * @private
31968 * @param {Object} object The object to query.
31969 * @param {Array} props The property names to get values for.
31970 * @returns {Object} Returns the key-value pairs.
31971 */
31972 function baseToPairs(object, props) {
31973 return arrayMap(props, function(key) {
31974 return [key, object[key]];
31975 });
31976 }
31977
31978 /**
31979 * The base implementation of `_.unary` without support for storing metadata.
31980 *
31981 * @private
31982 * @param {Function} func The function to cap arguments for.
31983 * @returns {Function} Returns the new capped function.
31984 */
31985 function baseUnary(func) {
31986 return function(value) {
31987 return func(value);
31988 };
31989 }
31990
31991 /**
31992 * The base implementation of `_.values` and `_.valuesIn` which creates an
31993 * array of `object` property values corresponding to the property names
31994 * of `props`.
31995 *
31996 * @private
31997 * @param {Object} object The object to query.
31998 * @param {Array} props The property names to get values for.
31999 * @returns {Object} Returns the array of property values.
32000 */
32001 function baseValues(object, props) {
32002 return arrayMap(props, function(key) {
32003 return object[key];
32004 });
32005 }
32006
32007 /**
32008 * Checks if a `cache` value for `key` exists.
32009 *
32010 * @private
32011 * @param {Object} cache The cache to query.
32012 * @param {string} key The key of the entry to check.
32013 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
32014 */
32015 function cacheHas(cache, key) {
32016 return cache.has(key);
32017 }
32018
32019 /**
32020 * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol
32021 * that is not found in the character symbols.
32022 *
32023 * @private
32024 * @param {Array} strSymbols The string symbols to inspect.
32025 * @param {Array} chrSymbols The character symbols to find.
32026 * @returns {number} Returns the index of the first unmatched string symbol.
32027 */
32028 function charsStartIndex(strSymbols, chrSymbols) {
32029 var index = -1,
32030 length = strSymbols.length;
32031
32032 while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
32033 return index;
32034 }
32035
32036 /**
32037 * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol
32038 * that is not found in the character symbols.
32039 *
32040 * @private
32041 * @param {Array} strSymbols The string symbols to inspect.
32042 * @param {Array} chrSymbols The character symbols to find.
32043 * @returns {number} Returns the index of the last unmatched string symbol.
32044 */
32045 function charsEndIndex(strSymbols, chrSymbols) {
32046 var index = strSymbols.length;
32047
32048 while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
32049 return index;
32050 }
32051
32052 /**
32053 * Gets the number of `placeholder` occurrences in `array`.
32054 *
32055 * @private
32056 * @param {Array} array The array to inspect.
32057 * @param {*} placeholder The placeholder to search for.
32058 * @returns {number} Returns the placeholder count.
32059 */
32060 function countHolders(array, placeholder) {
32061 var length = array.length,
32062 result = 0;
32063
32064 while (length--) {
32065 if (array[length] === placeholder) {
32066 ++result;
32067 }
32068 }
32069 return result;
32070 }
32071
32072 /**
32073 * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A
32074 * letters to basic Latin letters.
32075 *
32076 * @private
32077 * @param {string} letter The matched letter to deburr.
32078 * @returns {string} Returns the deburred letter.
32079 */
32080 var deburrLetter = basePropertyOf(deburredLetters);
32081
32082 /**
32083 * Used by `_.escape` to convert characters to HTML entities.
32084 *
32085 * @private
32086 * @param {string} chr The matched character to escape.
32087 * @returns {string} Returns the escaped character.
32088 */
32089 var escapeHtmlChar = basePropertyOf(htmlEscapes);
32090
32091 /**
32092 * Used by `_.template` to escape characters for inclusion in compiled string literals.
32093 *
32094 * @private
32095 * @param {string} chr The matched character to escape.
32096 * @returns {string} Returns the escaped character.
32097 */
32098 function escapeStringChar(chr) {
32099 return '\\' + stringEscapes[chr];
32100 }
32101
32102 /**
32103 * Gets the value at `key` of `object`.
32104 *
32105 * @private
32106 * @param {Object} [object] The object to query.
32107 * @param {string} key The key of the property to get.
32108 * @returns {*} Returns the property value.
32109 */
32110 function getValue(object, key) {
32111 return object == null ? undefined : object[key];
32112 }
32113
32114 /**
32115 * Checks if `string` contains Unicode symbols.
32116 *
32117 * @private
32118 * @param {string} string The string to inspect.
32119 * @returns {boolean} Returns `true` if a symbol is found, else `false`.
32120 */
32121 function hasUnicode(string) {
32122 return reHasUnicode.test(string);
32123 }
32124
32125 /**
32126 * Checks if `string` contains a word composed of Unicode symbols.
32127 *
32128 * @private
32129 * @param {string} string The string to inspect.
32130 * @returns {boolean} Returns `true` if a word is found, else `false`.
32131 */
32132 function hasUnicodeWord(string) {
32133 return reHasUnicodeWord.test(string);
32134 }
32135
32136 /**
32137 * Converts `iterator` to an array.
32138 *
32139 * @private
32140 * @param {Object} iterator The iterator to convert.
32141 * @returns {Array} Returns the converted array.
32142 */
32143 function iteratorToArray(iterator) {
32144 var data,
32145 result = [];
32146
32147 while (!(data = iterator.next()).done) {
32148 result.push(data.value);
32149 }
32150 return result;
32151 }
32152
32153 /**
32154 * Converts `map` to its key-value pairs.
32155 *
32156 * @private
32157 * @param {Object} map The map to convert.
32158 * @returns {Array} Returns the key-value pairs.
32159 */
32160 function mapToArray(map) {
32161 var index = -1,
32162 result = Array(map.size);
32163
32164 map.forEach(function(value, key) {
32165 result[++index] = [key, value];
32166 });
32167 return result;
32168 }
32169
32170 /**
32171 * Creates a unary function that invokes `func` with its argument transformed.
32172 *
32173 * @private
32174 * @param {Function} func The function to wrap.
32175 * @param {Function} transform The argument transform.
32176 * @returns {Function} Returns the new function.
32177 */
32178 function overArg(func, transform) {
32179 return function(arg) {
32180 return func(transform(arg));
32181 };
32182 }
32183
32184 /**
32185 * Replaces all `placeholder` elements in `array` with an internal placeholder
32186 * and returns an array of their indexes.
32187 *
32188 * @private
32189 * @param {Array} array The array to modify.
32190 * @param {*} placeholder The placeholder to replace.
32191 * @returns {Array} Returns the new array of placeholder indexes.
32192 */
32193 function replaceHolders(array, placeholder) {
32194 var index = -1,
32195 length = array.length,
32196 resIndex = 0,
32197 result = [];
32198
32199 while (++index < length) {
32200 var value = array[index];
32201 if (value === placeholder || value === PLACEHOLDER) {
32202 array[index] = PLACEHOLDER;
32203 result[resIndex++] = index;
32204 }
32205 }
32206 return result;
32207 }
32208
32209 /**
32210 * Converts `set` to an array of its values.
32211 *
32212 * @private
32213 * @param {Object} set The set to convert.
32214 * @returns {Array} Returns the values.
32215 */
32216 function setToArray(set) {
32217 var index = -1,
32218 result = Array(set.size);
32219
32220 set.forEach(function(value) {
32221 result[++index] = value;
32222 });
32223 return result;
32224 }
32225
32226 /**
32227 * Converts `set` to its value-value pairs.
32228 *
32229 * @private
32230 * @param {Object} set The set to convert.
32231 * @returns {Array} Returns the value-value pairs.
32232 */
32233 function setToPairs(set) {
32234 var index = -1,
32235 result = Array(set.size);
32236
32237 set.forEach(function(value) {
32238 result[++index] = [value, value];
32239 });
32240 return result;
32241 }
32242
32243 /**
32244 * A specialized version of `_.indexOf` which performs strict equality
32245 * comparisons of values, i.e. `===`.
32246 *
32247 * @private
32248 * @param {Array} array The array to inspect.
32249 * @param {*} value The value to search for.
32250 * @param {number} fromIndex The index to search from.
32251 * @returns {number} Returns the index of the matched value, else `-1`.
32252 */
32253 function strictIndexOf(array, value, fromIndex) {
32254 var index = fromIndex - 1,
32255 length = array.length;
32256
32257 while (++index < length) {
32258 if (array[index] === value) {
32259 return index;
32260 }
32261 }
32262 return -1;
32263 }
32264
32265 /**
32266 * A specialized version of `_.lastIndexOf` which performs strict equality
32267 * comparisons of values, i.e. `===`.
32268 *
32269 * @private
32270 * @param {Array} array The array to inspect.
32271 * @param {*} value The value to search for.
32272 * @param {number} fromIndex The index to search from.
32273 * @returns {number} Returns the index of the matched value, else `-1`.
32274 */
32275 function strictLastIndexOf(array, value, fromIndex) {
32276 var index = fromIndex + 1;
32277 while (index--) {
32278 if (array[index] === value) {
32279 return index;
32280 }
32281 }
32282 return index;
32283 }
32284
32285 /**
32286 * Gets the number of symbols in `string`.
32287 *
32288 * @private
32289 * @param {string} string The string to inspect.
32290 * @returns {number} Returns the string size.
32291 */
32292 function stringSize(string) {
32293 return hasUnicode(string)
32294 ? unicodeSize(string)
32295 : asciiSize(string);
32296 }
32297
32298 /**
32299 * Converts `string` to an array.
32300 *
32301 * @private
32302 * @param {string} string The string to convert.
32303 * @returns {Array} Returns the converted array.
32304 */
32305 function stringToArray(string) {
32306 return hasUnicode(string)
32307 ? unicodeToArray(string)
32308 : asciiToArray(string);
32309 }
32310
32311 /**
32312 * Used by `_.unescape` to convert HTML entities to characters.
32313 *
32314 * @private
32315 * @param {string} chr The matched character to unescape.
32316 * @returns {string} Returns the unescaped character.
32317 */
32318 var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
32319
32320 /**
32321 * Gets the size of a Unicode `string`.
32322 *
32323 * @private
32324 * @param {string} string The string inspect.
32325 * @returns {number} Returns the string size.
32326 */
32327 function unicodeSize(string) {
32328 var result = reUnicode.lastIndex = 0;
32329 while (reUnicode.test(string)) {
32330 ++result;
32331 }
32332 return result;
32333 }
32334
32335 /**
32336 * Converts a Unicode `string` to an array.
32337 *
32338 * @private
32339 * @param {string} string The string to convert.
32340 * @returns {Array} Returns the converted array.
32341 */
32342 function unicodeToArray(string) {
32343 return string.match(reUnicode) || [];
32344 }
32345
32346 /**
32347 * Splits a Unicode `string` into an array of its words.
32348 *
32349 * @private
32350 * @param {string} The string to inspect.
32351 * @returns {Array} Returns the words of `string`.
32352 */
32353 function unicodeWords(string) {
32354 return string.match(reUnicodeWord) || [];
32355 }
32356
32357 /*--------------------------------------------------------------------------*/
32358
32359 /**
32360 * Create a new pristine `lodash` function using the `context` object.
32361 *
32362 * @static
32363 * @memberOf _
32364 * @since 1.1.0
32365 * @category Util
32366 * @param {Object} [context=root] The context object.
32367 * @returns {Function} Returns a new `lodash` function.
32368 * @example
32369 *
32370 * _.mixin({ 'foo': _.constant('foo') });
32371 *
32372 * var lodash = _.runInContext();
32373 * lodash.mixin({ 'bar': lodash.constant('bar') });
32374 *
32375 * _.isFunction(_.foo);
32376 * // => true
32377 * _.isFunction(_.bar);
32378 * // => false
32379 *
32380 * lodash.isFunction(lodash.foo);
32381 * // => false
32382 * lodash.isFunction(lodash.bar);
32383 * // => true
32384 *
32385 * // Create a suped-up `defer` in Node.js.
32386 * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
32387 */
32388 var runInContext = (function runInContext(context) {
32389 context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
32390
32391 /** Built-in constructor references. */
32392 var Array = context.Array,
32393 Date = context.Date,
32394 Error = context.Error,
32395 Function = context.Function,
32396 Math = context.Math,
32397 Object = context.Object,
32398 RegExp = context.RegExp,
32399 String = context.String,
32400 TypeError = context.TypeError;
32401
32402 /** Used for built-in method references. */
32403 var arrayProto = Array.prototype,
32404 funcProto = Function.prototype,
32405 objectProto = Object.prototype;
32406
32407 /** Used to detect overreaching core-js shims. */
32408 var coreJsData = context['__core-js_shared__'];
32409
32410 /** Used to resolve the decompiled source of functions. */
32411 var funcToString = funcProto.toString;
32412
32413 /** Used to check objects for own properties. */
32414 var hasOwnProperty = objectProto.hasOwnProperty;
32415
32416 /** Used to generate unique IDs. */
32417 var idCounter = 0;
32418
32419 /** Used to detect methods masquerading as native. */
32420 var maskSrcKey = (function() {
32421 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
32422 return uid ? ('Symbol(src)_1.' + uid) : '';
32423 }());
32424
32425 /**
32426 * Used to resolve the
32427 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
32428 * of values.
32429 */
32430 var nativeObjectToString = objectProto.toString;
32431
32432 /** Used to infer the `Object` constructor. */
32433 var objectCtorString = funcToString.call(Object);
32434
32435 /** Used to restore the original `_` reference in `_.noConflict`. */
32436 var oldDash = root._;
32437
32438 /** Used to detect if a method is native. */
32439 var reIsNative = RegExp('^' +
32440 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
32441 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
32442 );
32443
32444 /** Built-in value references. */
32445 var Buffer = moduleExports ? context.Buffer : undefined,
32446 Symbol = context.Symbol,
32447 Uint8Array = context.Uint8Array,
32448 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
32449 getPrototype = overArg(Object.getPrototypeOf, Object),
32450 objectCreate = Object.create,
32451 propertyIsEnumerable = objectProto.propertyIsEnumerable,
32452 splice = arrayProto.splice,
32453 spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,
32454 symIterator = Symbol ? Symbol.iterator : undefined,
32455 symToStringTag = Symbol ? Symbol.toStringTag : undefined;
32456
32457 var defineProperty = (function() {
32458 try {
32459 var func = getNative(Object, 'defineProperty');
32460 func({}, '', {});
32461 return func;
32462 } catch (e) {}
32463 }());
32464
32465 /** Mocked built-ins. */
32466 var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,
32467 ctxNow = Date && Date.now !== root.Date.now && Date.now,
32468 ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
32469
32470 /* Built-in method references for those with the same name as other `lodash` methods. */
32471 var nativeCeil = Math.ceil,
32472 nativeFloor = Math.floor,
32473 nativeGetSymbols = Object.getOwnPropertySymbols,
32474 nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
32475 nativeIsFinite = context.isFinite,
32476 nativeJoin = arrayProto.join,
32477 nativeKeys = overArg(Object.keys, Object),
32478 nativeMax = Math.max,
32479 nativeMin = Math.min,
32480 nativeNow = Date.now,
32481 nativeParseInt = context.parseInt,
32482 nativeRandom = Math.random,
32483 nativeReverse = arrayProto.reverse;
32484
32485 /* Built-in method references that are verified to be native. */
32486 var DataView = getNative(context, 'DataView'),
32487 Map = getNative(context, 'Map'),
32488 Promise = getNative(context, 'Promise'),
32489 Set = getNative(context, 'Set'),
32490 WeakMap = getNative(context, 'WeakMap'),
32491 nativeCreate = getNative(Object, 'create');
32492
32493 /** Used to store function metadata. */
32494 var metaMap = WeakMap && new WeakMap;
32495
32496 /** Used to lookup unminified function names. */
32497 var realNames = {};
32498
32499 /** Used to detect maps, sets, and weakmaps. */
32500 var dataViewCtorString = toSource(DataView),
32501 mapCtorString = toSource(Map),
32502 promiseCtorString = toSource(Promise),
32503 setCtorString = toSource(Set),
32504 weakMapCtorString = toSource(WeakMap);
32505
32506 /** Used to convert symbols to primitives and strings. */
32507 var symbolProto = Symbol ? Symbol.prototype : undefined,
32508 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
32509 symbolToString = symbolProto ? symbolProto.toString : undefined;
32510
32511 /*------------------------------------------------------------------------*/
32512
32513 /**
32514 * Creates a `lodash` object which wraps `value` to enable implicit method
32515 * chain sequences. Methods that operate on and return arrays, collections,
32516 * and functions can be chained together. Methods that retrieve a single value
32517 * or may return a primitive value will automatically end the chain sequence
32518 * and return the unwrapped value. Otherwise, the value must be unwrapped
32519 * with `_#value`.
32520 *
32521 * Explicit chain sequences, which must be unwrapped with `_#value`, may be
32522 * enabled using `_.chain`.
32523 *
32524 * The execution of chained methods is lazy, that is, it's deferred until
32525 * `_#value` is implicitly or explicitly called.
32526 *
32527 * Lazy evaluation allows several methods to support shortcut fusion.
32528 * Shortcut fusion is an optimization to merge iteratee calls; this avoids
32529 * the creation of intermediate arrays and can greatly reduce the number of
32530 * iteratee executions. Sections of a chain sequence qualify for shortcut
32531 * fusion if the section is applied to an array and iteratees accept only
32532 * one argument. The heuristic for whether a section qualifies for shortcut
32533 * fusion is subject to change.
32534 *
32535 * Chaining is supported in custom builds as long as the `_#value` method is
32536 * directly or indirectly included in the build.
32537 *
32538 * In addition to lodash methods, wrappers have `Array` and `String` methods.
32539 *
32540 * The wrapper `Array` methods are:
32541 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`
32542 *
32543 * The wrapper `String` methods are:
32544 * `replace` and `split`
32545 *
32546 * The wrapper methods that support shortcut fusion are:
32547 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,
32548 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,
32549 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`
32550 *
32551 * The chainable wrapper methods are:
32552 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
32553 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
32554 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
32555 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
32556 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
32557 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
32558 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,
32559 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,
32560 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,
32561 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,
32562 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,
32563 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,
32564 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,
32565 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,
32566 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,
32567 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,
32568 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,
32569 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,
32570 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,
32571 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,
32572 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,
32573 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,
32574 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,
32575 * `zipObject`, `zipObjectDeep`, and `zipWith`
32576 *
32577 * The wrapper methods that are **not** chainable by default are:
32578 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
32579 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,
32580 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,
32581 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
32582 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,
32583 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,
32584 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,
32585 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,
32586 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,
32587 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,
32588 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,
32589 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,
32590 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,
32591 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,
32592 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,
32593 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,
32594 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
32595 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
32596 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
32597 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,
32598 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,
32599 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,
32600 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,
32601 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,
32602 * `upperFirst`, `value`, and `words`
32603 *
32604 * @name _
32605 * @constructor
32606 * @category Seq
32607 * @param {*} value The value to wrap in a `lodash` instance.
32608 * @returns {Object} Returns the new `lodash` wrapper instance.
32609 * @example
32610 *
32611 * function square(n) {
32612 * return n * n;
32613 * }
32614 *
32615 * var wrapped = _([1, 2, 3]);
32616 *
32617 * // Returns an unwrapped value.
32618 * wrapped.reduce(_.add);
32619 * // => 6
32620 *
32621 * // Returns a wrapped value.
32622 * var squares = wrapped.map(square);
32623 *
32624 * _.isArray(squares);
32625 * // => false
32626 *
32627 * _.isArray(squares.value());
32628 * // => true
32629 */
32630 function lodash(value) {
32631 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
32632 if (value instanceof LodashWrapper) {
32633 return value;
32634 }
32635 if (hasOwnProperty.call(value, '__wrapped__')) {
32636 return wrapperClone(value);
32637 }
32638 }
32639 return new LodashWrapper(value);
32640 }
32641
32642 /**
32643 * The base implementation of `_.create` without support for assigning
32644 * properties to the created object.
32645 *
32646 * @private
32647 * @param {Object} proto The object to inherit from.
32648 * @returns {Object} Returns the new object.
32649 */
32650 var baseCreate = (function() {
32651 function object() {}
32652 return function(proto) {
32653 if (!isObject(proto)) {
32654 return {};
32655 }
32656 if (objectCreate) {
32657 return objectCreate(proto);
32658 }
32659 object.prototype = proto;
32660 var result = new object;
32661 object.prototype = undefined;
32662 return result;
32663 };
32664 }());
32665
32666 /**
32667 * The function whose prototype chain sequence wrappers inherit from.
32668 *
32669 * @private
32670 */
32671 function baseLodash() {
32672 // No operation performed.
32673 }
32674
32675 /**
32676 * The base constructor for creating `lodash` wrapper objects.
32677 *
32678 * @private
32679 * @param {*} value The value to wrap.
32680 * @param {boolean} [chainAll] Enable explicit method chain sequences.
32681 */
32682 function LodashWrapper(value, chainAll) {
32683 this.__wrapped__ = value;
32684 this.__actions__ = [];
32685 this.__chain__ = !!chainAll;
32686 this.__index__ = 0;
32687 this.__values__ = undefined;
32688 }
32689
32690 /**
32691 * By default, the template delimiters used by lodash are like those in
32692 * embedded Ruby (ERB) as well as ES2015 template strings. Change the
32693 * following template settings to use alternative delimiters.
32694 *
32695 * @static
32696 * @memberOf _
32697 * @type {Object}
32698 */
32699 lodash.templateSettings = {
32700
32701 /**
32702 * Used to detect `data` property values to be HTML-escaped.
32703 *
32704 * @memberOf _.templateSettings
32705 * @type {RegExp}
32706 */
32707 'escape': reEscape,
32708
32709 /**
32710 * Used to detect code to be evaluated.
32711 *
32712 * @memberOf _.templateSettings
32713 * @type {RegExp}
32714 */
32715 'evaluate': reEvaluate,
32716
32717 /**
32718 * Used to detect `data` property values to inject.
32719 *
32720 * @memberOf _.templateSettings
32721 * @type {RegExp}
32722 */
32723 'interpolate': reInterpolate,
32724
32725 /**
32726 * Used to reference the data object in the template text.
32727 *
32728 * @memberOf _.templateSettings
32729 * @type {string}
32730 */
32731 'variable': '',
32732
32733 /**
32734 * Used to import variables into the compiled template.
32735 *
32736 * @memberOf _.templateSettings
32737 * @type {Object}
32738 */
32739 'imports': {
32740
32741 /**
32742 * A reference to the `lodash` function.
32743 *
32744 * @memberOf _.templateSettings.imports
32745 * @type {Function}
32746 */
32747 '_': lodash
32748 }
32749 };
32750
32751 // Ensure wrappers are instances of `baseLodash`.
32752 lodash.prototype = baseLodash.prototype;
32753 lodash.prototype.constructor = lodash;
32754
32755 LodashWrapper.prototype = baseCreate(baseLodash.prototype);
32756 LodashWrapper.prototype.constructor = LodashWrapper;
32757
32758 /*------------------------------------------------------------------------*/
32759
32760 /**
32761 * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.
32762 *
32763 * @private
32764 * @constructor
32765 * @param {*} value The value to wrap.
32766 */
32767 function LazyWrapper(value) {
32768 this.__wrapped__ = value;
32769 this.__actions__ = [];
32770 this.__dir__ = 1;
32771 this.__filtered__ = false;
32772 this.__iteratees__ = [];
32773 this.__takeCount__ = MAX_ARRAY_LENGTH;
32774 this.__views__ = [];
32775 }
32776
32777 /**
32778 * Creates a clone of the lazy wrapper object.
32779 *
32780 * @private
32781 * @name clone
32782 * @memberOf LazyWrapper
32783 * @returns {Object} Returns the cloned `LazyWrapper` object.
32784 */
32785 function lazyClone() {
32786 var result = new LazyWrapper(this.__wrapped__);
32787 result.__actions__ = copyArray(this.__actions__);
32788 result.__dir__ = this.__dir__;
32789 result.__filtered__ = this.__filtered__;
32790 result.__iteratees__ = copyArray(this.__iteratees__);
32791 result.__takeCount__ = this.__takeCount__;
32792 result.__views__ = copyArray(this.__views__);
32793 return result;
32794 }
32795
32796 /**
32797 * Reverses the direction of lazy iteration.
32798 *
32799 * @private
32800 * @name reverse
32801 * @memberOf LazyWrapper
32802 * @returns {Object} Returns the new reversed `LazyWrapper` object.
32803 */
32804 function lazyReverse() {
32805 if (this.__filtered__) {
32806 var result = new LazyWrapper(this);
32807 result.__dir__ = -1;
32808 result.__filtered__ = true;
32809 } else {
32810 result = this.clone();
32811 result.__dir__ *= -1;
32812 }
32813 return result;
32814 }
32815
32816 /**
32817 * Extracts the unwrapped value from its lazy wrapper.
32818 *
32819 * @private
32820 * @name value
32821 * @memberOf LazyWrapper
32822 * @returns {*} Returns the unwrapped value.
32823 */
32824 function lazyValue() {
32825 var array = this.__wrapped__.value(),
32826 dir = this.__dir__,
32827 isArr = isArray(array),
32828 isRight = dir < 0,
32829 arrLength = isArr ? array.length : 0,
32830 view = getView(0, arrLength, this.__views__),
32831 start = view.start,
32832 end = view.end,
32833 length = end - start,
32834 index = isRight ? end : (start - 1),
32835 iteratees = this.__iteratees__,
32836 iterLength = iteratees.length,
32837 resIndex = 0,
32838 takeCount = nativeMin(length, this.__takeCount__);
32839
32840 if (!isArr || (!isRight && arrLength == length && takeCount == length)) {
32841 return baseWrapperValue(array, this.__actions__);
32842 }
32843 var result = [];
32844
32845 outer:
32846 while (length-- && resIndex < takeCount) {
32847 index += dir;
32848
32849 var iterIndex = -1,
32850 value = array[index];
32851
32852 while (++iterIndex < iterLength) {
32853 var data = iteratees[iterIndex],
32854 iteratee = data.iteratee,
32855 type = data.type,
32856 computed = iteratee(value);
32857
32858 if (type == LAZY_MAP_FLAG) {
32859 value = computed;
32860 } else if (!computed) {
32861 if (type == LAZY_FILTER_FLAG) {
32862 continue outer;
32863 } else {
32864 break outer;
32865 }
32866 }
32867 }
32868 result[resIndex++] = value;
32869 }
32870 return result;
32871 }
32872
32873 // Ensure `LazyWrapper` is an instance of `baseLodash`.
32874 LazyWrapper.prototype = baseCreate(baseLodash.prototype);
32875 LazyWrapper.prototype.constructor = LazyWrapper;
32876
32877 /*------------------------------------------------------------------------*/
32878
32879 /**
32880 * Creates a hash object.
32881 *
32882 * @private
32883 * @constructor
32884 * @param {Array} [entries] The key-value pairs to cache.
32885 */
32886 function Hash(entries) {
32887 var index = -1,
32888 length = entries == null ? 0 : entries.length;
32889
32890 this.clear();
32891 while (++index < length) {
32892 var entry = entries[index];
32893 this.set(entry[0], entry[1]);
32894 }
32895 }
32896
32897 /**
32898 * Removes all key-value entries from the hash.
32899 *
32900 * @private
32901 * @name clear
32902 * @memberOf Hash
32903 */
32904 function hashClear() {
32905 this.__data__ = nativeCreate ? nativeCreate(null) : {};
32906 this.size = 0;
32907 }
32908
32909 /**
32910 * Removes `key` and its value from the hash.
32911 *
32912 * @private
32913 * @name delete
32914 * @memberOf Hash
32915 * @param {Object} hash The hash to modify.
32916 * @param {string} key The key of the value to remove.
32917 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
32918 */
32919 function hashDelete(key) {
32920 var result = this.has(key) && delete this.__data__[key];
32921 this.size -= result ? 1 : 0;
32922 return result;
32923 }
32924
32925 /**
32926 * Gets the hash value for `key`.
32927 *
32928 * @private
32929 * @name get
32930 * @memberOf Hash
32931 * @param {string} key The key of the value to get.
32932 * @returns {*} Returns the entry value.
32933 */
32934 function hashGet(key) {
32935 var data = this.__data__;
32936 if (nativeCreate) {
32937 var result = data[key];
32938 return result === HASH_UNDEFINED ? undefined : result;
32939 }
32940 return hasOwnProperty.call(data, key) ? data[key] : undefined;
32941 }
32942
32943 /**
32944 * Checks if a hash value for `key` exists.
32945 *
32946 * @private
32947 * @name has
32948 * @memberOf Hash
32949 * @param {string} key The key of the entry to check.
32950 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
32951 */
32952 function hashHas(key) {
32953 var data = this.__data__;
32954 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
32955 }
32956
32957 /**
32958 * Sets the hash `key` to `value`.
32959 *
32960 * @private
32961 * @name set
32962 * @memberOf Hash
32963 * @param {string} key The key of the value to set.
32964 * @param {*} value The value to set.
32965 * @returns {Object} Returns the hash instance.
32966 */
32967 function hashSet(key, value) {
32968 var data = this.__data__;
32969 this.size += this.has(key) ? 0 : 1;
32970 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
32971 return this;
32972 }
32973
32974 // Add methods to `Hash`.
32975 Hash.prototype.clear = hashClear;
32976 Hash.prototype['delete'] = hashDelete;
32977 Hash.prototype.get = hashGet;
32978 Hash.prototype.has = hashHas;
32979 Hash.prototype.set = hashSet;
32980
32981 /*------------------------------------------------------------------------*/
32982
32983 /**
32984 * Creates an list cache object.
32985 *
32986 * @private
32987 * @constructor
32988 * @param {Array} [entries] The key-value pairs to cache.
32989 */
32990 function ListCache(entries) {
32991 var index = -1,
32992 length = entries == null ? 0 : entries.length;
32993
32994 this.clear();
32995 while (++index < length) {
32996 var entry = entries[index];
32997 this.set(entry[0], entry[1]);
32998 }
32999 }
33000
33001 /**
33002 * Removes all key-value entries from the list cache.
33003 *
33004 * @private
33005 * @name clear
33006 * @memberOf ListCache
33007 */
33008 function listCacheClear() {
33009 this.__data__ = [];
33010 this.size = 0;
33011 }
33012
33013 /**
33014 * Removes `key` and its value from the list cache.
33015 *
33016 * @private
33017 * @name delete
33018 * @memberOf ListCache
33019 * @param {string} key The key of the value to remove.
33020 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
33021 */
33022 function listCacheDelete(key) {
33023 var data = this.__data__,
33024 index = assocIndexOf(data, key);
33025
33026 if (index < 0) {
33027 return false;
33028 }
33029 var lastIndex = data.length - 1;
33030 if (index == lastIndex) {
33031 data.pop();
33032 } else {
33033 splice.call(data, index, 1);
33034 }
33035 --this.size;
33036 return true;
33037 }
33038
33039 /**
33040 * Gets the list cache value for `key`.
33041 *
33042 * @private
33043 * @name get
33044 * @memberOf ListCache
33045 * @param {string} key The key of the value to get.
33046 * @returns {*} Returns the entry value.
33047 */
33048 function listCacheGet(key) {
33049 var data = this.__data__,
33050 index = assocIndexOf(data, key);
33051
33052 return index < 0 ? undefined : data[index][1];
33053 }
33054
33055 /**
33056 * Checks if a list cache value for `key` exists.
33057 *
33058 * @private
33059 * @name has
33060 * @memberOf ListCache
33061 * @param {string} key The key of the entry to check.
33062 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
33063 */
33064 function listCacheHas(key) {
33065 return assocIndexOf(this.__data__, key) > -1;
33066 }
33067
33068 /**
33069 * Sets the list cache `key` to `value`.
33070 *
33071 * @private
33072 * @name set
33073 * @memberOf ListCache
33074 * @param {string} key The key of the value to set.
33075 * @param {*} value The value to set.
33076 * @returns {Object} Returns the list cache instance.
33077 */
33078 function listCacheSet(key, value) {
33079 var data = this.__data__,
33080 index = assocIndexOf(data, key);
33081
33082 if (index < 0) {
33083 ++this.size;
33084 data.push([key, value]);
33085 } else {
33086 data[index][1] = value;
33087 }
33088 return this;
33089 }
33090
33091 // Add methods to `ListCache`.
33092 ListCache.prototype.clear = listCacheClear;
33093 ListCache.prototype['delete'] = listCacheDelete;
33094 ListCache.prototype.get = listCacheGet;
33095 ListCache.prototype.has = listCacheHas;
33096 ListCache.prototype.set = listCacheSet;
33097
33098 /*------------------------------------------------------------------------*/
33099
33100 /**
33101 * Creates a map cache object to store key-value pairs.
33102 *
33103 * @private
33104 * @constructor
33105 * @param {Array} [entries] The key-value pairs to cache.
33106 */
33107 function MapCache(entries) {
33108 var index = -1,
33109 length = entries == null ? 0 : entries.length;
33110
33111 this.clear();
33112 while (++index < length) {
33113 var entry = entries[index];
33114 this.set(entry[0], entry[1]);
33115 }
33116 }
33117
33118 /**
33119 * Removes all key-value entries from the map.
33120 *
33121 * @private
33122 * @name clear
33123 * @memberOf MapCache
33124 */
33125 function mapCacheClear() {
33126 this.size = 0;
33127 this.__data__ = {
33128 'hash': new Hash,
33129 'map': new (Map || ListCache),
33130 'string': new Hash
33131 };
33132 }
33133
33134 /**
33135 * Removes `key` and its value from the map.
33136 *
33137 * @private
33138 * @name delete
33139 * @memberOf MapCache
33140 * @param {string} key The key of the value to remove.
33141 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
33142 */
33143 function mapCacheDelete(key) {
33144 var result = getMapData(this, key)['delete'](key);
33145 this.size -= result ? 1 : 0;
33146 return result;
33147 }
33148
33149 /**
33150 * Gets the map value for `key`.
33151 *
33152 * @private
33153 * @name get
33154 * @memberOf MapCache
33155 * @param {string} key The key of the value to get.
33156 * @returns {*} Returns the entry value.
33157 */
33158 function mapCacheGet(key) {
33159 return getMapData(this, key).get(key);
33160 }
33161
33162 /**
33163 * Checks if a map value for `key` exists.
33164 *
33165 * @private
33166 * @name has
33167 * @memberOf MapCache
33168 * @param {string} key The key of the entry to check.
33169 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
33170 */
33171 function mapCacheHas(key) {
33172 return getMapData(this, key).has(key);
33173 }
33174
33175 /**
33176 * Sets the map `key` to `value`.
33177 *
33178 * @private
33179 * @name set
33180 * @memberOf MapCache
33181 * @param {string} key The key of the value to set.
33182 * @param {*} value The value to set.
33183 * @returns {Object} Returns the map cache instance.
33184 */
33185 function mapCacheSet(key, value) {
33186 var data = getMapData(this, key),
33187 size = data.size;
33188
33189 data.set(key, value);
33190 this.size += data.size == size ? 0 : 1;
33191 return this;
33192 }
33193
33194 // Add methods to `MapCache`.
33195 MapCache.prototype.clear = mapCacheClear;
33196 MapCache.prototype['delete'] = mapCacheDelete;
33197 MapCache.prototype.get = mapCacheGet;
33198 MapCache.prototype.has = mapCacheHas;
33199 MapCache.prototype.set = mapCacheSet;
33200
33201 /*------------------------------------------------------------------------*/
33202
33203 /**
33204 *
33205 * Creates an array cache object to store unique values.
33206 *
33207 * @private
33208 * @constructor
33209 * @param {Array} [values] The values to cache.
33210 */
33211 function SetCache(values) {
33212 var index = -1,
33213 length = values == null ? 0 : values.length;
33214
33215 this.__data__ = new MapCache;
33216 while (++index < length) {
33217 this.add(values[index]);
33218 }
33219 }
33220
33221 /**
33222 * Adds `value` to the array cache.
33223 *
33224 * @private
33225 * @name add
33226 * @memberOf SetCache
33227 * @alias push
33228 * @param {*} value The value to cache.
33229 * @returns {Object} Returns the cache instance.
33230 */
33231 function setCacheAdd(value) {
33232 this.__data__.set(value, HASH_UNDEFINED);
33233 return this;
33234 }
33235
33236 /**
33237 * Checks if `value` is in the array cache.
33238 *
33239 * @private
33240 * @name has
33241 * @memberOf SetCache
33242 * @param {*} value The value to search for.
33243 * @returns {number} Returns `true` if `value` is found, else `false`.
33244 */
33245 function setCacheHas(value) {
33246 return this.__data__.has(value);
33247 }
33248
33249 // Add methods to `SetCache`.
33250 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
33251 SetCache.prototype.has = setCacheHas;
33252
33253 /*------------------------------------------------------------------------*/
33254
33255 /**
33256 * Creates a stack cache object to store key-value pairs.
33257 *
33258 * @private
33259 * @constructor
33260 * @param {Array} [entries] The key-value pairs to cache.
33261 */
33262 function Stack(entries) {
33263 var data = this.__data__ = new ListCache(entries);
33264 this.size = data.size;
33265 }
33266
33267 /**
33268 * Removes all key-value entries from the stack.
33269 *
33270 * @private
33271 * @name clear
33272 * @memberOf Stack
33273 */
33274 function stackClear() {
33275 this.__data__ = new ListCache;
33276 this.size = 0;
33277 }
33278
33279 /**
33280 * Removes `key` and its value from the stack.
33281 *
33282 * @private
33283 * @name delete
33284 * @memberOf Stack
33285 * @param {string} key The key of the value to remove.
33286 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
33287 */
33288 function stackDelete(key) {
33289 var data = this.__data__,
33290 result = data['delete'](key);
33291
33292 this.size = data.size;
33293 return result;
33294 }
33295
33296 /**
33297 * Gets the stack value for `key`.
33298 *
33299 * @private
33300 * @name get
33301 * @memberOf Stack
33302 * @param {string} key The key of the value to get.
33303 * @returns {*} Returns the entry value.
33304 */
33305 function stackGet(key) {
33306 return this.__data__.get(key);
33307 }
33308
33309 /**
33310 * Checks if a stack value for `key` exists.
33311 *
33312 * @private
33313 * @name has
33314 * @memberOf Stack
33315 * @param {string} key The key of the entry to check.
33316 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
33317 */
33318 function stackHas(key) {
33319 return this.__data__.has(key);
33320 }
33321
33322 /**
33323 * Sets the stack `key` to `value`.
33324 *
33325 * @private
33326 * @name set
33327 * @memberOf Stack
33328 * @param {string} key The key of the value to set.
33329 * @param {*} value The value to set.
33330 * @returns {Object} Returns the stack cache instance.
33331 */
33332 function stackSet(key, value) {
33333 var data = this.__data__;
33334 if (data instanceof ListCache) {
33335 var pairs = data.__data__;
33336 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
33337 pairs.push([key, value]);
33338 this.size = ++data.size;
33339 return this;
33340 }
33341 data = this.__data__ = new MapCache(pairs);
33342 }
33343 data.set(key, value);
33344 this.size = data.size;
33345 return this;
33346 }
33347
33348 // Add methods to `Stack`.
33349 Stack.prototype.clear = stackClear;
33350 Stack.prototype['delete'] = stackDelete;
33351 Stack.prototype.get = stackGet;
33352 Stack.prototype.has = stackHas;
33353 Stack.prototype.set = stackSet;
33354
33355 /*------------------------------------------------------------------------*/
33356
33357 /**
33358 * Creates an array of the enumerable property names of the array-like `value`.
33359 *
33360 * @private
33361 * @param {*} value The value to query.
33362 * @param {boolean} inherited Specify returning inherited property names.
33363 * @returns {Array} Returns the array of property names.
33364 */
33365 function arrayLikeKeys(value, inherited) {
33366 var isArr = isArray(value),
33367 isArg = !isArr && isArguments(value),
33368 isBuff = !isArr && !isArg && isBuffer(value),
33369 isType = !isArr && !isArg && !isBuff && isTypedArray(value),
33370 skipIndexes = isArr || isArg || isBuff || isType,
33371 result = skipIndexes ? baseTimes(value.length, String) : [],
33372 length = result.length;
33373
33374 for (var key in value) {
33375 if ((inherited || hasOwnProperty.call(value, key)) &&
33376 !(skipIndexes && (
33377 // Safari 9 has enumerable `arguments.length` in strict mode.
33378 key == 'length' ||
33379 // Node.js 0.10 has enumerable non-index properties on buffers.
33380 (isBuff && (key == 'offset' || key == 'parent')) ||
33381 // PhantomJS 2 has enumerable non-index properties on typed arrays.
33382 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
33383 // Skip index properties.
33384 isIndex(key, length)
33385 ))) {
33386 result.push(key);
33387 }
33388 }
33389 return result;
33390 }
33391
33392 /**
33393 * A specialized version of `_.sample` for arrays.
33394 *
33395 * @private
33396 * @param {Array} array The array to sample.
33397 * @returns {*} Returns the random element.
33398 */
33399 function arraySample(array) {
33400 var length = array.length;
33401 return length ? array[baseRandom(0, length - 1)] : undefined;
33402 }
33403
33404 /**
33405 * A specialized version of `_.sampleSize` for arrays.
33406 *
33407 * @private
33408 * @param {Array} array The array to sample.
33409 * @param {number} n The number of elements to sample.
33410 * @returns {Array} Returns the random elements.
33411 */
33412 function arraySampleSize(array, n) {
33413 return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));
33414 }
33415
33416 /**
33417 * A specialized version of `_.shuffle` for arrays.
33418 *
33419 * @private
33420 * @param {Array} array The array to shuffle.
33421 * @returns {Array} Returns the new shuffled array.
33422 */
33423 function arrayShuffle(array) {
33424 return shuffleSelf(copyArray(array));
33425 }
33426
33427 /**
33428 * This function is like `assignValue` except that it doesn't assign
33429 * `undefined` values.
33430 *
33431 * @private
33432 * @param {Object} object The object to modify.
33433 * @param {string} key The key of the property to assign.
33434 * @param {*} value The value to assign.
33435 */
33436 function assignMergeValue(object, key, value) {
33437 if ((value !== undefined && !eq(object[key], value)) ||
33438 (value === undefined && !(key in object))) {
33439 baseAssignValue(object, key, value);
33440 }
33441 }
33442
33443 /**
33444 * Assigns `value` to `key` of `object` if the existing value is not equivalent
33445 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
33446 * for equality comparisons.
33447 *
33448 * @private
33449 * @param {Object} object The object to modify.
33450 * @param {string} key The key of the property to assign.
33451 * @param {*} value The value to assign.
33452 */
33453 function assignValue(object, key, value) {
33454 var objValue = object[key];
33455 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
33456 (value === undefined && !(key in object))) {
33457 baseAssignValue(object, key, value);
33458 }
33459 }
33460
33461 /**
33462 * Gets the index at which the `key` is found in `array` of key-value pairs.
33463 *
33464 * @private
33465 * @param {Array} array The array to inspect.
33466 * @param {*} key The key to search for.
33467 * @returns {number} Returns the index of the matched value, else `-1`.
33468 */
33469 function assocIndexOf(array, key) {
33470 var length = array.length;
33471 while (length--) {
33472 if (eq(array[length][0], key)) {
33473 return length;
33474 }
33475 }
33476 return -1;
33477 }
33478
33479 /**
33480 * Aggregates elements of `collection` on `accumulator` with keys transformed
33481 * by `iteratee` and values set by `setter`.
33482 *
33483 * @private
33484 * @param {Array|Object} collection The collection to iterate over.
33485 * @param {Function} setter The function to set `accumulator` values.
33486 * @param {Function} iteratee The iteratee to transform keys.
33487 * @param {Object} accumulator The initial aggregated object.
33488 * @returns {Function} Returns `accumulator`.
33489 */
33490 function baseAggregator(collection, setter, iteratee, accumulator) {
33491 baseEach(collection, function(value, key, collection) {
33492 setter(accumulator, value, iteratee(value), collection);
33493 });
33494 return accumulator;
33495 }
33496
33497 /**
33498 * The base implementation of `_.assign` without support for multiple sources
33499 * or `customizer` functions.
33500 *
33501 * @private
33502 * @param {Object} object The destination object.
33503 * @param {Object} source The source object.
33504 * @returns {Object} Returns `object`.
33505 */
33506 function baseAssign(object, source) {
33507 return object && copyObject(source, keys(source), object);
33508 }
33509
33510 /**
33511 * The base implementation of `_.assignIn` without support for multiple sources
33512 * or `customizer` functions.
33513 *
33514 * @private
33515 * @param {Object} object The destination object.
33516 * @param {Object} source The source object.
33517 * @returns {Object} Returns `object`.
33518 */
33519 function baseAssignIn(object, source) {
33520 return object && copyObject(source, keysIn(source), object);
33521 }
33522
33523 /**
33524 * The base implementation of `assignValue` and `assignMergeValue` without
33525 * value checks.
33526 *
33527 * @private
33528 * @param {Object} object The object to modify.
33529 * @param {string} key The key of the property to assign.
33530 * @param {*} value The value to assign.
33531 */
33532 function baseAssignValue(object, key, value) {
33533 if (key == '__proto__' && defineProperty) {
33534 defineProperty(object, key, {
33535 'configurable': true,
33536 'enumerable': true,
33537 'value': value,
33538 'writable': true
33539 });
33540 } else {
33541 object[key] = value;
33542 }
33543 }
33544
33545 /**
33546 * The base implementation of `_.at` without support for individual paths.
33547 *
33548 * @private
33549 * @param {Object} object The object to iterate over.
33550 * @param {string[]} paths The property paths to pick.
33551 * @returns {Array} Returns the picked elements.
33552 */
33553 function baseAt(object, paths) {
33554 var index = -1,
33555 length = paths.length,
33556 result = Array(length),
33557 skip = object == null;
33558
33559 while (++index < length) {
33560 result[index] = skip ? undefined : get(object, paths[index]);
33561 }
33562 return result;
33563 }
33564
33565 /**
33566 * The base implementation of `_.clamp` which doesn't coerce arguments.
33567 *
33568 * @private
33569 * @param {number} number The number to clamp.
33570 * @param {number} [lower] The lower bound.
33571 * @param {number} upper The upper bound.
33572 * @returns {number} Returns the clamped number.
33573 */
33574 function baseClamp(number, lower, upper) {
33575 if (number === number) {
33576 if (upper !== undefined) {
33577 number = number <= upper ? number : upper;
33578 }
33579 if (lower !== undefined) {
33580 number = number >= lower ? number : lower;
33581 }
33582 }
33583 return number;
33584 }
33585
33586 /**
33587 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
33588 * traversed objects.
33589 *
33590 * @private
33591 * @param {*} value The value to clone.
33592 * @param {boolean} bitmask The bitmask flags.
33593 * 1 - Deep clone
33594 * 2 - Flatten inherited properties
33595 * 4 - Clone symbols
33596 * @param {Function} [customizer] The function to customize cloning.
33597 * @param {string} [key] The key of `value`.
33598 * @param {Object} [object] The parent object of `value`.
33599 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
33600 * @returns {*} Returns the cloned value.
33601 */
33602 function baseClone(value, bitmask, customizer, key, object, stack) {
33603 var result,
33604 isDeep = bitmask & CLONE_DEEP_FLAG,
33605 isFlat = bitmask & CLONE_FLAT_FLAG,
33606 isFull = bitmask & CLONE_SYMBOLS_FLAG;
33607
33608 if (customizer) {
33609 result = object ? customizer(value, key, object, stack) : customizer(value);
33610 }
33611 if (result !== undefined) {
33612 return result;
33613 }
33614 if (!isObject(value)) {
33615 return value;
33616 }
33617 var isArr = isArray(value);
33618 if (isArr) {
33619 result = initCloneArray(value);
33620 if (!isDeep) {
33621 return copyArray(value, result);
33622 }
33623 } else {
33624 var tag = getTag(value),
33625 isFunc = tag == funcTag || tag == genTag;
33626
33627 if (isBuffer(value)) {
33628 return cloneBuffer(value, isDeep);
33629 }
33630 if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
33631 result = (isFlat || isFunc) ? {} : initCloneObject(value);
33632 if (!isDeep) {
33633 return isFlat
33634 ? copySymbolsIn(value, baseAssignIn(result, value))
33635 : copySymbols(value, baseAssign(result, value));
33636 }
33637 } else {
33638 if (!cloneableTags[tag]) {
33639 return object ? value : {};
33640 }
33641 result = initCloneByTag(value, tag, isDeep);
33642 }
33643 }
33644 // Check for circular references and return its corresponding clone.
33645 stack || (stack = new Stack);
33646 var stacked = stack.get(value);
33647 if (stacked) {
33648 return stacked;
33649 }
33650 stack.set(value, result);
33651
33652 if (isSet(value)) {
33653 value.forEach(function(subValue) {
33654 result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
33655 });
33656 } else if (isMap(value)) {
33657 value.forEach(function(subValue, key) {
33658 result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
33659 });
33660 }
33661
33662 var keysFunc = isFull
33663 ? (isFlat ? getAllKeysIn : getAllKeys)
33664 : (isFlat ? keysIn : keys);
33665
33666 var props = isArr ? undefined : keysFunc(value);
33667 arrayEach(props || value, function(subValue, key) {
33668 if (props) {
33669 key = subValue;
33670 subValue = value[key];
33671 }
33672 // Recursively populate clone (susceptible to call stack limits).
33673 assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
33674 });
33675 return result;
33676 }
33677
33678 /**
33679 * The base implementation of `_.conforms` which doesn't clone `source`.
33680 *
33681 * @private
33682 * @param {Object} source The object of property predicates to conform to.
33683 * @returns {Function} Returns the new spec function.
33684 */
33685 function baseConforms(source) {
33686 var props = keys(source);
33687 return function(object) {
33688 return baseConformsTo(object, source, props);
33689 };
33690 }
33691
33692 /**
33693 * The base implementation of `_.conformsTo` which accepts `props` to check.
33694 *
33695 * @private
33696 * @param {Object} object The object to inspect.
33697 * @param {Object} source The object of property predicates to conform to.
33698 * @returns {boolean} Returns `true` if `object` conforms, else `false`.
33699 */
33700 function baseConformsTo(object, source, props) {
33701 var length = props.length;
33702 if (object == null) {
33703 return !length;
33704 }
33705 object = Object(object);
33706 while (length--) {
33707 var key = props[length],
33708 predicate = source[key],
33709 value = object[key];
33710
33711 if ((value === undefined && !(key in object)) || !predicate(value)) {
33712 return false;
33713 }
33714 }
33715 return true;
33716 }
33717
33718 /**
33719 * The base implementation of `_.delay` and `_.defer` which accepts `args`
33720 * to provide to `func`.
33721 *
33722 * @private
33723 * @param {Function} func The function to delay.
33724 * @param {number} wait The number of milliseconds to delay invocation.
33725 * @param {Array} args The arguments to provide to `func`.
33726 * @returns {number|Object} Returns the timer id or timeout object.
33727 */
33728 function baseDelay(func, wait, args) {
33729 if (typeof func != 'function') {
33730 throw new TypeError(FUNC_ERROR_TEXT);
33731 }
33732 return setTimeout(function() { func.apply(undefined, args); }, wait);
33733 }
33734
33735 /**
33736 * The base implementation of methods like `_.difference` without support
33737 * for excluding multiple arrays or iteratee shorthands.
33738 *
33739 * @private
33740 * @param {Array} array The array to inspect.
33741 * @param {Array} values The values to exclude.
33742 * @param {Function} [iteratee] The iteratee invoked per element.
33743 * @param {Function} [comparator] The comparator invoked per element.
33744 * @returns {Array} Returns the new array of filtered values.
33745 */
33746 function baseDifference(array, values, iteratee, comparator) {
33747 var index = -1,
33748 includes = arrayIncludes,
33749 isCommon = true,
33750 length = array.length,
33751 result = [],
33752 valuesLength = values.length;
33753
33754 if (!length) {
33755 return result;
33756 }
33757 if (iteratee) {
33758 values = arrayMap(values, baseUnary(iteratee));
33759 }
33760 if (comparator) {
33761 includes = arrayIncludesWith;
33762 isCommon = false;
33763 }
33764 else if (values.length >= LARGE_ARRAY_SIZE) {
33765 includes = cacheHas;
33766 isCommon = false;
33767 values = new SetCache(values);
33768 }
33769 outer:
33770 while (++index < length) {
33771 var value = array[index],
33772 computed = iteratee == null ? value : iteratee(value);
33773
33774 value = (comparator || value !== 0) ? value : 0;
33775 if (isCommon && computed === computed) {
33776 var valuesIndex = valuesLength;
33777 while (valuesIndex--) {
33778 if (values[valuesIndex] === computed) {
33779 continue outer;
33780 }
33781 }
33782 result.push(value);
33783 }
33784 else if (!includes(values, computed, comparator)) {
33785 result.push(value);
33786 }
33787 }
33788 return result;
33789 }
33790
33791 /**
33792 * The base implementation of `_.forEach` without support for iteratee shorthands.
33793 *
33794 * @private
33795 * @param {Array|Object} collection The collection to iterate over.
33796 * @param {Function} iteratee The function invoked per iteration.
33797 * @returns {Array|Object} Returns `collection`.
33798 */
33799 var baseEach = createBaseEach(baseForOwn);
33800
33801 /**
33802 * The base implementation of `_.forEachRight` without support for iteratee shorthands.
33803 *
33804 * @private
33805 * @param {Array|Object} collection The collection to iterate over.
33806 * @param {Function} iteratee The function invoked per iteration.
33807 * @returns {Array|Object} Returns `collection`.
33808 */
33809 var baseEachRight = createBaseEach(baseForOwnRight, true);
33810
33811 /**
33812 * The base implementation of `_.every` without support for iteratee shorthands.
33813 *
33814 * @private
33815 * @param {Array|Object} collection The collection to iterate over.
33816 * @param {Function} predicate The function invoked per iteration.
33817 * @returns {boolean} Returns `true` if all elements pass the predicate check,
33818 * else `false`
33819 */
33820 function baseEvery(collection, predicate) {
33821 var result = true;
33822 baseEach(collection, function(value, index, collection) {
33823 result = !!predicate(value, index, collection);
33824 return result;
33825 });
33826 return result;
33827 }
33828
33829 /**
33830 * The base implementation of methods like `_.max` and `_.min` which accepts a
33831 * `comparator` to determine the extremum value.
33832 *
33833 * @private
33834 * @param {Array} array The array to iterate over.
33835 * @param {Function} iteratee The iteratee invoked per iteration.
33836 * @param {Function} comparator The comparator used to compare values.
33837 * @returns {*} Returns the extremum value.
33838 */
33839 function baseExtremum(array, iteratee, comparator) {
33840 var index = -1,
33841 length = array.length;
33842
33843 while (++index < length) {
33844 var value = array[index],
33845 current = iteratee(value);
33846
33847 if (current != null && (computed === undefined
33848 ? (current === current && !isSymbol(current))
33849 : comparator(current, computed)
33850 )) {
33851 var computed = current,
33852 result = value;
33853 }
33854 }
33855 return result;
33856 }
33857
33858 /**
33859 * The base implementation of `_.fill` without an iteratee call guard.
33860 *
33861 * @private
33862 * @param {Array} array The array to fill.
33863 * @param {*} value The value to fill `array` with.
33864 * @param {number} [start=0] The start position.
33865 * @param {number} [end=array.length] The end position.
33866 * @returns {Array} Returns `array`.
33867 */
33868 function baseFill(array, value, start, end) {
33869 var length = array.length;
33870
33871 start = toInteger(start);
33872 if (start < 0) {
33873 start = -start > length ? 0 : (length + start);
33874 }
33875 end = (end === undefined || end > length) ? length : toInteger(end);
33876 if (end < 0) {
33877 end += length;
33878 }
33879 end = start > end ? 0 : toLength(end);
33880 while (start < end) {
33881 array[start++] = value;
33882 }
33883 return array;
33884 }
33885
33886 /**
33887 * The base implementation of `_.filter` without support for iteratee shorthands.
33888 *
33889 * @private
33890 * @param {Array|Object} collection The collection to iterate over.
33891 * @param {Function} predicate The function invoked per iteration.
33892 * @returns {Array} Returns the new filtered array.
33893 */
33894 function baseFilter(collection, predicate) {
33895 var result = [];
33896 baseEach(collection, function(value, index, collection) {
33897 if (predicate(value, index, collection)) {
33898 result.push(value);
33899 }
33900 });
33901 return result;
33902 }
33903
33904 /**
33905 * The base implementation of `_.flatten` with support for restricting flattening.
33906 *
33907 * @private
33908 * @param {Array} array The array to flatten.
33909 * @param {number} depth The maximum recursion depth.
33910 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
33911 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
33912 * @param {Array} [result=[]] The initial result value.
33913 * @returns {Array} Returns the new flattened array.
33914 */
33915 function baseFlatten(array, depth, predicate, isStrict, result) {
33916 var index = -1,
33917 length = array.length;
33918
33919 predicate || (predicate = isFlattenable);
33920 result || (result = []);
33921
33922 while (++index < length) {
33923 var value = array[index];
33924 if (depth > 0 && predicate(value)) {
33925 if (depth > 1) {
33926 // Recursively flatten arrays (susceptible to call stack limits).
33927 baseFlatten(value, depth - 1, predicate, isStrict, result);
33928 } else {
33929 arrayPush(result, value);
33930 }
33931 } else if (!isStrict) {
33932 result[result.length] = value;
33933 }
33934 }
33935 return result;
33936 }
33937
33938 /**
33939 * The base implementation of `baseForOwn` which iterates over `object`
33940 * properties returned by `keysFunc` and invokes `iteratee` for each property.
33941 * Iteratee functions may exit iteration early by explicitly returning `false`.
33942 *
33943 * @private
33944 * @param {Object} object The object to iterate over.
33945 * @param {Function} iteratee The function invoked per iteration.
33946 * @param {Function} keysFunc The function to get the keys of `object`.
33947 * @returns {Object} Returns `object`.
33948 */
33949 var baseFor = createBaseFor();
33950
33951 /**
33952 * This function is like `baseFor` except that it iterates over properties
33953 * in the opposite order.
33954 *
33955 * @private
33956 * @param {Object} object The object to iterate over.
33957 * @param {Function} iteratee The function invoked per iteration.
33958 * @param {Function} keysFunc The function to get the keys of `object`.
33959 * @returns {Object} Returns `object`.
33960 */
33961 var baseForRight = createBaseFor(true);
33962
33963 /**
33964 * The base implementation of `_.forOwn` without support for iteratee shorthands.
33965 *
33966 * @private
33967 * @param {Object} object The object to iterate over.
33968 * @param {Function} iteratee The function invoked per iteration.
33969 * @returns {Object} Returns `object`.
33970 */
33971 function baseForOwn(object, iteratee) {
33972 return object && baseFor(object, iteratee, keys);
33973 }
33974
33975 /**
33976 * The base implementation of `_.forOwnRight` without support for iteratee shorthands.
33977 *
33978 * @private
33979 * @param {Object} object The object to iterate over.
33980 * @param {Function} iteratee The function invoked per iteration.
33981 * @returns {Object} Returns `object`.
33982 */
33983 function baseForOwnRight(object, iteratee) {
33984 return object && baseForRight(object, iteratee, keys);
33985 }
33986
33987 /**
33988 * The base implementation of `_.functions` which creates an array of
33989 * `object` function property names filtered from `props`.
33990 *
33991 * @private
33992 * @param {Object} object The object to inspect.
33993 * @param {Array} props The property names to filter.
33994 * @returns {Array} Returns the function names.
33995 */
33996 function baseFunctions(object, props) {
33997 return arrayFilter(props, function(key) {
33998 return isFunction(object[key]);
33999 });
34000 }
34001
34002 /**
34003 * The base implementation of `_.get` without support for default values.
34004 *
34005 * @private
34006 * @param {Object} object The object to query.
34007 * @param {Array|string} path The path of the property to get.
34008 * @returns {*} Returns the resolved value.
34009 */
34010 function baseGet(object, path) {
34011 path = castPath(path, object);
34012
34013 var index = 0,
34014 length = path.length;
34015
34016 while (object != null && index < length) {
34017 object = object[toKey(path[index++])];
34018 }
34019 return (index && index == length) ? object : undefined;
34020 }
34021
34022 /**
34023 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
34024 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
34025 * symbols of `object`.
34026 *
34027 * @private
34028 * @param {Object} object The object to query.
34029 * @param {Function} keysFunc The function to get the keys of `object`.
34030 * @param {Function} symbolsFunc The function to get the symbols of `object`.
34031 * @returns {Array} Returns the array of property names and symbols.
34032 */
34033 function baseGetAllKeys(object, keysFunc, symbolsFunc) {
34034 var result = keysFunc(object);
34035 return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
34036 }
34037
34038 /**
34039 * The base implementation of `getTag` without fallbacks for buggy environments.
34040 *
34041 * @private
34042 * @param {*} value The value to query.
34043 * @returns {string} Returns the `toStringTag`.
34044 */
34045 function baseGetTag(value) {
34046 if (value == null) {
34047 return value === undefined ? undefinedTag : nullTag;
34048 }
34049 return (symToStringTag && symToStringTag in Object(value))
34050 ? getRawTag(value)
34051 : objectToString(value);
34052 }
34053
34054 /**
34055 * The base implementation of `_.gt` which doesn't coerce arguments.
34056 *
34057 * @private
34058 * @param {*} value The value to compare.
34059 * @param {*} other The other value to compare.
34060 * @returns {boolean} Returns `true` if `value` is greater than `other`,
34061 * else `false`.
34062 */
34063 function baseGt(value, other) {
34064 return value > other;
34065 }
34066
34067 /**
34068 * The base implementation of `_.has` without support for deep paths.
34069 *
34070 * @private
34071 * @param {Object} [object] The object to query.
34072 * @param {Array|string} key The key to check.
34073 * @returns {boolean} Returns `true` if `key` exists, else `false`.
34074 */
34075 function baseHas(object, key) {
34076 return object != null && hasOwnProperty.call(object, key);
34077 }
34078
34079 /**
34080 * The base implementation of `_.hasIn` without support for deep paths.
34081 *
34082 * @private
34083 * @param {Object} [object] The object to query.
34084 * @param {Array|string} key The key to check.
34085 * @returns {boolean} Returns `true` if `key` exists, else `false`.
34086 */
34087 function baseHasIn(object, key) {
34088 return object != null && key in Object(object);
34089 }
34090
34091 /**
34092 * The base implementation of `_.inRange` which doesn't coerce arguments.
34093 *
34094 * @private
34095 * @param {number} number The number to check.
34096 * @param {number} start The start of the range.
34097 * @param {number} end The end of the range.
34098 * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
34099 */
34100 function baseInRange(number, start, end) {
34101 return number >= nativeMin(start, end) && number < nativeMax(start, end);
34102 }
34103
34104 /**
34105 * The base implementation of methods like `_.intersection`, without support
34106 * for iteratee shorthands, that accepts an array of arrays to inspect.
34107 *
34108 * @private
34109 * @param {Array} arrays The arrays to inspect.
34110 * @param {Function} [iteratee] The iteratee invoked per element.
34111 * @param {Function} [comparator] The comparator invoked per element.
34112 * @returns {Array} Returns the new array of shared values.
34113 */
34114 function baseIntersection(arrays, iteratee, comparator) {
34115 var includes = comparator ? arrayIncludesWith : arrayIncludes,
34116 length = arrays[0].length,
34117 othLength = arrays.length,
34118 othIndex = othLength,
34119 caches = Array(othLength),
34120 maxLength = Infinity,
34121 result = [];
34122
34123 while (othIndex--) {
34124 var array = arrays[othIndex];
34125 if (othIndex && iteratee) {
34126 array = arrayMap(array, baseUnary(iteratee));
34127 }
34128 maxLength = nativeMin(array.length, maxLength);
34129 caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
34130 ? new SetCache(othIndex && array)
34131 : undefined;
34132 }
34133 array = arrays[0];
34134
34135 var index = -1,
34136 seen = caches[0];
34137
34138 outer:
34139 while (++index < length && result.length < maxLength) {
34140 var value = array[index],
34141 computed = iteratee ? iteratee(value) : value;
34142
34143 value = (comparator || value !== 0) ? value : 0;
34144 if (!(seen
34145 ? cacheHas(seen, computed)
34146 : includes(result, computed, comparator)
34147 )) {
34148 othIndex = othLength;
34149 while (--othIndex) {
34150 var cache = caches[othIndex];
34151 if (!(cache
34152 ? cacheHas(cache, computed)
34153 : includes(arrays[othIndex], computed, comparator))
34154 ) {
34155 continue outer;
34156 }
34157 }
34158 if (seen) {
34159 seen.push(computed);
34160 }
34161 result.push(value);
34162 }
34163 }
34164 return result;
34165 }
34166
34167 /**
34168 * The base implementation of `_.invert` and `_.invertBy` which inverts
34169 * `object` with values transformed by `iteratee` and set by `setter`.
34170 *
34171 * @private
34172 * @param {Object} object The object to iterate over.
34173 * @param {Function} setter The function to set `accumulator` values.
34174 * @param {Function} iteratee The iteratee to transform values.
34175 * @param {Object} accumulator The initial inverted object.
34176 * @returns {Function} Returns `accumulator`.
34177 */
34178 function baseInverter(object, setter, iteratee, accumulator) {
34179 baseForOwn(object, function(value, key, object) {
34180 setter(accumulator, iteratee(value), key, object);
34181 });
34182 return accumulator;
34183 }
34184
34185 /**
34186 * The base implementation of `_.invoke` without support for individual
34187 * method arguments.
34188 *
34189 * @private
34190 * @param {Object} object The object to query.
34191 * @param {Array|string} path The path of the method to invoke.
34192 * @param {Array} args The arguments to invoke the method with.
34193 * @returns {*} Returns the result of the invoked method.
34194 */
34195 function baseInvoke(object, path, args) {
34196 path = castPath(path, object);
34197 object = parent(object, path);
34198 var func = object == null ? object : object[toKey(last(path))];
34199 return func == null ? undefined : apply(func, object, args);
34200 }
34201
34202 /**
34203 * The base implementation of `_.isArguments`.
34204 *
34205 * @private
34206 * @param {*} value The value to check.
34207 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
34208 */
34209 function baseIsArguments(value) {
34210 return isObjectLike(value) && baseGetTag(value) == argsTag;
34211 }
34212
34213 /**
34214 * The base implementation of `_.isArrayBuffer` without Node.js optimizations.
34215 *
34216 * @private
34217 * @param {*} value The value to check.
34218 * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
34219 */
34220 function baseIsArrayBuffer(value) {
34221 return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
34222 }
34223
34224 /**
34225 * The base implementation of `_.isDate` without Node.js optimizations.
34226 *
34227 * @private
34228 * @param {*} value The value to check.
34229 * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
34230 */
34231 function baseIsDate(value) {
34232 return isObjectLike(value) && baseGetTag(value) == dateTag;
34233 }
34234
34235 /**
34236 * The base implementation of `_.isEqual` which supports partial comparisons
34237 * and tracks traversed objects.
34238 *
34239 * @private
34240 * @param {*} value The value to compare.
34241 * @param {*} other The other value to compare.
34242 * @param {boolean} bitmask The bitmask flags.
34243 * 1 - Unordered comparison
34244 * 2 - Partial comparison
34245 * @param {Function} [customizer] The function to customize comparisons.
34246 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
34247 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
34248 */
34249 function baseIsEqual(value, other, bitmask, customizer, stack) {
34250 if (value === other) {
34251 return true;
34252 }
34253 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
34254 return value !== value && other !== other;
34255 }
34256 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
34257 }
34258
34259 /**
34260 * A specialized version of `baseIsEqual` for arrays and objects which performs
34261 * deep comparisons and tracks traversed objects enabling objects with circular
34262 * references to be compared.
34263 *
34264 * @private
34265 * @param {Object} object The object to compare.
34266 * @param {Object} other The other object to compare.
34267 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
34268 * @param {Function} customizer The function to customize comparisons.
34269 * @param {Function} equalFunc The function to determine equivalents of values.
34270 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
34271 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
34272 */
34273 function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
34274 var objIsArr = isArray(object),
34275 othIsArr = isArray(other),
34276 objTag = objIsArr ? arrayTag : getTag(object),
34277 othTag = othIsArr ? arrayTag : getTag(other);
34278
34279 objTag = objTag == argsTag ? objectTag : objTag;
34280 othTag = othTag == argsTag ? objectTag : othTag;
34281
34282 var objIsObj = objTag == objectTag,
34283 othIsObj = othTag == objectTag,
34284 isSameTag = objTag == othTag;
34285
34286 if (isSameTag && isBuffer(object)) {
34287 if (!isBuffer(other)) {
34288 return false;
34289 }
34290 objIsArr = true;
34291 objIsObj = false;
34292 }
34293 if (isSameTag && !objIsObj) {
34294 stack || (stack = new Stack);
34295 return (objIsArr || isTypedArray(object))
34296 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
34297 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
34298 }
34299 if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
34300 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
34301 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
34302
34303 if (objIsWrapped || othIsWrapped) {
34304 var objUnwrapped = objIsWrapped ? object.value() : object,
34305 othUnwrapped = othIsWrapped ? other.value() : other;
34306
34307 stack || (stack = new Stack);
34308 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
34309 }
34310 }
34311 if (!isSameTag) {
34312 return false;
34313 }
34314 stack || (stack = new Stack);
34315 return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
34316 }
34317
34318 /**
34319 * The base implementation of `_.isMap` without Node.js optimizations.
34320 *
34321 * @private
34322 * @param {*} value The value to check.
34323 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
34324 */
34325 function baseIsMap(value) {
34326 return isObjectLike(value) && getTag(value) == mapTag;
34327 }
34328
34329 /**
34330 * The base implementation of `_.isMatch` without support for iteratee shorthands.
34331 *
34332 * @private
34333 * @param {Object} object The object to inspect.
34334 * @param {Object} source The object of property values to match.
34335 * @param {Array} matchData The property names, values, and compare flags to match.
34336 * @param {Function} [customizer] The function to customize comparisons.
34337 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
34338 */
34339 function baseIsMatch(object, source, matchData, customizer) {
34340 var index = matchData.length,
34341 length = index,
34342 noCustomizer = !customizer;
34343
34344 if (object == null) {
34345 return !length;
34346 }
34347 object = Object(object);
34348 while (index--) {
34349 var data = matchData[index];
34350 if ((noCustomizer && data[2])
34351 ? data[1] !== object[data[0]]
34352 : !(data[0] in object)
34353 ) {
34354 return false;
34355 }
34356 }
34357 while (++index < length) {
34358 data = matchData[index];
34359 var key = data[0],
34360 objValue = object[key],
34361 srcValue = data[1];
34362
34363 if (noCustomizer && data[2]) {
34364 if (objValue === undefined && !(key in object)) {
34365 return false;
34366 }
34367 } else {
34368 var stack = new Stack;
34369 if (customizer) {
34370 var result = customizer(objValue, srcValue, key, object, source, stack);
34371 }
34372 if (!(result === undefined
34373 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
34374 : result
34375 )) {
34376 return false;
34377 }
34378 }
34379 }
34380 return true;
34381 }
34382
34383 /**
34384 * The base implementation of `_.isNative` without bad shim checks.
34385 *
34386 * @private
34387 * @param {*} value The value to check.
34388 * @returns {boolean} Returns `true` if `value` is a native function,
34389 * else `false`.
34390 */
34391 function baseIsNative(value) {
34392 if (!isObject(value) || isMasked(value)) {
34393 return false;
34394 }
34395 var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
34396 return pattern.test(toSource(value));
34397 }
34398
34399 /**
34400 * The base implementation of `_.isRegExp` without Node.js optimizations.
34401 *
34402 * @private
34403 * @param {*} value The value to check.
34404 * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
34405 */
34406 function baseIsRegExp(value) {
34407 return isObjectLike(value) && baseGetTag(value) == regexpTag;
34408 }
34409
34410 /**
34411 * The base implementation of `_.isSet` without Node.js optimizations.
34412 *
34413 * @private
34414 * @param {*} value The value to check.
34415 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
34416 */
34417 function baseIsSet(value) {
34418 return isObjectLike(value) && getTag(value) == setTag;
34419 }
34420
34421 /**
34422 * The base implementation of `_.isTypedArray` without Node.js optimizations.
34423 *
34424 * @private
34425 * @param {*} value The value to check.
34426 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
34427 */
34428 function baseIsTypedArray(value) {
34429 return isObjectLike(value) &&
34430 isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
34431 }
34432
34433 /**
34434 * The base implementation of `_.iteratee`.
34435 *
34436 * @private
34437 * @param {*} [value=_.identity] The value to convert to an iteratee.
34438 * @returns {Function} Returns the iteratee.
34439 */
34440 function baseIteratee(value) {
34441 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
34442 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
34443 if (typeof value == 'function') {
34444 return value;
34445 }
34446 if (value == null) {
34447 return identity;
34448 }
34449 if (typeof value == 'object') {
34450 return isArray(value)
34451 ? baseMatchesProperty(value[0], value[1])
34452 : baseMatches(value);
34453 }
34454 return property(value);
34455 }
34456
34457 /**
34458 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
34459 *
34460 * @private
34461 * @param {Object} object The object to query.
34462 * @returns {Array} Returns the array of property names.
34463 */
34464 function baseKeys(object) {
34465 if (!isPrototype(object)) {
34466 return nativeKeys(object);
34467 }
34468 var result = [];
34469 for (var key in Object(object)) {
34470 if (hasOwnProperty.call(object, key) && key != 'constructor') {
34471 result.push(key);
34472 }
34473 }
34474 return result;
34475 }
34476
34477 /**
34478 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
34479 *
34480 * @private
34481 * @param {Object} object The object to query.
34482 * @returns {Array} Returns the array of property names.
34483 */
34484 function baseKeysIn(object) {
34485 if (!isObject(object)) {
34486 return nativeKeysIn(object);
34487 }
34488 var isProto = isPrototype(object),
34489 result = [];
34490
34491 for (var key in object) {
34492 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
34493 result.push(key);
34494 }
34495 }
34496 return result;
34497 }
34498
34499 /**
34500 * The base implementation of `_.lt` which doesn't coerce arguments.
34501 *
34502 * @private
34503 * @param {*} value The value to compare.
34504 * @param {*} other The other value to compare.
34505 * @returns {boolean} Returns `true` if `value` is less than `other`,
34506 * else `false`.
34507 */
34508 function baseLt(value, other) {
34509 return value < other;
34510 }
34511
34512 /**
34513 * The base implementation of `_.map` without support for iteratee shorthands.
34514 *
34515 * @private
34516 * @param {Array|Object} collection The collection to iterate over.
34517 * @param {Function} iteratee The function invoked per iteration.
34518 * @returns {Array} Returns the new mapped array.
34519 */
34520 function baseMap(collection, iteratee) {
34521 var index = -1,
34522 result = isArrayLike(collection) ? Array(collection.length) : [];
34523
34524 baseEach(collection, function(value, key, collection) {
34525 result[++index] = iteratee(value, key, collection);
34526 });
34527 return result;
34528 }
34529
34530 /**
34531 * The base implementation of `_.matches` which doesn't clone `source`.
34532 *
34533 * @private
34534 * @param {Object} source The object of property values to match.
34535 * @returns {Function} Returns the new spec function.
34536 */
34537 function baseMatches(source) {
34538 var matchData = getMatchData(source);
34539 if (matchData.length == 1 && matchData[0][2]) {
34540 return matchesStrictComparable(matchData[0][0], matchData[0][1]);
34541 }
34542 return function(object) {
34543 return object === source || baseIsMatch(object, source, matchData);
34544 };
34545 }
34546
34547 /**
34548 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
34549 *
34550 * @private
34551 * @param {string} path The path of the property to get.
34552 * @param {*} srcValue The value to match.
34553 * @returns {Function} Returns the new spec function.
34554 */
34555 function baseMatchesProperty(path, srcValue) {
34556 if (isKey(path) && isStrictComparable(srcValue)) {
34557 return matchesStrictComparable(toKey(path), srcValue);
34558 }
34559 return function(object) {
34560 var objValue = get(object, path);
34561 return (objValue === undefined && objValue === srcValue)
34562 ? hasIn(object, path)
34563 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
34564 };
34565 }
34566
34567 /**
34568 * The base implementation of `_.merge` without support for multiple sources.
34569 *
34570 * @private
34571 * @param {Object} object The destination object.
34572 * @param {Object} source The source object.
34573 * @param {number} srcIndex The index of `source`.
34574 * @param {Function} [customizer] The function to customize merged values.
34575 * @param {Object} [stack] Tracks traversed source values and their merged
34576 * counterparts.
34577 */
34578 function baseMerge(object, source, srcIndex, customizer, stack) {
34579 if (object === source) {
34580 return;
34581 }
34582 baseFor(source, function(srcValue, key) {
34583 stack || (stack = new Stack);
34584 if (isObject(srcValue)) {
34585 baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
34586 }
34587 else {
34588 var newValue = customizer
34589 ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
34590 : undefined;
34591
34592 if (newValue === undefined) {
34593 newValue = srcValue;
34594 }
34595 assignMergeValue(object, key, newValue);
34596 }
34597 }, keysIn);
34598 }
34599
34600 /**
34601 * A specialized version of `baseMerge` for arrays and objects which performs
34602 * deep merges and tracks traversed objects enabling objects with circular
34603 * references to be merged.
34604 *
34605 * @private
34606 * @param {Object} object The destination object.
34607 * @param {Object} source The source object.
34608 * @param {string} key The key of the value to merge.
34609 * @param {number} srcIndex The index of `source`.
34610 * @param {Function} mergeFunc The function to merge values.
34611 * @param {Function} [customizer] The function to customize assigned values.
34612 * @param {Object} [stack] Tracks traversed source values and their merged
34613 * counterparts.
34614 */
34615 function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
34616 var objValue = safeGet(object, key),
34617 srcValue = safeGet(source, key),
34618 stacked = stack.get(srcValue);
34619
34620 if (stacked) {
34621 assignMergeValue(object, key, stacked);
34622 return;
34623 }
34624 var newValue = customizer
34625 ? customizer(objValue, srcValue, (key + ''), object, source, stack)
34626 : undefined;
34627
34628 var isCommon = newValue === undefined;
34629
34630 if (isCommon) {
34631 var isArr = isArray(srcValue),
34632 isBuff = !isArr && isBuffer(srcValue),
34633 isTyped = !isArr && !isBuff && isTypedArray(srcValue);
34634
34635 newValue = srcValue;
34636 if (isArr || isBuff || isTyped) {
34637 if (isArray(objValue)) {
34638 newValue = objValue;
34639 }
34640 else if (isArrayLikeObject(objValue)) {
34641 newValue = copyArray(objValue);
34642 }
34643 else if (isBuff) {
34644 isCommon = false;
34645 newValue = cloneBuffer(srcValue, true);
34646 }
34647 else if (isTyped) {
34648 isCommon = false;
34649 newValue = cloneTypedArray(srcValue, true);
34650 }
34651 else {
34652 newValue = [];
34653 }
34654 }
34655 else if (isPlainObject(srcValue) || isArguments(srcValue)) {
34656 newValue = objValue;
34657 if (isArguments(objValue)) {
34658 newValue = toPlainObject(objValue);
34659 }
34660 else if (!isObject(objValue) || isFunction(objValue)) {
34661 newValue = initCloneObject(srcValue);
34662 }
34663 }
34664 else {
34665 isCommon = false;
34666 }
34667 }
34668 if (isCommon) {
34669 // Recursively merge objects and arrays (susceptible to call stack limits).
34670 stack.set(srcValue, newValue);
34671 mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
34672 stack['delete'](srcValue);
34673 }
34674 assignMergeValue(object, key, newValue);
34675 }
34676
34677 /**
34678 * The base implementation of `_.nth` which doesn't coerce arguments.
34679 *
34680 * @private
34681 * @param {Array} array The array to query.
34682 * @param {number} n The index of the element to return.
34683 * @returns {*} Returns the nth element of `array`.
34684 */
34685 function baseNth(array, n) {
34686 var length = array.length;
34687 if (!length) {
34688 return;
34689 }
34690 n += n < 0 ? length : 0;
34691 return isIndex(n, length) ? array[n] : undefined;
34692 }
34693
34694 /**
34695 * The base implementation of `_.orderBy` without param guards.
34696 *
34697 * @private
34698 * @param {Array|Object} collection The collection to iterate over.
34699 * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
34700 * @param {string[]} orders The sort orders of `iteratees`.
34701 * @returns {Array} Returns the new sorted array.
34702 */
34703 function baseOrderBy(collection, iteratees, orders) {
34704 var index = -1;
34705 iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee()));
34706
34707 var result = baseMap(collection, function(value, key, collection) {
34708 var criteria = arrayMap(iteratees, function(iteratee) {
34709 return iteratee(value);
34710 });
34711 return { 'criteria': criteria, 'index': ++index, 'value': value };
34712 });
34713
34714 return baseSortBy(result, function(object, other) {
34715 return compareMultiple(object, other, orders);
34716 });
34717 }
34718
34719 /**
34720 * The base implementation of `_.pick` without support for individual
34721 * property identifiers.
34722 *
34723 * @private
34724 * @param {Object} object The source object.
34725 * @param {string[]} paths The property paths to pick.
34726 * @returns {Object} Returns the new object.
34727 */
34728 function basePick(object, paths) {
34729 return basePickBy(object, paths, function(value, path) {
34730 return hasIn(object, path);
34731 });
34732 }
34733
34734 /**
34735 * The base implementation of `_.pickBy` without support for iteratee shorthands.
34736 *
34737 * @private
34738 * @param {Object} object The source object.
34739 * @param {string[]} paths The property paths to pick.
34740 * @param {Function} predicate The function invoked per property.
34741 * @returns {Object} Returns the new object.
34742 */
34743 function basePickBy(object, paths, predicate) {
34744 var index = -1,
34745 length = paths.length,
34746 result = {};
34747
34748 while (++index < length) {
34749 var path = paths[index],
34750 value = baseGet(object, path);
34751
34752 if (predicate(value, path)) {
34753 baseSet(result, castPath(path, object), value);
34754 }
34755 }
34756 return result;
34757 }
34758
34759 /**
34760 * A specialized version of `baseProperty` which supports deep paths.
34761 *
34762 * @private
34763 * @param {Array|string} path The path of the property to get.
34764 * @returns {Function} Returns the new accessor function.
34765 */
34766 function basePropertyDeep(path) {
34767 return function(object) {
34768 return baseGet(object, path);
34769 };
34770 }
34771
34772 /**
34773 * The base implementation of `_.pullAllBy` without support for iteratee
34774 * shorthands.
34775 *
34776 * @private
34777 * @param {Array} array The array to modify.
34778 * @param {Array} values The values to remove.
34779 * @param {Function} [iteratee] The iteratee invoked per element.
34780 * @param {Function} [comparator] The comparator invoked per element.
34781 * @returns {Array} Returns `array`.
34782 */
34783 function basePullAll(array, values, iteratee, comparator) {
34784 var indexOf = comparator ? baseIndexOfWith : baseIndexOf,
34785 index = -1,
34786 length = values.length,
34787 seen = array;
34788
34789 if (array === values) {
34790 values = copyArray(values);
34791 }
34792 if (iteratee) {
34793 seen = arrayMap(array, baseUnary(iteratee));
34794 }
34795 while (++index < length) {
34796 var fromIndex = 0,
34797 value = values[index],
34798 computed = iteratee ? iteratee(value) : value;
34799
34800 while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {
34801 if (seen !== array) {
34802 splice.call(seen, fromIndex, 1);
34803 }
34804 splice.call(array, fromIndex, 1);
34805 }
34806 }
34807 return array;
34808 }
34809
34810 /**
34811 * The base implementation of `_.pullAt` without support for individual
34812 * indexes or capturing the removed elements.
34813 *
34814 * @private
34815 * @param {Array} array The array to modify.
34816 * @param {number[]} indexes The indexes of elements to remove.
34817 * @returns {Array} Returns `array`.
34818 */
34819 function basePullAt(array, indexes) {
34820 var length = array ? indexes.length : 0,
34821 lastIndex = length - 1;
34822
34823 while (length--) {
34824 var index = indexes[length];
34825 if (length == lastIndex || index !== previous) {
34826 var previous = index;
34827 if (isIndex(index)) {
34828 splice.call(array, index, 1);
34829 } else {
34830 baseUnset(array, index);
34831 }
34832 }
34833 }
34834 return array;
34835 }
34836
34837 /**
34838 * The base implementation of `_.random` without support for returning
34839 * floating-point numbers.
34840 *
34841 * @private
34842 * @param {number} lower The lower bound.
34843 * @param {number} upper The upper bound.
34844 * @returns {number} Returns the random number.
34845 */
34846 function baseRandom(lower, upper) {
34847 return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
34848 }
34849
34850 /**
34851 * The base implementation of `_.range` and `_.rangeRight` which doesn't
34852 * coerce arguments.
34853 *
34854 * @private
34855 * @param {number} start The start of the range.
34856 * @param {number} end The end of the range.
34857 * @param {number} step The value to increment or decrement by.
34858 * @param {boolean} [fromRight] Specify iterating from right to left.
34859 * @returns {Array} Returns the range of numbers.
34860 */
34861 function baseRange(start, end, step, fromRight) {
34862 var index = -1,
34863 length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
34864 result = Array(length);
34865
34866 while (length--) {
34867 result[fromRight ? length : ++index] = start;
34868 start += step;
34869 }
34870 return result;
34871 }
34872
34873 /**
34874 * The base implementation of `_.repeat` which doesn't coerce arguments.
34875 *
34876 * @private
34877 * @param {string} string The string to repeat.
34878 * @param {number} n The number of times to repeat the string.
34879 * @returns {string} Returns the repeated string.
34880 */
34881 function baseRepeat(string, n) {
34882 var result = '';
34883 if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
34884 return result;
34885 }
34886 // Leverage the exponentiation by squaring algorithm for a faster repeat.
34887 // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
34888 do {
34889 if (n % 2) {
34890 result += string;
34891 }
34892 n = nativeFloor(n / 2);
34893 if (n) {
34894 string += string;
34895 }
34896 } while (n);
34897
34898 return result;
34899 }
34900
34901 /**
34902 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
34903 *
34904 * @private
34905 * @param {Function} func The function to apply a rest parameter to.
34906 * @param {number} [start=func.length-1] The start position of the rest parameter.
34907 * @returns {Function} Returns the new function.
34908 */
34909 function baseRest(func, start) {
34910 return setToString(overRest(func, start, identity), func + '');
34911 }
34912
34913 /**
34914 * The base implementation of `_.sample`.
34915 *
34916 * @private
34917 * @param {Array|Object} collection The collection to sample.
34918 * @returns {*} Returns the random element.
34919 */
34920 function baseSample(collection) {
34921 return arraySample(values(collection));
34922 }
34923
34924 /**
34925 * The base implementation of `_.sampleSize` without param guards.
34926 *
34927 * @private
34928 * @param {Array|Object} collection The collection to sample.
34929 * @param {number} n The number of elements to sample.
34930 * @returns {Array} Returns the random elements.
34931 */
34932 function baseSampleSize(collection, n) {
34933 var array = values(collection);
34934 return shuffleSelf(array, baseClamp(n, 0, array.length));
34935 }
34936
34937 /**
34938 * The base implementation of `_.set`.
34939 *
34940 * @private
34941 * @param {Object} object The object to modify.
34942 * @param {Array|string} path The path of the property to set.
34943 * @param {*} value The value to set.
34944 * @param {Function} [customizer] The function to customize path creation.
34945 * @returns {Object} Returns `object`.
34946 */
34947 function baseSet(object, path, value, customizer) {
34948 if (!isObject(object)) {
34949 return object;
34950 }
34951 path = castPath(path, object);
34952
34953 var index = -1,
34954 length = path.length,
34955 lastIndex = length - 1,
34956 nested = object;
34957
34958 while (nested != null && ++index < length) {
34959 var key = toKey(path[index]),
34960 newValue = value;
34961
34962 if (index != lastIndex) {
34963 var objValue = nested[key];
34964 newValue = customizer ? customizer(objValue, key, nested) : undefined;
34965 if (newValue === undefined) {
34966 newValue = isObject(objValue)
34967 ? objValue
34968 : (isIndex(path[index + 1]) ? [] : {});
34969 }
34970 }
34971 assignValue(nested, key, newValue);
34972 nested = nested[key];
34973 }
34974 return object;
34975 }
34976
34977 /**
34978 * The base implementation of `setData` without support for hot loop shorting.
34979 *
34980 * @private
34981 * @param {Function} func The function to associate metadata with.
34982 * @param {*} data The metadata.
34983 * @returns {Function} Returns `func`.
34984 */
34985 var baseSetData = !metaMap ? identity : function(func, data) {
34986 metaMap.set(func, data);
34987 return func;
34988 };
34989
34990 /**
34991 * The base implementation of `setToString` without support for hot loop shorting.
34992 *
34993 * @private
34994 * @param {Function} func The function to modify.
34995 * @param {Function} string The `toString` result.
34996 * @returns {Function} Returns `func`.
34997 */
34998 var baseSetToString = !defineProperty ? identity : function(func, string) {
34999 return defineProperty(func, 'toString', {
35000 'configurable': true,
35001 'enumerable': false,
35002 'value': constant(string),
35003 'writable': true
35004 });
35005 };
35006
35007 /**
35008 * The base implementation of `_.shuffle`.
35009 *
35010 * @private
35011 * @param {Array|Object} collection The collection to shuffle.
35012 * @returns {Array} Returns the new shuffled array.
35013 */
35014 function baseShuffle(collection) {
35015 return shuffleSelf(values(collection));
35016 }
35017
35018 /**
35019 * The base implementation of `_.slice` without an iteratee call guard.
35020 *
35021 * @private
35022 * @param {Array} array The array to slice.
35023 * @param {number} [start=0] The start position.
35024 * @param {number} [end=array.length] The end position.
35025 * @returns {Array} Returns the slice of `array`.
35026 */
35027 function baseSlice(array, start, end) {
35028 var index = -1,
35029 length = array.length;
35030
35031 if (start < 0) {
35032 start = -start > length ? 0 : (length + start);
35033 }
35034 end = end > length ? length : end;
35035 if (end < 0) {
35036 end += length;
35037 }
35038 length = start > end ? 0 : ((end - start) >>> 0);
35039 start >>>= 0;
35040
35041 var result = Array(length);
35042 while (++index < length) {
35043 result[index] = array[index + start];
35044 }
35045 return result;
35046 }
35047
35048 /**
35049 * The base implementation of `_.some` without support for iteratee shorthands.
35050 *
35051 * @private
35052 * @param {Array|Object} collection The collection to iterate over.
35053 * @param {Function} predicate The function invoked per iteration.
35054 * @returns {boolean} Returns `true` if any element passes the predicate check,
35055 * else `false`.
35056 */
35057 function baseSome(collection, predicate) {
35058 var result;
35059
35060 baseEach(collection, function(value, index, collection) {
35061 result = predicate(value, index, collection);
35062 return !result;
35063 });
35064 return !!result;
35065 }
35066
35067 /**
35068 * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which
35069 * performs a binary search of `array` to determine the index at which `value`
35070 * should be inserted into `array` in order to maintain its sort order.
35071 *
35072 * @private
35073 * @param {Array} array The sorted array to inspect.
35074 * @param {*} value The value to evaluate.
35075 * @param {boolean} [retHighest] Specify returning the highest qualified index.
35076 * @returns {number} Returns the index at which `value` should be inserted
35077 * into `array`.
35078 */
35079 function baseSortedIndex(array, value, retHighest) {
35080 var low = 0,
35081 high = array == null ? low : array.length;
35082
35083 if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
35084 while (low < high) {
35085 var mid = (low + high) >>> 1,
35086 computed = array[mid];
35087
35088 if (computed !== null && !isSymbol(computed) &&
35089 (retHighest ? (computed <= value) : (computed < value))) {
35090 low = mid + 1;
35091 } else {
35092 high = mid;
35093 }
35094 }
35095 return high;
35096 }
35097 return baseSortedIndexBy(array, value, identity, retHighest);
35098 }
35099
35100 /**
35101 * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`
35102 * which invokes `iteratee` for `value` and each element of `array` to compute
35103 * their sort ranking. The iteratee is invoked with one argument; (value).
35104 *
35105 * @private
35106 * @param {Array} array The sorted array to inspect.
35107 * @param {*} value The value to evaluate.
35108 * @param {Function} iteratee The iteratee invoked per element.
35109 * @param {boolean} [retHighest] Specify returning the highest qualified index.
35110 * @returns {number} Returns the index at which `value` should be inserted
35111 * into `array`.
35112 */
35113 function baseSortedIndexBy(array, value, iteratee, retHighest) {
35114 value = iteratee(value);
35115
35116 var low = 0,
35117 high = array == null ? 0 : array.length,
35118 valIsNaN = value !== value,
35119 valIsNull = value === null,
35120 valIsSymbol = isSymbol(value),
35121 valIsUndefined = value === undefined;
35122
35123 while (low < high) {
35124 var mid = nativeFloor((low + high) / 2),
35125 computed = iteratee(array[mid]),
35126 othIsDefined = computed !== undefined,
35127 othIsNull = computed === null,
35128 othIsReflexive = computed === computed,
35129 othIsSymbol = isSymbol(computed);
35130
35131 if (valIsNaN) {
35132 var setLow = retHighest || othIsReflexive;
35133 } else if (valIsUndefined) {
35134 setLow = othIsReflexive && (retHighest || othIsDefined);
35135 } else if (valIsNull) {
35136 setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
35137 } else if (valIsSymbol) {
35138 setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
35139 } else if (othIsNull || othIsSymbol) {
35140 setLow = false;
35141 } else {
35142 setLow = retHighest ? (computed <= value) : (computed < value);
35143 }
35144 if (setLow) {
35145 low = mid + 1;
35146 } else {
35147 high = mid;
35148 }
35149 }
35150 return nativeMin(high, MAX_ARRAY_INDEX);
35151 }
35152
35153 /**
35154 * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without
35155 * support for iteratee shorthands.
35156 *
35157 * @private
35158 * @param {Array} array The array to inspect.
35159 * @param {Function} [iteratee] The iteratee invoked per element.
35160 * @returns {Array} Returns the new duplicate free array.
35161 */
35162 function baseSortedUniq(array, iteratee) {
35163 var index = -1,
35164 length = array.length,
35165 resIndex = 0,
35166 result = [];
35167
35168 while (++index < length) {
35169 var value = array[index],
35170 computed = iteratee ? iteratee(value) : value;
35171
35172 if (!index || !eq(computed, seen)) {
35173 var seen = computed;
35174 result[resIndex++] = value === 0 ? 0 : value;
35175 }
35176 }
35177 return result;
35178 }
35179
35180 /**
35181 * The base implementation of `_.toNumber` which doesn't ensure correct
35182 * conversions of binary, hexadecimal, or octal string values.
35183 *
35184 * @private
35185 * @param {*} value The value to process.
35186 * @returns {number} Returns the number.
35187 */
35188 function baseToNumber(value) {
35189 if (typeof value == 'number') {
35190 return value;
35191 }
35192 if (isSymbol(value)) {
35193 return NAN;
35194 }
35195 return +value;
35196 }
35197
35198 /**
35199 * The base implementation of `_.toString` which doesn't convert nullish
35200 * values to empty strings.
35201 *
35202 * @private
35203 * @param {*} value The value to process.
35204 * @returns {string} Returns the string.
35205 */
35206 function baseToString(value) {
35207 // Exit early for strings to avoid a performance hit in some environments.
35208 if (typeof value == 'string') {
35209 return value;
35210 }
35211 if (isArray(value)) {
35212 // Recursively convert values (susceptible to call stack limits).
35213 return arrayMap(value, baseToString) + '';
35214 }
35215 if (isSymbol(value)) {
35216 return symbolToString ? symbolToString.call(value) : '';
35217 }
35218 var result = (value + '');
35219 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
35220 }
35221
35222 /**
35223 * The base implementation of `_.uniqBy` without support for iteratee shorthands.
35224 *
35225 * @private
35226 * @param {Array} array The array to inspect.
35227 * @param {Function} [iteratee] The iteratee invoked per element.
35228 * @param {Function} [comparator] The comparator invoked per element.
35229 * @returns {Array} Returns the new duplicate free array.
35230 */
35231 function baseUniq(array, iteratee, comparator) {
35232 var index = -1,
35233 includes = arrayIncludes,
35234 length = array.length,
35235 isCommon = true,
35236 result = [],
35237 seen = result;
35238
35239 if (comparator) {
35240 isCommon = false;
35241 includes = arrayIncludesWith;
35242 }
35243 else if (length >= LARGE_ARRAY_SIZE) {
35244 var set = iteratee ? null : createSet(array);
35245 if (set) {
35246 return setToArray(set);
35247 }
35248 isCommon = false;
35249 includes = cacheHas;
35250 seen = new SetCache;
35251 }
35252 else {
35253 seen = iteratee ? [] : result;
35254 }
35255 outer:
35256 while (++index < length) {
35257 var value = array[index],
35258 computed = iteratee ? iteratee(value) : value;
35259
35260 value = (comparator || value !== 0) ? value : 0;
35261 if (isCommon && computed === computed) {
35262 var seenIndex = seen.length;
35263 while (seenIndex--) {
35264 if (seen[seenIndex] === computed) {
35265 continue outer;
35266 }
35267 }
35268 if (iteratee) {
35269 seen.push(computed);
35270 }
35271 result.push(value);
35272 }
35273 else if (!includes(seen, computed, comparator)) {
35274 if (seen !== result) {
35275 seen.push(computed);
35276 }
35277 result.push(value);
35278 }
35279 }
35280 return result;
35281 }
35282
35283 /**
35284 * The base implementation of `_.unset`.
35285 *
35286 * @private
35287 * @param {Object} object The object to modify.
35288 * @param {Array|string} path The property path to unset.
35289 * @returns {boolean} Returns `true` if the property is deleted, else `false`.
35290 */
35291 function baseUnset(object, path) {
35292 path = castPath(path, object);
35293 object = parent(object, path);
35294 return object == null || delete object[toKey(last(path))];
35295 }
35296
35297 /**
35298 * The base implementation of `_.update`.
35299 *
35300 * @private
35301 * @param {Object} object The object to modify.
35302 * @param {Array|string} path The path of the property to update.
35303 * @param {Function} updater The function to produce the updated value.
35304 * @param {Function} [customizer] The function to customize path creation.
35305 * @returns {Object} Returns `object`.
35306 */
35307 function baseUpdate(object, path, updater, customizer) {
35308 return baseSet(object, path, updater(baseGet(object, path)), customizer);
35309 }
35310
35311 /**
35312 * The base implementation of methods like `_.dropWhile` and `_.takeWhile`
35313 * without support for iteratee shorthands.
35314 *
35315 * @private
35316 * @param {Array} array The array to query.
35317 * @param {Function} predicate The function invoked per iteration.
35318 * @param {boolean} [isDrop] Specify dropping elements instead of taking them.
35319 * @param {boolean} [fromRight] Specify iterating from right to left.
35320 * @returns {Array} Returns the slice of `array`.
35321 */
35322 function baseWhile(array, predicate, isDrop, fromRight) {
35323 var length = array.length,
35324 index = fromRight ? length : -1;
35325
35326 while ((fromRight ? index-- : ++index < length) &&
35327 predicate(array[index], index, array)) {}
35328
35329 return isDrop
35330 ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))
35331 : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));
35332 }
35333
35334 /**
35335 * The base implementation of `wrapperValue` which returns the result of
35336 * performing a sequence of actions on the unwrapped `value`, where each
35337 * successive action is supplied the return value of the previous.
35338 *
35339 * @private
35340 * @param {*} value The unwrapped value.
35341 * @param {Array} actions Actions to perform to resolve the unwrapped value.
35342 * @returns {*} Returns the resolved value.
35343 */
35344 function baseWrapperValue(value, actions) {
35345 var result = value;
35346 if (result instanceof LazyWrapper) {
35347 result = result.value();
35348 }
35349 return arrayReduce(actions, function(result, action) {
35350 return action.func.apply(action.thisArg, arrayPush([result], action.args));
35351 }, result);
35352 }
35353
35354 /**
35355 * The base implementation of methods like `_.xor`, without support for
35356 * iteratee shorthands, that accepts an array of arrays to inspect.
35357 *
35358 * @private
35359 * @param {Array} arrays The arrays to inspect.
35360 * @param {Function} [iteratee] The iteratee invoked per element.
35361 * @param {Function} [comparator] The comparator invoked per element.
35362 * @returns {Array} Returns the new array of values.
35363 */
35364 function baseXor(arrays, iteratee, comparator) {
35365 var length = arrays.length;
35366 if (length < 2) {
35367 return length ? baseUniq(arrays[0]) : [];
35368 }
35369 var index = -1,
35370 result = Array(length);
35371
35372 while (++index < length) {
35373 var array = arrays[index],
35374 othIndex = -1;
35375
35376 while (++othIndex < length) {
35377 if (othIndex != index) {
35378 result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
35379 }
35380 }
35381 }
35382 return baseUniq(baseFlatten(result, 1), iteratee, comparator);
35383 }
35384
35385 /**
35386 * This base implementation of `_.zipObject` which assigns values using `assignFunc`.
35387 *
35388 * @private
35389 * @param {Array} props The property identifiers.
35390 * @param {Array} values The property values.
35391 * @param {Function} assignFunc The function to assign values.
35392 * @returns {Object} Returns the new object.
35393 */
35394 function baseZipObject(props, values, assignFunc) {
35395 var index = -1,
35396 length = props.length,
35397 valsLength = values.length,
35398 result = {};
35399
35400 while (++index < length) {
35401 var value = index < valsLength ? values[index] : undefined;
35402 assignFunc(result, props[index], value);
35403 }
35404 return result;
35405 }
35406
35407 /**
35408 * Casts `value` to an empty array if it's not an array like object.
35409 *
35410 * @private
35411 * @param {*} value The value to inspect.
35412 * @returns {Array|Object} Returns the cast array-like object.
35413 */
35414 function castArrayLikeObject(value) {
35415 return isArrayLikeObject(value) ? value : [];
35416 }
35417
35418 /**
35419 * Casts `value` to `identity` if it's not a function.
35420 *
35421 * @private
35422 * @param {*} value The value to inspect.
35423 * @returns {Function} Returns cast function.
35424 */
35425 function castFunction(value) {
35426 return typeof value == 'function' ? value : identity;
35427 }
35428
35429 /**
35430 * Casts `value` to a path array if it's not one.
35431 *
35432 * @private
35433 * @param {*} value The value to inspect.
35434 * @param {Object} [object] The object to query keys on.
35435 * @returns {Array} Returns the cast property path array.
35436 */
35437 function castPath(value, object) {
35438 if (isArray(value)) {
35439 return value;
35440 }
35441 return isKey(value, object) ? [value] : stringToPath(toString(value));
35442 }
35443
35444 /**
35445 * A `baseRest` alias which can be replaced with `identity` by module
35446 * replacement plugins.
35447 *
35448 * @private
35449 * @type {Function}
35450 * @param {Function} func The function to apply a rest parameter to.
35451 * @returns {Function} Returns the new function.
35452 */
35453 var castRest = baseRest;
35454
35455 /**
35456 * Casts `array` to a slice if it's needed.
35457 *
35458 * @private
35459 * @param {Array} array The array to inspect.
35460 * @param {number} start The start position.
35461 * @param {number} [end=array.length] The end position.
35462 * @returns {Array} Returns the cast slice.
35463 */
35464 function castSlice(array, start, end) {
35465 var length = array.length;
35466 end = end === undefined ? length : end;
35467 return (!start && end >= length) ? array : baseSlice(array, start, end);
35468 }
35469
35470 /**
35471 * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).
35472 *
35473 * @private
35474 * @param {number|Object} id The timer id or timeout object of the timer to clear.
35475 */
35476 var clearTimeout = ctxClearTimeout || function(id) {
35477 return root.clearTimeout(id);
35478 };
35479
35480 /**
35481 * Creates a clone of `buffer`.
35482 *
35483 * @private
35484 * @param {Buffer} buffer The buffer to clone.
35485 * @param {boolean} [isDeep] Specify a deep clone.
35486 * @returns {Buffer} Returns the cloned buffer.
35487 */
35488 function cloneBuffer(buffer, isDeep) {
35489 if (isDeep) {
35490 return buffer.slice();
35491 }
35492 var length = buffer.length,
35493 result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
35494
35495 buffer.copy(result);
35496 return result;
35497 }
35498
35499 /**
35500 * Creates a clone of `arrayBuffer`.
35501 *
35502 * @private
35503 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
35504 * @returns {ArrayBuffer} Returns the cloned array buffer.
35505 */
35506 function cloneArrayBuffer(arrayBuffer) {
35507 var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
35508 new Uint8Array(result).set(new Uint8Array(arrayBuffer));
35509 return result;
35510 }
35511
35512 /**
35513 * Creates a clone of `dataView`.
35514 *
35515 * @private
35516 * @param {Object} dataView The data view to clone.
35517 * @param {boolean} [isDeep] Specify a deep clone.
35518 * @returns {Object} Returns the cloned data view.
35519 */
35520 function cloneDataView(dataView, isDeep) {
35521 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
35522 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
35523 }
35524
35525 /**
35526 * Creates a clone of `regexp`.
35527 *
35528 * @private
35529 * @param {Object} regexp The regexp to clone.
35530 * @returns {Object} Returns the cloned regexp.
35531 */
35532 function cloneRegExp(regexp) {
35533 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
35534 result.lastIndex = regexp.lastIndex;
35535 return result;
35536 }
35537
35538 /**
35539 * Creates a clone of the `symbol` object.
35540 *
35541 * @private
35542 * @param {Object} symbol The symbol object to clone.
35543 * @returns {Object} Returns the cloned symbol object.
35544 */
35545 function cloneSymbol(symbol) {
35546 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
35547 }
35548
35549 /**
35550 * Creates a clone of `typedArray`.
35551 *
35552 * @private
35553 * @param {Object} typedArray The typed array to clone.
35554 * @param {boolean} [isDeep] Specify a deep clone.
35555 * @returns {Object} Returns the cloned typed array.
35556 */
35557 function cloneTypedArray(typedArray, isDeep) {
35558 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
35559 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
35560 }
35561
35562 /**
35563 * Compares values to sort them in ascending order.
35564 *
35565 * @private
35566 * @param {*} value The value to compare.
35567 * @param {*} other The other value to compare.
35568 * @returns {number} Returns the sort order indicator for `value`.
35569 */
35570 function compareAscending(value, other) {
35571 if (value !== other) {
35572 var valIsDefined = value !== undefined,
35573 valIsNull = value === null,
35574 valIsReflexive = value === value,
35575 valIsSymbol = isSymbol(value);
35576
35577 var othIsDefined = other !== undefined,
35578 othIsNull = other === null,
35579 othIsReflexive = other === other,
35580 othIsSymbol = isSymbol(other);
35581
35582 if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
35583 (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
35584 (valIsNull && othIsDefined && othIsReflexive) ||
35585 (!valIsDefined && othIsReflexive) ||
35586 !valIsReflexive) {
35587 return 1;
35588 }
35589 if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
35590 (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
35591 (othIsNull && valIsDefined && valIsReflexive) ||
35592 (!othIsDefined && valIsReflexive) ||
35593 !othIsReflexive) {
35594 return -1;
35595 }
35596 }
35597 return 0;
35598 }
35599
35600 /**
35601 * Used by `_.orderBy` to compare multiple properties of a value to another
35602 * and stable sort them.
35603 *
35604 * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,
35605 * specify an order of "desc" for descending or "asc" for ascending sort order
35606 * of corresponding values.
35607 *
35608 * @private
35609 * @param {Object} object The object to compare.
35610 * @param {Object} other The other object to compare.
35611 * @param {boolean[]|string[]} orders The order to sort by for each property.
35612 * @returns {number} Returns the sort order indicator for `object`.
35613 */
35614 function compareMultiple(object, other, orders) {
35615 var index = -1,
35616 objCriteria = object.criteria,
35617 othCriteria = other.criteria,
35618 length = objCriteria.length,
35619 ordersLength = orders.length;
35620
35621 while (++index < length) {
35622 var result = compareAscending(objCriteria[index], othCriteria[index]);
35623 if (result) {
35624 if (index >= ordersLength) {
35625 return result;
35626 }
35627 var order = orders[index];
35628 return result * (order == 'desc' ? -1 : 1);
35629 }
35630 }
35631 // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
35632 // that causes it, under certain circumstances, to provide the same value for
35633 // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
35634 // for more details.
35635 //
35636 // This also ensures a stable sort in V8 and other engines.
35637 // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
35638 return object.index - other.index;
35639 }
35640
35641 /**
35642 * Creates an array that is the composition of partially applied arguments,
35643 * placeholders, and provided arguments into a single array of arguments.
35644 *
35645 * @private
35646 * @param {Array} args The provided arguments.
35647 * @param {Array} partials The arguments to prepend to those provided.
35648 * @param {Array} holders The `partials` placeholder indexes.
35649 * @params {boolean} [isCurried] Specify composing for a curried function.
35650 * @returns {Array} Returns the new array of composed arguments.
35651 */
35652 function composeArgs(args, partials, holders, isCurried) {
35653 var argsIndex = -1,
35654 argsLength = args.length,
35655 holdersLength = holders.length,
35656 leftIndex = -1,
35657 leftLength = partials.length,
35658 rangeLength = nativeMax(argsLength - holdersLength, 0),
35659 result = Array(leftLength + rangeLength),
35660 isUncurried = !isCurried;
35661
35662 while (++leftIndex < leftLength) {
35663 result[leftIndex] = partials[leftIndex];
35664 }
35665 while (++argsIndex < holdersLength) {
35666 if (isUncurried || argsIndex < argsLength) {
35667 result[holders[argsIndex]] = args[argsIndex];
35668 }
35669 }
35670 while (rangeLength--) {
35671 result[leftIndex++] = args[argsIndex++];
35672 }
35673 return result;
35674 }
35675
35676 /**
35677 * This function is like `composeArgs` except that the arguments composition
35678 * is tailored for `_.partialRight`.
35679 *
35680 * @private
35681 * @param {Array} args The provided arguments.
35682 * @param {Array} partials The arguments to append to those provided.
35683 * @param {Array} holders The `partials` placeholder indexes.
35684 * @params {boolean} [isCurried] Specify composing for a curried function.
35685 * @returns {Array} Returns the new array of composed arguments.
35686 */
35687 function composeArgsRight(args, partials, holders, isCurried) {
35688 var argsIndex = -1,
35689 argsLength = args.length,
35690 holdersIndex = -1,
35691 holdersLength = holders.length,
35692 rightIndex = -1,
35693 rightLength = partials.length,
35694 rangeLength = nativeMax(argsLength - holdersLength, 0),
35695 result = Array(rangeLength + rightLength),
35696 isUncurried = !isCurried;
35697
35698 while (++argsIndex < rangeLength) {
35699 result[argsIndex] = args[argsIndex];
35700 }
35701 var offset = argsIndex;
35702 while (++rightIndex < rightLength) {
35703 result[offset + rightIndex] = partials[rightIndex];
35704 }
35705 while (++holdersIndex < holdersLength) {
35706 if (isUncurried || argsIndex < argsLength) {
35707 result[offset + holders[holdersIndex]] = args[argsIndex++];
35708 }
35709 }
35710 return result;
35711 }
35712
35713 /**
35714 * Copies the values of `source` to `array`.
35715 *
35716 * @private
35717 * @param {Array} source The array to copy values from.
35718 * @param {Array} [array=[]] The array to copy values to.
35719 * @returns {Array} Returns `array`.
35720 */
35721 function copyArray(source, array) {
35722 var index = -1,
35723 length = source.length;
35724
35725 array || (array = Array(length));
35726 while (++index < length) {
35727 array[index] = source[index];
35728 }
35729 return array;
35730 }
35731
35732 /**
35733 * Copies properties of `source` to `object`.
35734 *
35735 * @private
35736 * @param {Object} source The object to copy properties from.
35737 * @param {Array} props The property identifiers to copy.
35738 * @param {Object} [object={}] The object to copy properties to.
35739 * @param {Function} [customizer] The function to customize copied values.
35740 * @returns {Object} Returns `object`.
35741 */
35742 function copyObject(source, props, object, customizer) {
35743 var isNew = !object;
35744 object || (object = {});
35745
35746 var index = -1,
35747 length = props.length;
35748
35749 while (++index < length) {
35750 var key = props[index];
35751
35752 var newValue = customizer
35753 ? customizer(object[key], source[key], key, object, source)
35754 : undefined;
35755
35756 if (newValue === undefined) {
35757 newValue = source[key];
35758 }
35759 if (isNew) {
35760 baseAssignValue(object, key, newValue);
35761 } else {
35762 assignValue(object, key, newValue);
35763 }
35764 }
35765 return object;
35766 }
35767
35768 /**
35769 * Copies own symbols of `source` to `object`.
35770 *
35771 * @private
35772 * @param {Object} source The object to copy symbols from.
35773 * @param {Object} [object={}] The object to copy symbols to.
35774 * @returns {Object} Returns `object`.
35775 */
35776 function copySymbols(source, object) {
35777 return copyObject(source, getSymbols(source), object);
35778 }
35779
35780 /**
35781 * Copies own and inherited symbols of `source` to `object`.
35782 *
35783 * @private
35784 * @param {Object} source The object to copy symbols from.
35785 * @param {Object} [object={}] The object to copy symbols to.
35786 * @returns {Object} Returns `object`.
35787 */
35788 function copySymbolsIn(source, object) {
35789 return copyObject(source, getSymbolsIn(source), object);
35790 }
35791
35792 /**
35793 * Creates a function like `_.groupBy`.
35794 *
35795 * @private
35796 * @param {Function} setter The function to set accumulator values.
35797 * @param {Function} [initializer] The accumulator object initializer.
35798 * @returns {Function} Returns the new aggregator function.
35799 */
35800 function createAggregator(setter, initializer) {
35801 return function(collection, iteratee) {
35802 var func = isArray(collection) ? arrayAggregator : baseAggregator,
35803 accumulator = initializer ? initializer() : {};
35804
35805 return func(collection, setter, getIteratee(iteratee, 2), accumulator);
35806 };
35807 }
35808
35809 /**
35810 * Creates a function like `_.assign`.
35811 *
35812 * @private
35813 * @param {Function} assigner The function to assign values.
35814 * @returns {Function} Returns the new assigner function.
35815 */
35816 function createAssigner(assigner) {
35817 return baseRest(function(object, sources) {
35818 var index = -1,
35819 length = sources.length,
35820 customizer = length > 1 ? sources[length - 1] : undefined,
35821 guard = length > 2 ? sources[2] : undefined;
35822
35823 customizer = (assigner.length > 3 && typeof customizer == 'function')
35824 ? (length--, customizer)
35825 : undefined;
35826
35827 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
35828 customizer = length < 3 ? undefined : customizer;
35829 length = 1;
35830 }
35831 object = Object(object);
35832 while (++index < length) {
35833 var source = sources[index];
35834 if (source) {
35835 assigner(object, source, index, customizer);
35836 }
35837 }
35838 return object;
35839 });
35840 }
35841
35842 /**
35843 * Creates a `baseEach` or `baseEachRight` function.
35844 *
35845 * @private
35846 * @param {Function} eachFunc The function to iterate over a collection.
35847 * @param {boolean} [fromRight] Specify iterating from right to left.
35848 * @returns {Function} Returns the new base function.
35849 */
35850 function createBaseEach(eachFunc, fromRight) {
35851 return function(collection, iteratee) {
35852 if (collection == null) {
35853 return collection;
35854 }
35855 if (!isArrayLike(collection)) {
35856 return eachFunc(collection, iteratee);
35857 }
35858 var length = collection.length,
35859 index = fromRight ? length : -1,
35860 iterable = Object(collection);
35861
35862 while ((fromRight ? index-- : ++index < length)) {
35863 if (iteratee(iterable[index], index, iterable) === false) {
35864 break;
35865 }
35866 }
35867 return collection;
35868 };
35869 }
35870
35871 /**
35872 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
35873 *
35874 * @private
35875 * @param {boolean} [fromRight] Specify iterating from right to left.
35876 * @returns {Function} Returns the new base function.
35877 */
35878 function createBaseFor(fromRight) {
35879 return function(object, iteratee, keysFunc) {
35880 var index = -1,
35881 iterable = Object(object),
35882 props = keysFunc(object),
35883 length = props.length;
35884
35885 while (length--) {
35886 var key = props[fromRight ? length : ++index];
35887 if (iteratee(iterable[key], key, iterable) === false) {
35888 break;
35889 }
35890 }
35891 return object;
35892 };
35893 }
35894
35895 /**
35896 * Creates a function that wraps `func` to invoke it with the optional `this`
35897 * binding of `thisArg`.
35898 *
35899 * @private
35900 * @param {Function} func The function to wrap.
35901 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
35902 * @param {*} [thisArg] The `this` binding of `func`.
35903 * @returns {Function} Returns the new wrapped function.
35904 */
35905 function createBind(func, bitmask, thisArg) {
35906 var isBind = bitmask & WRAP_BIND_FLAG,
35907 Ctor = createCtor(func);
35908
35909 function wrapper() {
35910 var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
35911 return fn.apply(isBind ? thisArg : this, arguments);
35912 }
35913 return wrapper;
35914 }
35915
35916 /**
35917 * Creates a function like `_.lowerFirst`.
35918 *
35919 * @private
35920 * @param {string} methodName The name of the `String` case method to use.
35921 * @returns {Function} Returns the new case function.
35922 */
35923 function createCaseFirst(methodName) {
35924 return function(string) {
35925 string = toString(string);
35926
35927 var strSymbols = hasUnicode(string)
35928 ? stringToArray(string)
35929 : undefined;
35930
35931 var chr = strSymbols
35932 ? strSymbols[0]
35933 : string.charAt(0);
35934
35935 var trailing = strSymbols
35936 ? castSlice(strSymbols, 1).join('')
35937 : string.slice(1);
35938
35939 return chr[methodName]() + trailing;
35940 };
35941 }
35942
35943 /**
35944 * Creates a function like `_.camelCase`.
35945 *
35946 * @private
35947 * @param {Function} callback The function to combine each word.
35948 * @returns {Function} Returns the new compounder function.
35949 */
35950 function createCompounder(callback) {
35951 return function(string) {
35952 return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');
35953 };
35954 }
35955
35956 /**
35957 * Creates a function that produces an instance of `Ctor` regardless of
35958 * whether it was invoked as part of a `new` expression or by `call` or `apply`.
35959 *
35960 * @private
35961 * @param {Function} Ctor The constructor to wrap.
35962 * @returns {Function} Returns the new wrapped function.
35963 */
35964 function createCtor(Ctor) {
35965 return function() {
35966 // Use a `switch` statement to work with class constructors. See
35967 // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
35968 // for more details.
35969 var args = arguments;
35970 switch (args.length) {
35971 case 0: return new Ctor;
35972 case 1: return new Ctor(args[0]);
35973 case 2: return new Ctor(args[0], args[1]);
35974 case 3: return new Ctor(args[0], args[1], args[2]);
35975 case 4: return new Ctor(args[0], args[1], args[2], args[3]);
35976 case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);
35977 case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
35978 case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
35979 }
35980 var thisBinding = baseCreate(Ctor.prototype),
35981 result = Ctor.apply(thisBinding, args);
35982
35983 // Mimic the constructor's `return` behavior.
35984 // See https://es5.github.io/#x13.2.2 for more details.
35985 return isObject(result) ? result : thisBinding;
35986 };
35987 }
35988
35989 /**
35990 * Creates a function that wraps `func` to enable currying.
35991 *
35992 * @private
35993 * @param {Function} func The function to wrap.
35994 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
35995 * @param {number} arity The arity of `func`.
35996 * @returns {Function} Returns the new wrapped function.
35997 */
35998 function createCurry(func, bitmask, arity) {
35999 var Ctor = createCtor(func);
36000
36001 function wrapper() {
36002 var length = arguments.length,
36003 args = Array(length),
36004 index = length,
36005 placeholder = getHolder(wrapper);
36006
36007 while (index--) {
36008 args[index] = arguments[index];
36009 }
36010 var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)
36011 ? []
36012 : replaceHolders(args, placeholder);
36013
36014 length -= holders.length;
36015 if (length < arity) {
36016 return createRecurry(
36017 func, bitmask, createHybrid, wrapper.placeholder, undefined,
36018 args, holders, undefined, undefined, arity - length);
36019 }
36020 var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
36021 return apply(fn, this, args);
36022 }
36023 return wrapper;
36024 }
36025
36026 /**
36027 * Creates a `_.find` or `_.findLast` function.
36028 *
36029 * @private
36030 * @param {Function} findIndexFunc The function to find the collection index.
36031 * @returns {Function} Returns the new find function.
36032 */
36033 function createFind(findIndexFunc) {
36034 return function(collection, predicate, fromIndex) {
36035 var iterable = Object(collection);
36036 if (!isArrayLike(collection)) {
36037 var iteratee = getIteratee(predicate, 3);
36038 collection = keys(collection);
36039 predicate = function(key) { return iteratee(iterable[key], key, iterable); };
36040 }
36041 var index = findIndexFunc(collection, predicate, fromIndex);
36042 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
36043 };
36044 }
36045
36046 /**
36047 * Creates a `_.flow` or `_.flowRight` function.
36048 *
36049 * @private
36050 * @param {boolean} [fromRight] Specify iterating from right to left.
36051 * @returns {Function} Returns the new flow function.
36052 */
36053 function createFlow(fromRight) {
36054 return flatRest(function(funcs) {
36055 var length = funcs.length,
36056 index = length,
36057 prereq = LodashWrapper.prototype.thru;
36058
36059 if (fromRight) {
36060 funcs.reverse();
36061 }
36062 while (index--) {
36063 var func = funcs[index];
36064 if (typeof func != 'function') {
36065 throw new TypeError(FUNC_ERROR_TEXT);
36066 }
36067 if (prereq && !wrapper && getFuncName(func) == 'wrapper') {
36068 var wrapper = new LodashWrapper([], true);
36069 }
36070 }
36071 index = wrapper ? index : length;
36072 while (++index < length) {
36073 func = funcs[index];
36074
36075 var funcName = getFuncName(func),
36076 data = funcName == 'wrapper' ? getData(func) : undefined;
36077
36078 if (data && isLaziable(data[0]) &&
36079 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&
36080 !data[4].length && data[9] == 1
36081 ) {
36082 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
36083 } else {
36084 wrapper = (func.length == 1 && isLaziable(func))
36085 ? wrapper[funcName]()
36086 : wrapper.thru(func);
36087 }
36088 }
36089 return function() {
36090 var args = arguments,
36091 value = args[0];
36092
36093 if (wrapper && args.length == 1 && isArray(value)) {
36094 return wrapper.plant(value).value();
36095 }
36096 var index = 0,
36097 result = length ? funcs[index].apply(this, args) : value;
36098
36099 while (++index < length) {
36100 result = funcs[index].call(this, result);
36101 }
36102 return result;
36103 };
36104 });
36105 }
36106
36107 /**
36108 * Creates a function that wraps `func` to invoke it with optional `this`
36109 * binding of `thisArg`, partial application, and currying.
36110 *
36111 * @private
36112 * @param {Function|string} func The function or method name to wrap.
36113 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
36114 * @param {*} [thisArg] The `this` binding of `func`.
36115 * @param {Array} [partials] The arguments to prepend to those provided to
36116 * the new function.
36117 * @param {Array} [holders] The `partials` placeholder indexes.
36118 * @param {Array} [partialsRight] The arguments to append to those provided
36119 * to the new function.
36120 * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.
36121 * @param {Array} [argPos] The argument positions of the new function.
36122 * @param {number} [ary] The arity cap of `func`.
36123 * @param {number} [arity] The arity of `func`.
36124 * @returns {Function} Returns the new wrapped function.
36125 */
36126 function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {
36127 var isAry = bitmask & WRAP_ARY_FLAG,
36128 isBind = bitmask & WRAP_BIND_FLAG,
36129 isBindKey = bitmask & WRAP_BIND_KEY_FLAG,
36130 isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),
36131 isFlip = bitmask & WRAP_FLIP_FLAG,
36132 Ctor = isBindKey ? undefined : createCtor(func);
36133
36134 function wrapper() {
36135 var length = arguments.length,
36136 args = Array(length),
36137 index = length;
36138
36139 while (index--) {
36140 args[index] = arguments[index];
36141 }
36142 if (isCurried) {
36143 var placeholder = getHolder(wrapper),
36144 holdersCount = countHolders(args, placeholder);
36145 }
36146 if (partials) {
36147 args = composeArgs(args, partials, holders, isCurried);
36148 }
36149 if (partialsRight) {
36150 args = composeArgsRight(args, partialsRight, holdersRight, isCurried);
36151 }
36152 length -= holdersCount;
36153 if (isCurried && length < arity) {
36154 var newHolders = replaceHolders(args, placeholder);
36155 return createRecurry(
36156 func, bitmask, createHybrid, wrapper.placeholder, thisArg,
36157 args, newHolders, argPos, ary, arity - length
36158 );
36159 }
36160 var thisBinding = isBind ? thisArg : this,
36161 fn = isBindKey ? thisBinding[func] : func;
36162
36163 length = args.length;
36164 if (argPos) {
36165 args = reorder(args, argPos);
36166 } else if (isFlip && length > 1) {
36167 args.reverse();
36168 }
36169 if (isAry && ary < length) {
36170 args.length = ary;
36171 }
36172 if (this && this !== root && this instanceof wrapper) {
36173 fn = Ctor || createCtor(fn);
36174 }
36175 return fn.apply(thisBinding, args);
36176 }
36177 return wrapper;
36178 }
36179
36180 /**
36181 * Creates a function like `_.invertBy`.
36182 *
36183 * @private
36184 * @param {Function} setter The function to set accumulator values.
36185 * @param {Function} toIteratee The function to resolve iteratees.
36186 * @returns {Function} Returns the new inverter function.
36187 */
36188 function createInverter(setter, toIteratee) {
36189 return function(object, iteratee) {
36190 return baseInverter(object, setter, toIteratee(iteratee), {});
36191 };
36192 }
36193
36194 /**
36195 * Creates a function that performs a mathematical operation on two values.
36196 *
36197 * @private
36198 * @param {Function} operator The function to perform the operation.
36199 * @param {number} [defaultValue] The value used for `undefined` arguments.
36200 * @returns {Function} Returns the new mathematical operation function.
36201 */
36202 function createMathOperation(operator, defaultValue) {
36203 return function(value, other) {
36204 var result;
36205 if (value === undefined && other === undefined) {
36206 return defaultValue;
36207 }
36208 if (value !== undefined) {
36209 result = value;
36210 }
36211 if (other !== undefined) {
36212 if (result === undefined) {
36213 return other;
36214 }
36215 if (typeof value == 'string' || typeof other == 'string') {
36216 value = baseToString(value);
36217 other = baseToString(other);
36218 } else {
36219 value = baseToNumber(value);
36220 other = baseToNumber(other);
36221 }
36222 result = operator(value, other);
36223 }
36224 return result;
36225 };
36226 }
36227
36228 /**
36229 * Creates a function like `_.over`.
36230 *
36231 * @private
36232 * @param {Function} arrayFunc The function to iterate over iteratees.
36233 * @returns {Function} Returns the new over function.
36234 */
36235 function createOver(arrayFunc) {
36236 return flatRest(function(iteratees) {
36237 iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
36238 return baseRest(function(args) {
36239 var thisArg = this;
36240 return arrayFunc(iteratees, function(iteratee) {
36241 return apply(iteratee, thisArg, args);
36242 });
36243 });
36244 });
36245 }
36246
36247 /**
36248 * Creates the padding for `string` based on `length`. The `chars` string
36249 * is truncated if the number of characters exceeds `length`.
36250 *
36251 * @private
36252 * @param {number} length The padding length.
36253 * @param {string} [chars=' '] The string used as padding.
36254 * @returns {string} Returns the padding for `string`.
36255 */
36256 function createPadding(length, chars) {
36257 chars = chars === undefined ? ' ' : baseToString(chars);
36258
36259 var charsLength = chars.length;
36260 if (charsLength < 2) {
36261 return charsLength ? baseRepeat(chars, length) : chars;
36262 }
36263 var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
36264 return hasUnicode(chars)
36265 ? castSlice(stringToArray(result), 0, length).join('')
36266 : result.slice(0, length);
36267 }
36268
36269 /**
36270 * Creates a function that wraps `func` to invoke it with the `this` binding
36271 * of `thisArg` and `partials` prepended to the arguments it receives.
36272 *
36273 * @private
36274 * @param {Function} func The function to wrap.
36275 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
36276 * @param {*} thisArg The `this` binding of `func`.
36277 * @param {Array} partials The arguments to prepend to those provided to
36278 * the new function.
36279 * @returns {Function} Returns the new wrapped function.
36280 */
36281 function createPartial(func, bitmask, thisArg, partials) {
36282 var isBind = bitmask & WRAP_BIND_FLAG,
36283 Ctor = createCtor(func);
36284
36285 function wrapper() {
36286 var argsIndex = -1,
36287 argsLength = arguments.length,
36288 leftIndex = -1,
36289 leftLength = partials.length,
36290 args = Array(leftLength + argsLength),
36291 fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
36292
36293 while (++leftIndex < leftLength) {
36294 args[leftIndex] = partials[leftIndex];
36295 }
36296 while (argsLength--) {
36297 args[leftIndex++] = arguments[++argsIndex];
36298 }
36299 return apply(fn, isBind ? thisArg : this, args);
36300 }
36301 return wrapper;
36302 }
36303
36304 /**
36305 * Creates a `_.range` or `_.rangeRight` function.
36306 *
36307 * @private
36308 * @param {boolean} [fromRight] Specify iterating from right to left.
36309 * @returns {Function} Returns the new range function.
36310 */
36311 function createRange(fromRight) {
36312 return function(start, end, step) {
36313 if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
36314 end = step = undefined;
36315 }
36316 // Ensure the sign of `-0` is preserved.
36317 start = toFinite(start);
36318 if (end === undefined) {
36319 end = start;
36320 start = 0;
36321 } else {
36322 end = toFinite(end);
36323 }
36324 step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
36325 return baseRange(start, end, step, fromRight);
36326 };
36327 }
36328
36329 /**
36330 * Creates a function that performs a relational operation on two values.
36331 *
36332 * @private
36333 * @param {Function} operator The function to perform the operation.
36334 * @returns {Function} Returns the new relational operation function.
36335 */
36336 function createRelationalOperation(operator) {
36337 return function(value, other) {
36338 if (!(typeof value == 'string' && typeof other == 'string')) {
36339 value = toNumber(value);
36340 other = toNumber(other);
36341 }
36342 return operator(value, other);
36343 };
36344 }
36345
36346 /**
36347 * Creates a function that wraps `func` to continue currying.
36348 *
36349 * @private
36350 * @param {Function} func The function to wrap.
36351 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
36352 * @param {Function} wrapFunc The function to create the `func` wrapper.
36353 * @param {*} placeholder The placeholder value.
36354 * @param {*} [thisArg] The `this` binding of `func`.
36355 * @param {Array} [partials] The arguments to prepend to those provided to
36356 * the new function.
36357 * @param {Array} [holders] The `partials` placeholder indexes.
36358 * @param {Array} [argPos] The argument positions of the new function.
36359 * @param {number} [ary] The arity cap of `func`.
36360 * @param {number} [arity] The arity of `func`.
36361 * @returns {Function} Returns the new wrapped function.
36362 */
36363 function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {
36364 var isCurry = bitmask & WRAP_CURRY_FLAG,
36365 newHolders = isCurry ? holders : undefined,
36366 newHoldersRight = isCurry ? undefined : holders,
36367 newPartials = isCurry ? partials : undefined,
36368 newPartialsRight = isCurry ? undefined : partials;
36369
36370 bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);
36371 bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
36372
36373 if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
36374 bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
36375 }
36376 var newData = [
36377 func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,
36378 newHoldersRight, argPos, ary, arity
36379 ];
36380
36381 var result = wrapFunc.apply(undefined, newData);
36382 if (isLaziable(func)) {
36383 setData(result, newData);
36384 }
36385 result.placeholder = placeholder;
36386 return setWrapToString(result, func, bitmask);
36387 }
36388
36389 /**
36390 * Creates a function like `_.round`.
36391 *
36392 * @private
36393 * @param {string} methodName The name of the `Math` method to use when rounding.
36394 * @returns {Function} Returns the new round function.
36395 */
36396 function createRound(methodName) {
36397 var func = Math[methodName];
36398 return function(number, precision) {
36399 number = toNumber(number);
36400 precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
36401 if (precision && nativeIsFinite(number)) {
36402 // Shift with exponential notation to avoid floating-point issues.
36403 // See [MDN](https://mdn.io/round#Examples) for more details.
36404 var pair = (toString(number) + 'e').split('e'),
36405 value = func(pair[0] + 'e' + (+pair[1] + precision));
36406
36407 pair = (toString(value) + 'e').split('e');
36408 return +(pair[0] + 'e' + (+pair[1] - precision));
36409 }
36410 return func(number);
36411 };
36412 }
36413
36414 /**
36415 * Creates a set object of `values`.
36416 *
36417 * @private
36418 * @param {Array} values The values to add to the set.
36419 * @returns {Object} Returns the new set.
36420 */
36421 var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
36422 return new Set(values);
36423 };
36424
36425 /**
36426 * Creates a `_.toPairs` or `_.toPairsIn` function.
36427 *
36428 * @private
36429 * @param {Function} keysFunc The function to get the keys of a given object.
36430 * @returns {Function} Returns the new pairs function.
36431 */
36432 function createToPairs(keysFunc) {
36433 return function(object) {
36434 var tag = getTag(object);
36435 if (tag == mapTag) {
36436 return mapToArray(object);
36437 }
36438 if (tag == setTag) {
36439 return setToPairs(object);
36440 }
36441 return baseToPairs(object, keysFunc(object));
36442 };
36443 }
36444
36445 /**
36446 * Creates a function that either curries or invokes `func` with optional
36447 * `this` binding and partially applied arguments.
36448 *
36449 * @private
36450 * @param {Function|string} func The function or method name to wrap.
36451 * @param {number} bitmask The bitmask flags.
36452 * 1 - `_.bind`
36453 * 2 - `_.bindKey`
36454 * 4 - `_.curry` or `_.curryRight` of a bound function
36455 * 8 - `_.curry`
36456 * 16 - `_.curryRight`
36457 * 32 - `_.partial`
36458 * 64 - `_.partialRight`
36459 * 128 - `_.rearg`
36460 * 256 - `_.ary`
36461 * 512 - `_.flip`
36462 * @param {*} [thisArg] The `this` binding of `func`.
36463 * @param {Array} [partials] The arguments to be partially applied.
36464 * @param {Array} [holders] The `partials` placeholder indexes.
36465 * @param {Array} [argPos] The argument positions of the new function.
36466 * @param {number} [ary] The arity cap of `func`.
36467 * @param {number} [arity] The arity of `func`.
36468 * @returns {Function} Returns the new wrapped function.
36469 */
36470 function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {
36471 var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
36472 if (!isBindKey && typeof func != 'function') {
36473 throw new TypeError(FUNC_ERROR_TEXT);
36474 }
36475 var length = partials ? partials.length : 0;
36476 if (!length) {
36477 bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
36478 partials = holders = undefined;
36479 }
36480 ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);
36481 arity = arity === undefined ? arity : toInteger(arity);
36482 length -= holders ? holders.length : 0;
36483
36484 if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
36485 var partialsRight = partials,
36486 holdersRight = holders;
36487
36488 partials = holders = undefined;
36489 }
36490 var data = isBindKey ? undefined : getData(func);
36491
36492 var newData = [
36493 func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,
36494 argPos, ary, arity
36495 ];
36496
36497 if (data) {
36498 mergeData(newData, data);
36499 }
36500 func = newData[0];
36501 bitmask = newData[1];
36502 thisArg = newData[2];
36503 partials = newData[3];
36504 holders = newData[4];
36505 arity = newData[9] = newData[9] === undefined
36506 ? (isBindKey ? 0 : func.length)
36507 : nativeMax(newData[9] - length, 0);
36508
36509 if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
36510 bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
36511 }
36512 if (!bitmask || bitmask == WRAP_BIND_FLAG) {
36513 var result = createBind(func, bitmask, thisArg);
36514 } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
36515 result = createCurry(func, bitmask, arity);
36516 } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
36517 result = createPartial(func, bitmask, thisArg, partials);
36518 } else {
36519 result = createHybrid.apply(undefined, newData);
36520 }
36521 var setter = data ? baseSetData : setData;
36522 return setWrapToString(setter(result, newData), func, bitmask);
36523 }
36524
36525 /**
36526 * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
36527 * of source objects to the destination object for all destination properties
36528 * that resolve to `undefined`.
36529 *
36530 * @private
36531 * @param {*} objValue The destination value.
36532 * @param {*} srcValue The source value.
36533 * @param {string} key The key of the property to assign.
36534 * @param {Object} object The parent object of `objValue`.
36535 * @returns {*} Returns the value to assign.
36536 */
36537 function customDefaultsAssignIn(objValue, srcValue, key, object) {
36538 if (objValue === undefined ||
36539 (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
36540 return srcValue;
36541 }
36542 return objValue;
36543 }
36544
36545 /**
36546 * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source
36547 * objects into destination objects that are passed thru.
36548 *
36549 * @private
36550 * @param {*} objValue The destination value.
36551 * @param {*} srcValue The source value.
36552 * @param {string} key The key of the property to merge.
36553 * @param {Object} object The parent object of `objValue`.
36554 * @param {Object} source The parent object of `srcValue`.
36555 * @param {Object} [stack] Tracks traversed source values and their merged
36556 * counterparts.
36557 * @returns {*} Returns the value to assign.
36558 */
36559 function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
36560 if (isObject(objValue) && isObject(srcValue)) {
36561 // Recursively merge objects and arrays (susceptible to call stack limits).
36562 stack.set(srcValue, objValue);
36563 baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);
36564 stack['delete'](srcValue);
36565 }
36566 return objValue;
36567 }
36568
36569 /**
36570 * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain
36571 * objects.
36572 *
36573 * @private
36574 * @param {*} value The value to inspect.
36575 * @param {string} key The key of the property to inspect.
36576 * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.
36577 */
36578 function customOmitClone(value) {
36579 return isPlainObject(value) ? undefined : value;
36580 }
36581
36582 /**
36583 * A specialized version of `baseIsEqualDeep` for arrays with support for
36584 * partial deep comparisons.
36585 *
36586 * @private
36587 * @param {Array} array The array to compare.
36588 * @param {Array} other The other array to compare.
36589 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
36590 * @param {Function} customizer The function to customize comparisons.
36591 * @param {Function} equalFunc The function to determine equivalents of values.
36592 * @param {Object} stack Tracks traversed `array` and `other` objects.
36593 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
36594 */
36595 function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
36596 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
36597 arrLength = array.length,
36598 othLength = other.length;
36599
36600 if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
36601 return false;
36602 }
36603 // Assume cyclic values are equal.
36604 var stacked = stack.get(array);
36605 if (stacked && stack.get(other)) {
36606 return stacked == other;
36607 }
36608 var index = -1,
36609 result = true,
36610 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
36611
36612 stack.set(array, other);
36613 stack.set(other, array);
36614
36615 // Ignore non-index properties.
36616 while (++index < arrLength) {
36617 var arrValue = array[index],
36618 othValue = other[index];
36619
36620 if (customizer) {
36621 var compared = isPartial
36622 ? customizer(othValue, arrValue, index, other, array, stack)
36623 : customizer(arrValue, othValue, index, array, other, stack);
36624 }
36625 if (compared !== undefined) {
36626 if (compared) {
36627 continue;
36628 }
36629 result = false;
36630 break;
36631 }
36632 // Recursively compare arrays (susceptible to call stack limits).
36633 if (seen) {
36634 if (!arraySome(other, function(othValue, othIndex) {
36635 if (!cacheHas(seen, othIndex) &&
36636 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
36637 return seen.push(othIndex);
36638 }
36639 })) {
36640 result = false;
36641 break;
36642 }
36643 } else if (!(
36644 arrValue === othValue ||
36645 equalFunc(arrValue, othValue, bitmask, customizer, stack)
36646 )) {
36647 result = false;
36648 break;
36649 }
36650 }
36651 stack['delete'](array);
36652 stack['delete'](other);
36653 return result;
36654 }
36655
36656 /**
36657 * A specialized version of `baseIsEqualDeep` for comparing objects of
36658 * the same `toStringTag`.
36659 *
36660 * **Note:** This function only supports comparing values with tags of
36661 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
36662 *
36663 * @private
36664 * @param {Object} object The object to compare.
36665 * @param {Object} other The other object to compare.
36666 * @param {string} tag The `toStringTag` of the objects to compare.
36667 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
36668 * @param {Function} customizer The function to customize comparisons.
36669 * @param {Function} equalFunc The function to determine equivalents of values.
36670 * @param {Object} stack Tracks traversed `object` and `other` objects.
36671 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
36672 */
36673 function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
36674 switch (tag) {
36675 case dataViewTag:
36676 if ((object.byteLength != other.byteLength) ||
36677 (object.byteOffset != other.byteOffset)) {
36678 return false;
36679 }
36680 object = object.buffer;
36681 other = other.buffer;
36682
36683 case arrayBufferTag:
36684 if ((object.byteLength != other.byteLength) ||
36685 !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
36686 return false;
36687 }
36688 return true;
36689
36690 case boolTag:
36691 case dateTag:
36692 case numberTag:
36693 // Coerce booleans to `1` or `0` and dates to milliseconds.
36694 // Invalid dates are coerced to `NaN`.
36695 return eq(+object, +other);
36696
36697 case errorTag:
36698 return object.name == other.name && object.message == other.message;
36699
36700 case regexpTag:
36701 case stringTag:
36702 // Coerce regexes to strings and treat strings, primitives and objects,
36703 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
36704 // for more details.
36705 return object == (other + '');
36706
36707 case mapTag:
36708 var convert = mapToArray;
36709
36710 case setTag:
36711 var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
36712 convert || (convert = setToArray);
36713
36714 if (object.size != other.size && !isPartial) {
36715 return false;
36716 }
36717 // Assume cyclic values are equal.
36718 var stacked = stack.get(object);
36719 if (stacked) {
36720 return stacked == other;
36721 }
36722 bitmask |= COMPARE_UNORDERED_FLAG;
36723
36724 // Recursively compare objects (susceptible to call stack limits).
36725 stack.set(object, other);
36726 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
36727 stack['delete'](object);
36728 return result;
36729
36730 case symbolTag:
36731 if (symbolValueOf) {
36732 return symbolValueOf.call(object) == symbolValueOf.call(other);
36733 }
36734 }
36735 return false;
36736 }
36737
36738 /**
36739 * A specialized version of `baseIsEqualDeep` for objects with support for
36740 * partial deep comparisons.
36741 *
36742 * @private
36743 * @param {Object} object The object to compare.
36744 * @param {Object} other The other object to compare.
36745 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
36746 * @param {Function} customizer The function to customize comparisons.
36747 * @param {Function} equalFunc The function to determine equivalents of values.
36748 * @param {Object} stack Tracks traversed `object` and `other` objects.
36749 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
36750 */
36751 function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
36752 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
36753 objProps = getAllKeys(object),
36754 objLength = objProps.length,
36755 othProps = getAllKeys(other),
36756 othLength = othProps.length;
36757
36758 if (objLength != othLength && !isPartial) {
36759 return false;
36760 }
36761 var index = objLength;
36762 while (index--) {
36763 var key = objProps[index];
36764 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
36765 return false;
36766 }
36767 }
36768 // Assume cyclic values are equal.
36769 var stacked = stack.get(object);
36770 if (stacked && stack.get(other)) {
36771 return stacked == other;
36772 }
36773 var result = true;
36774 stack.set(object, other);
36775 stack.set(other, object);
36776
36777 var skipCtor = isPartial;
36778 while (++index < objLength) {
36779 key = objProps[index];
36780 var objValue = object[key],
36781 othValue = other[key];
36782
36783 if (customizer) {
36784 var compared = isPartial
36785 ? customizer(othValue, objValue, key, other, object, stack)
36786 : customizer(objValue, othValue, key, object, other, stack);
36787 }
36788 // Recursively compare objects (susceptible to call stack limits).
36789 if (!(compared === undefined
36790 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
36791 : compared
36792 )) {
36793 result = false;
36794 break;
36795 }
36796 skipCtor || (skipCtor = key == 'constructor');
36797 }
36798 if (result && !skipCtor) {
36799 var objCtor = object.constructor,
36800 othCtor = other.constructor;
36801
36802 // Non `Object` object instances with different constructors are not equal.
36803 if (objCtor != othCtor &&
36804 ('constructor' in object && 'constructor' in other) &&
36805 !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
36806 typeof othCtor == 'function' && othCtor instanceof othCtor)) {
36807 result = false;
36808 }
36809 }
36810 stack['delete'](object);
36811 stack['delete'](other);
36812 return result;
36813 }
36814
36815 /**
36816 * A specialized version of `baseRest` which flattens the rest array.
36817 *
36818 * @private
36819 * @param {Function} func The function to apply a rest parameter to.
36820 * @returns {Function} Returns the new function.
36821 */
36822 function flatRest(func) {
36823 return setToString(overRest(func, undefined, flatten), func + '');
36824 }
36825
36826 /**
36827 * Creates an array of own enumerable property names and symbols of `object`.
36828 *
36829 * @private
36830 * @param {Object} object The object to query.
36831 * @returns {Array} Returns the array of property names and symbols.
36832 */
36833 function getAllKeys(object) {
36834 return baseGetAllKeys(object, keys, getSymbols);
36835 }
36836
36837 /**
36838 * Creates an array of own and inherited enumerable property names and
36839 * symbols of `object`.
36840 *
36841 * @private
36842 * @param {Object} object The object to query.
36843 * @returns {Array} Returns the array of property names and symbols.
36844 */
36845 function getAllKeysIn(object) {
36846 return baseGetAllKeys(object, keysIn, getSymbolsIn);
36847 }
36848
36849 /**
36850 * Gets metadata for `func`.
36851 *
36852 * @private
36853 * @param {Function} func The function to query.
36854 * @returns {*} Returns the metadata for `func`.
36855 */
36856 var getData = !metaMap ? noop : function(func) {
36857 return metaMap.get(func);
36858 };
36859
36860 /**
36861 * Gets the name of `func`.
36862 *
36863 * @private
36864 * @param {Function} func The function to query.
36865 * @returns {string} Returns the function name.
36866 */
36867 function getFuncName(func) {
36868 var result = (func.name + ''),
36869 array = realNames[result],
36870 length = hasOwnProperty.call(realNames, result) ? array.length : 0;
36871
36872 while (length--) {
36873 var data = array[length],
36874 otherFunc = data.func;
36875 if (otherFunc == null || otherFunc == func) {
36876 return data.name;
36877 }
36878 }
36879 return result;
36880 }
36881
36882 /**
36883 * Gets the argument placeholder value for `func`.
36884 *
36885 * @private
36886 * @param {Function} func The function to inspect.
36887 * @returns {*} Returns the placeholder value.
36888 */
36889 function getHolder(func) {
36890 var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;
36891 return object.placeholder;
36892 }
36893
36894 /**
36895 * Gets the appropriate "iteratee" function. If `_.iteratee` is customized,
36896 * this function returns the custom method, otherwise it returns `baseIteratee`.
36897 * If arguments are provided, the chosen function is invoked with them and
36898 * its result is returned.
36899 *
36900 * @private
36901 * @param {*} [value] The value to convert to an iteratee.
36902 * @param {number} [arity] The arity of the created iteratee.
36903 * @returns {Function} Returns the chosen function or its result.
36904 */
36905 function getIteratee() {
36906 var result = lodash.iteratee || iteratee;
36907 result = result === iteratee ? baseIteratee : result;
36908 return arguments.length ? result(arguments[0], arguments[1]) : result;
36909 }
36910
36911 /**
36912 * Gets the data for `map`.
36913 *
36914 * @private
36915 * @param {Object} map The map to query.
36916 * @param {string} key The reference key.
36917 * @returns {*} Returns the map data.
36918 */
36919 function getMapData(map, key) {
36920 var data = map.__data__;
36921 return isKeyable(key)
36922 ? data[typeof key == 'string' ? 'string' : 'hash']
36923 : data.map;
36924 }
36925
36926 /**
36927 * Gets the property names, values, and compare flags of `object`.
36928 *
36929 * @private
36930 * @param {Object} object The object to query.
36931 * @returns {Array} Returns the match data of `object`.
36932 */
36933 function getMatchData(object) {
36934 var result = keys(object),
36935 length = result.length;
36936
36937 while (length--) {
36938 var key = result[length],
36939 value = object[key];
36940
36941 result[length] = [key, value, isStrictComparable(value)];
36942 }
36943 return result;
36944 }
36945
36946 /**
36947 * Gets the native function at `key` of `object`.
36948 *
36949 * @private
36950 * @param {Object} object The object to query.
36951 * @param {string} key The key of the method to get.
36952 * @returns {*} Returns the function if it's native, else `undefined`.
36953 */
36954 function getNative(object, key) {
36955 var value = getValue(object, key);
36956 return baseIsNative(value) ? value : undefined;
36957 }
36958
36959 /**
36960 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
36961 *
36962 * @private
36963 * @param {*} value The value to query.
36964 * @returns {string} Returns the raw `toStringTag`.
36965 */
36966 function getRawTag(value) {
36967 var isOwn = hasOwnProperty.call(value, symToStringTag),
36968 tag = value[symToStringTag];
36969
36970 try {
36971 value[symToStringTag] = undefined;
36972 var unmasked = true;
36973 } catch (e) {}
36974
36975 var result = nativeObjectToString.call(value);
36976 if (unmasked) {
36977 if (isOwn) {
36978 value[symToStringTag] = tag;
36979 } else {
36980 delete value[symToStringTag];
36981 }
36982 }
36983 return result;
36984 }
36985
36986 /**
36987 * Creates an array of the own enumerable symbols of `object`.
36988 *
36989 * @private
36990 * @param {Object} object The object to query.
36991 * @returns {Array} Returns the array of symbols.
36992 */
36993 var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
36994 if (object == null) {
36995 return [];
36996 }
36997 object = Object(object);
36998 return arrayFilter(nativeGetSymbols(object), function(symbol) {
36999 return propertyIsEnumerable.call(object, symbol);
37000 });
37001 };
37002
37003 /**
37004 * Creates an array of the own and inherited enumerable symbols of `object`.
37005 *
37006 * @private
37007 * @param {Object} object The object to query.
37008 * @returns {Array} Returns the array of symbols.
37009 */
37010 var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
37011 var result = [];
37012 while (object) {
37013 arrayPush(result, getSymbols(object));
37014 object = getPrototype(object);
37015 }
37016 return result;
37017 };
37018
37019 /**
37020 * Gets the `toStringTag` of `value`.
37021 *
37022 * @private
37023 * @param {*} value The value to query.
37024 * @returns {string} Returns the `toStringTag`.
37025 */
37026 var getTag = baseGetTag;
37027
37028 // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
37029 if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
37030 (Map && getTag(new Map) != mapTag) ||
37031 (Promise && getTag(Promise.resolve()) != promiseTag) ||
37032 (Set && getTag(new Set) != setTag) ||
37033 (WeakMap && getTag(new WeakMap) != weakMapTag)) {
37034 getTag = function(value) {
37035 var result = baseGetTag(value),
37036 Ctor = result == objectTag ? value.constructor : undefined,
37037 ctorString = Ctor ? toSource(Ctor) : '';
37038
37039 if (ctorString) {
37040 switch (ctorString) {
37041 case dataViewCtorString: return dataViewTag;
37042 case mapCtorString: return mapTag;
37043 case promiseCtorString: return promiseTag;
37044 case setCtorString: return setTag;
37045 case weakMapCtorString: return weakMapTag;
37046 }
37047 }
37048 return result;
37049 };
37050 }
37051
37052 /**
37053 * Gets the view, applying any `transforms` to the `start` and `end` positions.
37054 *
37055 * @private
37056 * @param {number} start The start of the view.
37057 * @param {number} end The end of the view.
37058 * @param {Array} transforms The transformations to apply to the view.
37059 * @returns {Object} Returns an object containing the `start` and `end`
37060 * positions of the view.
37061 */
37062 function getView(start, end, transforms) {
37063 var index = -1,
37064 length = transforms.length;
37065
37066 while (++index < length) {
37067 var data = transforms[index],
37068 size = data.size;
37069
37070 switch (data.type) {
37071 case 'drop': start += size; break;
37072 case 'dropRight': end -= size; break;
37073 case 'take': end = nativeMin(end, start + size); break;
37074 case 'takeRight': start = nativeMax(start, end - size); break;
37075 }
37076 }
37077 return { 'start': start, 'end': end };
37078 }
37079
37080 /**
37081 * Extracts wrapper details from the `source` body comment.
37082 *
37083 * @private
37084 * @param {string} source The source to inspect.
37085 * @returns {Array} Returns the wrapper details.
37086 */
37087 function getWrapDetails(source) {
37088 var match = source.match(reWrapDetails);
37089 return match ? match[1].split(reSplitDetails) : [];
37090 }
37091
37092 /**
37093 * Checks if `path` exists on `object`.
37094 *
37095 * @private
37096 * @param {Object} object The object to query.
37097 * @param {Array|string} path The path to check.
37098 * @param {Function} hasFunc The function to check properties.
37099 * @returns {boolean} Returns `true` if `path` exists, else `false`.
37100 */
37101 function hasPath(object, path, hasFunc) {
37102 path = castPath(path, object);
37103
37104 var index = -1,
37105 length = path.length,
37106 result = false;
37107
37108 while (++index < length) {
37109 var key = toKey(path[index]);
37110 if (!(result = object != null && hasFunc(object, key))) {
37111 break;
37112 }
37113 object = object[key];
37114 }
37115 if (result || ++index != length) {
37116 return result;
37117 }
37118 length = object == null ? 0 : object.length;
37119 return !!length && isLength(length) && isIndex(key, length) &&
37120 (isArray(object) || isArguments(object));
37121 }
37122
37123 /**
37124 * Initializes an array clone.
37125 *
37126 * @private
37127 * @param {Array} array The array to clone.
37128 * @returns {Array} Returns the initialized clone.
37129 */
37130 function initCloneArray(array) {
37131 var length = array.length,
37132 result = new array.constructor(length);
37133
37134 // Add properties assigned by `RegExp#exec`.
37135 if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
37136 result.index = array.index;
37137 result.input = array.input;
37138 }
37139 return result;
37140 }
37141
37142 /**
37143 * Initializes an object clone.
37144 *
37145 * @private
37146 * @param {Object} object The object to clone.
37147 * @returns {Object} Returns the initialized clone.
37148 */
37149 function initCloneObject(object) {
37150 return (typeof object.constructor == 'function' && !isPrototype(object))
37151 ? baseCreate(getPrototype(object))
37152 : {};
37153 }
37154
37155 /**
37156 * Initializes an object clone based on its `toStringTag`.
37157 *
37158 * **Note:** This function only supports cloning values with tags of
37159 * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
37160 *
37161 * @private
37162 * @param {Object} object The object to clone.
37163 * @param {string} tag The `toStringTag` of the object to clone.
37164 * @param {boolean} [isDeep] Specify a deep clone.
37165 * @returns {Object} Returns the initialized clone.
37166 */
37167 function initCloneByTag(object, tag, isDeep) {
37168 var Ctor = object.constructor;
37169 switch (tag) {
37170 case arrayBufferTag:
37171 return cloneArrayBuffer(object);
37172
37173 case boolTag:
37174 case dateTag:
37175 return new Ctor(+object);
37176
37177 case dataViewTag:
37178 return cloneDataView(object, isDeep);
37179
37180 case float32Tag: case float64Tag:
37181 case int8Tag: case int16Tag: case int32Tag:
37182 case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
37183 return cloneTypedArray(object, isDeep);
37184
37185 case mapTag:
37186 return new Ctor;
37187
37188 case numberTag:
37189 case stringTag:
37190 return new Ctor(object);
37191
37192 case regexpTag:
37193 return cloneRegExp(object);
37194
37195 case setTag:
37196 return new Ctor;
37197
37198 case symbolTag:
37199 return cloneSymbol(object);
37200 }
37201 }
37202
37203 /**
37204 * Inserts wrapper `details` in a comment at the top of the `source` body.
37205 *
37206 * @private
37207 * @param {string} source The source to modify.
37208 * @returns {Array} details The details to insert.
37209 * @returns {string} Returns the modified source.
37210 */
37211 function insertWrapDetails(source, details) {
37212 var length = details.length;
37213 if (!length) {
37214 return source;
37215 }
37216 var lastIndex = length - 1;
37217 details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];
37218 details = details.join(length > 2 ? ', ' : ' ');
37219 return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n');
37220 }
37221
37222 /**
37223 * Checks if `value` is a flattenable `arguments` object or array.
37224 *
37225 * @private
37226 * @param {*} value The value to check.
37227 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
37228 */
37229 function isFlattenable(value) {
37230 return isArray(value) || isArguments(value) ||
37231 !!(spreadableSymbol && value && value[spreadableSymbol]);
37232 }
37233
37234 /**
37235 * Checks if `value` is a valid array-like index.
37236 *
37237 * @private
37238 * @param {*} value The value to check.
37239 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
37240 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
37241 */
37242 function isIndex(value, length) {
37243 var type = typeof value;
37244 length = length == null ? MAX_SAFE_INTEGER : length;
37245
37246 return !!length &&
37247 (type == 'number' ||
37248 (type != 'symbol' && reIsUint.test(value))) &&
37249 (value > -1 && value % 1 == 0 && value < length);
37250 }
37251
37252 /**
37253 * Checks if the given arguments are from an iteratee call.
37254 *
37255 * @private
37256 * @param {*} value The potential iteratee value argument.
37257 * @param {*} index The potential iteratee index or key argument.
37258 * @param {*} object The potential iteratee object argument.
37259 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
37260 * else `false`.
37261 */
37262 function isIterateeCall(value, index, object) {
37263 if (!isObject(object)) {
37264 return false;
37265 }
37266 var type = typeof index;
37267 if (type == 'number'
37268 ? (isArrayLike(object) && isIndex(index, object.length))
37269 : (type == 'string' && index in object)
37270 ) {
37271 return eq(object[index], value);
37272 }
37273 return false;
37274 }
37275
37276 /**
37277 * Checks if `value` is a property name and not a property path.
37278 *
37279 * @private
37280 * @param {*} value The value to check.
37281 * @param {Object} [object] The object to query keys on.
37282 * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
37283 */
37284 function isKey(value, object) {
37285 if (isArray(value)) {
37286 return false;
37287 }
37288 var type = typeof value;
37289 if (type == 'number' || type == 'symbol' || type == 'boolean' ||
37290 value == null || isSymbol(value)) {
37291 return true;
37292 }
37293 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
37294 (object != null && value in Object(object));
37295 }
37296
37297 /**
37298 * Checks if `value` is suitable for use as unique object key.
37299 *
37300 * @private
37301 * @param {*} value The value to check.
37302 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
37303 */
37304 function isKeyable(value) {
37305 var type = typeof value;
37306 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
37307 ? (value !== '__proto__')
37308 : (value === null);
37309 }
37310
37311 /**
37312 * Checks if `func` has a lazy counterpart.
37313 *
37314 * @private
37315 * @param {Function} func The function to check.
37316 * @returns {boolean} Returns `true` if `func` has a lazy counterpart,
37317 * else `false`.
37318 */
37319 function isLaziable(func) {
37320 var funcName = getFuncName(func),
37321 other = lodash[funcName];
37322
37323 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {
37324 return false;
37325 }
37326 if (func === other) {
37327 return true;
37328 }
37329 var data = getData(other);
37330 return !!data && func === data[0];
37331 }
37332
37333 /**
37334 * Checks if `func` has its source masked.
37335 *
37336 * @private
37337 * @param {Function} func The function to check.
37338 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
37339 */
37340 function isMasked(func) {
37341 return !!maskSrcKey && (maskSrcKey in func);
37342 }
37343
37344 /**
37345 * Checks if `func` is capable of being masked.
37346 *
37347 * @private
37348 * @param {*} value The value to check.
37349 * @returns {boolean} Returns `true` if `func` is maskable, else `false`.
37350 */
37351 var isMaskable = coreJsData ? isFunction : stubFalse;
37352
37353 /**
37354 * Checks if `value` is likely a prototype object.
37355 *
37356 * @private
37357 * @param {*} value The value to check.
37358 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
37359 */
37360 function isPrototype(value) {
37361 var Ctor = value && value.constructor,
37362 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
37363
37364 return value === proto;
37365 }
37366
37367 /**
37368 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
37369 *
37370 * @private
37371 * @param {*} value The value to check.
37372 * @returns {boolean} Returns `true` if `value` if suitable for strict
37373 * equality comparisons, else `false`.
37374 */
37375 function isStrictComparable(value) {
37376 return value === value && !isObject(value);
37377 }
37378
37379 /**
37380 * A specialized version of `matchesProperty` for source values suitable
37381 * for strict equality comparisons, i.e. `===`.
37382 *
37383 * @private
37384 * @param {string} key The key of the property to get.
37385 * @param {*} srcValue The value to match.
37386 * @returns {Function} Returns the new spec function.
37387 */
37388 function matchesStrictComparable(key, srcValue) {
37389 return function(object) {
37390 if (object == null) {
37391 return false;
37392 }
37393 return object[key] === srcValue &&
37394 (srcValue !== undefined || (key in Object(object)));
37395 };
37396 }
37397
37398 /**
37399 * A specialized version of `_.memoize` which clears the memoized function's
37400 * cache when it exceeds `MAX_MEMOIZE_SIZE`.
37401 *
37402 * @private
37403 * @param {Function} func The function to have its output memoized.
37404 * @returns {Function} Returns the new memoized function.
37405 */
37406 function memoizeCapped(func) {
37407 var result = memoize(func, function(key) {
37408 if (cache.size === MAX_MEMOIZE_SIZE) {
37409 cache.clear();
37410 }
37411 return key;
37412 });
37413
37414 var cache = result.cache;
37415 return result;
37416 }
37417
37418 /**
37419 * Merges the function metadata of `source` into `data`.
37420 *
37421 * Merging metadata reduces the number of wrappers used to invoke a function.
37422 * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`
37423 * may be applied regardless of execution order. Methods like `_.ary` and
37424 * `_.rearg` modify function arguments, making the order in which they are
37425 * executed important, preventing the merging of metadata. However, we make
37426 * an exception for a safe combined case where curried functions have `_.ary`
37427 * and or `_.rearg` applied.
37428 *
37429 * @private
37430 * @param {Array} data The destination metadata.
37431 * @param {Array} source The source metadata.
37432 * @returns {Array} Returns `data`.
37433 */
37434 function mergeData(data, source) {
37435 var bitmask = data[1],
37436 srcBitmask = source[1],
37437 newBitmask = bitmask | srcBitmask,
37438 isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
37439
37440 var isCombo =
37441 ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||
37442 ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||
37443 ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));
37444
37445 // Exit early if metadata can't be merged.
37446 if (!(isCommon || isCombo)) {
37447 return data;
37448 }
37449 // Use source `thisArg` if available.
37450 if (srcBitmask & WRAP_BIND_FLAG) {
37451 data[2] = source[2];
37452 // Set when currying a bound function.
37453 newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
37454 }
37455 // Compose partial arguments.
37456 var value = source[3];
37457 if (value) {
37458 var partials = data[3];
37459 data[3] = partials ? composeArgs(partials, value, source[4]) : value;
37460 data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];
37461 }
37462 // Compose partial right arguments.
37463 value = source[5];
37464 if (value) {
37465 partials = data[5];
37466 data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;
37467 data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];
37468 }
37469 // Use source `argPos` if available.
37470 value = source[7];
37471 if (value) {
37472 data[7] = value;
37473 }
37474 // Use source `ary` if it's smaller.
37475 if (srcBitmask & WRAP_ARY_FLAG) {
37476 data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
37477 }
37478 // Use source `arity` if one is not provided.
37479 if (data[9] == null) {
37480 data[9] = source[9];
37481 }
37482 // Use source `func` and merge bitmasks.
37483 data[0] = source[0];
37484 data[1] = newBitmask;
37485
37486 return data;
37487 }
37488
37489 /**
37490 * This function is like
37491 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
37492 * except that it includes inherited enumerable properties.
37493 *
37494 * @private
37495 * @param {Object} object The object to query.
37496 * @returns {Array} Returns the array of property names.
37497 */
37498 function nativeKeysIn(object) {
37499 var result = [];
37500 if (object != null) {
37501 for (var key in Object(object)) {
37502 result.push(key);
37503 }
37504 }
37505 return result;
37506 }
37507
37508 /**
37509 * Converts `value` to a string using `Object.prototype.toString`.
37510 *
37511 * @private
37512 * @param {*} value The value to convert.
37513 * @returns {string} Returns the converted string.
37514 */
37515 function objectToString(value) {
37516 return nativeObjectToString.call(value);
37517 }
37518
37519 /**
37520 * A specialized version of `baseRest` which transforms the rest array.
37521 *
37522 * @private
37523 * @param {Function} func The function to apply a rest parameter to.
37524 * @param {number} [start=func.length-1] The start position of the rest parameter.
37525 * @param {Function} transform The rest array transform.
37526 * @returns {Function} Returns the new function.
37527 */
37528 function overRest(func, start, transform) {
37529 start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
37530 return function() {
37531 var args = arguments,
37532 index = -1,
37533 length = nativeMax(args.length - start, 0),
37534 array = Array(length);
37535
37536 while (++index < length) {
37537 array[index] = args[start + index];
37538 }
37539 index = -1;
37540 var otherArgs = Array(start + 1);
37541 while (++index < start) {
37542 otherArgs[index] = args[index];
37543 }
37544 otherArgs[start] = transform(array);
37545 return apply(func, this, otherArgs);
37546 };
37547 }
37548
37549 /**
37550 * Gets the parent value at `path` of `object`.
37551 *
37552 * @private
37553 * @param {Object} object The object to query.
37554 * @param {Array} path The path to get the parent value of.
37555 * @returns {*} Returns the parent value.
37556 */
37557 function parent(object, path) {
37558 return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
37559 }
37560
37561 /**
37562 * Reorder `array` according to the specified indexes where the element at
37563 * the first index is assigned as the first element, the element at
37564 * the second index is assigned as the second element, and so on.
37565 *
37566 * @private
37567 * @param {Array} array The array to reorder.
37568 * @param {Array} indexes The arranged array indexes.
37569 * @returns {Array} Returns `array`.
37570 */
37571 function reorder(array, indexes) {
37572 var arrLength = array.length,
37573 length = nativeMin(indexes.length, arrLength),
37574 oldArray = copyArray(array);
37575
37576 while (length--) {
37577 var index = indexes[length];
37578 array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
37579 }
37580 return array;
37581 }
37582
37583 /**
37584 * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
37585 *
37586 * @private
37587 * @param {Object} object The object to query.
37588 * @param {string} key The key of the property to get.
37589 * @returns {*} Returns the property value.
37590 */
37591 function safeGet(object, key) {
37592 if (key === 'constructor' && typeof object[key] === 'function') {
37593 return;
37594 }
37595
37596 if (key == '__proto__') {
37597 return;
37598 }
37599
37600 return object[key];
37601 }
37602
37603 /**
37604 * Sets metadata for `func`.
37605 *
37606 * **Note:** If this function becomes hot, i.e. is invoked a lot in a short
37607 * period of time, it will trip its breaker and transition to an identity
37608 * function to avoid garbage collection pauses in V8. See
37609 * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)
37610 * for more details.
37611 *
37612 * @private
37613 * @param {Function} func The function to associate metadata with.
37614 * @param {*} data The metadata.
37615 * @returns {Function} Returns `func`.
37616 */
37617 var setData = shortOut(baseSetData);
37618
37619 /**
37620 * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).
37621 *
37622 * @private
37623 * @param {Function} func The function to delay.
37624 * @param {number} wait The number of milliseconds to delay invocation.
37625 * @returns {number|Object} Returns the timer id or timeout object.
37626 */
37627 var setTimeout = ctxSetTimeout || function(func, wait) {
37628 return root.setTimeout(func, wait);
37629 };
37630
37631 /**
37632 * Sets the `toString` method of `func` to return `string`.
37633 *
37634 * @private
37635 * @param {Function} func The function to modify.
37636 * @param {Function} string The `toString` result.
37637 * @returns {Function} Returns `func`.
37638 */
37639 var setToString = shortOut(baseSetToString);
37640
37641 /**
37642 * Sets the `toString` method of `wrapper` to mimic the source of `reference`
37643 * with wrapper details in a comment at the top of the source body.
37644 *
37645 * @private
37646 * @param {Function} wrapper The function to modify.
37647 * @param {Function} reference The reference function.
37648 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
37649 * @returns {Function} Returns `wrapper`.
37650 */
37651 function setWrapToString(wrapper, reference, bitmask) {
37652 var source = (reference + '');
37653 return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));
37654 }
37655
37656 /**
37657 * Creates a function that'll short out and invoke `identity` instead
37658 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
37659 * milliseconds.
37660 *
37661 * @private
37662 * @param {Function} func The function to restrict.
37663 * @returns {Function} Returns the new shortable function.
37664 */
37665 function shortOut(func) {
37666 var count = 0,
37667 lastCalled = 0;
37668
37669 return function() {
37670 var stamp = nativeNow(),
37671 remaining = HOT_SPAN - (stamp - lastCalled);
37672
37673 lastCalled = stamp;
37674 if (remaining > 0) {
37675 if (++count >= HOT_COUNT) {
37676 return arguments[0];
37677 }
37678 } else {
37679 count = 0;
37680 }
37681 return func.apply(undefined, arguments);
37682 };
37683 }
37684
37685 /**
37686 * A specialized version of `_.shuffle` which mutates and sets the size of `array`.
37687 *
37688 * @private
37689 * @param {Array} array The array to shuffle.
37690 * @param {number} [size=array.length] The size of `array`.
37691 * @returns {Array} Returns `array`.
37692 */
37693 function shuffleSelf(array, size) {
37694 var index = -1,
37695 length = array.length,
37696 lastIndex = length - 1;
37697
37698 size = size === undefined ? length : size;
37699 while (++index < size) {
37700 var rand = baseRandom(index, lastIndex),
37701 value = array[rand];
37702
37703 array[rand] = array[index];
37704 array[index] = value;
37705 }
37706 array.length = size;
37707 return array;
37708 }
37709
37710 /**
37711 * Converts `string` to a property path array.
37712 *
37713 * @private
37714 * @param {string} string The string to convert.
37715 * @returns {Array} Returns the property path array.
37716 */
37717 var stringToPath = memoizeCapped(function(string) {
37718 var result = [];
37719 if (string.charCodeAt(0) === 46 /* . */) {
37720 result.push('');
37721 }
37722 string.replace(rePropName, function(match, number, quote, subString) {
37723 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
37724 });
37725 return result;
37726 });
37727
37728 /**
37729 * Converts `value` to a string key if it's not a string or symbol.
37730 *
37731 * @private
37732 * @param {*} value The value to inspect.
37733 * @returns {string|symbol} Returns the key.
37734 */
37735 function toKey(value) {
37736 if (typeof value == 'string' || isSymbol(value)) {
37737 return value;
37738 }
37739 var result = (value + '');
37740 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
37741 }
37742
37743 /**
37744 * Converts `func` to its source code.
37745 *
37746 * @private
37747 * @param {Function} func The function to convert.
37748 * @returns {string} Returns the source code.
37749 */
37750 function toSource(func) {
37751 if (func != null) {
37752 try {
37753 return funcToString.call(func);
37754 } catch (e) {}
37755 try {
37756 return (func + '');
37757 } catch (e) {}
37758 }
37759 return '';
37760 }
37761
37762 /**
37763 * Updates wrapper `details` based on `bitmask` flags.
37764 *
37765 * @private
37766 * @returns {Array} details The details to modify.
37767 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
37768 * @returns {Array} Returns `details`.
37769 */
37770 function updateWrapDetails(details, bitmask) {
37771 arrayEach(wrapFlags, function(pair) {
37772 var value = '_.' + pair[0];
37773 if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {
37774 details.push(value);
37775 }
37776 });
37777 return details.sort();
37778 }
37779
37780 /**
37781 * Creates a clone of `wrapper`.
37782 *
37783 * @private
37784 * @param {Object} wrapper The wrapper to clone.
37785 * @returns {Object} Returns the cloned wrapper.
37786 */
37787 function wrapperClone(wrapper) {
37788 if (wrapper instanceof LazyWrapper) {
37789 return wrapper.clone();
37790 }
37791 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);
37792 result.__actions__ = copyArray(wrapper.__actions__);
37793 result.__index__ = wrapper.__index__;
37794 result.__values__ = wrapper.__values__;
37795 return result;
37796 }
37797
37798 /*------------------------------------------------------------------------*/
37799
37800 /**
37801 * Creates an array of elements split into groups the length of `size`.
37802 * If `array` can't be split evenly, the final chunk will be the remaining
37803 * elements.
37804 *
37805 * @static
37806 * @memberOf _
37807 * @since 3.0.0
37808 * @category Array
37809 * @param {Array} array The array to process.
37810 * @param {number} [size=1] The length of each chunk
37811 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
37812 * @returns {Array} Returns the new array of chunks.
37813 * @example
37814 *
37815 * _.chunk(['a', 'b', 'c', 'd'], 2);
37816 * // => [['a', 'b'], ['c', 'd']]
37817 *
37818 * _.chunk(['a', 'b', 'c', 'd'], 3);
37819 * // => [['a', 'b', 'c'], ['d']]
37820 */
37821 function chunk(array, size, guard) {
37822 if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {
37823 size = 1;
37824 } else {
37825 size = nativeMax(toInteger(size), 0);
37826 }
37827 var length = array == null ? 0 : array.length;
37828 if (!length || size < 1) {
37829 return [];
37830 }
37831 var index = 0,
37832 resIndex = 0,
37833 result = Array(nativeCeil(length / size));
37834
37835 while (index < length) {
37836 result[resIndex++] = baseSlice(array, index, (index += size));
37837 }
37838 return result;
37839 }
37840
37841 /**
37842 * Creates an array with all falsey values removed. The values `false`, `null`,
37843 * `0`, `""`, `undefined`, and `NaN` are falsey.
37844 *
37845 * @static
37846 * @memberOf _
37847 * @since 0.1.0
37848 * @category Array
37849 * @param {Array} array The array to compact.
37850 * @returns {Array} Returns the new array of filtered values.
37851 * @example
37852 *
37853 * _.compact([0, 1, false, 2, '', 3]);
37854 * // => [1, 2, 3]
37855 */
37856 function compact(array) {
37857 var index = -1,
37858 length = array == null ? 0 : array.length,
37859 resIndex = 0,
37860 result = [];
37861
37862 while (++index < length) {
37863 var value = array[index];
37864 if (value) {
37865 result[resIndex++] = value;
37866 }
37867 }
37868 return result;
37869 }
37870
37871 /**
37872 * Creates a new array concatenating `array` with any additional arrays
37873 * and/or values.
37874 *
37875 * @static
37876 * @memberOf _
37877 * @since 4.0.0
37878 * @category Array
37879 * @param {Array} array The array to concatenate.
37880 * @param {...*} [values] The values to concatenate.
37881 * @returns {Array} Returns the new concatenated array.
37882 * @example
37883 *
37884 * var array = [1];
37885 * var other = _.concat(array, 2, [3], [[4]]);
37886 *
37887 * console.log(other);
37888 * // => [1, 2, 3, [4]]
37889 *
37890 * console.log(array);
37891 * // => [1]
37892 */
37893 function concat() {
37894 var length = arguments.length;
37895 if (!length) {
37896 return [];
37897 }
37898 var args = Array(length - 1),
37899 array = arguments[0],
37900 index = length;
37901
37902 while (index--) {
37903 args[index - 1] = arguments[index];
37904 }
37905 return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));
37906 }
37907
37908 /**
37909 * Creates an array of `array` values not included in the other given arrays
37910 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
37911 * for equality comparisons. The order and references of result values are
37912 * determined by the first array.
37913 *
37914 * **Note:** Unlike `_.pullAll`, this method returns a new array.
37915 *
37916 * @static
37917 * @memberOf _
37918 * @since 0.1.0
37919 * @category Array
37920 * @param {Array} array The array to inspect.
37921 * @param {...Array} [values] The values to exclude.
37922 * @returns {Array} Returns the new array of filtered values.
37923 * @see _.without, _.xor
37924 * @example
37925 *
37926 * _.difference([2, 1], [2, 3]);
37927 * // => [1]
37928 */
37929 var difference = baseRest(function(array, values) {
37930 return isArrayLikeObject(array)
37931 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))
37932 : [];
37933 });
37934
37935 /**
37936 * This method is like `_.difference` except that it accepts `iteratee` which
37937 * is invoked for each element of `array` and `values` to generate the criterion
37938 * by which they're compared. The order and references of result values are
37939 * determined by the first array. The iteratee is invoked with one argument:
37940 * (value).
37941 *
37942 * **Note:** Unlike `_.pullAllBy`, this method returns a new array.
37943 *
37944 * @static
37945 * @memberOf _
37946 * @since 4.0.0
37947 * @category Array
37948 * @param {Array} array The array to inspect.
37949 * @param {...Array} [values] The values to exclude.
37950 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
37951 * @returns {Array} Returns the new array of filtered values.
37952 * @example
37953 *
37954 * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
37955 * // => [1.2]
37956 *
37957 * // The `_.property` iteratee shorthand.
37958 * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
37959 * // => [{ 'x': 2 }]
37960 */
37961 var differenceBy = baseRest(function(array, values) {
37962 var iteratee = last(values);
37963 if (isArrayLikeObject(iteratee)) {
37964 iteratee = undefined;
37965 }
37966 return isArrayLikeObject(array)
37967 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))
37968 : [];
37969 });
37970
37971 /**
37972 * This method is like `_.difference` except that it accepts `comparator`
37973 * which is invoked to compare elements of `array` to `values`. The order and
37974 * references of result values are determined by the first array. The comparator
37975 * is invoked with two arguments: (arrVal, othVal).
37976 *
37977 * **Note:** Unlike `_.pullAllWith`, this method returns a new array.
37978 *
37979 * @static
37980 * @memberOf _
37981 * @since 4.0.0
37982 * @category Array
37983 * @param {Array} array The array to inspect.
37984 * @param {...Array} [values] The values to exclude.
37985 * @param {Function} [comparator] The comparator invoked per element.
37986 * @returns {Array} Returns the new array of filtered values.
37987 * @example
37988 *
37989 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
37990 *
37991 * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
37992 * // => [{ 'x': 2, 'y': 1 }]
37993 */
37994 var differenceWith = baseRest(function(array, values) {
37995 var comparator = last(values);
37996 if (isArrayLikeObject(comparator)) {
37997 comparator = undefined;
37998 }
37999 return isArrayLikeObject(array)
38000 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)
38001 : [];
38002 });
38003
38004 /**
38005 * Creates a slice of `array` with `n` elements dropped from the beginning.
38006 *
38007 * @static
38008 * @memberOf _
38009 * @since 0.5.0
38010 * @category Array
38011 * @param {Array} array The array to query.
38012 * @param {number} [n=1] The number of elements to drop.
38013 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
38014 * @returns {Array} Returns the slice of `array`.
38015 * @example
38016 *
38017 * _.drop([1, 2, 3]);
38018 * // => [2, 3]
38019 *
38020 * _.drop([1, 2, 3], 2);
38021 * // => [3]
38022 *
38023 * _.drop([1, 2, 3], 5);
38024 * // => []
38025 *
38026 * _.drop([1, 2, 3], 0);
38027 * // => [1, 2, 3]
38028 */
38029 function drop(array, n, guard) {
38030 var length = array == null ? 0 : array.length;
38031 if (!length) {
38032 return [];
38033 }
38034 n = (guard || n === undefined) ? 1 : toInteger(n);
38035 return baseSlice(array, n < 0 ? 0 : n, length);
38036 }
38037
38038 /**
38039 * Creates a slice of `array` with `n` elements dropped from the end.
38040 *
38041 * @static
38042 * @memberOf _
38043 * @since 3.0.0
38044 * @category Array
38045 * @param {Array} array The array to query.
38046 * @param {number} [n=1] The number of elements to drop.
38047 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
38048 * @returns {Array} Returns the slice of `array`.
38049 * @example
38050 *
38051 * _.dropRight([1, 2, 3]);
38052 * // => [1, 2]
38053 *
38054 * _.dropRight([1, 2, 3], 2);
38055 * // => [1]
38056 *
38057 * _.dropRight([1, 2, 3], 5);
38058 * // => []
38059 *
38060 * _.dropRight([1, 2, 3], 0);
38061 * // => [1, 2, 3]
38062 */
38063 function dropRight(array, n, guard) {
38064 var length = array == null ? 0 : array.length;
38065 if (!length) {
38066 return [];
38067 }
38068 n = (guard || n === undefined) ? 1 : toInteger(n);
38069 n = length - n;
38070 return baseSlice(array, 0, n < 0 ? 0 : n);
38071 }
38072
38073 /**
38074 * Creates a slice of `array` excluding elements dropped from the end.
38075 * Elements are dropped until `predicate` returns falsey. The predicate is
38076 * invoked with three arguments: (value, index, array).
38077 *
38078 * @static
38079 * @memberOf _
38080 * @since 3.0.0
38081 * @category Array
38082 * @param {Array} array The array to query.
38083 * @param {Function} [predicate=_.identity] The function invoked per iteration.
38084 * @returns {Array} Returns the slice of `array`.
38085 * @example
38086 *
38087 * var users = [
38088 * { 'user': 'barney', 'active': true },
38089 * { 'user': 'fred', 'active': false },
38090 * { 'user': 'pebbles', 'active': false }
38091 * ];
38092 *
38093 * _.dropRightWhile(users, function(o) { return !o.active; });
38094 * // => objects for ['barney']
38095 *
38096 * // The `_.matches` iteratee shorthand.
38097 * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
38098 * // => objects for ['barney', 'fred']
38099 *
38100 * // The `_.matchesProperty` iteratee shorthand.
38101 * _.dropRightWhile(users, ['active', false]);
38102 * // => objects for ['barney']
38103 *
38104 * // The `_.property` iteratee shorthand.
38105 * _.dropRightWhile(users, 'active');
38106 * // => objects for ['barney', 'fred', 'pebbles']
38107 */
38108 function dropRightWhile(array, predicate) {
38109 return (array && array.length)
38110 ? baseWhile(array, getIteratee(predicate, 3), true, true)
38111 : [];
38112 }
38113
38114 /**
38115 * Creates a slice of `array` excluding elements dropped from the beginning.
38116 * Elements are dropped until `predicate` returns falsey. The predicate is
38117 * invoked with three arguments: (value, index, array).
38118 *
38119 * @static
38120 * @memberOf _
38121 * @since 3.0.0
38122 * @category Array
38123 * @param {Array} array The array to query.
38124 * @param {Function} [predicate=_.identity] The function invoked per iteration.
38125 * @returns {Array} Returns the slice of `array`.
38126 * @example
38127 *
38128 * var users = [
38129 * { 'user': 'barney', 'active': false },
38130 * { 'user': 'fred', 'active': false },
38131 * { 'user': 'pebbles', 'active': true }
38132 * ];
38133 *
38134 * _.dropWhile(users, function(o) { return !o.active; });
38135 * // => objects for ['pebbles']
38136 *
38137 * // The `_.matches` iteratee shorthand.
38138 * _.dropWhile(users, { 'user': 'barney', 'active': false });
38139 * // => objects for ['fred', 'pebbles']
38140 *
38141 * // The `_.matchesProperty` iteratee shorthand.
38142 * _.dropWhile(users, ['active', false]);
38143 * // => objects for ['pebbles']
38144 *
38145 * // The `_.property` iteratee shorthand.
38146 * _.dropWhile(users, 'active');
38147 * // => objects for ['barney', 'fred', 'pebbles']
38148 */
38149 function dropWhile(array, predicate) {
38150 return (array && array.length)
38151 ? baseWhile(array, getIteratee(predicate, 3), true)
38152 : [];
38153 }
38154
38155 /**
38156 * Fills elements of `array` with `value` from `start` up to, but not
38157 * including, `end`.
38158 *
38159 * **Note:** This method mutates `array`.
38160 *
38161 * @static
38162 * @memberOf _
38163 * @since 3.2.0
38164 * @category Array
38165 * @param {Array} array The array to fill.
38166 * @param {*} value The value to fill `array` with.
38167 * @param {number} [start=0] The start position.
38168 * @param {number} [end=array.length] The end position.
38169 * @returns {Array} Returns `array`.
38170 * @example
38171 *
38172 * var array = [1, 2, 3];
38173 *
38174 * _.fill(array, 'a');
38175 * console.log(array);
38176 * // => ['a', 'a', 'a']
38177 *
38178 * _.fill(Array(3), 2);
38179 * // => [2, 2, 2]
38180 *
38181 * _.fill([4, 6, 8, 10], '*', 1, 3);
38182 * // => [4, '*', '*', 10]
38183 */
38184 function fill(array, value, start, end) {
38185 var length = array == null ? 0 : array.length;
38186 if (!length) {
38187 return [];
38188 }
38189 if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {
38190 start = 0;
38191 end = length;
38192 }
38193 return baseFill(array, value, start, end);
38194 }
38195
38196 /**
38197 * This method is like `_.find` except that it returns the index of the first
38198 * element `predicate` returns truthy for instead of the element itself.
38199 *
38200 * @static
38201 * @memberOf _
38202 * @since 1.1.0
38203 * @category Array
38204 * @param {Array} array The array to inspect.
38205 * @param {Function} [predicate=_.identity] The function invoked per iteration.
38206 * @param {number} [fromIndex=0] The index to search from.
38207 * @returns {number} Returns the index of the found element, else `-1`.
38208 * @example
38209 *
38210 * var users = [
38211 * { 'user': 'barney', 'active': false },
38212 * { 'user': 'fred', 'active': false },
38213 * { 'user': 'pebbles', 'active': true }
38214 * ];
38215 *
38216 * _.findIndex(users, function(o) { return o.user == 'barney'; });
38217 * // => 0
38218 *
38219 * // The `_.matches` iteratee shorthand.
38220 * _.findIndex(users, { 'user': 'fred', 'active': false });
38221 * // => 1
38222 *
38223 * // The `_.matchesProperty` iteratee shorthand.
38224 * _.findIndex(users, ['active', false]);
38225 * // => 0
38226 *
38227 * // The `_.property` iteratee shorthand.
38228 * _.findIndex(users, 'active');
38229 * // => 2
38230 */
38231 function findIndex(array, predicate, fromIndex) {
38232 var length = array == null ? 0 : array.length;
38233 if (!length) {
38234 return -1;
38235 }
38236 var index = fromIndex == null ? 0 : toInteger(fromIndex);
38237 if (index < 0) {
38238 index = nativeMax(length + index, 0);
38239 }
38240 return baseFindIndex(array, getIteratee(predicate, 3), index);
38241 }
38242
38243 /**
38244 * This method is like `_.findIndex` except that it iterates over elements
38245 * of `collection` from right to left.
38246 *
38247 * @static
38248 * @memberOf _
38249 * @since 2.0.0
38250 * @category Array
38251 * @param {Array} array The array to inspect.
38252 * @param {Function} [predicate=_.identity] The function invoked per iteration.
38253 * @param {number} [fromIndex=array.length-1] The index to search from.
38254 * @returns {number} Returns the index of the found element, else `-1`.
38255 * @example
38256 *
38257 * var users = [
38258 * { 'user': 'barney', 'active': true },
38259 * { 'user': 'fred', 'active': false },
38260 * { 'user': 'pebbles', 'active': false }
38261 * ];
38262 *
38263 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });
38264 * // => 2
38265 *
38266 * // The `_.matches` iteratee shorthand.
38267 * _.findLastIndex(users, { 'user': 'barney', 'active': true });
38268 * // => 0
38269 *
38270 * // The `_.matchesProperty` iteratee shorthand.
38271 * _.findLastIndex(users, ['active', false]);
38272 * // => 2
38273 *
38274 * // The `_.property` iteratee shorthand.
38275 * _.findLastIndex(users, 'active');
38276 * // => 0
38277 */
38278 function findLastIndex(array, predicate, fromIndex) {
38279 var length = array == null ? 0 : array.length;
38280 if (!length) {
38281 return -1;
38282 }
38283 var index = length - 1;
38284 if (fromIndex !== undefined) {
38285 index = toInteger(fromIndex);
38286 index = fromIndex < 0
38287 ? nativeMax(length + index, 0)
38288 : nativeMin(index, length - 1);
38289 }
38290 return baseFindIndex(array, getIteratee(predicate, 3), index, true);
38291 }
38292
38293 /**
38294 * Flattens `array` a single level deep.
38295 *
38296 * @static
38297 * @memberOf _
38298 * @since 0.1.0
38299 * @category Array
38300 * @param {Array} array The array to flatten.
38301 * @returns {Array} Returns the new flattened array.
38302 * @example
38303 *
38304 * _.flatten([1, [2, [3, [4]], 5]]);
38305 * // => [1, 2, [3, [4]], 5]
38306 */
38307 function flatten(array) {
38308 var length = array == null ? 0 : array.length;
38309 return length ? baseFlatten(array, 1) : [];
38310 }
38311
38312 /**
38313 * Recursively flattens `array`.
38314 *
38315 * @static
38316 * @memberOf _
38317 * @since 3.0.0
38318 * @category Array
38319 * @param {Array} array The array to flatten.
38320 * @returns {Array} Returns the new flattened array.
38321 * @example
38322 *
38323 * _.flattenDeep([1, [2, [3, [4]], 5]]);
38324 * // => [1, 2, 3, 4, 5]
38325 */
38326 function flattenDeep(array) {
38327 var length = array == null ? 0 : array.length;
38328 return length ? baseFlatten(array, INFINITY) : [];
38329 }
38330
38331 /**
38332 * Recursively flatten `array` up to `depth` times.
38333 *
38334 * @static
38335 * @memberOf _
38336 * @since 4.4.0
38337 * @category Array
38338 * @param {Array} array The array to flatten.
38339 * @param {number} [depth=1] The maximum recursion depth.
38340 * @returns {Array} Returns the new flattened array.
38341 * @example
38342 *
38343 * var array = [1, [2, [3, [4]], 5]];
38344 *
38345 * _.flattenDepth(array, 1);
38346 * // => [1, 2, [3, [4]], 5]
38347 *
38348 * _.flattenDepth(array, 2);
38349 * // => [1, 2, 3, [4], 5]
38350 */
38351 function flattenDepth(array, depth) {
38352 var length = array == null ? 0 : array.length;
38353 if (!length) {
38354 return [];
38355 }
38356 depth = depth === undefined ? 1 : toInteger(depth);
38357 return baseFlatten(array, depth);
38358 }
38359
38360 /**
38361 * The inverse of `_.toPairs`; this method returns an object composed
38362 * from key-value `pairs`.
38363 *
38364 * @static
38365 * @memberOf _
38366 * @since 4.0.0
38367 * @category Array
38368 * @param {Array} pairs The key-value pairs.
38369 * @returns {Object} Returns the new object.
38370 * @example
38371 *
38372 * _.fromPairs([['a', 1], ['b', 2]]);
38373 * // => { 'a': 1, 'b': 2 }
38374 */
38375 function fromPairs(pairs) {
38376 var index = -1,
38377 length = pairs == null ? 0 : pairs.length,
38378 result = {};
38379
38380 while (++index < length) {
38381 var pair = pairs[index];
38382 result[pair[0]] = pair[1];
38383 }
38384 return result;
38385 }
38386
38387 /**
38388 * Gets the first element of `array`.
38389 *
38390 * @static
38391 * @memberOf _
38392 * @since 0.1.0
38393 * @alias first
38394 * @category Array
38395 * @param {Array} array The array to query.
38396 * @returns {*} Returns the first element of `array`.
38397 * @example
38398 *
38399 * _.head([1, 2, 3]);
38400 * // => 1
38401 *
38402 * _.head([]);
38403 * // => undefined
38404 */
38405 function head(array) {
38406 return (array && array.length) ? array[0] : undefined;
38407 }
38408
38409 /**
38410 * Gets the index at which the first occurrence of `value` is found in `array`
38411 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
38412 * for equality comparisons. If `fromIndex` is negative, it's used as the
38413 * offset from the end of `array`.
38414 *
38415 * @static
38416 * @memberOf _
38417 * @since 0.1.0
38418 * @category Array
38419 * @param {Array} array The array to inspect.
38420 * @param {*} value The value to search for.
38421 * @param {number} [fromIndex=0] The index to search from.
38422 * @returns {number} Returns the index of the matched value, else `-1`.
38423 * @example
38424 *
38425 * _.indexOf([1, 2, 1, 2], 2);
38426 * // => 1
38427 *
38428 * // Search from the `fromIndex`.
38429 * _.indexOf([1, 2, 1, 2], 2, 2);
38430 * // => 3
38431 */
38432 function indexOf(array, value, fromIndex) {
38433 var length = array == null ? 0 : array.length;
38434 if (!length) {
38435 return -1;
38436 }
38437 var index = fromIndex == null ? 0 : toInteger(fromIndex);
38438 if (index < 0) {
38439 index = nativeMax(length + index, 0);
38440 }
38441 return baseIndexOf(array, value, index);
38442 }
38443
38444 /**
38445 * Gets all but the last element of `array`.
38446 *
38447 * @static
38448 * @memberOf _
38449 * @since 0.1.0
38450 * @category Array
38451 * @param {Array} array The array to query.
38452 * @returns {Array} Returns the slice of `array`.
38453 * @example
38454 *
38455 * _.initial([1, 2, 3]);
38456 * // => [1, 2]
38457 */
38458 function initial(array) {
38459 var length = array == null ? 0 : array.length;
38460 return length ? baseSlice(array, 0, -1) : [];
38461 }
38462
38463 /**
38464 * Creates an array of unique values that are included in all given arrays
38465 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
38466 * for equality comparisons. The order and references of result values are
38467 * determined by the first array.
38468 *
38469 * @static
38470 * @memberOf _
38471 * @since 0.1.0
38472 * @category Array
38473 * @param {...Array} [arrays] The arrays to inspect.
38474 * @returns {Array} Returns the new array of intersecting values.
38475 * @example
38476 *
38477 * _.intersection([2, 1], [2, 3]);
38478 * // => [2]
38479 */
38480 var intersection = baseRest(function(arrays) {
38481 var mapped = arrayMap(arrays, castArrayLikeObject);
38482 return (mapped.length && mapped[0] === arrays[0])
38483 ? baseIntersection(mapped)
38484 : [];
38485 });
38486
38487 /**
38488 * This method is like `_.intersection` except that it accepts `iteratee`
38489 * which is invoked for each element of each `arrays` to generate the criterion
38490 * by which they're compared. The order and references of result values are
38491 * determined by the first array. The iteratee is invoked with one argument:
38492 * (value).
38493 *
38494 * @static
38495 * @memberOf _
38496 * @since 4.0.0
38497 * @category Array
38498 * @param {...Array} [arrays] The arrays to inspect.
38499 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
38500 * @returns {Array} Returns the new array of intersecting values.
38501 * @example
38502 *
38503 * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
38504 * // => [2.1]
38505 *
38506 * // The `_.property` iteratee shorthand.
38507 * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
38508 * // => [{ 'x': 1 }]
38509 */
38510 var intersectionBy = baseRest(function(arrays) {
38511 var iteratee = last(arrays),
38512 mapped = arrayMap(arrays, castArrayLikeObject);
38513
38514 if (iteratee === last(mapped)) {
38515 iteratee = undefined;
38516 } else {
38517 mapped.pop();
38518 }
38519 return (mapped.length && mapped[0] === arrays[0])
38520 ? baseIntersection(mapped, getIteratee(iteratee, 2))
38521 : [];
38522 });
38523
38524 /**
38525 * This method is like `_.intersection` except that it accepts `comparator`
38526 * which is invoked to compare elements of `arrays`. The order and references
38527 * of result values are determined by the first array. The comparator is
38528 * invoked with two arguments: (arrVal, othVal).
38529 *
38530 * @static
38531 * @memberOf _
38532 * @since 4.0.0
38533 * @category Array
38534 * @param {...Array} [arrays] The arrays to inspect.
38535 * @param {Function} [comparator] The comparator invoked per element.
38536 * @returns {Array} Returns the new array of intersecting values.
38537 * @example
38538 *
38539 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
38540 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
38541 *
38542 * _.intersectionWith(objects, others, _.isEqual);
38543 * // => [{ 'x': 1, 'y': 2 }]
38544 */
38545 var intersectionWith = baseRest(function(arrays) {
38546 var comparator = last(arrays),
38547 mapped = arrayMap(arrays, castArrayLikeObject);
38548
38549 comparator = typeof comparator == 'function' ? comparator : undefined;
38550 if (comparator) {
38551 mapped.pop();
38552 }
38553 return (mapped.length && mapped[0] === arrays[0])
38554 ? baseIntersection(mapped, undefined, comparator)
38555 : [];
38556 });
38557
38558 /**
38559 * Converts all elements in `array` into a string separated by `separator`.
38560 *
38561 * @static
38562 * @memberOf _
38563 * @since 4.0.0
38564 * @category Array
38565 * @param {Array} array The array to convert.
38566 * @param {string} [separator=','] The element separator.
38567 * @returns {string} Returns the joined string.
38568 * @example
38569 *
38570 * _.join(['a', 'b', 'c'], '~');
38571 * // => 'a~b~c'
38572 */
38573 function join(array, separator) {
38574 return array == null ? '' : nativeJoin.call(array, separator);
38575 }
38576
38577 /**
38578 * Gets the last element of `array`.
38579 *
38580 * @static
38581 * @memberOf _
38582 * @since 0.1.0
38583 * @category Array
38584 * @param {Array} array The array to query.
38585 * @returns {*} Returns the last element of `array`.
38586 * @example
38587 *
38588 * _.last([1, 2, 3]);
38589 * // => 3
38590 */
38591 function last(array) {
38592 var length = array == null ? 0 : array.length;
38593 return length ? array[length - 1] : undefined;
38594 }
38595
38596 /**
38597 * This method is like `_.indexOf` except that it iterates over elements of
38598 * `array` from right to left.
38599 *
38600 * @static
38601 * @memberOf _
38602 * @since 0.1.0
38603 * @category Array
38604 * @param {Array} array The array to inspect.
38605 * @param {*} value The value to search for.
38606 * @param {number} [fromIndex=array.length-1] The index to search from.
38607 * @returns {number} Returns the index of the matched value, else `-1`.
38608 * @example
38609 *
38610 * _.lastIndexOf([1, 2, 1, 2], 2);
38611 * // => 3
38612 *
38613 * // Search from the `fromIndex`.
38614 * _.lastIndexOf([1, 2, 1, 2], 2, 2);
38615 * // => 1
38616 */
38617 function lastIndexOf(array, value, fromIndex) {
38618 var length = array == null ? 0 : array.length;
38619 if (!length) {
38620 return -1;
38621 }
38622 var index = length;
38623 if (fromIndex !== undefined) {
38624 index = toInteger(fromIndex);
38625 index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
38626 }
38627 return value === value
38628 ? strictLastIndexOf(array, value, index)
38629 : baseFindIndex(array, baseIsNaN, index, true);
38630 }
38631
38632 /**
38633 * Gets the element at index `n` of `array`. If `n` is negative, the nth
38634 * element from the end is returned.
38635 *
38636 * @static
38637 * @memberOf _
38638 * @since 4.11.0
38639 * @category Array
38640 * @param {Array} array The array to query.
38641 * @param {number} [n=0] The index of the element to return.
38642 * @returns {*} Returns the nth element of `array`.
38643 * @example
38644 *
38645 * var array = ['a', 'b', 'c', 'd'];
38646 *
38647 * _.nth(array, 1);
38648 * // => 'b'
38649 *
38650 * _.nth(array, -2);
38651 * // => 'c';
38652 */
38653 function nth(array, n) {
38654 return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;
38655 }
38656
38657 /**
38658 * Removes all given values from `array` using
38659 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
38660 * for equality comparisons.
38661 *
38662 * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`
38663 * to remove elements from an array by predicate.
38664 *
38665 * @static
38666 * @memberOf _
38667 * @since 2.0.0
38668 * @category Array
38669 * @param {Array} array The array to modify.
38670 * @param {...*} [values] The values to remove.
38671 * @returns {Array} Returns `array`.
38672 * @example
38673 *
38674 * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
38675 *
38676 * _.pull(array, 'a', 'c');
38677 * console.log(array);
38678 * // => ['b', 'b']
38679 */
38680 var pull = baseRest(pullAll);
38681
38682 /**
38683 * This method is like `_.pull` except that it accepts an array of values to remove.
38684 *
38685 * **Note:** Unlike `_.difference`, this method mutates `array`.
38686 *
38687 * @static
38688 * @memberOf _
38689 * @since 4.0.0
38690 * @category Array
38691 * @param {Array} array The array to modify.
38692 * @param {Array} values The values to remove.
38693 * @returns {Array} Returns `array`.
38694 * @example
38695 *
38696 * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
38697 *
38698 * _.pullAll(array, ['a', 'c']);
38699 * console.log(array);
38700 * // => ['b', 'b']
38701 */
38702 function pullAll(array, values) {
38703 return (array && array.length && values && values.length)
38704 ? basePullAll(array, values)
38705 : array;
38706 }
38707
38708 /**
38709 * This method is like `_.pullAll` except that it accepts `iteratee` which is
38710 * invoked for each element of `array` and `values` to generate the criterion
38711 * by which they're compared. The iteratee is invoked with one argument: (value).
38712 *
38713 * **Note:** Unlike `_.differenceBy`, this method mutates `array`.
38714 *
38715 * @static
38716 * @memberOf _
38717 * @since 4.0.0
38718 * @category Array
38719 * @param {Array} array The array to modify.
38720 * @param {Array} values The values to remove.
38721 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
38722 * @returns {Array} Returns `array`.
38723 * @example
38724 *
38725 * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
38726 *
38727 * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
38728 * console.log(array);
38729 * // => [{ 'x': 2 }]
38730 */
38731 function pullAllBy(array, values, iteratee) {
38732 return (array && array.length && values && values.length)
38733 ? basePullAll(array, values, getIteratee(iteratee, 2))
38734 : array;
38735 }
38736
38737 /**
38738 * This method is like `_.pullAll` except that it accepts `comparator` which
38739 * is invoked to compare elements of `array` to `values`. The comparator is
38740 * invoked with two arguments: (arrVal, othVal).
38741 *
38742 * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
38743 *
38744 * @static
38745 * @memberOf _
38746 * @since 4.6.0
38747 * @category Array
38748 * @param {Array} array The array to modify.
38749 * @param {Array} values The values to remove.
38750 * @param {Function} [comparator] The comparator invoked per element.
38751 * @returns {Array} Returns `array`.
38752 * @example
38753 *
38754 * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
38755 *
38756 * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
38757 * console.log(array);
38758 * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
38759 */
38760 function pullAllWith(array, values, comparator) {
38761 return (array && array.length && values && values.length)
38762 ? basePullAll(array, values, undefined, comparator)
38763 : array;
38764 }
38765
38766 /**
38767 * Removes elements from `array` corresponding to `indexes` and returns an
38768 * array of removed elements.
38769 *
38770 * **Note:** Unlike `_.at`, this method mutates `array`.
38771 *
38772 * @static
38773 * @memberOf _
38774 * @since 3.0.0
38775 * @category Array
38776 * @param {Array} array The array to modify.
38777 * @param {...(number|number[])} [indexes] The indexes of elements to remove.
38778 * @returns {Array} Returns the new array of removed elements.
38779 * @example
38780 *
38781 * var array = ['a', 'b', 'c', 'd'];
38782 * var pulled = _.pullAt(array, [1, 3]);
38783 *
38784 * console.log(array);
38785 * // => ['a', 'c']
38786 *
38787 * console.log(pulled);
38788 * // => ['b', 'd']
38789 */
38790 var pullAt = flatRest(function(array, indexes) {
38791 var length = array == null ? 0 : array.length,
38792 result = baseAt(array, indexes);
38793
38794 basePullAt(array, arrayMap(indexes, function(index) {
38795 return isIndex(index, length) ? +index : index;
38796 }).sort(compareAscending));
38797
38798 return result;
38799 });
38800
38801 /**
38802 * Removes all elements from `array` that `predicate` returns truthy for
38803 * and returns an array of the removed elements. The predicate is invoked
38804 * with three arguments: (value, index, array).
38805 *
38806 * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`
38807 * to pull elements from an array by value.
38808 *
38809 * @static
38810 * @memberOf _
38811 * @since 2.0.0
38812 * @category Array
38813 * @param {Array} array The array to modify.
38814 * @param {Function} [predicate=_.identity] The function invoked per iteration.
38815 * @returns {Array} Returns the new array of removed elements.
38816 * @example
38817 *
38818 * var array = [1, 2, 3, 4];
38819 * var evens = _.remove(array, function(n) {
38820 * return n % 2 == 0;
38821 * });
38822 *
38823 * console.log(array);
38824 * // => [1, 3]
38825 *
38826 * console.log(evens);
38827 * // => [2, 4]
38828 */
38829 function remove(array, predicate) {
38830 var result = [];
38831 if (!(array && array.length)) {
38832 return result;
38833 }
38834 var index = -1,
38835 indexes = [],
38836 length = array.length;
38837
38838 predicate = getIteratee(predicate, 3);
38839 while (++index < length) {
38840 var value = array[index];
38841 if (predicate(value, index, array)) {
38842 result.push(value);
38843 indexes.push(index);
38844 }
38845 }
38846 basePullAt(array, indexes);
38847 return result;
38848 }
38849
38850 /**
38851 * Reverses `array` so that the first element becomes the last, the second
38852 * element becomes the second to last, and so on.
38853 *
38854 * **Note:** This method mutates `array` and is based on
38855 * [`Array#reverse`](https://mdn.io/Array/reverse).
38856 *
38857 * @static
38858 * @memberOf _
38859 * @since 4.0.0
38860 * @category Array
38861 * @param {Array} array The array to modify.
38862 * @returns {Array} Returns `array`.
38863 * @example
38864 *
38865 * var array = [1, 2, 3];
38866 *
38867 * _.reverse(array);
38868 * // => [3, 2, 1]
38869 *
38870 * console.log(array);
38871 * // => [3, 2, 1]
38872 */
38873 function reverse(array) {
38874 return array == null ? array : nativeReverse.call(array);
38875 }
38876
38877 /**
38878 * Creates a slice of `array` from `start` up to, but not including, `end`.
38879 *
38880 * **Note:** This method is used instead of
38881 * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are
38882 * returned.
38883 *
38884 * @static
38885 * @memberOf _
38886 * @since 3.0.0
38887 * @category Array
38888 * @param {Array} array The array to slice.
38889 * @param {number} [start=0] The start position.
38890 * @param {number} [end=array.length] The end position.
38891 * @returns {Array} Returns the slice of `array`.
38892 */
38893 function slice(array, start, end) {
38894 var length = array == null ? 0 : array.length;
38895 if (!length) {
38896 return [];
38897 }
38898 if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {
38899 start = 0;
38900 end = length;
38901 }
38902 else {
38903 start = start == null ? 0 : toInteger(start);
38904 end = end === undefined ? length : toInteger(end);
38905 }
38906 return baseSlice(array, start, end);
38907 }
38908
38909 /**
38910 * Uses a binary search to determine the lowest index at which `value`
38911 * should be inserted into `array` in order to maintain its sort order.
38912 *
38913 * @static
38914 * @memberOf _
38915 * @since 0.1.0
38916 * @category Array
38917 * @param {Array} array The sorted array to inspect.
38918 * @param {*} value The value to evaluate.
38919 * @returns {number} Returns the index at which `value` should be inserted
38920 * into `array`.
38921 * @example
38922 *
38923 * _.sortedIndex([30, 50], 40);
38924 * // => 1
38925 */
38926 function sortedIndex(array, value) {
38927 return baseSortedIndex(array, value);
38928 }
38929
38930 /**
38931 * This method is like `_.sortedIndex` except that it accepts `iteratee`
38932 * which is invoked for `value` and each element of `array` to compute their
38933 * sort ranking. The iteratee is invoked with one argument: (value).
38934 *
38935 * @static
38936 * @memberOf _
38937 * @since 4.0.0
38938 * @category Array
38939 * @param {Array} array The sorted array to inspect.
38940 * @param {*} value The value to evaluate.
38941 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
38942 * @returns {number} Returns the index at which `value` should be inserted
38943 * into `array`.
38944 * @example
38945 *
38946 * var objects = [{ 'x': 4 }, { 'x': 5 }];
38947 *
38948 * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
38949 * // => 0
38950 *
38951 * // The `_.property` iteratee shorthand.
38952 * _.sortedIndexBy(objects, { 'x': 4 }, 'x');
38953 * // => 0
38954 */
38955 function sortedIndexBy(array, value, iteratee) {
38956 return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));
38957 }
38958
38959 /**
38960 * This method is like `_.indexOf` except that it performs a binary
38961 * search on a sorted `array`.
38962 *
38963 * @static
38964 * @memberOf _
38965 * @since 4.0.0
38966 * @category Array
38967 * @param {Array} array The array to inspect.
38968 * @param {*} value The value to search for.
38969 * @returns {number} Returns the index of the matched value, else `-1`.
38970 * @example
38971 *
38972 * _.sortedIndexOf([4, 5, 5, 5, 6], 5);
38973 * // => 1
38974 */
38975 function sortedIndexOf(array, value) {
38976 var length = array == null ? 0 : array.length;
38977 if (length) {
38978 var index = baseSortedIndex(array, value);
38979 if (index < length && eq(array[index], value)) {
38980 return index;
38981 }
38982 }
38983 return -1;
38984 }
38985
38986 /**
38987 * This method is like `_.sortedIndex` except that it returns the highest
38988 * index at which `value` should be inserted into `array` in order to
38989 * maintain its sort order.
38990 *
38991 * @static
38992 * @memberOf _
38993 * @since 3.0.0
38994 * @category Array
38995 * @param {Array} array The sorted array to inspect.
38996 * @param {*} value The value to evaluate.
38997 * @returns {number} Returns the index at which `value` should be inserted
38998 * into `array`.
38999 * @example
39000 *
39001 * _.sortedLastIndex([4, 5, 5, 5, 6], 5);
39002 * // => 4
39003 */
39004 function sortedLastIndex(array, value) {
39005 return baseSortedIndex(array, value, true);
39006 }
39007
39008 /**
39009 * This method is like `_.sortedLastIndex` except that it accepts `iteratee`
39010 * which is invoked for `value` and each element of `array` to compute their
39011 * sort ranking. The iteratee is invoked with one argument: (value).
39012 *
39013 * @static
39014 * @memberOf _
39015 * @since 4.0.0
39016 * @category Array
39017 * @param {Array} array The sorted array to inspect.
39018 * @param {*} value The value to evaluate.
39019 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
39020 * @returns {number} Returns the index at which `value` should be inserted
39021 * into `array`.
39022 * @example
39023 *
39024 * var objects = [{ 'x': 4 }, { 'x': 5 }];
39025 *
39026 * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
39027 * // => 1
39028 *
39029 * // The `_.property` iteratee shorthand.
39030 * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');
39031 * // => 1
39032 */
39033 function sortedLastIndexBy(array, value, iteratee) {
39034 return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);
39035 }
39036
39037 /**
39038 * This method is like `_.lastIndexOf` except that it performs a binary
39039 * search on a sorted `array`.
39040 *
39041 * @static
39042 * @memberOf _
39043 * @since 4.0.0
39044 * @category Array
39045 * @param {Array} array The array to inspect.
39046 * @param {*} value The value to search for.
39047 * @returns {number} Returns the index of the matched value, else `-1`.
39048 * @example
39049 *
39050 * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
39051 * // => 3
39052 */
39053 function sortedLastIndexOf(array, value) {
39054 var length = array == null ? 0 : array.length;
39055 if (length) {
39056 var index = baseSortedIndex(array, value, true) - 1;
39057 if (eq(array[index], value)) {
39058 return index;
39059 }
39060 }
39061 return -1;
39062 }
39063
39064 /**
39065 * This method is like `_.uniq` except that it's designed and optimized
39066 * for sorted arrays.
39067 *
39068 * @static
39069 * @memberOf _
39070 * @since 4.0.0
39071 * @category Array
39072 * @param {Array} array The array to inspect.
39073 * @returns {Array} Returns the new duplicate free array.
39074 * @example
39075 *
39076 * _.sortedUniq([1, 1, 2]);
39077 * // => [1, 2]
39078 */
39079 function sortedUniq(array) {
39080 return (array && array.length)
39081 ? baseSortedUniq(array)
39082 : [];
39083 }
39084
39085 /**
39086 * This method is like `_.uniqBy` except that it's designed and optimized
39087 * for sorted arrays.
39088 *
39089 * @static
39090 * @memberOf _
39091 * @since 4.0.0
39092 * @category Array
39093 * @param {Array} array The array to inspect.
39094 * @param {Function} [iteratee] The iteratee invoked per element.
39095 * @returns {Array} Returns the new duplicate free array.
39096 * @example
39097 *
39098 * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
39099 * // => [1.1, 2.3]
39100 */
39101 function sortedUniqBy(array, iteratee) {
39102 return (array && array.length)
39103 ? baseSortedUniq(array, getIteratee(iteratee, 2))
39104 : [];
39105 }
39106
39107 /**
39108 * Gets all but the first element of `array`.
39109 *
39110 * @static
39111 * @memberOf _
39112 * @since 4.0.0
39113 * @category Array
39114 * @param {Array} array The array to query.
39115 * @returns {Array} Returns the slice of `array`.
39116 * @example
39117 *
39118 * _.tail([1, 2, 3]);
39119 * // => [2, 3]
39120 */
39121 function tail(array) {
39122 var length = array == null ? 0 : array.length;
39123 return length ? baseSlice(array, 1, length) : [];
39124 }
39125
39126 /**
39127 * Creates a slice of `array` with `n` elements taken from the beginning.
39128 *
39129 * @static
39130 * @memberOf _
39131 * @since 0.1.0
39132 * @category Array
39133 * @param {Array} array The array to query.
39134 * @param {number} [n=1] The number of elements to take.
39135 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
39136 * @returns {Array} Returns the slice of `array`.
39137 * @example
39138 *
39139 * _.take([1, 2, 3]);
39140 * // => [1]
39141 *
39142 * _.take([1, 2, 3], 2);
39143 * // => [1, 2]
39144 *
39145 * _.take([1, 2, 3], 5);
39146 * // => [1, 2, 3]
39147 *
39148 * _.take([1, 2, 3], 0);
39149 * // => []
39150 */
39151 function take(array, n, guard) {
39152 if (!(array && array.length)) {
39153 return [];
39154 }
39155 n = (guard || n === undefined) ? 1 : toInteger(n);
39156 return baseSlice(array, 0, n < 0 ? 0 : n);
39157 }
39158
39159 /**
39160 * Creates a slice of `array` with `n` elements taken from the end.
39161 *
39162 * @static
39163 * @memberOf _
39164 * @since 3.0.0
39165 * @category Array
39166 * @param {Array} array The array to query.
39167 * @param {number} [n=1] The number of elements to take.
39168 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
39169 * @returns {Array} Returns the slice of `array`.
39170 * @example
39171 *
39172 * _.takeRight([1, 2, 3]);
39173 * // => [3]
39174 *
39175 * _.takeRight([1, 2, 3], 2);
39176 * // => [2, 3]
39177 *
39178 * _.takeRight([1, 2, 3], 5);
39179 * // => [1, 2, 3]
39180 *
39181 * _.takeRight([1, 2, 3], 0);
39182 * // => []
39183 */
39184 function takeRight(array, n, guard) {
39185 var length = array == null ? 0 : array.length;
39186 if (!length) {
39187 return [];
39188 }
39189 n = (guard || n === undefined) ? 1 : toInteger(n);
39190 n = length - n;
39191 return baseSlice(array, n < 0 ? 0 : n, length);
39192 }
39193
39194 /**
39195 * Creates a slice of `array` with elements taken from the end. Elements are
39196 * taken until `predicate` returns falsey. The predicate is invoked with
39197 * three arguments: (value, index, array).
39198 *
39199 * @static
39200 * @memberOf _
39201 * @since 3.0.0
39202 * @category Array
39203 * @param {Array} array The array to query.
39204 * @param {Function} [predicate=_.identity] The function invoked per iteration.
39205 * @returns {Array} Returns the slice of `array`.
39206 * @example
39207 *
39208 * var users = [
39209 * { 'user': 'barney', 'active': true },
39210 * { 'user': 'fred', 'active': false },
39211 * { 'user': 'pebbles', 'active': false }
39212 * ];
39213 *
39214 * _.takeRightWhile(users, function(o) { return !o.active; });
39215 * // => objects for ['fred', 'pebbles']
39216 *
39217 * // The `_.matches` iteratee shorthand.
39218 * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });
39219 * // => objects for ['pebbles']
39220 *
39221 * // The `_.matchesProperty` iteratee shorthand.
39222 * _.takeRightWhile(users, ['active', false]);
39223 * // => objects for ['fred', 'pebbles']
39224 *
39225 * // The `_.property` iteratee shorthand.
39226 * _.takeRightWhile(users, 'active');
39227 * // => []
39228 */
39229 function takeRightWhile(array, predicate) {
39230 return (array && array.length)
39231 ? baseWhile(array, getIteratee(predicate, 3), false, true)
39232 : [];
39233 }
39234
39235 /**
39236 * Creates a slice of `array` with elements taken from the beginning. Elements
39237 * are taken until `predicate` returns falsey. The predicate is invoked with
39238 * three arguments: (value, index, array).
39239 *
39240 * @static
39241 * @memberOf _
39242 * @since 3.0.0
39243 * @category Array
39244 * @param {Array} array The array to query.
39245 * @param {Function} [predicate=_.identity] The function invoked per iteration.
39246 * @returns {Array} Returns the slice of `array`.
39247 * @example
39248 *
39249 * var users = [
39250 * { 'user': 'barney', 'active': false },
39251 * { 'user': 'fred', 'active': false },
39252 * { 'user': 'pebbles', 'active': true }
39253 * ];
39254 *
39255 * _.takeWhile(users, function(o) { return !o.active; });
39256 * // => objects for ['barney', 'fred']
39257 *
39258 * // The `_.matches` iteratee shorthand.
39259 * _.takeWhile(users, { 'user': 'barney', 'active': false });
39260 * // => objects for ['barney']
39261 *
39262 * // The `_.matchesProperty` iteratee shorthand.
39263 * _.takeWhile(users, ['active', false]);
39264 * // => objects for ['barney', 'fred']
39265 *
39266 * // The `_.property` iteratee shorthand.
39267 * _.takeWhile(users, 'active');
39268 * // => []
39269 */
39270 function takeWhile(array, predicate) {
39271 return (array && array.length)
39272 ? baseWhile(array, getIteratee(predicate, 3))
39273 : [];
39274 }
39275
39276 /**
39277 * Creates an array of unique values, in order, from all given arrays using
39278 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
39279 * for equality comparisons.
39280 *
39281 * @static
39282 * @memberOf _
39283 * @since 0.1.0
39284 * @category Array
39285 * @param {...Array} [arrays] The arrays to inspect.
39286 * @returns {Array} Returns the new array of combined values.
39287 * @example
39288 *
39289 * _.union([2], [1, 2]);
39290 * // => [2, 1]
39291 */
39292 var union = baseRest(function(arrays) {
39293 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
39294 });
39295
39296 /**
39297 * This method is like `_.union` except that it accepts `iteratee` which is
39298 * invoked for each element of each `arrays` to generate the criterion by
39299 * which uniqueness is computed. Result values are chosen from the first
39300 * array in which the value occurs. The iteratee is invoked with one argument:
39301 * (value).
39302 *
39303 * @static
39304 * @memberOf _
39305 * @since 4.0.0
39306 * @category Array
39307 * @param {...Array} [arrays] The arrays to inspect.
39308 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
39309 * @returns {Array} Returns the new array of combined values.
39310 * @example
39311 *
39312 * _.unionBy([2.1], [1.2, 2.3], Math.floor);
39313 * // => [2.1, 1.2]
39314 *
39315 * // The `_.property` iteratee shorthand.
39316 * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
39317 * // => [{ 'x': 1 }, { 'x': 2 }]
39318 */
39319 var unionBy = baseRest(function(arrays) {
39320 var iteratee = last(arrays);
39321 if (isArrayLikeObject(iteratee)) {
39322 iteratee = undefined;
39323 }
39324 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));
39325 });
39326
39327 /**
39328 * This method is like `_.union` except that it accepts `comparator` which
39329 * is invoked to compare elements of `arrays`. Result values are chosen from
39330 * the first array in which the value occurs. The comparator is invoked
39331 * with two arguments: (arrVal, othVal).
39332 *
39333 * @static
39334 * @memberOf _
39335 * @since 4.0.0
39336 * @category Array
39337 * @param {...Array} [arrays] The arrays to inspect.
39338 * @param {Function} [comparator] The comparator invoked per element.
39339 * @returns {Array} Returns the new array of combined values.
39340 * @example
39341 *
39342 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
39343 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
39344 *
39345 * _.unionWith(objects, others, _.isEqual);
39346 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
39347 */
39348 var unionWith = baseRest(function(arrays) {
39349 var comparator = last(arrays);
39350 comparator = typeof comparator == 'function' ? comparator : undefined;
39351 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);
39352 });
39353
39354 /**
39355 * Creates a duplicate-free version of an array, using
39356 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
39357 * for equality comparisons, in which only the first occurrence of each element
39358 * is kept. The order of result values is determined by the order they occur
39359 * in the array.
39360 *
39361 * @static
39362 * @memberOf _
39363 * @since 0.1.0
39364 * @category Array
39365 * @param {Array} array The array to inspect.
39366 * @returns {Array} Returns the new duplicate free array.
39367 * @example
39368 *
39369 * _.uniq([2, 1, 2]);
39370 * // => [2, 1]
39371 */
39372 function uniq(array) {
39373 return (array && array.length) ? baseUniq(array) : [];
39374 }
39375
39376 /**
39377 * This method is like `_.uniq` except that it accepts `iteratee` which is
39378 * invoked for each element in `array` to generate the criterion by which
39379 * uniqueness is computed. The order of result values is determined by the
39380 * order they occur in the array. The iteratee is invoked with one argument:
39381 * (value).
39382 *
39383 * @static
39384 * @memberOf _
39385 * @since 4.0.0
39386 * @category Array
39387 * @param {Array} array The array to inspect.
39388 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
39389 * @returns {Array} Returns the new duplicate free array.
39390 * @example
39391 *
39392 * _.uniqBy([2.1, 1.2, 2.3], Math.floor);
39393 * // => [2.1, 1.2]
39394 *
39395 * // The `_.property` iteratee shorthand.
39396 * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
39397 * // => [{ 'x': 1 }, { 'x': 2 }]
39398 */
39399 function uniqBy(array, iteratee) {
39400 return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];
39401 }
39402
39403 /**
39404 * This method is like `_.uniq` except that it accepts `comparator` which
39405 * is invoked to compare elements of `array`. The order of result values is
39406 * determined by the order they occur in the array.The comparator is invoked
39407 * with two arguments: (arrVal, othVal).
39408 *
39409 * @static
39410 * @memberOf _
39411 * @since 4.0.0
39412 * @category Array
39413 * @param {Array} array The array to inspect.
39414 * @param {Function} [comparator] The comparator invoked per element.
39415 * @returns {Array} Returns the new duplicate free array.
39416 * @example
39417 *
39418 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
39419 *
39420 * _.uniqWith(objects, _.isEqual);
39421 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
39422 */
39423 function uniqWith(array, comparator) {
39424 comparator = typeof comparator == 'function' ? comparator : undefined;
39425 return (array && array.length) ? baseUniq(array, undefined, comparator) : [];
39426 }
39427
39428 /**
39429 * This method is like `_.zip` except that it accepts an array of grouped
39430 * elements and creates an array regrouping the elements to their pre-zip
39431 * configuration.
39432 *
39433 * @static
39434 * @memberOf _
39435 * @since 1.2.0
39436 * @category Array
39437 * @param {Array} array The array of grouped elements to process.
39438 * @returns {Array} Returns the new array of regrouped elements.
39439 * @example
39440 *
39441 * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);
39442 * // => [['a', 1, true], ['b', 2, false]]
39443 *
39444 * _.unzip(zipped);
39445 * // => [['a', 'b'], [1, 2], [true, false]]
39446 */
39447 function unzip(array) {
39448 if (!(array && array.length)) {
39449 return [];
39450 }
39451 var length = 0;
39452 array = arrayFilter(array, function(group) {
39453 if (isArrayLikeObject(group)) {
39454 length = nativeMax(group.length, length);
39455 return true;
39456 }
39457 });
39458 return baseTimes(length, function(index) {
39459 return arrayMap(array, baseProperty(index));
39460 });
39461 }
39462
39463 /**
39464 * This method is like `_.unzip` except that it accepts `iteratee` to specify
39465 * how regrouped values should be combined. The iteratee is invoked with the
39466 * elements of each group: (...group).
39467 *
39468 * @static
39469 * @memberOf _
39470 * @since 3.8.0
39471 * @category Array
39472 * @param {Array} array The array of grouped elements to process.
39473 * @param {Function} [iteratee=_.identity] The function to combine
39474 * regrouped values.
39475 * @returns {Array} Returns the new array of regrouped elements.
39476 * @example
39477 *
39478 * var zipped = _.zip([1, 2], [10, 20], [100, 200]);
39479 * // => [[1, 10, 100], [2, 20, 200]]
39480 *
39481 * _.unzipWith(zipped, _.add);
39482 * // => [3, 30, 300]
39483 */
39484 function unzipWith(array, iteratee) {
39485 if (!(array && array.length)) {
39486 return [];
39487 }
39488 var result = unzip(array);
39489 if (iteratee == null) {
39490 return result;
39491 }
39492 return arrayMap(result, function(group) {
39493 return apply(iteratee, undefined, group);
39494 });
39495 }
39496
39497 /**
39498 * Creates an array excluding all given values using
39499 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
39500 * for equality comparisons.
39501 *
39502 * **Note:** Unlike `_.pull`, this method returns a new array.
39503 *
39504 * @static
39505 * @memberOf _
39506 * @since 0.1.0
39507 * @category Array
39508 * @param {Array} array The array to inspect.
39509 * @param {...*} [values] The values to exclude.
39510 * @returns {Array} Returns the new array of filtered values.
39511 * @see _.difference, _.xor
39512 * @example
39513 *
39514 * _.without([2, 1, 2, 3], 1, 2);
39515 * // => [3]
39516 */
39517 var without = baseRest(function(array, values) {
39518 return isArrayLikeObject(array)
39519 ? baseDifference(array, values)
39520 : [];
39521 });
39522
39523 /**
39524 * Creates an array of unique values that is the
39525 * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
39526 * of the given arrays. The order of result values is determined by the order
39527 * they occur in the arrays.
39528 *
39529 * @static
39530 * @memberOf _
39531 * @since 2.4.0
39532 * @category Array
39533 * @param {...Array} [arrays] The arrays to inspect.
39534 * @returns {Array} Returns the new array of filtered values.
39535 * @see _.difference, _.without
39536 * @example
39537 *
39538 * _.xor([2, 1], [2, 3]);
39539 * // => [1, 3]
39540 */
39541 var xor = baseRest(function(arrays) {
39542 return baseXor(arrayFilter(arrays, isArrayLikeObject));
39543 });
39544
39545 /**
39546 * This method is like `_.xor` except that it accepts `iteratee` which is
39547 * invoked for each element of each `arrays` to generate the criterion by
39548 * which by which they're compared. The order of result values is determined
39549 * by the order they occur in the arrays. The iteratee is invoked with one
39550 * argument: (value).
39551 *
39552 * @static
39553 * @memberOf _
39554 * @since 4.0.0
39555 * @category Array
39556 * @param {...Array} [arrays] The arrays to inspect.
39557 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
39558 * @returns {Array} Returns the new array of filtered values.
39559 * @example
39560 *
39561 * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);
39562 * // => [1.2, 3.4]
39563 *
39564 * // The `_.property` iteratee shorthand.
39565 * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
39566 * // => [{ 'x': 2 }]
39567 */
39568 var xorBy = baseRest(function(arrays) {
39569 var iteratee = last(arrays);
39570 if (isArrayLikeObject(iteratee)) {
39571 iteratee = undefined;
39572 }
39573 return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));
39574 });
39575
39576 /**
39577 * This method is like `_.xor` except that it accepts `comparator` which is
39578 * invoked to compare elements of `arrays`. The order of result values is
39579 * determined by the order they occur in the arrays. The comparator is invoked
39580 * with two arguments: (arrVal, othVal).
39581 *
39582 * @static
39583 * @memberOf _
39584 * @since 4.0.0
39585 * @category Array
39586 * @param {...Array} [arrays] The arrays to inspect.
39587 * @param {Function} [comparator] The comparator invoked per element.
39588 * @returns {Array} Returns the new array of filtered values.
39589 * @example
39590 *
39591 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
39592 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
39593 *
39594 * _.xorWith(objects, others, _.isEqual);
39595 * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
39596 */
39597 var xorWith = baseRest(function(arrays) {
39598 var comparator = last(arrays);
39599 comparator = typeof comparator == 'function' ? comparator : undefined;
39600 return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);
39601 });
39602
39603 /**
39604 * Creates an array of grouped elements, the first of which contains the
39605 * first elements of the given arrays, the second of which contains the
39606 * second elements of the given arrays, and so on.
39607 *
39608 * @static
39609 * @memberOf _
39610 * @since 0.1.0
39611 * @category Array
39612 * @param {...Array} [arrays] The arrays to process.
39613 * @returns {Array} Returns the new array of grouped elements.
39614 * @example
39615 *
39616 * _.zip(['a', 'b'], [1, 2], [true, false]);
39617 * // => [['a', 1, true], ['b', 2, false]]
39618 */
39619 var zip = baseRest(unzip);
39620
39621 /**
39622 * This method is like `_.fromPairs` except that it accepts two arrays,
39623 * one of property identifiers and one of corresponding values.
39624 *
39625 * @static
39626 * @memberOf _
39627 * @since 0.4.0
39628 * @category Array
39629 * @param {Array} [props=[]] The property identifiers.
39630 * @param {Array} [values=[]] The property values.
39631 * @returns {Object} Returns the new object.
39632 * @example
39633 *
39634 * _.zipObject(['a', 'b'], [1, 2]);
39635 * // => { 'a': 1, 'b': 2 }
39636 */
39637 function zipObject(props, values) {
39638 return baseZipObject(props || [], values || [], assignValue);
39639 }
39640
39641 /**
39642 * This method is like `_.zipObject` except that it supports property paths.
39643 *
39644 * @static
39645 * @memberOf _
39646 * @since 4.1.0
39647 * @category Array
39648 * @param {Array} [props=[]] The property identifiers.
39649 * @param {Array} [values=[]] The property values.
39650 * @returns {Object} Returns the new object.
39651 * @example
39652 *
39653 * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);
39654 * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
39655 */
39656 function zipObjectDeep(props, values) {
39657 return baseZipObject(props || [], values || [], baseSet);
39658 }
39659
39660 /**
39661 * This method is like `_.zip` except that it accepts `iteratee` to specify
39662 * how grouped values should be combined. The iteratee is invoked with the
39663 * elements of each group: (...group).
39664 *
39665 * @static
39666 * @memberOf _
39667 * @since 3.8.0
39668 * @category Array
39669 * @param {...Array} [arrays] The arrays to process.
39670 * @param {Function} [iteratee=_.identity] The function to combine
39671 * grouped values.
39672 * @returns {Array} Returns the new array of grouped elements.
39673 * @example
39674 *
39675 * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
39676 * return a + b + c;
39677 * });
39678 * // => [111, 222]
39679 */
39680 var zipWith = baseRest(function(arrays) {
39681 var length = arrays.length,
39682 iteratee = length > 1 ? arrays[length - 1] : undefined;
39683
39684 iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;
39685 return unzipWith(arrays, iteratee);
39686 });
39687
39688 /*------------------------------------------------------------------------*/
39689
39690 /**
39691 * Creates a `lodash` wrapper instance that wraps `value` with explicit method
39692 * chain sequences enabled. The result of such sequences must be unwrapped
39693 * with `_#value`.
39694 *
39695 * @static
39696 * @memberOf _
39697 * @since 1.3.0
39698 * @category Seq
39699 * @param {*} value The value to wrap.
39700 * @returns {Object} Returns the new `lodash` wrapper instance.
39701 * @example
39702 *
39703 * var users = [
39704 * { 'user': 'barney', 'age': 36 },
39705 * { 'user': 'fred', 'age': 40 },
39706 * { 'user': 'pebbles', 'age': 1 }
39707 * ];
39708 *
39709 * var youngest = _
39710 * .chain(users)
39711 * .sortBy('age')
39712 * .map(function(o) {
39713 * return o.user + ' is ' + o.age;
39714 * })
39715 * .head()
39716 * .value();
39717 * // => 'pebbles is 1'
39718 */
39719 function chain(value) {
39720 var result = lodash(value);
39721 result.__chain__ = true;
39722 return result;
39723 }
39724
39725 /**
39726 * This method invokes `interceptor` and returns `value`. The interceptor
39727 * is invoked with one argument; (value). The purpose of this method is to
39728 * "tap into" a method chain sequence in order to modify intermediate results.
39729 *
39730 * @static
39731 * @memberOf _
39732 * @since 0.1.0
39733 * @category Seq
39734 * @param {*} value The value to provide to `interceptor`.
39735 * @param {Function} interceptor The function to invoke.
39736 * @returns {*} Returns `value`.
39737 * @example
39738 *
39739 * _([1, 2, 3])
39740 * .tap(function(array) {
39741 * // Mutate input array.
39742 * array.pop();
39743 * })
39744 * .reverse()
39745 * .value();
39746 * // => [2, 1]
39747 */
39748 function tap(value, interceptor) {
39749 interceptor(value);
39750 return value;
39751 }
39752
39753 /**
39754 * This method is like `_.tap` except that it returns the result of `interceptor`.
39755 * The purpose of this method is to "pass thru" values replacing intermediate
39756 * results in a method chain sequence.
39757 *
39758 * @static
39759 * @memberOf _
39760 * @since 3.0.0
39761 * @category Seq
39762 * @param {*} value The value to provide to `interceptor`.
39763 * @param {Function} interceptor The function to invoke.
39764 * @returns {*} Returns the result of `interceptor`.
39765 * @example
39766 *
39767 * _(' abc ')
39768 * .chain()
39769 * .trim()
39770 * .thru(function(value) {
39771 * return [value];
39772 * })
39773 * .value();
39774 * // => ['abc']
39775 */
39776 function thru(value, interceptor) {
39777 return interceptor(value);
39778 }
39779
39780 /**
39781 * This method is the wrapper version of `_.at`.
39782 *
39783 * @name at
39784 * @memberOf _
39785 * @since 1.0.0
39786 * @category Seq
39787 * @param {...(string|string[])} [paths] The property paths to pick.
39788 * @returns {Object} Returns the new `lodash` wrapper instance.
39789 * @example
39790 *
39791 * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
39792 *
39793 * _(object).at(['a[0].b.c', 'a[1]']).value();
39794 * // => [3, 4]
39795 */
39796 var wrapperAt = flatRest(function(paths) {
39797 var length = paths.length,
39798 start = length ? paths[0] : 0,
39799 value = this.__wrapped__,
39800 interceptor = function(object) { return baseAt(object, paths); };
39801
39802 if (length > 1 || this.__actions__.length ||
39803 !(value instanceof LazyWrapper) || !isIndex(start)) {
39804 return this.thru(interceptor);
39805 }
39806 value = value.slice(start, +start + (length ? 1 : 0));
39807 value.__actions__.push({
39808 'func': thru,
39809 'args': [interceptor],
39810 'thisArg': undefined
39811 });
39812 return new LodashWrapper(value, this.__chain__).thru(function(array) {
39813 if (length && !array.length) {
39814 array.push(undefined);
39815 }
39816 return array;
39817 });
39818 });
39819
39820 /**
39821 * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.
39822 *
39823 * @name chain
39824 * @memberOf _
39825 * @since 0.1.0
39826 * @category Seq
39827 * @returns {Object} Returns the new `lodash` wrapper instance.
39828 * @example
39829 *
39830 * var users = [
39831 * { 'user': 'barney', 'age': 36 },
39832 * { 'user': 'fred', 'age': 40 }
39833 * ];
39834 *
39835 * // A sequence without explicit chaining.
39836 * _(users).head();
39837 * // => { 'user': 'barney', 'age': 36 }
39838 *
39839 * // A sequence with explicit chaining.
39840 * _(users)
39841 * .chain()
39842 * .head()
39843 * .pick('user')
39844 * .value();
39845 * // => { 'user': 'barney' }
39846 */
39847 function wrapperChain() {
39848 return chain(this);
39849 }
39850
39851 /**
39852 * Executes the chain sequence and returns the wrapped result.
39853 *
39854 * @name commit
39855 * @memberOf _
39856 * @since 3.2.0
39857 * @category Seq
39858 * @returns {Object} Returns the new `lodash` wrapper instance.
39859 * @example
39860 *
39861 * var array = [1, 2];
39862 * var wrapped = _(array).push(3);
39863 *
39864 * console.log(array);
39865 * // => [1, 2]
39866 *
39867 * wrapped = wrapped.commit();
39868 * console.log(array);
39869 * // => [1, 2, 3]
39870 *
39871 * wrapped.last();
39872 * // => 3
39873 *
39874 * console.log(array);
39875 * // => [1, 2, 3]
39876 */
39877 function wrapperCommit() {
39878 return new LodashWrapper(this.value(), this.__chain__);
39879 }
39880
39881 /**
39882 * Gets the next value on a wrapped object following the
39883 * [iterator protocol](https://mdn.io/iteration_protocols#iterator).
39884 *
39885 * @name next
39886 * @memberOf _
39887 * @since 4.0.0
39888 * @category Seq
39889 * @returns {Object} Returns the next iterator value.
39890 * @example
39891 *
39892 * var wrapped = _([1, 2]);
39893 *
39894 * wrapped.next();
39895 * // => { 'done': false, 'value': 1 }
39896 *
39897 * wrapped.next();
39898 * // => { 'done': false, 'value': 2 }
39899 *
39900 * wrapped.next();
39901 * // => { 'done': true, 'value': undefined }
39902 */
39903 function wrapperNext() {
39904 if (this.__values__ === undefined) {
39905 this.__values__ = toArray(this.value());
39906 }
39907 var done = this.__index__ >= this.__values__.length,
39908 value = done ? undefined : this.__values__[this.__index__++];
39909
39910 return { 'done': done, 'value': value };
39911 }
39912
39913 /**
39914 * Enables the wrapper to be iterable.
39915 *
39916 * @name Symbol.iterator
39917 * @memberOf _
39918 * @since 4.0.0
39919 * @category Seq
39920 * @returns {Object} Returns the wrapper object.
39921 * @example
39922 *
39923 * var wrapped = _([1, 2]);
39924 *
39925 * wrapped[Symbol.iterator]() === wrapped;
39926 * // => true
39927 *
39928 * Array.from(wrapped);
39929 * // => [1, 2]
39930 */
39931 function wrapperToIterator() {
39932 return this;
39933 }
39934
39935 /**
39936 * Creates a clone of the chain sequence planting `value` as the wrapped value.
39937 *
39938 * @name plant
39939 * @memberOf _
39940 * @since 3.2.0
39941 * @category Seq
39942 * @param {*} value The value to plant.
39943 * @returns {Object} Returns the new `lodash` wrapper instance.
39944 * @example
39945 *
39946 * function square(n) {
39947 * return n * n;
39948 * }
39949 *
39950 * var wrapped = _([1, 2]).map(square);
39951 * var other = wrapped.plant([3, 4]);
39952 *
39953 * other.value();
39954 * // => [9, 16]
39955 *
39956 * wrapped.value();
39957 * // => [1, 4]
39958 */
39959 function wrapperPlant(value) {
39960 var result,
39961 parent = this;
39962
39963 while (parent instanceof baseLodash) {
39964 var clone = wrapperClone(parent);
39965 clone.__index__ = 0;
39966 clone.__values__ = undefined;
39967 if (result) {
39968 previous.__wrapped__ = clone;
39969 } else {
39970 result = clone;
39971 }
39972 var previous = clone;
39973 parent = parent.__wrapped__;
39974 }
39975 previous.__wrapped__ = value;
39976 return result;
39977 }
39978
39979 /**
39980 * This method is the wrapper version of `_.reverse`.
39981 *
39982 * **Note:** This method mutates the wrapped array.
39983 *
39984 * @name reverse
39985 * @memberOf _
39986 * @since 0.1.0
39987 * @category Seq
39988 * @returns {Object} Returns the new `lodash` wrapper instance.
39989 * @example
39990 *
39991 * var array = [1, 2, 3];
39992 *
39993 * _(array).reverse().value()
39994 * // => [3, 2, 1]
39995 *
39996 * console.log(array);
39997 * // => [3, 2, 1]
39998 */
39999 function wrapperReverse() {
40000 var value = this.__wrapped__;
40001 if (value instanceof LazyWrapper) {
40002 var wrapped = value;
40003 if (this.__actions__.length) {
40004 wrapped = new LazyWrapper(this);
40005 }
40006 wrapped = wrapped.reverse();
40007 wrapped.__actions__.push({
40008 'func': thru,
40009 'args': [reverse],
40010 'thisArg': undefined
40011 });
40012 return new LodashWrapper(wrapped, this.__chain__);
40013 }
40014 return this.thru(reverse);
40015 }
40016
40017 /**
40018 * Executes the chain sequence to resolve the unwrapped value.
40019 *
40020 * @name value
40021 * @memberOf _
40022 * @since 0.1.0
40023 * @alias toJSON, valueOf
40024 * @category Seq
40025 * @returns {*} Returns the resolved unwrapped value.
40026 * @example
40027 *
40028 * _([1, 2, 3]).value();
40029 * // => [1, 2, 3]
40030 */
40031 function wrapperValue() {
40032 return baseWrapperValue(this.__wrapped__, this.__actions__);
40033 }
40034
40035 /*------------------------------------------------------------------------*/
40036
40037 /**
40038 * Creates an object composed of keys generated from the results of running
40039 * each element of `collection` thru `iteratee`. The corresponding value of
40040 * each key is the number of times the key was returned by `iteratee`. The
40041 * iteratee is invoked with one argument: (value).
40042 *
40043 * @static
40044 * @memberOf _
40045 * @since 0.5.0
40046 * @category Collection
40047 * @param {Array|Object} collection The collection to iterate over.
40048 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
40049 * @returns {Object} Returns the composed aggregate object.
40050 * @example
40051 *
40052 * _.countBy([6.1, 4.2, 6.3], Math.floor);
40053 * // => { '4': 1, '6': 2 }
40054 *
40055 * // The `_.property` iteratee shorthand.
40056 * _.countBy(['one', 'two', 'three'], 'length');
40057 * // => { '3': 2, '5': 1 }
40058 */
40059 var countBy = createAggregator(function(result, value, key) {
40060 if (hasOwnProperty.call(result, key)) {
40061 ++result[key];
40062 } else {
40063 baseAssignValue(result, key, 1);
40064 }
40065 });
40066
40067 /**
40068 * Checks if `predicate` returns truthy for **all** elements of `collection`.
40069 * Iteration is stopped once `predicate` returns falsey. The predicate is
40070 * invoked with three arguments: (value, index|key, collection).
40071 *
40072 * **Note:** This method returns `true` for
40073 * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
40074 * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
40075 * elements of empty collections.
40076 *
40077 * @static
40078 * @memberOf _
40079 * @since 0.1.0
40080 * @category Collection
40081 * @param {Array|Object} collection The collection to iterate over.
40082 * @param {Function} [predicate=_.identity] The function invoked per iteration.
40083 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
40084 * @returns {boolean} Returns `true` if all elements pass the predicate check,
40085 * else `false`.
40086 * @example
40087 *
40088 * _.every([true, 1, null, 'yes'], Boolean);
40089 * // => false
40090 *
40091 * var users = [
40092 * { 'user': 'barney', 'age': 36, 'active': false },
40093 * { 'user': 'fred', 'age': 40, 'active': false }
40094 * ];
40095 *
40096 * // The `_.matches` iteratee shorthand.
40097 * _.every(users, { 'user': 'barney', 'active': false });
40098 * // => false
40099 *
40100 * // The `_.matchesProperty` iteratee shorthand.
40101 * _.every(users, ['active', false]);
40102 * // => true
40103 *
40104 * // The `_.property` iteratee shorthand.
40105 * _.every(users, 'active');
40106 * // => false
40107 */
40108 function every(collection, predicate, guard) {
40109 var func = isArray(collection) ? arrayEvery : baseEvery;
40110 if (guard && isIterateeCall(collection, predicate, guard)) {
40111 predicate = undefined;
40112 }
40113 return func(collection, getIteratee(predicate, 3));
40114 }
40115
40116 /**
40117 * Iterates over elements of `collection`, returning an array of all elements
40118 * `predicate` returns truthy for. The predicate is invoked with three
40119 * arguments: (value, index|key, collection).
40120 *
40121 * **Note:** Unlike `_.remove`, this method returns a new array.
40122 *
40123 * @static
40124 * @memberOf _
40125 * @since 0.1.0
40126 * @category Collection
40127 * @param {Array|Object} collection The collection to iterate over.
40128 * @param {Function} [predicate=_.identity] The function invoked per iteration.
40129 * @returns {Array} Returns the new filtered array.
40130 * @see _.reject
40131 * @example
40132 *
40133 * var users = [
40134 * { 'user': 'barney', 'age': 36, 'active': true },
40135 * { 'user': 'fred', 'age': 40, 'active': false }
40136 * ];
40137 *
40138 * _.filter(users, function(o) { return !o.active; });
40139 * // => objects for ['fred']
40140 *
40141 * // The `_.matches` iteratee shorthand.
40142 * _.filter(users, { 'age': 36, 'active': true });
40143 * // => objects for ['barney']
40144 *
40145 * // The `_.matchesProperty` iteratee shorthand.
40146 * _.filter(users, ['active', false]);
40147 * // => objects for ['fred']
40148 *
40149 * // The `_.property` iteratee shorthand.
40150 * _.filter(users, 'active');
40151 * // => objects for ['barney']
40152 */
40153 function filter(collection, predicate) {
40154 var func = isArray(collection) ? arrayFilter : baseFilter;
40155 return func(collection, getIteratee(predicate, 3));
40156 }
40157
40158 /**
40159 * Iterates over elements of `collection`, returning the first element
40160 * `predicate` returns truthy for. The predicate is invoked with three
40161 * arguments: (value, index|key, collection).
40162 *
40163 * @static
40164 * @memberOf _
40165 * @since 0.1.0
40166 * @category Collection
40167 * @param {Array|Object} collection The collection to inspect.
40168 * @param {Function} [predicate=_.identity] The function invoked per iteration.
40169 * @param {number} [fromIndex=0] The index to search from.
40170 * @returns {*} Returns the matched element, else `undefined`.
40171 * @example
40172 *
40173 * var users = [
40174 * { 'user': 'barney', 'age': 36, 'active': true },
40175 * { 'user': 'fred', 'age': 40, 'active': false },
40176 * { 'user': 'pebbles', 'age': 1, 'active': true }
40177 * ];
40178 *
40179 * _.find(users, function(o) { return o.age < 40; });
40180 * // => object for 'barney'
40181 *
40182 * // The `_.matches` iteratee shorthand.
40183 * _.find(users, { 'age': 1, 'active': true });
40184 * // => object for 'pebbles'
40185 *
40186 * // The `_.matchesProperty` iteratee shorthand.
40187 * _.find(users, ['active', false]);
40188 * // => object for 'fred'
40189 *
40190 * // The `_.property` iteratee shorthand.
40191 * _.find(users, 'active');
40192 * // => object for 'barney'
40193 */
40194 var find = createFind(findIndex);
40195
40196 /**
40197 * This method is like `_.find` except that it iterates over elements of
40198 * `collection` from right to left.
40199 *
40200 * @static
40201 * @memberOf _
40202 * @since 2.0.0
40203 * @category Collection
40204 * @param {Array|Object} collection The collection to inspect.
40205 * @param {Function} [predicate=_.identity] The function invoked per iteration.
40206 * @param {number} [fromIndex=collection.length-1] The index to search from.
40207 * @returns {*} Returns the matched element, else `undefined`.
40208 * @example
40209 *
40210 * _.findLast([1, 2, 3, 4], function(n) {
40211 * return n % 2 == 1;
40212 * });
40213 * // => 3
40214 */
40215 var findLast = createFind(findLastIndex);
40216
40217 /**
40218 * Creates a flattened array of values by running each element in `collection`
40219 * thru `iteratee` and flattening the mapped results. The iteratee is invoked
40220 * with three arguments: (value, index|key, collection).
40221 *
40222 * @static
40223 * @memberOf _
40224 * @since 4.0.0
40225 * @category Collection
40226 * @param {Array|Object} collection The collection to iterate over.
40227 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
40228 * @returns {Array} Returns the new flattened array.
40229 * @example
40230 *
40231 * function duplicate(n) {
40232 * return [n, n];
40233 * }
40234 *
40235 * _.flatMap([1, 2], duplicate);
40236 * // => [1, 1, 2, 2]
40237 */
40238 function flatMap(collection, iteratee) {
40239 return baseFlatten(map(collection, iteratee), 1);
40240 }
40241
40242 /**
40243 * This method is like `_.flatMap` except that it recursively flattens the
40244 * mapped results.
40245 *
40246 * @static
40247 * @memberOf _
40248 * @since 4.7.0
40249 * @category Collection
40250 * @param {Array|Object} collection The collection to iterate over.
40251 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
40252 * @returns {Array} Returns the new flattened array.
40253 * @example
40254 *
40255 * function duplicate(n) {
40256 * return [[[n, n]]];
40257 * }
40258 *
40259 * _.flatMapDeep([1, 2], duplicate);
40260 * // => [1, 1, 2, 2]
40261 */
40262 function flatMapDeep(collection, iteratee) {
40263 return baseFlatten(map(collection, iteratee), INFINITY);
40264 }
40265
40266 /**
40267 * This method is like `_.flatMap` except that it recursively flattens the
40268 * mapped results up to `depth` times.
40269 *
40270 * @static
40271 * @memberOf _
40272 * @since 4.7.0
40273 * @category Collection
40274 * @param {Array|Object} collection The collection to iterate over.
40275 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
40276 * @param {number} [depth=1] The maximum recursion depth.
40277 * @returns {Array} Returns the new flattened array.
40278 * @example
40279 *
40280 * function duplicate(n) {
40281 * return [[[n, n]]];
40282 * }
40283 *
40284 * _.flatMapDepth([1, 2], duplicate, 2);
40285 * // => [[1, 1], [2, 2]]
40286 */
40287 function flatMapDepth(collection, iteratee, depth) {
40288 depth = depth === undefined ? 1 : toInteger(depth);
40289 return baseFlatten(map(collection, iteratee), depth);
40290 }
40291
40292 /**
40293 * Iterates over elements of `collection` and invokes `iteratee` for each element.
40294 * The iteratee is invoked with three arguments: (value, index|key, collection).
40295 * Iteratee functions may exit iteration early by explicitly returning `false`.
40296 *
40297 * **Note:** As with other "Collections" methods, objects with a "length"
40298 * property are iterated like arrays. To avoid this behavior use `_.forIn`
40299 * or `_.forOwn` for object iteration.
40300 *
40301 * @static
40302 * @memberOf _
40303 * @since 0.1.0
40304 * @alias each
40305 * @category Collection
40306 * @param {Array|Object} collection The collection to iterate over.
40307 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
40308 * @returns {Array|Object} Returns `collection`.
40309 * @see _.forEachRight
40310 * @example
40311 *
40312 * _.forEach([1, 2], function(value) {
40313 * console.log(value);
40314 * });
40315 * // => Logs `1` then `2`.
40316 *
40317 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
40318 * console.log(key);
40319 * });
40320 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
40321 */
40322 function forEach(collection, iteratee) {
40323 var func = isArray(collection) ? arrayEach : baseEach;
40324 return func(collection, getIteratee(iteratee, 3));
40325 }
40326
40327 /**
40328 * This method is like `_.forEach` except that it iterates over elements of
40329 * `collection` from right to left.
40330 *
40331 * @static
40332 * @memberOf _
40333 * @since 2.0.0
40334 * @alias eachRight
40335 * @category Collection
40336 * @param {Array|Object} collection The collection to iterate over.
40337 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
40338 * @returns {Array|Object} Returns `collection`.
40339 * @see _.forEach
40340 * @example
40341 *
40342 * _.forEachRight([1, 2], function(value) {
40343 * console.log(value);
40344 * });
40345 * // => Logs `2` then `1`.
40346 */
40347 function forEachRight(collection, iteratee) {
40348 var func = isArray(collection) ? arrayEachRight : baseEachRight;
40349 return func(collection, getIteratee(iteratee, 3));
40350 }
40351
40352 /**
40353 * Creates an object composed of keys generated from the results of running
40354 * each element of `collection` thru `iteratee`. The order of grouped values
40355 * is determined by the order they occur in `collection`. The corresponding
40356 * value of each key is an array of elements responsible for generating the
40357 * key. The iteratee is invoked with one argument: (value).
40358 *
40359 * @static
40360 * @memberOf _
40361 * @since 0.1.0
40362 * @category Collection
40363 * @param {Array|Object} collection The collection to iterate over.
40364 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
40365 * @returns {Object} Returns the composed aggregate object.
40366 * @example
40367 *
40368 * _.groupBy([6.1, 4.2, 6.3], Math.floor);
40369 * // => { '4': [4.2], '6': [6.1, 6.3] }
40370 *
40371 * // The `_.property` iteratee shorthand.
40372 * _.groupBy(['one', 'two', 'three'], 'length');
40373 * // => { '3': ['one', 'two'], '5': ['three'] }
40374 */
40375 var groupBy = createAggregator(function(result, value, key) {
40376 if (hasOwnProperty.call(result, key)) {
40377 result[key].push(value);
40378 } else {
40379 baseAssignValue(result, key, [value]);
40380 }
40381 });
40382
40383 /**
40384 * Checks if `value` is in `collection`. If `collection` is a string, it's
40385 * checked for a substring of `value`, otherwise
40386 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
40387 * is used for equality comparisons. If `fromIndex` is negative, it's used as
40388 * the offset from the end of `collection`.
40389 *
40390 * @static
40391 * @memberOf _
40392 * @since 0.1.0
40393 * @category Collection
40394 * @param {Array|Object|string} collection The collection to inspect.
40395 * @param {*} value The value to search for.
40396 * @param {number} [fromIndex=0] The index to search from.
40397 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
40398 * @returns {boolean} Returns `true` if `value` is found, else `false`.
40399 * @example
40400 *
40401 * _.includes([1, 2, 3], 1);
40402 * // => true
40403 *
40404 * _.includes([1, 2, 3], 1, 2);
40405 * // => false
40406 *
40407 * _.includes({ 'a': 1, 'b': 2 }, 1);
40408 * // => true
40409 *
40410 * _.includes('abcd', 'bc');
40411 * // => true
40412 */
40413 function includes(collection, value, fromIndex, guard) {
40414 collection = isArrayLike(collection) ? collection : values(collection);
40415 fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;
40416
40417 var length = collection.length;
40418 if (fromIndex < 0) {
40419 fromIndex = nativeMax(length + fromIndex, 0);
40420 }
40421 return isString(collection)
40422 ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)
40423 : (!!length && baseIndexOf(collection, value, fromIndex) > -1);
40424 }
40425
40426 /**
40427 * Invokes the method at `path` of each element in `collection`, returning
40428 * an array of the results of each invoked method. Any additional arguments
40429 * are provided to each invoked method. If `path` is a function, it's invoked
40430 * for, and `this` bound to, each element in `collection`.
40431 *
40432 * @static
40433 * @memberOf _
40434 * @since 4.0.0
40435 * @category Collection
40436 * @param {Array|Object} collection The collection to iterate over.
40437 * @param {Array|Function|string} path The path of the method to invoke or
40438 * the function invoked per iteration.
40439 * @param {...*} [args] The arguments to invoke each method with.
40440 * @returns {Array} Returns the array of results.
40441 * @example
40442 *
40443 * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
40444 * // => [[1, 5, 7], [1, 2, 3]]
40445 *
40446 * _.invokeMap([123, 456], String.prototype.split, '');
40447 * // => [['1', '2', '3'], ['4', '5', '6']]
40448 */
40449 var invokeMap = baseRest(function(collection, path, args) {
40450 var index = -1,
40451 isFunc = typeof path == 'function',
40452 result = isArrayLike(collection) ? Array(collection.length) : [];
40453
40454 baseEach(collection, function(value) {
40455 result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);
40456 });
40457 return result;
40458 });
40459
40460 /**
40461 * Creates an object composed of keys generated from the results of running
40462 * each element of `collection` thru `iteratee`. The corresponding value of
40463 * each key is the last element responsible for generating the key. The
40464 * iteratee is invoked with one argument: (value).
40465 *
40466 * @static
40467 * @memberOf _
40468 * @since 4.0.0
40469 * @category Collection
40470 * @param {Array|Object} collection The collection to iterate over.
40471 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
40472 * @returns {Object} Returns the composed aggregate object.
40473 * @example
40474 *
40475 * var array = [
40476 * { 'dir': 'left', 'code': 97 },
40477 * { 'dir': 'right', 'code': 100 }
40478 * ];
40479 *
40480 * _.keyBy(array, function(o) {
40481 * return String.fromCharCode(o.code);
40482 * });
40483 * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
40484 *
40485 * _.keyBy(array, 'dir');
40486 * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
40487 */
40488 var keyBy = createAggregator(function(result, value, key) {
40489 baseAssignValue(result, key, value);
40490 });
40491
40492 /**
40493 * Creates an array of values by running each element in `collection` thru
40494 * `iteratee`. The iteratee is invoked with three arguments:
40495 * (value, index|key, collection).
40496 *
40497 * Many lodash methods are guarded to work as iteratees for methods like
40498 * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
40499 *
40500 * The guarded methods are:
40501 * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
40502 * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
40503 * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
40504 * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
40505 *
40506 * @static
40507 * @memberOf _
40508 * @since 0.1.0
40509 * @category Collection
40510 * @param {Array|Object} collection The collection to iterate over.
40511 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
40512 * @returns {Array} Returns the new mapped array.
40513 * @example
40514 *
40515 * function square(n) {
40516 * return n * n;
40517 * }
40518 *
40519 * _.map([4, 8], square);
40520 * // => [16, 64]
40521 *
40522 * _.map({ 'a': 4, 'b': 8 }, square);
40523 * // => [16, 64] (iteration order is not guaranteed)
40524 *
40525 * var users = [
40526 * { 'user': 'barney' },
40527 * { 'user': 'fred' }
40528 * ];
40529 *
40530 * // The `_.property` iteratee shorthand.
40531 * _.map(users, 'user');
40532 * // => ['barney', 'fred']
40533 */
40534 function map(collection, iteratee) {
40535 var func = isArray(collection) ? arrayMap : baseMap;
40536 return func(collection, getIteratee(iteratee, 3));
40537 }
40538
40539 /**
40540 * This method is like `_.sortBy` except that it allows specifying the sort
40541 * orders of the iteratees to sort by. If `orders` is unspecified, all values
40542 * are sorted in ascending order. Otherwise, specify an order of "desc" for
40543 * descending or "asc" for ascending sort order of corresponding values.
40544 *
40545 * @static
40546 * @memberOf _
40547 * @since 4.0.0
40548 * @category Collection
40549 * @param {Array|Object} collection The collection to iterate over.
40550 * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]
40551 * The iteratees to sort by.
40552 * @param {string[]} [orders] The sort orders of `iteratees`.
40553 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
40554 * @returns {Array} Returns the new sorted array.
40555 * @example
40556 *
40557 * var users = [
40558 * { 'user': 'fred', 'age': 48 },
40559 * { 'user': 'barney', 'age': 34 },
40560 * { 'user': 'fred', 'age': 40 },
40561 * { 'user': 'barney', 'age': 36 }
40562 * ];
40563 *
40564 * // Sort by `user` in ascending order and by `age` in descending order.
40565 * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
40566 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
40567 */
40568 function orderBy(collection, iteratees, orders, guard) {
40569 if (collection == null) {
40570 return [];
40571 }
40572 if (!isArray(iteratees)) {
40573 iteratees = iteratees == null ? [] : [iteratees];
40574 }
40575 orders = guard ? undefined : orders;
40576 if (!isArray(orders)) {
40577 orders = orders == null ? [] : [orders];
40578 }
40579 return baseOrderBy(collection, iteratees, orders);
40580 }
40581
40582 /**
40583 * Creates an array of elements split into two groups, the first of which
40584 * contains elements `predicate` returns truthy for, the second of which
40585 * contains elements `predicate` returns falsey for. The predicate is
40586 * invoked with one argument: (value).
40587 *
40588 * @static
40589 * @memberOf _
40590 * @since 3.0.0
40591 * @category Collection
40592 * @param {Array|Object} collection The collection to iterate over.
40593 * @param {Function} [predicate=_.identity] The function invoked per iteration.
40594 * @returns {Array} Returns the array of grouped elements.
40595 * @example
40596 *
40597 * var users = [
40598 * { 'user': 'barney', 'age': 36, 'active': false },
40599 * { 'user': 'fred', 'age': 40, 'active': true },
40600 * { 'user': 'pebbles', 'age': 1, 'active': false }
40601 * ];
40602 *
40603 * _.partition(users, function(o) { return o.active; });
40604 * // => objects for [['fred'], ['barney', 'pebbles']]
40605 *
40606 * // The `_.matches` iteratee shorthand.
40607 * _.partition(users, { 'age': 1, 'active': false });
40608 * // => objects for [['pebbles'], ['barney', 'fred']]
40609 *
40610 * // The `_.matchesProperty` iteratee shorthand.
40611 * _.partition(users, ['active', false]);
40612 * // => objects for [['barney', 'pebbles'], ['fred']]
40613 *
40614 * // The `_.property` iteratee shorthand.
40615 * _.partition(users, 'active');
40616 * // => objects for [['fred'], ['barney', 'pebbles']]
40617 */
40618 var partition = createAggregator(function(result, value, key) {
40619 result[key ? 0 : 1].push(value);
40620 }, function() { return [[], []]; });
40621
40622 /**
40623 * Reduces `collection` to a value which is the accumulated result of running
40624 * each element in `collection` thru `iteratee`, where each successive
40625 * invocation is supplied the return value of the previous. If `accumulator`
40626 * is not given, the first element of `collection` is used as the initial
40627 * value. The iteratee is invoked with four arguments:
40628 * (accumulator, value, index|key, collection).
40629 *
40630 * Many lodash methods are guarded to work as iteratees for methods like
40631 * `_.reduce`, `_.reduceRight`, and `_.transform`.
40632 *
40633 * The guarded methods are:
40634 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,
40635 * and `sortBy`
40636 *
40637 * @static
40638 * @memberOf _
40639 * @since 0.1.0
40640 * @category Collection
40641 * @param {Array|Object} collection The collection to iterate over.
40642 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
40643 * @param {*} [accumulator] The initial value.
40644 * @returns {*} Returns the accumulated value.
40645 * @see _.reduceRight
40646 * @example
40647 *
40648 * _.reduce([1, 2], function(sum, n) {
40649 * return sum + n;
40650 * }, 0);
40651 * // => 3
40652 *
40653 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
40654 * (result[value] || (result[value] = [])).push(key);
40655 * return result;
40656 * }, {});
40657 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
40658 */
40659 function reduce(collection, iteratee, accumulator) {
40660 var func = isArray(collection) ? arrayReduce : baseReduce,
40661 initAccum = arguments.length < 3;
40662
40663 return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);
40664 }
40665
40666 /**
40667 * This method is like `_.reduce` except that it iterates over elements of
40668 * `collection` from right to left.
40669 *
40670 * @static
40671 * @memberOf _
40672 * @since 0.1.0
40673 * @category Collection
40674 * @param {Array|Object} collection The collection to iterate over.
40675 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
40676 * @param {*} [accumulator] The initial value.
40677 * @returns {*} Returns the accumulated value.
40678 * @see _.reduce
40679 * @example
40680 *
40681 * var array = [[0, 1], [2, 3], [4, 5]];
40682 *
40683 * _.reduceRight(array, function(flattened, other) {
40684 * return flattened.concat(other);
40685 * }, []);
40686 * // => [4, 5, 2, 3, 0, 1]
40687 */
40688 function reduceRight(collection, iteratee, accumulator) {
40689 var func = isArray(collection) ? arrayReduceRight : baseReduce,
40690 initAccum = arguments.length < 3;
40691
40692 return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);
40693 }
40694
40695 /**
40696 * The opposite of `_.filter`; this method returns the elements of `collection`
40697 * that `predicate` does **not** return truthy for.
40698 *
40699 * @static
40700 * @memberOf _
40701 * @since 0.1.0
40702 * @category Collection
40703 * @param {Array|Object} collection The collection to iterate over.
40704 * @param {Function} [predicate=_.identity] The function invoked per iteration.
40705 * @returns {Array} Returns the new filtered array.
40706 * @see _.filter
40707 * @example
40708 *
40709 * var users = [
40710 * { 'user': 'barney', 'age': 36, 'active': false },
40711 * { 'user': 'fred', 'age': 40, 'active': true }
40712 * ];
40713 *
40714 * _.reject(users, function(o) { return !o.active; });
40715 * // => objects for ['fred']
40716 *
40717 * // The `_.matches` iteratee shorthand.
40718 * _.reject(users, { 'age': 40, 'active': true });
40719 * // => objects for ['barney']
40720 *
40721 * // The `_.matchesProperty` iteratee shorthand.
40722 * _.reject(users, ['active', false]);
40723 * // => objects for ['fred']
40724 *
40725 * // The `_.property` iteratee shorthand.
40726 * _.reject(users, 'active');
40727 * // => objects for ['barney']
40728 */
40729 function reject(collection, predicate) {
40730 var func = isArray(collection) ? arrayFilter : baseFilter;
40731 return func(collection, negate(getIteratee(predicate, 3)));
40732 }
40733
40734 /**
40735 * Gets a random element from `collection`.
40736 *
40737 * @static
40738 * @memberOf _
40739 * @since 2.0.0
40740 * @category Collection
40741 * @param {Array|Object} collection The collection to sample.
40742 * @returns {*} Returns the random element.
40743 * @example
40744 *
40745 * _.sample([1, 2, 3, 4]);
40746 * // => 2
40747 */
40748 function sample(collection) {
40749 var func = isArray(collection) ? arraySample : baseSample;
40750 return func(collection);
40751 }
40752
40753 /**
40754 * Gets `n` random elements at unique keys from `collection` up to the
40755 * size of `collection`.
40756 *
40757 * @static
40758 * @memberOf _
40759 * @since 4.0.0
40760 * @category Collection
40761 * @param {Array|Object} collection The collection to sample.
40762 * @param {number} [n=1] The number of elements to sample.
40763 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
40764 * @returns {Array} Returns the random elements.
40765 * @example
40766 *
40767 * _.sampleSize([1, 2, 3], 2);
40768 * // => [3, 1]
40769 *
40770 * _.sampleSize([1, 2, 3], 4);
40771 * // => [2, 3, 1]
40772 */
40773 function sampleSize(collection, n, guard) {
40774 if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {
40775 n = 1;
40776 } else {
40777 n = toInteger(n);
40778 }
40779 var func = isArray(collection) ? arraySampleSize : baseSampleSize;
40780 return func(collection, n);
40781 }
40782
40783 /**
40784 * Creates an array of shuffled values, using a version of the
40785 * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
40786 *
40787 * @static
40788 * @memberOf _
40789 * @since 0.1.0
40790 * @category Collection
40791 * @param {Array|Object} collection The collection to shuffle.
40792 * @returns {Array} Returns the new shuffled array.
40793 * @example
40794 *
40795 * _.shuffle([1, 2, 3, 4]);
40796 * // => [4, 1, 3, 2]
40797 */
40798 function shuffle(collection) {
40799 var func = isArray(collection) ? arrayShuffle : baseShuffle;
40800 return func(collection);
40801 }
40802
40803 /**
40804 * Gets the size of `collection` by returning its length for array-like
40805 * values or the number of own enumerable string keyed properties for objects.
40806 *
40807 * @static
40808 * @memberOf _
40809 * @since 0.1.0
40810 * @category Collection
40811 * @param {Array|Object|string} collection The collection to inspect.
40812 * @returns {number} Returns the collection size.
40813 * @example
40814 *
40815 * _.size([1, 2, 3]);
40816 * // => 3
40817 *
40818 * _.size({ 'a': 1, 'b': 2 });
40819 * // => 2
40820 *
40821 * _.size('pebbles');
40822 * // => 7
40823 */
40824 function size(collection) {
40825 if (collection == null) {
40826 return 0;
40827 }
40828 if (isArrayLike(collection)) {
40829 return isString(collection) ? stringSize(collection) : collection.length;
40830 }
40831 var tag = getTag(collection);
40832 if (tag == mapTag || tag == setTag) {
40833 return collection.size;
40834 }
40835 return baseKeys(collection).length;
40836 }
40837
40838 /**
40839 * Checks if `predicate` returns truthy for **any** element of `collection`.
40840 * Iteration is stopped once `predicate` returns truthy. The predicate is
40841 * invoked with three arguments: (value, index|key, collection).
40842 *
40843 * @static
40844 * @memberOf _
40845 * @since 0.1.0
40846 * @category Collection
40847 * @param {Array|Object} collection The collection to iterate over.
40848 * @param {Function} [predicate=_.identity] The function invoked per iteration.
40849 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
40850 * @returns {boolean} Returns `true` if any element passes the predicate check,
40851 * else `false`.
40852 * @example
40853 *
40854 * _.some([null, 0, 'yes', false], Boolean);
40855 * // => true
40856 *
40857 * var users = [
40858 * { 'user': 'barney', 'active': true },
40859 * { 'user': 'fred', 'active': false }
40860 * ];
40861 *
40862 * // The `_.matches` iteratee shorthand.
40863 * _.some(users, { 'user': 'barney', 'active': false });
40864 * // => false
40865 *
40866 * // The `_.matchesProperty` iteratee shorthand.
40867 * _.some(users, ['active', false]);
40868 * // => true
40869 *
40870 * // The `_.property` iteratee shorthand.
40871 * _.some(users, 'active');
40872 * // => true
40873 */
40874 function some(collection, predicate, guard) {
40875 var func = isArray(collection) ? arraySome : baseSome;
40876 if (guard && isIterateeCall(collection, predicate, guard)) {
40877 predicate = undefined;
40878 }
40879 return func(collection, getIteratee(predicate, 3));
40880 }
40881
40882 /**
40883 * Creates an array of elements, sorted in ascending order by the results of
40884 * running each element in a collection thru each iteratee. This method
40885 * performs a stable sort, that is, it preserves the original sort order of
40886 * equal elements. The iteratees are invoked with one argument: (value).
40887 *
40888 * @static
40889 * @memberOf _
40890 * @since 0.1.0
40891 * @category Collection
40892 * @param {Array|Object} collection The collection to iterate over.
40893 * @param {...(Function|Function[])} [iteratees=[_.identity]]
40894 * The iteratees to sort by.
40895 * @returns {Array} Returns the new sorted array.
40896 * @example
40897 *
40898 * var users = [
40899 * { 'user': 'fred', 'age': 48 },
40900 * { 'user': 'barney', 'age': 36 },
40901 * { 'user': 'fred', 'age': 40 },
40902 * { 'user': 'barney', 'age': 34 }
40903 * ];
40904 *
40905 * _.sortBy(users, [function(o) { return o.user; }]);
40906 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
40907 *
40908 * _.sortBy(users, ['user', 'age']);
40909 * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
40910 */
40911 var sortBy = baseRest(function(collection, iteratees) {
40912 if (collection == null) {
40913 return [];
40914 }
40915 var length = iteratees.length;
40916 if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
40917 iteratees = [];
40918 } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
40919 iteratees = [iteratees[0]];
40920 }
40921 return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
40922 });
40923
40924 /*------------------------------------------------------------------------*/
40925
40926 /**
40927 * Gets the timestamp of the number of milliseconds that have elapsed since
40928 * the Unix epoch (1 January 1970 00:00:00 UTC).
40929 *
40930 * @static
40931 * @memberOf _
40932 * @since 2.4.0
40933 * @category Date
40934 * @returns {number} Returns the timestamp.
40935 * @example
40936 *
40937 * _.defer(function(stamp) {
40938 * console.log(_.now() - stamp);
40939 * }, _.now());
40940 * // => Logs the number of milliseconds it took for the deferred invocation.
40941 */
40942 var now = ctxNow || function() {
40943 return root.Date.now();
40944 };
40945
40946 /*------------------------------------------------------------------------*/
40947
40948 /**
40949 * The opposite of `_.before`; this method creates a function that invokes
40950 * `func` once it's called `n` or more times.
40951 *
40952 * @static
40953 * @memberOf _
40954 * @since 0.1.0
40955 * @category Function
40956 * @param {number} n The number of calls before `func` is invoked.
40957 * @param {Function} func The function to restrict.
40958 * @returns {Function} Returns the new restricted function.
40959 * @example
40960 *
40961 * var saves = ['profile', 'settings'];
40962 *
40963 * var done = _.after(saves.length, function() {
40964 * console.log('done saving!');
40965 * });
40966 *
40967 * _.forEach(saves, function(type) {
40968 * asyncSave({ 'type': type, 'complete': done });
40969 * });
40970 * // => Logs 'done saving!' after the two async saves have completed.
40971 */
40972 function after(n, func) {
40973 if (typeof func != 'function') {
40974 throw new TypeError(FUNC_ERROR_TEXT);
40975 }
40976 n = toInteger(n);
40977 return function() {
40978 if (--n < 1) {
40979 return func.apply(this, arguments);
40980 }
40981 };
40982 }
40983
40984 /**
40985 * Creates a function that invokes `func`, with up to `n` arguments,
40986 * ignoring any additional arguments.
40987 *
40988 * @static
40989 * @memberOf _
40990 * @since 3.0.0
40991 * @category Function
40992 * @param {Function} func The function to cap arguments for.
40993 * @param {number} [n=func.length] The arity cap.
40994 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
40995 * @returns {Function} Returns the new capped function.
40996 * @example
40997 *
40998 * _.map(['6', '8', '10'], _.ary(parseInt, 1));
40999 * // => [6, 8, 10]
41000 */
41001 function ary(func, n, guard) {
41002 n = guard ? undefined : n;
41003 n = (func && n == null) ? func.length : n;
41004 return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);
41005 }
41006
41007 /**
41008 * Creates a function that invokes `func`, with the `this` binding and arguments
41009 * of the created function, while it's called less than `n` times. Subsequent
41010 * calls to the created function return the result of the last `func` invocation.
41011 *
41012 * @static
41013 * @memberOf _
41014 * @since 3.0.0
41015 * @category Function
41016 * @param {number} n The number of calls at which `func` is no longer invoked.
41017 * @param {Function} func The function to restrict.
41018 * @returns {Function} Returns the new restricted function.
41019 * @example
41020 *
41021 * jQuery(element).on('click', _.before(5, addContactToList));
41022 * // => Allows adding up to 4 contacts to the list.
41023 */
41024 function before(n, func) {
41025 var result;
41026 if (typeof func != 'function') {
41027 throw new TypeError(FUNC_ERROR_TEXT);
41028 }
41029 n = toInteger(n);
41030 return function() {
41031 if (--n > 0) {
41032 result = func.apply(this, arguments);
41033 }
41034 if (n <= 1) {
41035 func = undefined;
41036 }
41037 return result;
41038 };
41039 }
41040
41041 /**
41042 * Creates a function that invokes `func` with the `this` binding of `thisArg`
41043 * and `partials` prepended to the arguments it receives.
41044 *
41045 * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,
41046 * may be used as a placeholder for partially applied arguments.
41047 *
41048 * **Note:** Unlike native `Function#bind`, this method doesn't set the "length"
41049 * property of bound functions.
41050 *
41051 * @static
41052 * @memberOf _
41053 * @since 0.1.0
41054 * @category Function
41055 * @param {Function} func The function to bind.
41056 * @param {*} thisArg The `this` binding of `func`.
41057 * @param {...*} [partials] The arguments to be partially applied.
41058 * @returns {Function} Returns the new bound function.
41059 * @example
41060 *
41061 * function greet(greeting, punctuation) {
41062 * return greeting + ' ' + this.user + punctuation;
41063 * }
41064 *
41065 * var object = { 'user': 'fred' };
41066 *
41067 * var bound = _.bind(greet, object, 'hi');
41068 * bound('!');
41069 * // => 'hi fred!'
41070 *
41071 * // Bound with placeholders.
41072 * var bound = _.bind(greet, object, _, '!');
41073 * bound('hi');
41074 * // => 'hi fred!'
41075 */
41076 var bind = baseRest(function(func, thisArg, partials) {
41077 var bitmask = WRAP_BIND_FLAG;
41078 if (partials.length) {
41079 var holders = replaceHolders(partials, getHolder(bind));
41080 bitmask |= WRAP_PARTIAL_FLAG;
41081 }
41082 return createWrap(func, bitmask, thisArg, partials, holders);
41083 });
41084
41085 /**
41086 * Creates a function that invokes the method at `object[key]` with `partials`
41087 * prepended to the arguments it receives.
41088 *
41089 * This method differs from `_.bind` by allowing bound functions to reference
41090 * methods that may be redefined or don't yet exist. See
41091 * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)
41092 * for more details.
41093 *
41094 * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic
41095 * builds, may be used as a placeholder for partially applied arguments.
41096 *
41097 * @static
41098 * @memberOf _
41099 * @since 0.10.0
41100 * @category Function
41101 * @param {Object} object The object to invoke the method on.
41102 * @param {string} key The key of the method.
41103 * @param {...*} [partials] The arguments to be partially applied.
41104 * @returns {Function} Returns the new bound function.
41105 * @example
41106 *
41107 * var object = {
41108 * 'user': 'fred',
41109 * 'greet': function(greeting, punctuation) {
41110 * return greeting + ' ' + this.user + punctuation;
41111 * }
41112 * };
41113 *
41114 * var bound = _.bindKey(object, 'greet', 'hi');
41115 * bound('!');
41116 * // => 'hi fred!'
41117 *
41118 * object.greet = function(greeting, punctuation) {
41119 * return greeting + 'ya ' + this.user + punctuation;
41120 * };
41121 *
41122 * bound('!');
41123 * // => 'hiya fred!'
41124 *
41125 * // Bound with placeholders.
41126 * var bound = _.bindKey(object, 'greet', _, '!');
41127 * bound('hi');
41128 * // => 'hiya fred!'
41129 */
41130 var bindKey = baseRest(function(object, key, partials) {
41131 var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
41132 if (partials.length) {
41133 var holders = replaceHolders(partials, getHolder(bindKey));
41134 bitmask |= WRAP_PARTIAL_FLAG;
41135 }
41136 return createWrap(key, bitmask, object, partials, holders);
41137 });
41138
41139 /**
41140 * Creates a function that accepts arguments of `func` and either invokes
41141 * `func` returning its result, if at least `arity` number of arguments have
41142 * been provided, or returns a function that accepts the remaining `func`
41143 * arguments, and so on. The arity of `func` may be specified if `func.length`
41144 * is not sufficient.
41145 *
41146 * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,
41147 * may be used as a placeholder for provided arguments.
41148 *
41149 * **Note:** This method doesn't set the "length" property of curried functions.
41150 *
41151 * @static
41152 * @memberOf _
41153 * @since 2.0.0
41154 * @category Function
41155 * @param {Function} func The function to curry.
41156 * @param {number} [arity=func.length] The arity of `func`.
41157 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
41158 * @returns {Function} Returns the new curried function.
41159 * @example
41160 *
41161 * var abc = function(a, b, c) {
41162 * return [a, b, c];
41163 * };
41164 *
41165 * var curried = _.curry(abc);
41166 *
41167 * curried(1)(2)(3);
41168 * // => [1, 2, 3]
41169 *
41170 * curried(1, 2)(3);
41171 * // => [1, 2, 3]
41172 *
41173 * curried(1, 2, 3);
41174 * // => [1, 2, 3]
41175 *
41176 * // Curried with placeholders.
41177 * curried(1)(_, 3)(2);
41178 * // => [1, 2, 3]
41179 */
41180 function curry(func, arity, guard) {
41181 arity = guard ? undefined : arity;
41182 var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
41183 result.placeholder = curry.placeholder;
41184 return result;
41185 }
41186
41187 /**
41188 * This method is like `_.curry` except that arguments are applied to `func`
41189 * in the manner of `_.partialRight` instead of `_.partial`.
41190 *
41191 * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic
41192 * builds, may be used as a placeholder for provided arguments.
41193 *
41194 * **Note:** This method doesn't set the "length" property of curried functions.
41195 *
41196 * @static
41197 * @memberOf _
41198 * @since 3.0.0
41199 * @category Function
41200 * @param {Function} func The function to curry.
41201 * @param {number} [arity=func.length] The arity of `func`.
41202 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
41203 * @returns {Function} Returns the new curried function.
41204 * @example
41205 *
41206 * var abc = function(a, b, c) {
41207 * return [a, b, c];
41208 * };
41209 *
41210 * var curried = _.curryRight(abc);
41211 *
41212 * curried(3)(2)(1);
41213 * // => [1, 2, 3]
41214 *
41215 * curried(2, 3)(1);
41216 * // => [1, 2, 3]
41217 *
41218 * curried(1, 2, 3);
41219 * // => [1, 2, 3]
41220 *
41221 * // Curried with placeholders.
41222 * curried(3)(1, _)(2);
41223 * // => [1, 2, 3]
41224 */
41225 function curryRight(func, arity, guard) {
41226 arity = guard ? undefined : arity;
41227 var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
41228 result.placeholder = curryRight.placeholder;
41229 return result;
41230 }
41231
41232 /**
41233 * Creates a debounced function that delays invoking `func` until after `wait`
41234 * milliseconds have elapsed since the last time the debounced function was
41235 * invoked. The debounced function comes with a `cancel` method to cancel
41236 * delayed `func` invocations and a `flush` method to immediately invoke them.
41237 * Provide `options` to indicate whether `func` should be invoked on the
41238 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
41239 * with the last arguments provided to the debounced function. Subsequent
41240 * calls to the debounced function return the result of the last `func`
41241 * invocation.
41242 *
41243 * **Note:** If `leading` and `trailing` options are `true`, `func` is
41244 * invoked on the trailing edge of the timeout only if the debounced function
41245 * is invoked more than once during the `wait` timeout.
41246 *
41247 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
41248 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
41249 *
41250 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
41251 * for details over the differences between `_.debounce` and `_.throttle`.
41252 *
41253 * @static
41254 * @memberOf _
41255 * @since 0.1.0
41256 * @category Function
41257 * @param {Function} func The function to debounce.
41258 * @param {number} [wait=0] The number of milliseconds to delay.
41259 * @param {Object} [options={}] The options object.
41260 * @param {boolean} [options.leading=false]
41261 * Specify invoking on the leading edge of the timeout.
41262 * @param {number} [options.maxWait]
41263 * The maximum time `func` is allowed to be delayed before it's invoked.
41264 * @param {boolean} [options.trailing=true]
41265 * Specify invoking on the trailing edge of the timeout.
41266 * @returns {Function} Returns the new debounced function.
41267 * @example
41268 *
41269 * // Avoid costly calculations while the window size is in flux.
41270 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
41271 *
41272 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
41273 * jQuery(element).on('click', _.debounce(sendMail, 300, {
41274 * 'leading': true,
41275 * 'trailing': false
41276 * }));
41277 *
41278 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
41279 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
41280 * var source = new EventSource('/stream');
41281 * jQuery(source).on('message', debounced);
41282 *
41283 * // Cancel the trailing debounced invocation.
41284 * jQuery(window).on('popstate', debounced.cancel);
41285 */
41286 function debounce(func, wait, options) {
41287 var lastArgs,
41288 lastThis,
41289 maxWait,
41290 result,
41291 timerId,
41292 lastCallTime,
41293 lastInvokeTime = 0,
41294 leading = false,
41295 maxing = false,
41296 trailing = true;
41297
41298 if (typeof func != 'function') {
41299 throw new TypeError(FUNC_ERROR_TEXT);
41300 }
41301 wait = toNumber(wait) || 0;
41302 if (isObject(options)) {
41303 leading = !!options.leading;
41304 maxing = 'maxWait' in options;
41305 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
41306 trailing = 'trailing' in options ? !!options.trailing : trailing;
41307 }
41308
41309 function invokeFunc(time) {
41310 var args = lastArgs,
41311 thisArg = lastThis;
41312
41313 lastArgs = lastThis = undefined;
41314 lastInvokeTime = time;
41315 result = func.apply(thisArg, args);
41316 return result;
41317 }
41318
41319 function leadingEdge(time) {
41320 // Reset any `maxWait` timer.
41321 lastInvokeTime = time;
41322 // Start the timer for the trailing edge.
41323 timerId = setTimeout(timerExpired, wait);
41324 // Invoke the leading edge.
41325 return leading ? invokeFunc(time) : result;
41326 }
41327
41328 function remainingWait(time) {
41329 var timeSinceLastCall = time - lastCallTime,
41330 timeSinceLastInvoke = time - lastInvokeTime,
41331 timeWaiting = wait - timeSinceLastCall;
41332
41333 return maxing
41334 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
41335 : timeWaiting;
41336 }
41337
41338 function shouldInvoke(time) {
41339 var timeSinceLastCall = time - lastCallTime,
41340 timeSinceLastInvoke = time - lastInvokeTime;
41341
41342 // Either this is the first call, activity has stopped and we're at the
41343 // trailing edge, the system time has gone backwards and we're treating
41344 // it as the trailing edge, or we've hit the `maxWait` limit.
41345 return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
41346 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
41347 }
41348
41349 function timerExpired() {
41350 var time = now();
41351 if (shouldInvoke(time)) {
41352 return trailingEdge(time);
41353 }
41354 // Restart the timer.
41355 timerId = setTimeout(timerExpired, remainingWait(time));
41356 }
41357
41358 function trailingEdge(time) {
41359 timerId = undefined;
41360
41361 // Only invoke if we have `lastArgs` which means `func` has been
41362 // debounced at least once.
41363 if (trailing && lastArgs) {
41364 return invokeFunc(time);
41365 }
41366 lastArgs = lastThis = undefined;
41367 return result;
41368 }
41369
41370 function cancel() {
41371 if (timerId !== undefined) {
41372 clearTimeout(timerId);
41373 }
41374 lastInvokeTime = 0;
41375 lastArgs = lastCallTime = lastThis = timerId = undefined;
41376 }
41377
41378 function flush() {
41379 return timerId === undefined ? result : trailingEdge(now());
41380 }
41381
41382 function debounced() {
41383 var time = now(),
41384 isInvoking = shouldInvoke(time);
41385
41386 lastArgs = arguments;
41387 lastThis = this;
41388 lastCallTime = time;
41389
41390 if (isInvoking) {
41391 if (timerId === undefined) {
41392 return leadingEdge(lastCallTime);
41393 }
41394 if (maxing) {
41395 // Handle invocations in a tight loop.
41396 clearTimeout(timerId);
41397 timerId = setTimeout(timerExpired, wait);
41398 return invokeFunc(lastCallTime);
41399 }
41400 }
41401 if (timerId === undefined) {
41402 timerId = setTimeout(timerExpired, wait);
41403 }
41404 return result;
41405 }
41406 debounced.cancel = cancel;
41407 debounced.flush = flush;
41408 return debounced;
41409 }
41410
41411 /**
41412 * Defers invoking the `func` until the current call stack has cleared. Any
41413 * additional arguments are provided to `func` when it's invoked.
41414 *
41415 * @static
41416 * @memberOf _
41417 * @since 0.1.0
41418 * @category Function
41419 * @param {Function} func The function to defer.
41420 * @param {...*} [args] The arguments to invoke `func` with.
41421 * @returns {number} Returns the timer id.
41422 * @example
41423 *
41424 * _.defer(function(text) {
41425 * console.log(text);
41426 * }, 'deferred');
41427 * // => Logs 'deferred' after one millisecond.
41428 */
41429 var defer = baseRest(function(func, args) {
41430 return baseDelay(func, 1, args);
41431 });
41432
41433 /**
41434 * Invokes `func` after `wait` milliseconds. Any additional arguments are
41435 * provided to `func` when it's invoked.
41436 *
41437 * @static
41438 * @memberOf _
41439 * @since 0.1.0
41440 * @category Function
41441 * @param {Function} func The function to delay.
41442 * @param {number} wait The number of milliseconds to delay invocation.
41443 * @param {...*} [args] The arguments to invoke `func` with.
41444 * @returns {number} Returns the timer id.
41445 * @example
41446 *
41447 * _.delay(function(text) {
41448 * console.log(text);
41449 * }, 1000, 'later');
41450 * // => Logs 'later' after one second.
41451 */
41452 var delay = baseRest(function(func, wait, args) {
41453 return baseDelay(func, toNumber(wait) || 0, args);
41454 });
41455
41456 /**
41457 * Creates a function that invokes `func` with arguments reversed.
41458 *
41459 * @static
41460 * @memberOf _
41461 * @since 4.0.0
41462 * @category Function
41463 * @param {Function} func The function to flip arguments for.
41464 * @returns {Function} Returns the new flipped function.
41465 * @example
41466 *
41467 * var flipped = _.flip(function() {
41468 * return _.toArray(arguments);
41469 * });
41470 *
41471 * flipped('a', 'b', 'c', 'd');
41472 * // => ['d', 'c', 'b', 'a']
41473 */
41474 function flip(func) {
41475 return createWrap(func, WRAP_FLIP_FLAG);
41476 }
41477
41478 /**
41479 * Creates a function that memoizes the result of `func`. If `resolver` is
41480 * provided, it determines the cache key for storing the result based on the
41481 * arguments provided to the memoized function. By default, the first argument
41482 * provided to the memoized function is used as the map cache key. The `func`
41483 * is invoked with the `this` binding of the memoized function.
41484 *
41485 * **Note:** The cache is exposed as the `cache` property on the memoized
41486 * function. Its creation may be customized by replacing the `_.memoize.Cache`
41487 * constructor with one whose instances implement the
41488 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
41489 * method interface of `clear`, `delete`, `get`, `has`, and `set`.
41490 *
41491 * @static
41492 * @memberOf _
41493 * @since 0.1.0
41494 * @category Function
41495 * @param {Function} func The function to have its output memoized.
41496 * @param {Function} [resolver] The function to resolve the cache key.
41497 * @returns {Function} Returns the new memoized function.
41498 * @example
41499 *
41500 * var object = { 'a': 1, 'b': 2 };
41501 * var other = { 'c': 3, 'd': 4 };
41502 *
41503 * var values = _.memoize(_.values);
41504 * values(object);
41505 * // => [1, 2]
41506 *
41507 * values(other);
41508 * // => [3, 4]
41509 *
41510 * object.a = 2;
41511 * values(object);
41512 * // => [1, 2]
41513 *
41514 * // Modify the result cache.
41515 * values.cache.set(object, ['a', 'b']);
41516 * values(object);
41517 * // => ['a', 'b']
41518 *
41519 * // Replace `_.memoize.Cache`.
41520 * _.memoize.Cache = WeakMap;
41521 */
41522 function memoize(func, resolver) {
41523 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
41524 throw new TypeError(FUNC_ERROR_TEXT);
41525 }
41526 var memoized = function() {
41527 var args = arguments,
41528 key = resolver ? resolver.apply(this, args) : args[0],
41529 cache = memoized.cache;
41530
41531 if (cache.has(key)) {
41532 return cache.get(key);
41533 }
41534 var result = func.apply(this, args);
41535 memoized.cache = cache.set(key, result) || cache;
41536 return result;
41537 };
41538 memoized.cache = new (memoize.Cache || MapCache);
41539 return memoized;
41540 }
41541
41542 // Expose `MapCache`.
41543 memoize.Cache = MapCache;
41544
41545 /**
41546 * Creates a function that negates the result of the predicate `func`. The
41547 * `func` predicate is invoked with the `this` binding and arguments of the
41548 * created function.
41549 *
41550 * @static
41551 * @memberOf _
41552 * @since 3.0.0
41553 * @category Function
41554 * @param {Function} predicate The predicate to negate.
41555 * @returns {Function} Returns the new negated function.
41556 * @example
41557 *
41558 * function isEven(n) {
41559 * return n % 2 == 0;
41560 * }
41561 *
41562 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
41563 * // => [1, 3, 5]
41564 */
41565 function negate(predicate) {
41566 if (typeof predicate != 'function') {
41567 throw new TypeError(FUNC_ERROR_TEXT);
41568 }
41569 return function() {
41570 var args = arguments;
41571 switch (args.length) {
41572 case 0: return !predicate.call(this);
41573 case 1: return !predicate.call(this, args[0]);
41574 case 2: return !predicate.call(this, args[0], args[1]);
41575 case 3: return !predicate.call(this, args[0], args[1], args[2]);
41576 }
41577 return !predicate.apply(this, args);
41578 };
41579 }
41580
41581 /**
41582 * Creates a function that is restricted to invoking `func` once. Repeat calls
41583 * to the function return the value of the first invocation. The `func` is
41584 * invoked with the `this` binding and arguments of the created function.
41585 *
41586 * @static
41587 * @memberOf _
41588 * @since 0.1.0
41589 * @category Function
41590 * @param {Function} func The function to restrict.
41591 * @returns {Function} Returns the new restricted function.
41592 * @example
41593 *
41594 * var initialize = _.once(createApplication);
41595 * initialize();
41596 * initialize();
41597 * // => `createApplication` is invoked once
41598 */
41599 function once(func) {
41600 return before(2, func);
41601 }
41602
41603 /**
41604 * Creates a function that invokes `func` with its arguments transformed.
41605 *
41606 * @static
41607 * @since 4.0.0
41608 * @memberOf _
41609 * @category Function
41610 * @param {Function} func The function to wrap.
41611 * @param {...(Function|Function[])} [transforms=[_.identity]]
41612 * The argument transforms.
41613 * @returns {Function} Returns the new function.
41614 * @example
41615 *
41616 * function doubled(n) {
41617 * return n * 2;
41618 * }
41619 *
41620 * function square(n) {
41621 * return n * n;
41622 * }
41623 *
41624 * var func = _.overArgs(function(x, y) {
41625 * return [x, y];
41626 * }, [square, doubled]);
41627 *
41628 * func(9, 3);
41629 * // => [81, 6]
41630 *
41631 * func(10, 5);
41632 * // => [100, 10]
41633 */
41634 var overArgs = castRest(function(func, transforms) {
41635 transforms = (transforms.length == 1 && isArray(transforms[0]))
41636 ? arrayMap(transforms[0], baseUnary(getIteratee()))
41637 : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));
41638
41639 var funcsLength = transforms.length;
41640 return baseRest(function(args) {
41641 var index = -1,
41642 length = nativeMin(args.length, funcsLength);
41643
41644 while (++index < length) {
41645 args[index] = transforms[index].call(this, args[index]);
41646 }
41647 return apply(func, this, args);
41648 });
41649 });
41650
41651 /**
41652 * Creates a function that invokes `func` with `partials` prepended to the
41653 * arguments it receives. This method is like `_.bind` except it does **not**
41654 * alter the `this` binding.
41655 *
41656 * The `_.partial.placeholder` value, which defaults to `_` in monolithic
41657 * builds, may be used as a placeholder for partially applied arguments.
41658 *
41659 * **Note:** This method doesn't set the "length" property of partially
41660 * applied functions.
41661 *
41662 * @static
41663 * @memberOf _
41664 * @since 0.2.0
41665 * @category Function
41666 * @param {Function} func The function to partially apply arguments to.
41667 * @param {...*} [partials] The arguments to be partially applied.
41668 * @returns {Function} Returns the new partially applied function.
41669 * @example
41670 *
41671 * function greet(greeting, name) {
41672 * return greeting + ' ' + name;
41673 * }
41674 *
41675 * var sayHelloTo = _.partial(greet, 'hello');
41676 * sayHelloTo('fred');
41677 * // => 'hello fred'
41678 *
41679 * // Partially applied with placeholders.
41680 * var greetFred = _.partial(greet, _, 'fred');
41681 * greetFred('hi');
41682 * // => 'hi fred'
41683 */
41684 var partial = baseRest(function(func, partials) {
41685 var holders = replaceHolders(partials, getHolder(partial));
41686 return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);
41687 });
41688
41689 /**
41690 * This method is like `_.partial` except that partially applied arguments
41691 * are appended to the arguments it receives.
41692 *
41693 * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic
41694 * builds, may be used as a placeholder for partially applied arguments.
41695 *
41696 * **Note:** This method doesn't set the "length" property of partially
41697 * applied functions.
41698 *
41699 * @static
41700 * @memberOf _
41701 * @since 1.0.0
41702 * @category Function
41703 * @param {Function} func The function to partially apply arguments to.
41704 * @param {...*} [partials] The arguments to be partially applied.
41705 * @returns {Function} Returns the new partially applied function.
41706 * @example
41707 *
41708 * function greet(greeting, name) {
41709 * return greeting + ' ' + name;
41710 * }
41711 *
41712 * var greetFred = _.partialRight(greet, 'fred');
41713 * greetFred('hi');
41714 * // => 'hi fred'
41715 *
41716 * // Partially applied with placeholders.
41717 * var sayHelloTo = _.partialRight(greet, 'hello', _);
41718 * sayHelloTo('fred');
41719 * // => 'hello fred'
41720 */
41721 var partialRight = baseRest(function(func, partials) {
41722 var holders = replaceHolders(partials, getHolder(partialRight));
41723 return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);
41724 });
41725
41726 /**
41727 * Creates a function that invokes `func` with arguments arranged according
41728 * to the specified `indexes` where the argument value at the first index is
41729 * provided as the first argument, the argument value at the second index is
41730 * provided as the second argument, and so on.
41731 *
41732 * @static
41733 * @memberOf _
41734 * @since 3.0.0
41735 * @category Function
41736 * @param {Function} func The function to rearrange arguments for.
41737 * @param {...(number|number[])} indexes The arranged argument indexes.
41738 * @returns {Function} Returns the new function.
41739 * @example
41740 *
41741 * var rearged = _.rearg(function(a, b, c) {
41742 * return [a, b, c];
41743 * }, [2, 0, 1]);
41744 *
41745 * rearged('b', 'c', 'a')
41746 * // => ['a', 'b', 'c']
41747 */
41748 var rearg = flatRest(function(func, indexes) {
41749 return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);
41750 });
41751
41752 /**
41753 * Creates a function that invokes `func` with the `this` binding of the
41754 * created function and arguments from `start` and beyond provided as
41755 * an array.
41756 *
41757 * **Note:** This method is based on the
41758 * [rest parameter](https://mdn.io/rest_parameters).
41759 *
41760 * @static
41761 * @memberOf _
41762 * @since 4.0.0
41763 * @category Function
41764 * @param {Function} func The function to apply a rest parameter to.
41765 * @param {number} [start=func.length-1] The start position of the rest parameter.
41766 * @returns {Function} Returns the new function.
41767 * @example
41768 *
41769 * var say = _.rest(function(what, names) {
41770 * return what + ' ' + _.initial(names).join(', ') +
41771 * (_.size(names) > 1 ? ', & ' : '') + _.last(names);
41772 * });
41773 *
41774 * say('hello', 'fred', 'barney', 'pebbles');
41775 * // => 'hello fred, barney, & pebbles'
41776 */
41777 function rest(func, start) {
41778 if (typeof func != 'function') {
41779 throw new TypeError(FUNC_ERROR_TEXT);
41780 }
41781 start = start === undefined ? start : toInteger(start);
41782 return baseRest(func, start);
41783 }
41784
41785 /**
41786 * Creates a function that invokes `func` with the `this` binding of the
41787 * create function and an array of arguments much like
41788 * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).
41789 *
41790 * **Note:** This method is based on the
41791 * [spread operator](https://mdn.io/spread_operator).
41792 *
41793 * @static
41794 * @memberOf _
41795 * @since 3.2.0
41796 * @category Function
41797 * @param {Function} func The function to spread arguments over.
41798 * @param {number} [start=0] The start position of the spread.
41799 * @returns {Function} Returns the new function.
41800 * @example
41801 *
41802 * var say = _.spread(function(who, what) {
41803 * return who + ' says ' + what;
41804 * });
41805 *
41806 * say(['fred', 'hello']);
41807 * // => 'fred says hello'
41808 *
41809 * var numbers = Promise.all([
41810 * Promise.resolve(40),
41811 * Promise.resolve(36)
41812 * ]);
41813 *
41814 * numbers.then(_.spread(function(x, y) {
41815 * return x + y;
41816 * }));
41817 * // => a Promise of 76
41818 */
41819 function spread(func, start) {
41820 if (typeof func != 'function') {
41821 throw new TypeError(FUNC_ERROR_TEXT);
41822 }
41823 start = start == null ? 0 : nativeMax(toInteger(start), 0);
41824 return baseRest(function(args) {
41825 var array = args[start],
41826 otherArgs = castSlice(args, 0, start);
41827
41828 if (array) {
41829 arrayPush(otherArgs, array);
41830 }
41831 return apply(func, this, otherArgs);
41832 });
41833 }
41834
41835 /**
41836 * Creates a throttled function that only invokes `func` at most once per
41837 * every `wait` milliseconds. The throttled function comes with a `cancel`
41838 * method to cancel delayed `func` invocations and a `flush` method to
41839 * immediately invoke them. Provide `options` to indicate whether `func`
41840 * should be invoked on the leading and/or trailing edge of the `wait`
41841 * timeout. The `func` is invoked with the last arguments provided to the
41842 * throttled function. Subsequent calls to the throttled function return the
41843 * result of the last `func` invocation.
41844 *
41845 * **Note:** If `leading` and `trailing` options are `true`, `func` is
41846 * invoked on the trailing edge of the timeout only if the throttled function
41847 * is invoked more than once during the `wait` timeout.
41848 *
41849 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
41850 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
41851 *
41852 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
41853 * for details over the differences between `_.throttle` and `_.debounce`.
41854 *
41855 * @static
41856 * @memberOf _
41857 * @since 0.1.0
41858 * @category Function
41859 * @param {Function} func The function to throttle.
41860 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
41861 * @param {Object} [options={}] The options object.
41862 * @param {boolean} [options.leading=true]
41863 * Specify invoking on the leading edge of the timeout.
41864 * @param {boolean} [options.trailing=true]
41865 * Specify invoking on the trailing edge of the timeout.
41866 * @returns {Function} Returns the new throttled function.
41867 * @example
41868 *
41869 * // Avoid excessively updating the position while scrolling.
41870 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
41871 *
41872 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
41873 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
41874 * jQuery(element).on('click', throttled);
41875 *
41876 * // Cancel the trailing throttled invocation.
41877 * jQuery(window).on('popstate', throttled.cancel);
41878 */
41879 function throttle(func, wait, options) {
41880 var leading = true,
41881 trailing = true;
41882
41883 if (typeof func != 'function') {
41884 throw new TypeError(FUNC_ERROR_TEXT);
41885 }
41886 if (isObject(options)) {
41887 leading = 'leading' in options ? !!options.leading : leading;
41888 trailing = 'trailing' in options ? !!options.trailing : trailing;
41889 }
41890 return debounce(func, wait, {
41891 'leading': leading,
41892 'maxWait': wait,
41893 'trailing': trailing
41894 });
41895 }
41896
41897 /**
41898 * Creates a function that accepts up to one argument, ignoring any
41899 * additional arguments.
41900 *
41901 * @static
41902 * @memberOf _
41903 * @since 4.0.0
41904 * @category Function
41905 * @param {Function} func The function to cap arguments for.
41906 * @returns {Function} Returns the new capped function.
41907 * @example
41908 *
41909 * _.map(['6', '8', '10'], _.unary(parseInt));
41910 * // => [6, 8, 10]
41911 */
41912 function unary(func) {
41913 return ary(func, 1);
41914 }
41915
41916 /**
41917 * Creates a function that provides `value` to `wrapper` as its first
41918 * argument. Any additional arguments provided to the function are appended
41919 * to those provided to the `wrapper`. The wrapper is invoked with the `this`
41920 * binding of the created function.
41921 *
41922 * @static
41923 * @memberOf _
41924 * @since 0.1.0
41925 * @category Function
41926 * @param {*} value The value to wrap.
41927 * @param {Function} [wrapper=identity] The wrapper function.
41928 * @returns {Function} Returns the new function.
41929 * @example
41930 *
41931 * var p = _.wrap(_.escape, function(func, text) {
41932 * return '<p>' + func(text) + '</p>';
41933 * });
41934 *
41935 * p('fred, barney, & pebbles');
41936 * // => '<p>fred, barney, &amp; pebbles</p>'
41937 */
41938 function wrap(value, wrapper) {
41939 return partial(castFunction(wrapper), value);
41940 }
41941
41942 /*------------------------------------------------------------------------*/
41943
41944 /**
41945 * Casts `value` as an array if it's not one.
41946 *
41947 * @static
41948 * @memberOf _
41949 * @since 4.4.0
41950 * @category Lang
41951 * @param {*} value The value to inspect.
41952 * @returns {Array} Returns the cast array.
41953 * @example
41954 *
41955 * _.castArray(1);
41956 * // => [1]
41957 *
41958 * _.castArray({ 'a': 1 });
41959 * // => [{ 'a': 1 }]
41960 *
41961 * _.castArray('abc');
41962 * // => ['abc']
41963 *
41964 * _.castArray(null);
41965 * // => [null]
41966 *
41967 * _.castArray(undefined);
41968 * // => [undefined]
41969 *
41970 * _.castArray();
41971 * // => []
41972 *
41973 * var array = [1, 2, 3];
41974 * console.log(_.castArray(array) === array);
41975 * // => true
41976 */
41977 function castArray() {
41978 if (!arguments.length) {
41979 return [];
41980 }
41981 var value = arguments[0];
41982 return isArray(value) ? value : [value];
41983 }
41984
41985 /**
41986 * Creates a shallow clone of `value`.
41987 *
41988 * **Note:** This method is loosely based on the
41989 * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
41990 * and supports cloning arrays, array buffers, booleans, date objects, maps,
41991 * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
41992 * arrays. The own enumerable properties of `arguments` objects are cloned
41993 * as plain objects. An empty object is returned for uncloneable values such
41994 * as error objects, functions, DOM nodes, and WeakMaps.
41995 *
41996 * @static
41997 * @memberOf _
41998 * @since 0.1.0
41999 * @category Lang
42000 * @param {*} value The value to clone.
42001 * @returns {*} Returns the cloned value.
42002 * @see _.cloneDeep
42003 * @example
42004 *
42005 * var objects = [{ 'a': 1 }, { 'b': 2 }];
42006 *
42007 * var shallow = _.clone(objects);
42008 * console.log(shallow[0] === objects[0]);
42009 * // => true
42010 */
42011 function clone(value) {
42012 return baseClone(value, CLONE_SYMBOLS_FLAG);
42013 }
42014
42015 /**
42016 * This method is like `_.clone` except that it accepts `customizer` which
42017 * is invoked to produce the cloned value. If `customizer` returns `undefined`,
42018 * cloning is handled by the method instead. The `customizer` is invoked with
42019 * up to four arguments; (value [, index|key, object, stack]).
42020 *
42021 * @static
42022 * @memberOf _
42023 * @since 4.0.0
42024 * @category Lang
42025 * @param {*} value The value to clone.
42026 * @param {Function} [customizer] The function to customize cloning.
42027 * @returns {*} Returns the cloned value.
42028 * @see _.cloneDeepWith
42029 * @example
42030 *
42031 * function customizer(value) {
42032 * if (_.isElement(value)) {
42033 * return value.cloneNode(false);
42034 * }
42035 * }
42036 *
42037 * var el = _.cloneWith(document.body, customizer);
42038 *
42039 * console.log(el === document.body);
42040 * // => false
42041 * console.log(el.nodeName);
42042 * // => 'BODY'
42043 * console.log(el.childNodes.length);
42044 * // => 0
42045 */
42046 function cloneWith(value, customizer) {
42047 customizer = typeof customizer == 'function' ? customizer : undefined;
42048 return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
42049 }
42050
42051 /**
42052 * This method is like `_.clone` except that it recursively clones `value`.
42053 *
42054 * @static
42055 * @memberOf _
42056 * @since 1.0.0
42057 * @category Lang
42058 * @param {*} value The value to recursively clone.
42059 * @returns {*} Returns the deep cloned value.
42060 * @see _.clone
42061 * @example
42062 *
42063 * var objects = [{ 'a': 1 }, { 'b': 2 }];
42064 *
42065 * var deep = _.cloneDeep(objects);
42066 * console.log(deep[0] === objects[0]);
42067 * // => false
42068 */
42069 function cloneDeep(value) {
42070 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
42071 }
42072
42073 /**
42074 * This method is like `_.cloneWith` except that it recursively clones `value`.
42075 *
42076 * @static
42077 * @memberOf _
42078 * @since 4.0.0
42079 * @category Lang
42080 * @param {*} value The value to recursively clone.
42081 * @param {Function} [customizer] The function to customize cloning.
42082 * @returns {*} Returns the deep cloned value.
42083 * @see _.cloneWith
42084 * @example
42085 *
42086 * function customizer(value) {
42087 * if (_.isElement(value)) {
42088 * return value.cloneNode(true);
42089 * }
42090 * }
42091 *
42092 * var el = _.cloneDeepWith(document.body, customizer);
42093 *
42094 * console.log(el === document.body);
42095 * // => false
42096 * console.log(el.nodeName);
42097 * // => 'BODY'
42098 * console.log(el.childNodes.length);
42099 * // => 20
42100 */
42101 function cloneDeepWith(value, customizer) {
42102 customizer = typeof customizer == 'function' ? customizer : undefined;
42103 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
42104 }
42105
42106 /**
42107 * Checks if `object` conforms to `source` by invoking the predicate
42108 * properties of `source` with the corresponding property values of `object`.
42109 *
42110 * **Note:** This method is equivalent to `_.conforms` when `source` is
42111 * partially applied.
42112 *
42113 * @static
42114 * @memberOf _
42115 * @since 4.14.0
42116 * @category Lang
42117 * @param {Object} object The object to inspect.
42118 * @param {Object} source The object of property predicates to conform to.
42119 * @returns {boolean} Returns `true` if `object` conforms, else `false`.
42120 * @example
42121 *
42122 * var object = { 'a': 1, 'b': 2 };
42123 *
42124 * _.conformsTo(object, { 'b': function(n) { return n > 1; } });
42125 * // => true
42126 *
42127 * _.conformsTo(object, { 'b': function(n) { return n > 2; } });
42128 * // => false
42129 */
42130 function conformsTo(object, source) {
42131 return source == null || baseConformsTo(object, source, keys(source));
42132 }
42133
42134 /**
42135 * Performs a
42136 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
42137 * comparison between two values to determine if they are equivalent.
42138 *
42139 * @static
42140 * @memberOf _
42141 * @since 4.0.0
42142 * @category Lang
42143 * @param {*} value The value to compare.
42144 * @param {*} other The other value to compare.
42145 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
42146 * @example
42147 *
42148 * var object = { 'a': 1 };
42149 * var other = { 'a': 1 };
42150 *
42151 * _.eq(object, object);
42152 * // => true
42153 *
42154 * _.eq(object, other);
42155 * // => false
42156 *
42157 * _.eq('a', 'a');
42158 * // => true
42159 *
42160 * _.eq('a', Object('a'));
42161 * // => false
42162 *
42163 * _.eq(NaN, NaN);
42164 * // => true
42165 */
42166 function eq(value, other) {
42167 return value === other || (value !== value && other !== other);
42168 }
42169
42170 /**
42171 * Checks if `value` is greater than `other`.
42172 *
42173 * @static
42174 * @memberOf _
42175 * @since 3.9.0
42176 * @category Lang
42177 * @param {*} value The value to compare.
42178 * @param {*} other The other value to compare.
42179 * @returns {boolean} Returns `true` if `value` is greater than `other`,
42180 * else `false`.
42181 * @see _.lt
42182 * @example
42183 *
42184 * _.gt(3, 1);
42185 * // => true
42186 *
42187 * _.gt(3, 3);
42188 * // => false
42189 *
42190 * _.gt(1, 3);
42191 * // => false
42192 */
42193 var gt = createRelationalOperation(baseGt);
42194
42195 /**
42196 * Checks if `value` is greater than or equal to `other`.
42197 *
42198 * @static
42199 * @memberOf _
42200 * @since 3.9.0
42201 * @category Lang
42202 * @param {*} value The value to compare.
42203 * @param {*} other The other value to compare.
42204 * @returns {boolean} Returns `true` if `value` is greater than or equal to
42205 * `other`, else `false`.
42206 * @see _.lte
42207 * @example
42208 *
42209 * _.gte(3, 1);
42210 * // => true
42211 *
42212 * _.gte(3, 3);
42213 * // => true
42214 *
42215 * _.gte(1, 3);
42216 * // => false
42217 */
42218 var gte = createRelationalOperation(function(value, other) {
42219 return value >= other;
42220 });
42221
42222 /**
42223 * Checks if `value` is likely an `arguments` object.
42224 *
42225 * @static
42226 * @memberOf _
42227 * @since 0.1.0
42228 * @category Lang
42229 * @param {*} value The value to check.
42230 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
42231 * else `false`.
42232 * @example
42233 *
42234 * _.isArguments(function() { return arguments; }());
42235 * // => true
42236 *
42237 * _.isArguments([1, 2, 3]);
42238 * // => false
42239 */
42240 var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
42241 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
42242 !propertyIsEnumerable.call(value, 'callee');
42243 };
42244
42245 /**
42246 * Checks if `value` is classified as an `Array` object.
42247 *
42248 * @static
42249 * @memberOf _
42250 * @since 0.1.0
42251 * @category Lang
42252 * @param {*} value The value to check.
42253 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
42254 * @example
42255 *
42256 * _.isArray([1, 2, 3]);
42257 * // => true
42258 *
42259 * _.isArray(document.body.children);
42260 * // => false
42261 *
42262 * _.isArray('abc');
42263 * // => false
42264 *
42265 * _.isArray(_.noop);
42266 * // => false
42267 */
42268 var isArray = Array.isArray;
42269
42270 /**
42271 * Checks if `value` is classified as an `ArrayBuffer` object.
42272 *
42273 * @static
42274 * @memberOf _
42275 * @since 4.3.0
42276 * @category Lang
42277 * @param {*} value The value to check.
42278 * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
42279 * @example
42280 *
42281 * _.isArrayBuffer(new ArrayBuffer(2));
42282 * // => true
42283 *
42284 * _.isArrayBuffer(new Array(2));
42285 * // => false
42286 */
42287 var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;
42288
42289 /**
42290 * Checks if `value` is array-like. A value is considered array-like if it's
42291 * not a function and has a `value.length` that's an integer greater than or
42292 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
42293 *
42294 * @static
42295 * @memberOf _
42296 * @since 4.0.0
42297 * @category Lang
42298 * @param {*} value The value to check.
42299 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
42300 * @example
42301 *
42302 * _.isArrayLike([1, 2, 3]);
42303 * // => true
42304 *
42305 * _.isArrayLike(document.body.children);
42306 * // => true
42307 *
42308 * _.isArrayLike('abc');
42309 * // => true
42310 *
42311 * _.isArrayLike(_.noop);
42312 * // => false
42313 */
42314 function isArrayLike(value) {
42315 return value != null && isLength(value.length) && !isFunction(value);
42316 }
42317
42318 /**
42319 * This method is like `_.isArrayLike` except that it also checks if `value`
42320 * is an object.
42321 *
42322 * @static
42323 * @memberOf _
42324 * @since 4.0.0
42325 * @category Lang
42326 * @param {*} value The value to check.
42327 * @returns {boolean} Returns `true` if `value` is an array-like object,
42328 * else `false`.
42329 * @example
42330 *
42331 * _.isArrayLikeObject([1, 2, 3]);
42332 * // => true
42333 *
42334 * _.isArrayLikeObject(document.body.children);
42335 * // => true
42336 *
42337 * _.isArrayLikeObject('abc');
42338 * // => false
42339 *
42340 * _.isArrayLikeObject(_.noop);
42341 * // => false
42342 */
42343 function isArrayLikeObject(value) {
42344 return isObjectLike(value) && isArrayLike(value);
42345 }
42346
42347 /**
42348 * Checks if `value` is classified as a boolean primitive or object.
42349 *
42350 * @static
42351 * @memberOf _
42352 * @since 0.1.0
42353 * @category Lang
42354 * @param {*} value The value to check.
42355 * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.
42356 * @example
42357 *
42358 * _.isBoolean(false);
42359 * // => true
42360 *
42361 * _.isBoolean(null);
42362 * // => false
42363 */
42364 function isBoolean(value) {
42365 return value === true || value === false ||
42366 (isObjectLike(value) && baseGetTag(value) == boolTag);
42367 }
42368
42369 /**
42370 * Checks if `value` is a buffer.
42371 *
42372 * @static
42373 * @memberOf _
42374 * @since 4.3.0
42375 * @category Lang
42376 * @param {*} value The value to check.
42377 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
42378 * @example
42379 *
42380 * _.isBuffer(new Buffer(2));
42381 * // => true
42382 *
42383 * _.isBuffer(new Uint8Array(2));
42384 * // => false
42385 */
42386 var isBuffer = nativeIsBuffer || stubFalse;
42387
42388 /**
42389 * Checks if `value` is classified as a `Date` object.
42390 *
42391 * @static
42392 * @memberOf _
42393 * @since 0.1.0
42394 * @category Lang
42395 * @param {*} value The value to check.
42396 * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
42397 * @example
42398 *
42399 * _.isDate(new Date);
42400 * // => true
42401 *
42402 * _.isDate('Mon April 23 2012');
42403 * // => false
42404 */
42405 var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;
42406
42407 /**
42408 * Checks if `value` is likely a DOM element.
42409 *
42410 * @static
42411 * @memberOf _
42412 * @since 0.1.0
42413 * @category Lang
42414 * @param {*} value The value to check.
42415 * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
42416 * @example
42417 *
42418 * _.isElement(document.body);
42419 * // => true
42420 *
42421 * _.isElement('<body>');
42422 * // => false
42423 */
42424 function isElement(value) {
42425 return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
42426 }
42427
42428 /**
42429 * Checks if `value` is an empty object, collection, map, or set.
42430 *
42431 * Objects are considered empty if they have no own enumerable string keyed
42432 * properties.
42433 *
42434 * Array-like values such as `arguments` objects, arrays, buffers, strings, or
42435 * jQuery-like collections are considered empty if they have a `length` of `0`.
42436 * Similarly, maps and sets are considered empty if they have a `size` of `0`.
42437 *
42438 * @static
42439 * @memberOf _
42440 * @since 0.1.0
42441 * @category Lang
42442 * @param {*} value The value to check.
42443 * @returns {boolean} Returns `true` if `value` is empty, else `false`.
42444 * @example
42445 *
42446 * _.isEmpty(null);
42447 * // => true
42448 *
42449 * _.isEmpty(true);
42450 * // => true
42451 *
42452 * _.isEmpty(1);
42453 * // => true
42454 *
42455 * _.isEmpty([1, 2, 3]);
42456 * // => false
42457 *
42458 * _.isEmpty({ 'a': 1 });
42459 * // => false
42460 */
42461 function isEmpty(value) {
42462 if (value == null) {
42463 return true;
42464 }
42465 if (isArrayLike(value) &&
42466 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
42467 isBuffer(value) || isTypedArray(value) || isArguments(value))) {
42468 return !value.length;
42469 }
42470 var tag = getTag(value);
42471 if (tag == mapTag || tag == setTag) {
42472 return !value.size;
42473 }
42474 if (isPrototype(value)) {
42475 return !baseKeys(value).length;
42476 }
42477 for (var key in value) {
42478 if (hasOwnProperty.call(value, key)) {
42479 return false;
42480 }
42481 }
42482 return true;
42483 }
42484
42485 /**
42486 * Performs a deep comparison between two values to determine if they are
42487 * equivalent.
42488 *
42489 * **Note:** This method supports comparing arrays, array buffers, booleans,
42490 * date objects, error objects, maps, numbers, `Object` objects, regexes,
42491 * sets, strings, symbols, and typed arrays. `Object` objects are compared
42492 * by their own, not inherited, enumerable properties. Functions and DOM
42493 * nodes are compared by strict equality, i.e. `===`.
42494 *
42495 * @static
42496 * @memberOf _
42497 * @since 0.1.0
42498 * @category Lang
42499 * @param {*} value The value to compare.
42500 * @param {*} other The other value to compare.
42501 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
42502 * @example
42503 *
42504 * var object = { 'a': 1 };
42505 * var other = { 'a': 1 };
42506 *
42507 * _.isEqual(object, other);
42508 * // => true
42509 *
42510 * object === other;
42511 * // => false
42512 */
42513 function isEqual(value, other) {
42514 return baseIsEqual(value, other);
42515 }
42516
42517 /**
42518 * This method is like `_.isEqual` except that it accepts `customizer` which
42519 * is invoked to compare values. If `customizer` returns `undefined`, comparisons
42520 * are handled by the method instead. The `customizer` is invoked with up to
42521 * six arguments: (objValue, othValue [, index|key, object, other, stack]).
42522 *
42523 * @static
42524 * @memberOf _
42525 * @since 4.0.0
42526 * @category Lang
42527 * @param {*} value The value to compare.
42528 * @param {*} other The other value to compare.
42529 * @param {Function} [customizer] The function to customize comparisons.
42530 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
42531 * @example
42532 *
42533 * function isGreeting(value) {
42534 * return /^h(?:i|ello)$/.test(value);
42535 * }
42536 *
42537 * function customizer(objValue, othValue) {
42538 * if (isGreeting(objValue) && isGreeting(othValue)) {
42539 * return true;
42540 * }
42541 * }
42542 *
42543 * var array = ['hello', 'goodbye'];
42544 * var other = ['hi', 'goodbye'];
42545 *
42546 * _.isEqualWith(array, other, customizer);
42547 * // => true
42548 */
42549 function isEqualWith(value, other, customizer) {
42550 customizer = typeof customizer == 'function' ? customizer : undefined;
42551 var result = customizer ? customizer(value, other) : undefined;
42552 return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;
42553 }
42554
42555 /**
42556 * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
42557 * `SyntaxError`, `TypeError`, or `URIError` object.
42558 *
42559 * @static
42560 * @memberOf _
42561 * @since 3.0.0
42562 * @category Lang
42563 * @param {*} value The value to check.
42564 * @returns {boolean} Returns `true` if `value` is an error object, else `false`.
42565 * @example
42566 *
42567 * _.isError(new Error);
42568 * // => true
42569 *
42570 * _.isError(Error);
42571 * // => false
42572 */
42573 function isError(value) {
42574 if (!isObjectLike(value)) {
42575 return false;
42576 }
42577 var tag = baseGetTag(value);
42578 return tag == errorTag || tag == domExcTag ||
42579 (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
42580 }
42581
42582 /**
42583 * Checks if `value` is a finite primitive number.
42584 *
42585 * **Note:** This method is based on
42586 * [`Number.isFinite`](https://mdn.io/Number/isFinite).
42587 *
42588 * @static
42589 * @memberOf _
42590 * @since 0.1.0
42591 * @category Lang
42592 * @param {*} value The value to check.
42593 * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.
42594 * @example
42595 *
42596 * _.isFinite(3);
42597 * // => true
42598 *
42599 * _.isFinite(Number.MIN_VALUE);
42600 * // => true
42601 *
42602 * _.isFinite(Infinity);
42603 * // => false
42604 *
42605 * _.isFinite('3');
42606 * // => false
42607 */
42608 function isFinite(value) {
42609 return typeof value == 'number' && nativeIsFinite(value);
42610 }
42611
42612 /**
42613 * Checks if `value` is classified as a `Function` object.
42614 *
42615 * @static
42616 * @memberOf _
42617 * @since 0.1.0
42618 * @category Lang
42619 * @param {*} value The value to check.
42620 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
42621 * @example
42622 *
42623 * _.isFunction(_);
42624 * // => true
42625 *
42626 * _.isFunction(/abc/);
42627 * // => false
42628 */
42629 function isFunction(value) {
42630 if (!isObject(value)) {
42631 return false;
42632 }
42633 // The use of `Object#toString` avoids issues with the `typeof` operator
42634 // in Safari 9 which returns 'object' for typed arrays and other constructors.
42635 var tag = baseGetTag(value);
42636 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
42637 }
42638
42639 /**
42640 * Checks if `value` is an integer.
42641 *
42642 * **Note:** This method is based on
42643 * [`Number.isInteger`](https://mdn.io/Number/isInteger).
42644 *
42645 * @static
42646 * @memberOf _
42647 * @since 4.0.0
42648 * @category Lang
42649 * @param {*} value The value to check.
42650 * @returns {boolean} Returns `true` if `value` is an integer, else `false`.
42651 * @example
42652 *
42653 * _.isInteger(3);
42654 * // => true
42655 *
42656 * _.isInteger(Number.MIN_VALUE);
42657 * // => false
42658 *
42659 * _.isInteger(Infinity);
42660 * // => false
42661 *
42662 * _.isInteger('3');
42663 * // => false
42664 */
42665 function isInteger(value) {
42666 return typeof value == 'number' && value == toInteger(value);
42667 }
42668
42669 /**
42670 * Checks if `value` is a valid array-like length.
42671 *
42672 * **Note:** This method is loosely based on
42673 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
42674 *
42675 * @static
42676 * @memberOf _
42677 * @since 4.0.0
42678 * @category Lang
42679 * @param {*} value The value to check.
42680 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
42681 * @example
42682 *
42683 * _.isLength(3);
42684 * // => true
42685 *
42686 * _.isLength(Number.MIN_VALUE);
42687 * // => false
42688 *
42689 * _.isLength(Infinity);
42690 * // => false
42691 *
42692 * _.isLength('3');
42693 * // => false
42694 */
42695 function isLength(value) {
42696 return typeof value == 'number' &&
42697 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
42698 }
42699
42700 /**
42701 * Checks if `value` is the
42702 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
42703 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
42704 *
42705 * @static
42706 * @memberOf _
42707 * @since 0.1.0
42708 * @category Lang
42709 * @param {*} value The value to check.
42710 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
42711 * @example
42712 *
42713 * _.isObject({});
42714 * // => true
42715 *
42716 * _.isObject([1, 2, 3]);
42717 * // => true
42718 *
42719 * _.isObject(_.noop);
42720 * // => true
42721 *
42722 * _.isObject(null);
42723 * // => false
42724 */
42725 function isObject(value) {
42726 var type = typeof value;
42727 return value != null && (type == 'object' || type == 'function');
42728 }
42729
42730 /**
42731 * Checks if `value` is object-like. A value is object-like if it's not `null`
42732 * and has a `typeof` result of "object".
42733 *
42734 * @static
42735 * @memberOf _
42736 * @since 4.0.0
42737 * @category Lang
42738 * @param {*} value The value to check.
42739 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
42740 * @example
42741 *
42742 * _.isObjectLike({});
42743 * // => true
42744 *
42745 * _.isObjectLike([1, 2, 3]);
42746 * // => true
42747 *
42748 * _.isObjectLike(_.noop);
42749 * // => false
42750 *
42751 * _.isObjectLike(null);
42752 * // => false
42753 */
42754 function isObjectLike(value) {
42755 return value != null && typeof value == 'object';
42756 }
42757
42758 /**
42759 * Checks if `value` is classified as a `Map` object.
42760 *
42761 * @static
42762 * @memberOf _
42763 * @since 4.3.0
42764 * @category Lang
42765 * @param {*} value The value to check.
42766 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
42767 * @example
42768 *
42769 * _.isMap(new Map);
42770 * // => true
42771 *
42772 * _.isMap(new WeakMap);
42773 * // => false
42774 */
42775 var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
42776
42777 /**
42778 * Performs a partial deep comparison between `object` and `source` to
42779 * determine if `object` contains equivalent property values.
42780 *
42781 * **Note:** This method is equivalent to `_.matches` when `source` is
42782 * partially applied.
42783 *
42784 * Partial comparisons will match empty array and empty object `source`
42785 * values against any array or object value, respectively. See `_.isEqual`
42786 * for a list of supported value comparisons.
42787 *
42788 * @static
42789 * @memberOf _
42790 * @since 3.0.0
42791 * @category Lang
42792 * @param {Object} object The object to inspect.
42793 * @param {Object} source The object of property values to match.
42794 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
42795 * @example
42796 *
42797 * var object = { 'a': 1, 'b': 2 };
42798 *
42799 * _.isMatch(object, { 'b': 2 });
42800 * // => true
42801 *
42802 * _.isMatch(object, { 'b': 1 });
42803 * // => false
42804 */
42805 function isMatch(object, source) {
42806 return object === source || baseIsMatch(object, source, getMatchData(source));
42807 }
42808
42809 /**
42810 * This method is like `_.isMatch` except that it accepts `customizer` which
42811 * is invoked to compare values. If `customizer` returns `undefined`, comparisons
42812 * are handled by the method instead. The `customizer` is invoked with five
42813 * arguments: (objValue, srcValue, index|key, object, source).
42814 *
42815 * @static
42816 * @memberOf _
42817 * @since 4.0.0
42818 * @category Lang
42819 * @param {Object} object The object to inspect.
42820 * @param {Object} source The object of property values to match.
42821 * @param {Function} [customizer] The function to customize comparisons.
42822 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
42823 * @example
42824 *
42825 * function isGreeting(value) {
42826 * return /^h(?:i|ello)$/.test(value);
42827 * }
42828 *
42829 * function customizer(objValue, srcValue) {
42830 * if (isGreeting(objValue) && isGreeting(srcValue)) {
42831 * return true;
42832 * }
42833 * }
42834 *
42835 * var object = { 'greeting': 'hello' };
42836 * var source = { 'greeting': 'hi' };
42837 *
42838 * _.isMatchWith(object, source, customizer);
42839 * // => true
42840 */
42841 function isMatchWith(object, source, customizer) {
42842 customizer = typeof customizer == 'function' ? customizer : undefined;
42843 return baseIsMatch(object, source, getMatchData(source), customizer);
42844 }
42845
42846 /**
42847 * Checks if `value` is `NaN`.
42848 *
42849 * **Note:** This method is based on
42850 * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as
42851 * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for
42852 * `undefined` and other non-number values.
42853 *
42854 * @static
42855 * @memberOf _
42856 * @since 0.1.0
42857 * @category Lang
42858 * @param {*} value The value to check.
42859 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
42860 * @example
42861 *
42862 * _.isNaN(NaN);
42863 * // => true
42864 *
42865 * _.isNaN(new Number(NaN));
42866 * // => true
42867 *
42868 * isNaN(undefined);
42869 * // => true
42870 *
42871 * _.isNaN(undefined);
42872 * // => false
42873 */
42874 function isNaN(value) {
42875 // An `NaN` primitive is the only value that is not equal to itself.
42876 // Perform the `toStringTag` check first to avoid errors with some
42877 // ActiveX objects in IE.
42878 return isNumber(value) && value != +value;
42879 }
42880
42881 /**
42882 * Checks if `value` is a pristine native function.
42883 *
42884 * **Note:** This method can't reliably detect native functions in the presence
42885 * of the core-js package because core-js circumvents this kind of detection.
42886 * Despite multiple requests, the core-js maintainer has made it clear: any
42887 * attempt to fix the detection will be obstructed. As a result, we're left
42888 * with little choice but to throw an error. Unfortunately, this also affects
42889 * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),
42890 * which rely on core-js.
42891 *
42892 * @static
42893 * @memberOf _
42894 * @since 3.0.0
42895 * @category Lang
42896 * @param {*} value The value to check.
42897 * @returns {boolean} Returns `true` if `value` is a native function,
42898 * else `false`.
42899 * @example
42900 *
42901 * _.isNative(Array.prototype.push);
42902 * // => true
42903 *
42904 * _.isNative(_);
42905 * // => false
42906 */
42907 function isNative(value) {
42908 if (isMaskable(value)) {
42909 throw new Error(CORE_ERROR_TEXT);
42910 }
42911 return baseIsNative(value);
42912 }
42913
42914 /**
42915 * Checks if `value` is `null`.
42916 *
42917 * @static
42918 * @memberOf _
42919 * @since 0.1.0
42920 * @category Lang
42921 * @param {*} value The value to check.
42922 * @returns {boolean} Returns `true` if `value` is `null`, else `false`.
42923 * @example
42924 *
42925 * _.isNull(null);
42926 * // => true
42927 *
42928 * _.isNull(void 0);
42929 * // => false
42930 */
42931 function isNull(value) {
42932 return value === null;
42933 }
42934
42935 /**
42936 * Checks if `value` is `null` or `undefined`.
42937 *
42938 * @static
42939 * @memberOf _
42940 * @since 4.0.0
42941 * @category Lang
42942 * @param {*} value The value to check.
42943 * @returns {boolean} Returns `true` if `value` is nullish, else `false`.
42944 * @example
42945 *
42946 * _.isNil(null);
42947 * // => true
42948 *
42949 * _.isNil(void 0);
42950 * // => true
42951 *
42952 * _.isNil(NaN);
42953 * // => false
42954 */
42955 function isNil(value) {
42956 return value == null;
42957 }
42958
42959 /**
42960 * Checks if `value` is classified as a `Number` primitive or object.
42961 *
42962 * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
42963 * classified as numbers, use the `_.isFinite` method.
42964 *
42965 * @static
42966 * @memberOf _
42967 * @since 0.1.0
42968 * @category Lang
42969 * @param {*} value The value to check.
42970 * @returns {boolean} Returns `true` if `value` is a number, else `false`.
42971 * @example
42972 *
42973 * _.isNumber(3);
42974 * // => true
42975 *
42976 * _.isNumber(Number.MIN_VALUE);
42977 * // => true
42978 *
42979 * _.isNumber(Infinity);
42980 * // => true
42981 *
42982 * _.isNumber('3');
42983 * // => false
42984 */
42985 function isNumber(value) {
42986 return typeof value == 'number' ||
42987 (isObjectLike(value) && baseGetTag(value) == numberTag);
42988 }
42989
42990 /**
42991 * Checks if `value` is a plain object, that is, an object created by the
42992 * `Object` constructor or one with a `[[Prototype]]` of `null`.
42993 *
42994 * @static
42995 * @memberOf _
42996 * @since 0.8.0
42997 * @category Lang
42998 * @param {*} value The value to check.
42999 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
43000 * @example
43001 *
43002 * function Foo() {
43003 * this.a = 1;
43004 * }
43005 *
43006 * _.isPlainObject(new Foo);
43007 * // => false
43008 *
43009 * _.isPlainObject([1, 2, 3]);
43010 * // => false
43011 *
43012 * _.isPlainObject({ 'x': 0, 'y': 0 });
43013 * // => true
43014 *
43015 * _.isPlainObject(Object.create(null));
43016 * // => true
43017 */
43018 function isPlainObject(value) {
43019 if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
43020 return false;
43021 }
43022 var proto = getPrototype(value);
43023 if (proto === null) {
43024 return true;
43025 }
43026 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
43027 return typeof Ctor == 'function' && Ctor instanceof Ctor &&
43028 funcToString.call(Ctor) == objectCtorString;
43029 }
43030
43031 /**
43032 * Checks if `value` is classified as a `RegExp` object.
43033 *
43034 * @static
43035 * @memberOf _
43036 * @since 0.1.0
43037 * @category Lang
43038 * @param {*} value The value to check.
43039 * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
43040 * @example
43041 *
43042 * _.isRegExp(/abc/);
43043 * // => true
43044 *
43045 * _.isRegExp('/abc/');
43046 * // => false
43047 */
43048 var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
43049
43050 /**
43051 * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
43052 * double precision number which isn't the result of a rounded unsafe integer.
43053 *
43054 * **Note:** This method is based on
43055 * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).
43056 *
43057 * @static
43058 * @memberOf _
43059 * @since 4.0.0
43060 * @category Lang
43061 * @param {*} value The value to check.
43062 * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.
43063 * @example
43064 *
43065 * _.isSafeInteger(3);
43066 * // => true
43067 *
43068 * _.isSafeInteger(Number.MIN_VALUE);
43069 * // => false
43070 *
43071 * _.isSafeInteger(Infinity);
43072 * // => false
43073 *
43074 * _.isSafeInteger('3');
43075 * // => false
43076 */
43077 function isSafeInteger(value) {
43078 return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
43079 }
43080
43081 /**
43082 * Checks if `value` is classified as a `Set` object.
43083 *
43084 * @static
43085 * @memberOf _
43086 * @since 4.3.0
43087 * @category Lang
43088 * @param {*} value The value to check.
43089 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
43090 * @example
43091 *
43092 * _.isSet(new Set);
43093 * // => true
43094 *
43095 * _.isSet(new WeakSet);
43096 * // => false
43097 */
43098 var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
43099
43100 /**
43101 * Checks if `value` is classified as a `String` primitive or object.
43102 *
43103 * @static
43104 * @since 0.1.0
43105 * @memberOf _
43106 * @category Lang
43107 * @param {*} value The value to check.
43108 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
43109 * @example
43110 *
43111 * _.isString('abc');
43112 * // => true
43113 *
43114 * _.isString(1);
43115 * // => false
43116 */
43117 function isString(value) {
43118 return typeof value == 'string' ||
43119 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
43120 }
43121
43122 /**
43123 * Checks if `value` is classified as a `Symbol` primitive or object.
43124 *
43125 * @static
43126 * @memberOf _
43127 * @since 4.0.0
43128 * @category Lang
43129 * @param {*} value The value to check.
43130 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
43131 * @example
43132 *
43133 * _.isSymbol(Symbol.iterator);
43134 * // => true
43135 *
43136 * _.isSymbol('abc');
43137 * // => false
43138 */
43139 function isSymbol(value) {
43140 return typeof value == 'symbol' ||
43141 (isObjectLike(value) && baseGetTag(value) == symbolTag);
43142 }
43143
43144 /**
43145 * Checks if `value` is classified as a typed array.
43146 *
43147 * @static
43148 * @memberOf _
43149 * @since 3.0.0
43150 * @category Lang
43151 * @param {*} value The value to check.
43152 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
43153 * @example
43154 *
43155 * _.isTypedArray(new Uint8Array);
43156 * // => true
43157 *
43158 * _.isTypedArray([]);
43159 * // => false
43160 */
43161 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
43162
43163 /**
43164 * Checks if `value` is `undefined`.
43165 *
43166 * @static
43167 * @since 0.1.0
43168 * @memberOf _
43169 * @category Lang
43170 * @param {*} value The value to check.
43171 * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
43172 * @example
43173 *
43174 * _.isUndefined(void 0);
43175 * // => true
43176 *
43177 * _.isUndefined(null);
43178 * // => false
43179 */
43180 function isUndefined(value) {
43181 return value === undefined;
43182 }
43183
43184 /**
43185 * Checks if `value` is classified as a `WeakMap` object.
43186 *
43187 * @static
43188 * @memberOf _
43189 * @since 4.3.0
43190 * @category Lang
43191 * @param {*} value The value to check.
43192 * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.
43193 * @example
43194 *
43195 * _.isWeakMap(new WeakMap);
43196 * // => true
43197 *
43198 * _.isWeakMap(new Map);
43199 * // => false
43200 */
43201 function isWeakMap(value) {
43202 return isObjectLike(value) && getTag(value) == weakMapTag;
43203 }
43204
43205 /**
43206 * Checks if `value` is classified as a `WeakSet` object.
43207 *
43208 * @static
43209 * @memberOf _
43210 * @since 4.3.0
43211 * @category Lang
43212 * @param {*} value The value to check.
43213 * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.
43214 * @example
43215 *
43216 * _.isWeakSet(new WeakSet);
43217 * // => true
43218 *
43219 * _.isWeakSet(new Set);
43220 * // => false
43221 */
43222 function isWeakSet(value) {
43223 return isObjectLike(value) && baseGetTag(value) == weakSetTag;
43224 }
43225
43226 /**
43227 * Checks if `value` is less than `other`.
43228 *
43229 * @static
43230 * @memberOf _
43231 * @since 3.9.0
43232 * @category Lang
43233 * @param {*} value The value to compare.
43234 * @param {*} other The other value to compare.
43235 * @returns {boolean} Returns `true` if `value` is less than `other`,
43236 * else `false`.
43237 * @see _.gt
43238 * @example
43239 *
43240 * _.lt(1, 3);
43241 * // => true
43242 *
43243 * _.lt(3, 3);
43244 * // => false
43245 *
43246 * _.lt(3, 1);
43247 * // => false
43248 */
43249 var lt = createRelationalOperation(baseLt);
43250
43251 /**
43252 * Checks if `value` is less than or equal to `other`.
43253 *
43254 * @static
43255 * @memberOf _
43256 * @since 3.9.0
43257 * @category Lang
43258 * @param {*} value The value to compare.
43259 * @param {*} other The other value to compare.
43260 * @returns {boolean} Returns `true` if `value` is less than or equal to
43261 * `other`, else `false`.
43262 * @see _.gte
43263 * @example
43264 *
43265 * _.lte(1, 3);
43266 * // => true
43267 *
43268 * _.lte(3, 3);
43269 * // => true
43270 *
43271 * _.lte(3, 1);
43272 * // => false
43273 */
43274 var lte = createRelationalOperation(function(value, other) {
43275 return value <= other;
43276 });
43277
43278 /**
43279 * Converts `value` to an array.
43280 *
43281 * @static
43282 * @since 0.1.0
43283 * @memberOf _
43284 * @category Lang
43285 * @param {*} value The value to convert.
43286 * @returns {Array} Returns the converted array.
43287 * @example
43288 *
43289 * _.toArray({ 'a': 1, 'b': 2 });
43290 * // => [1, 2]
43291 *
43292 * _.toArray('abc');
43293 * // => ['a', 'b', 'c']
43294 *
43295 * _.toArray(1);
43296 * // => []
43297 *
43298 * _.toArray(null);
43299 * // => []
43300 */
43301 function toArray(value) {
43302 if (!value) {
43303 return [];
43304 }
43305 if (isArrayLike(value)) {
43306 return isString(value) ? stringToArray(value) : copyArray(value);
43307 }
43308 if (symIterator && value[symIterator]) {
43309 return iteratorToArray(value[symIterator]());
43310 }
43311 var tag = getTag(value),
43312 func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
43313
43314 return func(value);
43315 }
43316
43317 /**
43318 * Converts `value` to a finite number.
43319 *
43320 * @static
43321 * @memberOf _
43322 * @since 4.12.0
43323 * @category Lang
43324 * @param {*} value The value to convert.
43325 * @returns {number} Returns the converted number.
43326 * @example
43327 *
43328 * _.toFinite(3.2);
43329 * // => 3.2
43330 *
43331 * _.toFinite(Number.MIN_VALUE);
43332 * // => 5e-324
43333 *
43334 * _.toFinite(Infinity);
43335 * // => 1.7976931348623157e+308
43336 *
43337 * _.toFinite('3.2');
43338 * // => 3.2
43339 */
43340 function toFinite(value) {
43341 if (!value) {
43342 return value === 0 ? value : 0;
43343 }
43344 value = toNumber(value);
43345 if (value === INFINITY || value === -INFINITY) {
43346 var sign = (value < 0 ? -1 : 1);
43347 return sign * MAX_INTEGER;
43348 }
43349 return value === value ? value : 0;
43350 }
43351
43352 /**
43353 * Converts `value` to an integer.
43354 *
43355 * **Note:** This method is loosely based on
43356 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
43357 *
43358 * @static
43359 * @memberOf _
43360 * @since 4.0.0
43361 * @category Lang
43362 * @param {*} value The value to convert.
43363 * @returns {number} Returns the converted integer.
43364 * @example
43365 *
43366 * _.toInteger(3.2);
43367 * // => 3
43368 *
43369 * _.toInteger(Number.MIN_VALUE);
43370 * // => 0
43371 *
43372 * _.toInteger(Infinity);
43373 * // => 1.7976931348623157e+308
43374 *
43375 * _.toInteger('3.2');
43376 * // => 3
43377 */
43378 function toInteger(value) {
43379 var result = toFinite(value),
43380 remainder = result % 1;
43381
43382 return result === result ? (remainder ? result - remainder : result) : 0;
43383 }
43384
43385 /**
43386 * Converts `value` to an integer suitable for use as the length of an
43387 * array-like object.
43388 *
43389 * **Note:** This method is based on
43390 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
43391 *
43392 * @static
43393 * @memberOf _
43394 * @since 4.0.0
43395 * @category Lang
43396 * @param {*} value The value to convert.
43397 * @returns {number} Returns the converted integer.
43398 * @example
43399 *
43400 * _.toLength(3.2);
43401 * // => 3
43402 *
43403 * _.toLength(Number.MIN_VALUE);
43404 * // => 0
43405 *
43406 * _.toLength(Infinity);
43407 * // => 4294967295
43408 *
43409 * _.toLength('3.2');
43410 * // => 3
43411 */
43412 function toLength(value) {
43413 return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;
43414 }
43415
43416 /**
43417 * Converts `value` to a number.
43418 *
43419 * @static
43420 * @memberOf _
43421 * @since 4.0.0
43422 * @category Lang
43423 * @param {*} value The value to process.
43424 * @returns {number} Returns the number.
43425 * @example
43426 *
43427 * _.toNumber(3.2);
43428 * // => 3.2
43429 *
43430 * _.toNumber(Number.MIN_VALUE);
43431 * // => 5e-324
43432 *
43433 * _.toNumber(Infinity);
43434 * // => Infinity
43435 *
43436 * _.toNumber('3.2');
43437 * // => 3.2
43438 */
43439 function toNumber(value) {
43440 if (typeof value == 'number') {
43441 return value;
43442 }
43443 if (isSymbol(value)) {
43444 return NAN;
43445 }
43446 if (isObject(value)) {
43447 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
43448 value = isObject(other) ? (other + '') : other;
43449 }
43450 if (typeof value != 'string') {
43451 return value === 0 ? value : +value;
43452 }
43453 value = value.replace(reTrim, '');
43454 var isBinary = reIsBinary.test(value);
43455 return (isBinary || reIsOctal.test(value))
43456 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
43457 : (reIsBadHex.test(value) ? NAN : +value);
43458 }
43459
43460 /**
43461 * Converts `value` to a plain object flattening inherited enumerable string
43462 * keyed properties of `value` to own properties of the plain object.
43463 *
43464 * @static
43465 * @memberOf _
43466 * @since 3.0.0
43467 * @category Lang
43468 * @param {*} value The value to convert.
43469 * @returns {Object} Returns the converted plain object.
43470 * @example
43471 *
43472 * function Foo() {
43473 * this.b = 2;
43474 * }
43475 *
43476 * Foo.prototype.c = 3;
43477 *
43478 * _.assign({ 'a': 1 }, new Foo);
43479 * // => { 'a': 1, 'b': 2 }
43480 *
43481 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
43482 * // => { 'a': 1, 'b': 2, 'c': 3 }
43483 */
43484 function toPlainObject(value) {
43485 return copyObject(value, keysIn(value));
43486 }
43487
43488 /**
43489 * Converts `value` to a safe integer. A safe integer can be compared and
43490 * represented correctly.
43491 *
43492 * @static
43493 * @memberOf _
43494 * @since 4.0.0
43495 * @category Lang
43496 * @param {*} value The value to convert.
43497 * @returns {number} Returns the converted integer.
43498 * @example
43499 *
43500 * _.toSafeInteger(3.2);
43501 * // => 3
43502 *
43503 * _.toSafeInteger(Number.MIN_VALUE);
43504 * // => 0
43505 *
43506 * _.toSafeInteger(Infinity);
43507 * // => 9007199254740991
43508 *
43509 * _.toSafeInteger('3.2');
43510 * // => 3
43511 */
43512 function toSafeInteger(value) {
43513 return value
43514 ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)
43515 : (value === 0 ? value : 0);
43516 }
43517
43518 /**
43519 * Converts `value` to a string. An empty string is returned for `null`
43520 * and `undefined` values. The sign of `-0` is preserved.
43521 *
43522 * @static
43523 * @memberOf _
43524 * @since 4.0.0
43525 * @category Lang
43526 * @param {*} value The value to convert.
43527 * @returns {string} Returns the converted string.
43528 * @example
43529 *
43530 * _.toString(null);
43531 * // => ''
43532 *
43533 * _.toString(-0);
43534 * // => '-0'
43535 *
43536 * _.toString([1, 2, 3]);
43537 * // => '1,2,3'
43538 */
43539 function toString(value) {
43540 return value == null ? '' : baseToString(value);
43541 }
43542
43543 /*------------------------------------------------------------------------*/
43544
43545 /**
43546 * Assigns own enumerable string keyed properties of source objects to the
43547 * destination object. Source objects are applied from left to right.
43548 * Subsequent sources overwrite property assignments of previous sources.
43549 *
43550 * **Note:** This method mutates `object` and is loosely based on
43551 * [`Object.assign`](https://mdn.io/Object/assign).
43552 *
43553 * @static
43554 * @memberOf _
43555 * @since 0.10.0
43556 * @category Object
43557 * @param {Object} object The destination object.
43558 * @param {...Object} [sources] The source objects.
43559 * @returns {Object} Returns `object`.
43560 * @see _.assignIn
43561 * @example
43562 *
43563 * function Foo() {
43564 * this.a = 1;
43565 * }
43566 *
43567 * function Bar() {
43568 * this.c = 3;
43569 * }
43570 *
43571 * Foo.prototype.b = 2;
43572 * Bar.prototype.d = 4;
43573 *
43574 * _.assign({ 'a': 0 }, new Foo, new Bar);
43575 * // => { 'a': 1, 'c': 3 }
43576 */
43577 var assign = createAssigner(function(object, source) {
43578 if (isPrototype(source) || isArrayLike(source)) {
43579 copyObject(source, keys(source), object);
43580 return;
43581 }
43582 for (var key in source) {
43583 if (hasOwnProperty.call(source, key)) {
43584 assignValue(object, key, source[key]);
43585 }
43586 }
43587 });
43588
43589 /**
43590 * This method is like `_.assign` except that it iterates over own and
43591 * inherited source properties.
43592 *
43593 * **Note:** This method mutates `object`.
43594 *
43595 * @static
43596 * @memberOf _
43597 * @since 4.0.0
43598 * @alias extend
43599 * @category Object
43600 * @param {Object} object The destination object.
43601 * @param {...Object} [sources] The source objects.
43602 * @returns {Object} Returns `object`.
43603 * @see _.assign
43604 * @example
43605 *
43606 * function Foo() {
43607 * this.a = 1;
43608 * }
43609 *
43610 * function Bar() {
43611 * this.c = 3;
43612 * }
43613 *
43614 * Foo.prototype.b = 2;
43615 * Bar.prototype.d = 4;
43616 *
43617 * _.assignIn({ 'a': 0 }, new Foo, new Bar);
43618 * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
43619 */
43620 var assignIn = createAssigner(function(object, source) {
43621 copyObject(source, keysIn(source), object);
43622 });
43623
43624 /**
43625 * This method is like `_.assignIn` except that it accepts `customizer`
43626 * which is invoked to produce the assigned values. If `customizer` returns
43627 * `undefined`, assignment is handled by the method instead. The `customizer`
43628 * is invoked with five arguments: (objValue, srcValue, key, object, source).
43629 *
43630 * **Note:** This method mutates `object`.
43631 *
43632 * @static
43633 * @memberOf _
43634 * @since 4.0.0
43635 * @alias extendWith
43636 * @category Object
43637 * @param {Object} object The destination object.
43638 * @param {...Object} sources The source objects.
43639 * @param {Function} [customizer] The function to customize assigned values.
43640 * @returns {Object} Returns `object`.
43641 * @see _.assignWith
43642 * @example
43643 *
43644 * function customizer(objValue, srcValue) {
43645 * return _.isUndefined(objValue) ? srcValue : objValue;
43646 * }
43647 *
43648 * var defaults = _.partialRight(_.assignInWith, customizer);
43649 *
43650 * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
43651 * // => { 'a': 1, 'b': 2 }
43652 */
43653 var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {
43654 copyObject(source, keysIn(source), object, customizer);
43655 });
43656
43657 /**
43658 * This method is like `_.assign` except that it accepts `customizer`
43659 * which is invoked to produce the assigned values. If `customizer` returns
43660 * `undefined`, assignment is handled by the method instead. The `customizer`
43661 * is invoked with five arguments: (objValue, srcValue, key, object, source).
43662 *
43663 * **Note:** This method mutates `object`.
43664 *
43665 * @static
43666 * @memberOf _
43667 * @since 4.0.0
43668 * @category Object
43669 * @param {Object} object The destination object.
43670 * @param {...Object} sources The source objects.
43671 * @param {Function} [customizer] The function to customize assigned values.
43672 * @returns {Object} Returns `object`.
43673 * @see _.assignInWith
43674 * @example
43675 *
43676 * function customizer(objValue, srcValue) {
43677 * return _.isUndefined(objValue) ? srcValue : objValue;
43678 * }
43679 *
43680 * var defaults = _.partialRight(_.assignWith, customizer);
43681 *
43682 * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
43683 * // => { 'a': 1, 'b': 2 }
43684 */
43685 var assignWith = createAssigner(function(object, source, srcIndex, customizer) {
43686 copyObject(source, keys(source), object, customizer);
43687 });
43688
43689 /**
43690 * Creates an array of values corresponding to `paths` of `object`.
43691 *
43692 * @static
43693 * @memberOf _
43694 * @since 1.0.0
43695 * @category Object
43696 * @param {Object} object The object to iterate over.
43697 * @param {...(string|string[])} [paths] The property paths to pick.
43698 * @returns {Array} Returns the picked values.
43699 * @example
43700 *
43701 * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
43702 *
43703 * _.at(object, ['a[0].b.c', 'a[1]']);
43704 * // => [3, 4]
43705 */
43706 var at = flatRest(baseAt);
43707
43708 /**
43709 * Creates an object that inherits from the `prototype` object. If a
43710 * `properties` object is given, its own enumerable string keyed properties
43711 * are assigned to the created object.
43712 *
43713 * @static
43714 * @memberOf _
43715 * @since 2.3.0
43716 * @category Object
43717 * @param {Object} prototype The object to inherit from.
43718 * @param {Object} [properties] The properties to assign to the object.
43719 * @returns {Object} Returns the new object.
43720 * @example
43721 *
43722 * function Shape() {
43723 * this.x = 0;
43724 * this.y = 0;
43725 * }
43726 *
43727 * function Circle() {
43728 * Shape.call(this);
43729 * }
43730 *
43731 * Circle.prototype = _.create(Shape.prototype, {
43732 * 'constructor': Circle
43733 * });
43734 *
43735 * var circle = new Circle;
43736 * circle instanceof Circle;
43737 * // => true
43738 *
43739 * circle instanceof Shape;
43740 * // => true
43741 */
43742 function create(prototype, properties) {
43743 var result = baseCreate(prototype);
43744 return properties == null ? result : baseAssign(result, properties);
43745 }
43746
43747 /**
43748 * Assigns own and inherited enumerable string keyed properties of source
43749 * objects to the destination object for all destination properties that
43750 * resolve to `undefined`. Source objects are applied from left to right.
43751 * Once a property is set, additional values of the same property are ignored.
43752 *
43753 * **Note:** This method mutates `object`.
43754 *
43755 * @static
43756 * @since 0.1.0
43757 * @memberOf _
43758 * @category Object
43759 * @param {Object} object The destination object.
43760 * @param {...Object} [sources] The source objects.
43761 * @returns {Object} Returns `object`.
43762 * @see _.defaultsDeep
43763 * @example
43764 *
43765 * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
43766 * // => { 'a': 1, 'b': 2 }
43767 */
43768 var defaults = baseRest(function(object, sources) {
43769 object = Object(object);
43770
43771 var index = -1;
43772 var length = sources.length;
43773 var guard = length > 2 ? sources[2] : undefined;
43774
43775 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
43776 length = 1;
43777 }
43778
43779 while (++index < length) {
43780 var source = sources[index];
43781 var props = keysIn(source);
43782 var propsIndex = -1;
43783 var propsLength = props.length;
43784
43785 while (++propsIndex < propsLength) {
43786 var key = props[propsIndex];
43787 var value = object[key];
43788
43789 if (value === undefined ||
43790 (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
43791 object[key] = source[key];
43792 }
43793 }
43794 }
43795
43796 return object;
43797 });
43798
43799 /**
43800 * This method is like `_.defaults` except that it recursively assigns
43801 * default properties.
43802 *
43803 * **Note:** This method mutates `object`.
43804 *
43805 * @static
43806 * @memberOf _
43807 * @since 3.10.0
43808 * @category Object
43809 * @param {Object} object The destination object.
43810 * @param {...Object} [sources] The source objects.
43811 * @returns {Object} Returns `object`.
43812 * @see _.defaults
43813 * @example
43814 *
43815 * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });
43816 * // => { 'a': { 'b': 2, 'c': 3 } }
43817 */
43818 var defaultsDeep = baseRest(function(args) {
43819 args.push(undefined, customDefaultsMerge);
43820 return apply(mergeWith, undefined, args);
43821 });
43822
43823 /**
43824 * This method is like `_.find` except that it returns the key of the first
43825 * element `predicate` returns truthy for instead of the element itself.
43826 *
43827 * @static
43828 * @memberOf _
43829 * @since 1.1.0
43830 * @category Object
43831 * @param {Object} object The object to inspect.
43832 * @param {Function} [predicate=_.identity] The function invoked per iteration.
43833 * @returns {string|undefined} Returns the key of the matched element,
43834 * else `undefined`.
43835 * @example
43836 *
43837 * var users = {
43838 * 'barney': { 'age': 36, 'active': true },
43839 * 'fred': { 'age': 40, 'active': false },
43840 * 'pebbles': { 'age': 1, 'active': true }
43841 * };
43842 *
43843 * _.findKey(users, function(o) { return o.age < 40; });
43844 * // => 'barney' (iteration order is not guaranteed)
43845 *
43846 * // The `_.matches` iteratee shorthand.
43847 * _.findKey(users, { 'age': 1, 'active': true });
43848 * // => 'pebbles'
43849 *
43850 * // The `_.matchesProperty` iteratee shorthand.
43851 * _.findKey(users, ['active', false]);
43852 * // => 'fred'
43853 *
43854 * // The `_.property` iteratee shorthand.
43855 * _.findKey(users, 'active');
43856 * // => 'barney'
43857 */
43858 function findKey(object, predicate) {
43859 return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);
43860 }
43861
43862 /**
43863 * This method is like `_.findKey` except that it iterates over elements of
43864 * a collection in the opposite order.
43865 *
43866 * @static
43867 * @memberOf _
43868 * @since 2.0.0
43869 * @category Object
43870 * @param {Object} object The object to inspect.
43871 * @param {Function} [predicate=_.identity] The function invoked per iteration.
43872 * @returns {string|undefined} Returns the key of the matched element,
43873 * else `undefined`.
43874 * @example
43875 *
43876 * var users = {
43877 * 'barney': { 'age': 36, 'active': true },
43878 * 'fred': { 'age': 40, 'active': false },
43879 * 'pebbles': { 'age': 1, 'active': true }
43880 * };
43881 *
43882 * _.findLastKey(users, function(o) { return o.age < 40; });
43883 * // => returns 'pebbles' assuming `_.findKey` returns 'barney'
43884 *
43885 * // The `_.matches` iteratee shorthand.
43886 * _.findLastKey(users, { 'age': 36, 'active': true });
43887 * // => 'barney'
43888 *
43889 * // The `_.matchesProperty` iteratee shorthand.
43890 * _.findLastKey(users, ['active', false]);
43891 * // => 'fred'
43892 *
43893 * // The `_.property` iteratee shorthand.
43894 * _.findLastKey(users, 'active');
43895 * // => 'pebbles'
43896 */
43897 function findLastKey(object, predicate) {
43898 return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);
43899 }
43900
43901 /**
43902 * Iterates over own and inherited enumerable string keyed properties of an
43903 * object and invokes `iteratee` for each property. The iteratee is invoked
43904 * with three arguments: (value, key, object). Iteratee functions may exit
43905 * iteration early by explicitly returning `false`.
43906 *
43907 * @static
43908 * @memberOf _
43909 * @since 0.3.0
43910 * @category Object
43911 * @param {Object} object The object to iterate over.
43912 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
43913 * @returns {Object} Returns `object`.
43914 * @see _.forInRight
43915 * @example
43916 *
43917 * function Foo() {
43918 * this.a = 1;
43919 * this.b = 2;
43920 * }
43921 *
43922 * Foo.prototype.c = 3;
43923 *
43924 * _.forIn(new Foo, function(value, key) {
43925 * console.log(key);
43926 * });
43927 * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).
43928 */
43929 function forIn(object, iteratee) {
43930 return object == null
43931 ? object
43932 : baseFor(object, getIteratee(iteratee, 3), keysIn);
43933 }
43934
43935 /**
43936 * This method is like `_.forIn` except that it iterates over properties of
43937 * `object` in the opposite order.
43938 *
43939 * @static
43940 * @memberOf _
43941 * @since 2.0.0
43942 * @category Object
43943 * @param {Object} object The object to iterate over.
43944 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
43945 * @returns {Object} Returns `object`.
43946 * @see _.forIn
43947 * @example
43948 *
43949 * function Foo() {
43950 * this.a = 1;
43951 * this.b = 2;
43952 * }
43953 *
43954 * Foo.prototype.c = 3;
43955 *
43956 * _.forInRight(new Foo, function(value, key) {
43957 * console.log(key);
43958 * });
43959 * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.
43960 */
43961 function forInRight(object, iteratee) {
43962 return object == null
43963 ? object
43964 : baseForRight(object, getIteratee(iteratee, 3), keysIn);
43965 }
43966
43967 /**
43968 * Iterates over own enumerable string keyed properties of an object and
43969 * invokes `iteratee` for each property. The iteratee is invoked with three
43970 * arguments: (value, key, object). Iteratee functions may exit iteration
43971 * early by explicitly returning `false`.
43972 *
43973 * @static
43974 * @memberOf _
43975 * @since 0.3.0
43976 * @category Object
43977 * @param {Object} object The object to iterate over.
43978 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
43979 * @returns {Object} Returns `object`.
43980 * @see _.forOwnRight
43981 * @example
43982 *
43983 * function Foo() {
43984 * this.a = 1;
43985 * this.b = 2;
43986 * }
43987 *
43988 * Foo.prototype.c = 3;
43989 *
43990 * _.forOwn(new Foo, function(value, key) {
43991 * console.log(key);
43992 * });
43993 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
43994 */
43995 function forOwn(object, iteratee) {
43996 return object && baseForOwn(object, getIteratee(iteratee, 3));
43997 }
43998
43999 /**
44000 * This method is like `_.forOwn` except that it iterates over properties of
44001 * `object` in the opposite order.
44002 *
44003 * @static
44004 * @memberOf _
44005 * @since 2.0.0
44006 * @category Object
44007 * @param {Object} object The object to iterate over.
44008 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
44009 * @returns {Object} Returns `object`.
44010 * @see _.forOwn
44011 * @example
44012 *
44013 * function Foo() {
44014 * this.a = 1;
44015 * this.b = 2;
44016 * }
44017 *
44018 * Foo.prototype.c = 3;
44019 *
44020 * _.forOwnRight(new Foo, function(value, key) {
44021 * console.log(key);
44022 * });
44023 * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.
44024 */
44025 function forOwnRight(object, iteratee) {
44026 return object && baseForOwnRight(object, getIteratee(iteratee, 3));
44027 }
44028
44029 /**
44030 * Creates an array of function property names from own enumerable properties
44031 * of `object`.
44032 *
44033 * @static
44034 * @since 0.1.0
44035 * @memberOf _
44036 * @category Object
44037 * @param {Object} object The object to inspect.
44038 * @returns {Array} Returns the function names.
44039 * @see _.functionsIn
44040 * @example
44041 *
44042 * function Foo() {
44043 * this.a = _.constant('a');
44044 * this.b = _.constant('b');
44045 * }
44046 *
44047 * Foo.prototype.c = _.constant('c');
44048 *
44049 * _.functions(new Foo);
44050 * // => ['a', 'b']
44051 */
44052 function functions(object) {
44053 return object == null ? [] : baseFunctions(object, keys(object));
44054 }
44055
44056 /**
44057 * Creates an array of function property names from own and inherited
44058 * enumerable properties of `object`.
44059 *
44060 * @static
44061 * @memberOf _
44062 * @since 4.0.0
44063 * @category Object
44064 * @param {Object} object The object to inspect.
44065 * @returns {Array} Returns the function names.
44066 * @see _.functions
44067 * @example
44068 *
44069 * function Foo() {
44070 * this.a = _.constant('a');
44071 * this.b = _.constant('b');
44072 * }
44073 *
44074 * Foo.prototype.c = _.constant('c');
44075 *
44076 * _.functionsIn(new Foo);
44077 * // => ['a', 'b', 'c']
44078 */
44079 function functionsIn(object) {
44080 return object == null ? [] : baseFunctions(object, keysIn(object));
44081 }
44082
44083 /**
44084 * Gets the value at `path` of `object`. If the resolved value is
44085 * `undefined`, the `defaultValue` is returned in its place.
44086 *
44087 * @static
44088 * @memberOf _
44089 * @since 3.7.0
44090 * @category Object
44091 * @param {Object} object The object to query.
44092 * @param {Array|string} path The path of the property to get.
44093 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
44094 * @returns {*} Returns the resolved value.
44095 * @example
44096 *
44097 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
44098 *
44099 * _.get(object, 'a[0].b.c');
44100 * // => 3
44101 *
44102 * _.get(object, ['a', '0', 'b', 'c']);
44103 * // => 3
44104 *
44105 * _.get(object, 'a.b.c', 'default');
44106 * // => 'default'
44107 */
44108 function get(object, path, defaultValue) {
44109 var result = object == null ? undefined : baseGet(object, path);
44110 return result === undefined ? defaultValue : result;
44111 }
44112
44113 /**
44114 * Checks if `path` is a direct property of `object`.
44115 *
44116 * @static
44117 * @since 0.1.0
44118 * @memberOf _
44119 * @category Object
44120 * @param {Object} object The object to query.
44121 * @param {Array|string} path The path to check.
44122 * @returns {boolean} Returns `true` if `path` exists, else `false`.
44123 * @example
44124 *
44125 * var object = { 'a': { 'b': 2 } };
44126 * var other = _.create({ 'a': _.create({ 'b': 2 }) });
44127 *
44128 * _.has(object, 'a');
44129 * // => true
44130 *
44131 * _.has(object, 'a.b');
44132 * // => true
44133 *
44134 * _.has(object, ['a', 'b']);
44135 * // => true
44136 *
44137 * _.has(other, 'a');
44138 * // => false
44139 */
44140 function has(object, path) {
44141 return object != null && hasPath(object, path, baseHas);
44142 }
44143
44144 /**
44145 * Checks if `path` is a direct or inherited property of `object`.
44146 *
44147 * @static
44148 * @memberOf _
44149 * @since 4.0.0
44150 * @category Object
44151 * @param {Object} object The object to query.
44152 * @param {Array|string} path The path to check.
44153 * @returns {boolean} Returns `true` if `path` exists, else `false`.
44154 * @example
44155 *
44156 * var object = _.create({ 'a': _.create({ 'b': 2 }) });
44157 *
44158 * _.hasIn(object, 'a');
44159 * // => true
44160 *
44161 * _.hasIn(object, 'a.b');
44162 * // => true
44163 *
44164 * _.hasIn(object, ['a', 'b']);
44165 * // => true
44166 *
44167 * _.hasIn(object, 'b');
44168 * // => false
44169 */
44170 function hasIn(object, path) {
44171 return object != null && hasPath(object, path, baseHasIn);
44172 }
44173
44174 /**
44175 * Creates an object composed of the inverted keys and values of `object`.
44176 * If `object` contains duplicate values, subsequent values overwrite
44177 * property assignments of previous values.
44178 *
44179 * @static
44180 * @memberOf _
44181 * @since 0.7.0
44182 * @category Object
44183 * @param {Object} object The object to invert.
44184 * @returns {Object} Returns the new inverted object.
44185 * @example
44186 *
44187 * var object = { 'a': 1, 'b': 2, 'c': 1 };
44188 *
44189 * _.invert(object);
44190 * // => { '1': 'c', '2': 'b' }
44191 */
44192 var invert = createInverter(function(result, value, key) {
44193 if (value != null &&
44194 typeof value.toString != 'function') {
44195 value = nativeObjectToString.call(value);
44196 }
44197
44198 result[value] = key;
44199 }, constant(identity));
44200
44201 /**
44202 * This method is like `_.invert` except that the inverted object is generated
44203 * from the results of running each element of `object` thru `iteratee`. The
44204 * corresponding inverted value of each inverted key is an array of keys
44205 * responsible for generating the inverted value. The iteratee is invoked
44206 * with one argument: (value).
44207 *
44208 * @static
44209 * @memberOf _
44210 * @since 4.1.0
44211 * @category Object
44212 * @param {Object} object The object to invert.
44213 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
44214 * @returns {Object} Returns the new inverted object.
44215 * @example
44216 *
44217 * var object = { 'a': 1, 'b': 2, 'c': 1 };
44218 *
44219 * _.invertBy(object);
44220 * // => { '1': ['a', 'c'], '2': ['b'] }
44221 *
44222 * _.invertBy(object, function(value) {
44223 * return 'group' + value;
44224 * });
44225 * // => { 'group1': ['a', 'c'], 'group2': ['b'] }
44226 */
44227 var invertBy = createInverter(function(result, value, key) {
44228 if (value != null &&
44229 typeof value.toString != 'function') {
44230 value = nativeObjectToString.call(value);
44231 }
44232
44233 if (hasOwnProperty.call(result, value)) {
44234 result[value].push(key);
44235 } else {
44236 result[value] = [key];
44237 }
44238 }, getIteratee);
44239
44240 /**
44241 * Invokes the method at `path` of `object`.
44242 *
44243 * @static
44244 * @memberOf _
44245 * @since 4.0.0
44246 * @category Object
44247 * @param {Object} object The object to query.
44248 * @param {Array|string} path The path of the method to invoke.
44249 * @param {...*} [args] The arguments to invoke the method with.
44250 * @returns {*} Returns the result of the invoked method.
44251 * @example
44252 *
44253 * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };
44254 *
44255 * _.invoke(object, 'a[0].b.c.slice', 1, 3);
44256 * // => [2, 3]
44257 */
44258 var invoke = baseRest(baseInvoke);
44259
44260 /**
44261 * Creates an array of the own enumerable property names of `object`.
44262 *
44263 * **Note:** Non-object values are coerced to objects. See the
44264 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
44265 * for more details.
44266 *
44267 * @static
44268 * @since 0.1.0
44269 * @memberOf _
44270 * @category Object
44271 * @param {Object} object The object to query.
44272 * @returns {Array} Returns the array of property names.
44273 * @example
44274 *
44275 * function Foo() {
44276 * this.a = 1;
44277 * this.b = 2;
44278 * }
44279 *
44280 * Foo.prototype.c = 3;
44281 *
44282 * _.keys(new Foo);
44283 * // => ['a', 'b'] (iteration order is not guaranteed)
44284 *
44285 * _.keys('hi');
44286 * // => ['0', '1']
44287 */
44288 function keys(object) {
44289 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
44290 }
44291
44292 /**
44293 * Creates an array of the own and inherited enumerable property names of `object`.
44294 *
44295 * **Note:** Non-object values are coerced to objects.
44296 *
44297 * @static
44298 * @memberOf _
44299 * @since 3.0.0
44300 * @category Object
44301 * @param {Object} object The object to query.
44302 * @returns {Array} Returns the array of property names.
44303 * @example
44304 *
44305 * function Foo() {
44306 * this.a = 1;
44307 * this.b = 2;
44308 * }
44309 *
44310 * Foo.prototype.c = 3;
44311 *
44312 * _.keysIn(new Foo);
44313 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
44314 */
44315 function keysIn(object) {
44316 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
44317 }
44318
44319 /**
44320 * The opposite of `_.mapValues`; this method creates an object with the
44321 * same values as `object` and keys generated by running each own enumerable
44322 * string keyed property of `object` thru `iteratee`. The iteratee is invoked
44323 * with three arguments: (value, key, object).
44324 *
44325 * @static
44326 * @memberOf _
44327 * @since 3.8.0
44328 * @category Object
44329 * @param {Object} object The object to iterate over.
44330 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
44331 * @returns {Object} Returns the new mapped object.
44332 * @see _.mapValues
44333 * @example
44334 *
44335 * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
44336 * return key + value;
44337 * });
44338 * // => { 'a1': 1, 'b2': 2 }
44339 */
44340 function mapKeys(object, iteratee) {
44341 var result = {};
44342 iteratee = getIteratee(iteratee, 3);
44343
44344 baseForOwn(object, function(value, key, object) {
44345 baseAssignValue(result, iteratee(value, key, object), value);
44346 });
44347 return result;
44348 }
44349
44350 /**
44351 * Creates an object with the same keys as `object` and values generated
44352 * by running each own enumerable string keyed property of `object` thru
44353 * `iteratee`. The iteratee is invoked with three arguments:
44354 * (value, key, object).
44355 *
44356 * @static
44357 * @memberOf _
44358 * @since 2.4.0
44359 * @category Object
44360 * @param {Object} object The object to iterate over.
44361 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
44362 * @returns {Object} Returns the new mapped object.
44363 * @see _.mapKeys
44364 * @example
44365 *
44366 * var users = {
44367 * 'fred': { 'user': 'fred', 'age': 40 },
44368 * 'pebbles': { 'user': 'pebbles', 'age': 1 }
44369 * };
44370 *
44371 * _.mapValues(users, function(o) { return o.age; });
44372 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
44373 *
44374 * // The `_.property` iteratee shorthand.
44375 * _.mapValues(users, 'age');
44376 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
44377 */
44378 function mapValues(object, iteratee) {
44379 var result = {};
44380 iteratee = getIteratee(iteratee, 3);
44381
44382 baseForOwn(object, function(value, key, object) {
44383 baseAssignValue(result, key, iteratee(value, key, object));
44384 });
44385 return result;
44386 }
44387
44388 /**
44389 * This method is like `_.assign` except that it recursively merges own and
44390 * inherited enumerable string keyed properties of source objects into the
44391 * destination object. Source properties that resolve to `undefined` are
44392 * skipped if a destination value exists. Array and plain object properties
44393 * are merged recursively. Other objects and value types are overridden by
44394 * assignment. Source objects are applied from left to right. Subsequent
44395 * sources overwrite property assignments of previous sources.
44396 *
44397 * **Note:** This method mutates `object`.
44398 *
44399 * @static
44400 * @memberOf _
44401 * @since 0.5.0
44402 * @category Object
44403 * @param {Object} object The destination object.
44404 * @param {...Object} [sources] The source objects.
44405 * @returns {Object} Returns `object`.
44406 * @example
44407 *
44408 * var object = {
44409 * 'a': [{ 'b': 2 }, { 'd': 4 }]
44410 * };
44411 *
44412 * var other = {
44413 * 'a': [{ 'c': 3 }, { 'e': 5 }]
44414 * };
44415 *
44416 * _.merge(object, other);
44417 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
44418 */
44419 var merge = createAssigner(function(object, source, srcIndex) {
44420 baseMerge(object, source, srcIndex);
44421 });
44422
44423 /**
44424 * This method is like `_.merge` except that it accepts `customizer` which
44425 * is invoked to produce the merged values of the destination and source
44426 * properties. If `customizer` returns `undefined`, merging is handled by the
44427 * method instead. The `customizer` is invoked with six arguments:
44428 * (objValue, srcValue, key, object, source, stack).
44429 *
44430 * **Note:** This method mutates `object`.
44431 *
44432 * @static
44433 * @memberOf _
44434 * @since 4.0.0
44435 * @category Object
44436 * @param {Object} object The destination object.
44437 * @param {...Object} sources The source objects.
44438 * @param {Function} customizer The function to customize assigned values.
44439 * @returns {Object} Returns `object`.
44440 * @example
44441 *
44442 * function customizer(objValue, srcValue) {
44443 * if (_.isArray(objValue)) {
44444 * return objValue.concat(srcValue);
44445 * }
44446 * }
44447 *
44448 * var object = { 'a': [1], 'b': [2] };
44449 * var other = { 'a': [3], 'b': [4] };
44450 *
44451 * _.mergeWith(object, other, customizer);
44452 * // => { 'a': [1, 3], 'b': [2, 4] }
44453 */
44454 var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
44455 baseMerge(object, source, srcIndex, customizer);
44456 });
44457
44458 /**
44459 * The opposite of `_.pick`; this method creates an object composed of the
44460 * own and inherited enumerable property paths of `object` that are not omitted.
44461 *
44462 * **Note:** This method is considerably slower than `_.pick`.
44463 *
44464 * @static
44465 * @since 0.1.0
44466 * @memberOf _
44467 * @category Object
44468 * @param {Object} object The source object.
44469 * @param {...(string|string[])} [paths] The property paths to omit.
44470 * @returns {Object} Returns the new object.
44471 * @example
44472 *
44473 * var object = { 'a': 1, 'b': '2', 'c': 3 };
44474 *
44475 * _.omit(object, ['a', 'c']);
44476 * // => { 'b': '2' }
44477 */
44478 var omit = flatRest(function(object, paths) {
44479 var result = {};
44480 if (object == null) {
44481 return result;
44482 }
44483 var isDeep = false;
44484 paths = arrayMap(paths, function(path) {
44485 path = castPath(path, object);
44486 isDeep || (isDeep = path.length > 1);
44487 return path;
44488 });
44489 copyObject(object, getAllKeysIn(object), result);
44490 if (isDeep) {
44491 result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
44492 }
44493 var length = paths.length;
44494 while (length--) {
44495 baseUnset(result, paths[length]);
44496 }
44497 return result;
44498 });
44499
44500 /**
44501 * The opposite of `_.pickBy`; this method creates an object composed of
44502 * the own and inherited enumerable string keyed properties of `object` that
44503 * `predicate` doesn't return truthy for. The predicate is invoked with two
44504 * arguments: (value, key).
44505 *
44506 * @static
44507 * @memberOf _
44508 * @since 4.0.0
44509 * @category Object
44510 * @param {Object} object The source object.
44511 * @param {Function} [predicate=_.identity] The function invoked per property.
44512 * @returns {Object} Returns the new object.
44513 * @example
44514 *
44515 * var object = { 'a': 1, 'b': '2', 'c': 3 };
44516 *
44517 * _.omitBy(object, _.isNumber);
44518 * // => { 'b': '2' }
44519 */
44520 function omitBy(object, predicate) {
44521 return pickBy(object, negate(getIteratee(predicate)));
44522 }
44523
44524 /**
44525 * Creates an object composed of the picked `object` properties.
44526 *
44527 * @static
44528 * @since 0.1.0
44529 * @memberOf _
44530 * @category Object
44531 * @param {Object} object The source object.
44532 * @param {...(string|string[])} [paths] The property paths to pick.
44533 * @returns {Object} Returns the new object.
44534 * @example
44535 *
44536 * var object = { 'a': 1, 'b': '2', 'c': 3 };
44537 *
44538 * _.pick(object, ['a', 'c']);
44539 * // => { 'a': 1, 'c': 3 }
44540 */
44541 var pick = flatRest(function(object, paths) {
44542 return object == null ? {} : basePick(object, paths);
44543 });
44544
44545 /**
44546 * Creates an object composed of the `object` properties `predicate` returns
44547 * truthy for. The predicate is invoked with two arguments: (value, key).
44548 *
44549 * @static
44550 * @memberOf _
44551 * @since 4.0.0
44552 * @category Object
44553 * @param {Object} object The source object.
44554 * @param {Function} [predicate=_.identity] The function invoked per property.
44555 * @returns {Object} Returns the new object.
44556 * @example
44557 *
44558 * var object = { 'a': 1, 'b': '2', 'c': 3 };
44559 *
44560 * _.pickBy(object, _.isNumber);
44561 * // => { 'a': 1, 'c': 3 }
44562 */
44563 function pickBy(object, predicate) {
44564 if (object == null) {
44565 return {};
44566 }
44567 var props = arrayMap(getAllKeysIn(object), function(prop) {
44568 return [prop];
44569 });
44570 predicate = getIteratee(predicate);
44571 return basePickBy(object, props, function(value, path) {
44572 return predicate(value, path[0]);
44573 });
44574 }
44575
44576 /**
44577 * This method is like `_.get` except that if the resolved value is a
44578 * function it's invoked with the `this` binding of its parent object and
44579 * its result is returned.
44580 *
44581 * @static
44582 * @since 0.1.0
44583 * @memberOf _
44584 * @category Object
44585 * @param {Object} object The object to query.
44586 * @param {Array|string} path The path of the property to resolve.
44587 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
44588 * @returns {*} Returns the resolved value.
44589 * @example
44590 *
44591 * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };
44592 *
44593 * _.result(object, 'a[0].b.c1');
44594 * // => 3
44595 *
44596 * _.result(object, 'a[0].b.c2');
44597 * // => 4
44598 *
44599 * _.result(object, 'a[0].b.c3', 'default');
44600 * // => 'default'
44601 *
44602 * _.result(object, 'a[0].b.c3', _.constant('default'));
44603 * // => 'default'
44604 */
44605 function result(object, path, defaultValue) {
44606 path = castPath(path, object);
44607
44608 var index = -1,
44609 length = path.length;
44610
44611 // Ensure the loop is entered when path is empty.
44612 if (!length) {
44613 length = 1;
44614 object = undefined;
44615 }
44616 while (++index < length) {
44617 var value = object == null ? undefined : object[toKey(path[index])];
44618 if (value === undefined) {
44619 index = length;
44620 value = defaultValue;
44621 }
44622 object = isFunction(value) ? value.call(object) : value;
44623 }
44624 return object;
44625 }
44626
44627 /**
44628 * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
44629 * it's created. Arrays are created for missing index properties while objects
44630 * are created for all other missing properties. Use `_.setWith` to customize
44631 * `path` creation.
44632 *
44633 * **Note:** This method mutates `object`.
44634 *
44635 * @static
44636 * @memberOf _
44637 * @since 3.7.0
44638 * @category Object
44639 * @param {Object} object The object to modify.
44640 * @param {Array|string} path The path of the property to set.
44641 * @param {*} value The value to set.
44642 * @returns {Object} Returns `object`.
44643 * @example
44644 *
44645 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
44646 *
44647 * _.set(object, 'a[0].b.c', 4);
44648 * console.log(object.a[0].b.c);
44649 * // => 4
44650 *
44651 * _.set(object, ['x', '0', 'y', 'z'], 5);
44652 * console.log(object.x[0].y.z);
44653 * // => 5
44654 */
44655 function set(object, path, value) {
44656 return object == null ? object : baseSet(object, path, value);
44657 }
44658
44659 /**
44660 * This method is like `_.set` except that it accepts `customizer` which is
44661 * invoked to produce the objects of `path`. If `customizer` returns `undefined`
44662 * path creation is handled by the method instead. The `customizer` is invoked
44663 * with three arguments: (nsValue, key, nsObject).
44664 *
44665 * **Note:** This method mutates `object`.
44666 *
44667 * @static
44668 * @memberOf _
44669 * @since 4.0.0
44670 * @category Object
44671 * @param {Object} object The object to modify.
44672 * @param {Array|string} path The path of the property to set.
44673 * @param {*} value The value to set.
44674 * @param {Function} [customizer] The function to customize assigned values.
44675 * @returns {Object} Returns `object`.
44676 * @example
44677 *
44678 * var object = {};
44679 *
44680 * _.setWith(object, '[0][1]', 'a', Object);
44681 * // => { '0': { '1': 'a' } }
44682 */
44683 function setWith(object, path, value, customizer) {
44684 customizer = typeof customizer == 'function' ? customizer : undefined;
44685 return object == null ? object : baseSet(object, path, value, customizer);
44686 }
44687
44688 /**
44689 * Creates an array of own enumerable string keyed-value pairs for `object`
44690 * which can be consumed by `_.fromPairs`. If `object` is a map or set, its
44691 * entries are returned.
44692 *
44693 * @static
44694 * @memberOf _
44695 * @since 4.0.0
44696 * @alias entries
44697 * @category Object
44698 * @param {Object} object The object to query.
44699 * @returns {Array} Returns the key-value pairs.
44700 * @example
44701 *
44702 * function Foo() {
44703 * this.a = 1;
44704 * this.b = 2;
44705 * }
44706 *
44707 * Foo.prototype.c = 3;
44708 *
44709 * _.toPairs(new Foo);
44710 * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
44711 */
44712 var toPairs = createToPairs(keys);
44713
44714 /**
44715 * Creates an array of own and inherited enumerable string keyed-value pairs
44716 * for `object` which can be consumed by `_.fromPairs`. If `object` is a map
44717 * or set, its entries are returned.
44718 *
44719 * @static
44720 * @memberOf _
44721 * @since 4.0.0
44722 * @alias entriesIn
44723 * @category Object
44724 * @param {Object} object The object to query.
44725 * @returns {Array} Returns the key-value pairs.
44726 * @example
44727 *
44728 * function Foo() {
44729 * this.a = 1;
44730 * this.b = 2;
44731 * }
44732 *
44733 * Foo.prototype.c = 3;
44734 *
44735 * _.toPairsIn(new Foo);
44736 * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)
44737 */
44738 var toPairsIn = createToPairs(keysIn);
44739
44740 /**
44741 * An alternative to `_.reduce`; this method transforms `object` to a new
44742 * `accumulator` object which is the result of running each of its own
44743 * enumerable string keyed properties thru `iteratee`, with each invocation
44744 * potentially mutating the `accumulator` object. If `accumulator` is not
44745 * provided, a new object with the same `[[Prototype]]` will be used. The
44746 * iteratee is invoked with four arguments: (accumulator, value, key, object).
44747 * Iteratee functions may exit iteration early by explicitly returning `false`.
44748 *
44749 * @static
44750 * @memberOf _
44751 * @since 1.3.0
44752 * @category Object
44753 * @param {Object} object The object to iterate over.
44754 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
44755 * @param {*} [accumulator] The custom accumulator value.
44756 * @returns {*} Returns the accumulated value.
44757 * @example
44758 *
44759 * _.transform([2, 3, 4], function(result, n) {
44760 * result.push(n *= n);
44761 * return n % 2 == 0;
44762 * }, []);
44763 * // => [4, 9]
44764 *
44765 * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
44766 * (result[value] || (result[value] = [])).push(key);
44767 * }, {});
44768 * // => { '1': ['a', 'c'], '2': ['b'] }
44769 */
44770 function transform(object, iteratee, accumulator) {
44771 var isArr = isArray(object),
44772 isArrLike = isArr || isBuffer(object) || isTypedArray(object);
44773
44774 iteratee = getIteratee(iteratee, 4);
44775 if (accumulator == null) {
44776 var Ctor = object && object.constructor;
44777 if (isArrLike) {
44778 accumulator = isArr ? new Ctor : [];
44779 }
44780 else if (isObject(object)) {
44781 accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
44782 }
44783 else {
44784 accumulator = {};
44785 }
44786 }
44787 (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {
44788 return iteratee(accumulator, value, index, object);
44789 });
44790 return accumulator;
44791 }
44792
44793 /**
44794 * Removes the property at `path` of `object`.
44795 *
44796 * **Note:** This method mutates `object`.
44797 *
44798 * @static
44799 * @memberOf _
44800 * @since 4.0.0
44801 * @category Object
44802 * @param {Object} object The object to modify.
44803 * @param {Array|string} path The path of the property to unset.
44804 * @returns {boolean} Returns `true` if the property is deleted, else `false`.
44805 * @example
44806 *
44807 * var object = { 'a': [{ 'b': { 'c': 7 } }] };
44808 * _.unset(object, 'a[0].b.c');
44809 * // => true
44810 *
44811 * console.log(object);
44812 * // => { 'a': [{ 'b': {} }] };
44813 *
44814 * _.unset(object, ['a', '0', 'b', 'c']);
44815 * // => true
44816 *
44817 * console.log(object);
44818 * // => { 'a': [{ 'b': {} }] };
44819 */
44820 function unset(object, path) {
44821 return object == null ? true : baseUnset(object, path);
44822 }
44823
44824 /**
44825 * This method is like `_.set` except that accepts `updater` to produce the
44826 * value to set. Use `_.updateWith` to customize `path` creation. The `updater`
44827 * is invoked with one argument: (value).
44828 *
44829 * **Note:** This method mutates `object`.
44830 *
44831 * @static
44832 * @memberOf _
44833 * @since 4.6.0
44834 * @category Object
44835 * @param {Object} object The object to modify.
44836 * @param {Array|string} path The path of the property to set.
44837 * @param {Function} updater The function to produce the updated value.
44838 * @returns {Object} Returns `object`.
44839 * @example
44840 *
44841 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
44842 *
44843 * _.update(object, 'a[0].b.c', function(n) { return n * n; });
44844 * console.log(object.a[0].b.c);
44845 * // => 9
44846 *
44847 * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
44848 * console.log(object.x[0].y.z);
44849 * // => 0
44850 */
44851 function update(object, path, updater) {
44852 return object == null ? object : baseUpdate(object, path, castFunction(updater));
44853 }
44854
44855 /**
44856 * This method is like `_.update` except that it accepts `customizer` which is
44857 * invoked to produce the objects of `path`. If `customizer` returns `undefined`
44858 * path creation is handled by the method instead. The `customizer` is invoked
44859 * with three arguments: (nsValue, key, nsObject).
44860 *
44861 * **Note:** This method mutates `object`.
44862 *
44863 * @static
44864 * @memberOf _
44865 * @since 4.6.0
44866 * @category Object
44867 * @param {Object} object The object to modify.
44868 * @param {Array|string} path The path of the property to set.
44869 * @param {Function} updater The function to produce the updated value.
44870 * @param {Function} [customizer] The function to customize assigned values.
44871 * @returns {Object} Returns `object`.
44872 * @example
44873 *
44874 * var object = {};
44875 *
44876 * _.updateWith(object, '[0][1]', _.constant('a'), Object);
44877 * // => { '0': { '1': 'a' } }
44878 */
44879 function updateWith(object, path, updater, customizer) {
44880 customizer = typeof customizer == 'function' ? customizer : undefined;
44881 return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);
44882 }
44883
44884 /**
44885 * Creates an array of the own enumerable string keyed property values of `object`.
44886 *
44887 * **Note:** Non-object values are coerced to objects.
44888 *
44889 * @static
44890 * @since 0.1.0
44891 * @memberOf _
44892 * @category Object
44893 * @param {Object} object The object to query.
44894 * @returns {Array} Returns the array of property values.
44895 * @example
44896 *
44897 * function Foo() {
44898 * this.a = 1;
44899 * this.b = 2;
44900 * }
44901 *
44902 * Foo.prototype.c = 3;
44903 *
44904 * _.values(new Foo);
44905 * // => [1, 2] (iteration order is not guaranteed)
44906 *
44907 * _.values('hi');
44908 * // => ['h', 'i']
44909 */
44910 function values(object) {
44911 return object == null ? [] : baseValues(object, keys(object));
44912 }
44913
44914 /**
44915 * Creates an array of the own and inherited enumerable string keyed property
44916 * values of `object`.
44917 *
44918 * **Note:** Non-object values are coerced to objects.
44919 *
44920 * @static
44921 * @memberOf _
44922 * @since 3.0.0
44923 * @category Object
44924 * @param {Object} object The object to query.
44925 * @returns {Array} Returns the array of property values.
44926 * @example
44927 *
44928 * function Foo() {
44929 * this.a = 1;
44930 * this.b = 2;
44931 * }
44932 *
44933 * Foo.prototype.c = 3;
44934 *
44935 * _.valuesIn(new Foo);
44936 * // => [1, 2, 3] (iteration order is not guaranteed)
44937 */
44938 function valuesIn(object) {
44939 return object == null ? [] : baseValues(object, keysIn(object));
44940 }
44941
44942 /*------------------------------------------------------------------------*/
44943
44944 /**
44945 * Clamps `number` within the inclusive `lower` and `upper` bounds.
44946 *
44947 * @static
44948 * @memberOf _
44949 * @since 4.0.0
44950 * @category Number
44951 * @param {number} number The number to clamp.
44952 * @param {number} [lower] The lower bound.
44953 * @param {number} upper The upper bound.
44954 * @returns {number} Returns the clamped number.
44955 * @example
44956 *
44957 * _.clamp(-10, -5, 5);
44958 * // => -5
44959 *
44960 * _.clamp(10, -5, 5);
44961 * // => 5
44962 */
44963 function clamp(number, lower, upper) {
44964 if (upper === undefined) {
44965 upper = lower;
44966 lower = undefined;
44967 }
44968 if (upper !== undefined) {
44969 upper = toNumber(upper);
44970 upper = upper === upper ? upper : 0;
44971 }
44972 if (lower !== undefined) {
44973 lower = toNumber(lower);
44974 lower = lower === lower ? lower : 0;
44975 }
44976 return baseClamp(toNumber(number), lower, upper);
44977 }
44978
44979 /**
44980 * Checks if `n` is between `start` and up to, but not including, `end`. If
44981 * `end` is not specified, it's set to `start` with `start` then set to `0`.
44982 * If `start` is greater than `end` the params are swapped to support
44983 * negative ranges.
44984 *
44985 * @static
44986 * @memberOf _
44987 * @since 3.3.0
44988 * @category Number
44989 * @param {number} number The number to check.
44990 * @param {number} [start=0] The start of the range.
44991 * @param {number} end The end of the range.
44992 * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
44993 * @see _.range, _.rangeRight
44994 * @example
44995 *
44996 * _.inRange(3, 2, 4);
44997 * // => true
44998 *
44999 * _.inRange(4, 8);
45000 * // => true
45001 *
45002 * _.inRange(4, 2);
45003 * // => false
45004 *
45005 * _.inRange(2, 2);
45006 * // => false
45007 *
45008 * _.inRange(1.2, 2);
45009 * // => true
45010 *
45011 * _.inRange(5.2, 4);
45012 * // => false
45013 *
45014 * _.inRange(-3, -2, -6);
45015 * // => true
45016 */
45017 function inRange(number, start, end) {
45018 start = toFinite(start);
45019 if (end === undefined) {
45020 end = start;
45021 start = 0;
45022 } else {
45023 end = toFinite(end);
45024 }
45025 number = toNumber(number);
45026 return baseInRange(number, start, end);
45027 }
45028
45029 /**
45030 * Produces a random number between the inclusive `lower` and `upper` bounds.
45031 * If only one argument is provided a number between `0` and the given number
45032 * is returned. If `floating` is `true`, or either `lower` or `upper` are
45033 * floats, a floating-point number is returned instead of an integer.
45034 *
45035 * **Note:** JavaScript follows the IEEE-754 standard for resolving
45036 * floating-point values which can produce unexpected results.
45037 *
45038 * @static
45039 * @memberOf _
45040 * @since 0.7.0
45041 * @category Number
45042 * @param {number} [lower=0] The lower bound.
45043 * @param {number} [upper=1] The upper bound.
45044 * @param {boolean} [floating] Specify returning a floating-point number.
45045 * @returns {number} Returns the random number.
45046 * @example
45047 *
45048 * _.random(0, 5);
45049 * // => an integer between 0 and 5
45050 *
45051 * _.random(5);
45052 * // => also an integer between 0 and 5
45053 *
45054 * _.random(5, true);
45055 * // => a floating-point number between 0 and 5
45056 *
45057 * _.random(1.2, 5.2);
45058 * // => a floating-point number between 1.2 and 5.2
45059 */
45060 function random(lower, upper, floating) {
45061 if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {
45062 upper = floating = undefined;
45063 }
45064 if (floating === undefined) {
45065 if (typeof upper == 'boolean') {
45066 floating = upper;
45067 upper = undefined;
45068 }
45069 else if (typeof lower == 'boolean') {
45070 floating = lower;
45071 lower = undefined;
45072 }
45073 }
45074 if (lower === undefined && upper === undefined) {
45075 lower = 0;
45076 upper = 1;
45077 }
45078 else {
45079 lower = toFinite(lower);
45080 if (upper === undefined) {
45081 upper = lower;
45082 lower = 0;
45083 } else {
45084 upper = toFinite(upper);
45085 }
45086 }
45087 if (lower > upper) {
45088 var temp = lower;
45089 lower = upper;
45090 upper = temp;
45091 }
45092 if (floating || lower % 1 || upper % 1) {
45093 var rand = nativeRandom();
45094 return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);
45095 }
45096 return baseRandom(lower, upper);
45097 }
45098
45099 /*------------------------------------------------------------------------*/
45100
45101 /**
45102 * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).
45103 *
45104 * @static
45105 * @memberOf _
45106 * @since 3.0.0
45107 * @category String
45108 * @param {string} [string=''] The string to convert.
45109 * @returns {string} Returns the camel cased string.
45110 * @example
45111 *
45112 * _.camelCase('Foo Bar');
45113 * // => 'fooBar'
45114 *
45115 * _.camelCase('--foo-bar--');
45116 * // => 'fooBar'
45117 *
45118 * _.camelCase('__FOO_BAR__');
45119 * // => 'fooBar'
45120 */
45121 var camelCase = createCompounder(function(result, word, index) {
45122 word = word.toLowerCase();
45123 return result + (index ? capitalize(word) : word);
45124 });
45125
45126 /**
45127 * Converts the first character of `string` to upper case and the remaining
45128 * to lower case.
45129 *
45130 * @static
45131 * @memberOf _
45132 * @since 3.0.0
45133 * @category String
45134 * @param {string} [string=''] The string to capitalize.
45135 * @returns {string} Returns the capitalized string.
45136 * @example
45137 *
45138 * _.capitalize('FRED');
45139 * // => 'Fred'
45140 */
45141 function capitalize(string) {
45142 return upperFirst(toString(string).toLowerCase());
45143 }
45144
45145 /**
45146 * Deburrs `string` by converting
45147 * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
45148 * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)
45149 * letters to basic Latin letters and removing
45150 * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
45151 *
45152 * @static
45153 * @memberOf _
45154 * @since 3.0.0
45155 * @category String
45156 * @param {string} [string=''] The string to deburr.
45157 * @returns {string} Returns the deburred string.
45158 * @example
45159 *
45160 * _.deburr('déjà vu');
45161 * // => 'deja vu'
45162 */
45163 function deburr(string) {
45164 string = toString(string);
45165 return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');
45166 }
45167
45168 /**
45169 * Checks if `string` ends with the given target string.
45170 *
45171 * @static
45172 * @memberOf _
45173 * @since 3.0.0
45174 * @category String
45175 * @param {string} [string=''] The string to inspect.
45176 * @param {string} [target] The string to search for.
45177 * @param {number} [position=string.length] The position to search up to.
45178 * @returns {boolean} Returns `true` if `string` ends with `target`,
45179 * else `false`.
45180 * @example
45181 *
45182 * _.endsWith('abc', 'c');
45183 * // => true
45184 *
45185 * _.endsWith('abc', 'b');
45186 * // => false
45187 *
45188 * _.endsWith('abc', 'b', 2);
45189 * // => true
45190 */
45191 function endsWith(string, target, position) {
45192 string = toString(string);
45193 target = baseToString(target);
45194
45195 var length = string.length;
45196 position = position === undefined
45197 ? length
45198 : baseClamp(toInteger(position), 0, length);
45199
45200 var end = position;
45201 position -= target.length;
45202 return position >= 0 && string.slice(position, end) == target;
45203 }
45204
45205 /**
45206 * Converts the characters "&", "<", ">", '"', and "'" in `string` to their
45207 * corresponding HTML entities.
45208 *
45209 * **Note:** No other characters are escaped. To escape additional
45210 * characters use a third-party library like [_he_](https://mths.be/he).
45211 *
45212 * Though the ">" character is escaped for symmetry, characters like
45213 * ">" and "/" don't need escaping in HTML and have no special meaning
45214 * unless they're part of a tag or unquoted attribute value. See
45215 * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)
45216 * (under "semi-related fun fact") for more details.
45217 *
45218 * When working with HTML you should always
45219 * [quote attribute values](http://wonko.com/post/html-escaping) to reduce
45220 * XSS vectors.
45221 *
45222 * @static
45223 * @since 0.1.0
45224 * @memberOf _
45225 * @category String
45226 * @param {string} [string=''] The string to escape.
45227 * @returns {string} Returns the escaped string.
45228 * @example
45229 *
45230 * _.escape('fred, barney, & pebbles');
45231 * // => 'fred, barney, &amp; pebbles'
45232 */
45233 function escape(string) {
45234 string = toString(string);
45235 return (string && reHasUnescapedHtml.test(string))
45236 ? string.replace(reUnescapedHtml, escapeHtmlChar)
45237 : string;
45238 }
45239
45240 /**
45241 * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
45242 * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
45243 *
45244 * @static
45245 * @memberOf _
45246 * @since 3.0.0
45247 * @category String
45248 * @param {string} [string=''] The string to escape.
45249 * @returns {string} Returns the escaped string.
45250 * @example
45251 *
45252 * _.escapeRegExp('[lodash](https://lodash.com/)');
45253 * // => '\[lodash\]\(https://lodash\.com/\)'
45254 */
45255 function escapeRegExp(string) {
45256 string = toString(string);
45257 return (string && reHasRegExpChar.test(string))
45258 ? string.replace(reRegExpChar, '\\$&')
45259 : string;
45260 }
45261
45262 /**
45263 * Converts `string` to
45264 * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
45265 *
45266 * @static
45267 * @memberOf _
45268 * @since 3.0.0
45269 * @category String
45270 * @param {string} [string=''] The string to convert.
45271 * @returns {string} Returns the kebab cased string.
45272 * @example
45273 *
45274 * _.kebabCase('Foo Bar');
45275 * // => 'foo-bar'
45276 *
45277 * _.kebabCase('fooBar');
45278 * // => 'foo-bar'
45279 *
45280 * _.kebabCase('__FOO_BAR__');
45281 * // => 'foo-bar'
45282 */
45283 var kebabCase = createCompounder(function(result, word, index) {
45284 return result + (index ? '-' : '') + word.toLowerCase();
45285 });
45286
45287 /**
45288 * Converts `string`, as space separated words, to lower case.
45289 *
45290 * @static
45291 * @memberOf _
45292 * @since 4.0.0
45293 * @category String
45294 * @param {string} [string=''] The string to convert.
45295 * @returns {string} Returns the lower cased string.
45296 * @example
45297 *
45298 * _.lowerCase('--Foo-Bar--');
45299 * // => 'foo bar'
45300 *
45301 * _.lowerCase('fooBar');
45302 * // => 'foo bar'
45303 *
45304 * _.lowerCase('__FOO_BAR__');
45305 * // => 'foo bar'
45306 */
45307 var lowerCase = createCompounder(function(result, word, index) {
45308 return result + (index ? ' ' : '') + word.toLowerCase();
45309 });
45310
45311 /**
45312 * Converts the first character of `string` to lower case.
45313 *
45314 * @static
45315 * @memberOf _
45316 * @since 4.0.0
45317 * @category String
45318 * @param {string} [string=''] The string to convert.
45319 * @returns {string} Returns the converted string.
45320 * @example
45321 *
45322 * _.lowerFirst('Fred');
45323 * // => 'fred'
45324 *
45325 * _.lowerFirst('FRED');
45326 * // => 'fRED'
45327 */
45328 var lowerFirst = createCaseFirst('toLowerCase');
45329
45330 /**
45331 * Pads `string` on the left and right sides if it's shorter than `length`.
45332 * Padding characters are truncated if they can't be evenly divided by `length`.
45333 *
45334 * @static
45335 * @memberOf _
45336 * @since 3.0.0
45337 * @category String
45338 * @param {string} [string=''] The string to pad.
45339 * @param {number} [length=0] The padding length.
45340 * @param {string} [chars=' '] The string used as padding.
45341 * @returns {string} Returns the padded string.
45342 * @example
45343 *
45344 * _.pad('abc', 8);
45345 * // => ' abc '
45346 *
45347 * _.pad('abc', 8, '_-');
45348 * // => '_-abc_-_'
45349 *
45350 * _.pad('abc', 3);
45351 * // => 'abc'
45352 */
45353 function pad(string, length, chars) {
45354 string = toString(string);
45355 length = toInteger(length);
45356
45357 var strLength = length ? stringSize(string) : 0;
45358 if (!length || strLength >= length) {
45359 return string;
45360 }
45361 var mid = (length - strLength) / 2;
45362 return (
45363 createPadding(nativeFloor(mid), chars) +
45364 string +
45365 createPadding(nativeCeil(mid), chars)
45366 );
45367 }
45368
45369 /**
45370 * Pads `string` on the right side if it's shorter than `length`. Padding
45371 * characters are truncated if they exceed `length`.
45372 *
45373 * @static
45374 * @memberOf _
45375 * @since 4.0.0
45376 * @category String
45377 * @param {string} [string=''] The string to pad.
45378 * @param {number} [length=0] The padding length.
45379 * @param {string} [chars=' '] The string used as padding.
45380 * @returns {string} Returns the padded string.
45381 * @example
45382 *
45383 * _.padEnd('abc', 6);
45384 * // => 'abc '
45385 *
45386 * _.padEnd('abc', 6, '_-');
45387 * // => 'abc_-_'
45388 *
45389 * _.padEnd('abc', 3);
45390 * // => 'abc'
45391 */
45392 function padEnd(string, length, chars) {
45393 string = toString(string);
45394 length = toInteger(length);
45395
45396 var strLength = length ? stringSize(string) : 0;
45397 return (length && strLength < length)
45398 ? (string + createPadding(length - strLength, chars))
45399 : string;
45400 }
45401
45402 /**
45403 * Pads `string` on the left side if it's shorter than `length`. Padding
45404 * characters are truncated if they exceed `length`.
45405 *
45406 * @static
45407 * @memberOf _
45408 * @since 4.0.0
45409 * @category String
45410 * @param {string} [string=''] The string to pad.
45411 * @param {number} [length=0] The padding length.
45412 * @param {string} [chars=' '] The string used as padding.
45413 * @returns {string} Returns the padded string.
45414 * @example
45415 *
45416 * _.padStart('abc', 6);
45417 * // => ' abc'
45418 *
45419 * _.padStart('abc', 6, '_-');
45420 * // => '_-_abc'
45421 *
45422 * _.padStart('abc', 3);
45423 * // => 'abc'
45424 */
45425 function padStart(string, length, chars) {
45426 string = toString(string);
45427 length = toInteger(length);
45428
45429 var strLength = length ? stringSize(string) : 0;
45430 return (length && strLength < length)
45431 ? (createPadding(length - strLength, chars) + string)
45432 : string;
45433 }
45434
45435 /**
45436 * Converts `string` to an integer of the specified radix. If `radix` is
45437 * `undefined` or `0`, a `radix` of `10` is used unless `value` is a
45438 * hexadecimal, in which case a `radix` of `16` is used.
45439 *
45440 * **Note:** This method aligns with the
45441 * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.
45442 *
45443 * @static
45444 * @memberOf _
45445 * @since 1.1.0
45446 * @category String
45447 * @param {string} string The string to convert.
45448 * @param {number} [radix=10] The radix to interpret `value` by.
45449 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
45450 * @returns {number} Returns the converted integer.
45451 * @example
45452 *
45453 * _.parseInt('08');
45454 * // => 8
45455 *
45456 * _.map(['6', '08', '10'], _.parseInt);
45457 * // => [6, 8, 10]
45458 */
45459 function parseInt(string, radix, guard) {
45460 if (guard || radix == null) {
45461 radix = 0;
45462 } else if (radix) {
45463 radix = +radix;
45464 }
45465 return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);
45466 }
45467
45468 /**
45469 * Repeats the given string `n` times.
45470 *
45471 * @static
45472 * @memberOf _
45473 * @since 3.0.0
45474 * @category String
45475 * @param {string} [string=''] The string to repeat.
45476 * @param {number} [n=1] The number of times to repeat the string.
45477 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
45478 * @returns {string} Returns the repeated string.
45479 * @example
45480 *
45481 * _.repeat('*', 3);
45482 * // => '***'
45483 *
45484 * _.repeat('abc', 2);
45485 * // => 'abcabc'
45486 *
45487 * _.repeat('abc', 0);
45488 * // => ''
45489 */
45490 function repeat(string, n, guard) {
45491 if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {
45492 n = 1;
45493 } else {
45494 n = toInteger(n);
45495 }
45496 return baseRepeat(toString(string), n);
45497 }
45498
45499 /**
45500 * Replaces matches for `pattern` in `string` with `replacement`.
45501 *
45502 * **Note:** This method is based on
45503 * [`String#replace`](https://mdn.io/String/replace).
45504 *
45505 * @static
45506 * @memberOf _
45507 * @since 4.0.0
45508 * @category String
45509 * @param {string} [string=''] The string to modify.
45510 * @param {RegExp|string} pattern The pattern to replace.
45511 * @param {Function|string} replacement The match replacement.
45512 * @returns {string} Returns the modified string.
45513 * @example
45514 *
45515 * _.replace('Hi Fred', 'Fred', 'Barney');
45516 * // => 'Hi Barney'
45517 */
45518 function replace() {
45519 var args = arguments,
45520 string = toString(args[0]);
45521
45522 return args.length < 3 ? string : string.replace(args[1], args[2]);
45523 }
45524
45525 /**
45526 * Converts `string` to
45527 * [snake case](https://en.wikipedia.org/wiki/Snake_case).
45528 *
45529 * @static
45530 * @memberOf _
45531 * @since 3.0.0
45532 * @category String
45533 * @param {string} [string=''] The string to convert.
45534 * @returns {string} Returns the snake cased string.
45535 * @example
45536 *
45537 * _.snakeCase('Foo Bar');
45538 * // => 'foo_bar'
45539 *
45540 * _.snakeCase('fooBar');
45541 * // => 'foo_bar'
45542 *
45543 * _.snakeCase('--FOO-BAR--');
45544 * // => 'foo_bar'
45545 */
45546 var snakeCase = createCompounder(function(result, word, index) {
45547 return result + (index ? '_' : '') + word.toLowerCase();
45548 });
45549
45550 /**
45551 * Splits `string` by `separator`.
45552 *
45553 * **Note:** This method is based on
45554 * [`String#split`](https://mdn.io/String/split).
45555 *
45556 * @static
45557 * @memberOf _
45558 * @since 4.0.0
45559 * @category String
45560 * @param {string} [string=''] The string to split.
45561 * @param {RegExp|string} separator The separator pattern to split by.
45562 * @param {number} [limit] The length to truncate results to.
45563 * @returns {Array} Returns the string segments.
45564 * @example
45565 *
45566 * _.split('a-b-c', '-', 2);
45567 * // => ['a', 'b']
45568 */
45569 function split(string, separator, limit) {
45570 if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {
45571 separator = limit = undefined;
45572 }
45573 limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;
45574 if (!limit) {
45575 return [];
45576 }
45577 string = toString(string);
45578 if (string && (
45579 typeof separator == 'string' ||
45580 (separator != null && !isRegExp(separator))
45581 )) {
45582 separator = baseToString(separator);
45583 if (!separator && hasUnicode(string)) {
45584 return castSlice(stringToArray(string), 0, limit);
45585 }
45586 }
45587 return string.split(separator, limit);
45588 }
45589
45590 /**
45591 * Converts `string` to
45592 * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
45593 *
45594 * @static
45595 * @memberOf _
45596 * @since 3.1.0
45597 * @category String
45598 * @param {string} [string=''] The string to convert.
45599 * @returns {string} Returns the start cased string.
45600 * @example
45601 *
45602 * _.startCase('--foo-bar--');
45603 * // => 'Foo Bar'
45604 *
45605 * _.startCase('fooBar');
45606 * // => 'Foo Bar'
45607 *
45608 * _.startCase('__FOO_BAR__');
45609 * // => 'FOO BAR'
45610 */
45611 var startCase = createCompounder(function(result, word, index) {
45612 return result + (index ? ' ' : '') + upperFirst(word);
45613 });
45614
45615 /**
45616 * Checks if `string` starts with the given target string.
45617 *
45618 * @static
45619 * @memberOf _
45620 * @since 3.0.0
45621 * @category String
45622 * @param {string} [string=''] The string to inspect.
45623 * @param {string} [target] The string to search for.
45624 * @param {number} [position=0] The position to search from.
45625 * @returns {boolean} Returns `true` if `string` starts with `target`,
45626 * else `false`.
45627 * @example
45628 *
45629 * _.startsWith('abc', 'a');
45630 * // => true
45631 *
45632 * _.startsWith('abc', 'b');
45633 * // => false
45634 *
45635 * _.startsWith('abc', 'b', 1);
45636 * // => true
45637 */
45638 function startsWith(string, target, position) {
45639 string = toString(string);
45640 position = position == null
45641 ? 0
45642 : baseClamp(toInteger(position), 0, string.length);
45643
45644 target = baseToString(target);
45645 return string.slice(position, position + target.length) == target;
45646 }
45647
45648 /**
45649 * Creates a compiled template function that can interpolate data properties
45650 * in "interpolate" delimiters, HTML-escape interpolated data properties in
45651 * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data
45652 * properties may be accessed as free variables in the template. If a setting
45653 * object is given, it takes precedence over `_.templateSettings` values.
45654 *
45655 * **Note:** In the development build `_.template` utilizes
45656 * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
45657 * for easier debugging.
45658 *
45659 * For more information on precompiling templates see
45660 * [lodash's custom builds documentation](https://lodash.com/custom-builds).
45661 *
45662 * For more information on Chrome extension sandboxes see
45663 * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
45664 *
45665 * @static
45666 * @since 0.1.0
45667 * @memberOf _
45668 * @category String
45669 * @param {string} [string=''] The template string.
45670 * @param {Object} [options={}] The options object.
45671 * @param {RegExp} [options.escape=_.templateSettings.escape]
45672 * The HTML "escape" delimiter.
45673 * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]
45674 * The "evaluate" delimiter.
45675 * @param {Object} [options.imports=_.templateSettings.imports]
45676 * An object to import into the template as free variables.
45677 * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]
45678 * The "interpolate" delimiter.
45679 * @param {string} [options.sourceURL='lodash.templateSources[n]']
45680 * The sourceURL of the compiled template.
45681 * @param {string} [options.variable='obj']
45682 * The data object variable name.
45683 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
45684 * @returns {Function} Returns the compiled template function.
45685 * @example
45686 *
45687 * // Use the "interpolate" delimiter to create a compiled template.
45688 * var compiled = _.template('hello <%= user %>!');
45689 * compiled({ 'user': 'fred' });
45690 * // => 'hello fred!'
45691 *
45692 * // Use the HTML "escape" delimiter to escape data property values.
45693 * var compiled = _.template('<b><%- value %></b>');
45694 * compiled({ 'value': '<script>' });
45695 * // => '<b>&lt;script&gt;</b>'
45696 *
45697 * // Use the "evaluate" delimiter to execute JavaScript and generate HTML.
45698 * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
45699 * compiled({ 'users': ['fred', 'barney'] });
45700 * // => '<li>fred</li><li>barney</li>'
45701 *
45702 * // Use the internal `print` function in "evaluate" delimiters.
45703 * var compiled = _.template('<% print("hello " + user); %>!');
45704 * compiled({ 'user': 'barney' });
45705 * // => 'hello barney!'
45706 *
45707 * // Use the ES template literal delimiter as an "interpolate" delimiter.
45708 * // Disable support by replacing the "interpolate" delimiter.
45709 * var compiled = _.template('hello ${ user }!');
45710 * compiled({ 'user': 'pebbles' });
45711 * // => 'hello pebbles!'
45712 *
45713 * // Use backslashes to treat delimiters as plain text.
45714 * var compiled = _.template('<%= "\\<%- value %\\>" %>');
45715 * compiled({ 'value': 'ignored' });
45716 * // => '<%- value %>'
45717 *
45718 * // Use the `imports` option to import `jQuery` as `jq`.
45719 * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
45720 * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
45721 * compiled({ 'users': ['fred', 'barney'] });
45722 * // => '<li>fred</li><li>barney</li>'
45723 *
45724 * // Use the `sourceURL` option to specify a custom sourceURL for the template.
45725 * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });
45726 * compiled(data);
45727 * // => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector.
45728 *
45729 * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.
45730 * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
45731 * compiled.source;
45732 * // => function(data) {
45733 * // var __t, __p = '';
45734 * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
45735 * // return __p;
45736 * // }
45737 *
45738 * // Use custom template delimiters.
45739 * _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
45740 * var compiled = _.template('hello {{ user }}!');
45741 * compiled({ 'user': 'mustache' });
45742 * // => 'hello mustache!'
45743 *
45744 * // Use the `source` property to inline compiled templates for meaningful
45745 * // line numbers in error messages and stack traces.
45746 * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
45747 * var JST = {\
45748 * "main": ' + _.template(mainText).source + '\
45749 * };\
45750 * ');
45751 */
45752 function template(string, options, guard) {
45753 // Based on John Resig's `tmpl` implementation
45754 // (http://ejohn.org/blog/javascript-micro-templating/)
45755 // and Laura Doktorova's doT.js (https://github.com/olado/doT).
45756 var settings = lodash.templateSettings;
45757
45758 if (guard && isIterateeCall(string, options, guard)) {
45759 options = undefined;
45760 }
45761 string = toString(string);
45762 options = assignInWith({}, options, settings, customDefaultsAssignIn);
45763
45764 var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
45765 importsKeys = keys(imports),
45766 importsValues = baseValues(imports, importsKeys);
45767
45768 var isEscaping,
45769 isEvaluating,
45770 index = 0,
45771 interpolate = options.interpolate || reNoMatch,
45772 source = "__p += '";
45773
45774 // Compile the regexp to match each delimiter.
45775 var reDelimiters = RegExp(
45776 (options.escape || reNoMatch).source + '|' +
45777 interpolate.source + '|' +
45778 (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +
45779 (options.evaluate || reNoMatch).source + '|$'
45780 , 'g');
45781
45782 // Use a sourceURL for easier debugging.
45783 // The sourceURL gets injected into the source that's eval-ed, so be careful
45784 // with lookup (in case of e.g. prototype pollution), and strip newlines if any.
45785 // A newline wouldn't be a valid sourceURL anyway, and it'd enable code injection.
45786 var sourceURL = '//# sourceURL=' +
45787 (hasOwnProperty.call(options, 'sourceURL')
45788 ? (options.sourceURL + '').replace(/[\r\n]/g, ' ')
45789 : ('lodash.templateSources[' + (++templateCounter) + ']')
45790 ) + '\n';
45791
45792 string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
45793 interpolateValue || (interpolateValue = esTemplateValue);
45794
45795 // Escape characters that can't be included in string literals.
45796 source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);
45797
45798 // Replace delimiters with snippets.
45799 if (escapeValue) {
45800 isEscaping = true;
45801 source += "' +\n__e(" + escapeValue + ") +\n'";
45802 }
45803 if (evaluateValue) {
45804 isEvaluating = true;
45805 source += "';\n" + evaluateValue + ";\n__p += '";
45806 }
45807 if (interpolateValue) {
45808 source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
45809 }
45810 index = offset + match.length;
45811
45812 // The JS engine embedded in Adobe products needs `match` returned in
45813 // order to produce the correct `offset` value.
45814 return match;
45815 });
45816
45817 source += "';\n";
45818
45819 // If `variable` is not specified wrap a with-statement around the generated
45820 // code to add the data object to the top of the scope chain.
45821 // Like with sourceURL, we take care to not check the option's prototype,
45822 // as this configuration is a code injection vector.
45823 var variable = hasOwnProperty.call(options, 'variable') && options.variable;
45824 if (!variable) {
45825 source = 'with (obj) {\n' + source + '\n}\n';
45826 }
45827 // Cleanup code by stripping empty strings.
45828 source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)
45829 .replace(reEmptyStringMiddle, '$1')
45830 .replace(reEmptyStringTrailing, '$1;');
45831
45832 // Frame code as the function body.
45833 source = 'function(' + (variable || 'obj') + ') {\n' +
45834 (variable
45835 ? ''
45836 : 'obj || (obj = {});\n'
45837 ) +
45838 "var __t, __p = ''" +
45839 (isEscaping
45840 ? ', __e = _.escape'
45841 : ''
45842 ) +
45843 (isEvaluating
45844 ? ', __j = Array.prototype.join;\n' +
45845 "function print() { __p += __j.call(arguments, '') }\n"
45846 : ';\n'
45847 ) +
45848 source +
45849 'return __p\n}';
45850
45851 var result = attempt(function() {
45852 return Function(importsKeys, sourceURL + 'return ' + source)
45853 .apply(undefined, importsValues);
45854 });
45855
45856 // Provide the compiled function's source by its `toString` method or
45857 // the `source` property as a convenience for inlining compiled templates.
45858 result.source = source;
45859 if (isError(result)) {
45860 throw result;
45861 }
45862 return result;
45863 }
45864
45865 /**
45866 * Converts `string`, as a whole, to lower case just like
45867 * [String#toLowerCase](https://mdn.io/toLowerCase).
45868 *
45869 * @static
45870 * @memberOf _
45871 * @since 4.0.0
45872 * @category String
45873 * @param {string} [string=''] The string to convert.
45874 * @returns {string} Returns the lower cased string.
45875 * @example
45876 *
45877 * _.toLower('--Foo-Bar--');
45878 * // => '--foo-bar--'
45879 *
45880 * _.toLower('fooBar');
45881 * // => 'foobar'
45882 *
45883 * _.toLower('__FOO_BAR__');
45884 * // => '__foo_bar__'
45885 */
45886 function toLower(value) {
45887 return toString(value).toLowerCase();
45888 }
45889
45890 /**
45891 * Converts `string`, as a whole, to upper case just like
45892 * [String#toUpperCase](https://mdn.io/toUpperCase).
45893 *
45894 * @static
45895 * @memberOf _
45896 * @since 4.0.0
45897 * @category String
45898 * @param {string} [string=''] The string to convert.
45899 * @returns {string} Returns the upper cased string.
45900 * @example
45901 *
45902 * _.toUpper('--foo-bar--');
45903 * // => '--FOO-BAR--'
45904 *
45905 * _.toUpper('fooBar');
45906 * // => 'FOOBAR'
45907 *
45908 * _.toUpper('__foo_bar__');
45909 * // => '__FOO_BAR__'
45910 */
45911 function toUpper(value) {
45912 return toString(value).toUpperCase();
45913 }
45914
45915 /**
45916 * Removes leading and trailing whitespace or specified characters from `string`.
45917 *
45918 * @static
45919 * @memberOf _
45920 * @since 3.0.0
45921 * @category String
45922 * @param {string} [string=''] The string to trim.
45923 * @param {string} [chars=whitespace] The characters to trim.
45924 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
45925 * @returns {string} Returns the trimmed string.
45926 * @example
45927 *
45928 * _.trim(' abc ');
45929 * // => 'abc'
45930 *
45931 * _.trim('-_-abc-_-', '_-');
45932 * // => 'abc'
45933 *
45934 * _.map([' foo ', ' bar '], _.trim);
45935 * // => ['foo', 'bar']
45936 */
45937 function trim(string, chars, guard) {
45938 string = toString(string);
45939 if (string && (guard || chars === undefined)) {
45940 return string.replace(reTrim, '');
45941 }
45942 if (!string || !(chars = baseToString(chars))) {
45943 return string;
45944 }
45945 var strSymbols = stringToArray(string),
45946 chrSymbols = stringToArray(chars),
45947 start = charsStartIndex(strSymbols, chrSymbols),
45948 end = charsEndIndex(strSymbols, chrSymbols) + 1;
45949
45950 return castSlice(strSymbols, start, end).join('');
45951 }
45952
45953 /**
45954 * Removes trailing whitespace or specified characters from `string`.
45955 *
45956 * @static
45957 * @memberOf _
45958 * @since 4.0.0
45959 * @category String
45960 * @param {string} [string=''] The string to trim.
45961 * @param {string} [chars=whitespace] The characters to trim.
45962 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
45963 * @returns {string} Returns the trimmed string.
45964 * @example
45965 *
45966 * _.trimEnd(' abc ');
45967 * // => ' abc'
45968 *
45969 * _.trimEnd('-_-abc-_-', '_-');
45970 * // => '-_-abc'
45971 */
45972 function trimEnd(string, chars, guard) {
45973 string = toString(string);
45974 if (string && (guard || chars === undefined)) {
45975 return string.replace(reTrimEnd, '');
45976 }
45977 if (!string || !(chars = baseToString(chars))) {
45978 return string;
45979 }
45980 var strSymbols = stringToArray(string),
45981 end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;
45982
45983 return castSlice(strSymbols, 0, end).join('');
45984 }
45985
45986 /**
45987 * Removes leading whitespace or specified characters from `string`.
45988 *
45989 * @static
45990 * @memberOf _
45991 * @since 4.0.0
45992 * @category String
45993 * @param {string} [string=''] The string to trim.
45994 * @param {string} [chars=whitespace] The characters to trim.
45995 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
45996 * @returns {string} Returns the trimmed string.
45997 * @example
45998 *
45999 * _.trimStart(' abc ');
46000 * // => 'abc '
46001 *
46002 * _.trimStart('-_-abc-_-', '_-');
46003 * // => 'abc-_-'
46004 */
46005 function trimStart(string, chars, guard) {
46006 string = toString(string);
46007 if (string && (guard || chars === undefined)) {
46008 return string.replace(reTrimStart, '');
46009 }
46010 if (!string || !(chars = baseToString(chars))) {
46011 return string;
46012 }
46013 var strSymbols = stringToArray(string),
46014 start = charsStartIndex(strSymbols, stringToArray(chars));
46015
46016 return castSlice(strSymbols, start).join('');
46017 }
46018
46019 /**
46020 * Truncates `string` if it's longer than the given maximum string length.
46021 * The last characters of the truncated string are replaced with the omission
46022 * string which defaults to "...".
46023 *
46024 * @static
46025 * @memberOf _
46026 * @since 4.0.0
46027 * @category String
46028 * @param {string} [string=''] The string to truncate.
46029 * @param {Object} [options={}] The options object.
46030 * @param {number} [options.length=30] The maximum string length.
46031 * @param {string} [options.omission='...'] The string to indicate text is omitted.
46032 * @param {RegExp|string} [options.separator] The separator pattern to truncate to.
46033 * @returns {string} Returns the truncated string.
46034 * @example
46035 *
46036 * _.truncate('hi-diddly-ho there, neighborino');
46037 * // => 'hi-diddly-ho there, neighbo...'
46038 *
46039 * _.truncate('hi-diddly-ho there, neighborino', {
46040 * 'length': 24,
46041 * 'separator': ' '
46042 * });
46043 * // => 'hi-diddly-ho there,...'
46044 *
46045 * _.truncate('hi-diddly-ho there, neighborino', {
46046 * 'length': 24,
46047 * 'separator': /,? +/
46048 * });
46049 * // => 'hi-diddly-ho there...'
46050 *
46051 * _.truncate('hi-diddly-ho there, neighborino', {
46052 * 'omission': ' [...]'
46053 * });
46054 * // => 'hi-diddly-ho there, neig [...]'
46055 */
46056 function truncate(string, options) {
46057 var length = DEFAULT_TRUNC_LENGTH,
46058 omission = DEFAULT_TRUNC_OMISSION;
46059
46060 if (isObject(options)) {
46061 var separator = 'separator' in options ? options.separator : separator;
46062 length = 'length' in options ? toInteger(options.length) : length;
46063 omission = 'omission' in options ? baseToString(options.omission) : omission;
46064 }
46065 string = toString(string);
46066
46067 var strLength = string.length;
46068 if (hasUnicode(string)) {
46069 var strSymbols = stringToArray(string);
46070 strLength = strSymbols.length;
46071 }
46072 if (length >= strLength) {
46073 return string;
46074 }
46075 var end = length - stringSize(omission);
46076 if (end < 1) {
46077 return omission;
46078 }
46079 var result = strSymbols
46080 ? castSlice(strSymbols, 0, end).join('')
46081 : string.slice(0, end);
46082
46083 if (separator === undefined) {
46084 return result + omission;
46085 }
46086 if (strSymbols) {
46087 end += (result.length - end);
46088 }
46089 if (isRegExp(separator)) {
46090 if (string.slice(end).search(separator)) {
46091 var match,
46092 substring = result;
46093
46094 if (!separator.global) {
46095 separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');
46096 }
46097 separator.lastIndex = 0;
46098 while ((match = separator.exec(substring))) {
46099 var newEnd = match.index;
46100 }
46101 result = result.slice(0, newEnd === undefined ? end : newEnd);
46102 }
46103 } else if (string.indexOf(baseToString(separator), end) != end) {
46104 var index = result.lastIndexOf(separator);
46105 if (index > -1) {
46106 result = result.slice(0, index);
46107 }
46108 }
46109 return result + omission;
46110 }
46111
46112 /**
46113 * The inverse of `_.escape`; this method converts the HTML entities
46114 * `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to
46115 * their corresponding characters.
46116 *
46117 * **Note:** No other HTML entities are unescaped. To unescape additional
46118 * HTML entities use a third-party library like [_he_](https://mths.be/he).
46119 *
46120 * @static
46121 * @memberOf _
46122 * @since 0.6.0
46123 * @category String
46124 * @param {string} [string=''] The string to unescape.
46125 * @returns {string} Returns the unescaped string.
46126 * @example
46127 *
46128 * _.unescape('fred, barney, &amp; pebbles');
46129 * // => 'fred, barney, & pebbles'
46130 */
46131 function unescape(string) {
46132 string = toString(string);
46133 return (string && reHasEscapedHtml.test(string))
46134 ? string.replace(reEscapedHtml, unescapeHtmlChar)
46135 : string;
46136 }
46137
46138 /**
46139 * Converts `string`, as space separated words, to upper case.
46140 *
46141 * @static
46142 * @memberOf _
46143 * @since 4.0.0
46144 * @category String
46145 * @param {string} [string=''] The string to convert.
46146 * @returns {string} Returns the upper cased string.
46147 * @example
46148 *
46149 * _.upperCase('--foo-bar');
46150 * // => 'FOO BAR'
46151 *
46152 * _.upperCase('fooBar');
46153 * // => 'FOO BAR'
46154 *
46155 * _.upperCase('__foo_bar__');
46156 * // => 'FOO BAR'
46157 */
46158 var upperCase = createCompounder(function(result, word, index) {
46159 return result + (index ? ' ' : '') + word.toUpperCase();
46160 });
46161
46162 /**
46163 * Converts the first character of `string` to upper case.
46164 *
46165 * @static
46166 * @memberOf _
46167 * @since 4.0.0
46168 * @category String
46169 * @param {string} [string=''] The string to convert.
46170 * @returns {string} Returns the converted string.
46171 * @example
46172 *
46173 * _.upperFirst('fred');
46174 * // => 'Fred'
46175 *
46176 * _.upperFirst('FRED');
46177 * // => 'FRED'
46178 */
46179 var upperFirst = createCaseFirst('toUpperCase');
46180
46181 /**
46182 * Splits `string` into an array of its words.
46183 *
46184 * @static
46185 * @memberOf _
46186 * @since 3.0.0
46187 * @category String
46188 * @param {string} [string=''] The string to inspect.
46189 * @param {RegExp|string} [pattern] The pattern to match words.
46190 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
46191 * @returns {Array} Returns the words of `string`.
46192 * @example
46193 *
46194 * _.words('fred, barney, & pebbles');
46195 * // => ['fred', 'barney', 'pebbles']
46196 *
46197 * _.words('fred, barney, & pebbles', /[^, ]+/g);
46198 * // => ['fred', 'barney', '&', 'pebbles']
46199 */
46200 function words(string, pattern, guard) {
46201 string = toString(string);
46202 pattern = guard ? undefined : pattern;
46203
46204 if (pattern === undefined) {
46205 return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
46206 }
46207 return string.match(pattern) || [];
46208 }
46209
46210 /*------------------------------------------------------------------------*/
46211
46212 /**
46213 * Attempts to invoke `func`, returning either the result or the caught error
46214 * object. Any additional arguments are provided to `func` when it's invoked.
46215 *
46216 * @static
46217 * @memberOf _
46218 * @since 3.0.0
46219 * @category Util
46220 * @param {Function} func The function to attempt.
46221 * @param {...*} [args] The arguments to invoke `func` with.
46222 * @returns {*} Returns the `func` result or error object.
46223 * @example
46224 *
46225 * // Avoid throwing errors for invalid selectors.
46226 * var elements = _.attempt(function(selector) {
46227 * return document.querySelectorAll(selector);
46228 * }, '>_>');
46229 *
46230 * if (_.isError(elements)) {
46231 * elements = [];
46232 * }
46233 */
46234 var attempt = baseRest(function(func, args) {
46235 try {
46236 return apply(func, undefined, args);
46237 } catch (e) {
46238 return isError(e) ? e : new Error(e);
46239 }
46240 });
46241
46242 /**
46243 * Binds methods of an object to the object itself, overwriting the existing
46244 * method.
46245 *
46246 * **Note:** This method doesn't set the "length" property of bound functions.
46247 *
46248 * @static
46249 * @since 0.1.0
46250 * @memberOf _
46251 * @category Util
46252 * @param {Object} object The object to bind and assign the bound methods to.
46253 * @param {...(string|string[])} methodNames The object method names to bind.
46254 * @returns {Object} Returns `object`.
46255 * @example
46256 *
46257 * var view = {
46258 * 'label': 'docs',
46259 * 'click': function() {
46260 * console.log('clicked ' + this.label);
46261 * }
46262 * };
46263 *
46264 * _.bindAll(view, ['click']);
46265 * jQuery(element).on('click', view.click);
46266 * // => Logs 'clicked docs' when clicked.
46267 */
46268 var bindAll = flatRest(function(object, methodNames) {
46269 arrayEach(methodNames, function(key) {
46270 key = toKey(key);
46271 baseAssignValue(object, key, bind(object[key], object));
46272 });
46273 return object;
46274 });
46275
46276 /**
46277 * Creates a function that iterates over `pairs` and invokes the corresponding
46278 * function of the first predicate to return truthy. The predicate-function
46279 * pairs are invoked with the `this` binding and arguments of the created
46280 * function.
46281 *
46282 * @static
46283 * @memberOf _
46284 * @since 4.0.0
46285 * @category Util
46286 * @param {Array} pairs The predicate-function pairs.
46287 * @returns {Function} Returns the new composite function.
46288 * @example
46289 *
46290 * var func = _.cond([
46291 * [_.matches({ 'a': 1 }), _.constant('matches A')],
46292 * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],
46293 * [_.stubTrue, _.constant('no match')]
46294 * ]);
46295 *
46296 * func({ 'a': 1, 'b': 2 });
46297 * // => 'matches A'
46298 *
46299 * func({ 'a': 0, 'b': 1 });
46300 * // => 'matches B'
46301 *
46302 * func({ 'a': '1', 'b': '2' });
46303 * // => 'no match'
46304 */
46305 function cond(pairs) {
46306 var length = pairs == null ? 0 : pairs.length,
46307 toIteratee = getIteratee();
46308
46309 pairs = !length ? [] : arrayMap(pairs, function(pair) {
46310 if (typeof pair[1] != 'function') {
46311 throw new TypeError(FUNC_ERROR_TEXT);
46312 }
46313 return [toIteratee(pair[0]), pair[1]];
46314 });
46315
46316 return baseRest(function(args) {
46317 var index = -1;
46318 while (++index < length) {
46319 var pair = pairs[index];
46320 if (apply(pair[0], this, args)) {
46321 return apply(pair[1], this, args);
46322 }
46323 }
46324 });
46325 }
46326
46327 /**
46328 * Creates a function that invokes the predicate properties of `source` with
46329 * the corresponding property values of a given object, returning `true` if
46330 * all predicates return truthy, else `false`.
46331 *
46332 * **Note:** The created function is equivalent to `_.conformsTo` with
46333 * `source` partially applied.
46334 *
46335 * @static
46336 * @memberOf _
46337 * @since 4.0.0
46338 * @category Util
46339 * @param {Object} source The object of property predicates to conform to.
46340 * @returns {Function} Returns the new spec function.
46341 * @example
46342 *
46343 * var objects = [
46344 * { 'a': 2, 'b': 1 },
46345 * { 'a': 1, 'b': 2 }
46346 * ];
46347 *
46348 * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));
46349 * // => [{ 'a': 1, 'b': 2 }]
46350 */
46351 function conforms(source) {
46352 return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
46353 }
46354
46355 /**
46356 * Creates a function that returns `value`.
46357 *
46358 * @static
46359 * @memberOf _
46360 * @since 2.4.0
46361 * @category Util
46362 * @param {*} value The value to return from the new function.
46363 * @returns {Function} Returns the new constant function.
46364 * @example
46365 *
46366 * var objects = _.times(2, _.constant({ 'a': 1 }));
46367 *
46368 * console.log(objects);
46369 * // => [{ 'a': 1 }, { 'a': 1 }]
46370 *
46371 * console.log(objects[0] === objects[1]);
46372 * // => true
46373 */
46374 function constant(value) {
46375 return function() {
46376 return value;
46377 };
46378 }
46379
46380 /**
46381 * Checks `value` to determine whether a default value should be returned in
46382 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,
46383 * or `undefined`.
46384 *
46385 * @static
46386 * @memberOf _
46387 * @since 4.14.0
46388 * @category Util
46389 * @param {*} value The value to check.
46390 * @param {*} defaultValue The default value.
46391 * @returns {*} Returns the resolved value.
46392 * @example
46393 *
46394 * _.defaultTo(1, 10);
46395 * // => 1
46396 *
46397 * _.defaultTo(undefined, 10);
46398 * // => 10
46399 */
46400 function defaultTo(value, defaultValue) {
46401 return (value == null || value !== value) ? defaultValue : value;
46402 }
46403
46404 /**
46405 * Creates a function that returns the result of invoking the given functions
46406 * with the `this` binding of the created function, where each successive
46407 * invocation is supplied the return value of the previous.
46408 *
46409 * @static
46410 * @memberOf _
46411 * @since 3.0.0
46412 * @category Util
46413 * @param {...(Function|Function[])} [funcs] The functions to invoke.
46414 * @returns {Function} Returns the new composite function.
46415 * @see _.flowRight
46416 * @example
46417 *
46418 * function square(n) {
46419 * return n * n;
46420 * }
46421 *
46422 * var addSquare = _.flow([_.add, square]);
46423 * addSquare(1, 2);
46424 * // => 9
46425 */
46426 var flow = createFlow();
46427
46428 /**
46429 * This method is like `_.flow` except that it creates a function that
46430 * invokes the given functions from right to left.
46431 *
46432 * @static
46433 * @since 3.0.0
46434 * @memberOf _
46435 * @category Util
46436 * @param {...(Function|Function[])} [funcs] The functions to invoke.
46437 * @returns {Function} Returns the new composite function.
46438 * @see _.flow
46439 * @example
46440 *
46441 * function square(n) {
46442 * return n * n;
46443 * }
46444 *
46445 * var addSquare = _.flowRight([square, _.add]);
46446 * addSquare(1, 2);
46447 * // => 9
46448 */
46449 var flowRight = createFlow(true);
46450
46451 /**
46452 * This method returns the first argument it receives.
46453 *
46454 * @static
46455 * @since 0.1.0
46456 * @memberOf _
46457 * @category Util
46458 * @param {*} value Any value.
46459 * @returns {*} Returns `value`.
46460 * @example
46461 *
46462 * var object = { 'a': 1 };
46463 *
46464 * console.log(_.identity(object) === object);
46465 * // => true
46466 */
46467 function identity(value) {
46468 return value;
46469 }
46470
46471 /**
46472 * Creates a function that invokes `func` with the arguments of the created
46473 * function. If `func` is a property name, the created function returns the
46474 * property value for a given element. If `func` is an array or object, the
46475 * created function returns `true` for elements that contain the equivalent
46476 * source properties, otherwise it returns `false`.
46477 *
46478 * @static
46479 * @since 4.0.0
46480 * @memberOf _
46481 * @category Util
46482 * @param {*} [func=_.identity] The value to convert to a callback.
46483 * @returns {Function} Returns the callback.
46484 * @example
46485 *
46486 * var users = [
46487 * { 'user': 'barney', 'age': 36, 'active': true },
46488 * { 'user': 'fred', 'age': 40, 'active': false }
46489 * ];
46490 *
46491 * // The `_.matches` iteratee shorthand.
46492 * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));
46493 * // => [{ 'user': 'barney', 'age': 36, 'active': true }]
46494 *
46495 * // The `_.matchesProperty` iteratee shorthand.
46496 * _.filter(users, _.iteratee(['user', 'fred']));
46497 * // => [{ 'user': 'fred', 'age': 40 }]
46498 *
46499 * // The `_.property` iteratee shorthand.
46500 * _.map(users, _.iteratee('user'));
46501 * // => ['barney', 'fred']
46502 *
46503 * // Create custom iteratee shorthands.
46504 * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {
46505 * return !_.isRegExp(func) ? iteratee(func) : function(string) {
46506 * return func.test(string);
46507 * };
46508 * });
46509 *
46510 * _.filter(['abc', 'def'], /ef/);
46511 * // => ['def']
46512 */
46513 function iteratee(func) {
46514 return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));
46515 }
46516
46517 /**
46518 * Creates a function that performs a partial deep comparison between a given
46519 * object and `source`, returning `true` if the given object has equivalent
46520 * property values, else `false`.
46521 *
46522 * **Note:** The created function is equivalent to `_.isMatch` with `source`
46523 * partially applied.
46524 *
46525 * Partial comparisons will match empty array and empty object `source`
46526 * values against any array or object value, respectively. See `_.isEqual`
46527 * for a list of supported value comparisons.
46528 *
46529 * @static
46530 * @memberOf _
46531 * @since 3.0.0
46532 * @category Util
46533 * @param {Object} source The object of property values to match.
46534 * @returns {Function} Returns the new spec function.
46535 * @example
46536 *
46537 * var objects = [
46538 * { 'a': 1, 'b': 2, 'c': 3 },
46539 * { 'a': 4, 'b': 5, 'c': 6 }
46540 * ];
46541 *
46542 * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));
46543 * // => [{ 'a': 4, 'b': 5, 'c': 6 }]
46544 */
46545 function matches(source) {
46546 return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
46547 }
46548
46549 /**
46550 * Creates a function that performs a partial deep comparison between the
46551 * value at `path` of a given object to `srcValue`, returning `true` if the
46552 * object value is equivalent, else `false`.
46553 *
46554 * **Note:** Partial comparisons will match empty array and empty object
46555 * `srcValue` values against any array or object value, respectively. See
46556 * `_.isEqual` for a list of supported value comparisons.
46557 *
46558 * @static
46559 * @memberOf _
46560 * @since 3.2.0
46561 * @category Util
46562 * @param {Array|string} path The path of the property to get.
46563 * @param {*} srcValue The value to match.
46564 * @returns {Function} Returns the new spec function.
46565 * @example
46566 *
46567 * var objects = [
46568 * { 'a': 1, 'b': 2, 'c': 3 },
46569 * { 'a': 4, 'b': 5, 'c': 6 }
46570 * ];
46571 *
46572 * _.find(objects, _.matchesProperty('a', 4));
46573 * // => { 'a': 4, 'b': 5, 'c': 6 }
46574 */
46575 function matchesProperty(path, srcValue) {
46576 return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));
46577 }
46578
46579 /**
46580 * Creates a function that invokes the method at `path` of a given object.
46581 * Any additional arguments are provided to the invoked method.
46582 *
46583 * @static
46584 * @memberOf _
46585 * @since 3.7.0
46586 * @category Util
46587 * @param {Array|string} path The path of the method to invoke.
46588 * @param {...*} [args] The arguments to invoke the method with.
46589 * @returns {Function} Returns the new invoker function.
46590 * @example
46591 *
46592 * var objects = [
46593 * { 'a': { 'b': _.constant(2) } },
46594 * { 'a': { 'b': _.constant(1) } }
46595 * ];
46596 *
46597 * _.map(objects, _.method('a.b'));
46598 * // => [2, 1]
46599 *
46600 * _.map(objects, _.method(['a', 'b']));
46601 * // => [2, 1]
46602 */
46603 var method = baseRest(function(path, args) {
46604 return function(object) {
46605 return baseInvoke(object, path, args);
46606 };
46607 });
46608
46609 /**
46610 * The opposite of `_.method`; this method creates a function that invokes
46611 * the method at a given path of `object`. Any additional arguments are
46612 * provided to the invoked method.
46613 *
46614 * @static
46615 * @memberOf _
46616 * @since 3.7.0
46617 * @category Util
46618 * @param {Object} object The object to query.
46619 * @param {...*} [args] The arguments to invoke the method with.
46620 * @returns {Function} Returns the new invoker function.
46621 * @example
46622 *
46623 * var array = _.times(3, _.constant),
46624 * object = { 'a': array, 'b': array, 'c': array };
46625 *
46626 * _.map(['a[2]', 'c[0]'], _.methodOf(object));
46627 * // => [2, 0]
46628 *
46629 * _.map([['a', '2'], ['c', '0']], _.methodOf(object));
46630 * // => [2, 0]
46631 */
46632 var methodOf = baseRest(function(object, args) {
46633 return function(path) {
46634 return baseInvoke(object, path, args);
46635 };
46636 });
46637
46638 /**
46639 * Adds all own enumerable string keyed function properties of a source
46640 * object to the destination object. If `object` is a function, then methods
46641 * are added to its prototype as well.
46642 *
46643 * **Note:** Use `_.runInContext` to create a pristine `lodash` function to
46644 * avoid conflicts caused by modifying the original.
46645 *
46646 * @static
46647 * @since 0.1.0
46648 * @memberOf _
46649 * @category Util
46650 * @param {Function|Object} [object=lodash] The destination object.
46651 * @param {Object} source The object of functions to add.
46652 * @param {Object} [options={}] The options object.
46653 * @param {boolean} [options.chain=true] Specify whether mixins are chainable.
46654 * @returns {Function|Object} Returns `object`.
46655 * @example
46656 *
46657 * function vowels(string) {
46658 * return _.filter(string, function(v) {
46659 * return /[aeiou]/i.test(v);
46660 * });
46661 * }
46662 *
46663 * _.mixin({ 'vowels': vowels });
46664 * _.vowels('fred');
46665 * // => ['e']
46666 *
46667 * _('fred').vowels().value();
46668 * // => ['e']
46669 *
46670 * _.mixin({ 'vowels': vowels }, { 'chain': false });
46671 * _('fred').vowels();
46672 * // => ['e']
46673 */
46674 function mixin(object, source, options) {
46675 var props = keys(source),
46676 methodNames = baseFunctions(source, props);
46677
46678 if (options == null &&
46679 !(isObject(source) && (methodNames.length || !props.length))) {
46680 options = source;
46681 source = object;
46682 object = this;
46683 methodNames = baseFunctions(source, keys(source));
46684 }
46685 var chain = !(isObject(options) && 'chain' in options) || !!options.chain,
46686 isFunc = isFunction(object);
46687
46688 arrayEach(methodNames, function(methodName) {
46689 var func = source[methodName];
46690 object[methodName] = func;
46691 if (isFunc) {
46692 object.prototype[methodName] = function() {
46693 var chainAll = this.__chain__;
46694 if (chain || chainAll) {
46695 var result = object(this.__wrapped__),
46696 actions = result.__actions__ = copyArray(this.__actions__);
46697
46698 actions.push({ 'func': func, 'args': arguments, 'thisArg': object });
46699 result.__chain__ = chainAll;
46700 return result;
46701 }
46702 return func.apply(object, arrayPush([this.value()], arguments));
46703 };
46704 }
46705 });
46706
46707 return object;
46708 }
46709
46710 /**
46711 * Reverts the `_` variable to its previous value and returns a reference to
46712 * the `lodash` function.
46713 *
46714 * @static
46715 * @since 0.1.0
46716 * @memberOf _
46717 * @category Util
46718 * @returns {Function} Returns the `lodash` function.
46719 * @example
46720 *
46721 * var lodash = _.noConflict();
46722 */
46723 function noConflict() {
46724 if (root._ === this) {
46725 root._ = oldDash;
46726 }
46727 return this;
46728 }
46729
46730 /**
46731 * This method returns `undefined`.
46732 *
46733 * @static
46734 * @memberOf _
46735 * @since 2.3.0
46736 * @category Util
46737 * @example
46738 *
46739 * _.times(2, _.noop);
46740 * // => [undefined, undefined]
46741 */
46742 function noop() {
46743 // No operation performed.
46744 }
46745
46746 /**
46747 * Creates a function that gets the argument at index `n`. If `n` is negative,
46748 * the nth argument from the end is returned.
46749 *
46750 * @static
46751 * @memberOf _
46752 * @since 4.0.0
46753 * @category Util
46754 * @param {number} [n=0] The index of the argument to return.
46755 * @returns {Function} Returns the new pass-thru function.
46756 * @example
46757 *
46758 * var func = _.nthArg(1);
46759 * func('a', 'b', 'c', 'd');
46760 * // => 'b'
46761 *
46762 * var func = _.nthArg(-2);
46763 * func('a', 'b', 'c', 'd');
46764 * // => 'c'
46765 */
46766 function nthArg(n) {
46767 n = toInteger(n);
46768 return baseRest(function(args) {
46769 return baseNth(args, n);
46770 });
46771 }
46772
46773 /**
46774 * Creates a function that invokes `iteratees` with the arguments it receives
46775 * and returns their results.
46776 *
46777 * @static
46778 * @memberOf _
46779 * @since 4.0.0
46780 * @category Util
46781 * @param {...(Function|Function[])} [iteratees=[_.identity]]
46782 * The iteratees to invoke.
46783 * @returns {Function} Returns the new function.
46784 * @example
46785 *
46786 * var func = _.over([Math.max, Math.min]);
46787 *
46788 * func(1, 2, 3, 4);
46789 * // => [4, 1]
46790 */
46791 var over = createOver(arrayMap);
46792
46793 /**
46794 * Creates a function that checks if **all** of the `predicates` return
46795 * truthy when invoked with the arguments it receives.
46796 *
46797 * @static
46798 * @memberOf _
46799 * @since 4.0.0
46800 * @category Util
46801 * @param {...(Function|Function[])} [predicates=[_.identity]]
46802 * The predicates to check.
46803 * @returns {Function} Returns the new function.
46804 * @example
46805 *
46806 * var func = _.overEvery([Boolean, isFinite]);
46807 *
46808 * func('1');
46809 * // => true
46810 *
46811 * func(null);
46812 * // => false
46813 *
46814 * func(NaN);
46815 * // => false
46816 */
46817 var overEvery = createOver(arrayEvery);
46818
46819 /**
46820 * Creates a function that checks if **any** of the `predicates` return
46821 * truthy when invoked with the arguments it receives.
46822 *
46823 * @static
46824 * @memberOf _
46825 * @since 4.0.0
46826 * @category Util
46827 * @param {...(Function|Function[])} [predicates=[_.identity]]
46828 * The predicates to check.
46829 * @returns {Function} Returns the new function.
46830 * @example
46831 *
46832 * var func = _.overSome([Boolean, isFinite]);
46833 *
46834 * func('1');
46835 * // => true
46836 *
46837 * func(null);
46838 * // => true
46839 *
46840 * func(NaN);
46841 * // => false
46842 */
46843 var overSome = createOver(arraySome);
46844
46845 /**
46846 * Creates a function that returns the value at `path` of a given object.
46847 *
46848 * @static
46849 * @memberOf _
46850 * @since 2.4.0
46851 * @category Util
46852 * @param {Array|string} path The path of the property to get.
46853 * @returns {Function} Returns the new accessor function.
46854 * @example
46855 *
46856 * var objects = [
46857 * { 'a': { 'b': 2 } },
46858 * { 'a': { 'b': 1 } }
46859 * ];
46860 *
46861 * _.map(objects, _.property('a.b'));
46862 * // => [2, 1]
46863 *
46864 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
46865 * // => [1, 2]
46866 */
46867 function property(path) {
46868 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
46869 }
46870
46871 /**
46872 * The opposite of `_.property`; this method creates a function that returns
46873 * the value at a given path of `object`.
46874 *
46875 * @static
46876 * @memberOf _
46877 * @since 3.0.0
46878 * @category Util
46879 * @param {Object} object The object to query.
46880 * @returns {Function} Returns the new accessor function.
46881 * @example
46882 *
46883 * var array = [0, 1, 2],
46884 * object = { 'a': array, 'b': array, 'c': array };
46885 *
46886 * _.map(['a[2]', 'c[0]'], _.propertyOf(object));
46887 * // => [2, 0]
46888 *
46889 * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));
46890 * // => [2, 0]
46891 */
46892 function propertyOf(object) {
46893 return function(path) {
46894 return object == null ? undefined : baseGet(object, path);
46895 };
46896 }
46897
46898 /**
46899 * Creates an array of numbers (positive and/or negative) progressing from
46900 * `start` up to, but not including, `end`. A step of `-1` is used if a negative
46901 * `start` is specified without an `end` or `step`. If `end` is not specified,
46902 * it's set to `start` with `start` then set to `0`.
46903 *
46904 * **Note:** JavaScript follows the IEEE-754 standard for resolving
46905 * floating-point values which can produce unexpected results.
46906 *
46907 * @static
46908 * @since 0.1.0
46909 * @memberOf _
46910 * @category Util
46911 * @param {number} [start=0] The start of the range.
46912 * @param {number} end The end of the range.
46913 * @param {number} [step=1] The value to increment or decrement by.
46914 * @returns {Array} Returns the range of numbers.
46915 * @see _.inRange, _.rangeRight
46916 * @example
46917 *
46918 * _.range(4);
46919 * // => [0, 1, 2, 3]
46920 *
46921 * _.range(-4);
46922 * // => [0, -1, -2, -3]
46923 *
46924 * _.range(1, 5);
46925 * // => [1, 2, 3, 4]
46926 *
46927 * _.range(0, 20, 5);
46928 * // => [0, 5, 10, 15]
46929 *
46930 * _.range(0, -4, -1);
46931 * // => [0, -1, -2, -3]
46932 *
46933 * _.range(1, 4, 0);
46934 * // => [1, 1, 1]
46935 *
46936 * _.range(0);
46937 * // => []
46938 */
46939 var range = createRange();
46940
46941 /**
46942 * This method is like `_.range` except that it populates values in
46943 * descending order.
46944 *
46945 * @static
46946 * @memberOf _
46947 * @since 4.0.0
46948 * @category Util
46949 * @param {number} [start=0] The start of the range.
46950 * @param {number} end The end of the range.
46951 * @param {number} [step=1] The value to increment or decrement by.
46952 * @returns {Array} Returns the range of numbers.
46953 * @see _.inRange, _.range
46954 * @example
46955 *
46956 * _.rangeRight(4);
46957 * // => [3, 2, 1, 0]
46958 *
46959 * _.rangeRight(-4);
46960 * // => [-3, -2, -1, 0]
46961 *
46962 * _.rangeRight(1, 5);
46963 * // => [4, 3, 2, 1]
46964 *
46965 * _.rangeRight(0, 20, 5);
46966 * // => [15, 10, 5, 0]
46967 *
46968 * _.rangeRight(0, -4, -1);
46969 * // => [-3, -2, -1, 0]
46970 *
46971 * _.rangeRight(1, 4, 0);
46972 * // => [1, 1, 1]
46973 *
46974 * _.rangeRight(0);
46975 * // => []
46976 */
46977 var rangeRight = createRange(true);
46978
46979 /**
46980 * This method returns a new empty array.
46981 *
46982 * @static
46983 * @memberOf _
46984 * @since 4.13.0
46985 * @category Util
46986 * @returns {Array} Returns the new empty array.
46987 * @example
46988 *
46989 * var arrays = _.times(2, _.stubArray);
46990 *
46991 * console.log(arrays);
46992 * // => [[], []]
46993 *
46994 * console.log(arrays[0] === arrays[1]);
46995 * // => false
46996 */
46997 function stubArray() {
46998 return [];
46999 }
47000
47001 /**
47002 * This method returns `false`.
47003 *
47004 * @static
47005 * @memberOf _
47006 * @since 4.13.0
47007 * @category Util
47008 * @returns {boolean} Returns `false`.
47009 * @example
47010 *
47011 * _.times(2, _.stubFalse);
47012 * // => [false, false]
47013 */
47014 function stubFalse() {
47015 return false;
47016 }
47017
47018 /**
47019 * This method returns a new empty object.
47020 *
47021 * @static
47022 * @memberOf _
47023 * @since 4.13.0
47024 * @category Util
47025 * @returns {Object} Returns the new empty object.
47026 * @example
47027 *
47028 * var objects = _.times(2, _.stubObject);
47029 *
47030 * console.log(objects);
47031 * // => [{}, {}]
47032 *
47033 * console.log(objects[0] === objects[1]);
47034 * // => false
47035 */
47036 function stubObject() {
47037 return {};
47038 }
47039
47040 /**
47041 * This method returns an empty string.
47042 *
47043 * @static
47044 * @memberOf _
47045 * @since 4.13.0
47046 * @category Util
47047 * @returns {string} Returns the empty string.
47048 * @example
47049 *
47050 * _.times(2, _.stubString);
47051 * // => ['', '']
47052 */
47053 function stubString() {
47054 return '';
47055 }
47056
47057 /**
47058 * This method returns `true`.
47059 *
47060 * @static
47061 * @memberOf _
47062 * @since 4.13.0
47063 * @category Util
47064 * @returns {boolean} Returns `true`.
47065 * @example
47066 *
47067 * _.times(2, _.stubTrue);
47068 * // => [true, true]
47069 */
47070 function stubTrue() {
47071 return true;
47072 }
47073
47074 /**
47075 * Invokes the iteratee `n` times, returning an array of the results of
47076 * each invocation. The iteratee is invoked with one argument; (index).
47077 *
47078 * @static
47079 * @since 0.1.0
47080 * @memberOf _
47081 * @category Util
47082 * @param {number} n The number of times to invoke `iteratee`.
47083 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
47084 * @returns {Array} Returns the array of results.
47085 * @example
47086 *
47087 * _.times(3, String);
47088 * // => ['0', '1', '2']
47089 *
47090 * _.times(4, _.constant(0));
47091 * // => [0, 0, 0, 0]
47092 */
47093 function times(n, iteratee) {
47094 n = toInteger(n);
47095 if (n < 1 || n > MAX_SAFE_INTEGER) {
47096 return [];
47097 }
47098 var index = MAX_ARRAY_LENGTH,
47099 length = nativeMin(n, MAX_ARRAY_LENGTH);
47100
47101 iteratee = getIteratee(iteratee);
47102 n -= MAX_ARRAY_LENGTH;
47103
47104 var result = baseTimes(length, iteratee);
47105 while (++index < n) {
47106 iteratee(index);
47107 }
47108 return result;
47109 }
47110
47111 /**
47112 * Converts `value` to a property path array.
47113 *
47114 * @static
47115 * @memberOf _
47116 * @since 4.0.0
47117 * @category Util
47118 * @param {*} value The value to convert.
47119 * @returns {Array} Returns the new property path array.
47120 * @example
47121 *
47122 * _.toPath('a.b.c');
47123 * // => ['a', 'b', 'c']
47124 *
47125 * _.toPath('a[0].b.c');
47126 * // => ['a', '0', 'b', 'c']
47127 */
47128 function toPath(value) {
47129 if (isArray(value)) {
47130 return arrayMap(value, toKey);
47131 }
47132 return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));
47133 }
47134
47135 /**
47136 * Generates a unique ID. If `prefix` is given, the ID is appended to it.
47137 *
47138 * @static
47139 * @since 0.1.0
47140 * @memberOf _
47141 * @category Util
47142 * @param {string} [prefix=''] The value to prefix the ID with.
47143 * @returns {string} Returns the unique ID.
47144 * @example
47145 *
47146 * _.uniqueId('contact_');
47147 * // => 'contact_104'
47148 *
47149 * _.uniqueId();
47150 * // => '105'
47151 */
47152 function uniqueId(prefix) {
47153 var id = ++idCounter;
47154 return toString(prefix) + id;
47155 }
47156
47157 /*------------------------------------------------------------------------*/
47158
47159 /**
47160 * Adds two numbers.
47161 *
47162 * @static
47163 * @memberOf _
47164 * @since 3.4.0
47165 * @category Math
47166 * @param {number} augend The first number in an addition.
47167 * @param {number} addend The second number in an addition.
47168 * @returns {number} Returns the total.
47169 * @example
47170 *
47171 * _.add(6, 4);
47172 * // => 10
47173 */
47174 var add = createMathOperation(function(augend, addend) {
47175 return augend + addend;
47176 }, 0);
47177
47178 /**
47179 * Computes `number` rounded up to `precision`.
47180 *
47181 * @static
47182 * @memberOf _
47183 * @since 3.10.0
47184 * @category Math
47185 * @param {number} number The number to round up.
47186 * @param {number} [precision=0] The precision to round up to.
47187 * @returns {number} Returns the rounded up number.
47188 * @example
47189 *
47190 * _.ceil(4.006);
47191 * // => 5
47192 *
47193 * _.ceil(6.004, 2);
47194 * // => 6.01
47195 *
47196 * _.ceil(6040, -2);
47197 * // => 6100
47198 */
47199 var ceil = createRound('ceil');
47200
47201 /**
47202 * Divide two numbers.
47203 *
47204 * @static
47205 * @memberOf _
47206 * @since 4.7.0
47207 * @category Math
47208 * @param {number} dividend The first number in a division.
47209 * @param {number} divisor The second number in a division.
47210 * @returns {number} Returns the quotient.
47211 * @example
47212 *
47213 * _.divide(6, 4);
47214 * // => 1.5
47215 */
47216 var divide = createMathOperation(function(dividend, divisor) {
47217 return dividend / divisor;
47218 }, 1);
47219
47220 /**
47221 * Computes `number` rounded down to `precision`.
47222 *
47223 * @static
47224 * @memberOf _
47225 * @since 3.10.0
47226 * @category Math
47227 * @param {number} number The number to round down.
47228 * @param {number} [precision=0] The precision to round down to.
47229 * @returns {number} Returns the rounded down number.
47230 * @example
47231 *
47232 * _.floor(4.006);
47233 * // => 4
47234 *
47235 * _.floor(0.046, 2);
47236 * // => 0.04
47237 *
47238 * _.floor(4060, -2);
47239 * // => 4000
47240 */
47241 var floor = createRound('floor');
47242
47243 /**
47244 * Computes the maximum value of `array`. If `array` is empty or falsey,
47245 * `undefined` is returned.
47246 *
47247 * @static
47248 * @since 0.1.0
47249 * @memberOf _
47250 * @category Math
47251 * @param {Array} array The array to iterate over.
47252 * @returns {*} Returns the maximum value.
47253 * @example
47254 *
47255 * _.max([4, 2, 8, 6]);
47256 * // => 8
47257 *
47258 * _.max([]);
47259 * // => undefined
47260 */
47261 function max(array) {
47262 return (array && array.length)
47263 ? baseExtremum(array, identity, baseGt)
47264 : undefined;
47265 }
47266
47267 /**
47268 * This method is like `_.max` except that it accepts `iteratee` which is
47269 * invoked for each element in `array` to generate the criterion by which
47270 * the value is ranked. The iteratee is invoked with one argument: (value).
47271 *
47272 * @static
47273 * @memberOf _
47274 * @since 4.0.0
47275 * @category Math
47276 * @param {Array} array The array to iterate over.
47277 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
47278 * @returns {*} Returns the maximum value.
47279 * @example
47280 *
47281 * var objects = [{ 'n': 1 }, { 'n': 2 }];
47282 *
47283 * _.maxBy(objects, function(o) { return o.n; });
47284 * // => { 'n': 2 }
47285 *
47286 * // The `_.property` iteratee shorthand.
47287 * _.maxBy(objects, 'n');
47288 * // => { 'n': 2 }
47289 */
47290 function maxBy(array, iteratee) {
47291 return (array && array.length)
47292 ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)
47293 : undefined;
47294 }
47295
47296 /**
47297 * Computes the mean of the values in `array`.
47298 *
47299 * @static
47300 * @memberOf _
47301 * @since 4.0.0
47302 * @category Math
47303 * @param {Array} array The array to iterate over.
47304 * @returns {number} Returns the mean.
47305 * @example
47306 *
47307 * _.mean([4, 2, 8, 6]);
47308 * // => 5
47309 */
47310 function mean(array) {
47311 return baseMean(array, identity);
47312 }
47313
47314 /**
47315 * This method is like `_.mean` except that it accepts `iteratee` which is
47316 * invoked for each element in `array` to generate the value to be averaged.
47317 * The iteratee is invoked with one argument: (value).
47318 *
47319 * @static
47320 * @memberOf _
47321 * @since 4.7.0
47322 * @category Math
47323 * @param {Array} array The array to iterate over.
47324 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
47325 * @returns {number} Returns the mean.
47326 * @example
47327 *
47328 * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
47329 *
47330 * _.meanBy(objects, function(o) { return o.n; });
47331 * // => 5
47332 *
47333 * // The `_.property` iteratee shorthand.
47334 * _.meanBy(objects, 'n');
47335 * // => 5
47336 */
47337 function meanBy(array, iteratee) {
47338 return baseMean(array, getIteratee(iteratee, 2));
47339 }
47340
47341 /**
47342 * Computes the minimum value of `array`. If `array` is empty or falsey,
47343 * `undefined` is returned.
47344 *
47345 * @static
47346 * @since 0.1.0
47347 * @memberOf _
47348 * @category Math
47349 * @param {Array} array The array to iterate over.
47350 * @returns {*} Returns the minimum value.
47351 * @example
47352 *
47353 * _.min([4, 2, 8, 6]);
47354 * // => 2
47355 *
47356 * _.min([]);
47357 * // => undefined
47358 */
47359 function min(array) {
47360 return (array && array.length)
47361 ? baseExtremum(array, identity, baseLt)
47362 : undefined;
47363 }
47364
47365 /**
47366 * This method is like `_.min` except that it accepts `iteratee` which is
47367 * invoked for each element in `array` to generate the criterion by which
47368 * the value is ranked. The iteratee is invoked with one argument: (value).
47369 *
47370 * @static
47371 * @memberOf _
47372 * @since 4.0.0
47373 * @category Math
47374 * @param {Array} array The array to iterate over.
47375 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
47376 * @returns {*} Returns the minimum value.
47377 * @example
47378 *
47379 * var objects = [{ 'n': 1 }, { 'n': 2 }];
47380 *
47381 * _.minBy(objects, function(o) { return o.n; });
47382 * // => { 'n': 1 }
47383 *
47384 * // The `_.property` iteratee shorthand.
47385 * _.minBy(objects, 'n');
47386 * // => { 'n': 1 }
47387 */
47388 function minBy(array, iteratee) {
47389 return (array && array.length)
47390 ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)
47391 : undefined;
47392 }
47393
47394 /**
47395 * Multiply two numbers.
47396 *
47397 * @static
47398 * @memberOf _
47399 * @since 4.7.0
47400 * @category Math
47401 * @param {number} multiplier The first number in a multiplication.
47402 * @param {number} multiplicand The second number in a multiplication.
47403 * @returns {number} Returns the product.
47404 * @example
47405 *
47406 * _.multiply(6, 4);
47407 * // => 24
47408 */
47409 var multiply = createMathOperation(function(multiplier, multiplicand) {
47410 return multiplier * multiplicand;
47411 }, 1);
47412
47413 /**
47414 * Computes `number` rounded to `precision`.
47415 *
47416 * @static
47417 * @memberOf _
47418 * @since 3.10.0
47419 * @category Math
47420 * @param {number} number The number to round.
47421 * @param {number} [precision=0] The precision to round to.
47422 * @returns {number} Returns the rounded number.
47423 * @example
47424 *
47425 * _.round(4.006);
47426 * // => 4
47427 *
47428 * _.round(4.006, 2);
47429 * // => 4.01
47430 *
47431 * _.round(4060, -2);
47432 * // => 4100
47433 */
47434 var round = createRound('round');
47435
47436 /**
47437 * Subtract two numbers.
47438 *
47439 * @static
47440 * @memberOf _
47441 * @since 4.0.0
47442 * @category Math
47443 * @param {number} minuend The first number in a subtraction.
47444 * @param {number} subtrahend The second number in a subtraction.
47445 * @returns {number} Returns the difference.
47446 * @example
47447 *
47448 * _.subtract(6, 4);
47449 * // => 2
47450 */
47451 var subtract = createMathOperation(function(minuend, subtrahend) {
47452 return minuend - subtrahend;
47453 }, 0);
47454
47455 /**
47456 * Computes the sum of the values in `array`.
47457 *
47458 * @static
47459 * @memberOf _
47460 * @since 3.4.0
47461 * @category Math
47462 * @param {Array} array The array to iterate over.
47463 * @returns {number} Returns the sum.
47464 * @example
47465 *
47466 * _.sum([4, 2, 8, 6]);
47467 * // => 20
47468 */
47469 function sum(array) {
47470 return (array && array.length)
47471 ? baseSum(array, identity)
47472 : 0;
47473 }
47474
47475 /**
47476 * This method is like `_.sum` except that it accepts `iteratee` which is
47477 * invoked for each element in `array` to generate the value to be summed.
47478 * The iteratee is invoked with one argument: (value).
47479 *
47480 * @static
47481 * @memberOf _
47482 * @since 4.0.0
47483 * @category Math
47484 * @param {Array} array The array to iterate over.
47485 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
47486 * @returns {number} Returns the sum.
47487 * @example
47488 *
47489 * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
47490 *
47491 * _.sumBy(objects, function(o) { return o.n; });
47492 * // => 20
47493 *
47494 * // The `_.property` iteratee shorthand.
47495 * _.sumBy(objects, 'n');
47496 * // => 20
47497 */
47498 function sumBy(array, iteratee) {
47499 return (array && array.length)
47500 ? baseSum(array, getIteratee(iteratee, 2))
47501 : 0;
47502 }
47503
47504 /*------------------------------------------------------------------------*/
47505
47506 // Add methods that return wrapped values in chain sequences.
47507 lodash.after = after;
47508 lodash.ary = ary;
47509 lodash.assign = assign;
47510 lodash.assignIn = assignIn;
47511 lodash.assignInWith = assignInWith;
47512 lodash.assignWith = assignWith;
47513 lodash.at = at;
47514 lodash.before = before;
47515 lodash.bind = bind;
47516 lodash.bindAll = bindAll;
47517 lodash.bindKey = bindKey;
47518 lodash.castArray = castArray;
47519 lodash.chain = chain;
47520 lodash.chunk = chunk;
47521 lodash.compact = compact;
47522 lodash.concat = concat;
47523 lodash.cond = cond;
47524 lodash.conforms = conforms;
47525 lodash.constant = constant;
47526 lodash.countBy = countBy;
47527 lodash.create = create;
47528 lodash.curry = curry;
47529 lodash.curryRight = curryRight;
47530 lodash.debounce = debounce;
47531 lodash.defaults = defaults;
47532 lodash.defaultsDeep = defaultsDeep;
47533 lodash.defer = defer;
47534 lodash.delay = delay;
47535 lodash.difference = difference;
47536 lodash.differenceBy = differenceBy;
47537 lodash.differenceWith = differenceWith;
47538 lodash.drop = drop;
47539 lodash.dropRight = dropRight;
47540 lodash.dropRightWhile = dropRightWhile;
47541 lodash.dropWhile = dropWhile;
47542 lodash.fill = fill;
47543 lodash.filter = filter;
47544 lodash.flatMap = flatMap;
47545 lodash.flatMapDeep = flatMapDeep;
47546 lodash.flatMapDepth = flatMapDepth;
47547 lodash.flatten = flatten;
47548 lodash.flattenDeep = flattenDeep;
47549 lodash.flattenDepth = flattenDepth;
47550 lodash.flip = flip;
47551 lodash.flow = flow;
47552 lodash.flowRight = flowRight;
47553 lodash.fromPairs = fromPairs;
47554 lodash.functions = functions;
47555 lodash.functionsIn = functionsIn;
47556 lodash.groupBy = groupBy;
47557 lodash.initial = initial;
47558 lodash.intersection = intersection;
47559 lodash.intersectionBy = intersectionBy;
47560 lodash.intersectionWith = intersectionWith;
47561 lodash.invert = invert;
47562 lodash.invertBy = invertBy;
47563 lodash.invokeMap = invokeMap;
47564 lodash.iteratee = iteratee;
47565 lodash.keyBy = keyBy;
47566 lodash.keys = keys;
47567 lodash.keysIn = keysIn;
47568 lodash.map = map;
47569 lodash.mapKeys = mapKeys;
47570 lodash.mapValues = mapValues;
47571 lodash.matches = matches;
47572 lodash.matchesProperty = matchesProperty;
47573 lodash.memoize = memoize;
47574 lodash.merge = merge;
47575 lodash.mergeWith = mergeWith;
47576 lodash.method = method;
47577 lodash.methodOf = methodOf;
47578 lodash.mixin = mixin;
47579 lodash.negate = negate;
47580 lodash.nthArg = nthArg;
47581 lodash.omit = omit;
47582 lodash.omitBy = omitBy;
47583 lodash.once = once;
47584 lodash.orderBy = orderBy;
47585 lodash.over = over;
47586 lodash.overArgs = overArgs;
47587 lodash.overEvery = overEvery;
47588 lodash.overSome = overSome;
47589 lodash.partial = partial;
47590 lodash.partialRight = partialRight;
47591 lodash.partition = partition;
47592 lodash.pick = pick;
47593 lodash.pickBy = pickBy;
47594 lodash.property = property;
47595 lodash.propertyOf = propertyOf;
47596 lodash.pull = pull;
47597 lodash.pullAll = pullAll;
47598 lodash.pullAllBy = pullAllBy;
47599 lodash.pullAllWith = pullAllWith;
47600 lodash.pullAt = pullAt;
47601 lodash.range = range;
47602 lodash.rangeRight = rangeRight;
47603 lodash.rearg = rearg;
47604 lodash.reject = reject;
47605 lodash.remove = remove;
47606 lodash.rest = rest;
47607 lodash.reverse = reverse;
47608 lodash.sampleSize = sampleSize;
47609 lodash.set = set;
47610 lodash.setWith = setWith;
47611 lodash.shuffle = shuffle;
47612 lodash.slice = slice;
47613 lodash.sortBy = sortBy;
47614 lodash.sortedUniq = sortedUniq;
47615 lodash.sortedUniqBy = sortedUniqBy;
47616 lodash.split = split;
47617 lodash.spread = spread;
47618 lodash.tail = tail;
47619 lodash.take = take;
47620 lodash.takeRight = takeRight;
47621 lodash.takeRightWhile = takeRightWhile;
47622 lodash.takeWhile = takeWhile;
47623 lodash.tap = tap;
47624 lodash.throttle = throttle;
47625 lodash.thru = thru;
47626 lodash.toArray = toArray;
47627 lodash.toPairs = toPairs;
47628 lodash.toPairsIn = toPairsIn;
47629 lodash.toPath = toPath;
47630 lodash.toPlainObject = toPlainObject;
47631 lodash.transform = transform;
47632 lodash.unary = unary;
47633 lodash.union = union;
47634 lodash.unionBy = unionBy;
47635 lodash.unionWith = unionWith;
47636 lodash.uniq = uniq;
47637 lodash.uniqBy = uniqBy;
47638 lodash.uniqWith = uniqWith;
47639 lodash.unset = unset;
47640 lodash.unzip = unzip;
47641 lodash.unzipWith = unzipWith;
47642 lodash.update = update;
47643 lodash.updateWith = updateWith;
47644 lodash.values = values;
47645 lodash.valuesIn = valuesIn;
47646 lodash.without = without;
47647 lodash.words = words;
47648 lodash.wrap = wrap;
47649 lodash.xor = xor;
47650 lodash.xorBy = xorBy;
47651 lodash.xorWith = xorWith;
47652 lodash.zip = zip;
47653 lodash.zipObject = zipObject;
47654 lodash.zipObjectDeep = zipObjectDeep;
47655 lodash.zipWith = zipWith;
47656
47657 // Add aliases.
47658 lodash.entries = toPairs;
47659 lodash.entriesIn = toPairsIn;
47660 lodash.extend = assignIn;
47661 lodash.extendWith = assignInWith;
47662
47663 // Add methods to `lodash.prototype`.
47664 mixin(lodash, lodash);
47665
47666 /*------------------------------------------------------------------------*/
47667
47668 // Add methods that return unwrapped values in chain sequences.
47669 lodash.add = add;
47670 lodash.attempt = attempt;
47671 lodash.camelCase = camelCase;
47672 lodash.capitalize = capitalize;
47673 lodash.ceil = ceil;
47674 lodash.clamp = clamp;
47675 lodash.clone = clone;
47676 lodash.cloneDeep = cloneDeep;
47677 lodash.cloneDeepWith = cloneDeepWith;
47678 lodash.cloneWith = cloneWith;
47679 lodash.conformsTo = conformsTo;
47680 lodash.deburr = deburr;
47681 lodash.defaultTo = defaultTo;
47682 lodash.divide = divide;
47683 lodash.endsWith = endsWith;
47684 lodash.eq = eq;
47685 lodash.escape = escape;
47686 lodash.escapeRegExp = escapeRegExp;
47687 lodash.every = every;
47688 lodash.find = find;
47689 lodash.findIndex = findIndex;
47690 lodash.findKey = findKey;
47691 lodash.findLast = findLast;
47692 lodash.findLastIndex = findLastIndex;
47693 lodash.findLastKey = findLastKey;
47694 lodash.floor = floor;
47695 lodash.forEach = forEach;
47696 lodash.forEachRight = forEachRight;
47697 lodash.forIn = forIn;
47698 lodash.forInRight = forInRight;
47699 lodash.forOwn = forOwn;
47700 lodash.forOwnRight = forOwnRight;
47701 lodash.get = get;
47702 lodash.gt = gt;
47703 lodash.gte = gte;
47704 lodash.has = has;
47705 lodash.hasIn = hasIn;
47706 lodash.head = head;
47707 lodash.identity = identity;
47708 lodash.includes = includes;
47709 lodash.indexOf = indexOf;
47710 lodash.inRange = inRange;
47711 lodash.invoke = invoke;
47712 lodash.isArguments = isArguments;
47713 lodash.isArray = isArray;
47714 lodash.isArrayBuffer = isArrayBuffer;
47715 lodash.isArrayLike = isArrayLike;
47716 lodash.isArrayLikeObject = isArrayLikeObject;
47717 lodash.isBoolean = isBoolean;
47718 lodash.isBuffer = isBuffer;
47719 lodash.isDate = isDate;
47720 lodash.isElement = isElement;
47721 lodash.isEmpty = isEmpty;
47722 lodash.isEqual = isEqual;
47723 lodash.isEqualWith = isEqualWith;
47724 lodash.isError = isError;
47725 lodash.isFinite = isFinite;
47726 lodash.isFunction = isFunction;
47727 lodash.isInteger = isInteger;
47728 lodash.isLength = isLength;
47729 lodash.isMap = isMap;
47730 lodash.isMatch = isMatch;
47731 lodash.isMatchWith = isMatchWith;
47732 lodash.isNaN = isNaN;
47733 lodash.isNative = isNative;
47734 lodash.isNil = isNil;
47735 lodash.isNull = isNull;
47736 lodash.isNumber = isNumber;
47737 lodash.isObject = isObject;
47738 lodash.isObjectLike = isObjectLike;
47739 lodash.isPlainObject = isPlainObject;
47740 lodash.isRegExp = isRegExp;
47741 lodash.isSafeInteger = isSafeInteger;
47742 lodash.isSet = isSet;
47743 lodash.isString = isString;
47744 lodash.isSymbol = isSymbol;
47745 lodash.isTypedArray = isTypedArray;
47746 lodash.isUndefined = isUndefined;
47747 lodash.isWeakMap = isWeakMap;
47748 lodash.isWeakSet = isWeakSet;
47749 lodash.join = join;
47750 lodash.kebabCase = kebabCase;
47751 lodash.last = last;
47752 lodash.lastIndexOf = lastIndexOf;
47753 lodash.lowerCase = lowerCase;
47754 lodash.lowerFirst = lowerFirst;
47755 lodash.lt = lt;
47756 lodash.lte = lte;
47757 lodash.max = max;
47758 lodash.maxBy = maxBy;
47759 lodash.mean = mean;
47760 lodash.meanBy = meanBy;
47761 lodash.min = min;
47762 lodash.minBy = minBy;
47763 lodash.stubArray = stubArray;
47764 lodash.stubFalse = stubFalse;
47765 lodash.stubObject = stubObject;
47766 lodash.stubString = stubString;
47767 lodash.stubTrue = stubTrue;
47768 lodash.multiply = multiply;
47769 lodash.nth = nth;
47770 lodash.noConflict = noConflict;
47771 lodash.noop = noop;
47772 lodash.now = now;
47773 lodash.pad = pad;
47774 lodash.padEnd = padEnd;
47775 lodash.padStart = padStart;
47776 lodash.parseInt = parseInt;
47777 lodash.random = random;
47778 lodash.reduce = reduce;
47779 lodash.reduceRight = reduceRight;
47780 lodash.repeat = repeat;
47781 lodash.replace = replace;
47782 lodash.result = result;
47783 lodash.round = round;
47784 lodash.runInContext = runInContext;
47785 lodash.sample = sample;
47786 lodash.size = size;
47787 lodash.snakeCase = snakeCase;
47788 lodash.some = some;
47789 lodash.sortedIndex = sortedIndex;
47790 lodash.sortedIndexBy = sortedIndexBy;
47791 lodash.sortedIndexOf = sortedIndexOf;
47792 lodash.sortedLastIndex = sortedLastIndex;
47793 lodash.sortedLastIndexBy = sortedLastIndexBy;
47794 lodash.sortedLastIndexOf = sortedLastIndexOf;
47795 lodash.startCase = startCase;
47796 lodash.startsWith = startsWith;
47797 lodash.subtract = subtract;
47798 lodash.sum = sum;
47799 lodash.sumBy = sumBy;
47800 lodash.template = template;
47801 lodash.times = times;
47802 lodash.toFinite = toFinite;
47803 lodash.toInteger = toInteger;
47804 lodash.toLength = toLength;
47805 lodash.toLower = toLower;
47806 lodash.toNumber = toNumber;
47807 lodash.toSafeInteger = toSafeInteger;
47808 lodash.toString = toString;
47809 lodash.toUpper = toUpper;
47810 lodash.trim = trim;
47811 lodash.trimEnd = trimEnd;
47812 lodash.trimStart = trimStart;
47813 lodash.truncate = truncate;
47814 lodash.unescape = unescape;
47815 lodash.uniqueId = uniqueId;
47816 lodash.upperCase = upperCase;
47817 lodash.upperFirst = upperFirst;
47818
47819 // Add aliases.
47820 lodash.each = forEach;
47821 lodash.eachRight = forEachRight;
47822 lodash.first = head;
47823
47824 mixin(lodash, (function() {
47825 var source = {};
47826 baseForOwn(lodash, function(func, methodName) {
47827 if (!hasOwnProperty.call(lodash.prototype, methodName)) {
47828 source[methodName] = func;
47829 }
47830 });
47831 return source;
47832 }()), { 'chain': false });
47833
47834 /*------------------------------------------------------------------------*/
47835
47836 /**
47837 * The semantic version number.
47838 *
47839 * @static
47840 * @memberOf _
47841 * @type {string}
47842 */
47843 lodash.VERSION = VERSION;
47844
47845 // Assign default placeholders.
47846 arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {
47847 lodash[methodName].placeholder = lodash;
47848 });
47849
47850 // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.
47851 arrayEach(['drop', 'take'], function(methodName, index) {
47852 LazyWrapper.prototype[methodName] = function(n) {
47853 n = n === undefined ? 1 : nativeMax(toInteger(n), 0);
47854
47855 var result = (this.__filtered__ && !index)
47856 ? new LazyWrapper(this)
47857 : this.clone();
47858
47859 if (result.__filtered__) {
47860 result.__takeCount__ = nativeMin(n, result.__takeCount__);
47861 } else {
47862 result.__views__.push({
47863 'size': nativeMin(n, MAX_ARRAY_LENGTH),
47864 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')
47865 });
47866 }
47867 return result;
47868 };
47869
47870 LazyWrapper.prototype[methodName + 'Right'] = function(n) {
47871 return this.reverse()[methodName](n).reverse();
47872 };
47873 });
47874
47875 // Add `LazyWrapper` methods that accept an `iteratee` value.
47876 arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {
47877 var type = index + 1,
47878 isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;
47879
47880 LazyWrapper.prototype[methodName] = function(iteratee) {
47881 var result = this.clone();
47882 result.__iteratees__.push({
47883 'iteratee': getIteratee(iteratee, 3),
47884 'type': type
47885 });
47886 result.__filtered__ = result.__filtered__ || isFilter;
47887 return result;
47888 };
47889 });
47890
47891 // Add `LazyWrapper` methods for `_.head` and `_.last`.
47892 arrayEach(['head', 'last'], function(methodName, index) {
47893 var takeName = 'take' + (index ? 'Right' : '');
47894
47895 LazyWrapper.prototype[methodName] = function() {
47896 return this[takeName](1).value()[0];
47897 };
47898 });
47899
47900 // Add `LazyWrapper` methods for `_.initial` and `_.tail`.
47901 arrayEach(['initial', 'tail'], function(methodName, index) {
47902 var dropName = 'drop' + (index ? '' : 'Right');
47903
47904 LazyWrapper.prototype[methodName] = function() {
47905 return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);
47906 };
47907 });
47908
47909 LazyWrapper.prototype.compact = function() {
47910 return this.filter(identity);
47911 };
47912
47913 LazyWrapper.prototype.find = function(predicate) {
47914 return this.filter(predicate).head();
47915 };
47916
47917 LazyWrapper.prototype.findLast = function(predicate) {
47918 return this.reverse().find(predicate);
47919 };
47920
47921 LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {
47922 if (typeof path == 'function') {
47923 return new LazyWrapper(this);
47924 }
47925 return this.map(function(value) {
47926 return baseInvoke(value, path, args);
47927 });
47928 });
47929
47930 LazyWrapper.prototype.reject = function(predicate) {
47931 return this.filter(negate(getIteratee(predicate)));
47932 };
47933
47934 LazyWrapper.prototype.slice = function(start, end) {
47935 start = toInteger(start);
47936
47937 var result = this;
47938 if (result.__filtered__ && (start > 0 || end < 0)) {
47939 return new LazyWrapper(result);
47940 }
47941 if (start < 0) {
47942 result = result.takeRight(-start);
47943 } else if (start) {
47944 result = result.drop(start);
47945 }
47946 if (end !== undefined) {
47947 end = toInteger(end);
47948 result = end < 0 ? result.dropRight(-end) : result.take(end - start);
47949 }
47950 return result;
47951 };
47952
47953 LazyWrapper.prototype.takeRightWhile = function(predicate) {
47954 return this.reverse().takeWhile(predicate).reverse();
47955 };
47956
47957 LazyWrapper.prototype.toArray = function() {
47958 return this.take(MAX_ARRAY_LENGTH);
47959 };
47960
47961 // Add `LazyWrapper` methods to `lodash.prototype`.
47962 baseForOwn(LazyWrapper.prototype, function(func, methodName) {
47963 var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),
47964 isTaker = /^(?:head|last)$/.test(methodName),
47965 lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],
47966 retUnwrapped = isTaker || /^find/.test(methodName);
47967
47968 if (!lodashFunc) {
47969 return;
47970 }
47971 lodash.prototype[methodName] = function() {
47972 var value = this.__wrapped__,
47973 args = isTaker ? [1] : arguments,
47974 isLazy = value instanceof LazyWrapper,
47975 iteratee = args[0],
47976 useLazy = isLazy || isArray(value);
47977
47978 var interceptor = function(value) {
47979 var result = lodashFunc.apply(lodash, arrayPush([value], args));
47980 return (isTaker && chainAll) ? result[0] : result;
47981 };
47982
47983 if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {
47984 // Avoid lazy use if the iteratee has a "length" value other than `1`.
47985 isLazy = useLazy = false;
47986 }
47987 var chainAll = this.__chain__,
47988 isHybrid = !!this.__actions__.length,
47989 isUnwrapped = retUnwrapped && !chainAll,
47990 onlyLazy = isLazy && !isHybrid;
47991
47992 if (!retUnwrapped && useLazy) {
47993 value = onlyLazy ? value : new LazyWrapper(this);
47994 var result = func.apply(value, args);
47995 result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });
47996 return new LodashWrapper(result, chainAll);
47997 }
47998 if (isUnwrapped && onlyLazy) {
47999 return func.apply(this, args);
48000 }
48001 result = this.thru(interceptor);
48002 return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;
48003 };
48004 });
48005
48006 // Add `Array` methods to `lodash.prototype`.
48007 arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {
48008 var func = arrayProto[methodName],
48009 chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',
48010 retUnwrapped = /^(?:pop|shift)$/.test(methodName);
48011
48012 lodash.prototype[methodName] = function() {
48013 var args = arguments;
48014 if (retUnwrapped && !this.__chain__) {
48015 var value = this.value();
48016 return func.apply(isArray(value) ? value : [], args);
48017 }
48018 return this[chainName](function(value) {
48019 return func.apply(isArray(value) ? value : [], args);
48020 });
48021 };
48022 });
48023
48024 // Map minified method names to their real names.
48025 baseForOwn(LazyWrapper.prototype, function(func, methodName) {
48026 var lodashFunc = lodash[methodName];
48027 if (lodashFunc) {
48028 var key = lodashFunc.name + '';
48029 if (!hasOwnProperty.call(realNames, key)) {
48030 realNames[key] = [];
48031 }
48032 realNames[key].push({ 'name': methodName, 'func': lodashFunc });
48033 }
48034 });
48035
48036 realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{
48037 'name': 'wrapper',
48038 'func': undefined
48039 }];
48040
48041 // Add methods to `LazyWrapper`.
48042 LazyWrapper.prototype.clone = lazyClone;
48043 LazyWrapper.prototype.reverse = lazyReverse;
48044 LazyWrapper.prototype.value = lazyValue;
48045
48046 // Add chain sequence methods to the `lodash` wrapper.
48047 lodash.prototype.at = wrapperAt;
48048 lodash.prototype.chain = wrapperChain;
48049 lodash.prototype.commit = wrapperCommit;
48050 lodash.prototype.next = wrapperNext;
48051 lodash.prototype.plant = wrapperPlant;
48052 lodash.prototype.reverse = wrapperReverse;
48053 lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
48054
48055 // Add lazy aliases.
48056 lodash.prototype.first = lodash.prototype.head;
48057
48058 if (symIterator) {
48059 lodash.prototype[symIterator] = wrapperToIterator;
48060 }
48061 return lodash;
48062 });
48063
48064 /*--------------------------------------------------------------------------*/
48065
48066 // Export lodash.
48067 var _ = runInContext();
48068
48069 // Some AMD build optimizers, like r.js, check for condition patterns like:
48070 if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
48071 // Expose Lodash on the global object to prevent errors when Lodash is
48072 // loaded by a script tag in the presence of an AMD loader.
48073 // See http://requirejs.org/docs/errors.html#mismatch for more details.
48074 // Use `_.noConflict` to remove Lodash from the global object.
48075 root._ = _;
48076
48077 // Define as an anonymous module so, through path mapping, it can be
48078 // referenced as the "underscore" module.
48079 define(function() {
48080 return _;
48081 });
48082 }
48083 // Check for `exports` after `define` in case a build optimizer adds it.
48084 else if (freeModule) {
48085 // Export for Node.js.
48086 (freeModule.exports = _)._ = _;
48087 // Export for CommonJS support.
48088 freeExports._ = _;
48089 }
48090 else {
48091 // Export to the global object.
48092 root._ = _;
48093 }
48094}.call(this));
48095
48096/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
48097
48098/***/ }),
48099
48100/***/ "./node_modules/moment-mini/locale sync recursive ^\\.\\/.*$":
48101/*!*******************************************************!*\
48102 !*** ./node_modules/moment-mini/locale sync ^\.\/.*$ ***!
48103 \*******************************************************/
48104/*! no static exports found */
48105/***/ (function(module, exports, __webpack_require__) {
48106
48107var map = {
48108 "./locale": "./node_modules/moment-mini/locale/locale.js",
48109 "./locale.js": "./node_modules/moment-mini/locale/locale.js"
48110};
48111
48112
48113function webpackContext(req) {
48114 var id = webpackContextResolve(req);
48115 return __webpack_require__(id);
48116}
48117function webpackContextResolve(req) {
48118 var id = map[req];
48119 if(!(id + 1)) { // check for number or string
48120 var e = new Error("Cannot find module '" + req + "'");
48121 e.code = 'MODULE_NOT_FOUND';
48122 throw e;
48123 }
48124 return id;
48125}
48126webpackContext.keys = function webpackContextKeys() {
48127 return Object.keys(map);
48128};
48129webpackContext.resolve = webpackContextResolve;
48130module.exports = webpackContext;
48131webpackContext.id = "./node_modules/moment-mini/locale sync recursive ^\\.\\/.*$";
48132
48133/***/ }),
48134
48135/***/ "./node_modules/moment-mini/locale/locale.js":
48136/*!***************************************************!*\
48137 !*** ./node_modules/moment-mini/locale/locale.js ***!
48138 \***************************************************/
48139/*! no static exports found */
48140/***/ (function(module, exports) {
48141
48142
48143
48144/***/ }),
48145
48146/***/ "./node_modules/moment-mini/moment.min.js":
48147/*!************************************************!*\
48148 !*** ./node_modules/moment-mini/moment.min.js ***!
48149 \************************************************/
48150/*! no static exports found */
48151/***/ (function(module, exports, __webpack_require__) {
48152
48153/* WEBPACK VAR INJECTION */(function(module) {!function(e,t){ true?module.exports=t():undefined}(this,function(){"use strict";var e,i;function c(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){return void 0===e}function d(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function h(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return m(t,"toString")&&(e.toString=t.toString),m(t,"valueOf")&&(e.valueOf=t.valueOf),e}function y(e,t,n,s){return Ot(e,t,n,s,!0).utc()}function g(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function p(e){if(null==e._isValid){var t=g(e),n=i.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function v(e){var t=y(NaN);return null!=e?_(g(t),e):g(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var r=c.momentProperties=[];function w(e,t){var n,s,i;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=g(t)),l(t._locale)||(e._locale=t._locale),0<r.length)for(n=0;n<r.length;n++)l(i=t[s=r[n]])||(e[s]=i);return e}var t=!1;function M(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,c.updateOffset(this),t=!1)}function S(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function D(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function k(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=D(t)),n}function a(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&k(e[s])!==k(t[s]))&&a++;return a+r}function Y(e){!1===c.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function n(i,r){var a=!0;return _(function(){if(null!=c.deprecationHandler&&c.deprecationHandler(null,i),a){for(var e,t=[],n=0;n<arguments.length;n++){if(e="","object"==typeof arguments[n]){for(var s in e+="\n["+n+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[n];t.push(e)}Y(i+"\nArguments: "+Array.prototype.slice.call(t).join("")+"\n"+(new Error).stack),a=!1}return r.apply(this,arguments)},r)}var s,O={};function T(e,t){null!=c.deprecationHandler&&c.deprecationHandler(e,t),O[e]||(Y(t),O[e]=!0)}function x(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function b(e,t){var n,s=_({},e);for(n in t)m(t,n)&&(u(e[n])&&u(t[n])?(s[n]={},_(s[n],e[n]),_(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)m(e,n)&&!m(t,n)&&u(e[n])&&(s[n]=_({},s[n]));return s}function P(e){null!=e&&this.set(e)}c.suppressDeprecationWarnings=!1,c.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)m(e,t)&&n.push(t);return n};var W={};function H(e,t){var n=e.toLowerCase();W[n]=W[n+"s"]=W[t]=e}function R(e){return"string"==typeof e?W[e]||W[e.toLowerCase()]:void 0}function C(e){var t,n,s={};for(n in e)m(e,n)&&(t=R(n))&&(s[t]=e[n]);return s}var F={};function L(e,t){F[e]=t}function U(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},E={};function I(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(E[e]=i),t&&(E[t[0]]=function(){return U(i.apply(this,arguments),t[1],t[2])}),n&&(E[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=j(t,e.localeData()),V[t]=V[t]||function(s){var e,i,t,r=s.match(N);for(e=0,i=r.length;e<i;e++)E[r[e]]?r[e]=E[r[e]]:r[e]=(t=r[e]).match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"");return function(e){var t,n="";for(t=0;t<i;t++)n+=x(r[t])?r[t].call(e,s):r[t];return n}}(t),V[t](e)):e.localeData().invalidDate()}function j(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(G.lastIndex=0;0<=n&&G.test(e);)e=e.replace(G,s),G.lastIndex=0,n-=1;return e}var Z=/\d/,z=/\d\d/,$=/\d{3}/,q=/\d{4}/,J=/[+-]?\d{6}/,B=/\d\d?/,Q=/\d\d\d\d?/,X=/\d\d\d\d\d\d?/,K=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,se=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,re=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,oe={};function ue(e,n,s){oe[e]=x(n)?n:function(e,t){return e&&s?s:n}}function le(e,t){return m(oe,e)?oe[e](t._strict,t._locale):new RegExp(de(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function de(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var he={};function ce(e,n){var t,s=n;for("string"==typeof e&&(e=[e]),d(n)&&(s=function(e,t){t[n]=k(e)}),t=0;t<e.length;t++)he[e[t]]=s}function fe(e,i){ce(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}var me=0,_e=1,ye=2,ge=3,pe=4,ve=5,we=6,Me=7,Se=8;function De(e){return ke(e)?366:365}function ke(e){return e%4==0&&e%100!=0||e%400==0}I("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),H("year","y"),L("year",1),ue("Y",se),ue("YY",B,z),ue("YYYY",ee,q),ue("YYYYY",te,J),ue("YYYYYY",te,J),ce(["YYYYY","YYYYYY"],me),ce("YYYY",function(e,t){t[me]=2===e.length?c.parseTwoDigitYear(e):k(e)}),ce("YY",function(e,t){t[me]=c.parseTwoDigitYear(e)}),ce("Y",function(e,t){t[me]=parseInt(e,10)}),c.parseTwoDigitYear=function(e){return k(e)+(68<k(e)?1900:2e3)};var Ye,Oe=Te("FullYear",!0);function Te(t,n){return function(e){return null!=e?(be(this,t,e),c.updateOffset(this,n),this):xe(this,t)}}function xe(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function be(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ke(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Pe(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Pe(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?ke(e)?29:28:31-s%7%2}Ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),I("MMMM",0,0,function(e){return this.localeData().months(this,e)}),H("month","M"),L("month",8),ue("M",B),ue("MM",B,z),ue("MMM",function(e,t){return t.monthsShortRegex(e)}),ue("MMMM",function(e,t){return t.monthsRegex(e)}),ce(["M","MM"],function(e,t){t[_e]=k(e)-1}),ce(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[_e]=i:g(n).invalidMonth=e});var We=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,He="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var Re="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ce(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=k(t);else if(!d(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Pe(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Fe(e){return null!=e?(Ce(this,e),c.updateOffset(this,!0),this):xe(this,"Month")}var Le=ae;var Ue=ae;function Ne(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=y([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=de(s[t]),i[t]=de(i[t]);for(t=0;t<24;t++)r[t]=de(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ge(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&0<=e&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function Ve(e,t,n){var s=7+t-n;return-((7+Ge(e,0,s).getUTCDay()-t)%7)+s-1}function Ee(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ve(e,s,i);return o<=0?a=De(r=e-1)+o:o>De(e)?(r=e+1,a=o-De(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Ie(e,t,n){var s,i,r=Ve(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Ae(i=e.year()-1,t,n):a>Ae(e.year(),t,n)?(s=a-Ae(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Ae(e,t,n){var s=Ve(e,t,n),i=Ve(e+1,t,n);return(De(e)-s+i)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),H("week","w"),H("isoWeek","W"),L("week",5),L("isoWeek",5),ue("w",B),ue("ww",B,z),ue("W",B),ue("WW",B,z),fe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=k(e)});I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),H("day","d"),H("weekday","e"),H("isoWeekday","E"),L("day",11),L("weekday",11),L("isoWeekday",11),ue("d",B),ue("e",B),ue("E",B),ue("dd",function(e,t){return t.weekdaysMinRegex(e)}),ue("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ue("dddd",function(e,t){return t.weekdaysRegex(e)}),fe(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:g(n).invalidWeekday=e}),fe(["d","e","E"],function(e,t,n,s){t[s]=k(e)});var je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var ze="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var $e=ae;var qe=ae;var Je=ae;function Be(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=y([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=de(o[t]),u[t]=de(u[t]),l[t]=de(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,t){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ke(e,t){return t._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Qe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)}),I("hmmss",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),H("hour","h"),L("hour",13),ue("a",Ke),ue("A",Ke),ue("H",B),ue("h",B),ue("k",B),ue("HH",B,z),ue("hh",B,z),ue("kk",B,z),ue("hmm",Q),ue("hmmss",X),ue("Hmm",Q),ue("Hmmss",X),ce(["H","HH"],ge),ce(["k","kk"],function(e,t,n){var s=k(e);t[ge]=24===s?0:s}),ce(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ce(["h","hh"],function(e,t,n){t[ge]=k(e),g(n).bigHour=!0}),ce("hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s)),g(n).bigHour=!0}),ce("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i)),g(n).bigHour=!0}),ce("Hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s))}),ce("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i))});var et,tt=Te("Hours",!0),nt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:He,monthsShort:Re,week:{dow:0,doy:6},weekdays:je,weekdaysMin:ze,weekdaysShort:Ze,meridiemParse:/[ap]\.?m?\.?/i},st={},it={};function rt(e){return e?e.toLowerCase().replace("_","-"):e}function at(e){var t=null;if(!st[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=et._abbr,__webpack_require__("./node_modules/moment-mini/locale sync recursive ^\\.\\/.*$")("./"+e),ot(t)}catch(e){}return st[e]}function ot(e,t){var n;return e&&((n=l(t)?lt(e):ut(e,t))?et=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),et._abbr}function ut(e,t){if(null!==t){var n,s=nt;if(t.abbr=e,null!=st[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=st[e]._config;else if(null!=t.parentLocale)if(null!=st[t.parentLocale])s=st[t.parentLocale]._config;else{if(null==(n=at(t.parentLocale)))return it[t.parentLocale]||(it[t.parentLocale]=[]),it[t.parentLocale].push({name:e,config:t}),null;s=n._config}return st[e]=new P(b(s,t)),it[e]&&it[e].forEach(function(e){ut(e.name,e.config)}),ot(e),st[e]}return delete st[e],null}function lt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return et;if(!o(e)){if(t=at(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=rt(e[r]).split("-")).length,n=(n=rt(e[r+1]))?n.split("-"):null;0<t;){if(s=at(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&a(i,n,!0)>=t-1)break;t--}r++}return et}(e)}function dt(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[_e]<0||11<n[_e]?_e:n[ye]<1||n[ye]>Pe(n[me],n[_e])?ye:n[ge]<0||24<n[ge]||24===n[ge]&&(0!==n[pe]||0!==n[ve]||0!==n[we])?ge:n[pe]<0||59<n[pe]?pe:n[ve]<0||59<n[ve]?ve:n[we]<0||999<n[we]?we:-1,g(e)._overflowDayOfYear&&(t<me||ye<t)&&(t=ye),g(e)._overflowWeeks&&-1===t&&(t=Me),g(e)._overflowWeekday&&-1===t&&(t=Se),g(e).overflow=t),e}function ht(e,t,n){return null!=e?e:null!=t?t:n}function ct(e){var t,n,s,i,r,a=[];if(!e._d){var o,u;for(o=e,u=new Date(c.now()),s=o._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ye]&&null==e._a[_e]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ht(t.GG,e._a[me],Ie(Tt(),1,4).year),s=ht(t.W,1),((i=ht(t.E,1))<1||7<i)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=Ie(Tt(),r,a);n=ht(t.gg,e._a[me],l.year),s=ht(t.w,l.week),null!=t.d?((i=t.d)<0||6<i)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(u=!0)):i=r}s<1||s>Ae(n,r,a)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[me]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ht(e._a[me],s[me]),(e._dayOfYear>De(r)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=Ge(r,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[pe]&&0===e._a[ve]&&0===e._a[we]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ge:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&0<=e&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(g(e).weekdayMismatch=!0)}}var ft=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/Z|[+-]\d\d(?::?\d\d)?/,yt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],gt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function vt(e){var t,n,s,i,r,a,o=e._i,u=ft.exec(o)||mt.exec(o);if(u){for(g(e).iso=!0,t=0,n=yt.length;t<n;t++)if(yt[t][1].exec(u[1])){i=yt[t][0],s=!1!==yt[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=gt.length;t<n;t++)if(gt[t][1].exec(u[3])){r=(u[2]||" ")+gt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!_t.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),kt(e)}else e._isValid=!1}var wt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Mt(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Re.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}var St={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Dt(e){var t,n,s,i=wt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim());if(i){var r=Mt(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],n=r,s=e,t&&Ze.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(g(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=r,e._tzm=function(e,t,n){if(e)return St[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(i[8],i[9],i[10]),e._d=Ge.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),g(e).rfc2822=!0}else e._isValid=!1}function kt(e){if(e._f!==c.ISO_8601)if(e._f!==c.RFC_2822){e._a=[],g(e).empty=!0;var t,n,s,i,r,a,o,u,l=""+e._i,d=l.length,h=0;for(s=j(e._f,e._locale).match(N)||[],t=0;t<s.length;t++)i=s[t],(n=(l.match(le(i,e))||[])[0])&&(0<(r=l.substr(0,l.indexOf(n))).length&&g(e).unusedInput.push(r),l=l.slice(l.indexOf(n)+n.length),h+=n.length),E[i]?(n?g(e).empty=!1:g(e).unusedTokens.push(i),a=i,u=e,null!=(o=n)&&m(he,a)&&he[a](o,u._a,u,a)):e._strict&&!n&&g(e).unusedTokens.push(i);g(e).charsLeftOver=d-h,0<l.length&&g(e).unusedInput.push(l),e._a[ge]<=12&&!0===g(e).bigHour&&0<e._a[ge]&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[ge]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),ct(e),dt(e)}else Dt(e);else vt(e)}function Yt(e){var t,n,s,i,r=e._i,a=e._f;return e._locale=e._locale||lt(e._l),null===r||void 0===a&&""===r?v({nullInput:!0}):("string"==typeof r&&(e._i=r=e._locale.preparse(r)),S(r)?new M(dt(r)):(h(r)?e._d=r:o(a)?function(e){var t,n,s,i,r;if(0===e._f.length)return g(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],kt(t),p(t)&&(r+=g(t).charsLeftOver,r+=10*g(t).unusedTokens.length,g(t).score=r,(null==s||r<s)&&(s=r,n=t));_(e,n||t)}(e):a?kt(e):l(n=(t=e)._i)?t._d=new Date(c.now()):h(n)?t._d=new Date(n.valueOf()):"string"==typeof n?(s=t,null===(i=pt.exec(s._i))?(vt(s),!1===s._isValid&&(delete s._isValid,Dt(s),!1===s._isValid&&(delete s._isValid,c.createFromInputFallback(s)))):s._d=new Date(+i[1])):o(n)?(t._a=f(n.slice(0),function(e){return parseInt(e,10)}),ct(t)):u(n)?function(e){if(!e._d){var t=C(e._i);e._a=f([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),ct(e)}}(t):d(n)?t._d=new Date(n):c.createFromInputFallback(t),p(e)||(e._d=null),e))}function Ot(e,t,n,s,i){var r,a={};return!0!==n&&!1!==n||(s=n,n=void 0),(u(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||o(e)&&0===e.length)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=n,a._i=e,a._f=t,a._strict=s,(r=new M(dt(Yt(a))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function Tt(e,t,n,s){return Ot(e,t,n,s,!1)}c.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),c.ISO_8601=function(){},c.RFC_2822=function(){};var xt=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:v()}),bt=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:v()});function Pt(e,t){var n,s;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Tt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Wt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ht(e){var t=C(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ye.call(Wt,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<Wt.length;++s)if(e[Wt[s]]){if(n)return!1;parseFloat(e[Wt[s]])!==k(e[Wt[s]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=lt(),this._bubble()}function Rt(e){return e instanceof Ht}function Ct(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){I(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+U(~~(e/60),2)+n+U(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),ue("Z",re),ue("ZZ",re),ce(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Ut(re,e)});var Lt=/([\+\-]|\d\d)/gi;function Ut(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(Lt)||["-",0,0],i=60*s[1]+k(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Nt(e,t){var n,s;return t._isUTC?(n=t.clone(),s=(S(e)||h(e)?e.valueOf():Tt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),c.updateOffset(n,!1),n):Tt(e).local()}function Gt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Vt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}c.updateOffset=function(){};var Et=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,It=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function At(e,t){var n,s,i,r=e,a=null;return Rt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:d(e)?(r={},t?r[t]=e:r.milliseconds=e):(a=Et.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:k(a[ye])*n,h:k(a[ge])*n,m:k(a[pe])*n,s:k(a[ve])*n,ms:k(Ct(1e3*a[we]))*n}):(a=It.exec(e))?(n="-"===a[1]?-1:(a[1],1),r={y:jt(a[2],n),M:jt(a[3],n),w:jt(a[4],n),d:jt(a[5],n),h:jt(a[6],n),m:jt(a[7],n),s:jt(a[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Nt(t,e),e.isBefore(t)?n=Zt(e,t):((n=Zt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(Tt(r.from),Tt(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new Ht(r),Rt(e)&&m(e,"_locale")&&(s._locale=e._locale),s}function jt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Zt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function zt(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(T(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),$t(this,At(e="string"==typeof e?+e:e,t),s),this}}function $t(e,t,n,s){var i=t._milliseconds,r=Ct(t._days),a=Ct(t._months);e.isValid()&&(s=null==s||s,a&&Ce(e,xe(e,"Month")+a*n),r&&be(e,"Date",xe(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s&&c.updateOffset(e,r||a))}At.fn=Ht.prototype,At.invalid=function(){return At(NaN)};var qt=zt(1,"add"),Jt=zt(-1,"subtract");function Bt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return-(n+(t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(n+1,"months")-s)))||0}function Qt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=lt(e))&&(this._locale=t),this)}c.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",c.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xt=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function Kt(){return this._locale}function en(e,t){I(0,[e,e.length],0,t)}function tn(e,t,n,s,i){var r;return null==e?Ie(this,s,i).year:((r=Ae(e,s,i))<t&&(t=r),function(e,t,n,s,i){var r=Ee(e,t,n,s,i),a=Ge(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),en("gggg","weekYear"),en("ggggg","weekYear"),en("GGGG","isoWeekYear"),en("GGGGG","isoWeekYear"),H("weekYear","gg"),H("isoWeekYear","GG"),L("weekYear",1),L("isoWeekYear",1),ue("G",se),ue("g",se),ue("GG",B,z),ue("gg",B,z),ue("GGGG",ee,q),ue("gggg",ee,q),ue("GGGGG",te,J),ue("ggggg",te,J),fe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=k(e)}),fe(["gg","GG"],function(e,t,n,s){t[s]=c.parseTwoDigitYear(e)}),I("Q",0,"Qo","quarter"),H("quarter","Q"),L("quarter",7),ue("Q",Z),ce("Q",function(e,t){t[_e]=3*(k(e)-1)}),I("D",["DD",2],"Do","date"),H("date","D"),L("date",9),ue("D",B),ue("DD",B,z),ue("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ce(["D","DD"],ye),ce("Do",function(e,t){t[ye]=k(e.match(B)[0])});var nn=Te("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),H("dayOfYear","DDD"),L("dayOfYear",4),ue("DDD",K),ue("DDDD",$),ce(["DDD","DDDD"],function(e,t,n){n._dayOfYear=k(e)}),I("m",["mm",2],0,"minute"),H("minute","m"),L("minute",14),ue("m",B),ue("mm",B,z),ce(["m","mm"],pe);var sn=Te("Minutes",!1);I("s",["ss",2],0,"second"),H("second","s"),L("second",15),ue("s",B),ue("ss",B,z),ce(["s","ss"],ve);var rn,an=Te("Seconds",!1);for(I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return 10*this.millisecond()}),I(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),I(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),I(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),I(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),I(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),H("millisecond","ms"),L("millisecond",16),ue("S",K,Z),ue("SS",K,z),ue("SSS",K,$),rn="SSSS";rn.length<=9;rn+="S")ue(rn,ne);function on(e,t){t[we]=k(1e3*("0."+e))}for(rn="S";rn.length<=9;rn+="S")ce(rn,on);var un=Te("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var ln=M.prototype;function dn(e){return e}ln.add=qt,ln.calendar=function(e,t){var n=e||Tt(),s=Nt(n,this).startOf("day"),i=c.calendarFormat(this,s)||"sameElse",r=t&&(x(t[i])?t[i].call(this,n):t[i]);return this.format(r||this.localeData().calendar(i,this,Tt(n)))},ln.clone=function(){return new M(this)},ln.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Nt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=R(t)){case"year":r=Bt(this,s)/12;break;case"month":r=Bt(this,s);break;case"quarter":r=Bt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:D(r)},ln.endOf=function(e){return void 0===(e=R(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},ln.format=function(e){e||(e=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},ln.from=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||Tt(e).isValid())?At({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ln.fromNow=function(e){return this.from(Tt(),e)},ln.to=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||Tt(e).isValid())?At({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ln.toNow=function(e){return this.to(Tt(),e)},ln.get=function(e){return x(this[e=R(e)])?this[e]():this},ln.invalidAt=function(){return g(this).overflow},ln.isAfter=function(e,t){var n=S(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(l(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},ln.isBefore=function(e,t){var n=S(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(l(t)?"millisecond":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},ln.isBetween=function(e,t,n,s){return("("===(s=s||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===s[1]?this.isBefore(t,n):!this.isAfter(t,n))},ln.isSame=function(e,t){var n,s=S(e)?e:Tt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=R(t||"millisecond"))?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},ln.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},ln.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},ln.isValid=function(){return p(this)},ln.lang=Xt,ln.locale=Qt,ln.localeData=Kt,ln.max=bt,ln.min=xt,ln.parsingFlags=function(){return _({},g(this))},ln.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:F[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=C(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(x(this[e=R(e)]))return this[e](t);return this},ln.startOf=function(e){switch(e=R(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},ln.subtract=Jt,ln.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},ln.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},ln.toDate=function(){return new Date(this.valueOf())},ln.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):x(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ln.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},ln.toJSON=function(){return this.isValid()?this.toISOString():null},ln.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ln.unix=function(){return Math.floor(this.valueOf()/1e3)},ln.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ln.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ln.year=Oe,ln.isLeapYear=function(){return ke(this.year())},ln.weekYear=function(e){return tn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ln.isoWeekYear=function(e){return tn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},ln.quarter=ln.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},ln.month=Fe,ln.daysInMonth=function(){return Pe(this.year(),this.month())},ln.week=ln.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},ln.isoWeek=ln.isoWeeks=function(e){var t=Ie(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},ln.weeksInYear=function(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)},ln.isoWeeksInYear=function(){return Ae(this.year(),1,4)},ln.date=nn,ln.day=ln.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-s,"d")):s},ln.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},ln.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=(n=e,s=this.localeData(),"string"==typeof n?s.weekdaysParse(n)%7||7:isNaN(n)?null:n);return this.day(this.day()%7?t:t-7)}return this.day()||7;var n,s},ln.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},ln.hour=ln.hours=tt,ln.minute=ln.minutes=sn,ln.second=ln.seconds=an,ln.millisecond=ln.milliseconds=un,ln.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ut(re,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Gt(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?$t(this,At(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,c.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Gt(this)},ln.utc=function(e){return this.utcOffset(0,e)},ln.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Gt(this),"m")),this},ln.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ut(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},ln.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Tt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},ln.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=Vt,ln.isUTC=Vt,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=n("dates accessor is deprecated. Use date instead.",nn),ln.months=n("months accessor is deprecated. Use month instead",Fe),ln.years=n("years accessor is deprecated. Use year instead",Oe),ln.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),ln.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Yt(e))._a){var t=e._isUTC?y(e._a):Tt(e._a);this._isDSTShifted=this.isValid()&&0<a(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var hn=P.prototype;function cn(e,t,n,s){var i=lt(),r=y().set(s,t);return i[n](r,e)}function fn(e,t,n){if(d(e)&&(t=e,e=void 0),e=e||"",null!=t)return cn(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=cn(e,s,n,"month");return i}function mn(e,t,n,s){"boolean"==typeof e?d(t)&&(n=t,t=void 0):(t=e,e=!1,d(n=t)&&(n=t,t=void 0)),t=t||"";var i,r=lt(),a=e?r._week.dow:0;if(null!=n)return cn(t,(n+a)%7,s,"day");var o=[];for(i=0;i<7;i++)o[i]=cn(t,(i+a)%7,s,"day");return o}hn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return x(s)?s.call(t,n):s},hn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},hn.invalidDate=function(){return this._invalidDate},hn.ordinal=function(e){return this._ordinal.replace("%d",e)},hn.preparse=dn,hn.postformat=dn,hn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return x(i)?i(e,t,n,s):i.replace(/%d/i,e)},hn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return x(n)?n(t):n.replace(/%s/i,t)},hn.set=function(e){var t,n;for(n in e)x(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||We).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},hn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[We.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=y([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=y([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},hn.monthsRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(m(this,"_monthsRegex")||(this._monthsRegex=Ue),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},hn.monthsShortRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(m(this,"_monthsShortRegex")||(this._monthsShortRegex=Le),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},hn.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},hn.firstDayOfYear=function(){return this._week.doy},hn.firstDayOfWeek=function(){return this._week.dow},hn.weekdays=function(e,t){return e?o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone},hn.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},hn.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},hn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=y([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=y([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},hn.weekdaysRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=$e),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},hn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=qe),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},hn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},ot("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),c.lang=n("moment.lang is deprecated. Use moment.locale instead.",ot),c.langData=n("moment.langData is deprecated. Use moment.localeData instead.",lt);var _n=Math.abs;function yn(e,t,n,s){var i=At(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function gn(e){return e<0?Math.floor(e):Math.ceil(e)}function pn(e){return 4800*e/146097}function vn(e){return 146097*e/4800}function wn(e){return function(){return this.as(e)}}var Mn=wn("ms"),Sn=wn("s"),Dn=wn("m"),kn=wn("h"),Yn=wn("d"),On=wn("w"),Tn=wn("M"),xn=wn("y");function bn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Pn=bn("milliseconds"),Wn=bn("seconds"),Hn=bn("minutes"),Rn=bn("hours"),Cn=bn("days"),Fn=bn("months"),Ln=bn("years");var Un=Math.round,Nn={ss:44,s:45,m:45,h:22,d:26,M:11};var Gn=Math.abs;function Vn(e){return(0<e)-(e<0)||+e}function En(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Gn(this._milliseconds)/1e3,s=Gn(this._days),i=Gn(this._months);t=D((e=D(n/60))/60),n%=60,e%=60;var r=D(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Vn(this._months)!==Vn(h)?"-":"",m=Vn(this._days)!==Vn(h)?"-":"",_=Vn(this._milliseconds)!==Vn(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||d?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(d?_+d+"S":"")}var In=Ht.prototype;return In.isValid=function(){return this._isValid},In.abs=function(){var e=this._data;return this._milliseconds=_n(this._milliseconds),this._days=_n(this._days),this._months=_n(this._months),e.milliseconds=_n(e.milliseconds),e.seconds=_n(e.seconds),e.minutes=_n(e.minutes),e.hours=_n(e.hours),e.months=_n(e.months),e.years=_n(e.years),this},In.add=function(e,t){return yn(this,e,t,1)},In.subtract=function(e,t){return yn(this,e,t,-1)},In.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=R(e))||"year"===e)return t=this._days+s/864e5,n=this._months+pn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(vn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},In.asMilliseconds=Mn,In.asSeconds=Sn,In.asMinutes=Dn,In.asHours=kn,In.asDays=Yn,In.asWeeks=On,In.asMonths=Tn,In.asYears=xn,In.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},In._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return 0<=r&&0<=a&&0<=o||r<=0&&a<=0&&o<=0||(r+=864e5*gn(vn(o)+a),o=a=0),u.milliseconds=r%1e3,e=D(r/1e3),u.seconds=e%60,t=D(e/60),u.minutes=t%60,n=D(t/60),u.hours=n%24,o+=i=D(pn(a+=D(n/24))),a-=gn(vn(i)),s=D(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},In.clone=function(){return At(this)},In.get=function(e){return e=R(e),this.isValid()?this[e+"s"]():NaN},In.milliseconds=Pn,In.seconds=Wn,In.minutes=Hn,In.hours=Rn,In.days=Cn,In.weeks=function(){return D(this.days()/7)},In.months=Fn,In.years=Ln,In.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,s,i,r,a,o,u,l,d,h,c=this.localeData(),f=(n=!e,s=c,i=At(t=this).abs(),r=Un(i.as("s")),a=Un(i.as("m")),o=Un(i.as("h")),u=Un(i.as("d")),l=Un(i.as("M")),d=Un(i.as("y")),(h=r<=Nn.ss&&["s",r]||r<Nn.s&&["ss",r]||a<=1&&["m"]||a<Nn.m&&["mm",a]||o<=1&&["h"]||o<Nn.h&&["hh",o]||u<=1&&["d"]||u<Nn.d&&["dd",u]||l<=1&&["M"]||l<Nn.M&&["MM",l]||d<=1&&["y"]||["yy",d])[2]=n,h[3]=0<+t,h[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,h));return e&&(f=c.pastFuture(+this,f)),c.postformat(f)},In.toISOString=En,In.toString=En,In.toJSON=En,In.locale=Qt,In.localeData=Kt,In.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",En),In.lang=Xt,I("X",0,0,"unix"),I("x",0,0,"valueOf"),ue("x",se),ue("X",/[+-]?\d+(\.\d{1,3})?/),ce("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ce("x",function(e,t,n){n._d=new Date(k(e))}),c.version="2.22.1",e=Tt,c.fn=ln,c.min=function(){return Pt("isBefore",[].slice.call(arguments,0))},c.max=function(){return Pt("isAfter",[].slice.call(arguments,0))},c.now=function(){return Date.now?Date.now():+new Date},c.utc=y,c.unix=function(e){return Tt(1e3*e)},c.months=function(e,t){return fn(e,t,"months")},c.isDate=h,c.locale=ot,c.invalid=v,c.duration=At,c.isMoment=S,c.weekdays=function(e,t,n){return mn(e,t,n,"weekdays")},c.parseZone=function(){return Tt.apply(null,arguments).parseZone()},c.localeData=lt,c.isDuration=Rt,c.monthsShort=function(e,t){return fn(e,t,"monthsShort")},c.weekdaysMin=function(e,t,n){return mn(e,t,n,"weekdaysMin")},c.defineLocale=ut,c.updateLocale=function(e,t){if(null!=t){var n,s,i=nt;null!=(s=at(e))&&(i=s._config),(n=new P(t=b(i,t))).parentLocale=st[e],st[e]=n,ot(e)}else null!=st[e]&&(null!=st[e].parentLocale?st[e]=st[e].parentLocale:null!=st[e]&&delete st[e]);return st[e]},c.locales=function(){return s(st)},c.weekdaysShort=function(e,t,n){return mn(e,t,n,"weekdaysShort")},c.normalizeUnits=R,c.relativeTimeRounding=function(e){return void 0===e?Un:"function"==typeof e&&(Un=e,!0)},c.relativeTimeThreshold=function(e,t){return void 0!==Nn[e]&&(void 0===t?Nn[e]:(Nn[e]=t,"s"===e&&(Nn.ss=t-1),!0))},c.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},c.prototype=ln,c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},c});
48154/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
48155
48156/***/ }),
48157
48158/***/ "./node_modules/node-libs-browser/mock/empty.js":
48159/*!******************************************************!*\
48160 !*** ./node_modules/node-libs-browser/mock/empty.js ***!
48161 \******************************************************/
48162/*! no static exports found */
48163/***/ (function(module, exports) {
48164
48165
48166
48167/***/ }),
48168
48169/***/ "./node_modules/path-browserify/index.js":
48170/*!***********************************************!*\
48171 !*** ./node_modules/path-browserify/index.js ***!
48172 \***********************************************/
48173/*! no static exports found */
48174/***/ (function(module, exports, __webpack_require__) {
48175
48176/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
48177//
48178// Permission is hereby granted, free of charge, to any person obtaining a
48179// copy of this software and associated documentation files (the
48180// "Software"), to deal in the Software without restriction, including
48181// without limitation the rights to use, copy, modify, merge, publish,
48182// distribute, sublicense, and/or sell copies of the Software, and to permit
48183// persons to whom the Software is furnished to do so, subject to the
48184// following conditions:
48185//
48186// The above copyright notice and this permission notice shall be included
48187// in all copies or substantial portions of the Software.
48188//
48189// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
48190// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
48191// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
48192// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
48193// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
48194// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
48195// USE OR OTHER DEALINGS IN THE SOFTWARE.
48196
48197// resolves . and .. elements in a path array with directory names there
48198// must be no slashes, empty elements, or device names (c:\) in the array
48199// (so also no leading and trailing slashes - it does not distinguish
48200// relative and absolute paths)
48201function normalizeArray(parts, allowAboveRoot) {
48202 // if the path tries to go above the root, `up` ends up > 0
48203 var up = 0;
48204 for (var i = parts.length - 1; i >= 0; i--) {
48205 var last = parts[i];
48206 if (last === '.') {
48207 parts.splice(i, 1);
48208 } else if (last === '..') {
48209 parts.splice(i, 1);
48210 up++;
48211 } else if (up) {
48212 parts.splice(i, 1);
48213 up--;
48214 }
48215 }
48216
48217 // if the path is allowed to go above the root, restore leading ..s
48218 if (allowAboveRoot) {
48219 for (; up--; up) {
48220 parts.unshift('..');
48221 }
48222 }
48223
48224 return parts;
48225}
48226
48227// Split a filename into [root, dir, basename, ext], unix version
48228// 'root' is just a slash, or nothing.
48229var splitPathRe =
48230 /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
48231var splitPath = function(filename) {
48232 return splitPathRe.exec(filename).slice(1);
48233};
48234
48235// path.resolve([from ...], to)
48236// posix version
48237exports.resolve = function() {
48238 var resolvedPath = '',
48239 resolvedAbsolute = false;
48240
48241 for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
48242 var path = (i >= 0) ? arguments[i] : process.cwd();
48243
48244 // Skip empty and invalid entries
48245 if (typeof path !== 'string') {
48246 throw new TypeError('Arguments to path.resolve must be strings');
48247 } else if (!path) {
48248 continue;
48249 }
48250
48251 resolvedPath = path + '/' + resolvedPath;
48252 resolvedAbsolute = path.charAt(0) === '/';
48253 }
48254
48255 // At this point the path should be resolved to a full absolute path, but
48256 // handle relative paths to be safe (might happen when process.cwd() fails)
48257
48258 // Normalize the path
48259 resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
48260 return !!p;
48261 }), !resolvedAbsolute).join('/');
48262
48263 return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
48264};
48265
48266// path.normalize(path)
48267// posix version
48268exports.normalize = function(path) {
48269 var isAbsolute = exports.isAbsolute(path),
48270 trailingSlash = substr(path, -1) === '/';
48271
48272 // Normalize the path
48273 path = normalizeArray(filter(path.split('/'), function(p) {
48274 return !!p;
48275 }), !isAbsolute).join('/');
48276
48277 if (!path && !isAbsolute) {
48278 path = '.';
48279 }
48280 if (path && trailingSlash) {
48281 path += '/';
48282 }
48283
48284 return (isAbsolute ? '/' : '') + path;
48285};
48286
48287// posix version
48288exports.isAbsolute = function(path) {
48289 return path.charAt(0) === '/';
48290};
48291
48292// posix version
48293exports.join = function() {
48294 var paths = Array.prototype.slice.call(arguments, 0);
48295 return exports.normalize(filter(paths, function(p, index) {
48296 if (typeof p !== 'string') {
48297 throw new TypeError('Arguments to path.join must be strings');
48298 }
48299 return p;
48300 }).join('/'));
48301};
48302
48303
48304// path.relative(from, to)
48305// posix version
48306exports.relative = function(from, to) {
48307 from = exports.resolve(from).substr(1);
48308 to = exports.resolve(to).substr(1);
48309
48310 function trim(arr) {
48311 var start = 0;
48312 for (; start < arr.length; start++) {
48313 if (arr[start] !== '') break;
48314 }
48315
48316 var end = arr.length - 1;
48317 for (; end >= 0; end--) {
48318 if (arr[end] !== '') break;
48319 }
48320
48321 if (start > end) return [];
48322 return arr.slice(start, end - start + 1);
48323 }
48324
48325 var fromParts = trim(from.split('/'));
48326 var toParts = trim(to.split('/'));
48327
48328 var length = Math.min(fromParts.length, toParts.length);
48329 var samePartsLength = length;
48330 for (var i = 0; i < length; i++) {
48331 if (fromParts[i] !== toParts[i]) {
48332 samePartsLength = i;
48333 break;
48334 }
48335 }
48336
48337 var outputParts = [];
48338 for (var i = samePartsLength; i < fromParts.length; i++) {
48339 outputParts.push('..');
48340 }
48341
48342 outputParts = outputParts.concat(toParts.slice(samePartsLength));
48343
48344 return outputParts.join('/');
48345};
48346
48347exports.sep = '/';
48348exports.delimiter = ':';
48349
48350exports.dirname = function(path) {
48351 var result = splitPath(path),
48352 root = result[0],
48353 dir = result[1];
48354
48355 if (!root && !dir) {
48356 // No dirname whatsoever
48357 return '.';
48358 }
48359
48360 if (dir) {
48361 // It has a dirname, strip trailing slash
48362 dir = dir.substr(0, dir.length - 1);
48363 }
48364
48365 return root + dir;
48366};
48367
48368
48369exports.basename = function(path, ext) {
48370 var f = splitPath(path)[2];
48371 // TODO: make this comparison case-insensitive on windows?
48372 if (ext && f.substr(-1 * ext.length) === ext) {
48373 f = f.substr(0, f.length - ext.length);
48374 }
48375 return f;
48376};
48377
48378
48379exports.extname = function(path) {
48380 return splitPath(path)[3];
48381};
48382
48383function filter (xs, f) {
48384 if (xs.filter) return xs.filter(f);
48385 var res = [];
48386 for (var i = 0; i < xs.length; i++) {
48387 if (f(xs[i], i, xs)) res.push(xs[i]);
48388 }
48389 return res;
48390}
48391
48392// String.prototype.substr - negative index don't work in IE8
48393var substr = 'ab'.substr(-1) === 'b'
48394 ? function (str, start, len) { return str.substr(start, len) }
48395 : function (str, start, len) {
48396 if (start < 0) start = str.length + start;
48397 return str.substr(start, len);
48398 }
48399;
48400
48401/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))
48402
48403/***/ }),
48404
48405/***/ "./node_modules/process/browser.js":
48406/*!*****************************************!*\
48407 !*** ./node_modules/process/browser.js ***!
48408 \*****************************************/
48409/*! no static exports found */
48410/***/ (function(module, exports) {
48411
48412// shim for using process in browser
48413var process = module.exports = {};
48414
48415// cached from whatever global is present so that test runners that stub it
48416// don't break things. But we need to wrap it in a try catch in case it is
48417// wrapped in strict mode code which doesn't define any globals. It's inside a
48418// function because try/catches deoptimize in certain engines.
48419
48420var cachedSetTimeout;
48421var cachedClearTimeout;
48422
48423function defaultSetTimout() {
48424 throw new Error('setTimeout has not been defined');
48425}
48426function defaultClearTimeout () {
48427 throw new Error('clearTimeout has not been defined');
48428}
48429(function () {
48430 try {
48431 if (typeof setTimeout === 'function') {
48432 cachedSetTimeout = setTimeout;
48433 } else {
48434 cachedSetTimeout = defaultSetTimout;
48435 }
48436 } catch (e) {
48437 cachedSetTimeout = defaultSetTimout;
48438 }
48439 try {
48440 if (typeof clearTimeout === 'function') {
48441 cachedClearTimeout = clearTimeout;
48442 } else {
48443 cachedClearTimeout = defaultClearTimeout;
48444 }
48445 } catch (e) {
48446 cachedClearTimeout = defaultClearTimeout;
48447 }
48448} ())
48449function runTimeout(fun) {
48450 if (cachedSetTimeout === setTimeout) {
48451 //normal enviroments in sane situations
48452 return setTimeout(fun, 0);
48453 }
48454 // if setTimeout wasn't available but was latter defined
48455 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
48456 cachedSetTimeout = setTimeout;
48457 return setTimeout(fun, 0);
48458 }
48459 try {
48460 // when when somebody has screwed with setTimeout but no I.E. maddness
48461 return cachedSetTimeout(fun, 0);
48462 } catch(e){
48463 try {
48464 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
48465 return cachedSetTimeout.call(null, fun, 0);
48466 } catch(e){
48467 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
48468 return cachedSetTimeout.call(this, fun, 0);
48469 }
48470 }
48471
48472
48473}
48474function runClearTimeout(marker) {
48475 if (cachedClearTimeout === clearTimeout) {
48476 //normal enviroments in sane situations
48477 return clearTimeout(marker);
48478 }
48479 // if clearTimeout wasn't available but was latter defined
48480 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
48481 cachedClearTimeout = clearTimeout;
48482 return clearTimeout(marker);
48483 }
48484 try {
48485 // when when somebody has screwed with setTimeout but no I.E. maddness
48486 return cachedClearTimeout(marker);
48487 } catch (e){
48488 try {
48489 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
48490 return cachedClearTimeout.call(null, marker);
48491 } catch (e){
48492 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
48493 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
48494 return cachedClearTimeout.call(this, marker);
48495 }
48496 }
48497
48498
48499
48500}
48501var queue = [];
48502var draining = false;
48503var currentQueue;
48504var queueIndex = -1;
48505
48506function cleanUpNextTick() {
48507 if (!draining || !currentQueue) {
48508 return;
48509 }
48510 draining = false;
48511 if (currentQueue.length) {
48512 queue = currentQueue.concat(queue);
48513 } else {
48514 queueIndex = -1;
48515 }
48516 if (queue.length) {
48517 drainQueue();
48518 }
48519}
48520
48521function drainQueue() {
48522 if (draining) {
48523 return;
48524 }
48525 var timeout = runTimeout(cleanUpNextTick);
48526 draining = true;
48527
48528 var len = queue.length;
48529 while(len) {
48530 currentQueue = queue;
48531 queue = [];
48532 while (++queueIndex < len) {
48533 if (currentQueue) {
48534 currentQueue[queueIndex].run();
48535 }
48536 }
48537 queueIndex = -1;
48538 len = queue.length;
48539 }
48540 currentQueue = null;
48541 draining = false;
48542 runClearTimeout(timeout);
48543}
48544
48545process.nextTick = function (fun) {
48546 var args = new Array(arguments.length - 1);
48547 if (arguments.length > 1) {
48548 for (var i = 1; i < arguments.length; i++) {
48549 args[i - 1] = arguments[i];
48550 }
48551 }
48552 queue.push(new Item(fun, args));
48553 if (queue.length === 1 && !draining) {
48554 runTimeout(drainQueue);
48555 }
48556};
48557
48558// v8 likes predictible objects
48559function Item(fun, array) {
48560 this.fun = fun;
48561 this.array = array;
48562}
48563Item.prototype.run = function () {
48564 this.fun.apply(null, this.array);
48565};
48566process.title = 'browser';
48567process.browser = true;
48568process.env = {};
48569process.argv = [];
48570process.version = ''; // empty string to avoid regexp issues
48571process.versions = {};
48572
48573function noop() {}
48574
48575process.on = noop;
48576process.addListener = noop;
48577process.once = noop;
48578process.off = noop;
48579process.removeListener = noop;
48580process.removeAllListeners = noop;
48581process.emit = noop;
48582process.prependListener = noop;
48583process.prependOnceListener = noop;
48584
48585process.listeners = function (name) { return [] }
48586
48587process.binding = function (name) {
48588 throw new Error('process.binding is not supported');
48589};
48590
48591process.cwd = function () { return '/' };
48592process.chdir = function (dir) {
48593 throw new Error('process.chdir is not supported');
48594};
48595process.umask = function() { return 0; };
48596
48597
48598/***/ }),
48599
48600/***/ "./node_modules/scope-css/index.js":
48601/*!*****************************************!*\
48602 !*** ./node_modules/scope-css/index.js ***!
48603 \*****************************************/
48604/*! no static exports found */
48605/***/ (function(module, exports, __webpack_require__) {
48606
48607"use strict";
48608
48609
48610var slugify = __webpack_require__(/*! slugify */ "./node_modules/slugify/index.js")
48611var escaper = __webpack_require__(/*! escaper */ "./node_modules/escaper/dist/escaper.js")
48612var stripComments = __webpack_require__(/*! strip-css-comments */ "./node_modules/strip-css-comments/index.js")
48613
48614module.exports = scope
48615scope.replace = replace
48616
48617function scope (css, parent, o) {
48618 if (!css) return css
48619
48620 if (!parent) return css
48621
48622 if (typeof o === 'string') o = {keyframes: o}
48623 if (!o) o = {keyframes: false}
48624
48625 css = replace(css, parent + ' $1$2')
48626
48627 //regexp.escape
48628 var parentRe = parent.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
48629
48630 //replace self-selectors
48631 css = css.replace(new RegExp('(' + parentRe + ')\\s*\\1(?=[\\s\\r\\n,{])', 'g'), '$1')
48632
48633 //replace `:host` with parent
48634 css = css.replace(new RegExp('(' + parentRe + ')\\s*:host', 'g'), '$1')
48635
48636 //revoke wrongly replaced @ statements, like @supports, @import, @media etc.
48637 css = css.replace(new RegExp('(' + parentRe + ')\\s*@', 'g'), '@')
48638
48639 //revoke wrongly replaced :root blocks
48640 css = css.replace(new RegExp('(' + parentRe + ')\\s*:root', 'g'), ':root')
48641
48642 //animations: prefix animation anmes
48643 var animations = [],
48644 animationNameRe = /@keyframes\s+([a-zA-Z0-9_-]+)\s*{/g,
48645 match
48646 while ((match = animationNameRe.exec(css)) !== null) {
48647 if (animations.indexOf(match[1]) < 0)
48648 animations.push(match[1])
48649 }
48650
48651 var slug = slugify(parent)
48652
48653 animations.forEach(function (name) {
48654 var newName = (o.keyframes === true ? slug + '-' : typeof o.keyframes === 'string' ? o.keyframes : '') + name
48655 css = css.replace(new RegExp('(@keyframes\\s+)' + name + '(\\s*{)', 'g'),
48656 '$1' + newName + '$2')
48657 css = css.replace(new RegExp('(animation(?:-name)?\\s*:[^;]*\\s*)' + name + '([\\s;}])', 'g'),
48658 '$1' + newName + '$2')
48659 })
48660 //animation: revoke wrongly replaced keyframes
48661 css = css.replace(new RegExp('(' + parentRe + ' )(\\s*(?:to|from|[+-]?(?:(?:\\.\\d+)|(?:\\d+(?:\\.\\d*)?))%))(?=[\\s\\r\\n,{])', 'g'), '$2')
48662
48663 return css
48664}
48665
48666function replace (css, replacer) {
48667 var arr = []
48668
48669 css = stripComments(css)
48670
48671 // escape strings etc.
48672 css = escaper.replace(css, true, arr)
48673
48674 css = css.replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g, replacer)
48675
48676 // insert comments, strings etc. back
48677 css = escaper.paste(css, arr)
48678
48679 return css
48680}
48681
48682
48683
48684/***/ }),
48685
48686/***/ "./node_modules/slugify/index.js":
48687/*!***************************************!*\
48688 !*** ./node_modules/slugify/index.js ***!
48689 \***************************************/
48690/*! no static exports found */
48691/***/ (function(module, exports, __webpack_require__) {
48692
48693
48694;(function (name, root, factory) {
48695 if (true) {
48696 module.exports = factory()
48697 module.exports['default'] = factory()
48698 }
48699 /* istanbul ignore next */
48700 else {}
48701}('slugify', this, function () {
48702 /* eslint-disable */
48703 var charMap = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","џ":"dz","Ґ":"G","ґ":"g","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","‘":"\'","’":"\'","“":"\\\"","”":"\\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₹":"indian rupee","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial"}')
48704 /* eslint-enable */
48705
48706 function replace (string, options) {
48707 if (typeof string !== 'string') {
48708 throw new Error('slugify: string argument expected')
48709 }
48710
48711 options = (typeof options === 'string')
48712 ? {replacement: options}
48713 : options || {}
48714
48715 var slug = string.split('')
48716 .reduce(function (result, ch) {
48717 return result + (charMap[ch] || ch)
48718 // allowed
48719 .replace(options.remove || /[^\w\s$*_+~.()'"!\-:@]/g, '')
48720 }, '')
48721 // trim leading/trailing spaces
48722 .trim()
48723 // convert spaces
48724 .replace(/[-\s]+/g, options.replacement || '-')
48725
48726 return options.lower ? slug.toLowerCase() : slug
48727 }
48728
48729 replace.extend = function (customMap) {
48730 for (var key in customMap) {
48731 charMap[key] = customMap[key]
48732 }
48733 }
48734
48735 return replace
48736}))
48737
48738
48739/***/ }),
48740
48741/***/ "./node_modules/strip-css-comments/index.js":
48742/*!**************************************************!*\
48743 !*** ./node_modules/strip-css-comments/index.js ***!
48744 \**************************************************/
48745/*! no static exports found */
48746/***/ (function(module, exports, __webpack_require__) {
48747
48748"use strict";
48749
48750var isRegExp = __webpack_require__(/*! is-regexp */ "./node_modules/is-regexp/index.js");
48751
48752module.exports = function (str, opts) {
48753 str = str.toString();
48754 opts = opts || {};
48755
48756 var preserveFilter;
48757 var comment = '';
48758 var currentChar = '';
48759 var insideString = false;
48760 var preserveImportant = !(opts.preserve === false || opts.all === true);
48761 var ret = '';
48762
48763 if (typeof opts.preserve === 'function') {
48764 preserveImportant = false;
48765 preserveFilter = opts.preserve;
48766 } else if (isRegExp(opts.preserve)) {
48767 preserveImportant = false;
48768 preserveFilter = function (comment) {
48769 return opts.preserve.test(comment);
48770 };
48771 }
48772
48773 for (var i = 0; i < str.length; i++) {
48774 currentChar = str[i];
48775
48776 if (str[i - 1] !== '\\') {
48777 if (currentChar === '"' || currentChar === '\'') {
48778 if (insideString === currentChar) {
48779 insideString = false;
48780 } else if (!insideString) {
48781 insideString = currentChar;
48782 }
48783 }
48784 }
48785
48786 // find beginning of /* type comment
48787 if (!insideString && currentChar === '/' && str[i + 1] === '*') {
48788 // ignore important comment when configured to preserve comments using important syntax: /*!
48789 if (!(preserveImportant && str[i + 2] === '!')) {
48790 var j = i + 2;
48791
48792 // iterate over comment
48793 for (; j < str.length; j++) {
48794 // find end of comment
48795 if (str[j] === '*' && str[j + 1] === '/') {
48796 if (preserveFilter) {
48797 // evaluate comment text
48798 ret = preserveFilter(comment) ? ret + ('/*' + comment + '*/') : ret;
48799 comment = '';
48800 }
48801
48802 break;
48803 }
48804
48805 // store comment text to be evaluated by the filter when the end of the comment is reached
48806 if (preserveFilter) {
48807 comment += str[j];
48808 }
48809 }
48810
48811 // resume iteration over CSS string from the end of the comment
48812 i = j + 1;
48813
48814 continue;
48815 }
48816 }
48817
48818 ret += currentChar;
48819 }
48820
48821 return ret;
48822};
48823
48824
48825/***/ }),
48826
48827/***/ "./node_modules/webpack/buildin/global.js":
48828/*!***********************************!*\
48829 !*** (webpack)/buildin/global.js ***!
48830 \***********************************/
48831/*! no static exports found */
48832/***/ (function(module, exports) {
48833
48834var g;
48835
48836// This works in non-strict mode
48837g = (function() {
48838 return this;
48839})();
48840
48841try {
48842 // This works if eval is allowed (see CSP)
48843 g = g || new Function("return this")();
48844} catch (e) {
48845 // This works if the window reference is available
48846 if (typeof window === "object") g = window;
48847}
48848
48849// g can still be undefined, but nothing to do about it...
48850// We return undefined, instead of nothing here, so it's
48851// easier to handle this case. if(!global) { ...}
48852
48853module.exports = g;
48854
48855
48856/***/ }),
48857
48858/***/ "./node_modules/webpack/buildin/module.js":
48859/*!***********************************!*\
48860 !*** (webpack)/buildin/module.js ***!
48861 \***********************************/
48862/*! no static exports found */
48863/***/ (function(module, exports) {
48864
48865module.exports = function(module) {
48866 if (!module.webpackPolyfill) {
48867 module.deprecate = function() {};
48868 module.paths = [];
48869 // module.parent = undefined by default
48870 if (!module.children) module.children = [];
48871 Object.defineProperty(module, "loaded", {
48872 enumerable: true,
48873 get: function() {
48874 return module.l;
48875 }
48876 });
48877 Object.defineProperty(module, "id", {
48878 enumerable: true,
48879 get: function() {
48880 return module.i;
48881 }
48882 });
48883 module.webpackPolyfill = 1;
48884 }
48885 return module;
48886};
48887
48888
48889/***/ }),
48890
48891/***/ "./package.json":
48892/*!**********************!*\
48893 !*** ./package.json ***!
48894 \**********************/
48895/*! exports provided: name, version, description, main, keywords, scripts, repository, author, license, standard, dependencies, devDependencies, files, yarn-upgrade-all, default */
48896/***/ (function(module) {
48897
48898module.exports = {"name":"mermaid","version":"8.3.1","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build":"webpack --progress --colors","postbuild":"documentation build src/mermaidAPI.js --shallow -f md --markdown-toc false -o docs/mermaidAPI.md","build:watch":"yarn build --watch","minify":"minify ./dist/mermaid.js > ./dist/mermaid.min.js","release":"yarn build -p --config webpack.config.prod.babel.js","lint":"eslint src","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"percy exec -- cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack-dev-server --config webpack.config.e2e.js","test":"yarn lint && jest src","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn release && yarn test","prepush":"yarn test"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^3.1.0","d3":"^5.7.0","dagre-d3-renderer":"^0.5.8","dagre-layout":"^0.8.8","graphlibrary":"^2.2.0","he":"^1.2.0","lodash":"^4.17.11","minify":"^4.1.1","moment-mini":"^2.22.1","prettier":"^1.18.2","scope-css":"^1.2.1"},"devDependencies":{"documentation":"^12.0.1","eslint":"^6.3.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.0","@babel/core":"^7.2.2","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","@percy/cypress":"^2.0.1","babel-core":"7.0.0-bridge.0","babel-jest":"^23.6.0","babel-loader":"^8.0.4","coveralls":"^3.0.2","css-loader":"^2.0.1","css-to-string-loader":"^0.1.3","cypress":"3.4.0","husky":"^1.2.1","identity-obj-proxy":"^3.0.0","jest":"^23.6.0","jest-environment-puppeteer":"^4.2.0","jest-image-snapshot":"^2.8.2","jest-puppeteer":"^4.2.0","jison":"^0.4.18","moment":"^2.23.0","node-sass":"^4.11.0","puppeteer":"^1.17.0","sass-loader":"^7.1.0","start-server-and-test":"^1.10.0","webpack":"^4.27.1","webpack-cli":"^3.1.2","webpack-dev-server":"^3.4.1","webpack-node-externals":"^1.7.2","yarn-upgrade-all":"^0.5.0"},"files":["dist"],"yarn-upgrade-all":{"ignore":["babel-core"]}};
48899
48900/***/ }),
48901
48902/***/ "./src/config.js":
48903/*!***********************!*\
48904 !*** ./src/config.js ***!
48905 \***********************/
48906/*! exports provided: setConfig, getConfig */
48907/***/ (function(module, __webpack_exports__, __webpack_require__) {
48908
48909"use strict";
48910__webpack_require__.r(__webpack_exports__);
48911/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConfig", function() { return setConfig; });
48912/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getConfig", function() { return getConfig; });
48913let config = {};
48914
48915const setConf = function (cnf) {
48916 // Top level initially mermaid, gflow, sequenceDiagram and gantt
48917 const lvl1Keys = Object.keys(cnf);
48918
48919 for (let i = 0; i < lvl1Keys.length; i++) {
48920 if (typeof cnf[lvl1Keys[i]] === 'object' && cnf[lvl1Keys[i]] != null) {
48921 const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);
48922
48923 for (let j = 0; j < lvl2Keys.length; j++) {
48924 // logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j])
48925 if (typeof config[lvl1Keys[i]] === 'undefined') {
48926 config[lvl1Keys[i]] = {};
48927 } // logger.debug('Setting config: ' + lvl1Keys[i] + ' ' + lvl2Keys[j] + ' to ' + cnf[lvl1Keys[i]][lvl2Keys[j]])
48928
48929
48930 config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];
48931 }
48932 } else {
48933 config[lvl1Keys[i]] = cnf[lvl1Keys[i]];
48934 }
48935 }
48936};
48937
48938const setConfig = conf => {
48939 setConf(conf);
48940};
48941const getConfig = () => config;
48942
48943/***/ }),
48944
48945/***/ "./src/diagrams/class/classDb.js":
48946/*!***************************************!*\
48947 !*** ./src/diagrams/class/classDb.js ***!
48948 \***************************************/
48949/*! exports provided: addClass, clear, getClass, getClasses, getRelations, addRelation, addMember, addMembers, cleanupLabel, lineType, relationType, default */
48950/***/ (function(module, __webpack_exports__, __webpack_require__) {
48951
48952"use strict";
48953__webpack_require__.r(__webpack_exports__);
48954/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; });
48955/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
48956/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClass", function() { return getClass; });
48957/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
48958/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRelations", function() { return getRelations; });
48959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addRelation", function() { return addRelation; });
48960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMember", function() { return addMember; });
48961/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMembers", function() { return addMembers; });
48962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanupLabel", function() { return cleanupLabel; });
48963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineType", function() { return lineType; });
48964/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "relationType", function() { return relationType; });
48965/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
48966
48967let relations = [];
48968let classes = {};
48969/**
48970 * Function called by parser when a node definition has been found.
48971 * @param id
48972 * @param text
48973 * @param type
48974 * @param style
48975 */
48976
48977const addClass = function (id) {
48978 if (typeof classes[id] === 'undefined') {
48979 classes[id] = {
48980 id: id,
48981 methods: [],
48982 members: []
48983 };
48984 }
48985};
48986const clear = function () {
48987 relations = [];
48988 classes = {};
48989};
48990const getClass = function (id) {
48991 return classes[id];
48992};
48993const getClasses = function () {
48994 return classes;
48995};
48996const getRelations = function () {
48997 return relations;
48998};
48999const addRelation = function (relation) {
49000 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Adding relation: ' + JSON.stringify(relation));
49001 addClass(relation.id1);
49002 addClass(relation.id2);
49003 relations.push(relation);
49004};
49005const addMember = function (className, member) {
49006 const theClass = classes[className];
49007
49008 if (typeof member === 'string') {
49009 if (member.substr(-1) === ')') {
49010 theClass.methods.push(member);
49011 } else {
49012 theClass.members.push(member);
49013 }
49014 }
49015};
49016const addMembers = function (className, MembersArr) {
49017 if (Array.isArray(MembersArr)) {
49018 MembersArr.forEach(member => addMember(className, member));
49019 }
49020};
49021const cleanupLabel = function (label) {
49022 if (label.substring(0, 1) === ':') {
49023 return label.substr(2).trim();
49024 } else {
49025 return label.trim();
49026 }
49027};
49028const lineType = {
49029 LINE: 0,
49030 DOTTED_LINE: 1
49031};
49032const relationType = {
49033 AGGREGATION: 0,
49034 EXTENSION: 1,
49035 COMPOSITION: 2,
49036 DEPENDENCY: 3
49037};
49038/* harmony default export */ __webpack_exports__["default"] = ({
49039 addClass,
49040 clear,
49041 getClass,
49042 getClasses,
49043 getRelations,
49044 addRelation,
49045 addMember,
49046 addMembers,
49047 cleanupLabel,
49048 lineType,
49049 relationType
49050});
49051
49052/***/ }),
49053
49054/***/ "./src/diagrams/class/classRenderer.js":
49055/*!*********************************************!*\
49056 !*** ./src/diagrams/class/classRenderer.js ***!
49057 \*********************************************/
49058/*! exports provided: setConf, draw, default */
49059/***/ (function(module, __webpack_exports__, __webpack_require__) {
49060
49061"use strict";
49062__webpack_require__.r(__webpack_exports__);
49063/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
49064/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
49065/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
49066/* harmony import */ var dagre_layout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre-layout */ "./node_modules/dagre-layout/dist/dagre-layout.core.js");
49067/* harmony import */ var dagre_layout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre_layout__WEBPACK_IMPORTED_MODULE_1__);
49068/* harmony import */ var graphlibrary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlibrary */ "./node_modules/graphlibrary/index.js");
49069/* harmony import */ var graphlibrary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlibrary__WEBPACK_IMPORTED_MODULE_2__);
49070/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
49071/* harmony import */ var _classDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./classDb */ "./src/diagrams/class/classDb.js");
49072/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
49073/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__);
49074
49075
49076
49077
49078
49079
49080_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"];
49081const idCache = {};
49082let classCnt = 0;
49083const conf = {
49084 dividerMargin: 10,
49085 padding: 5,
49086 textHeight: 10
49087}; // Todo optimize
49088
49089const getGraphId = function (label) {
49090 const keys = Object.keys(idCache);
49091
49092 for (let i = 0; i < keys.length; i++) {
49093 if (idCache[keys[i]].label === label) {
49094 return keys[i];
49095 }
49096 }
49097
49098 return undefined;
49099};
49100/**
49101 * Setup arrow head and define the marker. The result is appended to the svg.
49102 */
49103
49104
49105const insertMarkers = function (elem) {
49106 elem.append('defs').append('marker').attr('id', 'extensionStart').attr('class', 'extension').attr('refX', 0).attr('refY', 7).attr('markerWidth', 190).attr('markerHeight', 240).attr('orient', 'auto').append('path').attr('d', 'M 1,7 L18,13 V 1 Z');
49107 elem.append('defs').append('marker').attr('id', 'extensionEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 28).attr('orient', 'auto').append('path').attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead
49108
49109 elem.append('defs').append('marker').attr('id', 'compositionStart').attr('class', 'extension').attr('refX', 0).attr('refY', 7).attr('markerWidth', 190).attr('markerHeight', 240).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');
49110 elem.append('defs').append('marker').attr('id', 'compositionEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 28).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');
49111 elem.append('defs').append('marker').attr('id', 'aggregationStart').attr('class', 'extension').attr('refX', 0).attr('refY', 7).attr('markerWidth', 190).attr('markerHeight', 240).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');
49112 elem.append('defs').append('marker').attr('id', 'aggregationEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 28).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');
49113 elem.append('defs').append('marker').attr('id', 'dependencyStart').attr('class', 'extension').attr('refX', 0).attr('refY', 7).attr('markerWidth', 190).attr('markerHeight', 240).attr('orient', 'auto').append('path').attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');
49114 elem.append('defs').append('marker').attr('id', 'dependencyEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 28).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');
49115};
49116
49117let edgeCount = 0;
49118let total = 0;
49119
49120const drawEdge = function (elem, path, relation) {
49121 const getRelationType = function (type) {
49122 switch (type) {
49123 case _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.AGGREGATION:
49124 return 'aggregation';
49125
49126 case _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.EXTENSION:
49127 return 'extension';
49128
49129 case _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.COMPOSITION:
49130 return 'composition';
49131
49132 case _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.DEPENDENCY:
49133 return 'dependency';
49134 }
49135 };
49136
49137 path.points = path.points.filter(p => !Number.isNaN(p.y)); // The data for our line
49138
49139 const lineData = path.points; // This is the accessor function we talked about above
49140
49141 const lineFunction = d3__WEBPACK_IMPORTED_MODULE_0__["line"]().x(function (d) {
49142 return d.x;
49143 }).y(function (d) {
49144 return d.y;
49145 }).curve(d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
49146 const svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'relation');
49147 let url = '';
49148
49149 if (conf.arrowMarkerAbsolute) {
49150 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
49151 url = url.replace(/\(/g, '\\(');
49152 url = url.replace(/\)/g, '\\)');
49153 }
49154
49155 if (relation.relation.type1 !== 'none') {
49156 svgPath.attr('marker-start', 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')');
49157 }
49158
49159 if (relation.relation.type2 !== 'none') {
49160 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')');
49161 }
49162
49163 let x, y;
49164 const l = path.points.length;
49165
49166 if (l % 2 !== 0 && l > 1) {
49167 const p1 = path.points[Math.floor(l / 2)];
49168 const p2 = path.points[Math.ceil(l / 2)];
49169 x = (p1.x + p2.x) / 2;
49170 y = (p1.y + p2.y) / 2;
49171 } else {
49172 const p = path.points[Math.floor(l / 2)];
49173 x = p.x;
49174 y = p.y;
49175 }
49176
49177 if (typeof relation.title !== 'undefined') {
49178 const g = elem.append('g').attr('class', 'classLabel');
49179 const label = g.append('text').attr('class', 'label').attr('x', x).attr('y', y).attr('fill', 'red').attr('text-anchor', 'middle').text(relation.title);
49180 window.label = label;
49181 const bounds = label.node().getBBox();
49182 g.insert('rect', ':first-child').attr('class', 'box').attr('x', bounds.x - conf.padding / 2).attr('y', bounds.y - conf.padding / 2).attr('width', bounds.width + conf.padding).attr('height', bounds.height + conf.padding);
49183 }
49184
49185 edgeCount++;
49186};
49187
49188const drawClass = function (elem, classDef) {
49189 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering class ' + classDef);
49190
49191 const addTspan = function (textEl, txt, isFirst) {
49192 const tSpan = textEl.append('tspan').attr('x', conf.padding).text(txt);
49193
49194 if (!isFirst) {
49195 tSpan.attr('dy', conf.textHeight);
49196 }
49197 };
49198
49199 const id = 'classId' + classCnt % total;
49200 const classInfo = {
49201 id: id,
49202 label: classDef.id,
49203 width: 0,
49204 height: 0
49205 };
49206 const g = elem.append('g').attr('id', id).attr('class', 'classGroup');
49207 const title = g.append('text').attr('x', conf.padding).attr('y', conf.textHeight + conf.padding).text(classDef.id);
49208 const titleHeight = title.node().getBBox().height;
49209 const membersLine = g.append('line') // text label for the x axis
49210 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2).attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);
49211 const members = g.append('text') // text label for the x axis
49212 .attr('x', conf.padding).attr('y', titleHeight + conf.dividerMargin + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
49213 let isFirst = true;
49214 classDef.members.forEach(function (member) {
49215 addTspan(members, member, isFirst);
49216 isFirst = false;
49217 });
49218 const membersBox = members.node().getBBox();
49219 const methodsLine = g.append('line') // text label for the x axis
49220 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
49221 const methods = g.append('text') // text label for the x axis
49222 .attr('x', conf.padding).attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
49223 isFirst = true;
49224 classDef.methods.forEach(function (method) {
49225 addTspan(methods, method, isFirst);
49226 isFirst = false;
49227 });
49228 const classBox = g.node().getBBox();
49229 g.insert('rect', ':first-child').attr('x', 0).attr('y', 0).attr('width', classBox.width + 2 * conf.padding).attr('height', classBox.height + conf.padding + 0.5 * conf.dividerMargin);
49230 membersLine.attr('x2', classBox.width + 2 * conf.padding);
49231 methodsLine.attr('x2', classBox.width + 2 * conf.padding);
49232 classInfo.width = classBox.width + 2 * conf.padding;
49233 classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
49234 idCache[id] = classInfo;
49235 classCnt++;
49236 return classInfo;
49237};
49238
49239const setConf = function (cnf) {
49240 const keys = Object.keys(cnf);
49241 keys.forEach(function (key) {
49242 conf[key] = cnf[key];
49243 });
49244};
49245/**
49246 * Draws a flowchart in the tag with id: id based on the graph definition in text.
49247 * @param text
49248 * @param id
49249 */
49250
49251const draw = function (text, id) {
49252 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy.clear();
49253 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].parse(text);
49254 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering diagram ' + text); /// / Fetch the default direction, use TD if none was found
49255
49256 const diagram = d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id='${id}']`);
49257 insertMarkers(diagram); // Layout graph, Create a new directed graph
49258
49259 const g = new graphlibrary__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
49260 multigraph: true
49261 }); // Set an object for the graph label
49262
49263 g.setGraph({
49264 isMultiGraph: true
49265 }); // Default to assigning a new object as a label for each new edge.
49266
49267 g.setDefaultEdgeLabel(function () {
49268 return {};
49269 });
49270 const classes = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getClasses();
49271 const keys = Object.keys(classes);
49272 total = keys.length;
49273
49274 for (let i = 0; i < keys.length; i++) {
49275 const classDef = classes[keys[i]];
49276 const node = drawClass(diagram, classDef); // Add nodes to the graph. The first argument is the node id. The second is
49277 // metadata about the node. In this case we're going to add labels to each of
49278 // our nodes.
49279
49280 g.setNode(node.id, node);
49281 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Org height: ' + node.height);
49282 }
49283
49284 const relations = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
49285 relations.forEach(function (relation) {
49286 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation));
49287 g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), {
49288 relation: relation
49289 });
49290 });
49291 dagre_layout__WEBPACK_IMPORTED_MODULE_1___default.a.layout(g);
49292 g.nodes().forEach(function (v) {
49293 if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {
49294 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));
49295 d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#' + v).attr('transform', 'translate(' + (g.node(v).x - g.node(v).width / 2) + ',' + (g.node(v).y - g.node(v).height / 2) + ' )');
49296 }
49297 });
49298 g.edges().forEach(function (e) {
49299 if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {
49300 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));
49301 drawEdge(diagram, g.edge(e), g.edge(e).relation);
49302 }
49303 });
49304 diagram.attr('height', '100%');
49305 diagram.attr('width', '100%');
49306 diagram.attr('viewBox', '0 0 ' + (g.graph().width + 20) + ' ' + (g.graph().height + 20));
49307};
49308/* harmony default export */ __webpack_exports__["default"] = ({
49309 setConf,
49310 draw
49311});
49312
49313/***/ }),
49314
49315/***/ "./src/diagrams/class/parser/classDiagram.jison":
49316/*!******************************************************!*\
49317 !*** ./src/diagrams/class/parser/classDiagram.jison ***!
49318 \******************************************************/
49319/*! no static exports found */
49320/***/ (function(module, exports, __webpack_require__) {
49321
49322/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
49323/*
49324 Returns a Parser object of the following structure:
49325
49326 Parser: {
49327 yy: {}
49328 }
49329
49330 Parser.prototype: {
49331 yy: {},
49332 trace: function(),
49333 symbols_: {associative list: name ==> number},
49334 terminals_: {associative list: number ==> name},
49335 productions_: [...],
49336 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
49337 table: [...],
49338 defaultActions: {...},
49339 parseError: function(str, hash),
49340 parse: function(input),
49341
49342 lexer: {
49343 EOF: 1,
49344 parseError: function(str, hash),
49345 setInput: function(input),
49346 input: function(),
49347 unput: function(str),
49348 more: function(),
49349 less: function(n),
49350 pastInput: function(),
49351 upcomingInput: function(),
49352 showPosition: function(),
49353 test_match: function(regex_match_array, rule_index),
49354 next: function(),
49355 lex: function(),
49356 begin: function(condition),
49357 popState: function(),
49358 _currentRules: function(),
49359 topState: function(),
49360 pushState: function(condition),
49361
49362 options: {
49363 ranges: boolean (optional: true ==> token location info will include a .range[] member)
49364 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
49365 backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
49366 },
49367
49368 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
49369 rules: [...],
49370 conditions: {associative list: name ==> set},
49371 }
49372 }
49373
49374
49375 token location info (@$, _$, etc.): {
49376 first_line: n,
49377 last_line: n,
49378 first_column: n,
49379 last_column: n,
49380 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
49381 }
49382
49383
49384 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
49385 text: (matched text)
49386 token: (the produced terminal token, if any)
49387 line: (yylineno)
49388 }
49389 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
49390 loc: (yylloc)
49391 expected: (string describing the set of expected tokens)
49392 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
49393 }
49394*/
49395var parser = (function(){
49396var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,11],$V1=[1,12],$V2=[1,13],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[6,8],$V7=[1,26],$V8=[1,27],$V9=[1,28],$Va=[1,29],$Vb=[1,30],$Vc=[1,31],$Vd=[6,8,13,17,23,26,27,28,29,30,31],$Ve=[6,8,13,17,23,26,27,28,29,30,31,45,46,47],$Vf=[23,45,46,47],$Vg=[23,30,31,45,46,47],$Vh=[23,26,27,28,29,45,46,47],$Vi=[6,8,13],$Vj=[1,46];
49397var parser = {trace: function trace () { },
49398yy: {},
49399symbols_: {"error":2,"mermaidDoc":3,"graphConfig":4,"CLASS_DIAGRAM":5,"NEWLINE":6,"statements":7,"EOF":8,"statement":9,"className":10,"alphaNumToken":11,"relationStatement":12,"LABEL":13,"classStatement":14,"methodStatement":15,"CLASS":16,"STRUCT_START":17,"members":18,"STRUCT_STOP":19,"MEMBER":20,"SEPARATOR":21,"relation":22,"STR":23,"relationType":24,"lineType":25,"AGGREGATION":26,"EXTENSION":27,"COMPOSITION":28,"DEPENDENCY":29,"LINE":30,"DOTTED_LINE":31,"commentToken":32,"textToken":33,"graphCodeTokens":34,"textNoTagsToken":35,"TAGSTART":36,"TAGEND":37,"==":38,"--":39,"PCT":40,"DEFAULT":41,"SPACE":42,"MINUS":43,"keywords":44,"UNICODE_TEXT":45,"NUM":46,"ALPHA":47,"$accept":0,"$end":1},
49400terminals_: {2:"error",5:"CLASS_DIAGRAM",6:"NEWLINE",8:"EOF",13:"LABEL",16:"CLASS",17:"STRUCT_START",19:"STRUCT_STOP",20:"MEMBER",21:"SEPARATOR",23:"STR",26:"AGGREGATION",27:"EXTENSION",28:"COMPOSITION",29:"DEPENDENCY",30:"LINE",31:"DOTTED_LINE",34:"graphCodeTokens",36:"TAGSTART",37:"TAGEND",38:"==",39:"--",40:"PCT",41:"DEFAULT",42:"SPACE",43:"MINUS",44:"keywords",45:"UNICODE_TEXT",46:"NUM",47:"ALPHA"},
49401productions_: [0,[3,1],[4,4],[7,1],[7,2],[7,3],[10,2],[10,1],[9,1],[9,2],[9,1],[9,1],[14,2],[14,5],[18,1],[18,2],[15,1],[15,2],[15,1],[15,1],[12,3],[12,4],[12,4],[12,5],[22,3],[22,2],[22,2],[22,1],[24,1],[24,1],[24,1],[24,1],[25,1],[25,1],[32,1],[32,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[35,1],[35,1],[35,1],[35,1],[11,1],[11,1],[11,1]],
49402performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
49403/* this == yyval */
49404
49405var $0 = $$.length - 1;
49406switch (yystate) {
49407case 6:
49408 this.$=$$[$0-1]+$$[$0];
49409break;
49410case 7:
49411 this.$=$$[$0];
49412break;
49413case 8:
49414 yy.addRelation($$[$0]);
49415break;
49416case 9:
49417 $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]);
49418break;
49419case 12:
49420yy.addClass($$[$0]);
49421break;
49422case 13:
49423/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);
49424break;
49425case 14:
49426 this.$ = [$$[$0]];
49427break;
49428case 15:
49429 $$[$0].push($$[$0-1]);this.$=$$[$0];
49430break;
49431case 16:
49432/*console.log('Rel found',$$[$0]);*/
49433break;
49434case 17:
49435yy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));
49436break;
49437case 18:
49438console.warn('Member',$$[$0]);
49439break;
49440case 19:
49441/*console.log('sep found',$$[$0]);*/
49442break;
49443case 20:
49444 this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'};
49445break;
49446case 21:
49447 this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}
49448break;
49449case 22:
49450 this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]};
49451break;
49452case 23:
49453 this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]}
49454break;
49455case 24:
49456 this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]};
49457break;
49458case 25:
49459 this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]};
49460break;
49461case 26:
49462 this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]};
49463break;
49464case 27:
49465 this.$={type1:'none',type2:'none',lineType:$$[$0]};
49466break;
49467case 28:
49468 this.$=yy.relationType.AGGREGATION;
49469break;
49470case 29:
49471 this.$=yy.relationType.EXTENSION;
49472break;
49473case 30:
49474 this.$=yy.relationType.COMPOSITION;
49475break;
49476case 31:
49477 this.$=yy.relationType.DEPENDENCY;
49478break;
49479case 32:
49480this.$=yy.lineType.LINE;
49481break;
49482case 33:
49483this.$=yy.lineType.DOTTED_LINE;
49484break;
49485}
49486},
49487table: [{3:1,4:2,5:[1,3]},{1:[3]},{1:[2,1]},{6:[1,4]},{7:5,9:6,10:10,11:14,12:7,14:8,15:9,16:$V0,20:$V1,21:$V2,45:$V3,46:$V4,47:$V5},{8:[1,18]},{6:[1,19],8:[2,3]},o($V6,[2,8],{13:[1,20]}),o($V6,[2,10]),o($V6,[2,11]),o($V6,[2,16],{22:21,24:24,25:25,13:[1,23],23:[1,22],26:$V7,27:$V8,28:$V9,29:$Va,30:$Vb,31:$Vc}),{10:32,11:14,45:$V3,46:$V4,47:$V5},o($V6,[2,18]),o($V6,[2,19]),o($Vd,[2,7],{11:14,10:33,45:$V3,46:$V4,47:$V5}),o($Ve,[2,47]),o($Ve,[2,48]),o($Ve,[2,49]),{1:[2,2]},{7:34,8:[2,4],9:6,10:10,11:14,12:7,14:8,15:9,16:$V0,20:$V1,21:$V2,45:$V3,46:$V4,47:$V5},o($V6,[2,9]),{10:35,11:14,23:[1,36],45:$V3,46:$V4,47:$V5},{22:37,24:24,25:25,26:$V7,27:$V8,28:$V9,29:$Va,30:$Vb,31:$Vc},o($V6,[2,17]),{25:38,30:$Vb,31:$Vc},o($Vf,[2,27],{24:39,26:$V7,27:$V8,28:$V9,29:$Va}),o($Vg,[2,28]),o($Vg,[2,29]),o($Vg,[2,30]),o($Vg,[2,31]),o($Vh,[2,32]),o($Vh,[2,33]),o($V6,[2,12],{17:[1,40]}),o($Vd,[2,6]),{8:[2,5]},o($Vi,[2,20]),{10:41,11:14,45:$V3,46:$V4,47:$V5},{10:42,11:14,23:[1,43],45:$V3,46:$V4,47:$V5},o($Vf,[2,26],{24:44,26:$V7,27:$V8,28:$V9,29:$Va}),o($Vf,[2,25]),{18:45,20:$Vj},o($Vi,[2,22]),o($Vi,[2,21]),{10:47,11:14,45:$V3,46:$V4,47:$V5},o($Vf,[2,24]),{19:[1,48]},{18:49,19:[2,14],20:$Vj},o($Vi,[2,23]),o($V6,[2,13]),{19:[2,15]}],
49488defaultActions: {2:[2,1],18:[2,2],34:[2,5],49:[2,15]},
49489parseError: function parseError (str, hash) {
49490 if (hash.recoverable) {
49491 this.trace(str);
49492 } else {
49493 var error = new Error(str);
49494 error.hash = hash;
49495 throw error;
49496 }
49497},
49498parse: function parse(input) {
49499 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
49500 var args = lstack.slice.call(arguments, 1);
49501 var lexer = Object.create(this.lexer);
49502 var sharedState = { yy: {} };
49503 for (var k in this.yy) {
49504 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
49505 sharedState.yy[k] = this.yy[k];
49506 }
49507 }
49508 lexer.setInput(input, sharedState.yy);
49509 sharedState.yy.lexer = lexer;
49510 sharedState.yy.parser = this;
49511 if (typeof lexer.yylloc == 'undefined') {
49512 lexer.yylloc = {};
49513 }
49514 var yyloc = lexer.yylloc;
49515 lstack.push(yyloc);
49516 var ranges = lexer.options && lexer.options.ranges;
49517 if (typeof sharedState.yy.parseError === 'function') {
49518 this.parseError = sharedState.yy.parseError;
49519 } else {
49520 this.parseError = Object.getPrototypeOf(this).parseError;
49521 }
49522 function popStack(n) {
49523 stack.length = stack.length - 2 * n;
49524 vstack.length = vstack.length - n;
49525 lstack.length = lstack.length - n;
49526 }
49527 function lex() {
49528 var token;
49529 token = tstack.pop() || lexer.lex() || EOF;
49530 if (typeof token !== 'number') {
49531 if (token instanceof Array) {
49532 tstack = token;
49533 token = tstack.pop();
49534 }
49535 token = self.symbols_[token] || token;
49536 }
49537 return token;
49538 }
49539 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
49540 while (true) {
49541 state = stack[stack.length - 1];
49542 if (this.defaultActions[state]) {
49543 action = this.defaultActions[state];
49544 } else {
49545 if (symbol === null || typeof symbol == 'undefined') {
49546 symbol = lex();
49547 }
49548 action = table[state] && table[state][symbol];
49549 }
49550 if (typeof action === 'undefined' || !action.length || !action[0]) {
49551 var errStr = '';
49552 expected = [];
49553 for (p in table[state]) {
49554 if (this.terminals_[p] && p > TERROR) {
49555 expected.push('\'' + this.terminals_[p] + '\'');
49556 }
49557 }
49558 if (lexer.showPosition) {
49559 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
49560 } else {
49561 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
49562 }
49563 this.parseError(errStr, {
49564 text: lexer.match,
49565 token: this.terminals_[symbol] || symbol,
49566 line: lexer.yylineno,
49567 loc: yyloc,
49568 expected: expected
49569 });
49570 }
49571 if (action[0] instanceof Array && action.length > 1) {
49572 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
49573 }
49574 switch (action[0]) {
49575 case 1:
49576 stack.push(symbol);
49577 vstack.push(lexer.yytext);
49578 lstack.push(lexer.yylloc);
49579 stack.push(action[1]);
49580 symbol = null;
49581 if (!preErrorSymbol) {
49582 yyleng = lexer.yyleng;
49583 yytext = lexer.yytext;
49584 yylineno = lexer.yylineno;
49585 yyloc = lexer.yylloc;
49586 if (recovering > 0) {
49587 recovering--;
49588 }
49589 } else {
49590 symbol = preErrorSymbol;
49591 preErrorSymbol = null;
49592 }
49593 break;
49594 case 2:
49595 len = this.productions_[action[1]][1];
49596 yyval.$ = vstack[vstack.length - len];
49597 yyval._$ = {
49598 first_line: lstack[lstack.length - (len || 1)].first_line,
49599 last_line: lstack[lstack.length - 1].last_line,
49600 first_column: lstack[lstack.length - (len || 1)].first_column,
49601 last_column: lstack[lstack.length - 1].last_column
49602 };
49603 if (ranges) {
49604 yyval._$.range = [
49605 lstack[lstack.length - (len || 1)].range[0],
49606 lstack[lstack.length - 1].range[1]
49607 ];
49608 }
49609 r = this.performAction.apply(yyval, [
49610 yytext,
49611 yyleng,
49612 yylineno,
49613 sharedState.yy,
49614 action[1],
49615 vstack,
49616 lstack
49617 ].concat(args));
49618 if (typeof r !== 'undefined') {
49619 return r;
49620 }
49621 if (len) {
49622 stack = stack.slice(0, -1 * len * 2);
49623 vstack = vstack.slice(0, -1 * len);
49624 lstack = lstack.slice(0, -1 * len);
49625 }
49626 stack.push(this.productions_[action[1]][0]);
49627 vstack.push(yyval.$);
49628 lstack.push(yyval._$);
49629 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
49630 stack.push(newState);
49631 break;
49632 case 3:
49633 return true;
49634 }
49635 }
49636 return true;
49637}};
49638
49639/* generated by jison-lex 0.3.4 */
49640var lexer = (function(){
49641var lexer = ({
49642
49643EOF:1,
49644
49645parseError:function parseError(str, hash) {
49646 if (this.yy.parser) {
49647 this.yy.parser.parseError(str, hash);
49648 } else {
49649 throw new Error(str);
49650 }
49651 },
49652
49653// resets the lexer, sets new input
49654setInput:function (input, yy) {
49655 this.yy = yy || this.yy || {};
49656 this._input = input;
49657 this._more = this._backtrack = this.done = false;
49658 this.yylineno = this.yyleng = 0;
49659 this.yytext = this.matched = this.match = '';
49660 this.conditionStack = ['INITIAL'];
49661 this.yylloc = {
49662 first_line: 1,
49663 first_column: 0,
49664 last_line: 1,
49665 last_column: 0
49666 };
49667 if (this.options.ranges) {
49668 this.yylloc.range = [0,0];
49669 }
49670 this.offset = 0;
49671 return this;
49672 },
49673
49674// consumes and returns one char from the input
49675input:function () {
49676 var ch = this._input[0];
49677 this.yytext += ch;
49678 this.yyleng++;
49679 this.offset++;
49680 this.match += ch;
49681 this.matched += ch;
49682 var lines = ch.match(/(?:\r\n?|\n).*/g);
49683 if (lines) {
49684 this.yylineno++;
49685 this.yylloc.last_line++;
49686 } else {
49687 this.yylloc.last_column++;
49688 }
49689 if (this.options.ranges) {
49690 this.yylloc.range[1]++;
49691 }
49692
49693 this._input = this._input.slice(1);
49694 return ch;
49695 },
49696
49697// unshifts one char (or a string) into the input
49698unput:function (ch) {
49699 var len = ch.length;
49700 var lines = ch.split(/(?:\r\n?|\n)/g);
49701
49702 this._input = ch + this._input;
49703 this.yytext = this.yytext.substr(0, this.yytext.length - len);
49704 //this.yyleng -= len;
49705 this.offset -= len;
49706 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
49707 this.match = this.match.substr(0, this.match.length - 1);
49708 this.matched = this.matched.substr(0, this.matched.length - 1);
49709
49710 if (lines.length - 1) {
49711 this.yylineno -= lines.length - 1;
49712 }
49713 var r = this.yylloc.range;
49714
49715 this.yylloc = {
49716 first_line: this.yylloc.first_line,
49717 last_line: this.yylineno + 1,
49718 first_column: this.yylloc.first_column,
49719 last_column: lines ?
49720 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
49721 + oldLines[oldLines.length - lines.length].length - lines[0].length :
49722 this.yylloc.first_column - len
49723 };
49724
49725 if (this.options.ranges) {
49726 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
49727 }
49728 this.yyleng = this.yytext.length;
49729 return this;
49730 },
49731
49732// When called from action, caches matched text and appends it on next action
49733more:function () {
49734 this._more = true;
49735 return this;
49736 },
49737
49738// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
49739reject:function () {
49740 if (this.options.backtrack_lexer) {
49741 this._backtrack = true;
49742 } else {
49743 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
49744 text: "",
49745 token: null,
49746 line: this.yylineno
49747 });
49748
49749 }
49750 return this;
49751 },
49752
49753// retain first n characters of the match
49754less:function (n) {
49755 this.unput(this.match.slice(n));
49756 },
49757
49758// displays already matched input, i.e. for error messages
49759pastInput:function () {
49760 var past = this.matched.substr(0, this.matched.length - this.match.length);
49761 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
49762 },
49763
49764// displays upcoming input, i.e. for error messages
49765upcomingInput:function () {
49766 var next = this.match;
49767 if (next.length < 20) {
49768 next += this._input.substr(0, 20-next.length);
49769 }
49770 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
49771 },
49772
49773// displays the character position where the lexing error occurred, i.e. for error messages
49774showPosition:function () {
49775 var pre = this.pastInput();
49776 var c = new Array(pre.length + 1).join("-");
49777 return pre + this.upcomingInput() + "\n" + c + "^";
49778 },
49779
49780// test the lexed token: return FALSE when not a match, otherwise return token
49781test_match:function(match, indexed_rule) {
49782 var token,
49783 lines,
49784 backup;
49785
49786 if (this.options.backtrack_lexer) {
49787 // save context
49788 backup = {
49789 yylineno: this.yylineno,
49790 yylloc: {
49791 first_line: this.yylloc.first_line,
49792 last_line: this.last_line,
49793 first_column: this.yylloc.first_column,
49794 last_column: this.yylloc.last_column
49795 },
49796 yytext: this.yytext,
49797 match: this.match,
49798 matches: this.matches,
49799 matched: this.matched,
49800 yyleng: this.yyleng,
49801 offset: this.offset,
49802 _more: this._more,
49803 _input: this._input,
49804 yy: this.yy,
49805 conditionStack: this.conditionStack.slice(0),
49806 done: this.done
49807 };
49808 if (this.options.ranges) {
49809 backup.yylloc.range = this.yylloc.range.slice(0);
49810 }
49811 }
49812
49813 lines = match[0].match(/(?:\r\n?|\n).*/g);
49814 if (lines) {
49815 this.yylineno += lines.length;
49816 }
49817 this.yylloc = {
49818 first_line: this.yylloc.last_line,
49819 last_line: this.yylineno + 1,
49820 first_column: this.yylloc.last_column,
49821 last_column: lines ?
49822 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
49823 this.yylloc.last_column + match[0].length
49824 };
49825 this.yytext += match[0];
49826 this.match += match[0];
49827 this.matches = match;
49828 this.yyleng = this.yytext.length;
49829 if (this.options.ranges) {
49830 this.yylloc.range = [this.offset, this.offset += this.yyleng];
49831 }
49832 this._more = false;
49833 this._backtrack = false;
49834 this._input = this._input.slice(match[0].length);
49835 this.matched += match[0];
49836 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
49837 if (this.done && this._input) {
49838 this.done = false;
49839 }
49840 if (token) {
49841 return token;
49842 } else if (this._backtrack) {
49843 // recover context
49844 for (var k in backup) {
49845 this[k] = backup[k];
49846 }
49847 return false; // rule action called reject() implying the next rule should be tested instead.
49848 }
49849 return false;
49850 },
49851
49852// return next match in input
49853next:function () {
49854 if (this.done) {
49855 return this.EOF;
49856 }
49857 if (!this._input) {
49858 this.done = true;
49859 }
49860
49861 var token,
49862 match,
49863 tempMatch,
49864 index;
49865 if (!this._more) {
49866 this.yytext = '';
49867 this.match = '';
49868 }
49869 var rules = this._currentRules();
49870 for (var i = 0; i < rules.length; i++) {
49871 tempMatch = this._input.match(this.rules[rules[i]]);
49872 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
49873 match = tempMatch;
49874 index = i;
49875 if (this.options.backtrack_lexer) {
49876 token = this.test_match(tempMatch, rules[i]);
49877 if (token !== false) {
49878 return token;
49879 } else if (this._backtrack) {
49880 match = false;
49881 continue; // rule action called reject() implying a rule MISmatch.
49882 } else {
49883 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
49884 return false;
49885 }
49886 } else if (!this.options.flex) {
49887 break;
49888 }
49889 }
49890 }
49891 if (match) {
49892 token = this.test_match(match, rules[index]);
49893 if (token !== false) {
49894 return token;
49895 }
49896 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
49897 return false;
49898 }
49899 if (this._input === "") {
49900 return this.EOF;
49901 } else {
49902 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
49903 text: "",
49904 token: null,
49905 line: this.yylineno
49906 });
49907 }
49908 },
49909
49910// return next match that has a token
49911lex:function lex () {
49912 var r = this.next();
49913 if (r) {
49914 return r;
49915 } else {
49916 return this.lex();
49917 }
49918 },
49919
49920// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
49921begin:function begin (condition) {
49922 this.conditionStack.push(condition);
49923 },
49924
49925// pop the previously active lexer condition state off the condition stack
49926popState:function popState () {
49927 var n = this.conditionStack.length - 1;
49928 if (n > 0) {
49929 return this.conditionStack.pop();
49930 } else {
49931 return this.conditionStack[0];
49932 }
49933 },
49934
49935// produce the lexer rule set which is active for the currently active lexer condition state
49936_currentRules:function _currentRules () {
49937 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
49938 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
49939 } else {
49940 return this.conditions["INITIAL"].rules;
49941 }
49942 },
49943
49944// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
49945topState:function topState (n) {
49946 n = this.conditionStack.length - 1 - Math.abs(n || 0);
49947 if (n >= 0) {
49948 return this.conditionStack[n];
49949 } else {
49950 return "INITIAL";
49951 }
49952 },
49953
49954// alias for begin(condition)
49955pushState:function pushState (condition) {
49956 this.begin(condition);
49957 },
49958
49959// return the number of states currently on the stack
49960stateStackSize:function stateStackSize() {
49961 return this.conditionStack.length;
49962 },
49963options: {},
49964performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
49965var YYSTATE=YY_START;
49966switch($avoiding_name_collisions) {
49967case 0:/* do nothing */
49968break;
49969case 1:return 6;
49970break;
49971case 2:/* skip whitespace */
49972break;
49973case 3:return 5;
49974break;
49975case 4: this.begin("struct"); /*console.log('Starting struct');*/return 17;
49976break;
49977case 5: /*console.log('Ending struct');*/this.popState(); return 19;
49978break;
49979case 6:/* nothing */
49980break;
49981case 7: /*console.log('lex-member: ' + yy_.yytext);*/ return "MEMBER";
49982break;
49983case 8:return 16;
49984break;
49985case 9:this.begin("string");
49986break;
49987case 10:this.popState();
49988break;
49989case 11:return "STR";
49990break;
49991case 12:return 27;
49992break;
49993case 13:return 27;
49994break;
49995case 14:return 29;
49996break;
49997case 15:return 29;
49998break;
49999case 16:return 28;
50000break;
50001case 17:return 26;
50002break;
50003case 18:return 30;
50004break;
50005case 19:return 31;
50006break;
50007case 20:return 13;
50008break;
50009case 21:return 43;
50010break;
50011case 22:return 'DOT';
50012break;
50013case 23:return 'PLUS';
50014break;
50015case 24:return 40;
50016break;
50017case 25:return 'EQUALS';
50018break;
50019case 26:return 'EQUALS';
50020break;
50021case 27:return 47;
50022break;
50023case 28:return 'PUNCTUATION';
50024break;
50025case 29:return 46;
50026break;
50027case 30:return 45;
50028break;
50029case 31:return 42;
50030break;
50031case 32:return 8;
50032break;
50033}
50034},
50035rules: [/^(?:%%[^\n]*)/,/^(?:\n+)/,/^(?:\s+)/,/^(?:classDiagram\b)/,/^(?:[\{])/,/^(?:\})/,/^(?:[\n])/,/^(?:[^\{\}\n]*)/,/^(?:class\b)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::[^#\n;]+)/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],
50036conditions: {"string":{"rules":[10,11],"inclusive":false},"struct":{"rules":[5,6,7],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,8,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],"inclusive":true}}
50037});
50038return lexer;
50039})();
50040parser.lexer = lexer;
50041function Parser () {
50042 this.yy = {};
50043}
50044Parser.prototype = parser;parser.Parser = Parser;
50045return new Parser;
50046})();
50047
50048
50049if (true) {
50050exports.parser = parser;
50051exports.Parser = parser.Parser;
50052exports.parse = function () { return parser.parse.apply(parser, arguments); };
50053exports.main = function commonjsMain (args) {
50054 if (!args[1]) {
50055 console.log('Usage: '+args[0]+' FILE');
50056 process.exit(1);
50057 }
50058 var source = __webpack_require__(/*! fs */ "./node_modules/node-libs-browser/mock/empty.js").readFileSync(__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize(args[1]), "utf8");
50059 return exports.parser.parse(source);
50060};
50061if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
50062 exports.main(process.argv.slice(1));
50063}
50064}
50065/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
50066
50067/***/ }),
50068
50069/***/ "./src/diagrams/flowchart/flowDb.js":
50070/*!******************************************!*\
50071 !*** ./src/diagrams/flowchart/flowDb.js ***!
50072 \******************************************/
50073/*! exports provided: addVertex, addLink, updateLinkInterpolate, updateLink, addClass, setDirection, setClass, setLink, getTooltip, setClickEvent, bindFunctions, getDirection, getVertices, getEdges, getClasses, clear, defaultStyle, addSubGraph, getDepthFirstPos, indexNodes, getSubGraphs, firstGraph, default */
50074/***/ (function(module, __webpack_exports__, __webpack_require__) {
50075
50076"use strict";
50077__webpack_require__.r(__webpack_exports__);
50078/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertex", function() { return addVertex; });
50079/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addLink", function() { return addLink; });
50080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLinkInterpolate", function() { return updateLinkInterpolate; });
50081/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLink", function() { return updateLink; });
50082/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; });
50083/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDirection", function() { return setDirection; });
50084/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClass", function() { return setClass; });
50085/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
50086/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTooltip", function() { return getTooltip; });
50087/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
50088/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
50089/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; });
50090/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVertices", function() { return getVertices; });
50091/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEdges", function() { return getEdges; });
50092/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
50093/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
50094/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultStyle", function() { return defaultStyle; });
50095/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSubGraph", function() { return addSubGraph; });
50096/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDepthFirstPos", function() { return getDepthFirstPos; });
50097/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "indexNodes", function() { return indexNodes; });
50098/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSubGraphs", function() { return getSubGraphs; });
50099/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstGraph", function() { return firstGraph; });
50100/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
50101/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js");
50102/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__);
50103/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
50104/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
50105/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
50106
50107
50108
50109
50110
50111const config = Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])();
50112let vertices = {};
50113let edges = [];
50114let classes = [];
50115let subGraphs = [];
50116let subGraphLookup = {};
50117let tooltips = {};
50118let subCount = 0;
50119let firstGraphFlag = true;
50120let direction; // Functions to be run after graph rendering
50121
50122let funs = [];
50123
50124const sanitize = text => {
50125 let txt = text;
50126
50127 if (config.securityLevel !== 'loose') {
50128 txt = txt.replace(/<br>/g, '#br#');
50129 txt = txt.replace(/<br\S*?\/>/g, '#br#');
50130 txt = txt.replace(/</g, '&lt;').replace(/>/g, '&gt;');
50131 txt = txt.replace(/=/g, '&equals;');
50132 txt = txt.replace(/#br#/g, '<br/>');
50133 }
50134
50135 return txt;
50136};
50137/**
50138 * Function called by parser when a node definition has been found
50139 * @param id
50140 * @param text
50141 * @param type
50142 * @param style
50143 * @param classes
50144 */
50145
50146
50147const addVertex = function (_id, text, type, style, classes) {
50148 let txt;
50149 let id = _id;
50150
50151 if (typeof id === 'undefined') {
50152 return;
50153 }
50154
50155 if (id.trim().length === 0) {
50156 return;
50157 }
50158
50159 if (id[0].match(/\d/)) id = 's' + id;
50160
50161 if (typeof vertices[id] === 'undefined') {
50162 vertices[id] = {
50163 id: id,
50164 styles: [],
50165 classes: []
50166 };
50167 }
50168
50169 if (typeof text !== 'undefined') {
50170 txt = sanitize(text.trim()); // strip quotes if string starts and exnds with a quote
50171
50172 if (txt[0] === '"' && txt[txt.length - 1] === '"') {
50173 txt = txt.substring(1, txt.length - 1);
50174 }
50175
50176 vertices[id].text = txt;
50177 } else {
50178 if (!vertices[id].text) {
50179 vertices[id].text = _id;
50180 }
50181 }
50182
50183 if (typeof type !== 'undefined') {
50184 vertices[id].type = type;
50185 }
50186
50187 if (typeof style !== 'undefined') {
50188 if (style !== null) {
50189 style.forEach(function (s) {
50190 vertices[id].styles.push(s);
50191 });
50192 }
50193 }
50194
50195 if (typeof classes !== 'undefined') {
50196 if (classes !== null) {
50197 classes.forEach(function (s) {
50198 vertices[id].classes.push(s);
50199 });
50200 }
50201 }
50202};
50203/**
50204 * Function called by parser when a link/edge definition has been found
50205 * @param start
50206 * @param end
50207 * @param type
50208 * @param linktext
50209 */
50210
50211const addLink = function (_start, _end, type, linktext) {
50212 let start = _start;
50213 let end = _end;
50214 if (start[0].match(/\d/)) start = 's' + start;
50215 if (end[0].match(/\d/)) end = 's' + end;
50216 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].info('Got edge...', start, end);
50217 const edge = {
50218 start: start,
50219 end: end,
50220 type: undefined,
50221 text: ''
50222 };
50223 linktext = type.text;
50224
50225 if (typeof linktext !== 'undefined') {
50226 edge.text = sanitize(linktext.trim()); // strip quotes if string starts and exnds with a quote
50227
50228 if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
50229 edge.text = edge.text.substring(1, edge.text.length - 1);
50230 }
50231 }
50232
50233 if (typeof type !== 'undefined') {
50234 edge.type = type.type;
50235 edge.stroke = type.stroke;
50236 }
50237
50238 edges.push(edge);
50239};
50240/**
50241 * Updates a link's line interpolation algorithm
50242 * @param pos
50243 * @param interpolate
50244 */
50245
50246const updateLinkInterpolate = function (positions, interp) {
50247 positions.forEach(function (pos) {
50248 if (pos === 'default') {
50249 edges.defaultInterpolate = interp;
50250 } else {
50251 edges[pos].interpolate = interp;
50252 }
50253 });
50254};
50255/**
50256 * Updates a link with a style
50257 * @param pos
50258 * @param style
50259 */
50260
50261const updateLink = function (positions, style) {
50262 positions.forEach(function (pos) {
50263 if (pos === 'default') {
50264 edges.defaultStyle = style;
50265 } else {
50266 if (_utils__WEBPACK_IMPORTED_MODULE_3__["default"].isSubstringInArray('fill', style) === -1) {
50267 style.push('fill:none');
50268 }
50269
50270 edges[pos].style = style;
50271 }
50272 });
50273};
50274const addClass = function (id, style) {
50275 if (typeof classes[id] === 'undefined') {
50276 classes[id] = {
50277 id: id,
50278 styles: []
50279 };
50280 }
50281
50282 if (typeof style !== 'undefined') {
50283 if (style !== null) {
50284 style.forEach(function (s) {
50285 classes[id].styles.push(s);
50286 });
50287 }
50288 }
50289};
50290/**
50291 * Called by parser when a graph definition is found, stores the direction of the chart.
50292 * @param dir
50293 */
50294
50295const setDirection = function (dir) {
50296 direction = dir;
50297
50298 if (direction.match(/.*</)) {
50299 direction = 'RL';
50300 }
50301
50302 if (direction.match(/.*\^/)) {
50303 direction = 'BT';
50304 }
50305
50306 if (direction.match(/.*>/)) {
50307 direction = 'LR';
50308 }
50309
50310 if (direction.match(/.*v/)) {
50311 direction = 'TB';
50312 }
50313};
50314/**
50315 * Called by parser when a special node is found, e.g. a clickable element.
50316 * @param ids Comma separated list of ids
50317 * @param className Class to add
50318 */
50319
50320const setClass = function (ids, className) {
50321 ids.split(',').forEach(function (_id) {
50322 let id = _id;
50323 if (_id[0].match(/\d/)) id = 's' + id;
50324
50325 if (typeof vertices[id] !== 'undefined') {
50326 vertices[id].classes.push(className);
50327 }
50328
50329 if (typeof subGraphLookup[id] !== 'undefined') {
50330 subGraphLookup[id].classes.push(className);
50331 }
50332 });
50333};
50334
50335const setTooltip = function (ids, tooltip) {
50336 ids.split(',').forEach(function (id) {
50337 if (typeof tooltip !== 'undefined') {
50338 tooltips[id] = sanitize(tooltip);
50339 }
50340 });
50341};
50342
50343const setClickFun = function (_id, functionName) {
50344 let id = _id;
50345 if (_id[0].match(/\d/)) id = 's' + id;
50346
50347 if (config.securityLevel !== 'loose') {
50348 return;
50349 }
50350
50351 if (typeof functionName === 'undefined') {
50352 return;
50353 }
50354
50355 if (typeof vertices[id] !== 'undefined') {
50356 funs.push(function (element) {
50357 const elem = document.querySelector(`[id="${id}"]`);
50358
50359 if (elem !== null) {
50360 elem.addEventListener('click', function () {
50361 window[functionName](id);
50362 }, false);
50363 }
50364 });
50365 }
50366};
50367/**
50368 * Called by parser when a link is found. Adds the URL to the vertex data.
50369 * @param ids Comma separated list of ids
50370 * @param linkStr URL to create a link for
50371 * @param tooltip Tooltip for the clickable element
50372 */
50373
50374
50375const setLink = function (ids, linkStr, tooltip) {
50376 ids.split(',').forEach(function (_id) {
50377 let id = _id;
50378 if (_id[0].match(/\d/)) id = 's' + id;
50379
50380 if (typeof vertices[id] !== 'undefined') {
50381 if (config.securityLevel !== 'loose') {
50382 vertices[id].link = Object(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__["sanitizeUrl"])(linkStr); // .replace(/javascript:.*/g, '')
50383 } else {
50384 vertices[id].link = linkStr;
50385 }
50386 }
50387 });
50388 setTooltip(ids, tooltip);
50389 setClass(ids, 'clickable');
50390};
50391const getTooltip = function (id) {
50392 return tooltips[id];
50393};
50394/**
50395 * Called by parser when a click definition is found. Registers an event handler.
50396 * @param ids Comma separated list of ids
50397 * @param functionName Function to be called on click
50398 * @param tooltip Tooltip for the clickable element
50399 */
50400
50401const setClickEvent = function (ids, functionName, tooltip) {
50402 ids.split(',').forEach(function (id) {
50403 setClickFun(id, functionName);
50404 });
50405 setTooltip(ids, tooltip);
50406 setClass(ids, 'clickable');
50407};
50408const bindFunctions = function (element) {
50409 funs.forEach(function (fun) {
50410 fun(element);
50411 });
50412};
50413const getDirection = function () {
50414 return direction.trim();
50415};
50416/**
50417 * Retrieval function for fetching the found nodes after parsing has completed.
50418 * @returns {{}|*|vertices}
50419 */
50420
50421const getVertices = function () {
50422 return vertices;
50423};
50424/**
50425 * Retrieval function for fetching the found links after parsing has completed.
50426 * @returns {{}|*|edges}
50427 */
50428
50429const getEdges = function () {
50430 return edges;
50431};
50432/**
50433 * Retrieval function for fetching the found class definitions after parsing has completed.
50434 * @returns {{}|*|classes}
50435 */
50436
50437const getClasses = function () {
50438 return classes;
50439};
50440
50441const setupToolTips = function (element) {
50442 let tooltipElem = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('.mermaidTooltip');
50443
50444 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
50445 tooltipElem = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
50446 }
50447
50448 const svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"](element).select('svg');
50449 const nodes = svg.selectAll('g.node');
50450 nodes.on('mouseover', function () {
50451 const el = d3__WEBPACK_IMPORTED_MODULE_0__["select"](this);
50452 const title = el.attr('title'); // Dont try to draw a tooltip if no data is provided
50453
50454 if (title === null) {
50455 return;
50456 }
50457
50458 const rect = this.getBoundingClientRect();
50459 tooltipElem.transition().duration(200).style('opacity', '.9');
50460 tooltipElem.html(el.attr('title')).style('left', rect.left + (rect.right - rect.left) / 2 + 'px').style('top', rect.top - 14 + document.body.scrollTop + 'px');
50461 el.classed('hover', true);
50462 }).on('mouseout', function () {
50463 tooltipElem.transition().duration(500).style('opacity', 0);
50464 const el = d3__WEBPACK_IMPORTED_MODULE_0__["select"](this);
50465 el.classed('hover', false);
50466 });
50467};
50468
50469funs.push(setupToolTips);
50470/**
50471 * Clears the internal graph db so that a new graph can be parsed.
50472 */
50473
50474const clear = function () {
50475 vertices = {};
50476 classes = {};
50477 edges = [];
50478 funs = [];
50479 funs.push(setupToolTips);
50480 subGraphs = [];
50481 subGraphLookup = {};
50482 subCount = 0;
50483 tooltips = [];
50484 firstGraphFlag = true;
50485};
50486/**
50487 *
50488 * @returns {string}
50489 */
50490
50491const defaultStyle = function () {
50492 return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;';
50493};
50494/**
50495 * Clears the internal graph db so that a new graph can be parsed.
50496 */
50497
50498const addSubGraph = function (_id, list, _title) {
50499 let id = _id;
50500 let title = _title;
50501
50502 if (_id === _title && _title.match(/\s/)) {
50503 id = undefined;
50504 }
50505
50506 function uniq(a) {
50507 const prims = {
50508 boolean: {},
50509 number: {},
50510 string: {}
50511 };
50512 const objs = [];
50513 return a.filter(function (item) {
50514 const type = typeof item;
50515
50516 if (item.trim() === '') {
50517 return false;
50518 }
50519
50520 if (type in prims) {
50521 return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;
50522 } else {
50523 return objs.indexOf(item) >= 0 ? false : objs.push(item);
50524 }
50525 });
50526 }
50527
50528 let nodeList = [];
50529 nodeList = uniq(nodeList.concat.apply(nodeList, list));
50530
50531 for (let i = 0; i < nodeList.length; i++) {
50532 if (nodeList[i][0].match(/\d/)) nodeList[i] = 's' + nodeList[i];
50533 }
50534
50535 id = id || 'subGraph' + subCount;
50536 if (id[0].match(/\d/)) id = 's' + id;
50537 title = title || '';
50538 title = sanitize(title);
50539 subCount = subCount + 1;
50540 const subGraph = {
50541 id: id,
50542 nodes: nodeList,
50543 title: title.trim(),
50544 classes: []
50545 };
50546 subGraphs.push(subGraph);
50547 subGraphLookup[id] = subGraph;
50548 return id;
50549};
50550
50551const getPosForId = function (id) {
50552 for (let i = 0; i < subGraphs.length; i++) {
50553 if (subGraphs[i].id === id) {
50554 return i;
50555 }
50556 }
50557
50558 return -1;
50559};
50560
50561let secCount = -1;
50562const posCrossRef = [];
50563
50564const indexNodes2 = function (id, pos) {
50565 const nodes = subGraphs[pos].nodes;
50566 secCount = secCount + 1;
50567
50568 if (secCount > 2000) {
50569 return;
50570 }
50571
50572 posCrossRef[secCount] = pos; // Check if match
50573
50574 if (subGraphs[pos].id === id) {
50575 return {
50576 result: true,
50577 count: 0
50578 };
50579 }
50580
50581 let count = 0;
50582 let posCount = 1;
50583
50584 while (count < nodes.length) {
50585 const childPos = getPosForId(nodes[count]); // Ignore regular nodes (pos will be -1)
50586
50587 if (childPos >= 0) {
50588 const res = indexNodes2(id, childPos);
50589
50590 if (res.result) {
50591 return {
50592 result: true,
50593 count: posCount + res.count
50594 };
50595 } else {
50596 posCount = posCount + res.count;
50597 }
50598 }
50599
50600 count = count + 1;
50601 }
50602
50603 return {
50604 result: false,
50605 count: posCount
50606 };
50607};
50608
50609const getDepthFirstPos = function (pos) {
50610 return posCrossRef[pos];
50611};
50612const indexNodes = function () {
50613 secCount = -1;
50614
50615 if (subGraphs.length > 0) {
50616 indexNodes2('none', subGraphs.length - 1, 0);
50617 }
50618};
50619const getSubGraphs = function () {
50620 return subGraphs;
50621};
50622const firstGraph = () => {
50623 if (firstGraphFlag) {
50624 firstGraphFlag = false;
50625 return true;
50626 }
50627
50628 return false;
50629};
50630/* harmony default export */ __webpack_exports__["default"] = ({
50631 addVertex,
50632 addLink,
50633 updateLinkInterpolate,
50634 updateLink,
50635 addClass,
50636 setDirection,
50637 setClass,
50638 getTooltip,
50639 setClickEvent,
50640 setLink,
50641 bindFunctions,
50642 getDirection,
50643 getVertices,
50644 getEdges,
50645 getClasses,
50646 clear,
50647 defaultStyle,
50648 addSubGraph,
50649 getDepthFirstPos,
50650 indexNodes,
50651 getSubGraphs,
50652 lex: {
50653 firstGraph
50654 }
50655});
50656
50657/***/ }),
50658
50659/***/ "./src/diagrams/flowchart/flowRenderer.js":
50660/*!************************************************!*\
50661 !*** ./src/diagrams/flowchart/flowRenderer.js ***!
50662 \************************************************/
50663/*! exports provided: setConf, addVertices, addEdges, getClasses, draw, default */
50664/***/ (function(module, __webpack_exports__, __webpack_require__) {
50665
50666"use strict";
50667__webpack_require__.r(__webpack_exports__);
50668/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
50669/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertices", function() { return addVertices; });
50670/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEdges", function() { return addEdges; });
50671/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
50672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
50673/* harmony import */ var graphlibrary__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlibrary */ "./node_modules/graphlibrary/index.js");
50674/* harmony import */ var graphlibrary__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlibrary__WEBPACK_IMPORTED_MODULE_0__);
50675/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
50676/* harmony import */ var _flowDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flowDb */ "./src/diagrams/flowchart/flowDb.js");
50677/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
50678/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_flow__WEBPACK_IMPORTED_MODULE_3__);
50679/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
50680/* harmony import */ var dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! dagre-d3-renderer */ "./node_modules/dagre-d3-renderer/dist/dagre-d3.core.js");
50681/* harmony import */ var dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5__);
50682/* harmony import */ var dagre_d3_renderer_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! dagre-d3-renderer/lib/label/add-html-label.js */ "./node_modules/dagre-d3-renderer/lib/label/add-html-label.js");
50683/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
50684/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
50685
50686
50687
50688
50689
50690
50691
50692
50693
50694const conf = {};
50695const setConf = function (cnf) {
50696 const keys = Object.keys(cnf);
50697
50698 for (let i = 0; i < keys.length; i++) {
50699 conf[keys[i]] = cnf[keys[i]];
50700 }
50701};
50702/**
50703 * Function that adds the vertices found in the graph definition to the graph to be rendered.
50704 * @param vert Object containing the vertices.
50705 * @param g The graph that is to be drawn.
50706 */
50707
50708const addVertices = function (vert, g, svgId) {
50709 const svg = d3__WEBPACK_IMPORTED_MODULE_1__["select"](`[id="${svgId}"]`);
50710 const keys = Object.keys(vert);
50711
50712 const styleFromStyleArr = function (styleStr, arr, {
50713 label
50714 }) {
50715 if (!label) {
50716 // Create a compound style definition from the style definitions found for the node in the graph definition
50717 for (let i = 0; i < arr.length; i++) {
50718 if (typeof arr[i] !== 'undefined') {
50719 styleStr = styleStr + arr[i] + ';';
50720 }
50721 }
50722 } else {
50723 for (let i = 0; i < arr.length; i++) {
50724 if (typeof arr[i] !== 'undefined') {
50725 if (arr[i].match('^color:')) styleStr = styleStr + arr[i] + ';';
50726 }
50727 }
50728 }
50729
50730 return styleStr;
50731 }; // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
50732
50733
50734 keys.forEach(function (id) {
50735 const vertex = vert[id];
50736 /**
50737 * Variable for storing the classes for the vertex
50738 * @type {string}
50739 */
50740
50741 let classStr = '';
50742
50743 if (vertex.classes.length > 0) {
50744 classStr = vertex.classes.join(' ');
50745 }
50746 /**
50747 * Variable for storing the extracted style for the vertex
50748 * @type {string}
50749 */
50750
50751
50752 let style = ''; // Create a compound style definition from the style definitions found for the node in the graph definition
50753
50754 style = styleFromStyleArr(style, vertex.styles, {
50755 label: false
50756 });
50757 let labelStyle = '';
50758 labelStyle = styleFromStyleArr(labelStyle, vertex.styles, {
50759 label: true
50760 }); // Use vertex id as text in the box if no text is provided by the graph definition
50761
50762 let vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
50763
50764 let vertexNode;
50765
50766 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
50767 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
50768 const node = {
50769 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, s => `<i class='${s.replace(':', ' ')}'></i>`)
50770 };
50771 vertexNode = Object(dagre_d3_renderer_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6__["default"])(svg, node).node();
50772 vertexNode.parentNode.removeChild(vertexNode);
50773 } else {
50774 const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
50775 const rows = vertexText.split(/<br[/]{0,1}>/);
50776
50777 for (let j = 0; j < rows.length; j++) {
50778 const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
50779 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
50780 tspan.setAttribute('dy', '1em');
50781 tspan.setAttribute('x', '1');
50782 tspan.textContent = rows[j];
50783 svgLabel.appendChild(tspan);
50784 }
50785
50786 vertexNode = svgLabel;
50787 } // If the node has a link, we wrap it in a SVG link
50788
50789
50790 if (vertex.link) {
50791 const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
50792 link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
50793 link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
50794 link.appendChild(vertexNode);
50795 vertexNode = link;
50796 }
50797
50798 let radious = 0;
50799 let _shape = ''; // Set the shape based parameters
50800
50801 switch (vertex.type) {
50802 case 'round':
50803 radious = 5;
50804 _shape = 'rect';
50805 break;
50806
50807 case 'square':
50808 _shape = 'rect';
50809 break;
50810
50811 case 'diamond':
50812 _shape = 'question';
50813 break;
50814
50815 case 'odd':
50816 _shape = 'rect_left_inv_arrow';
50817 break;
50818
50819 case 'lean_right':
50820 _shape = 'lean_right';
50821 break;
50822
50823 case 'lean_left':
50824 _shape = 'lean_left';
50825 break;
50826
50827 case 'trapezoid':
50828 _shape = 'trapezoid';
50829 break;
50830
50831 case 'inv_trapezoid':
50832 _shape = 'inv_trapezoid';
50833 break;
50834
50835 case 'odd_right':
50836 _shape = 'rect_left_inv_arrow';
50837 break;
50838
50839 case 'circle':
50840 _shape = 'circle';
50841 break;
50842
50843 case 'ellipse':
50844 _shape = 'ellipse';
50845 break;
50846
50847 case 'group':
50848 _shape = 'rect';
50849 break;
50850
50851 default:
50852 _shape = 'rect';
50853 } // Add the node
50854
50855
50856 g.setNode(vertex.id, {
50857 labelType: 'svg',
50858 labelStyle: labelStyle,
50859 shape: _shape,
50860 label: vertexNode,
50861 rx: radious,
50862 ry: radious,
50863 class: classStr,
50864 style: style,
50865 id: vertex.id
50866 });
50867 });
50868};
50869/**
50870 * Add edges to graph based on parsed graph defninition
50871 * @param {Object} edges The edges to add to the graph
50872 * @param {Object} g The graph object
50873 */
50874
50875const addEdges = function (edges, g) {
50876 let cnt = 0;
50877 let defaultStyle;
50878
50879 if (typeof edges.defaultStyle !== 'undefined') {
50880 defaultStyle = edges.defaultStyle.toString().replace(/,/g, ';');
50881 }
50882
50883 edges.forEach(function (edge) {
50884 cnt++;
50885 const edgeData = {}; // Set link type for rendering
50886
50887 if (edge.type === 'arrow_open') {
50888 edgeData.arrowhead = 'none';
50889 } else {
50890 edgeData.arrowhead = 'normal';
50891 }
50892
50893 let style = '';
50894
50895 if (typeof edge.style !== 'undefined') {
50896 edge.style.forEach(function (s) {
50897 style = style + s + ';';
50898 });
50899 } else {
50900 switch (edge.stroke) {
50901 case 'normal':
50902 style = 'fill:none';
50903
50904 if (typeof defaultStyle !== 'undefined') {
50905 style = defaultStyle;
50906 }
50907
50908 break;
50909
50910 case 'dotted':
50911 style = 'stroke: #333; fill:none;stroke-width:2px;stroke-dasharray:3;';
50912 break;
50913
50914 case 'thick':
50915 style = 'stroke: #333; stroke-width: 3.5px;fill:none';
50916 break;
50917 }
50918 }
50919
50920 edgeData.style = style;
50921
50922 if (typeof edge.interpolate !== 'undefined') {
50923 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_8__["interpolateToCurve"])(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
50924 } else if (typeof edges.defaultInterpolate !== 'undefined') {
50925 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_8__["interpolateToCurve"])(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
50926 } else {
50927 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_8__["interpolateToCurve"])(conf.curve, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
50928 }
50929
50930 if (typeof edge.text === 'undefined') {
50931 if (typeof edge.style !== 'undefined') {
50932 edgeData.arrowheadStyle = 'fill: #333';
50933 }
50934 } else {
50935 edgeData.arrowheadStyle = 'fill: #333';
50936
50937 if (typeof edge.style === 'undefined') {
50938 edgeData.labelpos = 'c';
50939
50940 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
50941 edgeData.labelType = 'html';
50942 edgeData.label = '<span class="edgeLabel">' + edge.text + '</span>';
50943 } else {
50944 edgeData.labelType = 'text';
50945 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
50946 edgeData.label = edge.text.replace(/<br>/g, '\n');
50947 }
50948 } else {
50949 edgeData.label = edge.text.replace(/<br>/g, '\n');
50950 }
50951 } // Add the edge to the graph
50952
50953
50954 g.setEdge(edge.start, edge.end, edgeData, cnt);
50955 });
50956};
50957/**
50958 * Returns the all the styles from classDef statements in the graph definition.
50959 * @returns {object} classDef styles
50960 */
50961
50962const getClasses = function (text) {
50963 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Extracting classes');
50964 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
50965 const parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
50966 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
50967
50968 parser.parse(text);
50969 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getClasses();
50970};
50971/**
50972 * Draws a flowchart in the tag with id: id based on the graph definition in text.
50973 * @param text
50974 * @param id
50975 */
50976
50977const draw = function (text, id) {
50978 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Drawing flowchart');
50979 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
50980 const parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
50981 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
50982
50983 try {
50984 parser.parse(text);
50985 } catch (err) {
50986 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].debug('Parsing failed');
50987 } // Fetch the default direction, use TD if none was found
50988
50989
50990 let dir = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
50991
50992 if (typeof dir === 'undefined') {
50993 dir = 'TD';
50994 } // Create the input mermaid.graph
50995
50996
50997 const g = new graphlibrary__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
50998 multigraph: true,
50999 compound: true
51000 }).setGraph({
51001 rankdir: dir,
51002 marginx: 20,
51003 marginy: 20
51004 }).setDefaultEdgeLabel(function () {
51005 return {};
51006 });
51007 let subG;
51008 const subGraphs = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getSubGraphs();
51009
51010 for (let i = subGraphs.length - 1; i >= 0; i--) {
51011 subG = subGraphs[i];
51012 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
51013 } // Fetch the verices/nodes and edges/links from the parsed graph definition
51014
51015
51016 const vert = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getVertices();
51017 const edges = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getEdges();
51018 let i = 0;
51019
51020 for (i = subGraphs.length - 1; i >= 0; i--) {
51021 subG = subGraphs[i];
51022 d3__WEBPACK_IMPORTED_MODULE_1__["selectAll"]('cluster').append('text');
51023
51024 for (let j = 0; j < subG.nodes.length; j++) {
51025 g.setParent(subG.nodes[j], subG.id);
51026 }
51027 }
51028
51029 addVertices(vert, g, id);
51030 addEdges(edges, g); // Create the renderer
51031
51032 const Render = dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.render;
51033 const render = new Render(); // Add custom shape for rhombus type of boc (decision)
51034
51035 render.shapes().question = function (parent, bbox, node) {
51036 const w = bbox.width;
51037 const h = bbox.height;
51038 const s = (w + h) * 0.9;
51039 const points = [{
51040 x: s / 2,
51041 y: 0
51042 }, {
51043 x: s,
51044 y: -s / 2
51045 }, {
51046 x: s / 2,
51047 y: -s
51048 }, {
51049 x: 0,
51050 y: -s / 2
51051 }];
51052 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51053 return d.x + ',' + d.y;
51054 }).join(' ')).attr('rx', 5).attr('ry', 5).attr('transform', 'translate(' + -s / 2 + ',' + s * 2 / 4 + ')');
51055
51056 node.intersect = function (point) {
51057 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51058 };
51059
51060 return shapeSvg;
51061 }; // Add custom shape for box with inverted arrow on left side
51062
51063
51064 render.shapes().rect_left_inv_arrow = function (parent, bbox, node) {
51065 const w = bbox.width;
51066 const h = bbox.height;
51067 const points = [{
51068 x: -h / 2,
51069 y: 0
51070 }, {
51071 x: w,
51072 y: 0
51073 }, {
51074 x: w,
51075 y: -h
51076 }, {
51077 x: -h / 2,
51078 y: -h
51079 }, {
51080 x: 0,
51081 y: -h / 2
51082 }];
51083 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51084 return d.x + ',' + d.y;
51085 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51086
51087 node.intersect = function (point) {
51088 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51089 };
51090
51091 return shapeSvg;
51092 }; // Add custom shape for box with inverted arrow on left side
51093
51094
51095 render.shapes().lean_right = function (parent, bbox, node) {
51096 const w = bbox.width;
51097 const h = bbox.height;
51098 const points = [{
51099 x: -2 * h / 6,
51100 y: 0
51101 }, {
51102 x: w - h / 6,
51103 y: 0
51104 }, {
51105 x: w + 2 * h / 6,
51106 y: -h
51107 }, {
51108 x: h / 6,
51109 y: -h
51110 }];
51111 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51112 return d.x + ',' + d.y;
51113 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51114
51115 node.intersect = function (point) {
51116 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51117 };
51118
51119 return shapeSvg;
51120 }; // Add custom shape for box with inverted arrow on left side
51121
51122
51123 render.shapes().lean_left = function (parent, bbox, node) {
51124 const w = bbox.width;
51125 const h = bbox.height;
51126 const points = [{
51127 x: 2 * h / 6,
51128 y: 0
51129 }, {
51130 x: w + h / 6,
51131 y: 0
51132 }, {
51133 x: w - 2 * h / 6,
51134 y: -h
51135 }, {
51136 x: -h / 6,
51137 y: -h
51138 }];
51139 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51140 return d.x + ',' + d.y;
51141 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51142
51143 node.intersect = function (point) {
51144 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51145 };
51146
51147 return shapeSvg;
51148 }; // Add custom shape for box with inverted arrow on left side
51149
51150
51151 render.shapes().trapezoid = function (parent, bbox, node) {
51152 const w = bbox.width;
51153 const h = bbox.height;
51154 const points = [{
51155 x: -2 * h / 6,
51156 y: 0
51157 }, {
51158 x: w + 2 * h / 6,
51159 y: 0
51160 }, {
51161 x: w - h / 6,
51162 y: -h
51163 }, {
51164 x: h / 6,
51165 y: -h
51166 }];
51167 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51168 return d.x + ',' + d.y;
51169 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51170
51171 node.intersect = function (point) {
51172 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51173 };
51174
51175 return shapeSvg;
51176 }; // Add custom shape for box with inverted arrow on left side
51177
51178
51179 render.shapes().inv_trapezoid = function (parent, bbox, node) {
51180 const w = bbox.width;
51181 const h = bbox.height;
51182 const points = [{
51183 x: h / 6,
51184 y: 0
51185 }, {
51186 x: w - h / 6,
51187 y: 0
51188 }, {
51189 x: w + 2 * h / 6,
51190 y: -h
51191 }, {
51192 x: -2 * h / 6,
51193 y: -h
51194 }];
51195 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51196 return d.x + ',' + d.y;
51197 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51198
51199 node.intersect = function (point) {
51200 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51201 };
51202
51203 return shapeSvg;
51204 }; // Add custom shape for box with inverted arrow on right side
51205
51206
51207 render.shapes().rect_right_inv_arrow = function (parent, bbox, node) {
51208 const w = bbox.width;
51209 const h = bbox.height;
51210 const points = [{
51211 x: 0,
51212 y: 0
51213 }, {
51214 x: w + h / 2,
51215 y: 0
51216 }, {
51217 x: w,
51218 y: -h / 2
51219 }, {
51220 x: w + h / 2,
51221 y: -h
51222 }, {
51223 x: 0,
51224 y: -h
51225 }];
51226 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51227 return d.x + ',' + d.y;
51228 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51229
51230 node.intersect = function (point) {
51231 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51232 };
51233
51234 return shapeSvg;
51235 }; // Add our custom arrow - an empty arrowhead
51236
51237
51238 render.arrows().none = function normal(parent, id, edge, type) {
51239 const marker = parent.append('marker').attr('id', id).attr('viewBox', '0 0 10 10').attr('refX', 9).attr('refY', 5).attr('markerUnits', 'strokeWidth').attr('markerWidth', 8).attr('markerHeight', 6).attr('orient', 'auto');
51240 const path = marker.append('path').attr('d', 'M 0 0 L 0 0 L 0 0 z');
51241 dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.util.applyStyle(path, edge[type + 'Style']);
51242 }; // Override normal arrowhead defined in d3. Remove style & add class to allow css styling.
51243
51244
51245 render.arrows().normal = function normal(parent, id, edge, type) {
51246 const marker = parent.append('marker').attr('id', id).attr('viewBox', '0 0 10 10').attr('refX', 9).attr('refY', 5).attr('markerUnits', 'strokeWidth').attr('markerWidth', 8).attr('markerHeight', 6).attr('orient', 'auto');
51247 marker.append('path').attr('d', 'M 0 0 L 10 5 L 0 10 z').attr('class', 'arrowheadPath').style('stroke-width', 1).style('stroke-dasharray', '1,0');
51248 }; // Set up an SVG group so that we can translate the final graph.
51249
51250
51251 const svg = d3__WEBPACK_IMPORTED_MODULE_1__["select"](`[id="${id}"]`); // Run the renderer. This is what draws the final graph.
51252
51253 const element = d3__WEBPACK_IMPORTED_MODULE_1__["select"]('#' + id + ' g');
51254 render(element, g);
51255 element.selectAll('g.node').attr('title', function () {
51256 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getTooltip(this.id);
51257 });
51258 const padding = 8;
51259 const width = g.maxX - g.minX + padding * 2;
51260 const height = g.maxY - g.minY + padding * 2;
51261 svg.attr('width', '100%');
51262 svg.attr('style', `max-width: ${width}px;`);
51263 svg.attr('viewBox', `0 0 ${width} ${height}`);
51264 svg.select('g').attr('transform', `translate(${padding - g.minX}, ${padding - g.minY})`); // Index nodes
51265
51266 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].indexNodes('subGraph' + i); // reposition labels
51267
51268 for (i = 0; i < subGraphs.length; i++) {
51269 subG = subGraphs[i];
51270
51271 if (subG.title !== 'undefined') {
51272 const clusterRects = document.querySelectorAll('#' + id + ' #' + subG.id + ' rect');
51273 const clusterEl = document.querySelectorAll('#' + id + ' #' + subG.id);
51274 const xPos = clusterRects[0].x.baseVal.value;
51275 const yPos = clusterRects[0].y.baseVal.value;
51276 const width = clusterRects[0].width.baseVal.value;
51277 const cluster = d3__WEBPACK_IMPORTED_MODULE_1__["select"](clusterEl[0]);
51278 const te = cluster.select('.label');
51279 te.attr('transform', `translate(${xPos + width / 2}, ${yPos + 14})`);
51280 te.attr('id', id + 'Text');
51281 }
51282 } // Add label rects for non html labels
51283
51284
51285 if (!Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
51286 const labels = document.querySelectorAll('#' + id + ' .edgeLabel .label');
51287
51288 for (let k = 0; k < labels.length; k++) {
51289 const label = labels[k]; // Get dimensions of label
51290
51291 const dim = label.getBBox();
51292 const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
51293 rect.setAttribute('rx', 0);
51294 rect.setAttribute('ry', 0);
51295 rect.setAttribute('width', dim.width);
51296 rect.setAttribute('height', dim.height);
51297 rect.setAttribute('style', 'fill:#e8e8e8;');
51298 label.insertBefore(rect, label.firstChild);
51299 }
51300 }
51301};
51302/* harmony default export */ __webpack_exports__["default"] = ({
51303 setConf,
51304 addVertices,
51305 addEdges,
51306 getClasses,
51307 draw
51308});
51309
51310/***/ }),
51311
51312/***/ "./src/diagrams/flowchart/parser/flow.jison":
51313/*!**************************************************!*\
51314 !*** ./src/diagrams/flowchart/parser/flow.jison ***!
51315 \**************************************************/
51316/*! no static exports found */
51317/***/ (function(module, exports, __webpack_require__) {
51318
51319/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
51320/*
51321 Returns a Parser object of the following structure:
51322
51323 Parser: {
51324 yy: {}
51325 }
51326
51327 Parser.prototype: {
51328 yy: {},
51329 trace: function(),
51330 symbols_: {associative list: name ==> number},
51331 terminals_: {associative list: number ==> name},
51332 productions_: [...],
51333 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
51334 table: [...],
51335 defaultActions: {...},
51336 parseError: function(str, hash),
51337 parse: function(input),
51338
51339 lexer: {
51340 EOF: 1,
51341 parseError: function(str, hash),
51342 setInput: function(input),
51343 input: function(),
51344 unput: function(str),
51345 more: function(),
51346 less: function(n),
51347 pastInput: function(),
51348 upcomingInput: function(),
51349 showPosition: function(),
51350 test_match: function(regex_match_array, rule_index),
51351 next: function(),
51352 lex: function(),
51353 begin: function(condition),
51354 popState: function(),
51355 _currentRules: function(),
51356 topState: function(),
51357 pushState: function(condition),
51358
51359 options: {
51360 ranges: boolean (optional: true ==> token location info will include a .range[] member)
51361 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
51362 backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
51363 },
51364
51365 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
51366 rules: [...],
51367 conditions: {associative list: name ==> set},
51368 }
51369 }
51370
51371
51372 token location info (@$, _$, etc.): {
51373 first_line: n,
51374 last_line: n,
51375 first_column: n,
51376 last_column: n,
51377 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
51378 }
51379
51380
51381 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
51382 text: (matched text)
51383 token: (the produced terminal token, if any)
51384 line: (yylineno)
51385 }
51386 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
51387 loc: (yylloc)
51388 expected: (string describing the set of expected tokens)
51389 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
51390 }
51391*/
51392var parser = (function(){
51393var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,3],$V2=[1,5],$V3=[1,8,9,10,11,26,89,90,91,92,93,94,106,107,110,111,112,114,115,121,122,123,124,125,126],$V4=[2,2],$V5=[1,12],$V6=[1,13],$V7=[1,14],$V8=[1,15],$V9=[1,22],$Va=[1,24],$Vb=[1,25],$Vc=[1,26],$Vd=[1,27],$Ve=[1,28],$Vf=[1,40],$Vg=[1,35],$Vh=[1,37],$Vi=[1,32],$Vj=[1,36],$Vk=[1,39],$Vl=[1,43],$Vm=[1,44],$Vn=[1,45],$Vo=[1,34],$Vp=[1,38],$Vq=[1,41],$Vr=[1,42],$Vs=[1,33],$Vt=[1,50],$Vu=[1,8,9,10,11,26,30,89,90,91,92,93,94,106,107,110,111,112,114,115,121,122,123,124,125,126],$Vv=[1,54],$Vw=[1,53],$Vx=[1,55],$Vy=[8,9,11,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],$Vz=[8,9,11,34,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],$VA=[8,9,10,11,28,34,36,38,40,42,43,45,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,94,106,107,110,111,112,114,115,121,122,123,124,125,126],$VB=[94,106,107,110,111,112,114,115,121,122,123,124,125,126],$VC=[1,129],$VD=[1,149],$VE=[1,150],$VF=[1,151],$VG=[1,152],$VH=[1,123],$VI=[1,125],$VJ=[1,124],$VK=[1,120],$VL=[1,144],$VM=[1,145],$VN=[1,146],$VO=[1,147],$VP=[1,148],$VQ=[1,153],$VR=[1,154],$VS=[1,127],$VT=[1,126],$VU=[1,134],$VV=[1,137],$VW=[1,135],$VX=[1,136],$VY=[1,130],$VZ=[1,142],$V_=[1,141],$V$=[1,122],$V01=[1,132],$V11=[1,133],$V21=[1,138],$V31=[1,139],$V41=[1,140],$V51=[1,143],$V61=[49,83,94,106,107,110,111,112,114,115,121,122,123,124,125,126],$V71=[8,9,10,11,26,30,89,90,91,92,93,94,106,107,110,111,112,114,115,121,122,123,124,125,126],$V81=[1,171],$V91=[1,173],$Va1=[1,174],$Vb1=[8,9,10,11,12,13,26,28,29,30,37,39,41,42,44,46,50,51,53,55,57,59,61,63,65,66,67,69,71,73,83,89,90,91,92,93,94,95,98,105,106,107,110,111,112,114,115,117,121,122,123,124,125,126],$Vc1=[8,9,10,11,13,94,106,107,110,111,112,114,115,121,122,123,124,125,126],$Vd1=[10,107],$Ve1=[1,250],$Vf1=[1,254],$Vg1=[1,251],$Vh1=[1,255],$Vi1=[1,248],$Vj1=[1,245],$Vk1=[1,246],$Vl1=[1,247],$Vm1=[1,249],$Vn1=[1,252],$Vo1=[1,253],$Vp1=[8,9,11],$Vq1=[1,279],$Vr1=[8,9,11,107],$Vs1=[8,9,10,11,89,101,105,106,107,110,111,112,113,114,115];
51394var parser = {trace: function trace () { },
51395yy: {},
51396symbols_: {"error":2,"mermaidDoc":3,"graphConfig":4,"document":5,"line":6,"statement":7,"SEMI":8,"NEWLINE":9,"SPACE":10,"EOF":11,"GRAPH":12,"DIR":13,"FirstStmtSeperator":14,"ending":15,"endToken":16,"spaceList":17,"spaceListNewline":18,"verticeStatement":19,"separator":20,"styleStatement":21,"linkStyleStatement":22,"classDefStatement":23,"classStatement":24,"clickStatement":25,"subgraph":26,"text":27,"SQS":28,"SQE":29,"end":30,"link":31,"node":32,"vertex":33,"STYLE_SEPARATOR":34,"idString":35,"PS":36,"PE":37,"(-":38,"-)":39,"DIAMOND_START":40,"DIAMOND_STOP":41,"TAGEND":42,"TRAPSTART":43,"TRAPEND":44,"INVTRAPSTART":45,"INVTRAPEND":46,"linkStatement":47,"arrowText":48,"TESTSTR":49,"--":50,"ARROW_POINT":51,"START_DOUBLE_ARROW_POINT":52,"ARROW_CIRCLE":53,"START_DOUBLE_ARROW_CIRCLE":54,"ARROW_CROSS":55,"START_DOUBLE_ARROW_CROSS":56,"ARROW_OPEN":57,"-.":58,"DOTTED_ARROW_POINT":59,"START_DOUBLE_DOTTED_ARROW_POINT":60,"DOTTED_ARROW_CIRCLE":61,"START_DOUBLE_DOTTED_ARROW_CIRCLE":62,"DOTTED_ARROW_CROSS":63,"START_DOUBLE_DOTTED_ARROW_CROSS":64,"DOTTED_ARROW_OPEN":65,"==":66,"THICK_ARROW_POINT":67,"START_DOUBLE_THICK_ARROW_POINT":68,"THICK_ARROW_CIRCLE":69,"START_DOUBLE_THICK_ARROW_CIRCLE":70,"THICK_ARROW_CROSS":71,"START_DOUBLE_THICK_ARROW_CROSS":72,"THICK_ARROW_OPEN":73,"DOUBLE_ARROW_POINT":74,"DOUBLE_ARROW_CIRCLE":75,"DOUBLE_ARROW_CROSS":76,"DOUBLE_DOTTED_ARROW_POINT":77,"DOUBLE_DOTTED_ARROW_CIRCLE":78,"DOUBLE_DOTTED_ARROW_CROSS":79,"DOUBLE_THICK_ARROW_POINT":80,"DOUBLE_THICK_ARROW_CIRCLE":81,"DOUBLE_THICK_ARROW_CROSS":82,"PIPE":83,"textToken":84,"STR":85,"commentText":86,"commentToken":87,"keywords":88,"STYLE":89,"LINKSTYLE":90,"CLASSDEF":91,"CLASS":92,"CLICK":93,"DOWN":94,"UP":95,"textNoTags":96,"textNoTagsToken":97,"DEFAULT":98,"stylesOpt":99,"alphaNum":100,"HEX":101,"numList":102,"INTERPOLATE":103,"commentStatement":104,"PCT":105,"NUM":106,"COMMA":107,"style":108,"styleComponent":109,"ALPHA":110,"COLON":111,"MINUS":112,"UNIT":113,"BRKT":114,"DOT":115,"graphCodeTokens":116,"TAGSTART":117,"alphaNumToken":118,"idStringToken":119,"alphaNumStatement":120,"PUNCTUATION":121,"UNICODE_TEXT":122,"PLUS":123,"EQUALS":124,"MULT":125,"UNDERSCORE":126,"QUOTE":127,"$accept":0,"$end":1},
51397terminals_: {2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"DIR",26:"subgraph",28:"SQS",29:"SQE",30:"end",34:"STYLE_SEPARATOR",36:"PS",37:"PE",38:"(-",39:"-)",40:"DIAMOND_START",41:"DIAMOND_STOP",42:"TAGEND",43:"TRAPSTART",44:"TRAPEND",45:"INVTRAPSTART",46:"INVTRAPEND",49:"TESTSTR",50:"--",51:"ARROW_POINT",52:"START_DOUBLE_ARROW_POINT",53:"ARROW_CIRCLE",54:"START_DOUBLE_ARROW_CIRCLE",55:"ARROW_CROSS",56:"START_DOUBLE_ARROW_CROSS",57:"ARROW_OPEN",58:"-.",59:"DOTTED_ARROW_POINT",60:"START_DOUBLE_DOTTED_ARROW_POINT",61:"DOTTED_ARROW_CIRCLE",62:"START_DOUBLE_DOTTED_ARROW_CIRCLE",63:"DOTTED_ARROW_CROSS",64:"START_DOUBLE_DOTTED_ARROW_CROSS",65:"DOTTED_ARROW_OPEN",66:"==",67:"THICK_ARROW_POINT",68:"START_DOUBLE_THICK_ARROW_POINT",69:"THICK_ARROW_CIRCLE",70:"START_DOUBLE_THICK_ARROW_CIRCLE",71:"THICK_ARROW_CROSS",72:"START_DOUBLE_THICK_ARROW_CROSS",73:"THICK_ARROW_OPEN",74:"DOUBLE_ARROW_POINT",75:"DOUBLE_ARROW_CIRCLE",76:"DOUBLE_ARROW_CROSS",77:"DOUBLE_DOTTED_ARROW_POINT",78:"DOUBLE_DOTTED_ARROW_CIRCLE",79:"DOUBLE_DOTTED_ARROW_CROSS",80:"DOUBLE_THICK_ARROW_POINT",81:"DOUBLE_THICK_ARROW_CIRCLE",82:"DOUBLE_THICK_ARROW_CROSS",83:"PIPE",85:"STR",89:"STYLE",90:"LINKSTYLE",91:"CLASSDEF",92:"CLASS",93:"CLICK",94:"DOWN",95:"UP",98:"DEFAULT",101:"HEX",103:"INTERPOLATE",105:"PCT",106:"NUM",107:"COMMA",110:"ALPHA",111:"COLON",112:"MINUS",113:"UNIT",114:"BRKT",115:"DOT",117:"TAGSTART",121:"PUNCTUATION",122:"UNICODE_TEXT",123:"PLUS",124:"EQUALS",125:"MULT",126:"UNDERSCORE",127:"QUOTE"},
51398productions_: [0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,3],[15,2],[15,1],[16,1],[16,1],[16,1],[14,1],[14,1],[14,2],[18,2],[18,2],[18,1],[18,1],[17,2],[17,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[20,1],[20,1],[20,1],[19,3],[19,1],[32,1],[32,3],[33,4],[33,5],[33,6],[33,7],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,1],[33,2],[31,2],[31,3],[31,3],[31,1],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[48,3],[27,1],[27,2],[27,1],[86,1],[86,2],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[96,1],[96,2],[23,5],[23,5],[24,5],[25,5],[25,7],[25,5],[25,7],[21,5],[21,5],[22,5],[22,5],[22,9],[22,9],[22,7],[22,7],[104,3],[102,1],[102,3],[99,1],[99,3],[108,1],[108,2],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[87,1],[87,1],[84,1],[84,1],[84,1],[84,1],[84,1],[84,1],[84,1],[97,1],[97,1],[97,1],[97,1],[35,1],[35,2],[100,1],[100,2],[120,1],[120,1],[120,1],[120,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1]],
51399performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
51400/* this == yyval */
51401
51402var $0 = $$.length - 1;
51403switch (yystate) {
51404case 2:
51405 this.$ = [];
51406break;
51407case 3:
51408
51409 if($$[$0] !== []){
51410 $$[$0-1].push($$[$0]);
51411 }
51412 this.$=$$[$0-1];
51413break;
51414case 4: case 111: case 113: case 114: case 127: case 177: case 179: case 180:
51415this.$=$$[$0];
51416break;
51417case 11:
51418 yy.setDirection($$[$0-1]);this.$ = $$[$0-1];
51419break;
51420case 26:
51421 this.$=$$[$0-1]
51422break;
51423case 27: case 28: case 29: case 30: case 31:
51424this.$=[];
51425break;
51426case 32:
51427this.$=yy.addSubGraph($$[$0-6],$$[$0-1],$$[$0-4]);
51428break;
51429case 33:
51430this.$=yy.addSubGraph($$[$0-3],$$[$0-1],$$[$0-3]);
51431break;
51432case 34:
51433this.$=yy.addSubGraph(undefined,$$[$0-1],undefined);
51434break;
51435case 38:
51436 yy.addLink($$[$0-2][0],$$[$0][0],$$[$0-1]); this.$ = $$[$0].concat($$[$0-2])
51437break;
51438case 39:
51439 this.$ = $$[$0]
51440break;
51441case 40:
51442 this.$ = [$$[$0]];
51443break;
51444case 41:
51445this.$ = [$$[$0-2]];yy.setClass($$[$0-2],$$[$0])
51446break;
51447case 42:
51448this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');
51449break;
51450case 43:
51451this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'square');
51452break;
51453case 44:
51454this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle');
51455break;
51456case 45:
51457this.$ = $$[$0-6];yy.addVertex($$[$0-6],$$[$0-3],'circle');
51458break;
51459case 46:
51460this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'ellipse');
51461break;
51462case 47:
51463this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'ellipse');
51464break;
51465case 48:
51466this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');
51467break;
51468case 49:
51469this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'round');
51470break;
51471case 50:
51472this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');
51473break;
51474case 51:
51475this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'diamond');
51476break;
51477case 52:
51478this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd');
51479break;
51480case 53:
51481this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'odd');
51482break;
51483case 54:
51484this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'trapezoid');
51485break;
51486case 55:
51487this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'trapezoid');
51488break;
51489case 56:
51490this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'inv_trapezoid');
51491break;
51492case 57:
51493this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'inv_trapezoid');
51494break;
51495case 58:
51496this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_right');
51497break;
51498case 59:
51499this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'lean_right');
51500break;
51501case 60:
51502this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_left');
51503break;
51504case 61:
51505this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'lean_left');
51506break;
51507case 62:
51508this.$ = $$[$0];yy.addVertex($$[$0]);
51509break;
51510case 63:
51511this.$ = $$[$0-1];yy.addVertex($$[$0-1]);
51512break;
51513case 64:
51514$$[$0-1].text = $$[$0];this.$ = $$[$0-1];
51515break;
51516case 65: case 66:
51517$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2];
51518break;
51519case 67:
51520this.$ = $$[$0];
51521break;
51522case 68:
51523this.$ = {"type":"arrow","stroke":"normal","text":$$[$0-1]};
51524break;
51525case 69:
51526this.$ = {"type":"double_arrow_point","stroke":"normal","text":$$[$0-1]};
51527break;
51528case 70:
51529this.$ = {"type":"arrow_circle","stroke":"normal","text":$$[$0-1]};
51530break;
51531case 71:
51532this.$ = {"type":"double_arrow_circle","stroke":"normal","text":$$[$0-1]};
51533break;
51534case 72:
51535this.$ = {"type":"arrow_cross","stroke":"normal","text":$$[$0-1]};
51536break;
51537case 73:
51538this.$ = {"type":"double_arrow_cross","stroke":"normal","text":$$[$0-1]};
51539break;
51540case 74:
51541this.$ = {"type":"arrow_open","stroke":"normal","text":$$[$0-1]};
51542break;
51543case 75:
51544this.$ = {"type":"arrow","stroke":"dotted","text":$$[$0-1]};
51545break;
51546case 76:
51547this.$ = {"type":"double_arrow_point","stroke":"dotted","text":$$[$0-1]};
51548break;
51549case 77:
51550this.$ = {"type":"arrow_circle","stroke":"dotted","text":$$[$0-1]};
51551break;
51552case 78:
51553this.$ = {"type":"double_arrow_circle","stroke":"dotted","text":$$[$0-1]};
51554break;
51555case 79:
51556this.$ = {"type":"arrow_cross","stroke":"dotted","text":$$[$0-1]};
51557break;
51558case 80:
51559this.$ = {"type":"double_arrow_cross","stroke":"dotted","text":$$[$0-1]};
51560break;
51561case 81:
51562this.$ = {"type":"arrow_open","stroke":"dotted","text":$$[$0-1]};
51563break;
51564case 82:
51565this.$ = {"type":"arrow","stroke":"thick","text":$$[$0-1]};
51566break;
51567case 83:
51568this.$ = {"type":"double_arrow_point","stroke":"thick","text":$$[$0-1]};
51569break;
51570case 84:
51571this.$ = {"type":"arrow_circle","stroke":"thick","text":$$[$0-1]};
51572break;
51573case 85:
51574this.$ = {"type":"double_arrow_circle","stroke":"thick","text":$$[$0-1]};
51575break;
51576case 86:
51577this.$ = {"type":"arrow_cross","stroke":"thick","text":$$[$0-1]};
51578break;
51579case 87:
51580this.$ = {"type":"double_arrow_cross","stroke":"thick","text":$$[$0-1]};
51581break;
51582case 88:
51583this.$ = {"type":"arrow_open","stroke":"thick","text":$$[$0-1]};
51584break;
51585case 89:
51586this.$ = {"type":"arrow","stroke":"normal"};
51587break;
51588case 90:
51589this.$ = {"type":"double_arrow_point","stroke":"normal"};
51590break;
51591case 91:
51592this.$ = {"type":"arrow_circle","stroke":"normal"};
51593break;
51594case 92:
51595this.$ = {"type":"double_arrow_circle","stroke":"normal"};
51596break;
51597case 93:
51598this.$ = {"type":"arrow_cross","stroke":"normal"};
51599break;
51600case 94:
51601this.$ = {"type":"double_arrow_cross","stroke":"normal"};
51602break;
51603case 95:
51604this.$ = {"type":"arrow_open","stroke":"normal"};
51605break;
51606case 96:
51607this.$ = {"type":"arrow","stroke":"dotted"};
51608break;
51609case 97:
51610this.$ = {"type":"double_arrow_point","stroke":"dotted"};
51611break;
51612case 98:
51613this.$ = {"type":"arrow_circle","stroke":"dotted"};
51614break;
51615case 99:
51616this.$ = {"type":"double_arrow_circle","stroke":"dotted"};
51617break;
51618case 100:
51619this.$ = {"type":"arrow_cross","stroke":"dotted"};
51620break;
51621case 101:
51622this.$ = {"type":"double_arrow_cross","stroke":"dotted"};
51623break;
51624case 102:
51625this.$ = {"type":"arrow_open","stroke":"dotted"};
51626break;
51627case 103:
51628this.$ = {"type":"arrow","stroke":"thick"};
51629break;
51630case 104:
51631this.$ = {"type":"double_arrow_point","stroke":"thick"};
51632break;
51633case 105:
51634this.$ = {"type":"arrow_circle","stroke":"thick"};
51635break;
51636case 106:
51637this.$ = {"type":"double_arrow_circle","stroke":"thick"};
51638break;
51639case 107:
51640this.$ = {"type":"arrow_cross","stroke":"thick"};
51641break;
51642case 108:
51643this.$ = {"type":"double_arrow_cross","stroke":"thick"};
51644break;
51645case 109:
51646this.$ = {"type":"arrow_open","stroke":"thick"};
51647break;
51648case 110:
51649this.$ = $$[$0-1];
51650break;
51651case 112: case 115: case 128: case 178:
51652this.$=$$[$0-1]+''+$$[$0];
51653break;
51654case 129: case 130:
51655this.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]);
51656break;
51657case 131:
51658this.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]);
51659break;
51660case 132:
51661this.$ = $$[$0-4];yy.setClickEvent($$[$0-2], $$[$0], undefined);
51662break;
51663case 133:
51664this.$ = $$[$0-6];yy.setClickEvent($$[$0-4], $$[$0-2], $$[$0]) ;
51665break;
51666case 134:
51667this.$ = $$[$0-4];yy.setLink($$[$0-2], $$[$0], undefined);
51668break;
51669case 135:
51670this.$ = $$[$0-6];yy.setLink($$[$0-4], $$[$0-2], $$[$0] );
51671break;
51672case 136:
51673this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);
51674break;
51675case 137: case 139:
51676this.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]);
51677break;
51678case 138:
51679this.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]);
51680break;
51681case 140:
51682this.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]);
51683break;
51684case 141:
51685this.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]);
51686break;
51687case 142:
51688this.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]);
51689break;
51690case 143:
51691this.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]);
51692break;
51693case 145: case 147:
51694this.$ = [$$[$0]]
51695break;
51696case 146: case 148:
51697$$[$0-2].push($$[$0]);this.$ = $$[$0-2];
51698break;
51699case 150:
51700this.$ = $$[$0-1] + $$[$0];
51701break;
51702case 175:
51703this.$=$$[$0]
51704break;
51705case 176:
51706this.$=$$[$0-1]+''+$$[$0]
51707break;
51708case 181:
51709this.$='v';
51710break;
51711case 182:
51712this.$='-';
51713break;
51714}
51715},
51716table: [{3:1,4:2,9:$V0,10:$V1,12:$V2},{1:[3]},o($V3,$V4,{5:6}),{4:7,9:$V0,10:$V1,12:$V2},{4:8,9:$V0,10:$V1,12:$V2},{13:[1,9]},{1:[2,1],6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,19:16,21:17,22:18,23:19,24:20,25:21,26:$V9,32:23,33:29,35:30,89:$Va,90:$Vb,91:$Vc,92:$Vd,93:$Ve,94:$Vf,106:$Vg,107:$Vh,110:$Vi,111:$Vj,112:$Vk,114:$Vl,115:$Vm,119:31,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs},o($V3,[2,9]),o($V3,[2,10]),{8:[1,47],9:[1,48],10:$Vt,14:46,17:49},o($Vu,[2,3]),o($Vu,[2,4]),o($Vu,[2,5]),o($Vu,[2,6]),o($Vu,[2,7]),o($Vu,[2,8]),{8:$Vv,9:$Vw,11:$Vx,20:51,31:52,47:56,50:[1,57],51:[1,69],52:[1,58],53:[1,71],54:[1,59],55:[1,73],56:[1,60],57:[1,75],58:[1,61],59:[1,76],60:[1,62],61:[1,78],62:[1,63],63:[1,80],64:[1,64],65:[1,82],66:[1,65],67:[1,83],68:[1,66],69:[1,85],70:[1,67],71:[1,87],72:[1,68],73:[1,89],74:[1,70],75:[1,72],76:[1,74],77:[1,77],78:[1,79],79:[1,81],80:[1,84],81:[1,86],82:[1,88]},{8:$Vv,9:$Vw,11:$Vx,20:90},{8:$Vv,9:$Vw,11:$Vx,20:91},{8:$Vv,9:$Vw,11:$Vx,20:92},{8:$Vv,9:$Vw,11:$Vx,20:93},{8:$Vv,9:$Vw,11:$Vx,20:94},{8:$Vv,9:$Vw,10:[1,95],11:$Vx,20:96},o($Vy,[2,39]),{10:[1,97]},{10:[1,98]},{10:[1,99]},{10:[1,100]},{10:[1,101]},o($Vy,[2,40],{34:[1,102]}),o($Vz,[2,62],{17:110,119:111,10:$Vt,28:[1,103],36:[1,104],38:[1,105],40:[1,106],42:[1,107],43:[1,108],45:[1,109],94:$Vf,106:$Vg,107:$Vh,110:$Vi,111:$Vj,112:$Vk,114:$Vl,115:$Vm,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs}),o($VA,[2,175]),o($VA,[2,195]),o($VA,[2,196]),o($VA,[2,197]),o($VA,[2,198]),o($VA,[2,199]),o($VA,[2,200]),o($VA,[2,201]),o($VA,[2,202]),o($VA,[2,203]),o($VA,[2,204]),o($VA,[2,205]),o($VA,[2,206]),o($VA,[2,207]),o($VA,[2,208]),o($V3,[2,11]),o($V3,[2,17]),o($V3,[2,18]),{9:[1,112]},o($Vz,[2,25],{17:113,10:$Vt}),o($Vu,[2,26]),{32:114,33:29,35:30,94:$Vf,106:$Vg,107:$Vh,110:$Vi,111:$Vj,112:$Vk,114:$Vl,115:$Vm,119:31,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs},o($Vu,[2,35]),o($Vu,[2,36]),o($Vu,[2,37]),o($VB,[2,67],{48:115,49:[1,116],83:[1,117]}),{10:$VC,12:$VD,13:$VE,26:$VF,27:118,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:155,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:156,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:157,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:158,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:159,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:160,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:161,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:162,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:163,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:164,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:165,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($V61,[2,89]),o($V61,[2,90]),o($V61,[2,91]),o($V61,[2,92]),o($V61,[2,93]),o($V61,[2,94]),o($V61,[2,95]),o($V61,[2,96]),o($V61,[2,97]),o($V61,[2,98]),o($V61,[2,99]),o($V61,[2,100]),o($V61,[2,101]),o($V61,[2,102]),o($V61,[2,103]),o($V61,[2,104]),o($V61,[2,105]),o($V61,[2,106]),o($V61,[2,107]),o($V61,[2,108]),o($V61,[2,109]),o($Vu,[2,27]),o($Vu,[2,28]),o($Vu,[2,29]),o($Vu,[2,30]),o($Vu,[2,31]),{10:$VC,12:$VD,13:$VE,26:$VF,27:166,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($V71,$V4,{5:167}),{13:$V81,94:$V91,100:168,101:[1,169],106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:170,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{98:[1,175],102:176,106:[1,177]},{13:$V81,94:$V91,98:[1,178],100:179,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:170,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{13:$V81,94:$V91,100:180,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:170,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{13:$V81,94:$V91,100:181,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:170,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{35:182,94:$Vf,106:$Vg,107:$Vh,110:$Vi,111:$Vj,112:$Vk,114:$Vl,115:$Vm,119:31,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs},{10:$VC,12:$VD,13:$VE,26:$VF,27:183,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:185,30:$VG,36:[1,184],42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:186,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:187,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:188,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:189,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:190,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($Vz,[2,63]),o($VA,[2,176]),o($V3,[2,19]),o($Vz,[2,24]),o($Vy,[2,38]),o($VB,[2,64],{10:[1,191]}),{10:[1,192]},{10:$VC,12:$VD,13:$VE,26:$VF,27:193,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,51:[1,194],53:[1,195],55:[1,196],57:[1,197],66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($Vb1,[2,111]),o($Vb1,[2,113]),o($Vb1,[2,164]),o($Vb1,[2,165]),o($Vb1,[2,166]),o($Vb1,[2,167]),o($Vb1,[2,168]),o($Vb1,[2,169]),o($Vb1,[2,170]),o($Vb1,[2,171]),o($Vb1,[2,172]),o($Vb1,[2,173]),o($Vb1,[2,174]),o($Vb1,[2,183]),o($Vb1,[2,184]),o($Vb1,[2,185]),o($Vb1,[2,186]),o($Vb1,[2,187]),o($Vb1,[2,188]),o($Vb1,[2,189]),o($Vb1,[2,190]),o($Vb1,[2,191]),o($Vb1,[2,192]),o($Vb1,[2,193]),o($Vb1,[2,194]),o($Vb1,[2,116]),o($Vb1,[2,117]),o($Vb1,[2,118]),o($Vb1,[2,119]),o($Vb1,[2,120]),o($Vb1,[2,121]),o($Vb1,[2,122]),o($Vb1,[2,123]),o($Vb1,[2,124]),o($Vb1,[2,125]),o($Vb1,[2,126]),{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,51:[1,199],66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,53:[1,200],66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,55:[1,201],66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,59:[1,202],61:[1,203],63:[1,204],65:[1,205],66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,59:[1,206],66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,61:[1,207],66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,63:[1,208],66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,66:$VJ,67:[1,209],69:[1,210],71:[1,211],73:[1,212],84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,66:$VJ,67:[1,213],84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,66:$VJ,69:[1,214],84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,66:$VJ,71:[1,215],84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{8:$Vv,9:$Vw,10:$VC,11:$Vx,12:$VD,13:$VE,20:217,26:$VF,28:[1,216],30:$VG,42:$VH,50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,19:16,21:17,22:18,23:19,24:20,25:21,26:$V9,30:[1,218],32:23,33:29,35:30,89:$Va,90:$Vb,91:$Vc,92:$Vd,93:$Ve,94:$Vf,106:$Vg,107:$Vh,110:$Vi,111:$Vj,112:$Vk,114:$Vl,115:$Vm,119:31,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs},{10:[1,219],13:$V81,94:$V91,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:220,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:[1,221]},o($Vc1,[2,177]),o($Vc1,[2,179]),o($Vc1,[2,180]),o($Vc1,[2,181]),o($Vc1,[2,182]),{10:[1,222]},{10:[1,223],107:[1,224]},o($Vd1,[2,145]),{10:[1,225]},{10:[1,226],13:$V81,94:$V91,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:220,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:[1,227],13:$V81,94:$V91,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:220,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:[1,228],13:$V81,94:$V91,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:220,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($Vy,[2,41],{119:111,94:$Vf,106:$Vg,107:$Vh,110:$Vi,111:$Vj,112:$Vk,114:$Vl,115:$Vm,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs}),{10:$VC,12:$VD,13:$VE,26:$VF,29:[1,229],30:$VG,42:$VH,50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,27:230,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,37:[1,231],42:$VH,50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,39:[1,232],42:$VH,50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,41:[1,233],42:$VH,50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,29:[1,234],30:$VG,42:$VH,50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,44:[1,235],46:[1,236],50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,44:[1,238],46:[1,237],50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($VB,[2,66]),o($VB,[2,65]),{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,42:$VH,50:$VI,66:$VJ,83:[1,239],84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($VB,[2,68]),o($VB,[2,70]),o($VB,[2,72]),o($VB,[2,74]),o($Vb1,[2,112]),o($VB,[2,69]),o($VB,[2,71]),o($VB,[2,73]),o($VB,[2,75]),o($VB,[2,77]),o($VB,[2,79]),o($VB,[2,81]),o($VB,[2,76]),o($VB,[2,78]),o($VB,[2,80]),o($VB,[2,82]),o($VB,[2,84]),o($VB,[2,86]),o($VB,[2,88]),o($VB,[2,83]),o($VB,[2,85]),o($VB,[2,87]),{10:$VC,12:$VD,13:$VE,26:$VF,27:240,30:$VG,42:$VH,50:$VI,66:$VJ,84:119,85:$VK,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($V71,$V4,{5:241}),o($Vu,[2,34]),{10:$Ve1,89:$Vf1,99:242,101:$Vg1,105:$Vh1,106:$Vi1,108:243,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},o($Vc1,[2,178]),{10:$Ve1,89:$Vf1,99:256,101:$Vg1,105:$Vh1,106:$Vi1,108:243,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},{10:$Ve1,89:$Vf1,99:257,101:$Vg1,103:[1,258],105:$Vh1,106:$Vi1,108:243,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},{10:$Ve1,89:$Vf1,99:259,101:$Vg1,103:[1,260],105:$Vh1,106:$Vi1,108:243,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},{106:[1,261]},{10:$Ve1,89:$Vf1,99:262,101:$Vg1,105:$Vh1,106:$Vi1,108:243,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},{10:$Ve1,89:$Vf1,99:263,101:$Vg1,105:$Vh1,106:$Vi1,108:243,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},{13:$V81,94:$V91,100:264,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:170,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{13:$V81,85:[1,266],94:$V91,100:265,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:170,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($Vz,[2,42],{17:267,10:$Vt}),{10:$VC,12:$VD,13:$VE,26:$VF,30:$VG,37:[1,268],42:$VH,50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},o($Vz,[2,48],{17:269,10:$Vt}),o($Vz,[2,46],{17:270,10:$Vt}),o($Vz,[2,50],{17:271,10:$Vt}),o($Vz,[2,52],{17:272,10:$Vt}),o($Vz,[2,54],{17:273,10:$Vt}),o($Vz,[2,58],{17:274,10:$Vt}),o($Vz,[2,56],{17:275,10:$Vt}),o($Vz,[2,60],{17:276,10:$Vt}),o([10,94,106,107,110,111,112,114,115,121,122,123,124,125,126],[2,110]),{10:$VC,12:$VD,13:$VE,26:$VF,29:[1,277],30:$VG,42:$VH,50:$VI,66:$VJ,84:198,88:131,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,97:121,98:$VS,105:$VT,106:$VU,107:$VV,110:$VW,111:$VX,112:$VY,114:$VZ,115:$V_,117:$V$,118:128,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,19:16,21:17,22:18,23:19,24:20,25:21,26:$V9,30:[1,278],32:23,33:29,35:30,89:$Va,90:$Vb,91:$Vc,92:$Vd,93:$Ve,94:$Vf,106:$Vg,107:$Vh,110:$Vi,111:$Vj,112:$Vk,114:$Vl,115:$Vm,119:31,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs},o($Vp1,[2,136],{107:$Vq1}),o($Vr1,[2,147],{109:280,10:$Ve1,89:$Vf1,101:$Vg1,105:$Vh1,106:$Vi1,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1}),o($Vs1,[2,149]),o($Vs1,[2,151]),o($Vs1,[2,152]),o($Vs1,[2,153]),o($Vs1,[2,154]),o($Vs1,[2,155]),o($Vs1,[2,156]),o($Vs1,[2,157]),o($Vs1,[2,158]),o($Vs1,[2,159]),o($Vs1,[2,160]),o($Vs1,[2,161]),o($Vp1,[2,137],{107:$Vq1}),o($Vp1,[2,138],{107:$Vq1}),{10:[1,281]},o($Vp1,[2,139],{107:$Vq1}),{10:[1,282]},o($Vd1,[2,146]),o($Vp1,[2,129],{107:$Vq1}),o($Vp1,[2,130],{107:$Vq1}),o($Vp1,[2,131],{118:172,120:220,13:$V81,94:$V91,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51}),o($Vp1,[2,132],{118:172,120:220,10:[1,283],13:$V81,94:$V91,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51}),o($Vp1,[2,134],{10:[1,284]}),o($Vz,[2,43]),{37:[1,285]},o($Vz,[2,49]),o($Vz,[2,47]),o($Vz,[2,51]),o($Vz,[2,53]),o($Vz,[2,55]),o($Vz,[2,59]),o($Vz,[2,57]),o($Vz,[2,61]),{8:$Vv,9:$Vw,11:$Vx,20:286},o($Vu,[2,33]),{10:$Ve1,89:$Vf1,101:$Vg1,105:$Vh1,106:$Vi1,108:287,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},o($Vs1,[2,150]),{13:$V81,94:$V91,100:288,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:170,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{13:$V81,94:$V91,100:289,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,118:172,120:170,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51},{85:[1,290]},{85:[1,291]},o($Vz,[2,44],{17:292,10:$Vt}),o($V71,$V4,{5:293}),o($Vr1,[2,148],{109:280,10:$Ve1,89:$Vf1,101:$Vg1,105:$Vh1,106:$Vi1,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1}),o($Vp1,[2,142],{118:172,120:220,10:[1,294],13:$V81,94:$V91,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51}),o($Vp1,[2,143],{118:172,120:220,10:[1,295],13:$V81,94:$V91,106:$VU,107:$VV,110:$VW,111:$VX,112:$Va1,114:$VZ,115:$V_,121:$V01,122:$V11,123:$V21,124:$V31,125:$V41,126:$V51}),o($Vp1,[2,133]),o($Vp1,[2,135]),o($Vz,[2,45]),{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,19:16,21:17,22:18,23:19,24:20,25:21,26:$V9,30:[1,296],32:23,33:29,35:30,89:$Va,90:$Vb,91:$Vc,92:$Vd,93:$Ve,94:$Vf,106:$Vg,107:$Vh,110:$Vi,111:$Vj,112:$Vk,114:$Vl,115:$Vm,119:31,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs},{10:$Ve1,89:$Vf1,99:297,101:$Vg1,105:$Vh1,106:$Vi1,108:243,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},{10:$Ve1,89:$Vf1,99:298,101:$Vg1,105:$Vh1,106:$Vi1,108:243,109:244,110:$Vj1,111:$Vk1,112:$Vl1,113:$Vm1,114:$Vn1,115:$Vo1},o($Vu,[2,32]),o($Vp1,[2,140],{107:$Vq1}),o($Vp1,[2,141],{107:$Vq1})],
51717defaultActions: {},
51718parseError: function parseError (str, hash) {
51719 if (hash.recoverable) {
51720 this.trace(str);
51721 } else {
51722 var error = new Error(str);
51723 error.hash = hash;
51724 throw error;
51725 }
51726},
51727parse: function parse(input) {
51728 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
51729 var args = lstack.slice.call(arguments, 1);
51730 var lexer = Object.create(this.lexer);
51731 var sharedState = { yy: {} };
51732 for (var k in this.yy) {
51733 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
51734 sharedState.yy[k] = this.yy[k];
51735 }
51736 }
51737 lexer.setInput(input, sharedState.yy);
51738 sharedState.yy.lexer = lexer;
51739 sharedState.yy.parser = this;
51740 if (typeof lexer.yylloc == 'undefined') {
51741 lexer.yylloc = {};
51742 }
51743 var yyloc = lexer.yylloc;
51744 lstack.push(yyloc);
51745 var ranges = lexer.options && lexer.options.ranges;
51746 if (typeof sharedState.yy.parseError === 'function') {
51747 this.parseError = sharedState.yy.parseError;
51748 } else {
51749 this.parseError = Object.getPrototypeOf(this).parseError;
51750 }
51751 function popStack(n) {
51752 stack.length = stack.length - 2 * n;
51753 vstack.length = vstack.length - n;
51754 lstack.length = lstack.length - n;
51755 }
51756 function lex() {
51757 var token;
51758 token = tstack.pop() || lexer.lex() || EOF;
51759 if (typeof token !== 'number') {
51760 if (token instanceof Array) {
51761 tstack = token;
51762 token = tstack.pop();
51763 }
51764 token = self.symbols_[token] || token;
51765 }
51766 return token;
51767 }
51768 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
51769 while (true) {
51770 state = stack[stack.length - 1];
51771 if (this.defaultActions[state]) {
51772 action = this.defaultActions[state];
51773 } else {
51774 if (symbol === null || typeof symbol == 'undefined') {
51775 symbol = lex();
51776 }
51777 action = table[state] && table[state][symbol];
51778 }
51779 if (typeof action === 'undefined' || !action.length || !action[0]) {
51780 var errStr = '';
51781 expected = [];
51782 for (p in table[state]) {
51783 if (this.terminals_[p] && p > TERROR) {
51784 expected.push('\'' + this.terminals_[p] + '\'');
51785 }
51786 }
51787 if (lexer.showPosition) {
51788 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
51789 } else {
51790 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
51791 }
51792 this.parseError(errStr, {
51793 text: lexer.match,
51794 token: this.terminals_[symbol] || symbol,
51795 line: lexer.yylineno,
51796 loc: yyloc,
51797 expected: expected
51798 });
51799 }
51800 if (action[0] instanceof Array && action.length > 1) {
51801 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
51802 }
51803 switch (action[0]) {
51804 case 1:
51805 stack.push(symbol);
51806 vstack.push(lexer.yytext);
51807 lstack.push(lexer.yylloc);
51808 stack.push(action[1]);
51809 symbol = null;
51810 if (!preErrorSymbol) {
51811 yyleng = lexer.yyleng;
51812 yytext = lexer.yytext;
51813 yylineno = lexer.yylineno;
51814 yyloc = lexer.yylloc;
51815 if (recovering > 0) {
51816 recovering--;
51817 }
51818 } else {
51819 symbol = preErrorSymbol;
51820 preErrorSymbol = null;
51821 }
51822 break;
51823 case 2:
51824 len = this.productions_[action[1]][1];
51825 yyval.$ = vstack[vstack.length - len];
51826 yyval._$ = {
51827 first_line: lstack[lstack.length - (len || 1)].first_line,
51828 last_line: lstack[lstack.length - 1].last_line,
51829 first_column: lstack[lstack.length - (len || 1)].first_column,
51830 last_column: lstack[lstack.length - 1].last_column
51831 };
51832 if (ranges) {
51833 yyval._$.range = [
51834 lstack[lstack.length - (len || 1)].range[0],
51835 lstack[lstack.length - 1].range[1]
51836 ];
51837 }
51838 r = this.performAction.apply(yyval, [
51839 yytext,
51840 yyleng,
51841 yylineno,
51842 sharedState.yy,
51843 action[1],
51844 vstack,
51845 lstack
51846 ].concat(args));
51847 if (typeof r !== 'undefined') {
51848 return r;
51849 }
51850 if (len) {
51851 stack = stack.slice(0, -1 * len * 2);
51852 vstack = vstack.slice(0, -1 * len);
51853 lstack = lstack.slice(0, -1 * len);
51854 }
51855 stack.push(this.productions_[action[1]][0]);
51856 vstack.push(yyval.$);
51857 lstack.push(yyval._$);
51858 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
51859 stack.push(newState);
51860 break;
51861 case 3:
51862 return true;
51863 }
51864 }
51865 return true;
51866}};
51867
51868/* generated by jison-lex 0.3.4 */
51869var lexer = (function(){
51870var lexer = ({
51871
51872EOF:1,
51873
51874parseError:function parseError(str, hash) {
51875 if (this.yy.parser) {
51876 this.yy.parser.parseError(str, hash);
51877 } else {
51878 throw new Error(str);
51879 }
51880 },
51881
51882// resets the lexer, sets new input
51883setInput:function (input, yy) {
51884 this.yy = yy || this.yy || {};
51885 this._input = input;
51886 this._more = this._backtrack = this.done = false;
51887 this.yylineno = this.yyleng = 0;
51888 this.yytext = this.matched = this.match = '';
51889 this.conditionStack = ['INITIAL'];
51890 this.yylloc = {
51891 first_line: 1,
51892 first_column: 0,
51893 last_line: 1,
51894 last_column: 0
51895 };
51896 if (this.options.ranges) {
51897 this.yylloc.range = [0,0];
51898 }
51899 this.offset = 0;
51900 return this;
51901 },
51902
51903// consumes and returns one char from the input
51904input:function () {
51905 var ch = this._input[0];
51906 this.yytext += ch;
51907 this.yyleng++;
51908 this.offset++;
51909 this.match += ch;
51910 this.matched += ch;
51911 var lines = ch.match(/(?:\r\n?|\n).*/g);
51912 if (lines) {
51913 this.yylineno++;
51914 this.yylloc.last_line++;
51915 } else {
51916 this.yylloc.last_column++;
51917 }
51918 if (this.options.ranges) {
51919 this.yylloc.range[1]++;
51920 }
51921
51922 this._input = this._input.slice(1);
51923 return ch;
51924 },
51925
51926// unshifts one char (or a string) into the input
51927unput:function (ch) {
51928 var len = ch.length;
51929 var lines = ch.split(/(?:\r\n?|\n)/g);
51930
51931 this._input = ch + this._input;
51932 this.yytext = this.yytext.substr(0, this.yytext.length - len);
51933 //this.yyleng -= len;
51934 this.offset -= len;
51935 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
51936 this.match = this.match.substr(0, this.match.length - 1);
51937 this.matched = this.matched.substr(0, this.matched.length - 1);
51938
51939 if (lines.length - 1) {
51940 this.yylineno -= lines.length - 1;
51941 }
51942 var r = this.yylloc.range;
51943
51944 this.yylloc = {
51945 first_line: this.yylloc.first_line,
51946 last_line: this.yylineno + 1,
51947 first_column: this.yylloc.first_column,
51948 last_column: lines ?
51949 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
51950 + oldLines[oldLines.length - lines.length].length - lines[0].length :
51951 this.yylloc.first_column - len
51952 };
51953
51954 if (this.options.ranges) {
51955 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
51956 }
51957 this.yyleng = this.yytext.length;
51958 return this;
51959 },
51960
51961// When called from action, caches matched text and appends it on next action
51962more:function () {
51963 this._more = true;
51964 return this;
51965 },
51966
51967// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
51968reject:function () {
51969 if (this.options.backtrack_lexer) {
51970 this._backtrack = true;
51971 } else {
51972 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
51973 text: "",
51974 token: null,
51975 line: this.yylineno
51976 });
51977
51978 }
51979 return this;
51980 },
51981
51982// retain first n characters of the match
51983less:function (n) {
51984 this.unput(this.match.slice(n));
51985 },
51986
51987// displays already matched input, i.e. for error messages
51988pastInput:function () {
51989 var past = this.matched.substr(0, this.matched.length - this.match.length);
51990 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
51991 },
51992
51993// displays upcoming input, i.e. for error messages
51994upcomingInput:function () {
51995 var next = this.match;
51996 if (next.length < 20) {
51997 next += this._input.substr(0, 20-next.length);
51998 }
51999 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
52000 },
52001
52002// displays the character position where the lexing error occurred, i.e. for error messages
52003showPosition:function () {
52004 var pre = this.pastInput();
52005 var c = new Array(pre.length + 1).join("-");
52006 return pre + this.upcomingInput() + "\n" + c + "^";
52007 },
52008
52009// test the lexed token: return FALSE when not a match, otherwise return token
52010test_match:function(match, indexed_rule) {
52011 var token,
52012 lines,
52013 backup;
52014
52015 if (this.options.backtrack_lexer) {
52016 // save context
52017 backup = {
52018 yylineno: this.yylineno,
52019 yylloc: {
52020 first_line: this.yylloc.first_line,
52021 last_line: this.last_line,
52022 first_column: this.yylloc.first_column,
52023 last_column: this.yylloc.last_column
52024 },
52025 yytext: this.yytext,
52026 match: this.match,
52027 matches: this.matches,
52028 matched: this.matched,
52029 yyleng: this.yyleng,
52030 offset: this.offset,
52031 _more: this._more,
52032 _input: this._input,
52033 yy: this.yy,
52034 conditionStack: this.conditionStack.slice(0),
52035 done: this.done
52036 };
52037 if (this.options.ranges) {
52038 backup.yylloc.range = this.yylloc.range.slice(0);
52039 }
52040 }
52041
52042 lines = match[0].match(/(?:\r\n?|\n).*/g);
52043 if (lines) {
52044 this.yylineno += lines.length;
52045 }
52046 this.yylloc = {
52047 first_line: this.yylloc.last_line,
52048 last_line: this.yylineno + 1,
52049 first_column: this.yylloc.last_column,
52050 last_column: lines ?
52051 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
52052 this.yylloc.last_column + match[0].length
52053 };
52054 this.yytext += match[0];
52055 this.match += match[0];
52056 this.matches = match;
52057 this.yyleng = this.yytext.length;
52058 if (this.options.ranges) {
52059 this.yylloc.range = [this.offset, this.offset += this.yyleng];
52060 }
52061 this._more = false;
52062 this._backtrack = false;
52063 this._input = this._input.slice(match[0].length);
52064 this.matched += match[0];
52065 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
52066 if (this.done && this._input) {
52067 this.done = false;
52068 }
52069 if (token) {
52070 return token;
52071 } else if (this._backtrack) {
52072 // recover context
52073 for (var k in backup) {
52074 this[k] = backup[k];
52075 }
52076 return false; // rule action called reject() implying the next rule should be tested instead.
52077 }
52078 return false;
52079 },
52080
52081// return next match in input
52082next:function () {
52083 if (this.done) {
52084 return this.EOF;
52085 }
52086 if (!this._input) {
52087 this.done = true;
52088 }
52089
52090 var token,
52091 match,
52092 tempMatch,
52093 index;
52094 if (!this._more) {
52095 this.yytext = '';
52096 this.match = '';
52097 }
52098 var rules = this._currentRules();
52099 for (var i = 0; i < rules.length; i++) {
52100 tempMatch = this._input.match(this.rules[rules[i]]);
52101 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
52102 match = tempMatch;
52103 index = i;
52104 if (this.options.backtrack_lexer) {
52105 token = this.test_match(tempMatch, rules[i]);
52106 if (token !== false) {
52107 return token;
52108 } else if (this._backtrack) {
52109 match = false;
52110 continue; // rule action called reject() implying a rule MISmatch.
52111 } else {
52112 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
52113 return false;
52114 }
52115 } else if (!this.options.flex) {
52116 break;
52117 }
52118 }
52119 }
52120 if (match) {
52121 token = this.test_match(match, rules[index]);
52122 if (token !== false) {
52123 return token;
52124 }
52125 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
52126 return false;
52127 }
52128 if (this._input === "") {
52129 return this.EOF;
52130 } else {
52131 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
52132 text: "",
52133 token: null,
52134 line: this.yylineno
52135 });
52136 }
52137 },
52138
52139// return next match that has a token
52140lex:function lex () {
52141 var r = this.next();
52142 if (r) {
52143 return r;
52144 } else {
52145 return this.lex();
52146 }
52147 },
52148
52149// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
52150begin:function begin (condition) {
52151 this.conditionStack.push(condition);
52152 },
52153
52154// pop the previously active lexer condition state off the condition stack
52155popState:function popState () {
52156 var n = this.conditionStack.length - 1;
52157 if (n > 0) {
52158 return this.conditionStack.pop();
52159 } else {
52160 return this.conditionStack[0];
52161 }
52162 },
52163
52164// produce the lexer rule set which is active for the currently active lexer condition state
52165_currentRules:function _currentRules () {
52166 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
52167 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
52168 } else {
52169 return this.conditions["INITIAL"].rules;
52170 }
52171 },
52172
52173// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
52174topState:function topState (n) {
52175 n = this.conditionStack.length - 1 - Math.abs(n || 0);
52176 if (n >= 0) {
52177 return this.conditionStack[n];
52178 } else {
52179 return "INITIAL";
52180 }
52181 },
52182
52183// alias for begin(condition)
52184pushState:function pushState (condition) {
52185 this.begin(condition);
52186 },
52187
52188// return the number of states currently on the stack
52189stateStackSize:function stateStackSize() {
52190 return this.conditionStack.length;
52191 },
52192options: {},
52193performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
52194var YYSTATE=YY_START;
52195switch($avoiding_name_collisions) {
52196case 0:/* do nothing */
52197break;
52198case 1:this.begin("string");
52199break;
52200case 2:this.popState();
52201break;
52202case 3:return "STR";
52203break;
52204case 4:return 89;
52205break;
52206case 5:return 98;
52207break;
52208case 6:return 90;
52209break;
52210case 7:return 103;
52211break;
52212case 8:return 91;
52213break;
52214case 9:return 92;
52215break;
52216case 10:return 93;
52217break;
52218case 11:if(yy.lex.firstGraph()){this.begin("dir");} return 12;
52219break;
52220case 12:return 26;
52221break;
52222case 13:return 30;
52223break;
52224case 14: this.popState(); return 13;
52225break;
52226case 15: this.popState(); return 13;
52227break;
52228case 16: this.popState(); return 13;
52229break;
52230case 17: this.popState(); return 13;
52231break;
52232case 18: this.popState(); return 13;
52233break;
52234case 19: this.popState(); return 13;
52235break;
52236case 20: this.popState(); return 13;
52237break;
52238case 21: this.popState(); return 13;
52239break;
52240case 22: this.popState(); return 13;
52241break;
52242case 23: this.popState(); return 13;
52243break;
52244case 24: return 106;
52245break;
52246case 25:return 114;
52247break;
52248case 26:return 34;
52249break;
52250case 27:return 111;
52251break;
52252case 28:return 8;
52253break;
52254case 29:return 107;
52255break;
52256case 30:return 125;
52257break;
52258case 31:return 55;
52259break;
52260case 32:return 51;
52261break;
52262case 33:return 74;
52263break;
52264case 34:return 76;
52265break;
52266case 35:return 75;
52267break;
52268case 36:return 78;
52269break;
52270case 37:return 80;
52271break;
52272case 38:return 81;
52273break;
52274case 39:return 82;
52275break;
52276case 40:return 79;
52277break;
52278case 41:return 79;
52279break;
52280case 42:return 77;
52281break;
52282case 43:return 77;
52283break;
52284case 44:return 78;
52285break;
52286case 45:return 53;
52287break;
52288case 46:return 57;
52289break;
52290case 47:return 63;
52291break;
52292case 48:return 59;
52293break;
52294case 49:return 61;
52295break;
52296case 50:return 65;
52297break;
52298case 51:return 63;
52299break;
52300case 52:return 59;
52301break;
52302case 53:return 61;
52303break;
52304case 54:return 65;
52305break;
52306case 55:return 71;
52307break;
52308case 56:return 67;
52309break;
52310case 57:return 69;
52311break;
52312case 58:return 73;
52313break;
52314case 59:return 52;
52315break;
52316case 60:return 56;
52317break;
52318case 61:return 54;
52319break;
52320case 62:return 60;
52321break;
52322case 63:return 64;
52323break;
52324case 64:return 62;
52325break;
52326case 65:return 68;
52327break;
52328case 66:return 72;
52329break;
52330case 67:return 70;
52331break;
52332case 68:return 50;
52333break;
52334case 69:return 58;
52335break;
52336case 70:return 66;
52337break;
52338case 71:return 38;
52339break;
52340case 72:return 39;
52341break;
52342case 73:return 112;
52343break;
52344case 74:return 115;
52345break;
52346case 75:return 126;
52347break;
52348case 76:return 123;
52349break;
52350case 77:return 105;
52351break;
52352case 78:return 124;
52353break;
52354case 79:return 124;
52355break;
52356case 80:return 117;
52357break;
52358case 81:return 42;
52359break;
52360case 82:return 95;
52361break;
52362case 83:return 94;
52363break;
52364case 84:return 110;
52365break;
52366case 85:return 44;
52367break;
52368case 86:return 43;
52369break;
52370case 87:return 46;
52371break;
52372case 88:return 45;
52373break;
52374case 89:return 121;
52375break;
52376case 90:return 122;
52377break;
52378case 91:return 83;
52379break;
52380case 92:return 36;
52381break;
52382case 93:return 37;
52383break;
52384case 94:return 28;
52385break;
52386case 95:return 29;
52387break;
52388case 96:return 40
52389break;
52390case 97:return 41
52391break;
52392case 98:return 127;
52393break;
52394case 99:return 9;
52395break;
52396case 100:return 10;
52397break;
52398case 101:return 11;
52399break;
52400}
52401},
52402rules: [/^(?:%%[^\n]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:click\b)/,/^(?:graph\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*--[x]\s*)/,/^(?:\s*-->\s*)/,/^(?:\s*<-->\s*)/,/^(?:\s*[x]--[x]\s*)/,/^(?:\s*[o]--[o]\s*)/,/^(?:\s*[o]\.-[o]\s*)/,/^(?:\s*<==>\s*)/,/^(?:\s*[o]==[o]\s*)/,/^(?:\s*[x]==[x]\s*)/,/^(?:\s*[x].-[x]\s*)/,/^(?:\s*[x]-\.-[x]\s*)/,/^(?:\s*<\.->\s*)/,/^(?:\s*<-\.->\s*)/,/^(?:\s*[o]-\.-[o]\s*)/,/^(?:\s*--[o]\s*)/,/^(?:\s*---\s*)/,/^(?:\s*-\.-[x]\s*)/,/^(?:\s*-\.->\s*)/,/^(?:\s*-\.-[o]\s*)/,/^(?:\s*-\.-\s*)/,/^(?:\s*.-[x]\s*)/,/^(?:\s*\.->\s*)/,/^(?:\s*\.-[o]\s*)/,/^(?:\s*\.-\s*)/,/^(?:\s*==[x]\s*)/,/^(?:\s*==>\s*)/,/^(?:\s*==[o]\s*)/,/^(?:\s*==[\=]\s*)/,/^(?:\s*<--\s*)/,/^(?:\s*[x]--\s*)/,/^(?:\s*[o]--\s*)/,/^(?:\s*<-\.\s*)/,/^(?:\s*[x]-\.\s*)/,/^(?:\s*[o]-\.\s*)/,/^(?:\s*<==\s*)/,/^(?:\s*[x]==\s*)/,/^(?:\s*[o]==\s*)/,/^(?:\s*--\s*)/,/^(?:\s*-\.\s*)/,/^(?:\s*==\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:\n+)/,/^(?:\s)/,/^(?:$)/],
52403conditions: {"dir":{"rules":[14,15,16,17,18,19,20,21,22,23],"inclusive":false},"string":{"rules":[2,3],"inclusive":false},"INITIAL":{"rules":[0,1,4,5,6,7,8,9,10,11,12,13,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],"inclusive":true}}
52404});
52405return lexer;
52406})();
52407parser.lexer = lexer;
52408function Parser () {
52409 this.yy = {};
52410}
52411Parser.prototype = parser;parser.Parser = Parser;
52412return new Parser;
52413})();
52414
52415
52416if (true) {
52417exports.parser = parser;
52418exports.Parser = parser.Parser;
52419exports.parse = function () { return parser.parse.apply(parser, arguments); };
52420exports.main = function commonjsMain (args) {
52421 if (!args[1]) {
52422 console.log('Usage: '+args[0]+' FILE');
52423 process.exit(1);
52424 }
52425 var source = __webpack_require__(/*! fs */ "./node_modules/node-libs-browser/mock/empty.js").readFileSync(__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize(args[1]), "utf8");
52426 return exports.parser.parse(source);
52427};
52428if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
52429 exports.main(process.argv.slice(1));
52430}
52431}
52432/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
52433
52434/***/ }),
52435
52436/***/ "./src/diagrams/gantt/ganttDb.js":
52437/*!***************************************!*\
52438 !*** ./src/diagrams/gantt/ganttDb.js ***!
52439 \***************************************/
52440/*! exports provided: clear, setAxisFormat, getAxisFormat, setDateFormat, enableInclusiveEndDates, endDatesAreInclusive, getDateFormat, setExcludes, getExcludes, setTitle, getTitle, addSection, getSections, getTasks, addTask, findTaskById, addTaskOrg, setLink, setClass, setClickEvent, bindFunctions, default */
52441/***/ (function(module, __webpack_exports__, __webpack_require__) {
52442
52443"use strict";
52444__webpack_require__.r(__webpack_exports__);
52445/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
52446/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAxisFormat", function() { return setAxisFormat; });
52447/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAxisFormat", function() { return getAxisFormat; });
52448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDateFormat", function() { return setDateFormat; });
52449/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableInclusiveEndDates", function() { return enableInclusiveEndDates; });
52450/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endDatesAreInclusive", function() { return endDatesAreInclusive; });
52451/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDateFormat", function() { return getDateFormat; });
52452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setExcludes", function() { return setExcludes; });
52453/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getExcludes", function() { return getExcludes; });
52454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
52455/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
52456/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSection", function() { return addSection; });
52457/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSections", function() { return getSections; });
52458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTasks", function() { return getTasks; });
52459/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTask", function() { return addTask; });
52460/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findTaskById", function() { return findTaskById; });
52461/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTaskOrg", function() { return addTaskOrg; });
52462/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
52463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClass", function() { return setClass; });
52464/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
52465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
52466/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
52467/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
52468/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js");
52469/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__);
52470/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
52471/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
52472
52473
52474
52475
52476const config = Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])();
52477let dateFormat = '';
52478let axisFormat = '';
52479let excludes = [];
52480let title = '';
52481let sections = [];
52482let tasks = [];
52483let currentSection = '';
52484const tags = ['active', 'done', 'crit', 'milestone'];
52485let funs = [];
52486let inclusiveEndDates = false;
52487const clear = function () {
52488 sections = [];
52489 tasks = [];
52490 currentSection = '';
52491 funs = [];
52492 title = '';
52493 taskCnt = 0;
52494 lastTask = undefined;
52495 lastTaskID = undefined;
52496 rawTasks = [];
52497 dateFormat = '';
52498 axisFormat = '';
52499 excludes = [];
52500 inclusiveEndDates = false;
52501};
52502const setAxisFormat = function (txt) {
52503 axisFormat = txt;
52504};
52505const getAxisFormat = function () {
52506 return axisFormat;
52507};
52508const setDateFormat = function (txt) {
52509 dateFormat = txt;
52510};
52511const enableInclusiveEndDates = function () {
52512 inclusiveEndDates = true;
52513};
52514const endDatesAreInclusive = function () {
52515 return inclusiveEndDates;
52516};
52517const getDateFormat = function () {
52518 return dateFormat;
52519};
52520const setExcludes = function (txt) {
52521 excludes = txt.toLowerCase().split(/[\s,]+/);
52522};
52523const getExcludes = function () {
52524 return excludes;
52525};
52526const setTitle = function (txt) {
52527 title = txt;
52528};
52529const getTitle = function () {
52530 return title;
52531};
52532const addSection = function (txt) {
52533 currentSection = txt;
52534 sections.push(txt);
52535};
52536const getSections = function () {
52537 return sections;
52538};
52539const getTasks = function () {
52540 let allItemsPricessed = compileTasks();
52541 const maxDepth = 10;
52542 let iterationCount = 0;
52543
52544 while (!allItemsPricessed && iterationCount < maxDepth) {
52545 allItemsPricessed = compileTasks();
52546 iterationCount++;
52547 }
52548
52549 tasks = rawTasks;
52550 return tasks;
52551};
52552
52553const isInvalidDate = function (date, dateFormat, excludes) {
52554 if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) {
52555 return true;
52556 }
52557
52558 if (excludes.indexOf(date.format('dddd').toLowerCase()) >= 0) {
52559 return true;
52560 }
52561
52562 return excludes.indexOf(date.format(dateFormat.trim())) >= 0;
52563};
52564
52565const checkTaskDates = function (task, dateFormat, excludes) {
52566 if (!excludes.length || task.manualEndTime) return;
52567 let startTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.startTime, dateFormat, true);
52568 startTime.add(1, 'd');
52569 let endTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.endTime, dateFormat, true);
52570 let renderEndTime = fixTaskDates(startTime, endTime, dateFormat, excludes);
52571 task.endTime = endTime.toDate();
52572 task.renderEndTime = renderEndTime;
52573};
52574
52575const fixTaskDates = function (startTime, endTime, dateFormat, excludes) {
52576 let invalid = false;
52577 let renderEndTime = null;
52578
52579 while (startTime.date() <= endTime.date()) {
52580 if (!invalid) {
52581 renderEndTime = endTime.toDate();
52582 }
52583
52584 invalid = isInvalidDate(startTime, dateFormat, excludes);
52585
52586 if (invalid) {
52587 endTime.add(1, 'd');
52588 }
52589
52590 startTime.add(1, 'd');
52591 }
52592
52593 return renderEndTime;
52594};
52595
52596const getStartDate = function (prevTime, dateFormat, str) {
52597 str = str.trim(); // Test for after
52598
52599 const re = /^after\s+([\d\w-]+)/;
52600 const afterStatement = re.exec(str.trim());
52601
52602 if (afterStatement !== null) {
52603 const task = findTaskById(afterStatement[1]);
52604
52605 if (typeof task === 'undefined') {
52606 const dt = new Date();
52607 dt.setHours(0, 0, 0, 0);
52608 return dt;
52609 }
52610
52611 return task.endTime;
52612 } // Check for actual date set
52613
52614
52615 let mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
52616
52617 if (mDate.isValid()) {
52618 return mDate.toDate();
52619 } else {
52620 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Invalid date:' + str);
52621 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('With date format:' + dateFormat.trim());
52622 } // Default date - now
52623
52624
52625 return new Date();
52626};
52627
52628const durationToDate = function (durationStatement, relativeTime) {
52629 if (durationStatement !== null) {
52630 switch (durationStatement[2]) {
52631 case 's':
52632 relativeTime.add(durationStatement[1], 'seconds');
52633 break;
52634
52635 case 'm':
52636 relativeTime.add(durationStatement[1], 'minutes');
52637 break;
52638
52639 case 'h':
52640 relativeTime.add(durationStatement[1], 'hours');
52641 break;
52642
52643 case 'd':
52644 relativeTime.add(durationStatement[1], 'days');
52645 break;
52646
52647 case 'w':
52648 relativeTime.add(durationStatement[1], 'weeks');
52649 break;
52650 }
52651 } // Default date - now
52652
52653
52654 return relativeTime.toDate();
52655};
52656
52657const getEndDate = function (prevTime, dateFormat, str, inclusive) {
52658 inclusive = inclusive || false;
52659 str = str.trim(); // Check for actual date
52660
52661 let mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
52662
52663 if (mDate.isValid()) {
52664 if (inclusive) {
52665 mDate.add(1, 'd');
52666 }
52667
52668 return mDate.toDate();
52669 }
52670
52671 return durationToDate(/^([\d]+)([wdhms])/.exec(str.trim()), moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(prevTime));
52672};
52673
52674let taskCnt = 0;
52675
52676const parseId = function (idStr) {
52677 if (typeof idStr === 'undefined') {
52678 taskCnt = taskCnt + 1;
52679 return 'task' + taskCnt;
52680 }
52681
52682 return idStr;
52683}; // id, startDate, endDate
52684// id, startDate, length
52685// id, after x, endDate
52686// id, after x, length
52687// startDate, endDate
52688// startDate, length
52689// after x, endDate
52690// after x, length
52691// endDate
52692// length
52693
52694
52695const compileData = function (prevTask, dataStr) {
52696 let ds;
52697
52698 if (dataStr.substr(0, 1) === ':') {
52699 ds = dataStr.substr(1, dataStr.length);
52700 } else {
52701 ds = dataStr;
52702 }
52703
52704 const data = ds.split(',');
52705 const task = {}; // Get tags like active, done, crit and milestone
52706
52707 getTaskTags(data, task, tags);
52708
52709 for (let i = 0; i < data.length; i++) {
52710 data[i] = data[i].trim();
52711 }
52712
52713 let endTimeData = '';
52714
52715 switch (data.length) {
52716 case 1:
52717 task.id = parseId();
52718 task.startTime = prevTask.endTime;
52719 endTimeData = data[0];
52720 break;
52721
52722 case 2:
52723 task.id = parseId();
52724 task.startTime = getStartDate(undefined, dateFormat, data[0]);
52725 endTimeData = data[1];
52726 break;
52727
52728 case 3:
52729 task.id = parseId(data[0]);
52730 task.startTime = getStartDate(undefined, dateFormat, data[1]);
52731 endTimeData = data[2];
52732 break;
52733
52734 default:
52735 }
52736
52737 if (endTimeData) {
52738 task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
52739 task.manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(endTimeData, 'YYYY-MM-DD', true).isValid();
52740 checkTaskDates(task, dateFormat, excludes);
52741 }
52742
52743 return task;
52744};
52745
52746const parseData = function (prevTaskId, dataStr) {
52747 let ds;
52748
52749 if (dataStr.substr(0, 1) === ':') {
52750 ds = dataStr.substr(1, dataStr.length);
52751 } else {
52752 ds = dataStr;
52753 }
52754
52755 const data = ds.split(',');
52756 const task = {}; // Get tags like active, done, crit and milestone
52757
52758 getTaskTags(data, task, tags);
52759
52760 for (let i = 0; i < data.length; i++) {
52761 data[i] = data[i].trim();
52762 }
52763
52764 switch (data.length) {
52765 case 1:
52766 task.id = parseId();
52767 task.startTime = {
52768 type: 'prevTaskEnd',
52769 id: prevTaskId
52770 };
52771 task.endTime = {
52772 data: data[0]
52773 };
52774 break;
52775
52776 case 2:
52777 task.id = parseId();
52778 task.startTime = {
52779 type: 'getStartDate',
52780 startData: data[0]
52781 };
52782 task.endTime = {
52783 data: data[1]
52784 };
52785 break;
52786
52787 case 3:
52788 task.id = parseId(data[0]);
52789 task.startTime = {
52790 type: 'getStartDate',
52791 startData: data[1]
52792 };
52793 task.endTime = {
52794 data: data[2]
52795 };
52796 break;
52797
52798 default:
52799 }
52800
52801 return task;
52802};
52803
52804let lastTask;
52805let lastTaskID;
52806let rawTasks = [];
52807const taskDb = {};
52808const addTask = function (descr, data) {
52809 const rawTask = {
52810 section: currentSection,
52811 type: currentSection,
52812 processed: false,
52813 manualEndTime: false,
52814 renderEndTime: null,
52815 raw: {
52816 data: data
52817 },
52818 task: descr,
52819 classes: []
52820 };
52821 const taskInfo = parseData(lastTaskID, data);
52822 rawTask.raw.startTime = taskInfo.startTime;
52823 rawTask.raw.endTime = taskInfo.endTime;
52824 rawTask.id = taskInfo.id;
52825 rawTask.prevTaskId = lastTaskID;
52826 rawTask.active = taskInfo.active;
52827 rawTask.done = taskInfo.done;
52828 rawTask.crit = taskInfo.crit;
52829 rawTask.milestone = taskInfo.milestone;
52830 const pos = rawTasks.push(rawTask);
52831 lastTaskID = rawTask.id; // Store cross ref
52832
52833 taskDb[rawTask.id] = pos - 1;
52834};
52835const findTaskById = function (id) {
52836 const pos = taskDb[id];
52837 return rawTasks[pos];
52838};
52839const addTaskOrg = function (descr, data) {
52840 const newTask = {
52841 section: currentSection,
52842 type: currentSection,
52843 description: descr,
52844 task: descr,
52845 classes: []
52846 };
52847 const taskInfo = compileData(lastTask, data);
52848 newTask.startTime = taskInfo.startTime;
52849 newTask.endTime = taskInfo.endTime;
52850 newTask.id = taskInfo.id;
52851 newTask.active = taskInfo.active;
52852 newTask.done = taskInfo.done;
52853 newTask.crit = taskInfo.crit;
52854 newTask.milestone = taskInfo.milestone;
52855 lastTask = newTask;
52856 tasks.push(newTask);
52857};
52858
52859const compileTasks = function () {
52860 const compileTask = function (pos) {
52861 const task = rawTasks[pos];
52862 let startTime = '';
52863
52864 switch (rawTasks[pos].raw.startTime.type) {
52865 case 'prevTaskEnd':
52866 const prevTask = findTaskById(task.prevTaskId);
52867 task.startTime = prevTask.endTime;
52868 break;
52869
52870 case 'getStartDate':
52871 startTime = getStartDate(undefined, dateFormat, rawTasks[pos].raw.startTime.startData);
52872
52873 if (startTime) {
52874 rawTasks[pos].startTime = startTime;
52875 }
52876
52877 break;
52878 }
52879
52880 if (rawTasks[pos].startTime) {
52881 rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data, inclusiveEndDates);
52882
52883 if (rawTasks[pos].endTime) {
52884 rawTasks[pos].processed = true;
52885 rawTasks[pos].manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(rawTasks[pos].raw.endTime.data, 'YYYY-MM-DD', true).isValid();
52886 checkTaskDates(rawTasks[pos], dateFormat, excludes);
52887 }
52888 }
52889
52890 return rawTasks[pos].processed;
52891 };
52892
52893 let allProcessed = true;
52894
52895 for (let i = 0; i < rawTasks.length; i++) {
52896 compileTask(i);
52897 allProcessed = allProcessed && rawTasks[i].processed;
52898 }
52899
52900 return allProcessed;
52901};
52902/**
52903 * Called by parser when a link is found. Adds the URL to the vertex data.
52904 * @param ids Comma separated list of ids
52905 * @param linkStr URL to create a link for
52906 */
52907
52908
52909const setLink = function (ids, _linkStr) {
52910 let linkStr = _linkStr;
52911
52912 if (config.securityLevel !== 'loose') {
52913 linkStr = Object(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__["sanitizeUrl"])(_linkStr);
52914 }
52915
52916 ids.split(',').forEach(function (id) {
52917 let rawTask = findTaskById(id);
52918
52919 if (typeof rawTask !== 'undefined') {
52920 pushFun(id, () => {
52921 window.open(linkStr, '_self');
52922 });
52923 }
52924 });
52925 setClass(ids, 'clickable');
52926};
52927/**
52928 * Called by parser when a special node is found, e.g. a clickable element.
52929 * @param ids Comma separated list of ids
52930 * @param className Class to add
52931 */
52932
52933const setClass = function (ids, className) {
52934 ids.split(',').forEach(function (id) {
52935 let rawTask = findTaskById(id);
52936
52937 if (typeof rawTask !== 'undefined') {
52938 rawTask.classes.push(className);
52939 }
52940 });
52941};
52942
52943const setClickFun = function (id, functionName, functionArgs) {
52944 if (config.securityLevel !== 'loose') {
52945 return;
52946 }
52947
52948 if (typeof functionName === 'undefined') {
52949 return;
52950 }
52951
52952 let argList = [];
52953
52954 if (typeof functionArgs === 'string') {
52955 /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */
52956 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
52957
52958 for (let i = 0; i < argList.length; i++) {
52959 let item = argList[i].trim();
52960 /* Removes all double quotes at the start and end of an argument */
52961
52962 /* This preserves all starting and ending whitespace inside */
52963
52964 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
52965 item = item.substr(1, item.length - 2);
52966 }
52967
52968 argList[i] = item;
52969 }
52970 }
52971
52972 let rawTask = findTaskById(id);
52973
52974 if (typeof rawTask !== 'undefined') {
52975 pushFun(id, () => {
52976 window[functionName](...argList);
52977 });
52978 }
52979};
52980/**
52981 * The callbackFunction is executed in a click event bound to the task with the specified id or the task's assigned text
52982 * @param id The task's id
52983 * @param callbackFunction A function to be executed when clicked on the task or the task's text
52984 */
52985
52986
52987const pushFun = function (id, callbackFunction) {
52988 funs.push(function (element) {
52989 // const elem = d3.select(element).select(`[id="${id}"]`)
52990 const elem = document.querySelector(`[id="${id}"]`);
52991
52992 if (elem !== null) {
52993 elem.addEventListener('click', function () {
52994 callbackFunction();
52995 });
52996 }
52997 });
52998 funs.push(function (element) {
52999 // const elem = d3.select(element).select(`[id="${id}-text"]`)
53000 const elem = document.querySelector(`[id="${id}-text"]`);
53001
53002 if (elem !== null) {
53003 elem.addEventListener('click', function () {
53004 callbackFunction();
53005 });
53006 }
53007 });
53008};
53009/**
53010 * Called by parser when a click definition is found. Registers an event handler.
53011 * @param ids Comma separated list of ids
53012 * @param functionName Function to be called on click
53013 * @param functionArgs Function args the function should be called with
53014 */
53015
53016
53017const setClickEvent = function (ids, functionName, functionArgs) {
53018 ids.split(',').forEach(function (id) {
53019 setClickFun(id, functionName, functionArgs);
53020 });
53021 setClass(ids, 'clickable');
53022};
53023/**
53024 * Binds all functions previously added to fun (specified through click) to the element
53025 * @param element
53026 */
53027
53028const bindFunctions = function (element) {
53029 funs.forEach(function (fun) {
53030 fun(element);
53031 });
53032};
53033/* harmony default export */ __webpack_exports__["default"] = ({
53034 clear,
53035 setDateFormat,
53036 getDateFormat,
53037 enableInclusiveEndDates,
53038 endDatesAreInclusive,
53039 setAxisFormat,
53040 getAxisFormat,
53041 setTitle,
53042 getTitle,
53043 addSection,
53044 getSections,
53045 getTasks,
53046 addTask,
53047 findTaskById,
53048 addTaskOrg,
53049 setExcludes,
53050 getExcludes,
53051 setClickEvent,
53052 setLink,
53053 bindFunctions,
53054 durationToDate
53055});
53056
53057function getTaskTags(data, task, tags) {
53058 let matchFound = true;
53059
53060 while (matchFound) {
53061 matchFound = false;
53062 tags.forEach(function (t) {
53063 const pattern = '^\\s*' + t + '\\s*$';
53064 const regex = new RegExp(pattern);
53065
53066 if (data[0].match(regex)) {
53067 task[t] = true;
53068 data.shift(1);
53069 matchFound = true;
53070 }
53071 });
53072 }
53073}
53074
53075/***/ }),
53076
53077/***/ "./src/diagrams/gantt/ganttRenderer.js":
53078/*!*********************************************!*\
53079 !*** ./src/diagrams/gantt/ganttRenderer.js ***!
53080 \*********************************************/
53081/*! exports provided: setConf, draw, default */
53082/***/ (function(module, __webpack_exports__, __webpack_require__) {
53083
53084"use strict";
53085__webpack_require__.r(__webpack_exports__);
53086/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
53087/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
53088/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
53089/* harmony import */ var _parser_gantt__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser/gantt */ "./src/diagrams/gantt/parser/gantt.jison");
53090/* harmony import */ var _parser_gantt__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__);
53091/* harmony import */ var _ganttDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ganttDb */ "./src/diagrams/gantt/ganttDb.js");
53092
53093
53094
53095_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy = _ganttDb__WEBPACK_IMPORTED_MODULE_2__["default"];
53096const conf = {
53097 titleTopMargin: 25,
53098 barHeight: 20,
53099 barGap: 4,
53100 topPadding: 50,
53101 rightPadding: 75,
53102 leftPadding: 75,
53103 gridLineStartPadding: 35,
53104 fontSize: 11,
53105 fontFamily: '"Open-Sans", "sans-serif"'
53106};
53107const setConf = function (cnf) {
53108 const keys = Object.keys(cnf);
53109 keys.forEach(function (key) {
53110 conf[key] = cnf[key];
53111 });
53112};
53113let w;
53114const draw = function (text, id) {
53115 _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.clear();
53116 _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].parse(text);
53117 const elem = document.getElementById(id);
53118 w = elem.parentElement.offsetWidth;
53119
53120 if (typeof w === 'undefined') {
53121 w = 1200;
53122 }
53123
53124 if (typeof conf.useWidth !== 'undefined') {
53125 w = conf.useWidth;
53126 }
53127
53128 const taskArray = _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTasks(); // Set height based on number of tasks
53129
53130 const h = taskArray.length * (conf.barHeight + conf.barGap) + 2 * conf.topPadding;
53131 elem.setAttribute('height', '100%'); // Set viewBox
53132
53133 elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h);
53134 const svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id="${id}"]`); // Set timescale
53135
53136 const timeScale = d3__WEBPACK_IMPORTED_MODULE_0__["scaleTime"]().domain([d3__WEBPACK_IMPORTED_MODULE_0__["min"](taskArray, function (d) {
53137 return d.startTime;
53138 }), d3__WEBPACK_IMPORTED_MODULE_0__["max"](taskArray, function (d) {
53139 return d.endTime;
53140 })]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
53141 let categories = [];
53142
53143 for (let i = 0; i < taskArray.length; i++) {
53144 categories.push(taskArray[i].type);
53145 }
53146
53147 const catsUnfiltered = categories; // for vert labels
53148
53149 categories = checkUnique(categories);
53150 makeGant(taskArray, w, h);
53151
53152 if (typeof conf.useWidth !== 'undefined') {
53153 elem.setAttribute('width', w);
53154 }
53155
53156 svg.append('text').text(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTitle()).attr('x', w / 2).attr('y', conf.titleTopMargin).attr('class', 'titleText');
53157
53158 function makeGant(tasks, pageWidth, pageHeight) {
53159 const barHeight = conf.barHeight;
53160 const gap = barHeight + conf.barGap;
53161 const topPadding = conf.topPadding;
53162 const leftPadding = conf.leftPadding;
53163 const colorScale = d3__WEBPACK_IMPORTED_MODULE_0__["scaleLinear"]().domain([0, categories.length]).range(['#00B9FA', '#F95002']).interpolate(d3__WEBPACK_IMPORTED_MODULE_0__["interpolateHcl"]);
53164 makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
53165 drawRects(tasks, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth, pageHeight);
53166 vertLabels(gap, topPadding, leftPadding, barHeight, colorScale);
53167 drawToday(leftPadding, topPadding, pageWidth, pageHeight);
53168 }
53169
53170 function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w, h) {
53171 // Draw background rects covering the entire width of the graph, these form the section rows.
53172 svg.append('g').selectAll('rect').data(theArray).enter().append('rect').attr('x', 0).attr('y', function (d, i) {
53173 return i * theGap + theTopPad - 2;
53174 }).attr('width', function () {
53175 return w - conf.rightPadding / 2;
53176 }).attr('height', theGap).attr('class', function (d) {
53177 for (let i = 0; i < categories.length; i++) {
53178 if (d.type === categories[i]) {
53179 return 'section section' + i % conf.numberSectionStyles;
53180 }
53181 }
53182
53183 return 'section section0';
53184 }); // Draw the rects representing the tasks
53185
53186 const rectangles = svg.append('g').selectAll('rect').data(theArray).enter();
53187 rectangles.append('rect').attr('id', function (d) {
53188 return d.id;
53189 }).attr('rx', 3).attr('ry', 3).attr('x', function (d) {
53190 if (d.milestone) {
53191 return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
53192 }
53193
53194 return timeScale(d.startTime) + theSidePad;
53195 }).attr('y', function (d, i) {
53196 return i * theGap + theTopPad;
53197 }).attr('width', function (d) {
53198 if (d.milestone) {
53199 return theBarHeight;
53200 }
53201
53202 return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
53203 }).attr('height', theBarHeight).attr('transform-origin', function (d, i) {
53204 return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + 'px ' + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + 'px';
53205 }).attr('class', function (d) {
53206 const res = 'task';
53207 let classStr = '';
53208
53209 if (d.classes.length > 0) {
53210 classStr = d.classes.join(' ');
53211 }
53212
53213 let secNum = 0;
53214
53215 for (let i = 0; i < categories.length; i++) {
53216 if (d.type === categories[i]) {
53217 secNum = i % conf.numberSectionStyles;
53218 }
53219 }
53220
53221 let taskClass = '';
53222
53223 if (d.active) {
53224 if (d.crit) {
53225 taskClass += ' activeCrit';
53226 } else {
53227 taskClass = ' active';
53228 }
53229 } else if (d.done) {
53230 if (d.crit) {
53231 taskClass = ' doneCrit';
53232 } else {
53233 taskClass = ' done';
53234 }
53235 } else {
53236 if (d.crit) {
53237 taskClass += ' crit';
53238 }
53239 }
53240
53241 if (taskClass.length === 0) {
53242 taskClass = ' task';
53243 }
53244
53245 if (d.milestone) {
53246 taskClass = ' milestone ' + taskClass;
53247 }
53248
53249 taskClass += secNum;
53250 taskClass += ' ' + classStr;
53251 return res + taskClass;
53252 }); // Append task labels
53253
53254 rectangles.append('text').attr('id', function (d) {
53255 return d.id + '-text';
53256 }).text(function (d) {
53257 return d.task;
53258 }).attr('font-size', conf.fontSize).attr('x', function (d) {
53259 let startX = timeScale(d.startTime);
53260 let endX = timeScale(d.renderEndTime || d.endTime);
53261
53262 if (d.milestone) {
53263 startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
53264 }
53265
53266 if (d.milestone) {
53267 endX = startX + theBarHeight;
53268 }
53269
53270 const textWidth = this.getBBox().width; // Check id text width > width of rectangle
53271
53272 if (textWidth > endX - startX) {
53273 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
53274 return startX + theSidePad - 5;
53275 } else {
53276 return endX + theSidePad + 5;
53277 }
53278 } else {
53279 return (endX - startX) / 2 + startX + theSidePad;
53280 }
53281 }).attr('y', function (d, i) {
53282 return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
53283 }).attr('text-height', theBarHeight).attr('class', function (d) {
53284 const startX = timeScale(d.startTime);
53285 let endX = timeScale(d.endTime);
53286
53287 if (d.milestone) {
53288 endX = startX + theBarHeight;
53289 }
53290
53291 const textWidth = this.getBBox().width;
53292 let classStr = '';
53293
53294 if (d.classes.length > 0) {
53295 classStr = d.classes.join(' ');
53296 }
53297
53298 let secNum = 0;
53299
53300 for (let i = 0; i < categories.length; i++) {
53301 if (d.type === categories[i]) {
53302 secNum = i % conf.numberSectionStyles;
53303 }
53304 }
53305
53306 let taskType = '';
53307
53308 if (d.active) {
53309 if (d.crit) {
53310 taskType = 'activeCritText' + secNum;
53311 } else {
53312 taskType = 'activeText' + secNum;
53313 }
53314 }
53315
53316 if (d.done) {
53317 if (d.crit) {
53318 taskType = taskType + ' doneCritText' + secNum;
53319 } else {
53320 taskType = taskType + ' doneText' + secNum;
53321 }
53322 } else {
53323 if (d.crit) {
53324 taskType = taskType + ' critText' + secNum;
53325 }
53326 }
53327
53328 if (d.milestone) {
53329 taskType += ' milestoneText';
53330 } // Check id text width > width of rectangle
53331
53332
53333 if (textWidth > endX - startX) {
53334 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
53335 return classStr + ' taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType;
53336 } else {
53337 return classStr + ' taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType;
53338 }
53339 } else {
53340 return classStr + ' taskText taskText' + secNum + ' ' + taskType;
53341 }
53342 });
53343 }
53344
53345 function makeGrid(theSidePad, theTopPad, w, h) {
53346 let xAxis = d3__WEBPACK_IMPORTED_MODULE_0__["axisBottom"](timeScale).tickSize(-h + theTopPad + conf.gridLineStartPadding).tickFormat(d3__WEBPACK_IMPORTED_MODULE_0__["timeFormat"](_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getAxisFormat() || conf.axisFormat || '%Y-%m-%d'));
53347 svg.append('g').attr('class', 'grid').attr('transform', 'translate(' + theSidePad + ', ' + (h - 50) + ')').call(xAxis).selectAll('text').style('text-anchor', 'middle').attr('fill', '#000').attr('stroke', 'none').attr('font-size', 10).attr('dy', '1em');
53348 }
53349
53350 function vertLabels(theGap, theTopPad) {
53351 const numOccurances = [];
53352 let prevGap = 0;
53353
53354 for (let i = 0; i < categories.length; i++) {
53355 numOccurances[i] = [categories[i], getCount(categories[i], catsUnfiltered)];
53356 }
53357
53358 svg.append('g') // without doing this, impossible to put grid lines behind text
53359 .selectAll('text').data(numOccurances).enter().append('text').text(function (d) {
53360 return d[0];
53361 }).attr('x', 10).attr('y', function (d, i) {
53362 if (i > 0) {
53363 for (let j = 0; j < i; j++) {
53364 prevGap += numOccurances[i - 1][1];
53365 return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
53366 }
53367 } else {
53368 return d[1] * theGap / 2 + theTopPad;
53369 }
53370 }).attr('class', function (d) {
53371 for (let i = 0; i < categories.length; i++) {
53372 if (d[0] === categories[i]) {
53373 return 'sectionTitle sectionTitle' + i % conf.numberSectionStyles;
53374 }
53375 }
53376
53377 return 'sectionTitle';
53378 });
53379 }
53380
53381 function drawToday(theSidePad, theTopPad, w, h) {
53382 const todayG = svg.append('g').attr('class', 'today');
53383 const today = new Date();
53384 todayG.append('line').attr('x1', timeScale(today) + theSidePad).attr('x2', timeScale(today) + theSidePad).attr('y1', conf.titleTopMargin).attr('y2', h - conf.titleTopMargin).attr('class', 'today');
53385 } // from this stackexchange question: http://stackoverflow.com/questions/1890203/unique-for-arrays-in-javascript
53386
53387
53388 function checkUnique(arr) {
53389 const hash = {};
53390 const result = [];
53391
53392 for (let i = 0, l = arr.length; i < l; ++i) {
53393 if (!hash.hasOwnProperty(arr[i])) {
53394 // it works with objects! in FF, at least
53395 hash[arr[i]] = true;
53396 result.push(arr[i]);
53397 }
53398 }
53399
53400 return result;
53401 } // from this stackexchange question: http://stackoverflow.com/questions/14227981/count-how-many-strings-in-an-array-have-duplicates-in-the-same-array
53402
53403
53404 function getCounts(arr) {
53405 let i = arr.length; // const to loop over
53406
53407 const obj = {}; // obj to store results
53408
53409 while (i) {
53410 obj[arr[--i]] = (obj[arr[i]] || 0) + 1; // count occurrences
53411 }
53412
53413 return obj;
53414 } // get specific from everything
53415
53416
53417 function getCount(word, arr) {
53418 return getCounts(arr)[word] || 0;
53419 }
53420};
53421/* harmony default export */ __webpack_exports__["default"] = ({
53422 setConf,
53423 draw
53424});
53425
53426/***/ }),
53427
53428/***/ "./src/diagrams/gantt/parser/gantt.jison":
53429/*!***********************************************!*\
53430 !*** ./src/diagrams/gantt/parser/gantt.jison ***!
53431 \***********************************************/
53432/*! no static exports found */
53433/***/ (function(module, exports, __webpack_require__) {
53434
53435/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
53436/*
53437 Returns a Parser object of the following structure:
53438
53439 Parser: {
53440 yy: {}
53441 }
53442
53443 Parser.prototype: {
53444 yy: {},
53445 trace: function(),
53446 symbols_: {associative list: name ==> number},
53447 terminals_: {associative list: number ==> name},
53448 productions_: [...],
53449 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
53450 table: [...],
53451 defaultActions: {...},
53452 parseError: function(str, hash),
53453 parse: function(input),
53454
53455 lexer: {
53456 EOF: 1,
53457 parseError: function(str, hash),
53458 setInput: function(input),
53459 input: function(),
53460 unput: function(str),
53461 more: function(),
53462 less: function(n),
53463 pastInput: function(),
53464 upcomingInput: function(),
53465 showPosition: function(),
53466 test_match: function(regex_match_array, rule_index),
53467 next: function(),
53468 lex: function(),
53469 begin: function(condition),
53470 popState: function(),
53471 _currentRules: function(),
53472 topState: function(),
53473 pushState: function(condition),
53474
53475 options: {
53476 ranges: boolean (optional: true ==> token location info will include a .range[] member)
53477 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
53478 backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
53479 },
53480
53481 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
53482 rules: [...],
53483 conditions: {associative list: name ==> set},
53484 }
53485 }
53486
53487
53488 token location info (@$, _$, etc.): {
53489 first_line: n,
53490 last_line: n,
53491 first_column: n,
53492 last_column: n,
53493 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
53494 }
53495
53496
53497 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
53498 text: (matched text)
53499 token: (the produced terminal token, if any)
53500 line: (yylineno)
53501 }
53502 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
53503 loc: (yylloc)
53504 expected: (string describing the set of expected tokens)
53505 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
53506 }
53507*/
53508var parser = (function(){
53509var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,8,10,11,12,13,14,15,16,18,20],$V1=[1,9],$V2=[1,10],$V3=[1,11],$V4=[1,12],$V5=[1,13],$V6=[1,14],$V7=[1,16],$V8=[1,17];
53510var parser = {trace: function trace () { },
53511yy: {},
53512symbols_: {"error":2,"start":3,"gantt":4,"document":5,"EOF":6,"line":7,"SPACE":8,"statement":9,"NL":10,"dateFormat":11,"inclusiveEndDates":12,"axisFormat":13,"excludes":14,"title":15,"section":16,"clickStatement":17,"taskTxt":18,"taskData":19,"click":20,"callbackname":21,"callbackargs":22,"href":23,"clickStatementDebug":24,"$accept":0,"$end":1},
53513terminals_: {2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",11:"dateFormat",12:"inclusiveEndDates",13:"axisFormat",14:"excludes",15:"title",16:"section",18:"taskTxt",19:"taskData",20:"click",21:"callbackname",22:"callbackargs",23:"href"},
53514productions_: [0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[17,2],[17,3],[17,3],[17,4],[17,3],[17,4],[17,2],[24,2],[24,3],[24,3],[24,4],[24,3],[24,4],[24,2]],
53515performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
53516/* this == yyval */
53517
53518var $0 = $$.length - 1;
53519switch (yystate) {
53520case 1:
53521 return $$[$0-1];
53522break;
53523case 2:
53524 this.$ = []
53525break;
53526case 3:
53527$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
53528break;
53529case 4: case 5:
53530 this.$ = $$[$0]
53531break;
53532case 6: case 7:
53533 this.$=[];
53534break;
53535case 8:
53536yy.setDateFormat($$[$0].substr(11));this.$=$$[$0].substr(11);
53537break;
53538case 9:
53539yy.enableInclusiveEndDates();this.$=$$[$0].substr(18);
53540break;
53541case 10:
53542yy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11);
53543break;
53544case 11:
53545yy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9);
53546break;
53547case 12:
53548yy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);
53549break;
53550case 13:
53551yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
53552break;
53553case 15:
53554yy.addTask($$[$0-1],$$[$0]);this.$='task';
53555break;
53556case 16:
53557this.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null);
53558break;
53559case 17:
53560this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);
53561break;
53562case 18:
53563this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]);
53564break;
53565case 19:
53566this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]);
53567break;
53568case 20:
53569this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]);
53570break;
53571case 21:
53572this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]);
53573break;
53574case 22:
53575this.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);
53576break;
53577case 23: case 29:
53578this.$=$$[$0-1] + ' ' + $$[$0];
53579break;
53580case 24: case 25: case 27:
53581this.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];
53582break;
53583case 26: case 28:
53584this.$=$$[$0-3] + ' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];
53585break;
53586}
53587},
53588table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:$V1,12:$V2,13:$V3,14:$V4,15:$V5,16:$V6,17:15,18:$V7,20:$V8},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:18,11:$V1,12:$V2,13:$V3,14:$V4,15:$V5,16:$V6,17:15,18:$V7,20:$V8},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,8]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,11]),o($V0,[2,12]),o($V0,[2,13]),o($V0,[2,14]),{19:[1,19]},{21:[1,20],23:[1,21]},o($V0,[2,4]),o($V0,[2,15]),o($V0,[2,16],{22:[1,22],23:[1,23]}),o($V0,[2,22],{21:[1,24]}),o($V0,[2,17],{23:[1,25]}),o($V0,[2,18]),o($V0,[2,20],{22:[1,26]}),o($V0,[2,19]),o($V0,[2,21])],
53589defaultActions: {},
53590parseError: function parseError (str, hash) {
53591 if (hash.recoverable) {
53592 this.trace(str);
53593 } else {
53594 var error = new Error(str);
53595 error.hash = hash;
53596 throw error;
53597 }
53598},
53599parse: function parse(input) {
53600 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
53601 var args = lstack.slice.call(arguments, 1);
53602 var lexer = Object.create(this.lexer);
53603 var sharedState = { yy: {} };
53604 for (var k in this.yy) {
53605 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
53606 sharedState.yy[k] = this.yy[k];
53607 }
53608 }
53609 lexer.setInput(input, sharedState.yy);
53610 sharedState.yy.lexer = lexer;
53611 sharedState.yy.parser = this;
53612 if (typeof lexer.yylloc == 'undefined') {
53613 lexer.yylloc = {};
53614 }
53615 var yyloc = lexer.yylloc;
53616 lstack.push(yyloc);
53617 var ranges = lexer.options && lexer.options.ranges;
53618 if (typeof sharedState.yy.parseError === 'function') {
53619 this.parseError = sharedState.yy.parseError;
53620 } else {
53621 this.parseError = Object.getPrototypeOf(this).parseError;
53622 }
53623 function popStack(n) {
53624 stack.length = stack.length - 2 * n;
53625 vstack.length = vstack.length - n;
53626 lstack.length = lstack.length - n;
53627 }
53628 function lex() {
53629 var token;
53630 token = tstack.pop() || lexer.lex() || EOF;
53631 if (typeof token !== 'number') {
53632 if (token instanceof Array) {
53633 tstack = token;
53634 token = tstack.pop();
53635 }
53636 token = self.symbols_[token] || token;
53637 }
53638 return token;
53639 }
53640 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
53641 while (true) {
53642 state = stack[stack.length - 1];
53643 if (this.defaultActions[state]) {
53644 action = this.defaultActions[state];
53645 } else {
53646 if (symbol === null || typeof symbol == 'undefined') {
53647 symbol = lex();
53648 }
53649 action = table[state] && table[state][symbol];
53650 }
53651 if (typeof action === 'undefined' || !action.length || !action[0]) {
53652 var errStr = '';
53653 expected = [];
53654 for (p in table[state]) {
53655 if (this.terminals_[p] && p > TERROR) {
53656 expected.push('\'' + this.terminals_[p] + '\'');
53657 }
53658 }
53659 if (lexer.showPosition) {
53660 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
53661 } else {
53662 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
53663 }
53664 this.parseError(errStr, {
53665 text: lexer.match,
53666 token: this.terminals_[symbol] || symbol,
53667 line: lexer.yylineno,
53668 loc: yyloc,
53669 expected: expected
53670 });
53671 }
53672 if (action[0] instanceof Array && action.length > 1) {
53673 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
53674 }
53675 switch (action[0]) {
53676 case 1:
53677 stack.push(symbol);
53678 vstack.push(lexer.yytext);
53679 lstack.push(lexer.yylloc);
53680 stack.push(action[1]);
53681 symbol = null;
53682 if (!preErrorSymbol) {
53683 yyleng = lexer.yyleng;
53684 yytext = lexer.yytext;
53685 yylineno = lexer.yylineno;
53686 yyloc = lexer.yylloc;
53687 if (recovering > 0) {
53688 recovering--;
53689 }
53690 } else {
53691 symbol = preErrorSymbol;
53692 preErrorSymbol = null;
53693 }
53694 break;
53695 case 2:
53696 len = this.productions_[action[1]][1];
53697 yyval.$ = vstack[vstack.length - len];
53698 yyval._$ = {
53699 first_line: lstack[lstack.length - (len || 1)].first_line,
53700 last_line: lstack[lstack.length - 1].last_line,
53701 first_column: lstack[lstack.length - (len || 1)].first_column,
53702 last_column: lstack[lstack.length - 1].last_column
53703 };
53704 if (ranges) {
53705 yyval._$.range = [
53706 lstack[lstack.length - (len || 1)].range[0],
53707 lstack[lstack.length - 1].range[1]
53708 ];
53709 }
53710 r = this.performAction.apply(yyval, [
53711 yytext,
53712 yyleng,
53713 yylineno,
53714 sharedState.yy,
53715 action[1],
53716 vstack,
53717 lstack
53718 ].concat(args));
53719 if (typeof r !== 'undefined') {
53720 return r;
53721 }
53722 if (len) {
53723 stack = stack.slice(0, -1 * len * 2);
53724 vstack = vstack.slice(0, -1 * len);
53725 lstack = lstack.slice(0, -1 * len);
53726 }
53727 stack.push(this.productions_[action[1]][0]);
53728 vstack.push(yyval.$);
53729 lstack.push(yyval._$);
53730 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
53731 stack.push(newState);
53732 break;
53733 case 3:
53734 return true;
53735 }
53736 }
53737 return true;
53738}};
53739
53740/* generated by jison-lex 0.3.4 */
53741var lexer = (function(){
53742var lexer = ({
53743
53744EOF:1,
53745
53746parseError:function parseError(str, hash) {
53747 if (this.yy.parser) {
53748 this.yy.parser.parseError(str, hash);
53749 } else {
53750 throw new Error(str);
53751 }
53752 },
53753
53754// resets the lexer, sets new input
53755setInput:function (input, yy) {
53756 this.yy = yy || this.yy || {};
53757 this._input = input;
53758 this._more = this._backtrack = this.done = false;
53759 this.yylineno = this.yyleng = 0;
53760 this.yytext = this.matched = this.match = '';
53761 this.conditionStack = ['INITIAL'];
53762 this.yylloc = {
53763 first_line: 1,
53764 first_column: 0,
53765 last_line: 1,
53766 last_column: 0
53767 };
53768 if (this.options.ranges) {
53769 this.yylloc.range = [0,0];
53770 }
53771 this.offset = 0;
53772 return this;
53773 },
53774
53775// consumes and returns one char from the input
53776input:function () {
53777 var ch = this._input[0];
53778 this.yytext += ch;
53779 this.yyleng++;
53780 this.offset++;
53781 this.match += ch;
53782 this.matched += ch;
53783 var lines = ch.match(/(?:\r\n?|\n).*/g);
53784 if (lines) {
53785 this.yylineno++;
53786 this.yylloc.last_line++;
53787 } else {
53788 this.yylloc.last_column++;
53789 }
53790 if (this.options.ranges) {
53791 this.yylloc.range[1]++;
53792 }
53793
53794 this._input = this._input.slice(1);
53795 return ch;
53796 },
53797
53798// unshifts one char (or a string) into the input
53799unput:function (ch) {
53800 var len = ch.length;
53801 var lines = ch.split(/(?:\r\n?|\n)/g);
53802
53803 this._input = ch + this._input;
53804 this.yytext = this.yytext.substr(0, this.yytext.length - len);
53805 //this.yyleng -= len;
53806 this.offset -= len;
53807 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
53808 this.match = this.match.substr(0, this.match.length - 1);
53809 this.matched = this.matched.substr(0, this.matched.length - 1);
53810
53811 if (lines.length - 1) {
53812 this.yylineno -= lines.length - 1;
53813 }
53814 var r = this.yylloc.range;
53815
53816 this.yylloc = {
53817 first_line: this.yylloc.first_line,
53818 last_line: this.yylineno + 1,
53819 first_column: this.yylloc.first_column,
53820 last_column: lines ?
53821 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
53822 + oldLines[oldLines.length - lines.length].length - lines[0].length :
53823 this.yylloc.first_column - len
53824 };
53825
53826 if (this.options.ranges) {
53827 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
53828 }
53829 this.yyleng = this.yytext.length;
53830 return this;
53831 },
53832
53833// When called from action, caches matched text and appends it on next action
53834more:function () {
53835 this._more = true;
53836 return this;
53837 },
53838
53839// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
53840reject:function () {
53841 if (this.options.backtrack_lexer) {
53842 this._backtrack = true;
53843 } else {
53844 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
53845 text: "",
53846 token: null,
53847 line: this.yylineno
53848 });
53849
53850 }
53851 return this;
53852 },
53853
53854// retain first n characters of the match
53855less:function (n) {
53856 this.unput(this.match.slice(n));
53857 },
53858
53859// displays already matched input, i.e. for error messages
53860pastInput:function () {
53861 var past = this.matched.substr(0, this.matched.length - this.match.length);
53862 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
53863 },
53864
53865// displays upcoming input, i.e. for error messages
53866upcomingInput:function () {
53867 var next = this.match;
53868 if (next.length < 20) {
53869 next += this._input.substr(0, 20-next.length);
53870 }
53871 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
53872 },
53873
53874// displays the character position where the lexing error occurred, i.e. for error messages
53875showPosition:function () {
53876 var pre = this.pastInput();
53877 var c = new Array(pre.length + 1).join("-");
53878 return pre + this.upcomingInput() + "\n" + c + "^";
53879 },
53880
53881// test the lexed token: return FALSE when not a match, otherwise return token
53882test_match:function(match, indexed_rule) {
53883 var token,
53884 lines,
53885 backup;
53886
53887 if (this.options.backtrack_lexer) {
53888 // save context
53889 backup = {
53890 yylineno: this.yylineno,
53891 yylloc: {
53892 first_line: this.yylloc.first_line,
53893 last_line: this.last_line,
53894 first_column: this.yylloc.first_column,
53895 last_column: this.yylloc.last_column
53896 },
53897 yytext: this.yytext,
53898 match: this.match,
53899 matches: this.matches,
53900 matched: this.matched,
53901 yyleng: this.yyleng,
53902 offset: this.offset,
53903 _more: this._more,
53904 _input: this._input,
53905 yy: this.yy,
53906 conditionStack: this.conditionStack.slice(0),
53907 done: this.done
53908 };
53909 if (this.options.ranges) {
53910 backup.yylloc.range = this.yylloc.range.slice(0);
53911 }
53912 }
53913
53914 lines = match[0].match(/(?:\r\n?|\n).*/g);
53915 if (lines) {
53916 this.yylineno += lines.length;
53917 }
53918 this.yylloc = {
53919 first_line: this.yylloc.last_line,
53920 last_line: this.yylineno + 1,
53921 first_column: this.yylloc.last_column,
53922 last_column: lines ?
53923 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
53924 this.yylloc.last_column + match[0].length
53925 };
53926 this.yytext += match[0];
53927 this.match += match[0];
53928 this.matches = match;
53929 this.yyleng = this.yytext.length;
53930 if (this.options.ranges) {
53931 this.yylloc.range = [this.offset, this.offset += this.yyleng];
53932 }
53933 this._more = false;
53934 this._backtrack = false;
53935 this._input = this._input.slice(match[0].length);
53936 this.matched += match[0];
53937 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
53938 if (this.done && this._input) {
53939 this.done = false;
53940 }
53941 if (token) {
53942 return token;
53943 } else if (this._backtrack) {
53944 // recover context
53945 for (var k in backup) {
53946 this[k] = backup[k];
53947 }
53948 return false; // rule action called reject() implying the next rule should be tested instead.
53949 }
53950 return false;
53951 },
53952
53953// return next match in input
53954next:function () {
53955 if (this.done) {
53956 return this.EOF;
53957 }
53958 if (!this._input) {
53959 this.done = true;
53960 }
53961
53962 var token,
53963 match,
53964 tempMatch,
53965 index;
53966 if (!this._more) {
53967 this.yytext = '';
53968 this.match = '';
53969 }
53970 var rules = this._currentRules();
53971 for (var i = 0; i < rules.length; i++) {
53972 tempMatch = this._input.match(this.rules[rules[i]]);
53973 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
53974 match = tempMatch;
53975 index = i;
53976 if (this.options.backtrack_lexer) {
53977 token = this.test_match(tempMatch, rules[i]);
53978 if (token !== false) {
53979 return token;
53980 } else if (this._backtrack) {
53981 match = false;
53982 continue; // rule action called reject() implying a rule MISmatch.
53983 } else {
53984 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
53985 return false;
53986 }
53987 } else if (!this.options.flex) {
53988 break;
53989 }
53990 }
53991 }
53992 if (match) {
53993 token = this.test_match(match, rules[index]);
53994 if (token !== false) {
53995 return token;
53996 }
53997 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
53998 return false;
53999 }
54000 if (this._input === "") {
54001 return this.EOF;
54002 } else {
54003 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
54004 text: "",
54005 token: null,
54006 line: this.yylineno
54007 });
54008 }
54009 },
54010
54011// return next match that has a token
54012lex:function lex () {
54013 var r = this.next();
54014 if (r) {
54015 return r;
54016 } else {
54017 return this.lex();
54018 }
54019 },
54020
54021// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
54022begin:function begin (condition) {
54023 this.conditionStack.push(condition);
54024 },
54025
54026// pop the previously active lexer condition state off the condition stack
54027popState:function popState () {
54028 var n = this.conditionStack.length - 1;
54029 if (n > 0) {
54030 return this.conditionStack.pop();
54031 } else {
54032 return this.conditionStack[0];
54033 }
54034 },
54035
54036// produce the lexer rule set which is active for the currently active lexer condition state
54037_currentRules:function _currentRules () {
54038 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
54039 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
54040 } else {
54041 return this.conditions["INITIAL"].rules;
54042 }
54043 },
54044
54045// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
54046topState:function topState (n) {
54047 n = this.conditionStack.length - 1 - Math.abs(n || 0);
54048 if (n >= 0) {
54049 return this.conditionStack[n];
54050 } else {
54051 return "INITIAL";
54052 }
54053 },
54054
54055// alias for begin(condition)
54056pushState:function pushState (condition) {
54057 this.begin(condition);
54058 },
54059
54060// return the number of states currently on the stack
54061stateStackSize:function stateStackSize() {
54062 return this.conditionStack.length;
54063 },
54064options: {"case-insensitive":true},
54065performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
54066var YYSTATE=YY_START;
54067switch($avoiding_name_collisions) {
54068case 0:return 10;
54069break;
54070case 1:/* skip whitespace */
54071break;
54072case 2:/* skip comments */
54073break;
54074case 3:/* skip comments */
54075break;
54076case 4:this.begin("href");
54077break;
54078case 5:this.popState();
54079break;
54080case 6:return 23;
54081break;
54082case 7:this.begin("callbackname");
54083break;
54084case 8:this.popState();
54085break;
54086case 9:this.popState(); this.begin("callbackargs");
54087break;
54088case 10:return 21;
54089break;
54090case 11:this.popState();
54091break;
54092case 12:return 22;
54093break;
54094case 13:this.begin("click");
54095break;
54096case 14:this.popState();
54097break;
54098case 15:return 20;
54099break;
54100case 16:return 4;
54101break;
54102case 17:return 11;
54103break;
54104case 18:return 12;
54105break;
54106case 19:return 13;
54107break;
54108case 20:return 14;
54109break;
54110case 21:return 'date';
54111break;
54112case 22:return 15;
54113break;
54114case 23:return 16;
54115break;
54116case 24:return 18;
54117break;
54118case 25:return 19;
54119break;
54120case 26:return ':';
54121break;
54122case 27:return 6;
54123break;
54124case 28:return 'INVALID';
54125break;
54126}
54127},
54128rules: [/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],
54129conditions: {"callbackargs":{"rules":[11,12],"inclusive":false},"callbackname":{"rules":[8,9,10],"inclusive":false},"href":{"rules":[5,6],"inclusive":false},"click":{"rules":[14,15],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,7,13,16,17,18,19,20,21,22,23,24,25,26,27,28],"inclusive":true}}
54130});
54131return lexer;
54132})();
54133parser.lexer = lexer;
54134function Parser () {
54135 this.yy = {};
54136}
54137Parser.prototype = parser;parser.Parser = Parser;
54138return new Parser;
54139})();
54140
54141
54142if (true) {
54143exports.parser = parser;
54144exports.Parser = parser.Parser;
54145exports.parse = function () { return parser.parse.apply(parser, arguments); };
54146exports.main = function commonjsMain (args) {
54147 if (!args[1]) {
54148 console.log('Usage: '+args[0]+' FILE');
54149 process.exit(1);
54150 }
54151 var source = __webpack_require__(/*! fs */ "./node_modules/node-libs-browser/mock/empty.js").readFileSync(__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize(args[1]), "utf8");
54152 return exports.parser.parse(source);
54153};
54154if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
54155 exports.main(process.argv.slice(1));
54156}
54157}
54158/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
54159
54160/***/ }),
54161
54162/***/ "./src/diagrams/git/gitGraphAst.js":
54163/*!*****************************************!*\
54164 !*** ./src/diagrams/git/gitGraphAst.js ***!
54165 \*****************************************/
54166/*! exports provided: setDirection, setOptions, getOptions, commit, branch, merge, checkout, reset, prettyPrint, clear, getBranchesAsObjArray, getBranches, getCommits, getCommitsArray, getCurrentBranch, getDirection, getHead, default */
54167/***/ (function(module, __webpack_exports__, __webpack_require__) {
54168
54169"use strict";
54170__webpack_require__.r(__webpack_exports__);
54171/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDirection", function() { return setDirection; });
54172/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setOptions", function() { return setOptions; });
54173/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOptions", function() { return getOptions; });
54174/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commit", function() { return commit; });
54175/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "branch", function() { return branch; });
54176/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; });
54177/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkout", function() { return checkout; });
54178/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reset", function() { return reset; });
54179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prettyPrint", function() { return prettyPrint; });
54180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
54181/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBranchesAsObjArray", function() { return getBranchesAsObjArray; });
54182/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBranches", function() { return getBranches; });
54183/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCommits", function() { return getCommits; });
54184/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCommitsArray", function() { return getCommitsArray; });
54185/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCurrentBranch", function() { return getCurrentBranch; });
54186/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; });
54187/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getHead", function() { return getHead; });
54188/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
54189/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
54190/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
54191
54192
54193let commits = {};
54194let head = null;
54195let branches = {
54196 master: head
54197};
54198let curBranch = 'master';
54199let direction = 'LR';
54200let seq = 0;
54201
54202function getRandomInt(min, max) {
54203 return Math.floor(Math.random() * (max - min)) + min;
54204}
54205
54206function getId() {
54207 const pool = '0123456789abcdef';
54208 let id = '';
54209
54210 for (let i = 0; i < 7; i++) {
54211 id += pool[getRandomInt(0, 16)];
54212 }
54213
54214 return id;
54215}
54216
54217function isfastforwardable(currentCommit, otherCommit) {
54218 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id);
54219
54220 while (currentCommit.seq <= otherCommit.seq && currentCommit !== otherCommit) {
54221 // only if other branch has more commits
54222 if (otherCommit.parent == null) break;
54223
54224 if (Array.isArray(otherCommit.parent)) {
54225 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('In merge commit:', otherCommit.parent);
54226 return isfastforwardable(currentCommit, commits[otherCommit.parent[0]]) || isfastforwardable(currentCommit, commits[otherCommit.parent[1]]);
54227 } else {
54228 otherCommit = commits[otherCommit.parent];
54229 }
54230 }
54231
54232 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(currentCommit.id, otherCommit.id);
54233 return currentCommit.id === otherCommit.id;
54234}
54235
54236function isReachableFrom(currentCommit, otherCommit) {
54237 const currentSeq = currentCommit.seq;
54238 const otherSeq = otherCommit.seq;
54239 if (currentSeq > otherSeq) return isfastforwardable(otherCommit, currentCommit);
54240 return false;
54241}
54242
54243const setDirection = function (dir) {
54244 direction = dir;
54245};
54246let options = {};
54247const setOptions = function (rawOptString) {
54248 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('options str', rawOptString);
54249 rawOptString = rawOptString && rawOptString.trim();
54250 rawOptString = rawOptString || '{}';
54251
54252 try {
54253 options = JSON.parse(rawOptString);
54254 } catch (e) {
54255 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error('error while parsing gitGraph options', e.message);
54256 }
54257};
54258const getOptions = function () {
54259 return options;
54260};
54261const commit = function (msg) {
54262 const commit = {
54263 id: getId(),
54264 message: msg,
54265 seq: seq++,
54266 parent: head == null ? null : head.id
54267 };
54268 head = commit;
54269 commits[commit.id] = commit;
54270 branches[curBranch] = commit.id;
54271 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in pushCommit ' + commit.id);
54272};
54273const branch = function (name) {
54274 branches[name] = head != null ? head.id : null;
54275 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in createBranch');
54276};
54277const merge = function (otherBranch) {
54278 const currentCommit = commits[branches[curBranch]];
54279 const otherCommit = commits[branches[otherBranch]];
54280
54281 if (isReachableFrom(currentCommit, otherCommit)) {
54282 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Already merged');
54283 return;
54284 }
54285
54286 if (isfastforwardable(currentCommit, otherCommit)) {
54287 branches[curBranch] = branches[otherBranch];
54288 head = commits[branches[curBranch]];
54289 } else {
54290 // create merge commit
54291 const commit = {
54292 id: getId(),
54293 message: 'merged branch ' + otherBranch + ' into ' + curBranch,
54294 seq: seq++,
54295 parent: [head == null ? null : head.id, branches[otherBranch]]
54296 };
54297 head = commit;
54298 commits[commit.id] = commit;
54299 branches[curBranch] = commit.id;
54300 }
54301
54302 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(branches);
54303 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in mergeBranch');
54304};
54305const checkout = function (branch) {
54306 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in checkout');
54307 curBranch = branch;
54308 const id = branches[curBranch];
54309 head = commits[id];
54310};
54311const reset = function (commitRef) {
54312 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in reset', commitRef);
54313 const ref = commitRef.split(':')[0];
54314 let parentCount = parseInt(commitRef.split(':')[1]);
54315 let commit = ref === 'HEAD' ? head : commits[branches[ref]];
54316 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(commit, parentCount);
54317
54318 while (parentCount > 0) {
54319 commit = commits[commit.parent];
54320 parentCount--;
54321
54322 if (!commit) {
54323 const err = 'Critical error - unique parent commit not found during reset';
54324 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error(err);
54325 throw err;
54326 }
54327 }
54328
54329 head = commit;
54330 branches[curBranch] = commit.id;
54331};
54332
54333function upsert(arr, key, newval) {
54334 const index = arr.indexOf(key);
54335
54336 if (index === -1) {
54337 arr.push(newval);
54338 } else {
54339 arr.splice(index, 1, newval);
54340 }
54341}
54342
54343function prettyPrintCommitHistory(commitArr) {
54344 const commit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.maxBy(commitArr, 'seq');
54345
54346 let line = '';
54347 commitArr.forEach(function (c) {
54348 if (c === commit) {
54349 line += '\t*';
54350 } else {
54351 line += '\t|';
54352 }
54353 });
54354 const label = [line, commit.id, commit.seq];
54355
54356 for (let branch in branches) {
54357 if (branches[branch] === commit.id) label.push(branch);
54358 }
54359
54360 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(label.join(' '));
54361
54362 if (Array.isArray(commit.parent)) {
54363 const newCommit = commits[commit.parent[0]];
54364 upsert(commitArr, commit, newCommit);
54365 commitArr.push(commits[commit.parent[1]]);
54366 } else if (commit.parent == null) {
54367 return;
54368 } else {
54369 const nextCommit = commits[commit.parent];
54370 upsert(commitArr, commit, nextCommit);
54371 }
54372
54373 commitArr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(commitArr, 'id');
54374 prettyPrintCommitHistory(commitArr);
54375}
54376
54377const prettyPrint = function () {
54378 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(commits);
54379 const node = getCommitsArray()[0];
54380 prettyPrintCommitHistory([node]);
54381};
54382const clear = function () {
54383 commits = {};
54384 head = null;
54385 branches = {
54386 master: head
54387 };
54388 curBranch = 'master';
54389 seq = 0;
54390};
54391const getBranchesAsObjArray = function () {
54392 const branchArr = [];
54393
54394 for (let branch in branches) {
54395 branchArr.push({
54396 name: branch,
54397 commit: commits[branches[branch]]
54398 });
54399 }
54400
54401 return branchArr;
54402};
54403const getBranches = function () {
54404 return branches;
54405};
54406const getCommits = function () {
54407 return commits;
54408};
54409const getCommitsArray = function () {
54410 const commitArr = Object.keys(commits).map(function (key) {
54411 return commits[key];
54412 });
54413 commitArr.forEach(function (o) {
54414 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(o.id);
54415 });
54416 return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.orderBy(commitArr, ['seq'], ['desc']);
54417};
54418const getCurrentBranch = function () {
54419 return curBranch;
54420};
54421const getDirection = function () {
54422 return direction;
54423};
54424const getHead = function () {
54425 return head;
54426};
54427/* harmony default export */ __webpack_exports__["default"] = ({
54428 setDirection,
54429 setOptions,
54430 getOptions,
54431 commit,
54432 branch,
54433 merge,
54434 checkout,
54435 reset,
54436 prettyPrint,
54437 clear,
54438 getBranchesAsObjArray,
54439 getBranches,
54440 getCommits,
54441 getCommitsArray,
54442 getCurrentBranch,
54443 getDirection,
54444 getHead
54445});
54446
54447/***/ }),
54448
54449/***/ "./src/diagrams/git/gitGraphRenderer.js":
54450/*!**********************************************!*\
54451 !*** ./src/diagrams/git/gitGraphRenderer.js ***!
54452 \**********************************************/
54453/*! exports provided: setConf, draw, default */
54454/***/ (function(module, __webpack_exports__, __webpack_require__) {
54455
54456"use strict";
54457__webpack_require__.r(__webpack_exports__);
54458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
54459/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
54460/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
54461/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
54462/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
54463/* harmony import */ var _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
54464/* harmony import */ var _parser_gitGraph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.jison");
54465/* harmony import */ var _parser_gitGraph__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_gitGraph__WEBPACK_IMPORTED_MODULE_3__);
54466/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
54467/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
54468
54469
54470
54471
54472
54473
54474let allCommitsDict = {};
54475let branchNum;
54476let config = {
54477 nodeSpacing: 150,
54478 nodeFillColor: 'yellow',
54479 nodeStrokeWidth: 2,
54480 nodeStrokeColor: 'grey',
54481 lineStrokeWidth: 4,
54482 branchOffset: 50,
54483 lineColor: 'grey',
54484 leftMargin: 50,
54485 branchColors: ['#442f74', '#983351', '#609732', '#AA9A39'],
54486 nodeRadius: 10,
54487 nodeLabel: {
54488 width: 75,
54489 height: 100,
54490 x: -25,
54491 y: 0
54492 }
54493};
54494let apiConfig = {};
54495const setConf = function (c) {
54496 apiConfig = c;
54497};
54498
54499function svgCreateDefs(svg) {
54500 svg.append('defs').append('g').attr('id', 'def-commit').append('circle').attr('r', config.nodeRadius).attr('cx', 0).attr('cy', 0);
54501 svg.select('#def-commit').append('foreignObject').attr('width', config.nodeLabel.width).attr('height', config.nodeLabel.height).attr('x', config.nodeLabel.x).attr('y', config.nodeLabel.y).attr('class', 'node-label').attr('requiredFeatures', 'http://www.w3.org/TR/SVG11/feature#Extensibility').append('p').html('');
54502}
54503
54504function svgDrawLine(svg, points, colorIdx, interpolate) {
54505 const curve = Object(_utils__WEBPACK_IMPORTED_MODULE_5__["interpolateToCurve"])(interpolate, d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
54506 const color = config.branchColors[colorIdx % config.branchColors.length];
54507 const lineGen = d3__WEBPACK_IMPORTED_MODULE_0__["line"]().x(function (d) {
54508 return Math.round(d.x);
54509 }).y(function (d) {
54510 return Math.round(d.y);
54511 }).curve(curve);
54512 svg.append('svg:path').attr('d', lineGen(points)).style('stroke', color).style('stroke-width', config.lineStrokeWidth).style('fill', 'none');
54513} // Pass in the element and its pre-transform coords
54514
54515
54516function getElementCoords(element, coords) {
54517 coords = coords || element.node().getBBox();
54518 const ctm = element.node().getCTM();
54519 const xn = ctm.e + coords.x * ctm.a;
54520 const yn = ctm.f + coords.y * ctm.d;
54521 return {
54522 left: xn,
54523 top: yn,
54524 width: coords.width,
54525 height: coords.height
54526 };
54527}
54528
54529function svgDrawLineForCommits(svg, fromId, toId, direction, color) {
54530 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('svgDrawLineForCommits: ', fromId, toId);
54531 const fromBbox = getElementCoords(svg.select('#node-' + fromId + ' circle'));
54532 const toBbox = getElementCoords(svg.select('#node-' + toId + ' circle'));
54533
54534 switch (direction) {
54535 case 'LR':
54536 // (toBbox)
54537 // +--------
54538 // + (fromBbox)
54539 if (fromBbox.left - toBbox.left > config.nodeSpacing) {
54540 const lineStart = {
54541 x: fromBbox.left - config.nodeSpacing,
54542 y: toBbox.top + toBbox.height / 2
54543 };
54544 const lineEnd = {
54545 x: toBbox.left + toBbox.width,
54546 y: toBbox.top + toBbox.height / 2
54547 };
54548 svgDrawLine(svg, [lineStart, lineEnd], color, 'linear');
54549 svgDrawLine(svg, [{
54550 x: fromBbox.left,
54551 y: fromBbox.top + fromBbox.height / 2
54552 }, {
54553 x: fromBbox.left - config.nodeSpacing / 2,
54554 y: fromBbox.top + fromBbox.height / 2
54555 }, {
54556 x: fromBbox.left - config.nodeSpacing / 2,
54557 y: lineStart.y
54558 }, lineStart], color);
54559 } else {
54560 svgDrawLine(svg, [{
54561 x: fromBbox.left,
54562 y: fromBbox.top + fromBbox.height / 2
54563 }, {
54564 x: fromBbox.left - config.nodeSpacing / 2,
54565 y: fromBbox.top + fromBbox.height / 2
54566 }, {
54567 x: fromBbox.left - config.nodeSpacing / 2,
54568 y: toBbox.top + toBbox.height / 2
54569 }, {
54570 x: toBbox.left + toBbox.width,
54571 y: toBbox.top + toBbox.height / 2
54572 }], color);
54573 }
54574
54575 break;
54576
54577 case 'BT':
54578 // + (fromBbox)
54579 // |
54580 // |
54581 // + (toBbox)
54582 if (toBbox.top - fromBbox.top > config.nodeSpacing) {
54583 const lineStart = {
54584 x: toBbox.left + toBbox.width / 2,
54585 y: fromBbox.top + fromBbox.height + config.nodeSpacing
54586 };
54587 const lineEnd = {
54588 x: toBbox.left + toBbox.width / 2,
54589 y: toBbox.top
54590 };
54591 svgDrawLine(svg, [lineStart, lineEnd], color, 'linear');
54592 svgDrawLine(svg, [{
54593 x: fromBbox.left + fromBbox.width / 2,
54594 y: fromBbox.top + fromBbox.height
54595 }, {
54596 x: fromBbox.left + fromBbox.width / 2,
54597 y: fromBbox.top + fromBbox.height + config.nodeSpacing / 2
54598 }, {
54599 x: toBbox.left + toBbox.width / 2,
54600 y: lineStart.y - config.nodeSpacing / 2
54601 }, lineStart], color);
54602 } else {
54603 svgDrawLine(svg, [{
54604 x: fromBbox.left + fromBbox.width / 2,
54605 y: fromBbox.top + fromBbox.height
54606 }, {
54607 x: fromBbox.left + fromBbox.width / 2,
54608 y: fromBbox.top + config.nodeSpacing / 2
54609 }, {
54610 x: toBbox.left + toBbox.width / 2,
54611 y: toBbox.top - config.nodeSpacing / 2
54612 }, {
54613 x: toBbox.left + toBbox.width / 2,
54614 y: toBbox.top
54615 }], color);
54616 }
54617
54618 break;
54619 }
54620}
54621
54622function cloneNode(svg, selector) {
54623 return svg.select(selector).node().cloneNode(true);
54624}
54625
54626function renderCommitHistory(svg, commitid, branches, direction) {
54627 let commit;
54628 const numCommits = Object.keys(allCommitsDict).length;
54629
54630 if (typeof commitid === 'string') {
54631 do {
54632 commit = allCommitsDict[commitid];
54633 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('in renderCommitHistory', commit.id, commit.seq);
54634
54635 if (svg.select('#node-' + commitid).size() > 0) {
54636 return;
54637 }
54638
54639 svg.append(function () {
54640 return cloneNode(svg, '#def-commit');
54641 }).attr('class', 'commit').attr('id', function () {
54642 return 'node-' + commit.id;
54643 }).attr('transform', function () {
54644 switch (direction) {
54645 case 'LR':
54646 return 'translate(' + (commit.seq * config.nodeSpacing + config.leftMargin) + ', ' + branchNum * config.branchOffset + ')';
54647
54648 case 'BT':
54649 return 'translate(' + (branchNum * config.branchOffset + config.leftMargin) + ', ' + (numCommits - commit.seq) * config.nodeSpacing + ')';
54650 }
54651 }).attr('fill', config.nodeFillColor).attr('stroke', config.nodeStrokeColor).attr('stroke-width', config.nodeStrokeWidth);
54652 let branch;
54653
54654 for (let branchName in branches) {
54655 if (branches[branchName].commit === commit) {
54656 branch = branches[branchName];
54657 break;
54658 }
54659 }
54660
54661 if (branch) {
54662 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('found branch ', branch.name);
54663 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'branch-label').text(branch.name + ', ');
54664 }
54665
54666 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-id').text(commit.id);
54667
54668 if (commit.message !== '' && direction === 'BT') {
54669 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-msg').text(', ' + commit.message);
54670 }
54671
54672 commitid = commit.parent;
54673 } while (commitid && allCommitsDict[commitid]);
54674 }
54675
54676 if (Array.isArray(commitid)) {
54677 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('found merge commmit', commitid);
54678 renderCommitHistory(svg, commitid[0], branches, direction);
54679 branchNum++;
54680 renderCommitHistory(svg, commitid[1], branches, direction);
54681 branchNum--;
54682 }
54683}
54684
54685function renderLines(svg, commit, direction, branchColor) {
54686 branchColor = branchColor || 0;
54687
54688 while (commit.seq > 0 && !commit.lineDrawn) {
54689 if (typeof commit.parent === 'string') {
54690 svgDrawLineForCommits(svg, commit.id, commit.parent, direction, branchColor);
54691 commit.lineDrawn = true;
54692 commit = allCommitsDict[commit.parent];
54693 } else if (Array.isArray(commit.parent)) {
54694 svgDrawLineForCommits(svg, commit.id, commit.parent[0], direction, branchColor);
54695 svgDrawLineForCommits(svg, commit.id, commit.parent[1], direction, branchColor + 1);
54696 renderLines(svg, allCommitsDict[commit.parent[1]], direction, branchColor + 1);
54697 commit.lineDrawn = true;
54698 commit = allCommitsDict[commit.parent[0]];
54699 }
54700 }
54701}
54702
54703const draw = function (txt, id, ver) {
54704 try {
54705 const parser = _parser_gitGraph__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
54706 parser.yy = _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"];
54707 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('in gitgraph renderer', txt, id, ver); // Parse the graph definition
54708
54709 parser.parse(txt + '\n');
54710 config = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.assign(config, apiConfig, _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"].getOptions());
54711 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('effective options', config);
54712 const direction = _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
54713 allCommitsDict = _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"].getCommits();
54714 const branches = _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"].getBranchesAsObjArray();
54715
54716 if (direction === 'BT') {
54717 config.nodeLabel.x = branches.length * config.branchOffset;
54718 config.nodeLabel.width = '100%';
54719 config.nodeLabel.y = -1 * 2 * config.nodeRadius;
54720 }
54721
54722 const svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id="${id}"]`);
54723 svgCreateDefs(svg);
54724 branchNum = 1;
54725
54726 for (let branch in branches) {
54727 const v = branches[branch];
54728 renderCommitHistory(svg, v.commit.id, branches, direction);
54729 renderLines(svg, v.commit, direction);
54730 branchNum++;
54731 }
54732
54733 svg.attr('height', function () {
54734 if (direction === 'BT') return Object.keys(allCommitsDict).length * config.nodeSpacing;
54735 return (branches.length + 1) * config.branchOffset;
54736 });
54737 } catch (e) {
54738 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].error('Error while rendering gitgraph');
54739 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].error(e.message);
54740 }
54741};
54742/* harmony default export */ __webpack_exports__["default"] = ({
54743 setConf,
54744 draw
54745});
54746
54747/***/ }),
54748
54749/***/ "./src/diagrams/git/parser/gitGraph.jison":
54750/*!************************************************!*\
54751 !*** ./src/diagrams/git/parser/gitGraph.jison ***!
54752 \************************************************/
54753/*! no static exports found */
54754/***/ (function(module, exports, __webpack_require__) {
54755
54756/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
54757/*
54758 Returns a Parser object of the following structure:
54759
54760 Parser: {
54761 yy: {}
54762 }
54763
54764 Parser.prototype: {
54765 yy: {},
54766 trace: function(),
54767 symbols_: {associative list: name ==> number},
54768 terminals_: {associative list: number ==> name},
54769 productions_: [...],
54770 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
54771 table: [...],
54772 defaultActions: {...},
54773 parseError: function(str, hash),
54774 parse: function(input),
54775
54776 lexer: {
54777 EOF: 1,
54778 parseError: function(str, hash),
54779 setInput: function(input),
54780 input: function(),
54781 unput: function(str),
54782 more: function(),
54783 less: function(n),
54784 pastInput: function(),
54785 upcomingInput: function(),
54786 showPosition: function(),
54787 test_match: function(regex_match_array, rule_index),
54788 next: function(),
54789 lex: function(),
54790 begin: function(condition),
54791 popState: function(),
54792 _currentRules: function(),
54793 topState: function(),
54794 pushState: function(condition),
54795
54796 options: {
54797 ranges: boolean (optional: true ==> token location info will include a .range[] member)
54798 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
54799 backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
54800 },
54801
54802 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
54803 rules: [...],
54804 conditions: {associative list: name ==> set},
54805 }
54806 }
54807
54808
54809 token location info (@$, _$, etc.): {
54810 first_line: n,
54811 last_line: n,
54812 first_column: n,
54813 last_column: n,
54814 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
54815 }
54816
54817
54818 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
54819 text: (matched text)
54820 token: (the produced terminal token, if any)
54821 line: (yylineno)
54822 }
54823 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
54824 loc: (yylloc)
54825 expected: (string describing the set of expected tokens)
54826 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
54827 }
54828*/
54829var parser = (function(){
54830var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,3],$V1=[1,7],$V2=[7,12,15,17,19,20,21],$V3=[7,11,12,15,17,19,20,21],$V4=[2,20],$V5=[1,32];
54831var parser = {trace: function trace () { },
54832yy: {},
54833symbols_: {"error":2,"start":3,"GG":4,":":5,"document":6,"EOF":7,"DIR":8,"options":9,"body":10,"OPT":11,"NL":12,"line":13,"statement":14,"COMMIT":15,"commit_arg":16,"BRANCH":17,"ID":18,"CHECKOUT":19,"MERGE":20,"RESET":21,"reset_arg":22,"STR":23,"HEAD":24,"reset_parents":25,"CARET":26,"$accept":0,"$end":1},
54834terminals_: {2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"},
54835productions_: [0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],
54836performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
54837/* this == yyval */
54838
54839var $0 = $$.length - 1;
54840switch (yystate) {
54841case 1:
54842 return $$[$0-1];
54843break;
54844case 2:
54845yy.setDirection($$[$0-3]); return $$[$0-1];
54846break;
54847case 4:
54848 yy.setOptions($$[$0-1]); this.$ = $$[$0]
54849break;
54850case 5:
54851$$[$0-1] +=$$[$0]; this.$=$$[$0-1]
54852break;
54853case 7:
54854this.$ = []
54855break;
54856case 8:
54857$$[$0-1].push($$[$0]); this.$=$$[$0-1];
54858break;
54859case 9:
54860this.$ =$$[$0-1]
54861break;
54862case 11:
54863yy.commit($$[$0])
54864break;
54865case 12:
54866yy.branch($$[$0])
54867break;
54868case 13:
54869yy.checkout($$[$0])
54870break;
54871case 14:
54872yy.merge($$[$0])
54873break;
54874case 15:
54875yy.reset($$[$0])
54876break;
54877case 16:
54878this.$ = ""
54879break;
54880case 17:
54881this.$=$$[$0]
54882break;
54883case 18:
54884this.$ = $$[$0-1]+ ":" + $$[$0]
54885break;
54886case 19:
54887this.$ = $$[$0-1]+ ":" + yy.count; yy.count = 0
54888break;
54889case 20:
54890yy.count = 0
54891break;
54892case 21:
54893 yy.count += 1
54894break;
54895}
54896},
54897table: [{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:$V0,9:6,12:$V1},{5:[1,8]},{7:[1,9]},o($V2,[2,7],{10:10,11:[1,11]}),o($V3,[2,6]),{6:12,7:$V0,9:6,12:$V1},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},o($V3,[2,5]),{7:[1,21]},o($V2,[2,8]),{12:[1,22]},o($V2,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},o($V2,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:$V4,25:31,26:$V5},{12:$V4,25:33,26:$V5},{12:[2,18]},{12:$V4,25:34,26:$V5},{12:[2,19]},{12:[2,21]}],
54898defaultActions: {9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},
54899parseError: function parseError (str, hash) {
54900 if (hash.recoverable) {
54901 this.trace(str);
54902 } else {
54903 var error = new Error(str);
54904 error.hash = hash;
54905 throw error;
54906 }
54907},
54908parse: function parse(input) {
54909 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
54910 var args = lstack.slice.call(arguments, 1);
54911 var lexer = Object.create(this.lexer);
54912 var sharedState = { yy: {} };
54913 for (var k in this.yy) {
54914 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
54915 sharedState.yy[k] = this.yy[k];
54916 }
54917 }
54918 lexer.setInput(input, sharedState.yy);
54919 sharedState.yy.lexer = lexer;
54920 sharedState.yy.parser = this;
54921 if (typeof lexer.yylloc == 'undefined') {
54922 lexer.yylloc = {};
54923 }
54924 var yyloc = lexer.yylloc;
54925 lstack.push(yyloc);
54926 var ranges = lexer.options && lexer.options.ranges;
54927 if (typeof sharedState.yy.parseError === 'function') {
54928 this.parseError = sharedState.yy.parseError;
54929 } else {
54930 this.parseError = Object.getPrototypeOf(this).parseError;
54931 }
54932 function popStack(n) {
54933 stack.length = stack.length - 2 * n;
54934 vstack.length = vstack.length - n;
54935 lstack.length = lstack.length - n;
54936 }
54937 function lex() {
54938 var token;
54939 token = tstack.pop() || lexer.lex() || EOF;
54940 if (typeof token !== 'number') {
54941 if (token instanceof Array) {
54942 tstack = token;
54943 token = tstack.pop();
54944 }
54945 token = self.symbols_[token] || token;
54946 }
54947 return token;
54948 }
54949 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
54950 while (true) {
54951 state = stack[stack.length - 1];
54952 if (this.defaultActions[state]) {
54953 action = this.defaultActions[state];
54954 } else {
54955 if (symbol === null || typeof symbol == 'undefined') {
54956 symbol = lex();
54957 }
54958 action = table[state] && table[state][symbol];
54959 }
54960 if (typeof action === 'undefined' || !action.length || !action[0]) {
54961 var errStr = '';
54962 expected = [];
54963 for (p in table[state]) {
54964 if (this.terminals_[p] && p > TERROR) {
54965 expected.push('\'' + this.terminals_[p] + '\'');
54966 }
54967 }
54968 if (lexer.showPosition) {
54969 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
54970 } else {
54971 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
54972 }
54973 this.parseError(errStr, {
54974 text: lexer.match,
54975 token: this.terminals_[symbol] || symbol,
54976 line: lexer.yylineno,
54977 loc: yyloc,
54978 expected: expected
54979 });
54980 }
54981 if (action[0] instanceof Array && action.length > 1) {
54982 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
54983 }
54984 switch (action[0]) {
54985 case 1:
54986 stack.push(symbol);
54987 vstack.push(lexer.yytext);
54988 lstack.push(lexer.yylloc);
54989 stack.push(action[1]);
54990 symbol = null;
54991 if (!preErrorSymbol) {
54992 yyleng = lexer.yyleng;
54993 yytext = lexer.yytext;
54994 yylineno = lexer.yylineno;
54995 yyloc = lexer.yylloc;
54996 if (recovering > 0) {
54997 recovering--;
54998 }
54999 } else {
55000 symbol = preErrorSymbol;
55001 preErrorSymbol = null;
55002 }
55003 break;
55004 case 2:
55005 len = this.productions_[action[1]][1];
55006 yyval.$ = vstack[vstack.length - len];
55007 yyval._$ = {
55008 first_line: lstack[lstack.length - (len || 1)].first_line,
55009 last_line: lstack[lstack.length - 1].last_line,
55010 first_column: lstack[lstack.length - (len || 1)].first_column,
55011 last_column: lstack[lstack.length - 1].last_column
55012 };
55013 if (ranges) {
55014 yyval._$.range = [
55015 lstack[lstack.length - (len || 1)].range[0],
55016 lstack[lstack.length - 1].range[1]
55017 ];
55018 }
55019 r = this.performAction.apply(yyval, [
55020 yytext,
55021 yyleng,
55022 yylineno,
55023 sharedState.yy,
55024 action[1],
55025 vstack,
55026 lstack
55027 ].concat(args));
55028 if (typeof r !== 'undefined') {
55029 return r;
55030 }
55031 if (len) {
55032 stack = stack.slice(0, -1 * len * 2);
55033 vstack = vstack.slice(0, -1 * len);
55034 lstack = lstack.slice(0, -1 * len);
55035 }
55036 stack.push(this.productions_[action[1]][0]);
55037 vstack.push(yyval.$);
55038 lstack.push(yyval._$);
55039 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
55040 stack.push(newState);
55041 break;
55042 case 3:
55043 return true;
55044 }
55045 }
55046 return true;
55047}};
55048/* generated by jison-lex 0.3.4 */
55049var lexer = (function(){
55050var lexer = ({
55051
55052EOF:1,
55053
55054parseError:function parseError(str, hash) {
55055 if (this.yy.parser) {
55056 this.yy.parser.parseError(str, hash);
55057 } else {
55058 throw new Error(str);
55059 }
55060 },
55061
55062// resets the lexer, sets new input
55063setInput:function (input, yy) {
55064 this.yy = yy || this.yy || {};
55065 this._input = input;
55066 this._more = this._backtrack = this.done = false;
55067 this.yylineno = this.yyleng = 0;
55068 this.yytext = this.matched = this.match = '';
55069 this.conditionStack = ['INITIAL'];
55070 this.yylloc = {
55071 first_line: 1,
55072 first_column: 0,
55073 last_line: 1,
55074 last_column: 0
55075 };
55076 if (this.options.ranges) {
55077 this.yylloc.range = [0,0];
55078 }
55079 this.offset = 0;
55080 return this;
55081 },
55082
55083// consumes and returns one char from the input
55084input:function () {
55085 var ch = this._input[0];
55086 this.yytext += ch;
55087 this.yyleng++;
55088 this.offset++;
55089 this.match += ch;
55090 this.matched += ch;
55091 var lines = ch.match(/(?:\r\n?|\n).*/g);
55092 if (lines) {
55093 this.yylineno++;
55094 this.yylloc.last_line++;
55095 } else {
55096 this.yylloc.last_column++;
55097 }
55098 if (this.options.ranges) {
55099 this.yylloc.range[1]++;
55100 }
55101
55102 this._input = this._input.slice(1);
55103 return ch;
55104 },
55105
55106// unshifts one char (or a string) into the input
55107unput:function (ch) {
55108 var len = ch.length;
55109 var lines = ch.split(/(?:\r\n?|\n)/g);
55110
55111 this._input = ch + this._input;
55112 this.yytext = this.yytext.substr(0, this.yytext.length - len);
55113 //this.yyleng -= len;
55114 this.offset -= len;
55115 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
55116 this.match = this.match.substr(0, this.match.length - 1);
55117 this.matched = this.matched.substr(0, this.matched.length - 1);
55118
55119 if (lines.length - 1) {
55120 this.yylineno -= lines.length - 1;
55121 }
55122 var r = this.yylloc.range;
55123
55124 this.yylloc = {
55125 first_line: this.yylloc.first_line,
55126 last_line: this.yylineno + 1,
55127 first_column: this.yylloc.first_column,
55128 last_column: lines ?
55129 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
55130 + oldLines[oldLines.length - lines.length].length - lines[0].length :
55131 this.yylloc.first_column - len
55132 };
55133
55134 if (this.options.ranges) {
55135 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
55136 }
55137 this.yyleng = this.yytext.length;
55138 return this;
55139 },
55140
55141// When called from action, caches matched text and appends it on next action
55142more:function () {
55143 this._more = true;
55144 return this;
55145 },
55146
55147// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
55148reject:function () {
55149 if (this.options.backtrack_lexer) {
55150 this._backtrack = true;
55151 } else {
55152 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
55153 text: "",
55154 token: null,
55155 line: this.yylineno
55156 });
55157
55158 }
55159 return this;
55160 },
55161
55162// retain first n characters of the match
55163less:function (n) {
55164 this.unput(this.match.slice(n));
55165 },
55166
55167// displays already matched input, i.e. for error messages
55168pastInput:function () {
55169 var past = this.matched.substr(0, this.matched.length - this.match.length);
55170 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
55171 },
55172
55173// displays upcoming input, i.e. for error messages
55174upcomingInput:function () {
55175 var next = this.match;
55176 if (next.length < 20) {
55177 next += this._input.substr(0, 20-next.length);
55178 }
55179 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
55180 },
55181
55182// displays the character position where the lexing error occurred, i.e. for error messages
55183showPosition:function () {
55184 var pre = this.pastInput();
55185 var c = new Array(pre.length + 1).join("-");
55186 return pre + this.upcomingInput() + "\n" + c + "^";
55187 },
55188
55189// test the lexed token: return FALSE when not a match, otherwise return token
55190test_match:function(match, indexed_rule) {
55191 var token,
55192 lines,
55193 backup;
55194
55195 if (this.options.backtrack_lexer) {
55196 // save context
55197 backup = {
55198 yylineno: this.yylineno,
55199 yylloc: {
55200 first_line: this.yylloc.first_line,
55201 last_line: this.last_line,
55202 first_column: this.yylloc.first_column,
55203 last_column: this.yylloc.last_column
55204 },
55205 yytext: this.yytext,
55206 match: this.match,
55207 matches: this.matches,
55208 matched: this.matched,
55209 yyleng: this.yyleng,
55210 offset: this.offset,
55211 _more: this._more,
55212 _input: this._input,
55213 yy: this.yy,
55214 conditionStack: this.conditionStack.slice(0),
55215 done: this.done
55216 };
55217 if (this.options.ranges) {
55218 backup.yylloc.range = this.yylloc.range.slice(0);
55219 }
55220 }
55221
55222 lines = match[0].match(/(?:\r\n?|\n).*/g);
55223 if (lines) {
55224 this.yylineno += lines.length;
55225 }
55226 this.yylloc = {
55227 first_line: this.yylloc.last_line,
55228 last_line: this.yylineno + 1,
55229 first_column: this.yylloc.last_column,
55230 last_column: lines ?
55231 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
55232 this.yylloc.last_column + match[0].length
55233 };
55234 this.yytext += match[0];
55235 this.match += match[0];
55236 this.matches = match;
55237 this.yyleng = this.yytext.length;
55238 if (this.options.ranges) {
55239 this.yylloc.range = [this.offset, this.offset += this.yyleng];
55240 }
55241 this._more = false;
55242 this._backtrack = false;
55243 this._input = this._input.slice(match[0].length);
55244 this.matched += match[0];
55245 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
55246 if (this.done && this._input) {
55247 this.done = false;
55248 }
55249 if (token) {
55250 return token;
55251 } else if (this._backtrack) {
55252 // recover context
55253 for (var k in backup) {
55254 this[k] = backup[k];
55255 }
55256 return false; // rule action called reject() implying the next rule should be tested instead.
55257 }
55258 return false;
55259 },
55260
55261// return next match in input
55262next:function () {
55263 if (this.done) {
55264 return this.EOF;
55265 }
55266 if (!this._input) {
55267 this.done = true;
55268 }
55269
55270 var token,
55271 match,
55272 tempMatch,
55273 index;
55274 if (!this._more) {
55275 this.yytext = '';
55276 this.match = '';
55277 }
55278 var rules = this._currentRules();
55279 for (var i = 0; i < rules.length; i++) {
55280 tempMatch = this._input.match(this.rules[rules[i]]);
55281 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
55282 match = tempMatch;
55283 index = i;
55284 if (this.options.backtrack_lexer) {
55285 token = this.test_match(tempMatch, rules[i]);
55286 if (token !== false) {
55287 return token;
55288 } else if (this._backtrack) {
55289 match = false;
55290 continue; // rule action called reject() implying a rule MISmatch.
55291 } else {
55292 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
55293 return false;
55294 }
55295 } else if (!this.options.flex) {
55296 break;
55297 }
55298 }
55299 }
55300 if (match) {
55301 token = this.test_match(match, rules[index]);
55302 if (token !== false) {
55303 return token;
55304 }
55305 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
55306 return false;
55307 }
55308 if (this._input === "") {
55309 return this.EOF;
55310 } else {
55311 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
55312 text: "",
55313 token: null,
55314 line: this.yylineno
55315 });
55316 }
55317 },
55318
55319// return next match that has a token
55320lex:function lex () {
55321 var r = this.next();
55322 if (r) {
55323 return r;
55324 } else {
55325 return this.lex();
55326 }
55327 },
55328
55329// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
55330begin:function begin (condition) {
55331 this.conditionStack.push(condition);
55332 },
55333
55334// pop the previously active lexer condition state off the condition stack
55335popState:function popState () {
55336 var n = this.conditionStack.length - 1;
55337 if (n > 0) {
55338 return this.conditionStack.pop();
55339 } else {
55340 return this.conditionStack[0];
55341 }
55342 },
55343
55344// produce the lexer rule set which is active for the currently active lexer condition state
55345_currentRules:function _currentRules () {
55346 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
55347 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
55348 } else {
55349 return this.conditions["INITIAL"].rules;
55350 }
55351 },
55352
55353// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
55354topState:function topState (n) {
55355 n = this.conditionStack.length - 1 - Math.abs(n || 0);
55356 if (n >= 0) {
55357 return this.conditionStack[n];
55358 } else {
55359 return "INITIAL";
55360 }
55361 },
55362
55363// alias for begin(condition)
55364pushState:function pushState (condition) {
55365 this.begin(condition);
55366 },
55367
55368// return the number of states currently on the stack
55369stateStackSize:function stateStackSize() {
55370 return this.conditionStack.length;
55371 },
55372options: {"case-insensitive":true},
55373performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
55374var YYSTATE=YY_START;
55375switch($avoiding_name_collisions) {
55376case 0:return 12;
55377break;
55378case 1:/* skip all whitespace */
55379break;
55380case 2:/* skip comments */
55381break;
55382case 3:/* skip comments */
55383break;
55384case 4:return 4;
55385break;
55386case 5:return 15;
55387break;
55388case 6:return 17;
55389break;
55390case 7:return 20;
55391break;
55392case 8:return 21;
55393break;
55394case 9:return 19;
55395break;
55396case 10:return 8;
55397break;
55398case 11:return 8;
55399break;
55400case 12:return 5;
55401break;
55402case 13:return 26
55403break;
55404case 14:this.begin("options");
55405break;
55406case 15:this.popState();
55407break;
55408case 16:return 11;
55409break;
55410case 17:this.begin("string");
55411break;
55412case 18:this.popState();
55413break;
55414case 19:return 23;
55415break;
55416case 20:return 18;
55417break;
55418case 21:return 7;
55419break;
55420}
55421},
55422rules: [/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:branch\b)/i,/^(?:merge\b)/i,/^(?:reset\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:end\r?\n)/i,/^(?:[^\n]+\r?\n)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[a-zA-Z][a-zA-Z0-9_]+)/i,/^(?:$)/i],
55423conditions: {"options":{"rules":[15,16],"inclusive":false},"string":{"rules":[18,19],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,20,21],"inclusive":true}}
55424});
55425return lexer;
55426})();
55427parser.lexer = lexer;
55428function Parser () {
55429 this.yy = {};
55430}
55431Parser.prototype = parser;parser.Parser = Parser;
55432return new Parser;
55433})();
55434
55435
55436if (true) {
55437exports.parser = parser;
55438exports.Parser = parser.Parser;
55439exports.parse = function () { return parser.parse.apply(parser, arguments); };
55440exports.main = function commonjsMain (args) {
55441 if (!args[1]) {
55442 console.log('Usage: '+args[0]+' FILE');
55443 process.exit(1);
55444 }
55445 var source = __webpack_require__(/*! fs */ "./node_modules/node-libs-browser/mock/empty.js").readFileSync(__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize(args[1]), "utf8");
55446 return exports.parser.parse(source);
55447};
55448if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
55449 exports.main(process.argv.slice(1));
55450}
55451}
55452/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
55453
55454/***/ }),
55455
55456/***/ "./src/diagrams/info/infoDb.js":
55457/*!*************************************!*\
55458 !*** ./src/diagrams/info/infoDb.js ***!
55459 \*************************************/
55460/*! exports provided: setMessage, getMessage, setInfo, getInfo, default */
55461/***/ (function(module, __webpack_exports__, __webpack_require__) {
55462
55463"use strict";
55464__webpack_require__.r(__webpack_exports__);
55465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMessage", function() { return setMessage; });
55466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMessage", function() { return getMessage; });
55467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setInfo", function() { return setInfo; });
55468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInfo", function() { return getInfo; });
55469/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
55470/**
55471 * Created by knut on 15-01-14.
55472 */
55473
55474var message = '';
55475var info = false;
55476const setMessage = txt => {
55477 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Setting message to: ' + txt);
55478 message = txt;
55479};
55480const getMessage = () => {
55481 return message;
55482};
55483const setInfo = inf => {
55484 info = inf;
55485};
55486const getInfo = () => {
55487 return info;
55488}; // export const parseError = (err, hash) => {
55489// global.mermaidAPI.parseError(err, hash)
55490// }
55491
55492/* harmony default export */ __webpack_exports__["default"] = ({
55493 setMessage,
55494 getMessage,
55495 setInfo,
55496 getInfo // parseError
55497
55498});
55499
55500/***/ }),
55501
55502/***/ "./src/diagrams/info/infoRenderer.js":
55503/*!*******************************************!*\
55504 !*** ./src/diagrams/info/infoRenderer.js ***!
55505 \*******************************************/
55506/*! exports provided: setConf, draw, default */
55507/***/ (function(module, __webpack_exports__, __webpack_require__) {
55508
55509"use strict";
55510__webpack_require__.r(__webpack_exports__);
55511/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
55512/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
55513/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
55514/* harmony import */ var _infoDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./infoDb */ "./src/diagrams/info/infoDb.js");
55515/* harmony import */ var _parser_info__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/info */ "./src/diagrams/info/parser/info.jison");
55516/* harmony import */ var _parser_info__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_info__WEBPACK_IMPORTED_MODULE_2__);
55517/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
55518/**
55519 * Created by knut on 14-12-11.
55520 */
55521
55522
55523
55524
55525const conf = {};
55526const setConf = function (cnf) {
55527 const keys = Object.keys(cnf);
55528 keys.forEach(function (key) {
55529 conf[key] = cnf[key];
55530 });
55531};
55532/**
55533 * Draws a an info picture in the tag with id: id based on the graph definition in text.
55534 * @param text
55535 * @param id
55536 */
55537
55538const draw = (txt, id, ver) => {
55539 try {
55540 const parser = _parser_info__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
55541 parser.yy = _infoDb__WEBPACK_IMPORTED_MODULE_1__["default"];
55542 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Renering info diagram\n' + txt); // Parse the graph definition
55543
55544 parser.parse(txt);
55545 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Parsed info diagram'); // Fetch the default direction, use TD if none was found
55546
55547 const svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#' + id);
55548 const g = svg.append('g');
55549 g.append('text') // text label for the x axis
55550 .attr('x', 100).attr('y', 40).attr('class', 'version').attr('font-size', '32px').style('text-anchor', 'middle').text('v ' + ver);
55551 svg.attr('height', 100);
55552 svg.attr('width', 400); // svg.attr('viewBox', '0 0 300 150');
55553 } catch (e) {
55554 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering info diagram');
55555 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e.message);
55556 }
55557};
55558/* harmony default export */ __webpack_exports__["default"] = ({
55559 setConf,
55560 draw
55561});
55562
55563/***/ }),
55564
55565/***/ "./src/diagrams/info/parser/info.jison":
55566/*!*********************************************!*\
55567 !*** ./src/diagrams/info/parser/info.jison ***!
55568 \*********************************************/
55569/*! no static exports found */
55570/***/ (function(module, exports, __webpack_require__) {
55571
55572/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
55573/*
55574 Returns a Parser object of the following structure:
55575
55576 Parser: {
55577 yy: {}
55578 }
55579
55580 Parser.prototype: {
55581 yy: {},
55582 trace: function(),
55583 symbols_: {associative list: name ==> number},
55584 terminals_: {associative list: number ==> name},
55585 productions_: [...],
55586 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
55587 table: [...],
55588 defaultActions: {...},
55589 parseError: function(str, hash),
55590 parse: function(input),
55591
55592 lexer: {
55593 EOF: 1,
55594 parseError: function(str, hash),
55595 setInput: function(input),
55596 input: function(),
55597 unput: function(str),
55598 more: function(),
55599 less: function(n),
55600 pastInput: function(),
55601 upcomingInput: function(),
55602 showPosition: function(),
55603 test_match: function(regex_match_array, rule_index),
55604 next: function(),
55605 lex: function(),
55606 begin: function(condition),
55607 popState: function(),
55608 _currentRules: function(),
55609 topState: function(),
55610 pushState: function(condition),
55611
55612 options: {
55613 ranges: boolean (optional: true ==> token location info will include a .range[] member)
55614 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
55615 backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
55616 },
55617
55618 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
55619 rules: [...],
55620 conditions: {associative list: name ==> set},
55621 }
55622 }
55623
55624
55625 token location info (@$, _$, etc.): {
55626 first_line: n,
55627 last_line: n,
55628 first_column: n,
55629 last_column: n,
55630 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
55631 }
55632
55633
55634 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
55635 text: (matched text)
55636 token: (the produced terminal token, if any)
55637 line: (yylineno)
55638 }
55639 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
55640 loc: (yylloc)
55641 expected: (string describing the set of expected tokens)
55642 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
55643 }
55644*/
55645var parser = (function(){
55646var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10];
55647var parser = {trace: function trace () { },
55648yy: {},
55649symbols_: {"error":2,"start":3,"info":4,"document":5,"EOF":6,"line":7,"statement":8,"NL":9,"showInfo":10,"$accept":0,"$end":1},
55650terminals_: {2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},
55651productions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],
55652performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
55653/* this == yyval */
55654
55655var $0 = $$.length - 1;
55656switch (yystate) {
55657case 1:
55658 return yy;
55659break;
55660case 4:
55661
55662break;
55663case 6:
55664 yy.setInfo(true);
55665break;
55666}
55667},
55668table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),o($V0,[2,6])],
55669defaultActions: {4:[2,1]},
55670parseError: function parseError (str, hash) {
55671 if (hash.recoverable) {
55672 this.trace(str);
55673 } else {
55674 var error = new Error(str);
55675 error.hash = hash;
55676 throw error;
55677 }
55678},
55679parse: function parse(input) {
55680 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
55681 var args = lstack.slice.call(arguments, 1);
55682 var lexer = Object.create(this.lexer);
55683 var sharedState = { yy: {} };
55684 for (var k in this.yy) {
55685 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
55686 sharedState.yy[k] = this.yy[k];
55687 }
55688 }
55689 lexer.setInput(input, sharedState.yy);
55690 sharedState.yy.lexer = lexer;
55691 sharedState.yy.parser = this;
55692 if (typeof lexer.yylloc == 'undefined') {
55693 lexer.yylloc = {};
55694 }
55695 var yyloc = lexer.yylloc;
55696 lstack.push(yyloc);
55697 var ranges = lexer.options && lexer.options.ranges;
55698 if (typeof sharedState.yy.parseError === 'function') {
55699 this.parseError = sharedState.yy.parseError;
55700 } else {
55701 this.parseError = Object.getPrototypeOf(this).parseError;
55702 }
55703 function popStack(n) {
55704 stack.length = stack.length - 2 * n;
55705 vstack.length = vstack.length - n;
55706 lstack.length = lstack.length - n;
55707 }
55708 function lex() {
55709 var token;
55710 token = tstack.pop() || lexer.lex() || EOF;
55711 if (typeof token !== 'number') {
55712 if (token instanceof Array) {
55713 tstack = token;
55714 token = tstack.pop();
55715 }
55716 token = self.symbols_[token] || token;
55717 }
55718 return token;
55719 }
55720 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
55721 while (true) {
55722 state = stack[stack.length - 1];
55723 if (this.defaultActions[state]) {
55724 action = this.defaultActions[state];
55725 } else {
55726 if (symbol === null || typeof symbol == 'undefined') {
55727 symbol = lex();
55728 }
55729 action = table[state] && table[state][symbol];
55730 }
55731 if (typeof action === 'undefined' || !action.length || !action[0]) {
55732 var errStr = '';
55733 expected = [];
55734 for (p in table[state]) {
55735 if (this.terminals_[p] && p > TERROR) {
55736 expected.push('\'' + this.terminals_[p] + '\'');
55737 }
55738 }
55739 if (lexer.showPosition) {
55740 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
55741 } else {
55742 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
55743 }
55744 this.parseError(errStr, {
55745 text: lexer.match,
55746 token: this.terminals_[symbol] || symbol,
55747 line: lexer.yylineno,
55748 loc: yyloc,
55749 expected: expected
55750 });
55751 }
55752 if (action[0] instanceof Array && action.length > 1) {
55753 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
55754 }
55755 switch (action[0]) {
55756 case 1:
55757 stack.push(symbol);
55758 vstack.push(lexer.yytext);
55759 lstack.push(lexer.yylloc);
55760 stack.push(action[1]);
55761 symbol = null;
55762 if (!preErrorSymbol) {
55763 yyleng = lexer.yyleng;
55764 yytext = lexer.yytext;
55765 yylineno = lexer.yylineno;
55766 yyloc = lexer.yylloc;
55767 if (recovering > 0) {
55768 recovering--;
55769 }
55770 } else {
55771 symbol = preErrorSymbol;
55772 preErrorSymbol = null;
55773 }
55774 break;
55775 case 2:
55776 len = this.productions_[action[1]][1];
55777 yyval.$ = vstack[vstack.length - len];
55778 yyval._$ = {
55779 first_line: lstack[lstack.length - (len || 1)].first_line,
55780 last_line: lstack[lstack.length - 1].last_line,
55781 first_column: lstack[lstack.length - (len || 1)].first_column,
55782 last_column: lstack[lstack.length - 1].last_column
55783 };
55784 if (ranges) {
55785 yyval._$.range = [
55786 lstack[lstack.length - (len || 1)].range[0],
55787 lstack[lstack.length - 1].range[1]
55788 ];
55789 }
55790 r = this.performAction.apply(yyval, [
55791 yytext,
55792 yyleng,
55793 yylineno,
55794 sharedState.yy,
55795 action[1],
55796 vstack,
55797 lstack
55798 ].concat(args));
55799 if (typeof r !== 'undefined') {
55800 return r;
55801 }
55802 if (len) {
55803 stack = stack.slice(0, -1 * len * 2);
55804 vstack = vstack.slice(0, -1 * len);
55805 lstack = lstack.slice(0, -1 * len);
55806 }
55807 stack.push(this.productions_[action[1]][0]);
55808 vstack.push(yyval.$);
55809 lstack.push(yyval._$);
55810 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
55811 stack.push(newState);
55812 break;
55813 case 3:
55814 return true;
55815 }
55816 }
55817 return true;
55818}};
55819/* generated by jison-lex 0.3.4 */
55820var lexer = (function(){
55821var lexer = ({
55822
55823EOF:1,
55824
55825parseError:function parseError(str, hash) {
55826 if (this.yy.parser) {
55827 this.yy.parser.parseError(str, hash);
55828 } else {
55829 throw new Error(str);
55830 }
55831 },
55832
55833// resets the lexer, sets new input
55834setInput:function (input, yy) {
55835 this.yy = yy || this.yy || {};
55836 this._input = input;
55837 this._more = this._backtrack = this.done = false;
55838 this.yylineno = this.yyleng = 0;
55839 this.yytext = this.matched = this.match = '';
55840 this.conditionStack = ['INITIAL'];
55841 this.yylloc = {
55842 first_line: 1,
55843 first_column: 0,
55844 last_line: 1,
55845 last_column: 0
55846 };
55847 if (this.options.ranges) {
55848 this.yylloc.range = [0,0];
55849 }
55850 this.offset = 0;
55851 return this;
55852 },
55853
55854// consumes and returns one char from the input
55855input:function () {
55856 var ch = this._input[0];
55857 this.yytext += ch;
55858 this.yyleng++;
55859 this.offset++;
55860 this.match += ch;
55861 this.matched += ch;
55862 var lines = ch.match(/(?:\r\n?|\n).*/g);
55863 if (lines) {
55864 this.yylineno++;
55865 this.yylloc.last_line++;
55866 } else {
55867 this.yylloc.last_column++;
55868 }
55869 if (this.options.ranges) {
55870 this.yylloc.range[1]++;
55871 }
55872
55873 this._input = this._input.slice(1);
55874 return ch;
55875 },
55876
55877// unshifts one char (or a string) into the input
55878unput:function (ch) {
55879 var len = ch.length;
55880 var lines = ch.split(/(?:\r\n?|\n)/g);
55881
55882 this._input = ch + this._input;
55883 this.yytext = this.yytext.substr(0, this.yytext.length - len);
55884 //this.yyleng -= len;
55885 this.offset -= len;
55886 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
55887 this.match = this.match.substr(0, this.match.length - 1);
55888 this.matched = this.matched.substr(0, this.matched.length - 1);
55889
55890 if (lines.length - 1) {
55891 this.yylineno -= lines.length - 1;
55892 }
55893 var r = this.yylloc.range;
55894
55895 this.yylloc = {
55896 first_line: this.yylloc.first_line,
55897 last_line: this.yylineno + 1,
55898 first_column: this.yylloc.first_column,
55899 last_column: lines ?
55900 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
55901 + oldLines[oldLines.length - lines.length].length - lines[0].length :
55902 this.yylloc.first_column - len
55903 };
55904
55905 if (this.options.ranges) {
55906 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
55907 }
55908 this.yyleng = this.yytext.length;
55909 return this;
55910 },
55911
55912// When called from action, caches matched text and appends it on next action
55913more:function () {
55914 this._more = true;
55915 return this;
55916 },
55917
55918// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
55919reject:function () {
55920 if (this.options.backtrack_lexer) {
55921 this._backtrack = true;
55922 } else {
55923 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
55924 text: "",
55925 token: null,
55926 line: this.yylineno
55927 });
55928
55929 }
55930 return this;
55931 },
55932
55933// retain first n characters of the match
55934less:function (n) {
55935 this.unput(this.match.slice(n));
55936 },
55937
55938// displays already matched input, i.e. for error messages
55939pastInput:function () {
55940 var past = this.matched.substr(0, this.matched.length - this.match.length);
55941 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
55942 },
55943
55944// displays upcoming input, i.e. for error messages
55945upcomingInput:function () {
55946 var next = this.match;
55947 if (next.length < 20) {
55948 next += this._input.substr(0, 20-next.length);
55949 }
55950 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
55951 },
55952
55953// displays the character position where the lexing error occurred, i.e. for error messages
55954showPosition:function () {
55955 var pre = this.pastInput();
55956 var c = new Array(pre.length + 1).join("-");
55957 return pre + this.upcomingInput() + "\n" + c + "^";
55958 },
55959
55960// test the lexed token: return FALSE when not a match, otherwise return token
55961test_match:function(match, indexed_rule) {
55962 var token,
55963 lines,
55964 backup;
55965
55966 if (this.options.backtrack_lexer) {
55967 // save context
55968 backup = {
55969 yylineno: this.yylineno,
55970 yylloc: {
55971 first_line: this.yylloc.first_line,
55972 last_line: this.last_line,
55973 first_column: this.yylloc.first_column,
55974 last_column: this.yylloc.last_column
55975 },
55976 yytext: this.yytext,
55977 match: this.match,
55978 matches: this.matches,
55979 matched: this.matched,
55980 yyleng: this.yyleng,
55981 offset: this.offset,
55982 _more: this._more,
55983 _input: this._input,
55984 yy: this.yy,
55985 conditionStack: this.conditionStack.slice(0),
55986 done: this.done
55987 };
55988 if (this.options.ranges) {
55989 backup.yylloc.range = this.yylloc.range.slice(0);
55990 }
55991 }
55992
55993 lines = match[0].match(/(?:\r\n?|\n).*/g);
55994 if (lines) {
55995 this.yylineno += lines.length;
55996 }
55997 this.yylloc = {
55998 first_line: this.yylloc.last_line,
55999 last_line: this.yylineno + 1,
56000 first_column: this.yylloc.last_column,
56001 last_column: lines ?
56002 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
56003 this.yylloc.last_column + match[0].length
56004 };
56005 this.yytext += match[0];
56006 this.match += match[0];
56007 this.matches = match;
56008 this.yyleng = this.yytext.length;
56009 if (this.options.ranges) {
56010 this.yylloc.range = [this.offset, this.offset += this.yyleng];
56011 }
56012 this._more = false;
56013 this._backtrack = false;
56014 this._input = this._input.slice(match[0].length);
56015 this.matched += match[0];
56016 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
56017 if (this.done && this._input) {
56018 this.done = false;
56019 }
56020 if (token) {
56021 return token;
56022 } else if (this._backtrack) {
56023 // recover context
56024 for (var k in backup) {
56025 this[k] = backup[k];
56026 }
56027 return false; // rule action called reject() implying the next rule should be tested instead.
56028 }
56029 return false;
56030 },
56031
56032// return next match in input
56033next:function () {
56034 if (this.done) {
56035 return this.EOF;
56036 }
56037 if (!this._input) {
56038 this.done = true;
56039 }
56040
56041 var token,
56042 match,
56043 tempMatch,
56044 index;
56045 if (!this._more) {
56046 this.yytext = '';
56047 this.match = '';
56048 }
56049 var rules = this._currentRules();
56050 for (var i = 0; i < rules.length; i++) {
56051 tempMatch = this._input.match(this.rules[rules[i]]);
56052 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
56053 match = tempMatch;
56054 index = i;
56055 if (this.options.backtrack_lexer) {
56056 token = this.test_match(tempMatch, rules[i]);
56057 if (token !== false) {
56058 return token;
56059 } else if (this._backtrack) {
56060 match = false;
56061 continue; // rule action called reject() implying a rule MISmatch.
56062 } else {
56063 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
56064 return false;
56065 }
56066 } else if (!this.options.flex) {
56067 break;
56068 }
56069 }
56070 }
56071 if (match) {
56072 token = this.test_match(match, rules[index]);
56073 if (token !== false) {
56074 return token;
56075 }
56076 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
56077 return false;
56078 }
56079 if (this._input === "") {
56080 return this.EOF;
56081 } else {
56082 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
56083 text: "",
56084 token: null,
56085 line: this.yylineno
56086 });
56087 }
56088 },
56089
56090// return next match that has a token
56091lex:function lex () {
56092 var r = this.next();
56093 if (r) {
56094 return r;
56095 } else {
56096 return this.lex();
56097 }
56098 },
56099
56100// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
56101begin:function begin (condition) {
56102 this.conditionStack.push(condition);
56103 },
56104
56105// pop the previously active lexer condition state off the condition stack
56106popState:function popState () {
56107 var n = this.conditionStack.length - 1;
56108 if (n > 0) {
56109 return this.conditionStack.pop();
56110 } else {
56111 return this.conditionStack[0];
56112 }
56113 },
56114
56115// produce the lexer rule set which is active for the currently active lexer condition state
56116_currentRules:function _currentRules () {
56117 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
56118 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
56119 } else {
56120 return this.conditions["INITIAL"].rules;
56121 }
56122 },
56123
56124// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
56125topState:function topState (n) {
56126 n = this.conditionStack.length - 1 - Math.abs(n || 0);
56127 if (n >= 0) {
56128 return this.conditionStack[n];
56129 } else {
56130 return "INITIAL";
56131 }
56132 },
56133
56134// alias for begin(condition)
56135pushState:function pushState (condition) {
56136 this.begin(condition);
56137 },
56138
56139// return the number of states currently on the stack
56140stateStackSize:function stateStackSize() {
56141 return this.conditionStack.length;
56142 },
56143options: {"case-insensitive":true},
56144performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
56145 // Pre-lexer code can go here
56146
56147var YYSTATE=YY_START;
56148switch($avoiding_name_collisions) {
56149case 0:return 4 ;
56150break;
56151case 1:return 9 ;
56152break;
56153case 2:return 'space';
56154break;
56155case 3:return 10;
56156break;
56157case 4:return 6 ;
56158break;
56159case 5:return 'TXT' ;
56160break;
56161}
56162},
56163rules: [/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],
56164conditions: {"INITIAL":{"rules":[0,1,2,3,4,5],"inclusive":true}}
56165});
56166return lexer;
56167})();
56168parser.lexer = lexer;
56169function Parser () {
56170 this.yy = {};
56171}
56172Parser.prototype = parser;parser.Parser = Parser;
56173return new Parser;
56174})();
56175
56176
56177if (true) {
56178exports.parser = parser;
56179exports.Parser = parser.Parser;
56180exports.parse = function () { return parser.parse.apply(parser, arguments); };
56181exports.main = function commonjsMain (args) {
56182 if (!args[1]) {
56183 console.log('Usage: '+args[0]+' FILE');
56184 process.exit(1);
56185 }
56186 var source = __webpack_require__(/*! fs */ "./node_modules/node-libs-browser/mock/empty.js").readFileSync(__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize(args[1]), "utf8");
56187 return exports.parser.parse(source);
56188};
56189if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
56190 exports.main(process.argv.slice(1));
56191}
56192}
56193/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
56194
56195/***/ }),
56196
56197/***/ "./src/diagrams/pie/parser/pie.jison":
56198/*!*******************************************!*\
56199 !*** ./src/diagrams/pie/parser/pie.jison ***!
56200 \*******************************************/
56201/*! no static exports found */
56202/***/ (function(module, exports, __webpack_require__) {
56203
56204/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
56205/*
56206 Returns a Parser object of the following structure:
56207
56208 Parser: {
56209 yy: {}
56210 }
56211
56212 Parser.prototype: {
56213 yy: {},
56214 trace: function(),
56215 symbols_: {associative list: name ==> number},
56216 terminals_: {associative list: number ==> name},
56217 productions_: [...],
56218 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
56219 table: [...],
56220 defaultActions: {...},
56221 parseError: function(str, hash),
56222 parse: function(input),
56223
56224 lexer: {
56225 EOF: 1,
56226 parseError: function(str, hash),
56227 setInput: function(input),
56228 input: function(),
56229 unput: function(str),
56230 more: function(),
56231 less: function(n),
56232 pastInput: function(),
56233 upcomingInput: function(),
56234 showPosition: function(),
56235 test_match: function(regex_match_array, rule_index),
56236 next: function(),
56237 lex: function(),
56238 begin: function(condition),
56239 popState: function(),
56240 _currentRules: function(),
56241 topState: function(),
56242 pushState: function(condition),
56243
56244 options: {
56245 ranges: boolean (optional: true ==> token location info will include a .range[] member)
56246 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
56247 backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
56248 },
56249
56250 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
56251 rules: [...],
56252 conditions: {associative list: name ==> set},
56253 }
56254 }
56255
56256
56257 token location info (@$, _$, etc.): {
56258 first_line: n,
56259 last_line: n,
56260 first_column: n,
56261 last_column: n,
56262 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
56263 }
56264
56265
56266 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
56267 text: (matched text)
56268 token: (the produced terminal token, if any)
56269 line: (yylineno)
56270 }
56271 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
56272 loc: (yylloc)
56273 expected: (string describing the set of expected tokens)
56274 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
56275 }
56276*/
56277var parser = (function(){
56278var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10,12];
56279var parser = {trace: function trace () { },
56280yy: {},
56281symbols_: {"error":2,"start":3,"pie":4,"document":5,"EOF":6,"line":7,"statement":8,"NL":9,"STR":10,"VALUE":11,"title":12,"$accept":0,"$end":1},
56282terminals_: {2:"error",4:"pie",6:"EOF",9:"NL",10:"STR",11:"VALUE",12:"title"},
56283productions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,2],[8,1]],
56284performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
56285/* this == yyval */
56286
56287var $0 = $$.length - 1;
56288switch (yystate) {
56289case 4:
56290
56291break;
56292case 6:
56293
56294 console.log('str:'+$$[$0-1]+' value: '+$$[$0])
56295 yy.addSection($$[$0-1],yy.cleanupValue($$[$0]));
56296break;
56297case 7:
56298yy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);
56299break;
56300}
56301},
56302table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8],12:[1,9]},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),{11:[1,10]},o($V0,[2,7]),o($V0,[2,6])],
56303defaultActions: {4:[2,1]},
56304parseError: function parseError (str, hash) {
56305 if (hash.recoverable) {
56306 this.trace(str);
56307 } else {
56308 var error = new Error(str);
56309 error.hash = hash;
56310 throw error;
56311 }
56312},
56313parse: function parse(input) {
56314 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
56315 var args = lstack.slice.call(arguments, 1);
56316 var lexer = Object.create(this.lexer);
56317 var sharedState = { yy: {} };
56318 for (var k in this.yy) {
56319 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
56320 sharedState.yy[k] = this.yy[k];
56321 }
56322 }
56323 lexer.setInput(input, sharedState.yy);
56324 sharedState.yy.lexer = lexer;
56325 sharedState.yy.parser = this;
56326 if (typeof lexer.yylloc == 'undefined') {
56327 lexer.yylloc = {};
56328 }
56329 var yyloc = lexer.yylloc;
56330 lstack.push(yyloc);
56331 var ranges = lexer.options && lexer.options.ranges;
56332 if (typeof sharedState.yy.parseError === 'function') {
56333 this.parseError = sharedState.yy.parseError;
56334 } else {
56335 this.parseError = Object.getPrototypeOf(this).parseError;
56336 }
56337 function popStack(n) {
56338 stack.length = stack.length - 2 * n;
56339 vstack.length = vstack.length - n;
56340 lstack.length = lstack.length - n;
56341 }
56342 function lex() {
56343 var token;
56344 token = tstack.pop() || lexer.lex() || EOF;
56345 if (typeof token !== 'number') {
56346 if (token instanceof Array) {
56347 tstack = token;
56348 token = tstack.pop();
56349 }
56350 token = self.symbols_[token] || token;
56351 }
56352 return token;
56353 }
56354 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
56355 while (true) {
56356 state = stack[stack.length - 1];
56357 if (this.defaultActions[state]) {
56358 action = this.defaultActions[state];
56359 } else {
56360 if (symbol === null || typeof symbol == 'undefined') {
56361 symbol = lex();
56362 }
56363 action = table[state] && table[state][symbol];
56364 }
56365 if (typeof action === 'undefined' || !action.length || !action[0]) {
56366 var errStr = '';
56367 expected = [];
56368 for (p in table[state]) {
56369 if (this.terminals_[p] && p > TERROR) {
56370 expected.push('\'' + this.terminals_[p] + '\'');
56371 }
56372 }
56373 if (lexer.showPosition) {
56374 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
56375 } else {
56376 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
56377 }
56378 this.parseError(errStr, {
56379 text: lexer.match,
56380 token: this.terminals_[symbol] || symbol,
56381 line: lexer.yylineno,
56382 loc: yyloc,
56383 expected: expected
56384 });
56385 }
56386 if (action[0] instanceof Array && action.length > 1) {
56387 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
56388 }
56389 switch (action[0]) {
56390 case 1:
56391 stack.push(symbol);
56392 vstack.push(lexer.yytext);
56393 lstack.push(lexer.yylloc);
56394 stack.push(action[1]);
56395 symbol = null;
56396 if (!preErrorSymbol) {
56397 yyleng = lexer.yyleng;
56398 yytext = lexer.yytext;
56399 yylineno = lexer.yylineno;
56400 yyloc = lexer.yylloc;
56401 if (recovering > 0) {
56402 recovering--;
56403 }
56404 } else {
56405 symbol = preErrorSymbol;
56406 preErrorSymbol = null;
56407 }
56408 break;
56409 case 2:
56410 len = this.productions_[action[1]][1];
56411 yyval.$ = vstack[vstack.length - len];
56412 yyval._$ = {
56413 first_line: lstack[lstack.length - (len || 1)].first_line,
56414 last_line: lstack[lstack.length - 1].last_line,
56415 first_column: lstack[lstack.length - (len || 1)].first_column,
56416 last_column: lstack[lstack.length - 1].last_column
56417 };
56418 if (ranges) {
56419 yyval._$.range = [
56420 lstack[lstack.length - (len || 1)].range[0],
56421 lstack[lstack.length - 1].range[1]
56422 ];
56423 }
56424 r = this.performAction.apply(yyval, [
56425 yytext,
56426 yyleng,
56427 yylineno,
56428 sharedState.yy,
56429 action[1],
56430 vstack,
56431 lstack
56432 ].concat(args));
56433 if (typeof r !== 'undefined') {
56434 return r;
56435 }
56436 if (len) {
56437 stack = stack.slice(0, -1 * len * 2);
56438 vstack = vstack.slice(0, -1 * len);
56439 lstack = lstack.slice(0, -1 * len);
56440 }
56441 stack.push(this.productions_[action[1]][0]);
56442 vstack.push(yyval.$);
56443 lstack.push(yyval._$);
56444 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
56445 stack.push(newState);
56446 break;
56447 case 3:
56448 return true;
56449 }
56450 }
56451 return true;
56452}};
56453/* generated by jison-lex 0.3.4 */
56454var lexer = (function(){
56455var lexer = ({
56456
56457EOF:1,
56458
56459parseError:function parseError(str, hash) {
56460 if (this.yy.parser) {
56461 this.yy.parser.parseError(str, hash);
56462 } else {
56463 throw new Error(str);
56464 }
56465 },
56466
56467// resets the lexer, sets new input
56468setInput:function (input, yy) {
56469 this.yy = yy || this.yy || {};
56470 this._input = input;
56471 this._more = this._backtrack = this.done = false;
56472 this.yylineno = this.yyleng = 0;
56473 this.yytext = this.matched = this.match = '';
56474 this.conditionStack = ['INITIAL'];
56475 this.yylloc = {
56476 first_line: 1,
56477 first_column: 0,
56478 last_line: 1,
56479 last_column: 0
56480 };
56481 if (this.options.ranges) {
56482 this.yylloc.range = [0,0];
56483 }
56484 this.offset = 0;
56485 return this;
56486 },
56487
56488// consumes and returns one char from the input
56489input:function () {
56490 var ch = this._input[0];
56491 this.yytext += ch;
56492 this.yyleng++;
56493 this.offset++;
56494 this.match += ch;
56495 this.matched += ch;
56496 var lines = ch.match(/(?:\r\n?|\n).*/g);
56497 if (lines) {
56498 this.yylineno++;
56499 this.yylloc.last_line++;
56500 } else {
56501 this.yylloc.last_column++;
56502 }
56503 if (this.options.ranges) {
56504 this.yylloc.range[1]++;
56505 }
56506
56507 this._input = this._input.slice(1);
56508 return ch;
56509 },
56510
56511// unshifts one char (or a string) into the input
56512unput:function (ch) {
56513 var len = ch.length;
56514 var lines = ch.split(/(?:\r\n?|\n)/g);
56515
56516 this._input = ch + this._input;
56517 this.yytext = this.yytext.substr(0, this.yytext.length - len);
56518 //this.yyleng -= len;
56519 this.offset -= len;
56520 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
56521 this.match = this.match.substr(0, this.match.length - 1);
56522 this.matched = this.matched.substr(0, this.matched.length - 1);
56523
56524 if (lines.length - 1) {
56525 this.yylineno -= lines.length - 1;
56526 }
56527 var r = this.yylloc.range;
56528
56529 this.yylloc = {
56530 first_line: this.yylloc.first_line,
56531 last_line: this.yylineno + 1,
56532 first_column: this.yylloc.first_column,
56533 last_column: lines ?
56534 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
56535 + oldLines[oldLines.length - lines.length].length - lines[0].length :
56536 this.yylloc.first_column - len
56537 };
56538
56539 if (this.options.ranges) {
56540 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
56541 }
56542 this.yyleng = this.yytext.length;
56543 return this;
56544 },
56545
56546// When called from action, caches matched text and appends it on next action
56547more:function () {
56548 this._more = true;
56549 return this;
56550 },
56551
56552// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
56553reject:function () {
56554 if (this.options.backtrack_lexer) {
56555 this._backtrack = true;
56556 } else {
56557 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
56558 text: "",
56559 token: null,
56560 line: this.yylineno
56561 });
56562
56563 }
56564 return this;
56565 },
56566
56567// retain first n characters of the match
56568less:function (n) {
56569 this.unput(this.match.slice(n));
56570 },
56571
56572// displays already matched input, i.e. for error messages
56573pastInput:function () {
56574 var past = this.matched.substr(0, this.matched.length - this.match.length);
56575 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
56576 },
56577
56578// displays upcoming input, i.e. for error messages
56579upcomingInput:function () {
56580 var next = this.match;
56581 if (next.length < 20) {
56582 next += this._input.substr(0, 20-next.length);
56583 }
56584 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
56585 },
56586
56587// displays the character position where the lexing error occurred, i.e. for error messages
56588showPosition:function () {
56589 var pre = this.pastInput();
56590 var c = new Array(pre.length + 1).join("-");
56591 return pre + this.upcomingInput() + "\n" + c + "^";
56592 },
56593
56594// test the lexed token: return FALSE when not a match, otherwise return token
56595test_match:function(match, indexed_rule) {
56596 var token,
56597 lines,
56598 backup;
56599
56600 if (this.options.backtrack_lexer) {
56601 // save context
56602 backup = {
56603 yylineno: this.yylineno,
56604 yylloc: {
56605 first_line: this.yylloc.first_line,
56606 last_line: this.last_line,
56607 first_column: this.yylloc.first_column,
56608 last_column: this.yylloc.last_column
56609 },
56610 yytext: this.yytext,
56611 match: this.match,
56612 matches: this.matches,
56613 matched: this.matched,
56614 yyleng: this.yyleng,
56615 offset: this.offset,
56616 _more: this._more,
56617 _input: this._input,
56618 yy: this.yy,
56619 conditionStack: this.conditionStack.slice(0),
56620 done: this.done
56621 };
56622 if (this.options.ranges) {
56623 backup.yylloc.range = this.yylloc.range.slice(0);
56624 }
56625 }
56626
56627 lines = match[0].match(/(?:\r\n?|\n).*/g);
56628 if (lines) {
56629 this.yylineno += lines.length;
56630 }
56631 this.yylloc = {
56632 first_line: this.yylloc.last_line,
56633 last_line: this.yylineno + 1,
56634 first_column: this.yylloc.last_column,
56635 last_column: lines ?
56636 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
56637 this.yylloc.last_column + match[0].length
56638 };
56639 this.yytext += match[0];
56640 this.match += match[0];
56641 this.matches = match;
56642 this.yyleng = this.yytext.length;
56643 if (this.options.ranges) {
56644 this.yylloc.range = [this.offset, this.offset += this.yyleng];
56645 }
56646 this._more = false;
56647 this._backtrack = false;
56648 this._input = this._input.slice(match[0].length);
56649 this.matched += match[0];
56650 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
56651 if (this.done && this._input) {
56652 this.done = false;
56653 }
56654 if (token) {
56655 return token;
56656 } else if (this._backtrack) {
56657 // recover context
56658 for (var k in backup) {
56659 this[k] = backup[k];
56660 }
56661 return false; // rule action called reject() implying the next rule should be tested instead.
56662 }
56663 return false;
56664 },
56665
56666// return next match in input
56667next:function () {
56668 if (this.done) {
56669 return this.EOF;
56670 }
56671 if (!this._input) {
56672 this.done = true;
56673 }
56674
56675 var token,
56676 match,
56677 tempMatch,
56678 index;
56679 if (!this._more) {
56680 this.yytext = '';
56681 this.match = '';
56682 }
56683 var rules = this._currentRules();
56684 for (var i = 0; i < rules.length; i++) {
56685 tempMatch = this._input.match(this.rules[rules[i]]);
56686 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
56687 match = tempMatch;
56688 index = i;
56689 if (this.options.backtrack_lexer) {
56690 token = this.test_match(tempMatch, rules[i]);
56691 if (token !== false) {
56692 return token;
56693 } else if (this._backtrack) {
56694 match = false;
56695 continue; // rule action called reject() implying a rule MISmatch.
56696 } else {
56697 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
56698 return false;
56699 }
56700 } else if (!this.options.flex) {
56701 break;
56702 }
56703 }
56704 }
56705 if (match) {
56706 token = this.test_match(match, rules[index]);
56707 if (token !== false) {
56708 return token;
56709 }
56710 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
56711 return false;
56712 }
56713 if (this._input === "") {
56714 return this.EOF;
56715 } else {
56716 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
56717 text: "",
56718 token: null,
56719 line: this.yylineno
56720 });
56721 }
56722 },
56723
56724// return next match that has a token
56725lex:function lex () {
56726 var r = this.next();
56727 if (r) {
56728 return r;
56729 } else {
56730 return this.lex();
56731 }
56732 },
56733
56734// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
56735begin:function begin (condition) {
56736 this.conditionStack.push(condition);
56737 },
56738
56739// pop the previously active lexer condition state off the condition stack
56740popState:function popState () {
56741 var n = this.conditionStack.length - 1;
56742 if (n > 0) {
56743 return this.conditionStack.pop();
56744 } else {
56745 return this.conditionStack[0];
56746 }
56747 },
56748
56749// produce the lexer rule set which is active for the currently active lexer condition state
56750_currentRules:function _currentRules () {
56751 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
56752 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
56753 } else {
56754 return this.conditions["INITIAL"].rules;
56755 }
56756 },
56757
56758// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
56759topState:function topState (n) {
56760 n = this.conditionStack.length - 1 - Math.abs(n || 0);
56761 if (n >= 0) {
56762 return this.conditionStack[n];
56763 } else {
56764 return "INITIAL";
56765 }
56766 },
56767
56768// alias for begin(condition)
56769pushState:function pushState (condition) {
56770 this.begin(condition);
56771 },
56772
56773// return the number of states currently on the stack
56774stateStackSize:function stateStackSize() {
56775 return this.conditionStack.length;
56776 },
56777options: {"case-insensitive":true},
56778performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
56779 // Pre-lexer code can go here
56780
56781var YYSTATE=YY_START;
56782switch($avoiding_name_collisions) {
56783case 0:/* do nothing */
56784break;
56785case 1:/* skip whitespace */
56786break;
56787case 2:return 4 ;
56788break;
56789case 3:return 9 ;
56790break;
56791case 4:return 'space';
56792break;
56793case 5:return 12;
56794break;
56795case 6:/*console.log('begin str');*/this.begin("string");
56796break;
56797case 7:/*console.log('pop-state');*/this.popState();
56798break;
56799case 8:/*console.log('ending string')*/return "STR";
56800break;
56801case 9:return "VALUE";
56802break;
56803case 10:return 6 ;
56804break;
56805}
56806},
56807rules: [/^(?:%%[^\n]*)/i,/^(?:\s+)/i,/^(?:pie\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:title\s[^#\n;]+)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],
56808conditions: {"string":{"rules":[7,8],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,5,6,9,10],"inclusive":true}}
56809});
56810return lexer;
56811})();
56812parser.lexer = lexer;
56813function Parser () {
56814 this.yy = {};
56815}
56816Parser.prototype = parser;parser.Parser = Parser;
56817return new Parser;
56818})();
56819
56820
56821if (true) {
56822exports.parser = parser;
56823exports.Parser = parser.Parser;
56824exports.parse = function () { return parser.parse.apply(parser, arguments); };
56825exports.main = function commonjsMain (args) {
56826 if (!args[1]) {
56827 console.log('Usage: '+args[0]+' FILE');
56828 process.exit(1);
56829 }
56830 var source = __webpack_require__(/*! fs */ "./node_modules/node-libs-browser/mock/empty.js").readFileSync(__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize(args[1]), "utf8");
56831 return exports.parser.parse(source);
56832};
56833if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
56834 exports.main(process.argv.slice(1));
56835}
56836}
56837/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
56838
56839/***/ }),
56840
56841/***/ "./src/diagrams/pie/pieDb.js":
56842/*!***********************************!*\
56843 !*** ./src/diagrams/pie/pieDb.js ***!
56844 \***********************************/
56845/*! exports provided: default */
56846/***/ (function(module, __webpack_exports__, __webpack_require__) {
56847
56848"use strict";
56849__webpack_require__.r(__webpack_exports__);
56850/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
56851/**
56852 *
56853 */
56854
56855let sections = {};
56856let title = '';
56857
56858const addSection = function (id, value) {
56859 if (typeof sections[id] === 'undefined') {
56860 sections[id] = value;
56861 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Added new section :', id); // console.log('Added new section:', id, value)
56862 }
56863};
56864
56865const getSections = () => sections;
56866
56867const setTitle = function (txt) {
56868 title = txt;
56869};
56870
56871const getTitle = function () {
56872 return title;
56873};
56874
56875const cleanupValue = function (value) {
56876 if (value.substring(0, 1) === ':') {
56877 value = value.substring(1).trim();
56878 return Number(value.trim());
56879 } else {
56880 return Number(value.trim());
56881 }
56882};
56883
56884const clear = function () {
56885 sections = {};
56886 title = '';
56887}; // export const parseError = (err, hash) => {
56888// global.mermaidAPI.parseError(err, hash)
56889// }
56890
56891
56892/* harmony default export */ __webpack_exports__["default"] = ({
56893 addSection,
56894 getSections,
56895 cleanupValue,
56896 clear,
56897 setTitle,
56898 getTitle // parseError
56899
56900});
56901
56902/***/ }),
56903
56904/***/ "./src/diagrams/pie/pieRenderer.js":
56905/*!*****************************************!*\
56906 !*** ./src/diagrams/pie/pieRenderer.js ***!
56907 \*****************************************/
56908/*! exports provided: setConf, draw, default */
56909/***/ (function(module, __webpack_exports__, __webpack_require__) {
56910
56911"use strict";
56912__webpack_require__.r(__webpack_exports__);
56913/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
56914/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
56915/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
56916/* harmony import */ var _pieDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pieDb */ "./src/diagrams/pie/pieDb.js");
56917/* harmony import */ var _parser_pie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/pie */ "./src/diagrams/pie/parser/pie.jison");
56918/* harmony import */ var _parser_pie__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_pie__WEBPACK_IMPORTED_MODULE_2__);
56919/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
56920/**
56921 * Created by AshishJ on 11-09-2019.
56922 */
56923
56924
56925
56926
56927const conf = {};
56928const setConf = function (cnf) {
56929 const keys = Object.keys(cnf);
56930 keys.forEach(function (key) {
56931 conf[key] = cnf[key];
56932 });
56933};
56934/**
56935 * Draws a Pie Chart with the data given in text.
56936 * @param text
56937 * @param id
56938 */
56939
56940let w;
56941const draw = (txt, id, ver) => {
56942 try {
56943 const parser = _parser_pie__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
56944 parser.yy = _pieDb__WEBPACK_IMPORTED_MODULE_1__["default"];
56945 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Rendering info diagram\n' + txt); // Parse the Pie Chart definition
56946
56947 parser.yy.clear();
56948 parser.parse(txt);
56949 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Parsed info diagram');
56950 const elem = document.getElementById(id);
56951 w = elem.parentElement.offsetWidth;
56952
56953 if (typeof w === 'undefined') {
56954 w = 1200;
56955 }
56956
56957 if (typeof conf.useWidth !== 'undefined') {
56958 w = conf.useWidth;
56959 }
56960
56961 const h = 450;
56962 elem.setAttribute('height', '100%'); // Set viewBox
56963
56964 elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h); // Fetch the default direction, use TD if none was found
56965
56966 var width = w; // 450
56967
56968 var height = 450;
56969 var margin = 40;
56970 var radius = Math.min(width, height) / 2 - margin;
56971 var svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#' + id).append('svg').attr('width', width).attr('height', height).append('g').attr('transform', 'translate(' + width / 2 + ',' + height / 2 + ')');
56972 var data = _pieDb__WEBPACK_IMPORTED_MODULE_1__["default"].getSections();
56973 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(data); // set the color scale
56974
56975 var color = d3__WEBPACK_IMPORTED_MODULE_0__["scaleOrdinal"]().domain(data).range(d3__WEBPACK_IMPORTED_MODULE_0__["schemeSet2"]); // Compute the position of each group on the pie:
56976
56977 var pie = d3__WEBPACK_IMPORTED_MODULE_0__["pie"]().value(function (d) {
56978 return d.value;
56979 });
56980 var dataReady = pie(d3__WEBPACK_IMPORTED_MODULE_0__["entries"](data)); // Now I know that group A goes from 0 degrees to x degrees and so on.
56981 // shape helper to build arcs:
56982
56983 var arcGenerator = d3__WEBPACK_IMPORTED_MODULE_0__["arc"]().innerRadius(0).outerRadius(radius); // Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.
56984
56985 svg.selectAll('mySlices').data(dataReady).enter().append('path').attr('d', arcGenerator).attr('fill', function (d) {
56986 return color(d.data.key);
56987 }).attr('stroke', 'black').style('stroke-width', '2px').style('opacity', 0.7); // Now add the annotation. Use the centroid method to get the best coordinates
56988
56989 svg.selectAll('mySlices').data(dataReady).enter().append('text').text(function (d) {
56990 return d.data.key;
56991 }).attr('transform', function (d) {
56992 return 'translate(' + arcGenerator.centroid(d) + ')';
56993 }).style('text-anchor', 'middle').style('font-size', 17);
56994 svg.append('text').text(parser.yy.getTitle()).attr('x', 0).attr('y', -(h - 50) / 2).attr('class', 'pieTitleText');
56995 } catch (e) {
56996 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering info diagram');
56997 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e.message);
56998 }
56999};
57000/* harmony default export */ __webpack_exports__["default"] = ({
57001 setConf,
57002 draw
57003});
57004
57005/***/ }),
57006
57007/***/ "./src/diagrams/sequence/parser/sequenceDiagram.jison":
57008/*!************************************************************!*\
57009 !*** ./src/diagrams/sequence/parser/sequenceDiagram.jison ***!
57010 \************************************************************/
57011/*! no static exports found */
57012/***/ (function(module, exports, __webpack_require__) {
57013
57014/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
57015/*
57016 Returns a Parser object of the following structure:
57017
57018 Parser: {
57019 yy: {}
57020 }
57021
57022 Parser.prototype: {
57023 yy: {},
57024 trace: function(),
57025 symbols_: {associative list: name ==> number},
57026 terminals_: {associative list: number ==> name},
57027 productions_: [...],
57028 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
57029 table: [...],
57030 defaultActions: {...},
57031 parseError: function(str, hash),
57032 parse: function(input),
57033
57034 lexer: {
57035 EOF: 1,
57036 parseError: function(str, hash),
57037 setInput: function(input),
57038 input: function(),
57039 unput: function(str),
57040 more: function(),
57041 less: function(n),
57042 pastInput: function(),
57043 upcomingInput: function(),
57044 showPosition: function(),
57045 test_match: function(regex_match_array, rule_index),
57046 next: function(),
57047 lex: function(),
57048 begin: function(condition),
57049 popState: function(),
57050 _currentRules: function(),
57051 topState: function(),
57052 pushState: function(condition),
57053
57054 options: {
57055 ranges: boolean (optional: true ==> token location info will include a .range[] member)
57056 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
57057 backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
57058 },
57059
57060 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
57061 rules: [...],
57062 conditions: {associative list: name ==> set},
57063 }
57064 }
57065
57066
57067 token location info (@$, _$, etc.): {
57068 first_line: n,
57069 last_line: n,
57070 first_column: n,
57071 last_column: n,
57072 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
57073 }
57074
57075
57076 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
57077 text: (matched text)
57078 token: (the produced terminal token, if any)
57079 line: (yylineno)
57080 }
57081 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
57082 loc: (yylloc)
57083 expected: (string describing the set of expected tokens)
57084 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
57085 }
57086*/
57087var parser = (function(){
57088var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,4],$V3=[2,4],$V4=[1,9],$V5=[1,11],$V6=[1,12],$V7=[1,14],$V8=[1,15],$V9=[1,17],$Va=[1,18],$Vb=[1,19],$Vc=[1,20],$Vd=[1,21],$Ve=[1,22],$Vf=[1,24],$Vg=[1,25],$Vh=[1,4,5,10,15,16,18,20,21,22,23,24,26,28,29,30,41],$Vi=[1,33],$Vj=[4,5,10,15,16,18,20,21,22,23,24,26,30,41],$Vk=[4,5,10,15,16,18,20,21,22,23,24,26,29,30,41],$Vl=[4,5,10,15,16,18,20,21,22,23,24,26,28,30,41],$Vm=[39,40,41];
57089var parser = {trace: function trace () { },
57090yy: {},
57091symbols_: {"error":2,"start":3,"SPACE":4,"NL":5,"SD":6,"document":7,"line":8,"statement":9,"participant":10,"actor":11,"AS":12,"restOfLine":13,"signal":14,"activate":15,"deactivate":16,"note_statement":17,"title":18,"text2":19,"loop":20,"end":21,"rect":22,"opt":23,"alt":24,"else_sections":25,"par":26,"par_sections":27,"and":28,"else":29,"note":30,"placement":31,"over":32,"actor_pair":33,"spaceList":34,",":35,"left_of":36,"right_of":37,"signaltype":38,"+":39,"-":40,"ACTOR":41,"SOLID_OPEN_ARROW":42,"DOTTED_OPEN_ARROW":43,"SOLID_ARROW":44,"DOTTED_ARROW":45,"SOLID_CROSS":46,"DOTTED_CROSS":47,"TXT":48,"$accept":0,"$end":1},
57092terminals_: {2:"error",4:"SPACE",5:"NL",6:"SD",10:"participant",12:"AS",13:"restOfLine",15:"activate",16:"deactivate",18:"title",20:"loop",21:"end",22:"rect",23:"opt",24:"alt",26:"par",28:"and",29:"else",30:"note",32:"over",35:",",36:"left_of",37:"right_of",39:"+",40:"-",41:"ACTOR",42:"SOLID_OPEN_ARROW",43:"DOTTED_OPEN_ARROW",44:"SOLID_ARROW",45:"DOTTED_ARROW",46:"SOLID_CROSS",47:"DOTTED_CROSS",48:"TXT"},
57093productions_: [0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,5],[9,3],[9,2],[9,3],[9,3],[9,2],[9,3],[9,4],[9,4],[9,4],[9,4],[9,4],[27,1],[27,4],[25,1],[25,4],[17,4],[17,4],[34,2],[34,1],[33,3],[33,1],[31,1],[31,1],[14,5],[14,5],[14,4],[11,1],[38,1],[38,1],[38,1],[38,1],[38,1],[38,1],[19,1]],
57094performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
57095/* this == yyval */
57096
57097var $0 = $$.length - 1;
57098switch (yystate) {
57099case 3:
57100 yy.apply($$[$0]);return $$[$0];
57101break;
57102case 4:
57103 this.$ = []
57104break;
57105case 5:
57106$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
57107break;
57108case 6: case 7:
57109 this.$ = $$[$0]
57110break;
57111case 8:
57112 this.$=[];
57113break;
57114case 9:
57115$$[$0-3].description=$$[$0-1]; this.$=$$[$0-3];
57116break;
57117case 10:
57118this.$=$$[$0-1];
57119break;
57120case 12:
57121this.$={type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]};
57122break;
57123case 13:
57124this.$={type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-1]};
57125break;
57126case 15:
57127this.$=[{type:'setTitle', text:$$[$0-1]}]
57128break;
57129case 16:
57130
57131 $$[$0-1].unshift({type: 'loopStart', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_START});
57132 $$[$0-1].push({type: 'loopEnd', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_END});
57133 this.$=$$[$0-1];
57134break;
57135case 17:
57136
57137 $$[$0-1].unshift({type: 'rectStart', color:$$[$0-2], signalType: yy.LINETYPE.RECT_START });
57138 $$[$0-1].push({type: 'rectEnd', color:$$[$0-2], signalType: yy.LINETYPE.RECT_END });
57139 this.$=$$[$0-1];
57140break;
57141case 18:
57142
57143 $$[$0-1].unshift({type: 'optStart', optText:$$[$0-2], signalType: yy.LINETYPE.OPT_START});
57144 $$[$0-1].push({type: 'optEnd', optText:$$[$0-2], signalType: yy.LINETYPE.OPT_END});
57145 this.$=$$[$0-1];
57146break;
57147case 19:
57148
57149 // Alt start
57150 $$[$0-1].unshift({type: 'altStart', altText:$$[$0-2], signalType: yy.LINETYPE.ALT_START});
57151 // Content in alt is already in $$[$0-1]
57152 // End
57153 $$[$0-1].push({type: 'altEnd', signalType: yy.LINETYPE.ALT_END});
57154 this.$=$$[$0-1];
57155break;
57156case 20:
57157
57158 // Parallel start
57159 $$[$0-1].unshift({type: 'parStart', parText:$$[$0-2], signalType: yy.LINETYPE.PAR_START});
57160 // Content in par is already in $$[$0-1]
57161 // End
57162 $$[$0-1].push({type: 'parEnd', signalType: yy.LINETYPE.PAR_END});
57163 this.$=$$[$0-1];
57164break;
57165case 22:
57166 this.$ = $$[$0-3].concat([{type: 'and', parText:$$[$0-1], signalType: yy.LINETYPE.PAR_AND}, $$[$0]]);
57167break;
57168case 24:
57169 this.$ = $$[$0-3].concat([{type: 'else', altText:$$[$0-1], signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]);
57170break;
57171case 25:
57172
57173 this.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];
57174break;
57175case 26:
57176
57177 // Coerce actor_pair into a [to, from, ...] array
57178 $$[$0-2] = [].concat($$[$0-1], $$[$0-1]).slice(0, 2);
57179 $$[$0-2][0] = $$[$0-2][0].actor;
57180 $$[$0-2][1] = $$[$0-2][1].actor;
57181 this.$ = [$$[$0-1], {type:'addNote', placement:yy.PLACEMENT.OVER, actor:$$[$0-2].slice(0, 2), text:$$[$0]}];
57182break;
57183case 29:
57184 this.$ = [$$[$0-2], $$[$0]];
57185break;
57186case 30:
57187 this.$ = $$[$0];
57188break;
57189case 31:
57190 this.$ = yy.PLACEMENT.LEFTOF;
57191break;
57192case 32:
57193 this.$ = yy.PLACEMENT.RIGHTOF;
57194break;
57195case 33:
57196 this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},
57197 {type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]}
57198 ]
57199break;
57200case 34:
57201 this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},
57202 {type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-4]}
57203 ]
57204break;
57205case 35:
57206 this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]
57207break;
57208case 36:
57209this.$={type: 'addActor', actor:$$[$0]}
57210break;
57211case 37:
57212 this.$ = yy.LINETYPE.SOLID_OPEN;
57213break;
57214case 38:
57215 this.$ = yy.LINETYPE.DOTTED_OPEN;
57216break;
57217case 39:
57218 this.$ = yy.LINETYPE.SOLID;
57219break;
57220case 40:
57221 this.$ = yy.LINETYPE.DOTTED;
57222break;
57223case 41:
57224 this.$ = yy.LINETYPE.SOLID_CROSS;
57225break;
57226case 42:
57227 this.$ = yy.LINETYPE.DOTTED_CROSS;
57228break;
57229case 43:
57230this.$ = $$[$0].substring(1).trim().replace(/\\n/gm, "\n");
57231break;
57232}
57233},
57234table: [{3:1,4:$V0,5:$V1,6:$V2},{1:[3]},{3:5,4:$V0,5:$V1,6:$V2},{3:6,4:$V0,5:$V1,6:$V2},o([1,4,5,10,15,16,18,20,22,23,24,26,30,41],$V3,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:$V4,5:$V5,8:8,9:10,10:$V6,11:23,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,26:$Ve,30:$Vf,41:$Vg},o($Vh,[2,5]),{9:26,10:$V6,11:23,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,26:$Ve,30:$Vf,41:$Vg},o($Vh,[2,7]),o($Vh,[2,8]),{11:27,41:$Vg},{5:[1,28]},{11:29,41:$Vg},{11:30,41:$Vg},{5:[1,31]},{19:32,48:$Vi},{13:[1,34]},{13:[1,35]},{13:[1,36]},{13:[1,37]},{13:[1,38]},{38:39,42:[1,40],43:[1,41],44:[1,42],45:[1,43],46:[1,44],47:[1,45]},{31:46,32:[1,47],36:[1,48],37:[1,49]},o([5,12,35,42,43,44,45,46,47,48],[2,36]),o($Vh,[2,6]),{5:[1,51],12:[1,50]},o($Vh,[2,11]),{5:[1,52]},{5:[1,53]},o($Vh,[2,14]),{5:[1,54]},{5:[2,43]},o($Vj,$V3,{7:55}),o($Vj,$V3,{7:56}),o($Vj,$V3,{7:57}),o($Vk,$V3,{25:58,7:59}),o($Vl,$V3,{27:60,7:61}),{11:64,39:[1,62],40:[1,63],41:$Vg},o($Vm,[2,37]),o($Vm,[2,38]),o($Vm,[2,39]),o($Vm,[2,40]),o($Vm,[2,41]),o($Vm,[2,42]),{11:65,41:$Vg},{11:67,33:66,41:$Vg},{41:[2,31]},{41:[2,32]},{13:[1,68]},o($Vh,[2,10]),o($Vh,[2,12]),o($Vh,[2,13]),o($Vh,[2,15]),{4:$V4,5:$V5,8:8,9:10,10:$V6,11:23,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[1,69],22:$Vb,23:$Vc,24:$Vd,26:$Ve,30:$Vf,41:$Vg},{4:$V4,5:$V5,8:8,9:10,10:$V6,11:23,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[1,70],22:$Vb,23:$Vc,24:$Vd,26:$Ve,30:$Vf,41:$Vg},{4:$V4,5:$V5,8:8,9:10,10:$V6,11:23,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[1,71],22:$Vb,23:$Vc,24:$Vd,26:$Ve,30:$Vf,41:$Vg},{21:[1,72]},{4:$V4,5:$V5,8:8,9:10,10:$V6,11:23,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[2,23],22:$Vb,23:$Vc,24:$Vd,26:$Ve,29:[1,73],30:$Vf,41:$Vg},{21:[1,74]},{4:$V4,5:$V5,8:8,9:10,10:$V6,11:23,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[2,21],22:$Vb,23:$Vc,24:$Vd,26:$Ve,28:[1,75],30:$Vf,41:$Vg},{11:76,41:$Vg},{11:77,41:$Vg},{19:78,48:$Vi},{19:79,48:$Vi},{19:80,48:$Vi},{35:[1,81],48:[2,30]},{5:[1,82]},o($Vh,[2,16]),o($Vh,[2,17]),o($Vh,[2,18]),o($Vh,[2,19]),{13:[1,83]},o($Vh,[2,20]),{13:[1,84]},{19:85,48:$Vi},{19:86,48:$Vi},{5:[2,35]},{5:[2,25]},{5:[2,26]},{11:87,41:$Vg},o($Vh,[2,9]),o($Vk,$V3,{7:59,25:88}),o($Vl,$V3,{7:61,27:89}),{5:[2,33]},{5:[2,34]},{48:[2,29]},{21:[2,24]},{21:[2,22]}],
57235defaultActions: {5:[2,1],6:[2,2],33:[2,43],48:[2,31],49:[2,32],78:[2,35],79:[2,25],80:[2,26],85:[2,33],86:[2,34],87:[2,29],88:[2,24],89:[2,22]},
57236parseError: function parseError (str, hash) {
57237 if (hash.recoverable) {
57238 this.trace(str);
57239 } else {
57240 var error = new Error(str);
57241 error.hash = hash;
57242 throw error;
57243 }
57244},
57245parse: function parse(input) {
57246 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
57247 var args = lstack.slice.call(arguments, 1);
57248 var lexer = Object.create(this.lexer);
57249 var sharedState = { yy: {} };
57250 for (var k in this.yy) {
57251 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
57252 sharedState.yy[k] = this.yy[k];
57253 }
57254 }
57255 lexer.setInput(input, sharedState.yy);
57256 sharedState.yy.lexer = lexer;
57257 sharedState.yy.parser = this;
57258 if (typeof lexer.yylloc == 'undefined') {
57259 lexer.yylloc = {};
57260 }
57261 var yyloc = lexer.yylloc;
57262 lstack.push(yyloc);
57263 var ranges = lexer.options && lexer.options.ranges;
57264 if (typeof sharedState.yy.parseError === 'function') {
57265 this.parseError = sharedState.yy.parseError;
57266 } else {
57267 this.parseError = Object.getPrototypeOf(this).parseError;
57268 }
57269 function popStack(n) {
57270 stack.length = stack.length - 2 * n;
57271 vstack.length = vstack.length - n;
57272 lstack.length = lstack.length - n;
57273 }
57274 function lex() {
57275 var token;
57276 token = tstack.pop() || lexer.lex() || EOF;
57277 if (typeof token !== 'number') {
57278 if (token instanceof Array) {
57279 tstack = token;
57280 token = tstack.pop();
57281 }
57282 token = self.symbols_[token] || token;
57283 }
57284 return token;
57285 }
57286 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
57287 while (true) {
57288 state = stack[stack.length - 1];
57289 if (this.defaultActions[state]) {
57290 action = this.defaultActions[state];
57291 } else {
57292 if (symbol === null || typeof symbol == 'undefined') {
57293 symbol = lex();
57294 }
57295 action = table[state] && table[state][symbol];
57296 }
57297 if (typeof action === 'undefined' || !action.length || !action[0]) {
57298 var errStr = '';
57299 expected = [];
57300 for (p in table[state]) {
57301 if (this.terminals_[p] && p > TERROR) {
57302 expected.push('\'' + this.terminals_[p] + '\'');
57303 }
57304 }
57305 if (lexer.showPosition) {
57306 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
57307 } else {
57308 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
57309 }
57310 this.parseError(errStr, {
57311 text: lexer.match,
57312 token: this.terminals_[symbol] || symbol,
57313 line: lexer.yylineno,
57314 loc: yyloc,
57315 expected: expected
57316 });
57317 }
57318 if (action[0] instanceof Array && action.length > 1) {
57319 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
57320 }
57321 switch (action[0]) {
57322 case 1:
57323 stack.push(symbol);
57324 vstack.push(lexer.yytext);
57325 lstack.push(lexer.yylloc);
57326 stack.push(action[1]);
57327 symbol = null;
57328 if (!preErrorSymbol) {
57329 yyleng = lexer.yyleng;
57330 yytext = lexer.yytext;
57331 yylineno = lexer.yylineno;
57332 yyloc = lexer.yylloc;
57333 if (recovering > 0) {
57334 recovering--;
57335 }
57336 } else {
57337 symbol = preErrorSymbol;
57338 preErrorSymbol = null;
57339 }
57340 break;
57341 case 2:
57342 len = this.productions_[action[1]][1];
57343 yyval.$ = vstack[vstack.length - len];
57344 yyval._$ = {
57345 first_line: lstack[lstack.length - (len || 1)].first_line,
57346 last_line: lstack[lstack.length - 1].last_line,
57347 first_column: lstack[lstack.length - (len || 1)].first_column,
57348 last_column: lstack[lstack.length - 1].last_column
57349 };
57350 if (ranges) {
57351 yyval._$.range = [
57352 lstack[lstack.length - (len || 1)].range[0],
57353 lstack[lstack.length - 1].range[1]
57354 ];
57355 }
57356 r = this.performAction.apply(yyval, [
57357 yytext,
57358 yyleng,
57359 yylineno,
57360 sharedState.yy,
57361 action[1],
57362 vstack,
57363 lstack
57364 ].concat(args));
57365 if (typeof r !== 'undefined') {
57366 return r;
57367 }
57368 if (len) {
57369 stack = stack.slice(0, -1 * len * 2);
57370 vstack = vstack.slice(0, -1 * len);
57371 lstack = lstack.slice(0, -1 * len);
57372 }
57373 stack.push(this.productions_[action[1]][0]);
57374 vstack.push(yyval.$);
57375 lstack.push(yyval._$);
57376 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
57377 stack.push(newState);
57378 break;
57379 case 3:
57380 return true;
57381 }
57382 }
57383 return true;
57384}};
57385
57386/* generated by jison-lex 0.3.4 */
57387var lexer = (function(){
57388var lexer = ({
57389
57390EOF:1,
57391
57392parseError:function parseError(str, hash) {
57393 if (this.yy.parser) {
57394 this.yy.parser.parseError(str, hash);
57395 } else {
57396 throw new Error(str);
57397 }
57398 },
57399
57400// resets the lexer, sets new input
57401setInput:function (input, yy) {
57402 this.yy = yy || this.yy || {};
57403 this._input = input;
57404 this._more = this._backtrack = this.done = false;
57405 this.yylineno = this.yyleng = 0;
57406 this.yytext = this.matched = this.match = '';
57407 this.conditionStack = ['INITIAL'];
57408 this.yylloc = {
57409 first_line: 1,
57410 first_column: 0,
57411 last_line: 1,
57412 last_column: 0
57413 };
57414 if (this.options.ranges) {
57415 this.yylloc.range = [0,0];
57416 }
57417 this.offset = 0;
57418 return this;
57419 },
57420
57421// consumes and returns one char from the input
57422input:function () {
57423 var ch = this._input[0];
57424 this.yytext += ch;
57425 this.yyleng++;
57426 this.offset++;
57427 this.match += ch;
57428 this.matched += ch;
57429 var lines = ch.match(/(?:\r\n?|\n).*/g);
57430 if (lines) {
57431 this.yylineno++;
57432 this.yylloc.last_line++;
57433 } else {
57434 this.yylloc.last_column++;
57435 }
57436 if (this.options.ranges) {
57437 this.yylloc.range[1]++;
57438 }
57439
57440 this._input = this._input.slice(1);
57441 return ch;
57442 },
57443
57444// unshifts one char (or a string) into the input
57445unput:function (ch) {
57446 var len = ch.length;
57447 var lines = ch.split(/(?:\r\n?|\n)/g);
57448
57449 this._input = ch + this._input;
57450 this.yytext = this.yytext.substr(0, this.yytext.length - len);
57451 //this.yyleng -= len;
57452 this.offset -= len;
57453 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
57454 this.match = this.match.substr(0, this.match.length - 1);
57455 this.matched = this.matched.substr(0, this.matched.length - 1);
57456
57457 if (lines.length - 1) {
57458 this.yylineno -= lines.length - 1;
57459 }
57460 var r = this.yylloc.range;
57461
57462 this.yylloc = {
57463 first_line: this.yylloc.first_line,
57464 last_line: this.yylineno + 1,
57465 first_column: this.yylloc.first_column,
57466 last_column: lines ?
57467 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
57468 + oldLines[oldLines.length - lines.length].length - lines[0].length :
57469 this.yylloc.first_column - len
57470 };
57471
57472 if (this.options.ranges) {
57473 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
57474 }
57475 this.yyleng = this.yytext.length;
57476 return this;
57477 },
57478
57479// When called from action, caches matched text and appends it on next action
57480more:function () {
57481 this._more = true;
57482 return this;
57483 },
57484
57485// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
57486reject:function () {
57487 if (this.options.backtrack_lexer) {
57488 this._backtrack = true;
57489 } else {
57490 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
57491 text: "",
57492 token: null,
57493 line: this.yylineno
57494 });
57495
57496 }
57497 return this;
57498 },
57499
57500// retain first n characters of the match
57501less:function (n) {
57502 this.unput(this.match.slice(n));
57503 },
57504
57505// displays already matched input, i.e. for error messages
57506pastInput:function () {
57507 var past = this.matched.substr(0, this.matched.length - this.match.length);
57508 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
57509 },
57510
57511// displays upcoming input, i.e. for error messages
57512upcomingInput:function () {
57513 var next = this.match;
57514 if (next.length < 20) {
57515 next += this._input.substr(0, 20-next.length);
57516 }
57517 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
57518 },
57519
57520// displays the character position where the lexing error occurred, i.e. for error messages
57521showPosition:function () {
57522 var pre = this.pastInput();
57523 var c = new Array(pre.length + 1).join("-");
57524 return pre + this.upcomingInput() + "\n" + c + "^";
57525 },
57526
57527// test the lexed token: return FALSE when not a match, otherwise return token
57528test_match:function(match, indexed_rule) {
57529 var token,
57530 lines,
57531 backup;
57532
57533 if (this.options.backtrack_lexer) {
57534 // save context
57535 backup = {
57536 yylineno: this.yylineno,
57537 yylloc: {
57538 first_line: this.yylloc.first_line,
57539 last_line: this.last_line,
57540 first_column: this.yylloc.first_column,
57541 last_column: this.yylloc.last_column
57542 },
57543 yytext: this.yytext,
57544 match: this.match,
57545 matches: this.matches,
57546 matched: this.matched,
57547 yyleng: this.yyleng,
57548 offset: this.offset,
57549 _more: this._more,
57550 _input: this._input,
57551 yy: this.yy,
57552 conditionStack: this.conditionStack.slice(0),
57553 done: this.done
57554 };
57555 if (this.options.ranges) {
57556 backup.yylloc.range = this.yylloc.range.slice(0);
57557 }
57558 }
57559
57560 lines = match[0].match(/(?:\r\n?|\n).*/g);
57561 if (lines) {
57562 this.yylineno += lines.length;
57563 }
57564 this.yylloc = {
57565 first_line: this.yylloc.last_line,
57566 last_line: this.yylineno + 1,
57567 first_column: this.yylloc.last_column,
57568 last_column: lines ?
57569 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
57570 this.yylloc.last_column + match[0].length
57571 };
57572 this.yytext += match[0];
57573 this.match += match[0];
57574 this.matches = match;
57575 this.yyleng = this.yytext.length;
57576 if (this.options.ranges) {
57577 this.yylloc.range = [this.offset, this.offset += this.yyleng];
57578 }
57579 this._more = false;
57580 this._backtrack = false;
57581 this._input = this._input.slice(match[0].length);
57582 this.matched += match[0];
57583 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
57584 if (this.done && this._input) {
57585 this.done = false;
57586 }
57587 if (token) {
57588 return token;
57589 } else if (this._backtrack) {
57590 // recover context
57591 for (var k in backup) {
57592 this[k] = backup[k];
57593 }
57594 return false; // rule action called reject() implying the next rule should be tested instead.
57595 }
57596 return false;
57597 },
57598
57599// return next match in input
57600next:function () {
57601 if (this.done) {
57602 return this.EOF;
57603 }
57604 if (!this._input) {
57605 this.done = true;
57606 }
57607
57608 var token,
57609 match,
57610 tempMatch,
57611 index;
57612 if (!this._more) {
57613 this.yytext = '';
57614 this.match = '';
57615 }
57616 var rules = this._currentRules();
57617 for (var i = 0; i < rules.length; i++) {
57618 tempMatch = this._input.match(this.rules[rules[i]]);
57619 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
57620 match = tempMatch;
57621 index = i;
57622 if (this.options.backtrack_lexer) {
57623 token = this.test_match(tempMatch, rules[i]);
57624 if (token !== false) {
57625 return token;
57626 } else if (this._backtrack) {
57627 match = false;
57628 continue; // rule action called reject() implying a rule MISmatch.
57629 } else {
57630 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
57631 return false;
57632 }
57633 } else if (!this.options.flex) {
57634 break;
57635 }
57636 }
57637 }
57638 if (match) {
57639 token = this.test_match(match, rules[index]);
57640 if (token !== false) {
57641 return token;
57642 }
57643 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
57644 return false;
57645 }
57646 if (this._input === "") {
57647 return this.EOF;
57648 } else {
57649 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
57650 text: "",
57651 token: null,
57652 line: this.yylineno
57653 });
57654 }
57655 },
57656
57657// return next match that has a token
57658lex:function lex () {
57659 var r = this.next();
57660 if (r) {
57661 return r;
57662 } else {
57663 return this.lex();
57664 }
57665 },
57666
57667// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
57668begin:function begin (condition) {
57669 this.conditionStack.push(condition);
57670 },
57671
57672// pop the previously active lexer condition state off the condition stack
57673popState:function popState () {
57674 var n = this.conditionStack.length - 1;
57675 if (n > 0) {
57676 return this.conditionStack.pop();
57677 } else {
57678 return this.conditionStack[0];
57679 }
57680 },
57681
57682// produce the lexer rule set which is active for the currently active lexer condition state
57683_currentRules:function _currentRules () {
57684 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
57685 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
57686 } else {
57687 return this.conditions["INITIAL"].rules;
57688 }
57689 },
57690
57691// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
57692topState:function topState (n) {
57693 n = this.conditionStack.length - 1 - Math.abs(n || 0);
57694 if (n >= 0) {
57695 return this.conditionStack[n];
57696 } else {
57697 return "INITIAL";
57698 }
57699 },
57700
57701// alias for begin(condition)
57702pushState:function pushState (condition) {
57703 this.begin(condition);
57704 },
57705
57706// return the number of states currently on the stack
57707stateStackSize:function stateStackSize() {
57708 return this.conditionStack.length;
57709 },
57710options: {"case-insensitive":true},
57711performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
57712var YYSTATE=YY_START;
57713switch($avoiding_name_collisions) {
57714case 0:return 5;
57715break;
57716case 1:/* skip all whitespace */
57717break;
57718case 2:/* skip same-line whitespace */
57719break;
57720case 3:/* skip comments */
57721break;
57722case 4:/* skip comments */
57723break;
57724case 5: this.begin('ID'); return 10;
57725break;
57726case 6: yy_.yytext = yy_.yytext.trim(); this.begin('ALIAS'); return 41;
57727break;
57728case 7: this.popState(); this.popState(); this.begin('LINE'); return 12;
57729break;
57730case 8: this.popState(); this.popState(); return 5;
57731break;
57732case 9: this.begin('LINE'); return 20;
57733break;
57734case 10: this.begin('LINE'); return 22;
57735break;
57736case 11: this.begin('LINE'); return 23;
57737break;
57738case 12: this.begin('LINE'); return 24;
57739break;
57740case 13: this.begin('LINE'); return 29;
57741break;
57742case 14: this.begin('LINE'); return 26;
57743break;
57744case 15: this.begin('LINE'); return 28;
57745break;
57746case 16: this.popState(); return 13;
57747break;
57748case 17:return 21;
57749break;
57750case 18:return 36;
57751break;
57752case 19:return 37;
57753break;
57754case 20:return 32;
57755break;
57756case 21:return 30;
57757break;
57758case 22: this.begin('ID'); return 15;
57759break;
57760case 23: this.begin('ID'); return 16;
57761break;
57762case 24:return 18;
57763break;
57764case 25:return 6;
57765break;
57766case 26:return 35;
57767break;
57768case 27:return 5;
57769break;
57770case 28: yy_.yytext = yy_.yytext.trim(); return 41;
57771break;
57772case 29:return 44;
57773break;
57774case 30:return 45;
57775break;
57776case 31:return 42;
57777break;
57778case 32:return 43;
57779break;
57780case 33:return 46;
57781break;
57782case 34:return 47;
57783break;
57784case 35:return 48;
57785break;
57786case 36:return 39;
57787break;
57788case 37:return 40;
57789break;
57790case 38:return 5;
57791break;
57792case 39:return 'INVALID';
57793break;
57794}
57795},
57796rules: [/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],
57797conditions: {"LINE":{"rules":[2,3,16],"inclusive":false},"ALIAS":{"rules":[2,3,7,8],"inclusive":false},"ID":{"rules":[2,3,6],"inclusive":false},"INITIAL":{"rules":[0,1,3,4,5,9,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"inclusive":true}}
57798});
57799return lexer;
57800})();
57801parser.lexer = lexer;
57802function Parser () {
57803 this.yy = {};
57804}
57805Parser.prototype = parser;parser.Parser = Parser;
57806return new Parser;
57807})();
57808
57809
57810if (true) {
57811exports.parser = parser;
57812exports.Parser = parser.Parser;
57813exports.parse = function () { return parser.parse.apply(parser, arguments); };
57814exports.main = function commonjsMain (args) {
57815 if (!args[1]) {
57816 console.log('Usage: '+args[0]+' FILE');
57817 process.exit(1);
57818 }
57819 var source = __webpack_require__(/*! fs */ "./node_modules/node-libs-browser/mock/empty.js").readFileSync(__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize(args[1]), "utf8");
57820 return exports.parser.parse(source);
57821};
57822if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
57823 exports.main(process.argv.slice(1));
57824}
57825}
57826/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
57827
57828/***/ }),
57829
57830/***/ "./src/diagrams/sequence/sequenceDb.js":
57831/*!*********************************************!*\
57832 !*** ./src/diagrams/sequence/sequenceDb.js ***!
57833 \*********************************************/
57834/*! exports provided: addActor, addMessage, addSignal, getMessages, getActors, getActor, getActorKeys, getTitle, clear, LINETYPE, ARROWTYPE, PLACEMENT, addNote, setTitle, apply, default */
57835/***/ (function(module, __webpack_exports__, __webpack_require__) {
57836
57837"use strict";
57838__webpack_require__.r(__webpack_exports__);
57839/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addActor", function() { return addActor; });
57840/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMessage", function() { return addMessage; });
57841/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSignal", function() { return addSignal; });
57842/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMessages", function() { return getMessages; });
57843/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActors", function() { return getActors; });
57844/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActor", function() { return getActor; });
57845/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActorKeys", function() { return getActorKeys; });
57846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
57847/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
57848/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LINETYPE", function() { return LINETYPE; });
57849/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ARROWTYPE", function() { return ARROWTYPE; });
57850/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PLACEMENT", function() { return PLACEMENT; });
57851/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addNote", function() { return addNote; });
57852/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
57853/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "apply", function() { return apply; });
57854/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
57855
57856let actors = {};
57857let messages = [];
57858const notes = [];
57859let title = '';
57860const addActor = function (id, name, description) {
57861 // Don't allow description nulling
57862 const old = actors[id];
57863 if (old && name === old.name && description == null) return; // Don't allow null descriptions, either
57864
57865 if (description == null) description = name;
57866 actors[id] = {
57867 name: name,
57868 description: description
57869 };
57870};
57871const addMessage = function (idFrom, idTo, message, answer) {
57872 messages.push({
57873 from: idFrom,
57874 to: idTo,
57875 message: message,
57876 answer: answer
57877 });
57878};
57879const addSignal = function (idFrom, idTo, message, messageType) {
57880 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Adding message from=' + idFrom + ' to=' + idTo + ' message=' + message + ' type=' + messageType);
57881 messages.push({
57882 from: idFrom,
57883 to: idTo,
57884 message: message,
57885 type: messageType
57886 });
57887};
57888const getMessages = function () {
57889 return messages;
57890};
57891const getActors = function () {
57892 return actors;
57893};
57894const getActor = function (id) {
57895 return actors[id];
57896};
57897const getActorKeys = function () {
57898 return Object.keys(actors);
57899};
57900const getTitle = function () {
57901 return title;
57902};
57903const clear = function () {
57904 actors = {};
57905 messages = [];
57906};
57907const LINETYPE = {
57908 SOLID: 0,
57909 DOTTED: 1,
57910 NOTE: 2,
57911 SOLID_CROSS: 3,
57912 DOTTED_CROSS: 4,
57913 SOLID_OPEN: 5,
57914 DOTTED_OPEN: 6,
57915 LOOP_START: 10,
57916 LOOP_END: 11,
57917 ALT_START: 12,
57918 ALT_ELSE: 13,
57919 ALT_END: 14,
57920 OPT_START: 15,
57921 OPT_END: 16,
57922 ACTIVE_START: 17,
57923 ACTIVE_END: 18,
57924 PAR_START: 19,
57925 PAR_AND: 20,
57926 PAR_END: 21,
57927 RECT_START: 22,
57928 RECT_END: 23
57929};
57930const ARROWTYPE = {
57931 FILLED: 0,
57932 OPEN: 1
57933};
57934const PLACEMENT = {
57935 LEFTOF: 0,
57936 RIGHTOF: 1,
57937 OVER: 2
57938};
57939const addNote = function (actor, placement, message) {
57940 const note = {
57941 actor: actor,
57942 placement: placement,
57943 message: message
57944 }; // Coerce actor into a [to, from, ...] array
57945
57946 const actors = [].concat(actor, actor);
57947 notes.push(note);
57948 messages.push({
57949 from: actors[0],
57950 to: actors[1],
57951 message: message,
57952 type: LINETYPE.NOTE,
57953 placement: placement
57954 });
57955};
57956const setTitle = function (titleText) {
57957 title = titleText;
57958};
57959const apply = function (param) {
57960 if (param instanceof Array) {
57961 param.forEach(function (item) {
57962 apply(item);
57963 });
57964 } else {
57965 switch (param.type) {
57966 case 'addActor':
57967 addActor(param.actor, param.actor, param.description);
57968 break;
57969
57970 case 'activeStart':
57971 addSignal(param.actor, undefined, undefined, param.signalType);
57972 break;
57973
57974 case 'activeEnd':
57975 addSignal(param.actor, undefined, undefined, param.signalType);
57976 break;
57977
57978 case 'addNote':
57979 addNote(param.actor, param.placement, param.text);
57980 break;
57981
57982 case 'addMessage':
57983 addSignal(param.from, param.to, param.msg, param.signalType);
57984 break;
57985
57986 case 'loopStart':
57987 addSignal(undefined, undefined, param.loopText, param.signalType);
57988 break;
57989
57990 case 'loopEnd':
57991 addSignal(undefined, undefined, undefined, param.signalType);
57992 break;
57993
57994 case 'rectStart':
57995 addSignal(undefined, undefined, param.color, param.signalType);
57996 break;
57997
57998 case 'rectEnd':
57999 addSignal(undefined, undefined, undefined, param.signalType);
58000 break;
58001
58002 case 'optStart':
58003 addSignal(undefined, undefined, param.optText, param.signalType);
58004 break;
58005
58006 case 'optEnd':
58007 addSignal(undefined, undefined, undefined, param.signalType);
58008 break;
58009
58010 case 'altStart':
58011 addSignal(undefined, undefined, param.altText, param.signalType);
58012 break;
58013
58014 case 'else':
58015 addSignal(undefined, undefined, param.altText, param.signalType);
58016 break;
58017
58018 case 'altEnd':
58019 addSignal(undefined, undefined, undefined, param.signalType);
58020 break;
58021
58022 case 'setTitle':
58023 setTitle(param.text);
58024 break;
58025
58026 case 'parStart':
58027 addSignal(undefined, undefined, param.parText, param.signalType);
58028 break;
58029
58030 case 'and':
58031 addSignal(undefined, undefined, param.parText, param.signalType);
58032 break;
58033
58034 case 'parEnd':
58035 addSignal(undefined, undefined, undefined, param.signalType);
58036 break;
58037 }
58038 }
58039};
58040/* harmony default export */ __webpack_exports__["default"] = ({
58041 addActor,
58042 addMessage,
58043 addSignal,
58044 getMessages,
58045 getActors,
58046 getActor,
58047 getActorKeys,
58048 getTitle,
58049 clear,
58050 LINETYPE,
58051 ARROWTYPE,
58052 PLACEMENT,
58053 addNote,
58054 setTitle,
58055 apply
58056});
58057
58058/***/ }),
58059
58060/***/ "./src/diagrams/sequence/sequenceRenderer.js":
58061/*!***************************************************!*\
58062 !*** ./src/diagrams/sequence/sequenceRenderer.js ***!
58063 \***************************************************/
58064/*! exports provided: bounds, drawActors, setConf, draw, default */
58065/***/ (function(module, __webpack_exports__, __webpack_require__) {
58066
58067"use strict";
58068__webpack_require__.r(__webpack_exports__);
58069/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounds", function() { return bounds; });
58070/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActors", function() { return drawActors; });
58071/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
58072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
58073/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
58074/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/sequence/svgDraw.js");
58075/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
58076/* harmony import */ var _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.jison");
58077/* harmony import */ var _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__);
58078/* harmony import */ var _sequenceDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
58079
58080
58081
58082
58083
58084_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy = _sequenceDb__WEBPACK_IMPORTED_MODULE_4__["default"];
58085const conf = {
58086 diagramMarginX: 50,
58087 diagramMarginY: 30,
58088 // Margin between actors
58089 actorMargin: 50,
58090 // Width of actor boxes
58091 width: 150,
58092 // Height of actor boxes
58093 height: 65,
58094 actorFontSize: 14,
58095 actorFontFamily: '"Open-Sans", "sans-serif"',
58096 // Margin around loop boxes
58097 boxMargin: 10,
58098 boxTextMargin: 5,
58099 noteMargin: 10,
58100 // Space between messages
58101 messageMargin: 35,
58102 // mirror actors under diagram
58103 mirrorActors: false,
58104 // Depending on css styling this might need adjustment
58105 // Prolongs the edge of the diagram downwards
58106 bottomMarginAdj: 1,
58107 // width of activation box
58108 activationWidth: 10,
58109 // text placement as: tspan | fo | old only text as before
58110 textPlacement: 'tspan',
58111 showSequenceNumbers: false
58112};
58113const bounds = {
58114 data: {
58115 startx: undefined,
58116 stopx: undefined,
58117 starty: undefined,
58118 stopy: undefined
58119 },
58120 verticalPos: 0,
58121 sequenceItems: [],
58122 activations: [],
58123 init: function () {
58124 this.sequenceItems = [];
58125 this.activations = [];
58126 this.data = {
58127 startx: undefined,
58128 stopx: undefined,
58129 starty: undefined,
58130 stopy: undefined
58131 };
58132 this.verticalPos = 0;
58133 },
58134 updateVal: function (obj, key, val, fun) {
58135 if (typeof obj[key] === 'undefined') {
58136 obj[key] = val;
58137 } else {
58138 obj[key] = fun(val, obj[key]);
58139 }
58140 },
58141 updateBounds: function (startx, starty, stopx, stopy) {
58142 const _self = this;
58143
58144 let cnt = 0;
58145
58146 function updateFn(type) {
58147 return function updateItemBounds(item) {
58148 cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
58149
58150 const n = _self.sequenceItems.length - cnt + 1;
58151
58152 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
58153
58154 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
58155
58156 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
58157
58158 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
58159
58160 if (!(type === 'activation')) {
58161 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
58162
58163 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
58164
58165 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
58166
58167 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
58168 }
58169 };
58170 }
58171
58172 this.sequenceItems.forEach(updateFn());
58173 this.activations.forEach(updateFn('activation'));
58174 },
58175 insert: function (startx, starty, stopx, stopy) {
58176 const _startx = Math.min(startx, stopx);
58177
58178 const _stopx = Math.max(startx, stopx);
58179
58180 const _starty = Math.min(starty, stopy);
58181
58182 const _stopy = Math.max(starty, stopy);
58183
58184 this.updateVal(bounds.data, 'startx', _startx, Math.min);
58185 this.updateVal(bounds.data, 'starty', _starty, Math.min);
58186 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
58187 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
58188 this.updateBounds(_startx, _starty, _stopx, _stopy);
58189 },
58190 newActivation: function (message, diagram) {
58191 const actorRect = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActors()[message.from.actor];
58192 const stackedSize = actorActivations(message.from.actor).length;
58193 const x = actorRect.x + conf.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
58194 this.activations.push({
58195 startx: x,
58196 starty: this.verticalPos + 2,
58197 stopx: x + conf.activationWidth,
58198 stopy: undefined,
58199 actor: message.from.actor,
58200 anchored: _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].anchorElement(diagram)
58201 });
58202 },
58203 endActivation: function (message) {
58204 // find most recent activation for given actor
58205 const lastActorActivationIdx = this.activations.map(function (activation) {
58206 return activation.actor;
58207 }).lastIndexOf(message.from.actor);
58208 const activation = this.activations.splice(lastActorActivationIdx, 1)[0];
58209 return activation;
58210 },
58211 newLoop: function (title, fill) {
58212 this.sequenceItems.push({
58213 startx: undefined,
58214 starty: this.verticalPos,
58215 stopx: undefined,
58216 stopy: undefined,
58217 title: title,
58218 fill: fill
58219 });
58220 },
58221 endLoop: function () {
58222 const loop = this.sequenceItems.pop();
58223 return loop;
58224 },
58225 addSectionToLoop: function (message) {
58226 const loop = this.sequenceItems.pop();
58227 loop.sections = loop.sections || [];
58228 loop.sectionTitles = loop.sectionTitles || [];
58229 loop.sections.push(bounds.getVerticalPos());
58230 loop.sectionTitles.push(message);
58231 this.sequenceItems.push(loop);
58232 },
58233 bumpVerticalPos: function (bump) {
58234 this.verticalPos = this.verticalPos + bump;
58235 this.data.stopy = this.verticalPos;
58236 },
58237 getVerticalPos: function () {
58238 return this.verticalPos;
58239 },
58240 getBounds: function () {
58241 return this.data;
58242 }
58243};
58244
58245const _drawLongText = (text, x, y, g, width) => {
58246 let textHeight = 0;
58247 const lines = text.split(/<br\/?>/gi);
58248
58249 for (const line of lines) {
58250 const textObj = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getTextObj();
58251 textObj.x = x;
58252 textObj.y = y + textHeight;
58253 textObj.textMargin = conf.noteMargin;
58254 textObj.dy = '1em';
58255 textObj.text = line;
58256 textObj.class = 'noteText';
58257 const textElem = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawText(g, textObj, width);
58258 textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
58259 }
58260
58261 return textHeight;
58262};
58263/**
58264 * Draws an actor in the diagram with the attaced line
58265 * @param center - The center of the the actor
58266 * @param pos The position if the actor in the liost of actors
58267 * @param description The text in the box
58268 */
58269
58270
58271const drawNote = function (elem, startx, verticalPos, msg, forceWidth) {
58272 const rect = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getNoteRect();
58273 rect.x = startx;
58274 rect.y = verticalPos;
58275 rect.width = forceWidth || conf.width;
58276 rect.class = 'note';
58277 let g = elem.append('g');
58278 const rectElem = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawRect(g, rect);
58279
58280 const textHeight = _drawLongText(msg.message, startx - 4, verticalPos + 24, g, rect.width - conf.noteMargin);
58281
58282 bounds.insert(startx, verticalPos, startx + rect.width, verticalPos + 2 * conf.noteMargin + textHeight);
58283 rectElem.attr('height', textHeight + 2 * conf.noteMargin);
58284 bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);
58285};
58286/**
58287 * Draws a message
58288 * @param elem
58289 * @param startx
58290 * @param stopx
58291 * @param verticalPos
58292 * @param txtCenter
58293 * @param msg
58294 */
58295
58296
58297const drawMessage = function (elem, startx, stopx, verticalPos, msg, sequenceIndex) {
58298 const g = elem.append('g');
58299 const txtCenter = startx + (stopx - startx) / 2;
58300 const textElem = g.append('text') // text label for the x axis
58301 .attr('x', txtCenter).attr('y', verticalPos - 7).style('text-anchor', 'middle').attr('class', 'messageText').text(msg.message);
58302 let textWidth = (textElem._groups || textElem)[0][0].getBBox().width;
58303 let line;
58304
58305 if (startx === stopx) {
58306 if (conf.rightAngles) {
58307 line = g.append('path').attr('d', `M ${startx},${verticalPos} H ${startx + conf.width / 2} V ${verticalPos + 25} H ${startx}`);
58308 } else {
58309 line = g.append('path').attr('d', 'M ' + startx + ',' + verticalPos + ' C ' + (startx + 60) + ',' + (verticalPos - 10) + ' ' + (startx + 60) + ',' + (verticalPos + 30) + ' ' + startx + ',' + (verticalPos + 20));
58310 }
58311
58312 bounds.bumpVerticalPos(30);
58313 const dx = Math.max(textWidth / 2, 100);
58314 bounds.insert(startx - dx, bounds.getVerticalPos() - 10, stopx + dx, bounds.getVerticalPos());
58315 } else {
58316 line = g.append('line');
58317 line.attr('x1', startx);
58318 line.attr('y1', verticalPos);
58319 line.attr('x2', stopx);
58320 line.attr('y2', verticalPos);
58321 bounds.insert(startx, bounds.getVerticalPos() - 10, stopx, bounds.getVerticalPos());
58322 } // Make an SVG Container
58323 // Draw the line
58324
58325
58326 if (msg.type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED || msg.type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_CROSS || msg.type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_OPEN) {
58327 line.style('stroke-dasharray', '3, 3');
58328 line.attr('class', 'messageLine1');
58329 } else {
58330 line.attr('class', 'messageLine0');
58331 }
58332
58333 let url = '';
58334
58335 if (conf.arrowMarkerAbsolute) {
58336 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
58337 url = url.replace(/\(/g, '\\(');
58338 url = url.replace(/\)/g, '\\)');
58339 }
58340
58341 line.attr('stroke-width', 2);
58342 line.attr('stroke', 'black');
58343 line.style('fill', 'none'); // remove any fill colour
58344
58345 if (msg.type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID || msg.type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED) {
58346 line.attr('marker-end', 'url(' + url + '#arrowhead)');
58347 }
58348
58349 if (msg.type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID_CROSS || msg.type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_CROSS) {
58350 line.attr('marker-end', 'url(' + url + '#crosshead)');
58351 } // add node number
58352
58353
58354 if (conf.showSequenceNumbers) {
58355 line.attr('marker-start', 'url(' + url + '#sequencenumber)');
58356 g.append('text').attr('x', startx).attr('y', verticalPos + 4).attr('font-family', 'sans-serif').attr('font-size', '12px').attr('text-anchor', 'middle').attr('textLength', '16px').attr('class', 'sequenceNumber').text(sequenceIndex);
58357 }
58358};
58359
58360const drawActors = function (diagram, actors, actorKeys, verticalPos) {
58361 // Draw the actors
58362 for (let i = 0; i < actorKeys.length; i++) {
58363 const key = actorKeys[i]; // Add some rendering data to the object
58364
58365 actors[key].x = i * conf.actorMargin + i * conf.width;
58366 actors[key].y = verticalPos;
58367 actors[key].width = conf.diagramMarginX;
58368 actors[key].height = conf.diagramMarginY; // Draw the box with the attached line
58369
58370 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawActor(diagram, actors[key].x, verticalPos, actors[key].description, conf);
58371 bounds.insert(actors[key].x, verticalPos, actors[key].x + conf.width, conf.height);
58372 } // Add a margin between the actor boxes and the first arrow
58373
58374
58375 bounds.bumpVerticalPos(conf.height);
58376};
58377const setConf = function (cnf) {
58378 const keys = Object.keys(cnf);
58379 keys.forEach(function (key) {
58380 conf[key] = cnf[key];
58381 });
58382};
58383
58384const actorActivations = function (actor) {
58385 return bounds.activations.filter(function (activation) {
58386 return activation.actor === actor;
58387 });
58388};
58389
58390const actorFlowVerticaBounds = function (actor) {
58391 // handle multiple stacked activations for same actor
58392 const actors = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActors();
58393 const activations = actorActivations(actor);
58394 const left = activations.reduce(function (acc, activation) {
58395 return Math.min(acc, activation.startx);
58396 }, actors[actor].x + conf.width / 2);
58397 const right = activations.reduce(function (acc, activation) {
58398 return Math.max(acc, activation.stopx);
58399 }, actors[actor].x + conf.width / 2);
58400 return [left, right];
58401};
58402/**
58403 * Draws a flowchart in the tag with id: id based on the graph definition in text.
58404 * @param text
58405 * @param id
58406 */
58407
58408
58409const draw = function (text, id) {
58410 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.clear();
58411 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].parse(text + '\n');
58412 bounds.init();
58413 const diagram = d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id="${id}"]`);
58414 let startx;
58415 let stopx;
58416 let forceWidth; // Fetch data from the parsing
58417
58418 const actors = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActors();
58419 const actorKeys = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActorKeys();
58420 const messages = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getMessages();
58421 const title = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getTitle();
58422 drawActors(diagram, actors, actorKeys, 0); // The arrow head definition is attached to the svg once
58423
58424 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertArrowHead(diagram);
58425 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertArrowCrossHead(diagram);
58426 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertSequenceNumber(diagram);
58427
58428 function activeEnd(msg, verticalPos) {
58429 const activationData = bounds.endActivation(msg);
58430
58431 if (activationData.starty + 18 > verticalPos) {
58432 activationData.starty = verticalPos - 6;
58433 verticalPos += 12;
58434 }
58435
58436 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawActivation(diagram, activationData, verticalPos, conf, actorActivations(msg.from.actor).length);
58437 bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
58438 } // const lastMsg
58439 // Draw the messages/signals
58440
58441
58442 let sequenceIndex = 1;
58443 messages.forEach(function (msg) {
58444 let loopData;
58445
58446 switch (msg.type) {
58447 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.NOTE:
58448 bounds.bumpVerticalPos(conf.boxMargin);
58449 startx = actors[msg.from].x;
58450 stopx = actors[msg.to].x;
58451
58452 if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.RIGHTOF) {
58453 drawNote(diagram, startx + (conf.width + conf.actorMargin) / 2, bounds.getVerticalPos(), msg);
58454 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.LEFTOF) {
58455 drawNote(diagram, startx - (conf.width + conf.actorMargin) / 2, bounds.getVerticalPos(), msg);
58456 } else if (msg.to === msg.from) {
58457 // Single-actor over
58458 drawNote(diagram, startx, bounds.getVerticalPos(), msg);
58459 } else {
58460 // Multi-actor over
58461 forceWidth = Math.abs(startx - stopx) + conf.actorMargin;
58462 drawNote(diagram, (startx + stopx + conf.width - forceWidth) / 2, bounds.getVerticalPos(), msg, forceWidth);
58463 }
58464
58465 break;
58466
58467 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_START:
58468 bounds.newActivation(msg, diagram);
58469 break;
58470
58471 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_END:
58472 activeEnd(msg, bounds.getVerticalPos());
58473 break;
58474
58475 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_START:
58476 bounds.bumpVerticalPos(conf.boxMargin);
58477 bounds.newLoop(msg.message);
58478 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
58479 break;
58480
58481 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_END:
58482 loopData = bounds.endLoop();
58483 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopData, 'loop', conf);
58484 bounds.bumpVerticalPos(conf.boxMargin);
58485 break;
58486
58487 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.RECT_START:
58488 bounds.bumpVerticalPos(conf.boxMargin);
58489 bounds.newLoop(undefined, msg.message);
58490 bounds.bumpVerticalPos(conf.boxMargin);
58491 break;
58492
58493 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.RECT_END:
58494 const rectData = bounds.endLoop();
58495 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawBackgroundRect(diagram, rectData);
58496 bounds.bumpVerticalPos(conf.boxMargin);
58497 break;
58498
58499 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_START:
58500 bounds.bumpVerticalPos(conf.boxMargin);
58501 bounds.newLoop(msg.message);
58502 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
58503 break;
58504
58505 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_END:
58506 loopData = bounds.endLoop();
58507 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopData, 'opt', conf);
58508 bounds.bumpVerticalPos(conf.boxMargin);
58509 break;
58510
58511 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_START:
58512 bounds.bumpVerticalPos(conf.boxMargin);
58513 bounds.newLoop(msg.message);
58514 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
58515 break;
58516
58517 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_ELSE:
58518 bounds.bumpVerticalPos(conf.boxMargin);
58519 loopData = bounds.addSectionToLoop(msg.message);
58520 bounds.bumpVerticalPos(conf.boxMargin);
58521 break;
58522
58523 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_END:
58524 loopData = bounds.endLoop();
58525 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopData, 'alt', conf);
58526 bounds.bumpVerticalPos(conf.boxMargin);
58527 break;
58528
58529 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_START:
58530 bounds.bumpVerticalPos(conf.boxMargin);
58531 bounds.newLoop(msg.message);
58532 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
58533 break;
58534
58535 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_AND:
58536 bounds.bumpVerticalPos(conf.boxMargin);
58537 loopData = bounds.addSectionToLoop(msg.message);
58538 bounds.bumpVerticalPos(conf.boxMargin);
58539 break;
58540
58541 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_END:
58542 loopData = bounds.endLoop();
58543 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopData, 'par', conf);
58544 bounds.bumpVerticalPos(conf.boxMargin);
58545 break;
58546
58547 default:
58548 try {
58549 // lastMsg = msg
58550 bounds.bumpVerticalPos(conf.messageMargin);
58551 const fromBounds = actorFlowVerticaBounds(msg.from);
58552 const toBounds = actorFlowVerticaBounds(msg.to);
58553 const fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
58554 const toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
58555 startx = fromBounds[fromIdx];
58556 stopx = toBounds[toIdx];
58557 const verticalPos = bounds.getVerticalPos();
58558 drawMessage(diagram, startx, stopx, verticalPos, msg, sequenceIndex);
58559 const allBounds = fromBounds.concat(toBounds);
58560 bounds.insert(Math.min.apply(null, allBounds), verticalPos, Math.max.apply(null, allBounds), verticalPos);
58561 } catch (e) {
58562 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].error('error while drawing message', e);
58563 }
58564
58565 } // Increment sequence counter if msg.type is a line (and not another event like activation or note, etc)
58566
58567
58568 if ([_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID_OPEN, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_OPEN, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID_CROSS, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_CROSS].includes(msg.type)) {
58569 sequenceIndex++;
58570 }
58571 });
58572
58573 if (conf.mirrorActors) {
58574 // Draw actors below diagram
58575 bounds.bumpVerticalPos(conf.boxMargin * 2);
58576 drawActors(diagram, actors, actorKeys, bounds.getVerticalPos());
58577 }
58578
58579 const box = bounds.getBounds(); // Adjust line height of actor lines now that the height of the diagram is known
58580
58581 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('For line height fix Querying: #' + id + ' .actor-line');
58582 const actorLines = d3__WEBPACK_IMPORTED_MODULE_0__["selectAll"]('#' + id + ' .actor-line');
58583 actorLines.attr('y2', box.stopy);
58584 let height = box.stopy - box.starty + 2 * conf.diagramMarginY;
58585
58586 if (conf.mirrorActors) {
58587 height = height - conf.boxMargin + conf.bottomMarginAdj;
58588 }
58589
58590 const width = box.stopx - box.startx + 2 * conf.diagramMarginX;
58591
58592 if (title) {
58593 diagram.append('text').text(title).attr('x', (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr('y', -25);
58594 }
58595
58596 if (conf.useMaxWidth) {
58597 diagram.attr('height', '100%');
58598 diagram.attr('width', '100%');
58599 diagram.attr('style', 'max-width:' + width + 'px;');
58600 } else {
58601 diagram.attr('height', height);
58602 diagram.attr('width', width);
58603 }
58604
58605 const extraVertForTitle = title ? 40 : 0;
58606 diagram.attr('viewBox', box.startx - conf.diagramMarginX + ' -' + (conf.diagramMarginY + extraVertForTitle) + ' ' + width + ' ' + (height + extraVertForTitle));
58607};
58608/* harmony default export */ __webpack_exports__["default"] = ({
58609 bounds,
58610 drawActors,
58611 setConf,
58612 draw
58613});
58614
58615/***/ }),
58616
58617/***/ "./src/diagrams/sequence/svgDraw.js":
58618/*!******************************************!*\
58619 !*** ./src/diagrams/sequence/svgDraw.js ***!
58620 \******************************************/
58621/*! exports provided: drawRect, drawText, drawLabel, drawActor, anchorElement, drawActivation, drawLoop, drawBackgroundRect, insertArrowHead, insertSequenceNumber, insertArrowCrossHead, getTextObj, getNoteRect, default */
58622/***/ (function(module, __webpack_exports__, __webpack_require__) {
58623
58624"use strict";
58625__webpack_require__.r(__webpack_exports__);
58626/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawRect", function() { return drawRect; });
58627/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawText", function() { return drawText; });
58628/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLabel", function() { return drawLabel; });
58629/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActor", function() { return drawActor; });
58630/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anchorElement", function() { return anchorElement; });
58631/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActivation", function() { return drawActivation; });
58632/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLoop", function() { return drawLoop; });
58633/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawBackgroundRect", function() { return drawBackgroundRect; });
58634/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrowHead", function() { return insertArrowHead; });
58635/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertSequenceNumber", function() { return insertSequenceNumber; });
58636/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrowCrossHead", function() { return insertArrowCrossHead; });
58637/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextObj", function() { return getTextObj; });
58638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNoteRect", function() { return getNoteRect; });
58639const drawRect = function (elem, rectData) {
58640 const rectElem = elem.append('rect');
58641 rectElem.attr('x', rectData.x);
58642 rectElem.attr('y', rectData.y);
58643 rectElem.attr('fill', rectData.fill);
58644 rectElem.attr('stroke', rectData.stroke);
58645 rectElem.attr('width', rectData.width);
58646 rectElem.attr('height', rectData.height);
58647 rectElem.attr('rx', rectData.rx);
58648 rectElem.attr('ry', rectData.ry);
58649
58650 if (typeof rectData.class !== 'undefined') {
58651 rectElem.attr('class', rectData.class);
58652 }
58653
58654 return rectElem;
58655};
58656const drawText = function (elem, textData, width) {
58657 // Remove and ignore br:s
58658 const nText = textData.text.replace(/<br\/?>/gi, ' ');
58659 const textElem = elem.append('text');
58660 textElem.attr('x', textData.x);
58661 textElem.attr('y', textData.y);
58662 textElem.style('text-anchor', textData.anchor);
58663 textElem.attr('fill', textData.fill);
58664
58665 if (typeof textData.class !== 'undefined') {
58666 textElem.attr('class', textData.class);
58667 }
58668
58669 const span = textElem.append('tspan');
58670 span.attr('x', textData.x + textData.textMargin * 2);
58671 span.attr('fill', textData.fill);
58672 span.text(nText);
58673 return textElem;
58674};
58675const drawLabel = function (elem, txtObject) {
58676 function genPoints(x, y, width, height, cut) {
58677 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
58678 }
58679
58680 const polygon = elem.append('polygon');
58681 polygon.attr('points', genPoints(txtObject.x, txtObject.y, 50, 20, 7));
58682 polygon.attr('class', 'labelBox');
58683 txtObject.y = txtObject.y + txtObject.labelMargin;
58684 txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
58685 drawText(elem, txtObject);
58686};
58687let actorCnt = -1;
58688/**
58689 * Draws an actor in the diagram with the attaced line
58690 * @param center - The center of the the actor
58691 * @param pos The position if the actor in the liost of actors
58692 * @param description The text in the box
58693 */
58694
58695const drawActor = function (elem, left, verticalPos, description, conf) {
58696 const center = left + conf.width / 2;
58697 const g = elem.append('g');
58698
58699 if (verticalPos === 0) {
58700 actorCnt++;
58701 g.append('line').attr('id', 'actor' + actorCnt).attr('x1', center).attr('y1', 5).attr('x2', center).attr('y2', 2000).attr('class', 'actor-line').attr('stroke-width', '0.5px').attr('stroke', '#999');
58702 }
58703
58704 const rect = getNoteRect();
58705 rect.x = left;
58706 rect.y = verticalPos;
58707 rect.fill = '#eaeaea';
58708 rect.width = conf.width;
58709 rect.height = conf.height;
58710 rect.class = 'actor';
58711 rect.rx = 3;
58712 rect.ry = 3;
58713 drawRect(g, rect);
58714
58715 _drawTextCandidateFunc(conf)(description, g, rect.x, rect.y, rect.width, rect.height, {
58716 class: 'actor'
58717 }, conf);
58718};
58719const anchorElement = function (elem) {
58720 return elem.append('g');
58721};
58722/**
58723 * Draws an actor in the diagram with the attaced line
58724 * @param elem - element to append activation rect
58725 * @param bounds - activation box bounds
58726 * @param verticalPos - precise y cooridnate of bottom activation box edge
58727 */
58728
58729const drawActivation = function (elem, bounds, verticalPos, conf, actorActivations) {
58730 const rect = getNoteRect();
58731 const g = bounds.anchored;
58732 rect.x = bounds.startx;
58733 rect.y = bounds.starty;
58734 rect.class = 'activation' + actorActivations % 3; // Will evaluate to 0, 1 or 2
58735
58736 rect.width = bounds.stopx - bounds.startx;
58737 rect.height = verticalPos - bounds.starty;
58738 drawRect(g, rect);
58739};
58740/**
58741 * Draws an actor in the diagram with the attaced line
58742 * @param center - The center of the the actor
58743 * @param pos The position if the actor in the list of actors
58744 * @param description The text in the box
58745 */
58746
58747const drawLoop = function (elem, bounds, labelText, conf) {
58748 const g = elem.append('g');
58749
58750 const drawLoopLine = function (startx, starty, stopx, stopy) {
58751 return g.append('line').attr('x1', startx).attr('y1', starty).attr('x2', stopx).attr('y2', stopy).attr('class', 'loopLine');
58752 };
58753
58754 drawLoopLine(bounds.startx, bounds.starty, bounds.stopx, bounds.starty);
58755 drawLoopLine(bounds.stopx, bounds.starty, bounds.stopx, bounds.stopy);
58756 drawLoopLine(bounds.startx, bounds.stopy, bounds.stopx, bounds.stopy);
58757 drawLoopLine(bounds.startx, bounds.starty, bounds.startx, bounds.stopy);
58758
58759 if (typeof bounds.sections !== 'undefined') {
58760 bounds.sections.forEach(function (item) {
58761 drawLoopLine(bounds.startx, item, bounds.stopx, item).style('stroke-dasharray', '3, 3');
58762 });
58763 }
58764
58765 let txt = getTextObj();
58766 txt.text = labelText;
58767 txt.x = bounds.startx;
58768 txt.y = bounds.starty;
58769 txt.labelMargin = 1.5 * 10; // This is the small box that says "loop"
58770
58771 txt.class = 'labelText'; // Its size & position are fixed.
58772
58773 drawLabel(g, txt);
58774 txt = getTextObj();
58775 txt.text = '[ ' + bounds.title + ' ]';
58776 txt.x = bounds.startx + (bounds.stopx - bounds.startx) / 2;
58777 txt.y = bounds.starty + 1.5 * conf.boxMargin;
58778 txt.anchor = 'middle';
58779 txt.class = 'loopText';
58780 drawText(g, txt);
58781
58782 if (typeof bounds.sectionTitles !== 'undefined') {
58783 bounds.sectionTitles.forEach(function (item, idx) {
58784 if (item !== '') {
58785 txt.text = '[ ' + item + ' ]';
58786 txt.y = bounds.sections[idx] + 1.5 * conf.boxMargin;
58787 drawText(g, txt);
58788 }
58789 });
58790 }
58791};
58792/**
58793 * Draws a background rectangle
58794 * @param color - The fill color for the background
58795 */
58796
58797const drawBackgroundRect = function (elem, bounds) {
58798 const rectElem = drawRect(elem, {
58799 x: bounds.startx,
58800 y: bounds.starty,
58801 width: bounds.stopx - bounds.startx,
58802 height: bounds.stopy - bounds.starty,
58803 fill: bounds.fill,
58804 class: 'rect'
58805 });
58806 rectElem.lower();
58807};
58808/**
58809 * Setup arrow head and define the marker. The result is appended to the svg.
58810 */
58811
58812const insertArrowHead = function (elem) {
58813 elem.append('defs').append('marker').attr('id', 'arrowhead').attr('refX', 5).attr('refY', 2).attr('markerWidth', 6).attr('markerHeight', 4).attr('orient', 'auto').append('path').attr('d', 'M 0,0 V 4 L6,2 Z'); // this is actual shape for arrowhead
58814};
58815/**
58816 * Setup node number. The result is appended to the svg.
58817 */
58818
58819const insertSequenceNumber = function (elem) {
58820 elem.append('defs').append('marker').attr('id', 'sequencenumber').attr('refX', 15).attr('refY', 15).attr('markerWidth', 60).attr('markerHeight', 40).attr('orient', 'auto').append('circle').attr('cx', 15).attr('cy', 15).attr('r', 6); // .style("fill", '#f00');
58821};
58822/**
58823 * Setup arrow head and define the marker. The result is appended to the svg.
58824 */
58825
58826const insertArrowCrossHead = function (elem) {
58827 const defs = elem.append('defs');
58828 const marker = defs.append('marker').attr('id', 'crosshead').attr('markerWidth', 15).attr('markerHeight', 8).attr('orient', 'auto').attr('refX', 16).attr('refY', 4); // The arrow
58829
58830 marker.append('path').attr('fill', 'black').attr('stroke', '#000000').style('stroke-dasharray', '0, 0').attr('stroke-width', '1px').attr('d', 'M 9,2 V 6 L16,4 Z'); // The cross
58831
58832 marker.append('path').attr('fill', 'none').attr('stroke', '#000000').style('stroke-dasharray', '0, 0').attr('stroke-width', '1px').attr('d', 'M 0,1 L 6,7 M 6,1 L 0,7'); // this is actual shape for arrowhead
58833};
58834const getTextObj = function () {
58835 const txt = {
58836 x: 0,
58837 y: 0,
58838 fill: undefined,
58839 'text-anchor': 'start',
58840 style: '#666',
58841 width: 100,
58842 height: 100,
58843 textMargin: 0,
58844 rx: 0,
58845 ry: 0
58846 };
58847 return txt;
58848};
58849const getNoteRect = function () {
58850 const rect = {
58851 x: 0,
58852 y: 0,
58853 fill: '#EDF2AE',
58854 stroke: '#666',
58855 width: 100,
58856 anchor: 'start',
58857 height: 100,
58858 rx: 0,
58859 ry: 0
58860 };
58861 return rect;
58862};
58863
58864const _drawTextCandidateFunc = function () {
58865 function byText(content, g, x, y, width, height, textAttrs) {
58866 const text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('text-anchor', 'middle').text(content);
58867
58868 _setTextAttrs(text, textAttrs);
58869 }
58870
58871 function byTspan(content, g, x, y, width, height, textAttrs, conf) {
58872 const {
58873 actorFontSize,
58874 actorFontFamily
58875 } = conf;
58876 const lines = content.split(/<br\/?>/gi);
58877
58878 for (let i = 0; i < lines.length; i++) {
58879 const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;
58880 const text = g.append('text').attr('x', x + width / 2).attr('y', y).style('text-anchor', 'middle').style('font-size', actorFontSize).style('font-family', actorFontFamily);
58881 text.append('tspan').attr('x', x + width / 2).attr('dy', dy).text(lines[i]);
58882 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
58883
58884 _setTextAttrs(text, textAttrs);
58885 }
58886 }
58887
58888 function byFo(content, g, x, y, width, height, textAttrs, conf) {
58889 const s = g.append('switch');
58890 const f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height);
58891 const text = f.append('div').style('display', 'table').style('height', '100%').style('width', '100%');
58892 text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
58893 byTspan(content, s, x, y, width, height, textAttrs, conf);
58894
58895 _setTextAttrs(text, textAttrs);
58896 }
58897
58898 function _setTextAttrs(toText, fromTextAttrsDict) {
58899 for (const key in fromTextAttrsDict) {
58900 if (fromTextAttrsDict.hasOwnProperty(key)) {
58901 toText.attr(key, fromTextAttrsDict[key]);
58902 }
58903 }
58904 }
58905
58906 return function (conf) {
58907 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
58908 };
58909}();
58910
58911/* harmony default export */ __webpack_exports__["default"] = ({
58912 drawRect,
58913 drawText,
58914 drawLabel,
58915 drawActor,
58916 anchorElement,
58917 drawActivation,
58918 drawLoop,
58919 drawBackgroundRect,
58920 insertArrowHead,
58921 insertSequenceNumber,
58922 insertArrowCrossHead,
58923 getTextObj,
58924 getNoteRect
58925});
58926
58927/***/ }),
58928
58929/***/ "./src/logger.js":
58930/*!***********************!*\
58931 !*** ./src/logger.js ***!
58932 \***********************/
58933/*! exports provided: LEVELS, logger, setLogLevel */
58934/***/ (function(module, __webpack_exports__, __webpack_require__) {
58935
58936"use strict";
58937__webpack_require__.r(__webpack_exports__);
58938/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LEVELS", function() { return LEVELS; });
58939/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logger", function() { return logger; });
58940/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLogLevel", function() { return setLogLevel; });
58941/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
58942/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
58943
58944const LEVELS = {
58945 debug: 1,
58946 info: 2,
58947 warn: 3,
58948 error: 4,
58949 fatal: 5
58950};
58951const logger = {
58952 debug: () => {},
58953 info: () => {},
58954 warn: () => {},
58955 error: () => {},
58956 fatal: () => {}
58957};
58958const setLogLevel = function (level) {
58959 logger.debug = () => {};
58960
58961 logger.info = () => {};
58962
58963 logger.warn = () => {};
58964
58965 logger.error = () => {};
58966
58967 logger.fatal = () => {};
58968
58969 if (level <= LEVELS.fatal) {
58970 logger.fatal = console.log.bind(console, '\x1b[35m', format('FATAL'));
58971 }
58972
58973 if (level <= LEVELS.error) {
58974 logger.error = console.log.bind(console, '\x1b[31m', format('ERROR'));
58975 }
58976
58977 if (level <= LEVELS.warn) {
58978 logger.warn = console.log.bind(console, `\x1b[33m`, format('WARN'));
58979 }
58980
58981 if (level <= LEVELS.info) {
58982 logger.info = console.log.bind(console, '\x1b[34m', format('INFO'));
58983 }
58984
58985 if (level <= LEVELS.debug) {
58986 logger.debug = console.log.bind(console, '\x1b[32m', format('DEBUG'));
58987 }
58988};
58989
58990const format = level => {
58991 const time = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()().format('HH:mm:ss.SSS');
58992 return `${time} : ${level} : `;
58993};
58994
58995/***/ }),
58996
58997/***/ "./src/mermaid.js":
58998/*!************************!*\
58999 !*** ./src/mermaid.js ***!
59000 \************************/
59001/*! exports provided: default */
59002/***/ (function(module, __webpack_exports__, __webpack_require__) {
59003
59004"use strict";
59005__webpack_require__.r(__webpack_exports__);
59006/* harmony import */ var he__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! he */ "./node_modules/he/he.js");
59007/* harmony import */ var he__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(he__WEBPACK_IMPORTED_MODULE_0__);
59008/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mermaidAPI */ "./src/mermaidAPI.js");
59009/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
59010/**
59011 * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid functionality and to render
59012 * the diagrams to svg code.
59013 */
59014
59015
59016
59017/**
59018 * ## init
59019 * Function that goes through the document to find the chart definitions in there and render them.
59020 *
59021 * The function tags the processed attributes with the attribute data-processed and ignores found elements with the
59022 * attribute already set. This way the init function can be triggered several times.
59023 *
59024 * Optionally, `init` can accept in the second argument one of the following:
59025 * - a DOM Node
59026 * - an array of DOM nodes (as would come from a jQuery selector)
59027 * - a W3C selector, a la `.mermaid`
59028 *
59029 * ```mermaid
59030 * graph LR;
59031 * a(Find elements)-->b{Processed}
59032 * b-->|Yes|c(Leave element)
59033 * b-->|No |d(Transform)
59034 * ```
59035 * Renders the mermaid diagrams
59036 * @param nodes a css selector or an array of nodes
59037 */
59038
59039const init = function () {
59040 const conf = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
59041 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Starting rendering diagrams');
59042 let nodes;
59043
59044 if (arguments.length >= 2) {
59045 /*! sequence config was passed as #1 */
59046 if (typeof arguments[0] !== 'undefined') {
59047 mermaid.sequenceConfig = arguments[0];
59048 }
59049
59050 nodes = arguments[1];
59051 } else {
59052 nodes = arguments[0];
59053 } // if last argument is a function this is the callback function
59054
59055
59056 let callback;
59057
59058 if (typeof arguments[arguments.length - 1] === 'function') {
59059 callback = arguments[arguments.length - 1];
59060 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Callback function found');
59061 } else {
59062 if (typeof conf.mermaid !== 'undefined') {
59063 if (typeof conf.mermaid.callback === 'function') {
59064 callback = conf.mermaid.callback;
59065 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Callback function found');
59066 } else {
59067 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('No Callback function found');
59068 }
59069 }
59070 }
59071
59072 nodes = nodes === undefined ? document.querySelectorAll('.mermaid') : typeof nodes === 'string' ? document.querySelectorAll(nodes) : nodes instanceof window.Node ? [nodes] : nodes; // Last case - sequence config was passed pick next
59073
59074 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Start On Load before: ' + mermaid.startOnLoad);
59075
59076 if (typeof mermaid.startOnLoad !== 'undefined') {
59077 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Start On Load inner: ' + mermaid.startOnLoad);
59078 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize({
59079 startOnLoad: mermaid.startOnLoad
59080 });
59081 }
59082
59083 if (typeof mermaid.ganttConfig !== 'undefined') {
59084 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize({
59085 gantt: mermaid.ganttConfig
59086 });
59087 }
59088
59089 let txt;
59090
59091 for (let i = 0; i < nodes.length; i++) {
59092 const element = nodes[i];
59093 /*! Check if previously processed */
59094
59095 if (!element.getAttribute('data-processed')) {
59096 element.setAttribute('data-processed', true);
59097 } else {
59098 continue;
59099 }
59100
59101 const id = `mermaid-${Date.now()}`; // Fetch the graph definition including tags
59102
59103 txt = element.innerHTML; // transforms the html to pure text
59104
59105 txt = he__WEBPACK_IMPORTED_MODULE_0___default.a.decode(txt).trim().replace(/<br>/gi, '<br/>');
59106 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render(id, txt, (svgCode, bindFunctions) => {
59107 element.innerHTML = svgCode;
59108
59109 if (typeof callback !== 'undefined') {
59110 callback(id);
59111 }
59112
59113 if (bindFunctions) bindFunctions(element);
59114 }, element);
59115 }
59116};
59117
59118const initialize = function (config) {
59119 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Initializing mermaid ');
59120
59121 if (typeof config.mermaid !== 'undefined') {
59122 if (typeof config.mermaid.startOnLoad !== 'undefined') {
59123 mermaid.startOnLoad = config.mermaid.startOnLoad;
59124 }
59125
59126 if (typeof config.mermaid.htmlLabels !== 'undefined') {
59127 mermaid.htmlLabels = config.mermaid.htmlLabels;
59128 }
59129 }
59130
59131 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize(config);
59132};
59133/**
59134 * ##contentLoaded
59135 * Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and
59136 * calls init for rendering the mermaid diagrams on the page.
59137 */
59138
59139
59140const contentLoaded = function () {
59141 let config;
59142
59143 if (mermaid.startOnLoad) {
59144 // No config found, do check API config
59145 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
59146
59147 if (config.startOnLoad) {
59148 mermaid.init();
59149 }
59150 } else {
59151 if (typeof mermaid.startOnLoad === 'undefined') {
59152 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('In start, no config');
59153 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
59154
59155 if (config.startOnLoad) {
59156 mermaid.init();
59157 }
59158 }
59159 }
59160};
59161
59162if (typeof document !== 'undefined') {
59163 /*!
59164 * Wait for document loaded before starting the execution
59165 */
59166 window.addEventListener('load', function () {
59167 contentLoaded();
59168 }, false);
59169}
59170
59171const mermaid = {
59172 startOnLoad: true,
59173 htmlLabels: true,
59174 mermaidAPI: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"],
59175 parse: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parse,
59176 render: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render,
59177 init,
59178 initialize,
59179 contentLoaded
59180};
59181/* harmony default export */ __webpack_exports__["default"] = (mermaid);
59182
59183/***/ }),
59184
59185/***/ "./src/mermaidAPI.js":
59186/*!***************************!*\
59187 !*** ./src/mermaidAPI.js ***!
59188 \***************************/
59189/*! exports provided: encodeEntities, decodeEntities, default */
59190/***/ (function(module, __webpack_exports__, __webpack_require__) {
59191
59192"use strict";
59193__webpack_require__.r(__webpack_exports__);
59194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeEntities", function() { return encodeEntities; });
59195/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decodeEntities", function() { return decodeEntities; });
59196/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
59197/* harmony import */ var scope_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! scope-css */ "./node_modules/scope-css/index.js");
59198/* harmony import */ var scope_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(scope_css__WEBPACK_IMPORTED_MODULE_1__);
59199/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../package.json */ "./package.json");
59200var _package_json__WEBPACK_IMPORTED_MODULE_2___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../package.json */ "./package.json", 1);
59201/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config */ "./src/config.js");
59202/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
59203/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
59204/* harmony import */ var _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js");
59205/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/flowchart/parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
59206/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7__);
59207/* harmony import */ var _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js");
59208/* harmony import */ var _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js");
59209/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diagrams/sequence/parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.jison");
59210/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10__);
59211/* harmony import */ var _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diagrams/sequence/sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
59212/* harmony import */ var _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js");
59213/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diagrams/gantt/parser/gantt */ "./src/diagrams/gantt/parser/gantt.jison");
59214/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13__);
59215/* harmony import */ var _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js");
59216/* harmony import */ var _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diagrams/class/classRenderer */ "./src/diagrams/class/classRenderer.js");
59217/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./diagrams/class/parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
59218/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_16__);
59219/* harmony import */ var _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diagrams/class/classDb */ "./src/diagrams/class/classDb.js");
59220/* harmony import */ var _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diagrams/git/gitGraphRenderer */ "./src/diagrams/git/gitGraphRenderer.js");
59221/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./diagrams/git/parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.jison");
59222/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_19__);
59223/* harmony import */ var _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./diagrams/git/gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
59224/* harmony import */ var _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./diagrams/info/infoRenderer */ "./src/diagrams/info/infoRenderer.js");
59225/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./diagrams/info/parser/info */ "./src/diagrams/info/parser/info.jison");
59226/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_22__);
59227/* harmony import */ var _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./diagrams/info/infoDb */ "./src/diagrams/info/infoDb.js");
59228/* harmony import */ var _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./diagrams/pie/pieRenderer */ "./src/diagrams/pie/pieRenderer.js");
59229/* harmony import */ var _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./diagrams/pie/parser/pie */ "./src/diagrams/pie/parser/pie.jison");
59230/* harmony import */ var _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_25__);
59231/* harmony import */ var _diagrams_pie_pieDb__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./diagrams/pie/pieDb */ "./src/diagrams/pie/pieDb.js");
59232/**
59233 * This is the api to be used when optionally handling the integration with the web page, instead of using the default integration provided by mermaid.js.
59234 *
59235 * The core of this api is the [**render**](https://github.com/knsv/mermaid/blob/master/docs/mermaidAPI.md#render) function which, given a graph
59236 * definition as text, renders the graph/diagram and returns an svg element for the graph.
59237 *
59238 * It is is then up to the user of the API to make use of the svg, either insert it somewhere in the page or do something completely different.
59239 *
59240 * In addition to the render function, a number of behavioral configuration options are available.
59241 *
59242 * @name mermaidAPI
59243 */
59244
59245
59246
59247
59248
59249
59250
59251
59252
59253
59254
59255
59256
59257
59258
59259
59260
59261
59262
59263
59264
59265
59266
59267
59268
59269
59270
59271const themes = {};
59272
59273for (const themeName of ['default', 'forest', 'dark', 'neutral']) {
59274 themes[themeName] = __webpack_require__("./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$")(`./${themeName}/index.scss`);
59275}
59276/**
59277 * These are the default options which can be overridden with the initialization call like so:
59278 * **Example 1:**
59279 * <pre>
59280 * mermaid.initialize({
59281 * flowchart:{
59282 * htmlLabels: false
59283 * }
59284 * });
59285 * </pre>
59286 *
59287 * **Example 2:**
59288 * <pre>
59289 * <script>
59290 * var config = {
59291 * startOnLoad:true,
59292 * flowchart:{
59293 * useMaxWidth:true,
59294 * htmlLabels:true,
59295 * curve:'cardinal',
59296 * },
59297 *
59298 * securityLevel:'loose',
59299 * };
59300 * mermaid.initialize(config);
59301 * </script>
59302 * </pre>
59303 * A summary of all options and their defaults is found [here](https://github.com/knsv/mermaid/blob/master/docs/mermaidAPI.md#mermaidapi-configuration-defaults). A description of each option follows below.
59304 *
59305 * @name Configuration
59306 */
59307
59308
59309const config = {
59310 /** theme , the CSS style sheet
59311 *
59312 * **theme** - Choose one of the built-in themes:
59313 * * default
59314 * * forest
59315 * * dark
59316 * * neutral.
59317 * To disable any pre-defined mermaid theme, use "null".
59318 *
59319 * **themeCSS** - Use your own CSS. This overrides **theme**.
59320 * <pre>
59321 * "theme": "forest",
59322 * "themeCSS": ".node rect { fill: red; }"
59323 * </pre>
59324 */
59325 theme: 'default',
59326 themeCSS: undefined,
59327
59328 /**
59329 * This option decides the amount of logging to be used.
59330 * * debug: 1
59331 * * info: 2
59332 * * warn: 3
59333 * * error: 4
59334 * * fatal: (**default**) 5
59335 */
59336 logLevel: 5,
59337
59338 /**
59339 * Sets the level of trust to be used on the parsed diagrams.
59340 * * **strict**: (**default**) tags in text are encoded, click functionality is disabeled
59341 * * **loose**: tags in text are allowed, click functionality is enabled
59342 */
59343 securityLevel: 'strict',
59344
59345 /**
59346 * This options controls whether or mermaid starts when the page loads
59347 * **Default value true**.
59348 */
59349 startOnLoad: true,
59350
59351 /**
59352 * This options controls whether or arrow markers in html code will be absolute paths or
59353 * an anchor, #. This matters if you are using base tag settings.
59354 * **Default value false**.
59355 */
59356 arrowMarkerAbsolute: false,
59357
59358 /**
59359 * The object containing configurations specific for flowcharts
59360 */
59361 flowchart: {
59362 /**
59363 * Flag for setting whether or not a html tag should be used for rendering labels
59364 * on the edges.
59365 * **Default value true**.
59366 */
59367 htmlLabels: true,
59368
59369 /**
59370 * How mermaid renders curves for flowcharts. Possible values are
59371 * * basis
59372 * * linear **default**
59373 * * cardinal
59374 */
59375 curve: 'linear'
59376 },
59377
59378 /**
59379 * The object containing configurations specific for sequence diagrams
59380 */
59381 sequence: {
59382 /**
59383 * margin to the right and left of the sequence diagram.
59384 * **Default value 50**.
59385 */
59386 diagramMarginX: 50,
59387
59388 /**
59389 * margin to the over and under the sequence diagram.
59390 * **Default value 10**.
59391 */
59392 diagramMarginY: 10,
59393
59394 /**
59395 * Margin between actors.
59396 * **Default value 50**.
59397 */
59398 actorMargin: 50,
59399
59400 /**
59401 * Width of actor boxes
59402 * **Default value 150**.
59403 */
59404 width: 150,
59405
59406 /**
59407 * Height of actor boxes
59408 * **Default value 65**.
59409 */
59410 height: 65,
59411
59412 /**
59413 * Margin around loop boxes
59414 * **Default value 10**.
59415 */
59416 boxMargin: 10,
59417
59418 /**
59419 * margin around the text in loop/alt/opt boxes
59420 * **Default value 5**.
59421 */
59422 boxTextMargin: 5,
59423
59424 /**
59425 * margin around notes.
59426 * **Default value 10**.
59427 */
59428 noteMargin: 10,
59429
59430 /**
59431 * Space between messages.
59432 * **Default value 35**.
59433 */
59434 messageMargin: 35,
59435
59436 /**
59437 * mirror actors under diagram.
59438 * **Default value true**.
59439 */
59440 mirrorActors: true,
59441
59442 /**
59443 * Depending on css styling this might need adjustment.
59444 * Prolongs the edge of the diagram downwards.
59445 * **Default value 1**.
59446 */
59447 bottomMarginAdj: 1,
59448
59449 /**
59450 * when this flag is set the height and width is set to 100% and is then scaling with the
59451 * available space if not the absolute space required is used.
59452 * **Default value true**.
59453 */
59454 useMaxWidth: true,
59455
59456 /**
59457 * This will display arrows that start and begin at the same node as right angles, rather than a curve
59458 * **Default value false**.
59459 */
59460 rightAngles: false,
59461
59462 /**
59463 * This will show the node numbers
59464 * **Default value false**.
59465 */
59466 showSequenceNumbers: false
59467 },
59468
59469 /**
59470 * The object containing configurations specific for gantt diagrams*
59471 */
59472 gantt: {
59473 /**
59474 * Margin top for the text over the gantt diagram
59475 * **Default value 25**.
59476 */
59477 titleTopMargin: 25,
59478
59479 /**
59480 * The height of the bars in the graph
59481 * **Default value 20**.
59482 */
59483 barHeight: 20,
59484
59485 /**
59486 * The margin between the different activities in the gantt diagram.
59487 * **Default value 4**.
59488 */
59489 barGap: 4,
59490
59491 /**
59492 * Margin between title and gantt diagram and between axis and gantt diagram.
59493 * **Default value 50**.
59494 */
59495 topPadding: 50,
59496
59497 /**
59498 * The space allocated for the section name to the left of the activities.
59499 * **Default value 75**.
59500 */
59501 leftPadding: 75,
59502
59503 /**
59504 * Vertical starting position of the grid lines.
59505 * **Default value 35**.
59506 */
59507 gridLineStartPadding: 35,
59508
59509 /**
59510 * Font size ...
59511 * **Default value 11**.
59512 */
59513 fontSize: 11,
59514
59515 /**
59516 * font family ...
59517 * **Default value '"Open-Sans", "sans-serif"'**.
59518 */
59519 fontFamily: '"Open-Sans", "sans-serif"',
59520
59521 /**
59522 * The number of alternating section styles.
59523 * **Default value 4**.
59524 */
59525 numberSectionStyles: 4,
59526
59527 /**
59528 * Datetime format of the axis. This might need adjustment to match your locale and preferences
59529 * **Default value '%Y-%m-%d'**.
59530 */
59531 axisFormat: '%Y-%m-%d'
59532 },
59533 class: {},
59534 git: {}
59535};
59536Object(_logger__WEBPACK_IMPORTED_MODULE_4__["setLogLevel"])(config.logLevel);
59537Object(_config__WEBPACK_IMPORTED_MODULE_3__["setConfig"])(config);
59538
59539function parse(text) {
59540 const graphType = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].detectType(text);
59541 let parser;
59542 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('Type ' + graphType);
59543
59544 switch (graphType) {
59545 case 'git':
59546 parser = _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_19___default.a;
59547 parser.parser.yy = _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_20__["default"];
59548 break;
59549
59550 case 'flowchart':
59551 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].clear();
59552 parser = _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default.a;
59553 parser.parser.yy = _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"];
59554 break;
59555
59556 case 'sequence':
59557 parser = _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10___default.a;
59558 parser.parser.yy = _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_11__["default"];
59559 break;
59560
59561 case 'gantt':
59562 parser = _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13___default.a;
59563 parser.parser.yy = _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"];
59564 break;
59565
59566 case 'class':
59567 parser = _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_16___default.a;
59568 parser.parser.yy = _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_17__["default"];
59569 break;
59570
59571 case 'info':
59572 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('info info info');
59573 console.warn('In API', _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
59574 parser = _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_22___default.a;
59575 parser.parser.yy = _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_23__["default"];
59576 break;
59577
59578 case 'pie':
59579 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('pie');
59580 parser = _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_25___default.a;
59581 parser.parser.yy = _diagrams_pie_pieDb__WEBPACK_IMPORTED_MODULE_26__["default"];
59582 break;
59583 }
59584
59585 parser.parser.yy.parseError = (str, hash) => {
59586 const error = {
59587 str,
59588 hash
59589 };
59590 throw error;
59591 };
59592
59593 parser.parse(text);
59594}
59595
59596const encodeEntities = function (text) {
59597 let txt = text;
59598 txt = txt.replace(/style.*:\S*#.*;/g, function (s) {
59599 const innerTxt = s.substring(0, s.length - 1);
59600 return innerTxt;
59601 });
59602 txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) {
59603 const innerTxt = s.substring(0, s.length - 1);
59604 return innerTxt;
59605 });
59606 txt = txt.replace(/#\w+;/g, function (s) {
59607 const innerTxt = s.substring(1, s.length - 1);
59608 const isInt = /^\+?\d+$/.test(innerTxt);
59609
59610 if (isInt) {
59611 return 'fl°°' + innerTxt + '¶ß';
59612 } else {
59613 return 'fl°' + innerTxt + '¶ß';
59614 }
59615 });
59616 return txt;
59617};
59618const decodeEntities = function (text) {
59619 let txt = text;
59620 txt = txt.replace(/fl°°/g, function () {
59621 return '&#';
59622 });
59623 txt = txt.replace(/fl°/g, function () {
59624 return '&';
59625 });
59626 txt = txt.replace(/¶ß/g, function () {
59627 return ';';
59628 });
59629 return txt;
59630};
59631/**
59632 * Function that renders an svg with a graph from a chart definition. Usage example below.
59633 *
59634 * ```js
59635 * mermaidAPI.initialize({
59636 * startOnLoad:true
59637 * });
59638 * $(function(){
59639 * const graphDefinition = 'graph TB\na-->b';
59640 * const cb = function(svgGraph){
59641 * console.log(svgGraph);
59642 * };
59643 * mermaidAPI.render('id1',graphDefinition,cb);
59644 * });
59645 *```
59646 * @param id the id of the element to be rendered
59647 * @param txt the graph definition
59648 * @param cb callback which is called after rendering is finished with the svg code as inparam.
59649 * @param container selector to element in which a div with the graph temporarily will be inserted. In one is
59650 * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is
59651 * completed.
59652 */
59653
59654const render = function (id, txt, cb, container) {
59655 if (typeof container !== 'undefined') {
59656 container.innerHTML = '';
59657 d3__WEBPACK_IMPORTED_MODULE_0__["select"](container).append('div').attr('id', 'd' + id).append('svg').attr('id', id).attr('width', '100%').attr('xmlns', 'http://www.w3.org/2000/svg').append('g');
59658 } else {
59659 const element = document.querySelector('#' + 'd' + id);
59660
59661 if (element) {
59662 element.innerHTML = '';
59663 }
59664
59665 d3__WEBPACK_IMPORTED_MODULE_0__["select"]('body').append('div').attr('id', 'd' + id).append('svg').attr('id', id).attr('width', '100%').attr('xmlns', 'http://www.w3.org/2000/svg').append('g');
59666 }
59667
59668 window.txt = txt;
59669 txt = encodeEntities(txt);
59670 const element = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#d' + id).node();
59671 const graphType = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].detectType(txt); // insert inline style into svg
59672
59673 const svg = element.firstChild;
59674 const firstChild = svg.firstChild; // pre-defined theme
59675
59676 let style = themes[config.theme];
59677
59678 if (style === undefined) {
59679 style = '';
59680 } // user provided theme CSS
59681
59682
59683 if (config.themeCSS !== undefined) {
59684 style += `\n${config.themeCSS}`;
59685 } // classDef
59686
59687
59688 if (graphType === 'flowchart') {
59689 const classes = _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_6__["default"].getClasses(txt);
59690
59691 for (const className in classes) {
59692 style += `\n.${className} > * { ${classes[className].styles.join(' !important; ')} !important; }`;
59693 }
59694 }
59695
59696 const style1 = document.createElement('style');
59697 style1.innerHTML = scope_css__WEBPACK_IMPORTED_MODULE_1___default()(style, `#${id}`);
59698 svg.insertBefore(style1, firstChild);
59699 const style2 = document.createElement('style');
59700 const cs = window.getComputedStyle(svg);
59701 style2.innerHTML = `#${id} {
59702 color: ${cs.color};
59703 font: ${cs.font};
59704 }`;
59705 svg.insertBefore(style2, firstChild);
59706
59707 switch (graphType) {
59708 case 'git':
59709 config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
59710 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_18__["default"].setConf(config.git);
59711 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_18__["default"].draw(txt, id, false);
59712 break;
59713
59714 case 'flowchart':
59715 config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
59716 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_6__["default"].setConf(config.flowchart);
59717 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_6__["default"].draw(txt, id, false);
59718 break;
59719
59720 case 'sequence':
59721 config.sequence.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
59722
59723 if (config.sequenceDiagram) {
59724 // backwards compatibility
59725 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(Object.assign(config.sequence, config.sequenceDiagram));
59726 console.error('`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.');
59727 } else {
59728 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(config.sequence);
59729 }
59730
59731 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].draw(txt, id);
59732 break;
59733
59734 case 'gantt':
59735 config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
59736 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].setConf(config.gantt);
59737 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].draw(txt, id);
59738 break;
59739
59740 case 'class':
59741 config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
59742 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].setConf(config.class);
59743 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].draw(txt, id);
59744 break;
59745
59746 case 'info':
59747 config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
59748 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_21__["default"].setConf(config.class);
59749 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_21__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
59750 break;
59751
59752 case 'pie':
59753 config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
59754 _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_24__["default"].setConf(config.class);
59755 _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_24__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
59756 break;
59757 }
59758
59759 d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', 'http://www.w3.org/1999/xhtml');
59760 let url = '';
59761
59762 if (config.arrowMarkerAbsolute) {
59763 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
59764 url = url.replace(/\(/g, '\\(');
59765 url = url.replace(/\)/g, '\\)');
59766 } // Fix for when the base tag is used
59767
59768
59769 let svgCode = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#d' + id).node().innerHTML.replace(/url\(#arrowhead/g, 'url(' + url + '#arrowhead', 'g');
59770 svgCode = decodeEntities(svgCode);
59771
59772 if (typeof cb !== 'undefined') {
59773 switch (graphType) {
59774 case 'flowchart':
59775 cb(svgCode, _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].bindFunctions);
59776 break;
59777
59778 case 'gantt':
59779 cb(svgCode, _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"].bindFunctions);
59780 break;
59781
59782 default:
59783 cb(svgCode);
59784 }
59785 } else {
59786 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('CB = undefined!');
59787 }
59788
59789 const node = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#d' + id).node();
59790
59791 if (node !== null && typeof node.remove === 'function') {
59792 d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#d' + id).node().remove();
59793 }
59794
59795 return svgCode;
59796};
59797
59798const setConf = function (cnf) {
59799 // Top level initially mermaid, gflow, sequenceDiagram and gantt
59800 const lvl1Keys = Object.keys(cnf);
59801
59802 for (let i = 0; i < lvl1Keys.length; i++) {
59803 if (typeof cnf[lvl1Keys[i]] === 'object' && cnf[lvl1Keys[i]] != null) {
59804 const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);
59805
59806 for (let j = 0; j < lvl2Keys.length; j++) {
59807 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]);
59808
59809 if (typeof config[lvl1Keys[i]] === 'undefined') {
59810 config[lvl1Keys[i]] = {};
59811 }
59812
59813 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('Setting config: ' + lvl1Keys[i] + ' ' + lvl2Keys[j] + ' to ' + cnf[lvl1Keys[i]][lvl2Keys[j]]);
59814 config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];
59815 }
59816 } else {
59817 config[lvl1Keys[i]] = cnf[lvl1Keys[i]];
59818 }
59819 }
59820};
59821
59822function initialize(options) {
59823 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('Initializing mermaidAPI ', _package_json__WEBPACK_IMPORTED_MODULE_2__.version); // Update default config with options supplied at initialization
59824
59825 if (typeof options === 'object') {
59826 setConf(options);
59827 }
59828
59829 Object(_config__WEBPACK_IMPORTED_MODULE_3__["setConfig"])(config);
59830 Object(_logger__WEBPACK_IMPORTED_MODULE_4__["setLogLevel"])(config.logLevel);
59831} // function getConfig () {
59832// console.warn('get config')
59833// return config
59834// }
59835
59836
59837const mermaidAPI = {
59838 render,
59839 parse,
59840 initialize,
59841 getConfig: _config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]
59842};
59843/* harmony default export */ __webpack_exports__["default"] = (mermaidAPI);
59844/**
59845 * ## mermaidAPI configuration defaults
59846 * <pre>
59847 *
59848 * <script>
59849 * var config = {
59850 * theme:'default',
59851 * logLevel:'fatal',
59852 * securityLevel:'strict',
59853 * startOnLoad:true,
59854 * arrowMarkerAbsolute:false,
59855 *
59856 * flowchart:{
59857 * htmlLabels:true,
59858 * curve:'linear',
59859 * },
59860 * sequence:{
59861 * diagramMarginX:50,
59862 * diagramMarginY:10,
59863 * actorMargin:50,
59864 * width:150,
59865 * height:65,
59866 * boxMargin:10,
59867 * boxTextMargin:5,
59868 * noteMargin:10,
59869 * messageMargin:35,
59870 * mirrorActors:true,
59871 * bottomMarginAdj:1,
59872 * useMaxWidth:true,
59873 * rightAngles:false,
59874 * showSequenceNumbers:false,
59875 * },
59876 * gantt:{
59877 * titleTopMargin:25,
59878 * barHeight:20,
59879 * barGap:4,
59880 * topPadding:50,
59881 * leftPadding:75,
59882 * gridLineStartPadding:35,
59883 * fontSize:11,
59884 * fontFamily:'"Open-Sans", "sans-serif"',
59885 * numberSectionStyles:4,
59886 * axisFormat:'%Y-%m-%d',
59887 * }
59888 * };
59889 * mermaid.initialize(config);
59890 * </script>
59891 *</pre>
59892 */
59893
59894/***/ }),
59895
59896/***/ "./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$":
59897/*!***********************************************!*\
59898 !*** ./src/themes sync ^\.\/.*\/index\.scss$ ***!
59899 \***********************************************/
59900/*! no static exports found */
59901/***/ (function(module, exports, __webpack_require__) {
59902
59903var map = {
59904 "./dark/index.scss": "./src/themes/dark/index.scss",
59905 "./default/index.scss": "./src/themes/default/index.scss",
59906 "./forest/index.scss": "./src/themes/forest/index.scss",
59907 "./neutral/index.scss": "./src/themes/neutral/index.scss"
59908};
59909
59910
59911function webpackContext(req) {
59912 var id = webpackContextResolve(req);
59913 return __webpack_require__(id);
59914}
59915function webpackContextResolve(req) {
59916 var id = map[req];
59917 if(!(id + 1)) { // check for number or string
59918 var e = new Error("Cannot find module '" + req + "'");
59919 e.code = 'MODULE_NOT_FOUND';
59920 throw e;
59921 }
59922 return id;
59923}
59924webpackContext.keys = function webpackContextKeys() {
59925 return Object.keys(map);
59926};
59927webpackContext.resolve = webpackContextResolve;
59928module.exports = webpackContext;
59929webpackContext.id = "./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$";
59930
59931/***/ }),
59932
59933/***/ "./src/themes/dark/index.scss":
59934/*!************************************!*\
59935 !*** ./src/themes/dark/index.scss ***!
59936 \************************************/
59937/*! no static exports found */
59938/***/ (function(module, exports, __webpack_require__) {
59939
59940// css-to-string-loader: transforms styles from css-loader to a string output
59941
59942// Get the styles
59943var styles = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/dark/index.scss");
59944
59945if (typeof styles === 'string') {
59946 // Return an existing string
59947 module.exports = styles;
59948} else {
59949 // Call the custom toString method from css-loader module
59950 module.exports = styles.toString();
59951}
59952
59953/***/ }),
59954
59955/***/ "./src/themes/default/index.scss":
59956/*!***************************************!*\
59957 !*** ./src/themes/default/index.scss ***!
59958 \***************************************/
59959/*! no static exports found */
59960/***/ (function(module, exports, __webpack_require__) {
59961
59962// css-to-string-loader: transforms styles from css-loader to a string output
59963
59964// Get the styles
59965var styles = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/default/index.scss");
59966
59967if (typeof styles === 'string') {
59968 // Return an existing string
59969 module.exports = styles;
59970} else {
59971 // Call the custom toString method from css-loader module
59972 module.exports = styles.toString();
59973}
59974
59975/***/ }),
59976
59977/***/ "./src/themes/forest/index.scss":
59978/*!**************************************!*\
59979 !*** ./src/themes/forest/index.scss ***!
59980 \**************************************/
59981/*! no static exports found */
59982/***/ (function(module, exports, __webpack_require__) {
59983
59984// css-to-string-loader: transforms styles from css-loader to a string output
59985
59986// Get the styles
59987var styles = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/forest/index.scss");
59988
59989if (typeof styles === 'string') {
59990 // Return an existing string
59991 module.exports = styles;
59992} else {
59993 // Call the custom toString method from css-loader module
59994 module.exports = styles.toString();
59995}
59996
59997/***/ }),
59998
59999/***/ "./src/themes/neutral/index.scss":
60000/*!***************************************!*\
60001 !*** ./src/themes/neutral/index.scss ***!
60002 \***************************************/
60003/*! no static exports found */
60004/***/ (function(module, exports, __webpack_require__) {
60005
60006// css-to-string-loader: transforms styles from css-loader to a string output
60007
60008// Get the styles
60009var styles = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/themes/neutral/index.scss");
60010
60011if (typeof styles === 'string') {
60012 // Return an existing string
60013 module.exports = styles;
60014} else {
60015 // Call the custom toString method from css-loader module
60016 module.exports = styles.toString();
60017}
60018
60019/***/ }),
60020
60021/***/ "./src/utils.js":
60022/*!**********************!*\
60023 !*** ./src/utils.js ***!
60024 \**********************/
60025/*! exports provided: detectType, isSubstringInArray, interpolateToCurve, default */
60026/***/ (function(module, __webpack_exports__, __webpack_require__) {
60027
60028"use strict";
60029__webpack_require__.r(__webpack_exports__);
60030/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectType", function() { return detectType; });
60031/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSubstringInArray", function() { return isSubstringInArray; });
60032/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateToCurve", function() { return interpolateToCurve; });
60033/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
60034/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
60035
60036
60037/**
60038 * @function detectType
60039 * Detects the type of the graph text.
60040 * ```mermaid
60041 * graph LR
60042 * a-->b
60043 * b-->c
60044 * c-->d
60045 * d-->e
60046 * e-->f
60047 * f-->g
60048 * g-->h
60049 * ```
60050 *
60051 * @param {string} text The text defining the graph
60052 * @returns {string} A graph definition key
60053 */
60054
60055const detectType = function (text) {
60056 text = text.replace(/^\s*%%.*\n/g, '\n');
60057 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Detecting diagram type based on the text ' + text);
60058
60059 if (text.match(/^\s*sequenceDiagram/)) {
60060 return 'sequence';
60061 }
60062
60063 if (text.match(/^\s*gantt/)) {
60064 return 'gantt';
60065 }
60066
60067 if (text.match(/^\s*classDiagram/)) {
60068 return 'class';
60069 }
60070
60071 if (text.match(/^\s*gitGraph/)) {
60072 return 'git';
60073 }
60074
60075 if (text.match(/^\s*info/)) {
60076 return 'info';
60077 }
60078
60079 if (text.match(/^\s*pie/)) {
60080 return 'pie';
60081 }
60082
60083 return 'flowchart';
60084};
60085/**
60086 * @function isSubstringInArray
60087 * Detects whether a substring in present in a given array
60088 * @param {string} str The substring to detect
60089 * @param {array} arr The array to search
60090 * @returns {number} the array index containing the substring or -1 if not present
60091 **/
60092
60093const isSubstringInArray = function (str, arr) {
60094 for (let i = 0; i < arr.length; i++) {
60095 if (arr[i].match(str)) return i;
60096 }
60097
60098 return -1;
60099};
60100const interpolateToCurve = (interpolate, defaultCurve) => {
60101 if (!interpolate) {
60102 return defaultCurve;
60103 }
60104
60105 const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;
60106 return d3__WEBPACK_IMPORTED_MODULE_0__[curveName] || defaultCurve;
60107};
60108/* harmony default export */ __webpack_exports__["default"] = ({
60109 detectType,
60110 isSubstringInArray,
60111 interpolateToCurve
60112});
60113
60114/***/ })
60115
60116/******/ })["default"];
60117});
60118//# sourceMappingURL=mermaid.js.map
\No newline at end of file