UNPKG

2.47 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", ""]);
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", ""]);
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", ""]);
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", ""]);
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.2.3","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":"standard","e2e":"yarn lint && jest e2e --config e2e/jest.config.js","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"yarn lint && webpack-dev-server --config webpack.config.e2e.js","test":"yarn lint && jest src","test:watch":"jest --watch src","jison":"node -r @babel/register node_modules/.bin/gulp jison","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"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^3.1.0","d3":"^5.7.0","dagre-d3-renderer":"^0.5.8","dagre-layout":"^0.8.8","documentation":"^12.0.1","graphlibrary":"^2.2.0","gulp-print":"^5.0.2","he":"^1.2.0","lodash":"^4.17.11","minify":"^4.1.1","moment-mini":"^2.22.1","scope-css":"^1.2.1"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","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","gulp":"^4.0.0","gulp-jison":"^1.2.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","standard":"^12.0.1","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.js");
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 // Todo optimize
49087
49088};
49089
49090const getGraphId = function (label) {
49091 const keys = Object.keys(idCache);
49092
49093 for (let i = 0; i < keys.length; i++) {
49094 if (idCache[keys[i]].label === label) {
49095 return keys[i];
49096 }
49097 }
49098
49099 return undefined;
49100};
49101/**
49102 * Setup arrow head and define the marker. The result is appended to the svg.
49103 */
49104
49105
49106const insertMarkers = function (elem) {
49107 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');
49108 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
49109
49110 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');
49111 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');
49112 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');
49113 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');
49114 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');
49115 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');
49116};
49117
49118let edgeCount = 0;
49119let total = 0;
49120
49121const drawEdge = function (elem, path, relation) {
49122 const getRelationType = function (type) {
49123 switch (type) {
49124 case _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.AGGREGATION:
49125 return 'aggregation';
49126
49127 case _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.EXTENSION:
49128 return 'extension';
49129
49130 case _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.COMPOSITION:
49131 return 'composition';
49132
49133 case _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.DEPENDENCY:
49134 return 'dependency';
49135 }
49136 };
49137
49138 path.points = path.points.filter(p => !Number.isNaN(p.y)); // The data for our line
49139
49140 const lineData = path.points; // This is the accessor function we talked about above
49141
49142 const lineFunction = d3__WEBPACK_IMPORTED_MODULE_0__["line"]().x(function (d) {
49143 return d.x;
49144 }).y(function (d) {
49145 return d.y;
49146 }).curve(d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
49147 const svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'relation');
49148 let url = '';
49149
49150 if (conf.arrowMarkerAbsolute) {
49151 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
49152 url = url.replace(/\(/g, '\\(');
49153 url = url.replace(/\)/g, '\\)');
49154 }
49155
49156 if (relation.relation.type1 !== 'none') {
49157 svgPath.attr('marker-start', 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')');
49158 }
49159
49160 if (relation.relation.type2 !== 'none') {
49161 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')');
49162 }
49163
49164 let x, y;
49165 const l = path.points.length;
49166
49167 if (l % 2 !== 0 && l > 1) {
49168 const p1 = path.points[Math.floor(l / 2)];
49169 const p2 = path.points[Math.ceil(l / 2)];
49170 x = (p1.x + p2.x) / 2;
49171 y = (p1.y + p2.y) / 2;
49172 } else {
49173 const p = path.points[Math.floor(l / 2)];
49174 x = p.x;
49175 y = p.y;
49176 }
49177
49178 if (typeof relation.title !== 'undefined') {
49179 const g = elem.append('g').attr('class', 'classLabel');
49180 const label = g.append('text').attr('class', 'label').attr('x', x).attr('y', y).attr('fill', 'red').attr('text-anchor', 'middle').text(relation.title);
49181 window.label = label;
49182 const bounds = label.node().getBBox();
49183 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);
49184 }
49185
49186 edgeCount++;
49187};
49188
49189const drawClass = function (elem, classDef) {
49190 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering class ' + classDef);
49191
49192 const addTspan = function (textEl, txt, isFirst) {
49193 const tSpan = textEl.append('tspan').attr('x', conf.padding).text(txt);
49194
49195 if (!isFirst) {
49196 tSpan.attr('dy', conf.textHeight);
49197 }
49198 };
49199
49200 const id = 'classId' + classCnt % total;
49201 const classInfo = {
49202 id: id,
49203 label: classDef.id,
49204 width: 0,
49205 height: 0
49206 };
49207 const g = elem.append('g').attr('id', id).attr('class', 'classGroup');
49208 const title = g.append('text').attr('x', conf.padding).attr('y', conf.textHeight + conf.padding).text(classDef.id);
49209 const titleHeight = title.node().getBBox().height;
49210 const membersLine = g.append('line') // text label for the x axis
49211 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2).attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);
49212 const members = g.append('text') // text label for the x axis
49213 .attr('x', conf.padding).attr('y', titleHeight + conf.dividerMargin + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
49214 let isFirst = true;
49215 classDef.members.forEach(function (member) {
49216 addTspan(members, member, isFirst);
49217 isFirst = false;
49218 });
49219 const membersBox = members.node().getBBox();
49220 const methodsLine = g.append('line') // text label for the x axis
49221 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
49222 const methods = g.append('text') // text label for the x axis
49223 .attr('x', conf.padding).attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
49224 isFirst = true;
49225 classDef.methods.forEach(function (method) {
49226 addTspan(methods, method, isFirst);
49227 isFirst = false;
49228 });
49229 const classBox = g.node().getBBox();
49230 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);
49231 membersLine.attr('x2', classBox.width + 2 * conf.padding);
49232 methodsLine.attr('x2', classBox.width + 2 * conf.padding);
49233 classInfo.width = classBox.width + 2 * conf.padding;
49234 classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
49235 idCache[id] = classInfo;
49236 classCnt++;
49237 return classInfo;
49238};
49239
49240const setConf = function (cnf) {
49241 const keys = Object.keys(cnf);
49242 keys.forEach(function (key) {
49243 conf[key] = cnf[key];
49244 });
49245};
49246/**
49247 * Draws a flowchart in the tag with id: id based on the graph definition in text.
49248 * @param text
49249 * @param id
49250 */
49251
49252const draw = function (text, id) {
49253 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy.clear();
49254 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].parse(text);
49255 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering diagram ' + text); /// / Fetch the default direction, use TD if none was found
49256
49257 const diagram = d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id='${id}']`);
49258 insertMarkers(diagram); // Layout graph, Create a new directed graph
49259
49260 const g = new graphlibrary__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
49261 multigraph: true
49262 }); // Set an object for the graph label
49263
49264 g.setGraph({
49265 isMultiGraph: true
49266 }); // Default to assigning a new object as a label for each new edge.
49267
49268 g.setDefaultEdgeLabel(function () {
49269 return {};
49270 });
49271 const classes = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getClasses();
49272 const keys = Object.keys(classes);
49273 total = keys.length;
49274
49275 for (let i = 0; i < keys.length; i++) {
49276 const classDef = classes[keys[i]];
49277 const node = drawClass(diagram, classDef); // Add nodes to the graph. The first argument is the node id. The second is
49278 // metadata about the node. In this case we're going to add labels to each of
49279 // our nodes.
49280
49281 g.setNode(node.id, node);
49282 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Org height: ' + node.height);
49283 }
49284
49285 const relations = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
49286 relations.forEach(function (relation) {
49287 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation));
49288 g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), {
49289 relation: relation
49290 });
49291 });
49292 dagre_layout__WEBPACK_IMPORTED_MODULE_1___default.a.layout(g);
49293 g.nodes().forEach(function (v) {
49294 if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {
49295 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));
49296 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) + ' )');
49297 }
49298 });
49299 g.edges().forEach(function (e) {
49300 if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {
49301 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));
49302 drawEdge(diagram, g.edge(e), g.edge(e).relation);
49303 }
49304 });
49305 diagram.attr('height', '100%');
49306 diagram.attr('width', '100%');
49307 diagram.attr('viewBox', '0 0 ' + (g.graph().width + 20) + ' ' + (g.graph().height + 20));
49308};
49309/* harmony default export */ __webpack_exports__["default"] = ({
49310 setConf,
49311 draw
49312});
49313
49314/***/ }),
49315
49316/***/ "./src/diagrams/class/parser/classDiagram.js":
49317/*!***************************************************!*\
49318 !*** ./src/diagrams/class/parser/classDiagram.js ***!
49319 \***************************************************/
49320/*! no static exports found */
49321/***/ (function(module, exports, __webpack_require__) {
49322
49323/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
49324
49325/*
49326 Returns a Parser object of the following structure:
49327
49328 Parser: {
49329 yy: {}
49330 }
49331
49332 Parser.prototype: {
49333 yy: {},
49334 trace: function(),
49335 symbols_: {associative list: name ==> number},
49336 terminals_: {associative list: number ==> name},
49337 productions_: [...],
49338 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
49339 table: [...],
49340 defaultActions: {...},
49341 parseError: function(str, hash),
49342 parse: function(input),
49343
49344 lexer: {
49345 EOF: 1,
49346 parseError: function(str, hash),
49347 setInput: function(input),
49348 input: function(),
49349 unput: function(str),
49350 more: function(),
49351 less: function(n),
49352 pastInput: function(),
49353 upcomingInput: function(),
49354 showPosition: function(),
49355 test_match: function(regex_match_array, rule_index),
49356 next: function(),
49357 lex: function(),
49358 begin: function(condition),
49359 popState: function(),
49360 _currentRules: function(),
49361 topState: function(),
49362 pushState: function(condition),
49363
49364 options: {
49365 ranges: boolean (optional: true ==> token location info will include a .range[] member)
49366 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
49367 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)
49368 },
49369
49370 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
49371 rules: [...],
49372 conditions: {associative list: name ==> set},
49373 }
49374 }
49375
49376
49377 token location info (@$, _$, etc.): {
49378 first_line: n,
49379 last_line: n,
49380 first_column: n,
49381 last_column: n,
49382 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
49383 }
49384
49385
49386 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
49387 text: (matched text)
49388 token: (the produced terminal token, if any)
49389 line: (yylineno)
49390 }
49391 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
49392 loc: (yylloc)
49393 expected: (string describing the set of expected tokens)
49394 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
49395 }
49396*/
49397var parser = function () {
49398 var o = function (k, v, o, l) {
49399 for (o = o || {}, l = k.length; l--; o[k[l]] = v);
49400
49401 return o;
49402 },
49403 $V0 = [1, 11],
49404 $V1 = [1, 12],
49405 $V2 = [1, 13],
49406 $V3 = [1, 15],
49407 $V4 = [1, 16],
49408 $V5 = [1, 17],
49409 $V6 = [6, 8],
49410 $V7 = [1, 26],
49411 $V8 = [1, 27],
49412 $V9 = [1, 28],
49413 $Va = [1, 29],
49414 $Vb = [1, 30],
49415 $Vc = [1, 31],
49416 $Vd = [6, 8, 13, 17, 23, 26, 27, 28, 29, 30, 31],
49417 $Ve = [6, 8, 13, 17, 23, 26, 27, 28, 29, 30, 31, 45, 46, 47],
49418 $Vf = [23, 45, 46, 47],
49419 $Vg = [23, 30, 31, 45, 46, 47],
49420 $Vh = [23, 26, 27, 28, 29, 45, 46, 47],
49421 $Vi = [6, 8, 13],
49422 $Vj = [1, 46];
49423
49424 var parser = {
49425 trace: function trace() {},
49426 yy: {},
49427 symbols_: {
49428 "error": 2,
49429 "mermaidDoc": 3,
49430 "graphConfig": 4,
49431 "CLASS_DIAGRAM": 5,
49432 "NEWLINE": 6,
49433 "statements": 7,
49434 "EOF": 8,
49435 "statement": 9,
49436 "className": 10,
49437 "alphaNumToken": 11,
49438 "relationStatement": 12,
49439 "LABEL": 13,
49440 "classStatement": 14,
49441 "methodStatement": 15,
49442 "CLASS": 16,
49443 "STRUCT_START": 17,
49444 "members": 18,
49445 "STRUCT_STOP": 19,
49446 "MEMBER": 20,
49447 "SEPARATOR": 21,
49448 "relation": 22,
49449 "STR": 23,
49450 "relationType": 24,
49451 "lineType": 25,
49452 "AGGREGATION": 26,
49453 "EXTENSION": 27,
49454 "COMPOSITION": 28,
49455 "DEPENDENCY": 29,
49456 "LINE": 30,
49457 "DOTTED_LINE": 31,
49458 "commentToken": 32,
49459 "textToken": 33,
49460 "graphCodeTokens": 34,
49461 "textNoTagsToken": 35,
49462 "TAGSTART": 36,
49463 "TAGEND": 37,
49464 "==": 38,
49465 "--": 39,
49466 "PCT": 40,
49467 "DEFAULT": 41,
49468 "SPACE": 42,
49469 "MINUS": 43,
49470 "keywords": 44,
49471 "UNICODE_TEXT": 45,
49472 "NUM": 46,
49473 "ALPHA": 47,
49474 "$accept": 0,
49475 "$end": 1
49476 },
49477 terminals_: {
49478 2: "error",
49479 5: "CLASS_DIAGRAM",
49480 6: "NEWLINE",
49481 8: "EOF",
49482 13: "LABEL",
49483 16: "CLASS",
49484 17: "STRUCT_START",
49485 19: "STRUCT_STOP",
49486 20: "MEMBER",
49487 21: "SEPARATOR",
49488 23: "STR",
49489 26: "AGGREGATION",
49490 27: "EXTENSION",
49491 28: "COMPOSITION",
49492 29: "DEPENDENCY",
49493 30: "LINE",
49494 31: "DOTTED_LINE",
49495 34: "graphCodeTokens",
49496 36: "TAGSTART",
49497 37: "TAGEND",
49498 38: "==",
49499 39: "--",
49500 40: "PCT",
49501 41: "DEFAULT",
49502 42: "SPACE",
49503 43: "MINUS",
49504 44: "keywords",
49505 45: "UNICODE_TEXT",
49506 46: "NUM",
49507 47: "ALPHA"
49508 },
49509 productions_: [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]],
49510 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate
49511 /* action[1] */
49512 , $$
49513 /* vstack */
49514 , _$
49515 /* lstack */
49516 ) {
49517 /* this == yyval */
49518 var $0 = $$.length - 1;
49519
49520 switch (yystate) {
49521 case 6:
49522 this.$ = $$[$0 - 1] + $$[$0];
49523 break;
49524
49525 case 7:
49526 this.$ = $$[$0];
49527 break;
49528
49529 case 8:
49530 yy.addRelation($$[$0]);
49531 break;
49532
49533 case 9:
49534 $$[$0 - 1].title = yy.cleanupLabel($$[$0]);
49535 yy.addRelation($$[$0 - 1]);
49536 break;
49537
49538 case 12:
49539 yy.addClass($$[$0]);
49540 break;
49541
49542 case 13:
49543 /*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/
49544 yy.addClass($$[$0 - 3]);
49545 yy.addMembers($$[$0 - 3], $$[$0 - 1]);
49546 break;
49547
49548 case 14:
49549 this.$ = [$$[$0]];
49550 break;
49551
49552 case 15:
49553 $$[$0].push($$[$0 - 1]);
49554 this.$ = $$[$0];
49555 break;
49556
49557 case 16:
49558 /*console.log('Rel found',$$[$0]);*/
49559 break;
49560
49561 case 17:
49562 yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));
49563 break;
49564
49565 case 18:
49566 console.warn('Member', $$[$0]);
49567 break;
49568
49569 case 19:
49570 /*console.log('sep found',$$[$0]);*/
49571 break;
49572
49573 case 20:
49574 this.$ = {
49575 'id1': $$[$0 - 2],
49576 'id2': $$[$0],
49577 relation: $$[$0 - 1],
49578 relationTitle1: 'none',
49579 relationTitle2: 'none'
49580 };
49581 break;
49582
49583 case 21:
49584 this.$ = {
49585 id1: $$[$0 - 3],
49586 id2: $$[$0],
49587 relation: $$[$0 - 1],
49588 relationTitle1: $$[$0 - 2],
49589 relationTitle2: 'none'
49590 };
49591 break;
49592
49593 case 22:
49594 this.$ = {
49595 id1: $$[$0 - 3],
49596 id2: $$[$0],
49597 relation: $$[$0 - 2],
49598 relationTitle1: 'none',
49599 relationTitle2: $$[$0 - 1]
49600 };
49601 break;
49602
49603 case 23:
49604 this.$ = {
49605 id1: $$[$0 - 4],
49606 id2: $$[$0],
49607 relation: $$[$0 - 2],
49608 relationTitle1: $$[$0 - 3],
49609 relationTitle2: $$[$0 - 1]
49610 };
49611 break;
49612
49613 case 24:
49614 this.$ = {
49615 type1: $$[$0 - 2],
49616 type2: $$[$0],
49617 lineType: $$[$0 - 1]
49618 };
49619 break;
49620
49621 case 25:
49622 this.$ = {
49623 type1: 'none',
49624 type2: $$[$0],
49625 lineType: $$[$0 - 1]
49626 };
49627 break;
49628
49629 case 26:
49630 this.$ = {
49631 type1: $$[$0 - 1],
49632 type2: 'none',
49633 lineType: $$[$0]
49634 };
49635 break;
49636
49637 case 27:
49638 this.$ = {
49639 type1: 'none',
49640 type2: 'none',
49641 lineType: $$[$0]
49642 };
49643 break;
49644
49645 case 28:
49646 this.$ = yy.relationType.AGGREGATION;
49647 break;
49648
49649 case 29:
49650 this.$ = yy.relationType.EXTENSION;
49651 break;
49652
49653 case 30:
49654 this.$ = yy.relationType.COMPOSITION;
49655 break;
49656
49657 case 31:
49658 this.$ = yy.relationType.DEPENDENCY;
49659 break;
49660
49661 case 32:
49662 this.$ = yy.lineType.LINE;
49663 break;
49664
49665 case 33:
49666 this.$ = yy.lineType.DOTTED_LINE;
49667 break;
49668 }
49669 },
49670 table: [{
49671 3: 1,
49672 4: 2,
49673 5: [1, 3]
49674 }, {
49675 1: [3]
49676 }, {
49677 1: [2, 1]
49678 }, {
49679 6: [1, 4]
49680 }, {
49681 7: 5,
49682 9: 6,
49683 10: 10,
49684 11: 14,
49685 12: 7,
49686 14: 8,
49687 15: 9,
49688 16: $V0,
49689 20: $V1,
49690 21: $V2,
49691 45: $V3,
49692 46: $V4,
49693 47: $V5
49694 }, {
49695 8: [1, 18]
49696 }, {
49697 6: [1, 19],
49698 8: [2, 3]
49699 }, o($V6, [2, 8], {
49700 13: [1, 20]
49701 }), o($V6, [2, 10]), o($V6, [2, 11]), o($V6, [2, 16], {
49702 22: 21,
49703 24: 24,
49704 25: 25,
49705 13: [1, 23],
49706 23: [1, 22],
49707 26: $V7,
49708 27: $V8,
49709 28: $V9,
49710 29: $Va,
49711 30: $Vb,
49712 31: $Vc
49713 }), {
49714 10: 32,
49715 11: 14,
49716 45: $V3,
49717 46: $V4,
49718 47: $V5
49719 }, o($V6, [2, 18]), o($V6, [2, 19]), o($Vd, [2, 7], {
49720 11: 14,
49721 10: 33,
49722 45: $V3,
49723 46: $V4,
49724 47: $V5
49725 }), o($Ve, [2, 47]), o($Ve, [2, 48]), o($Ve, [2, 49]), {
49726 1: [2, 2]
49727 }, {
49728 7: 34,
49729 8: [2, 4],
49730 9: 6,
49731 10: 10,
49732 11: 14,
49733 12: 7,
49734 14: 8,
49735 15: 9,
49736 16: $V0,
49737 20: $V1,
49738 21: $V2,
49739 45: $V3,
49740 46: $V4,
49741 47: $V5
49742 }, o($V6, [2, 9]), {
49743 10: 35,
49744 11: 14,
49745 23: [1, 36],
49746 45: $V3,
49747 46: $V4,
49748 47: $V5
49749 }, {
49750 22: 37,
49751 24: 24,
49752 25: 25,
49753 26: $V7,
49754 27: $V8,
49755 28: $V9,
49756 29: $Va,
49757 30: $Vb,
49758 31: $Vc
49759 }, o($V6, [2, 17]), {
49760 25: 38,
49761 30: $Vb,
49762 31: $Vc
49763 }, o($Vf, [2, 27], {
49764 24: 39,
49765 26: $V7,
49766 27: $V8,
49767 28: $V9,
49768 29: $Va
49769 }), 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], {
49770 17: [1, 40]
49771 }), o($Vd, [2, 6]), {
49772 8: [2, 5]
49773 }, o($Vi, [2, 20]), {
49774 10: 41,
49775 11: 14,
49776 45: $V3,
49777 46: $V4,
49778 47: $V5
49779 }, {
49780 10: 42,
49781 11: 14,
49782 23: [1, 43],
49783 45: $V3,
49784 46: $V4,
49785 47: $V5
49786 }, o($Vf, [2, 26], {
49787 24: 44,
49788 26: $V7,
49789 27: $V8,
49790 28: $V9,
49791 29: $Va
49792 }), o($Vf, [2, 25]), {
49793 18: 45,
49794 20: $Vj
49795 }, o($Vi, [2, 22]), o($Vi, [2, 21]), {
49796 10: 47,
49797 11: 14,
49798 45: $V3,
49799 46: $V4,
49800 47: $V5
49801 }, o($Vf, [2, 24]), {
49802 19: [1, 48]
49803 }, {
49804 18: 49,
49805 19: [2, 14],
49806 20: $Vj
49807 }, o($Vi, [2, 23]), o($V6, [2, 13]), {
49808 19: [2, 15]
49809 }],
49810 defaultActions: {
49811 2: [2, 1],
49812 18: [2, 2],
49813 34: [2, 5],
49814 49: [2, 15]
49815 },
49816 parseError: function parseError(str, hash) {
49817 if (hash.recoverable) {
49818 this.trace(str);
49819 } else {
49820 var error = new Error(str);
49821 error.hash = hash;
49822 throw error;
49823 }
49824 },
49825 parse: function parse(input) {
49826 var self = this,
49827 stack = [0],
49828 tstack = [],
49829 vstack = [null],
49830 lstack = [],
49831 table = this.table,
49832 yytext = '',
49833 yylineno = 0,
49834 yyleng = 0,
49835 recovering = 0,
49836 TERROR = 2,
49837 EOF = 1;
49838 var args = lstack.slice.call(arguments, 1);
49839 var lexer = Object.create(this.lexer);
49840 var sharedState = {
49841 yy: {}
49842 };
49843
49844 for (var k in this.yy) {
49845 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
49846 sharedState.yy[k] = this.yy[k];
49847 }
49848 }
49849
49850 lexer.setInput(input, sharedState.yy);
49851 sharedState.yy.lexer = lexer;
49852 sharedState.yy.parser = this;
49853
49854 if (typeof lexer.yylloc == 'undefined') {
49855 lexer.yylloc = {};
49856 }
49857
49858 var yyloc = lexer.yylloc;
49859 lstack.push(yyloc);
49860 var ranges = lexer.options && lexer.options.ranges;
49861
49862 if (typeof sharedState.yy.parseError === 'function') {
49863 this.parseError = sharedState.yy.parseError;
49864 } else {
49865 this.parseError = Object.getPrototypeOf(this).parseError;
49866 }
49867
49868 function popStack(n) {
49869 stack.length = stack.length - 2 * n;
49870 vstack.length = vstack.length - n;
49871 lstack.length = lstack.length - n;
49872 }
49873
49874 function lex() {
49875 var token;
49876 token = tstack.pop() || lexer.lex() || EOF;
49877
49878 if (typeof token !== 'number') {
49879 if (token instanceof Array) {
49880 tstack = token;
49881 token = tstack.pop();
49882 }
49883
49884 token = self.symbols_[token] || token;
49885 }
49886
49887 return token;
49888 }
49889
49890 var symbol,
49891 preErrorSymbol,
49892 state,
49893 action,
49894 a,
49895 r,
49896 yyval = {},
49897 p,
49898 len,
49899 newState,
49900 expected;
49901
49902 while (true) {
49903 state = stack[stack.length - 1];
49904
49905 if (this.defaultActions[state]) {
49906 action = this.defaultActions[state];
49907 } else {
49908 if (symbol === null || typeof symbol == 'undefined') {
49909 symbol = lex();
49910 }
49911
49912 action = table[state] && table[state][symbol];
49913 }
49914
49915 if (typeof action === 'undefined' || !action.length || !action[0]) {
49916 var errStr = '';
49917 expected = [];
49918
49919 for (p in table[state]) {
49920 if (this.terminals_[p] && p > TERROR) {
49921 expected.push('\'' + this.terminals_[p] + '\'');
49922 }
49923 }
49924
49925 if (lexer.showPosition) {
49926 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
49927 } else {
49928 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
49929 }
49930
49931 this.parseError(errStr, {
49932 text: lexer.match,
49933 token: this.terminals_[symbol] || symbol,
49934 line: lexer.yylineno,
49935 loc: yyloc,
49936 expected: expected
49937 });
49938 }
49939
49940 if (action[0] instanceof Array && action.length > 1) {
49941 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
49942 }
49943
49944 switch (action[0]) {
49945 case 1:
49946 stack.push(symbol);
49947 vstack.push(lexer.yytext);
49948 lstack.push(lexer.yylloc);
49949 stack.push(action[1]);
49950 symbol = null;
49951
49952 if (!preErrorSymbol) {
49953 yyleng = lexer.yyleng;
49954 yytext = lexer.yytext;
49955 yylineno = lexer.yylineno;
49956 yyloc = lexer.yylloc;
49957
49958 if (recovering > 0) {
49959 recovering--;
49960 }
49961 } else {
49962 symbol = preErrorSymbol;
49963 preErrorSymbol = null;
49964 }
49965
49966 break;
49967
49968 case 2:
49969 len = this.productions_[action[1]][1];
49970 yyval.$ = vstack[vstack.length - len];
49971 yyval._$ = {
49972 first_line: lstack[lstack.length - (len || 1)].first_line,
49973 last_line: lstack[lstack.length - 1].last_line,
49974 first_column: lstack[lstack.length - (len || 1)].first_column,
49975 last_column: lstack[lstack.length - 1].last_column
49976 };
49977
49978 if (ranges) {
49979 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
49980 }
49981
49982 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
49983
49984 if (typeof r !== 'undefined') {
49985 return r;
49986 }
49987
49988 if (len) {
49989 stack = stack.slice(0, -1 * len * 2);
49990 vstack = vstack.slice(0, -1 * len);
49991 lstack = lstack.slice(0, -1 * len);
49992 }
49993
49994 stack.push(this.productions_[action[1]][0]);
49995 vstack.push(yyval.$);
49996 lstack.push(yyval._$);
49997 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
49998 stack.push(newState);
49999 break;
50000
50001 case 3:
50002 return true;
50003 }
50004 }
50005
50006 return true;
50007 }
50008 };
50009 /* generated by jison-lex 0.3.4 */
50010
50011 var lexer = function () {
50012 var lexer = {
50013 EOF: 1,
50014 parseError: function parseError(str, hash) {
50015 if (this.yy.parser) {
50016 this.yy.parser.parseError(str, hash);
50017 } else {
50018 throw new Error(str);
50019 }
50020 },
50021 // resets the lexer, sets new input
50022 setInput: function (input, yy) {
50023 this.yy = yy || this.yy || {};
50024 this._input = input;
50025 this._more = this._backtrack = this.done = false;
50026 this.yylineno = this.yyleng = 0;
50027 this.yytext = this.matched = this.match = '';
50028 this.conditionStack = ['INITIAL'];
50029 this.yylloc = {
50030 first_line: 1,
50031 first_column: 0,
50032 last_line: 1,
50033 last_column: 0
50034 };
50035
50036 if (this.options.ranges) {
50037 this.yylloc.range = [0, 0];
50038 }
50039
50040 this.offset = 0;
50041 return this;
50042 },
50043 // consumes and returns one char from the input
50044 input: function () {
50045 var ch = this._input[0];
50046 this.yytext += ch;
50047 this.yyleng++;
50048 this.offset++;
50049 this.match += ch;
50050 this.matched += ch;
50051 var lines = ch.match(/(?:\r\n?|\n).*/g);
50052
50053 if (lines) {
50054 this.yylineno++;
50055 this.yylloc.last_line++;
50056 } else {
50057 this.yylloc.last_column++;
50058 }
50059
50060 if (this.options.ranges) {
50061 this.yylloc.range[1]++;
50062 }
50063
50064 this._input = this._input.slice(1);
50065 return ch;
50066 },
50067 // unshifts one char (or a string) into the input
50068 unput: function (ch) {
50069 var len = ch.length;
50070 var lines = ch.split(/(?:\r\n?|\n)/g);
50071 this._input = ch + this._input;
50072 this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len;
50073
50074 this.offset -= len;
50075 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
50076 this.match = this.match.substr(0, this.match.length - 1);
50077 this.matched = this.matched.substr(0, this.matched.length - 1);
50078
50079 if (lines.length - 1) {
50080 this.yylineno -= lines.length - 1;
50081 }
50082
50083 var r = this.yylloc.range;
50084 this.yylloc = {
50085 first_line: this.yylloc.first_line,
50086 last_line: this.yylineno + 1,
50087 first_column: this.yylloc.first_column,
50088 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
50089 };
50090
50091 if (this.options.ranges) {
50092 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
50093 }
50094
50095 this.yyleng = this.yytext.length;
50096 return this;
50097 },
50098 // When called from action, caches matched text and appends it on next action
50099 more: function () {
50100 this._more = true;
50101 return this;
50102 },
50103 // 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.
50104 reject: function () {
50105 if (this.options.backtrack_lexer) {
50106 this._backtrack = true;
50107 } else {
50108 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(), {
50109 text: "",
50110 token: null,
50111 line: this.yylineno
50112 });
50113 }
50114
50115 return this;
50116 },
50117 // retain first n characters of the match
50118 less: function (n) {
50119 this.unput(this.match.slice(n));
50120 },
50121 // displays already matched input, i.e. for error messages
50122 pastInput: function () {
50123 var past = this.matched.substr(0, this.matched.length - this.match.length);
50124 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
50125 },
50126 // displays upcoming input, i.e. for error messages
50127 upcomingInput: function () {
50128 var next = this.match;
50129
50130 if (next.length < 20) {
50131 next += this._input.substr(0, 20 - next.length);
50132 }
50133
50134 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
50135 },
50136 // displays the character position where the lexing error occurred, i.e. for error messages
50137 showPosition: function () {
50138 var pre = this.pastInput();
50139 var c = new Array(pre.length + 1).join("-");
50140 return pre + this.upcomingInput() + "\n" + c + "^";
50141 },
50142 // test the lexed token: return FALSE when not a match, otherwise return token
50143 test_match: function (match, indexed_rule) {
50144 var token, lines, backup;
50145
50146 if (this.options.backtrack_lexer) {
50147 // save context
50148 backup = {
50149 yylineno: this.yylineno,
50150 yylloc: {
50151 first_line: this.yylloc.first_line,
50152 last_line: this.last_line,
50153 first_column: this.yylloc.first_column,
50154 last_column: this.yylloc.last_column
50155 },
50156 yytext: this.yytext,
50157 match: this.match,
50158 matches: this.matches,
50159 matched: this.matched,
50160 yyleng: this.yyleng,
50161 offset: this.offset,
50162 _more: this._more,
50163 _input: this._input,
50164 yy: this.yy,
50165 conditionStack: this.conditionStack.slice(0),
50166 done: this.done
50167 };
50168
50169 if (this.options.ranges) {
50170 backup.yylloc.range = this.yylloc.range.slice(0);
50171 }
50172 }
50173
50174 lines = match[0].match(/(?:\r\n?|\n).*/g);
50175
50176 if (lines) {
50177 this.yylineno += lines.length;
50178 }
50179
50180 this.yylloc = {
50181 first_line: this.yylloc.last_line,
50182 last_line: this.yylineno + 1,
50183 first_column: this.yylloc.last_column,
50184 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
50185 };
50186 this.yytext += match[0];
50187 this.match += match[0];
50188 this.matches = match;
50189 this.yyleng = this.yytext.length;
50190
50191 if (this.options.ranges) {
50192 this.yylloc.range = [this.offset, this.offset += this.yyleng];
50193 }
50194
50195 this._more = false;
50196 this._backtrack = false;
50197 this._input = this._input.slice(match[0].length);
50198 this.matched += match[0];
50199 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
50200
50201 if (this.done && this._input) {
50202 this.done = false;
50203 }
50204
50205 if (token) {
50206 return token;
50207 } else if (this._backtrack) {
50208 // recover context
50209 for (var k in backup) {
50210 this[k] = backup[k];
50211 }
50212
50213 return false; // rule action called reject() implying the next rule should be tested instead.
50214 }
50215
50216 return false;
50217 },
50218 // return next match in input
50219 next: function () {
50220 if (this.done) {
50221 return this.EOF;
50222 }
50223
50224 if (!this._input) {
50225 this.done = true;
50226 }
50227
50228 var token, match, tempMatch, index;
50229
50230 if (!this._more) {
50231 this.yytext = '';
50232 this.match = '';
50233 }
50234
50235 var rules = this._currentRules();
50236
50237 for (var i = 0; i < rules.length; i++) {
50238 tempMatch = this._input.match(this.rules[rules[i]]);
50239
50240 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
50241 match = tempMatch;
50242 index = i;
50243
50244 if (this.options.backtrack_lexer) {
50245 token = this.test_match(tempMatch, rules[i]);
50246
50247 if (token !== false) {
50248 return token;
50249 } else if (this._backtrack) {
50250 match = false;
50251 continue; // rule action called reject() implying a rule MISmatch.
50252 } else {
50253 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
50254 return false;
50255 }
50256 } else if (!this.options.flex) {
50257 break;
50258 }
50259 }
50260 }
50261
50262 if (match) {
50263 token = this.test_match(match, rules[index]);
50264
50265 if (token !== false) {
50266 return token;
50267 } // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
50268
50269
50270 return false;
50271 }
50272
50273 if (this._input === "") {
50274 return this.EOF;
50275 } else {
50276 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
50277 text: "",
50278 token: null,
50279 line: this.yylineno
50280 });
50281 }
50282 },
50283 // return next match that has a token
50284 lex: function lex() {
50285 var r = this.next();
50286
50287 if (r) {
50288 return r;
50289 } else {
50290 return this.lex();
50291 }
50292 },
50293 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
50294 begin: function begin(condition) {
50295 this.conditionStack.push(condition);
50296 },
50297 // pop the previously active lexer condition state off the condition stack
50298 popState: function popState() {
50299 var n = this.conditionStack.length - 1;
50300
50301 if (n > 0) {
50302 return this.conditionStack.pop();
50303 } else {
50304 return this.conditionStack[0];
50305 }
50306 },
50307 // produce the lexer rule set which is active for the currently active lexer condition state
50308 _currentRules: function _currentRules() {
50309 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
50310 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
50311 } else {
50312 return this.conditions["INITIAL"].rules;
50313 }
50314 },
50315 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
50316 topState: function topState(n) {
50317 n = this.conditionStack.length - 1 - Math.abs(n || 0);
50318
50319 if (n >= 0) {
50320 return this.conditionStack[n];
50321 } else {
50322 return "INITIAL";
50323 }
50324 },
50325 // alias for begin(condition)
50326 pushState: function pushState(condition) {
50327 this.begin(condition);
50328 },
50329 // return the number of states currently on the stack
50330 stateStackSize: function stateStackSize() {
50331 return this.conditionStack.length;
50332 },
50333 options: {},
50334 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
50335 var YYSTATE = YY_START;
50336
50337 switch ($avoiding_name_collisions) {
50338 case 0:
50339 /* do nothing */
50340 break;
50341
50342 case 1:
50343 return 6;
50344 break;
50345
50346 case 2:
50347 /* skip whitespace */
50348 break;
50349
50350 case 3:
50351 return 5;
50352 break;
50353
50354 case 4:
50355 this.begin("struct");
50356 /*console.log('Starting struct');*/
50357
50358 return 17;
50359 break;
50360
50361 case 5:
50362 /*console.log('Ending struct');*/
50363 this.popState();
50364 return 19;
50365 break;
50366
50367 case 6:
50368 /* nothing */
50369 break;
50370
50371 case 7:
50372 /*console.log('lex-member: ' + yy_.yytext);*/
50373 return "MEMBER";
50374 break;
50375
50376 case 8:
50377 return 16;
50378 break;
50379
50380 case 9:
50381 this.begin("string");
50382 break;
50383
50384 case 10:
50385 this.popState();
50386 break;
50387
50388 case 11:
50389 return "STR";
50390 break;
50391
50392 case 12:
50393 return 27;
50394 break;
50395
50396 case 13:
50397 return 27;
50398 break;
50399
50400 case 14:
50401 return 29;
50402 break;
50403
50404 case 15:
50405 return 29;
50406 break;
50407
50408 case 16:
50409 return 28;
50410 break;
50411
50412 case 17:
50413 return 26;
50414 break;
50415
50416 case 18:
50417 return 30;
50418 break;
50419
50420 case 19:
50421 return 31;
50422 break;
50423
50424 case 20:
50425 return 13;
50426 break;
50427
50428 case 21:
50429 return 43;
50430 break;
50431
50432 case 22:
50433 return 'DOT';
50434 break;
50435
50436 case 23:
50437 return 'PLUS';
50438 break;
50439
50440 case 24:
50441 return 40;
50442 break;
50443
50444 case 25:
50445 return 'EQUALS';
50446 break;
50447
50448 case 26:
50449 return 'EQUALS';
50450 break;
50451
50452 case 27:
50453 return 47;
50454 break;
50455
50456 case 28:
50457 return 'PUNCTUATION';
50458 break;
50459
50460 case 29:
50461 return 46;
50462 break;
50463
50464 case 30:
50465 return 45;
50466 break;
50467
50468 case 31:
50469 return 42;
50470 break;
50471
50472 case 32:
50473 return 8;
50474 break;
50475 }
50476 },
50477 rules: [/^(?:%%[^\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)/, /^(?:$)/],
50478 conditions: {
50479 "string": {
50480 "rules": [10, 11],
50481 "inclusive": false
50482 },
50483 "struct": {
50484 "rules": [5, 6, 7],
50485 "inclusive": false
50486 },
50487 "INITIAL": {
50488 "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],
50489 "inclusive": true
50490 }
50491 }
50492 };
50493 return lexer;
50494 }();
50495
50496 parser.lexer = lexer;
50497
50498 function Parser() {
50499 this.yy = {};
50500 }
50501
50502 Parser.prototype = parser;
50503 parser.Parser = Parser;
50504 return new Parser();
50505}();
50506
50507if (true) {
50508 exports.parser = parser;
50509 exports.Parser = parser.Parser;
50510
50511 exports.parse = function () {
50512 return parser.parse.apply(parser, arguments);
50513 };
50514
50515 exports.main = function commonjsMain(args) {
50516 if (!args[1]) {
50517 console.log('Usage: ' + args[0] + ' FILE');
50518 process.exit(1);
50519 }
50520
50521 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");
50522
50523 return exports.parser.parse(source);
50524 };
50525
50526 if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
50527 exports.main(process.argv.slice(1));
50528 }
50529}
50530/* 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)))
50531
50532/***/ }),
50533
50534/***/ "./src/diagrams/flowchart/flowDb.js":
50535/*!******************************************!*\
50536 !*** ./src/diagrams/flowchart/flowDb.js ***!
50537 \******************************************/
50538/*! exports provided: addVertex, addLink, updateLinkInterpolate, updateLink, addClass, setDirection, setClass, setLink, getTooltip, setClickEvent, bindFunctions, getDirection, getVertices, getEdges, getClasses, clear, defaultStyle, addSubGraph, getDepthFirstPos, indexNodes, getSubGraphs, default */
50539/***/ (function(module, __webpack_exports__, __webpack_require__) {
50540
50541"use strict";
50542__webpack_require__.r(__webpack_exports__);
50543/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertex", function() { return addVertex; });
50544/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addLink", function() { return addLink; });
50545/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLinkInterpolate", function() { return updateLinkInterpolate; });
50546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLink", function() { return updateLink; });
50547/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; });
50548/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDirection", function() { return setDirection; });
50549/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClass", function() { return setClass; });
50550/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
50551/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTooltip", function() { return getTooltip; });
50552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
50553/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
50554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; });
50555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVertices", function() { return getVertices; });
50556/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEdges", function() { return getEdges; });
50557/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
50558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
50559/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultStyle", function() { return defaultStyle; });
50560/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSubGraph", function() { return addSubGraph; });
50561/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDepthFirstPos", function() { return getDepthFirstPos; });
50562/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "indexNodes", function() { return indexNodes; });
50563/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSubGraphs", function() { return getSubGraphs; });
50564/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
50565/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js");
50566/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__);
50567/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
50568/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
50569/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
50570
50571
50572
50573
50574
50575const config = Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])();
50576let vertices = {};
50577let edges = [];
50578let classes = [];
50579let subGraphs = [];
50580let subGraphLookup = {};
50581let tooltips = {};
50582let subCount = 0;
50583let direction; // Functions to be run after graph rendering
50584
50585let funs = [];
50586
50587const sanitize = text => {
50588 let txt = text;
50589
50590 if (config.securityLevel === 'strict') {
50591 txt = txt.replace(/<br>/g, '#br#');
50592 txt = txt.replace(/<br\S*?\/>/g, '#br#');
50593 txt = txt.replace(/</g, '&lt;').replace(/>/g, '&gt;');
50594 txt = txt.replace(/=/g, '&equals;');
50595 txt = txt.replace(/#br#/g, '<br/>');
50596 }
50597
50598 return txt;
50599};
50600/**
50601 * Function called by parser when a node definition has been found
50602 * @param id
50603 * @param text
50604 * @param type
50605 * @param style
50606 * @param classes
50607 */
50608
50609
50610const addVertex = function (id, text, type, style, classes) {
50611 let txt;
50612
50613 if (typeof id === 'undefined') {
50614 return;
50615 }
50616
50617 if (id.trim().length === 0) {
50618 return;
50619 }
50620
50621 if (typeof vertices[id] === 'undefined') {
50622 vertices[id] = {
50623 id: id,
50624 styles: [],
50625 classes: []
50626 };
50627 }
50628
50629 if (typeof text !== 'undefined') {
50630 txt = sanitize(text.trim()); // strip quotes if string starts and exnds with a quote
50631
50632 if (txt[0] === '"' && txt[txt.length - 1] === '"') {
50633 txt = txt.substring(1, txt.length - 1);
50634 }
50635
50636 vertices[id].text = txt;
50637 }
50638
50639 if (typeof type !== 'undefined') {
50640 vertices[id].type = type;
50641 }
50642
50643 if (typeof style !== 'undefined') {
50644 if (style !== null) {
50645 style.forEach(function (s) {
50646 vertices[id].styles.push(s);
50647 });
50648 }
50649 }
50650
50651 if (typeof classes !== 'undefined') {
50652 if (classes !== null) {
50653 classes.forEach(function (s) {
50654 vertices[id].classes.push(s);
50655 });
50656 }
50657 }
50658};
50659/**
50660 * Function called by parser when a link/edge definition has been found
50661 * @param start
50662 * @param end
50663 * @param type
50664 * @param linktext
50665 */
50666
50667const addLink = function (start, end, type, linktext) {
50668 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].info('Got edge...', start, end);
50669 const edge = {
50670 start: start,
50671 end: end,
50672 type: undefined,
50673 text: ''
50674 };
50675 linktext = type.text;
50676
50677 if (typeof linktext !== 'undefined') {
50678 edge.text = sanitize(linktext.trim()); // strip quotes if string starts and exnds with a quote
50679
50680 if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
50681 edge.text = edge.text.substring(1, edge.text.length - 1);
50682 }
50683 }
50684
50685 if (typeof type !== 'undefined') {
50686 edge.type = type.type;
50687 edge.stroke = type.stroke;
50688 }
50689
50690 edges.push(edge);
50691};
50692/**
50693 * Updates a link's line interpolation algorithm
50694 * @param pos
50695 * @param interpolate
50696 */
50697
50698const updateLinkInterpolate = function (positions, interp) {
50699 positions.forEach(function (pos) {
50700 if (pos === 'default') {
50701 edges.defaultInterpolate = interp;
50702 } else {
50703 edges[pos].interpolate = interp;
50704 }
50705 });
50706};
50707/**
50708 * Updates a link with a style
50709 * @param pos
50710 * @param style
50711 */
50712
50713const updateLink = function (positions, style) {
50714 positions.forEach(function (pos) {
50715 if (pos === 'default') {
50716 edges.defaultStyle = style;
50717 } else {
50718 if (_utils__WEBPACK_IMPORTED_MODULE_3__["default"].isSubstringInArray('fill', style) === -1) {
50719 style.push('fill:none');
50720 }
50721
50722 edges[pos].style = style;
50723 }
50724 });
50725};
50726const addClass = function (id, style) {
50727 if (typeof classes[id] === 'undefined') {
50728 classes[id] = {
50729 id: id,
50730 styles: []
50731 };
50732 }
50733
50734 if (typeof style !== 'undefined') {
50735 if (style !== null) {
50736 style.forEach(function (s) {
50737 classes[id].styles.push(s);
50738 });
50739 }
50740 }
50741};
50742/**
50743 * Called by parser when a graph definition is found, stores the direction of the chart.
50744 * @param dir
50745 */
50746
50747const setDirection = function (dir) {
50748 direction = dir;
50749};
50750/**
50751 * Called by parser when a special node is found, e.g. a clickable element.
50752 * @param ids Comma separated list of ids
50753 * @param className Class to add
50754 */
50755
50756const setClass = function (ids, className) {
50757 ids.split(',').forEach(function (id) {
50758 if (typeof vertices[id] !== 'undefined') {
50759 vertices[id].classes.push(className);
50760 }
50761
50762 if (typeof subGraphLookup[id] !== 'undefined') {
50763 subGraphLookup[id].classes.push(className);
50764 }
50765 });
50766};
50767
50768const setTooltip = function (ids, tooltip) {
50769 ids.split(',').forEach(function (id) {
50770 if (typeof tooltip !== 'undefined') {
50771 tooltips[id] = tooltip;
50772 }
50773 });
50774};
50775
50776const setClickFun = function (id, functionName) {
50777 if (config.securityLevel === 'strict') {
50778 return;
50779 }
50780
50781 if (typeof functionName === 'undefined') {
50782 return;
50783 }
50784
50785 if (typeof vertices[id] !== 'undefined') {
50786 funs.push(function (element) {
50787 const elem = document.querySelector(`[id="${id}"]`);
50788
50789 if (elem !== null) {
50790 elem.addEventListener('click', function () {
50791 window[functionName](id);
50792 }, false);
50793 }
50794 });
50795 }
50796};
50797/**
50798 * Called by parser when a link is found. Adds the URL to the vertex data.
50799 * @param ids Comma separated list of ids
50800 * @param linkStr URL to create a link for
50801 * @param tooltip Tooltip for the clickable element
50802 */
50803
50804
50805const setLink = function (ids, linkStr, tooltip) {
50806 ids.split(',').forEach(function (id) {
50807 if (typeof vertices[id] !== 'undefined') {
50808 if (config.securityLevel === 'strict') {
50809 vertices[id].link = Object(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__["sanitizeUrl"])(linkStr); // .replace(/javascript:.*/g, '')
50810 } else {
50811 vertices[id].link = linkStr;
50812 }
50813 }
50814 });
50815 setTooltip(ids, tooltip);
50816 setClass(ids, 'clickable');
50817};
50818const getTooltip = function (id) {
50819 return tooltips[id];
50820};
50821/**
50822 * Called by parser when a click definition is found. Registers an event handler.
50823 * @param ids Comma separated list of ids
50824 * @param functionName Function to be called on click
50825 * @param tooltip Tooltip for the clickable element
50826 */
50827
50828const setClickEvent = function (ids, functionName, tooltip) {
50829 ids.split(',').forEach(function (id) {
50830 setClickFun(id, functionName);
50831 });
50832 setTooltip(ids, tooltip);
50833 setClass(ids, 'clickable');
50834};
50835const bindFunctions = function (element) {
50836 funs.forEach(function (fun) {
50837 fun(element);
50838 });
50839};
50840const getDirection = function () {
50841 return direction;
50842};
50843/**
50844 * Retrieval function for fetching the found nodes after parsing has completed.
50845 * @returns {{}|*|vertices}
50846 */
50847
50848const getVertices = function () {
50849 return vertices;
50850};
50851/**
50852 * Retrieval function for fetching the found links after parsing has completed.
50853 * @returns {{}|*|edges}
50854 */
50855
50856const getEdges = function () {
50857 return edges;
50858};
50859/**
50860 * Retrieval function for fetching the found class definitions after parsing has completed.
50861 * @returns {{}|*|classes}
50862 */
50863
50864const getClasses = function () {
50865 return classes;
50866};
50867
50868const setupToolTips = function (element) {
50869 let tooltipElem = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('.mermaidTooltip');
50870
50871 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
50872 tooltipElem = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
50873 }
50874
50875 const svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"](element).select('svg');
50876 const nodes = svg.selectAll('g.node');
50877 nodes.on('mouseover', function () {
50878 const el = d3__WEBPACK_IMPORTED_MODULE_0__["select"](this);
50879 const title = el.attr('title'); // Dont try to draw a tooltip if no data is provided
50880
50881 if (title === null) {
50882 return;
50883 }
50884
50885 const rect = this.getBoundingClientRect();
50886 tooltipElem.transition().duration(200).style('opacity', '.9');
50887 tooltipElem.html(el.attr('title')).style('left', rect.left + (rect.right - rect.left) / 2 + 'px').style('top', rect.top - 14 + document.body.scrollTop + 'px');
50888 el.classed('hover', true);
50889 }).on('mouseout', function () {
50890 tooltipElem.transition().duration(500).style('opacity', 0);
50891 const el = d3__WEBPACK_IMPORTED_MODULE_0__["select"](this);
50892 el.classed('hover', false);
50893 });
50894};
50895
50896funs.push(setupToolTips);
50897/**
50898 * Clears the internal graph db so that a new graph can be parsed.
50899 */
50900
50901const clear = function () {
50902 vertices = {};
50903 classes = {};
50904 edges = [];
50905 funs = [];
50906 funs.push(setupToolTips);
50907 subGraphs = [];
50908 subGraphLookup = {};
50909 subCount = 0;
50910 tooltips = [];
50911};
50912/**
50913 *
50914 * @returns {string}
50915 */
50916
50917const defaultStyle = function () {
50918 return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;';
50919};
50920/**
50921 * Clears the internal graph db so that a new graph can be parsed.
50922 */
50923
50924const addSubGraph = function (id, list, title) {
50925 function uniq(a) {
50926 const prims = {
50927 'boolean': {},
50928 'number': {},
50929 'string': {}
50930 };
50931 const objs = [];
50932 return a.filter(function (item) {
50933 const type = typeof item;
50934
50935 if (item.trim() === '') {
50936 return false;
50937 }
50938
50939 if (type in prims) {
50940 return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;
50941 } else {
50942 return objs.indexOf(item) >= 0 ? false : objs.push(item);
50943 }
50944 });
50945 }
50946
50947 let nodeList = [];
50948 nodeList = uniq(nodeList.concat.apply(nodeList, list));
50949 id = id || 'subGraph' + subCount;
50950 title = title || '';
50951 title = sanitize(title);
50952 subCount = subCount + 1;
50953 const subGraph = {
50954 id: id,
50955 nodes: nodeList,
50956 title: title.trim(),
50957 classes: []
50958 };
50959 subGraphs.push(subGraph);
50960 subGraphLookup[id] = subGraph;
50961 return id;
50962};
50963
50964const getPosForId = function (id) {
50965 for (let i = 0; i < subGraphs.length; i++) {
50966 if (subGraphs[i].id === id) {
50967 return i;
50968 }
50969 }
50970
50971 return -1;
50972};
50973
50974let secCount = -1;
50975const posCrossRef = [];
50976
50977const indexNodes2 = function (id, pos) {
50978 const nodes = subGraphs[pos].nodes;
50979 secCount = secCount + 1;
50980
50981 if (secCount > 2000) {
50982 return;
50983 }
50984
50985 posCrossRef[secCount] = pos; // Check if match
50986
50987 if (subGraphs[pos].id === id) {
50988 return {
50989 result: true,
50990 count: 0
50991 };
50992 }
50993
50994 let count = 0;
50995 let posCount = 1;
50996
50997 while (count < nodes.length) {
50998 const childPos = getPosForId(nodes[count]); // Ignore regular nodes (pos will be -1)
50999
51000 if (childPos >= 0) {
51001 const res = indexNodes2(id, childPos);
51002
51003 if (res.result) {
51004 return {
51005 result: true,
51006 count: posCount + res.count
51007 };
51008 } else {
51009 posCount = posCount + res.count;
51010 }
51011 }
51012
51013 count = count + 1;
51014 }
51015
51016 return {
51017 result: false,
51018 count: posCount
51019 };
51020};
51021
51022const getDepthFirstPos = function (pos) {
51023 return posCrossRef[pos];
51024};
51025const indexNodes = function () {
51026 secCount = -1;
51027
51028 if (subGraphs.length > 0) {
51029 indexNodes2('none', subGraphs.length - 1, 0);
51030 }
51031};
51032const getSubGraphs = function () {
51033 return subGraphs;
51034};
51035/* harmony default export */ __webpack_exports__["default"] = ({
51036 addVertex,
51037 addLink,
51038 updateLinkInterpolate,
51039 updateLink,
51040 addClass,
51041 setDirection,
51042 setClass,
51043 getTooltip,
51044 setClickEvent,
51045 setLink,
51046 bindFunctions,
51047 getDirection,
51048 getVertices,
51049 getEdges,
51050 getClasses,
51051 clear,
51052 defaultStyle,
51053 addSubGraph,
51054 getDepthFirstPos,
51055 indexNodes,
51056 getSubGraphs
51057});
51058
51059/***/ }),
51060
51061/***/ "./src/diagrams/flowchart/flowRenderer.js":
51062/*!************************************************!*\
51063 !*** ./src/diagrams/flowchart/flowRenderer.js ***!
51064 \************************************************/
51065/*! exports provided: setConf, addVertices, addEdges, getClasses, draw, default */
51066/***/ (function(module, __webpack_exports__, __webpack_require__) {
51067
51068"use strict";
51069__webpack_require__.r(__webpack_exports__);
51070/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
51071/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertices", function() { return addVertices; });
51072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEdges", function() { return addEdges; });
51073/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
51074/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
51075/* harmony import */ var graphlibrary__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlibrary */ "./node_modules/graphlibrary/index.js");
51076/* harmony import */ var graphlibrary__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlibrary__WEBPACK_IMPORTED_MODULE_0__);
51077/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
51078/* harmony import */ var _flowDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flowDb */ "./src/diagrams/flowchart/flowDb.js");
51079/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/flow */ "./src/diagrams/flowchart/parser/flow.js");
51080/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_flow__WEBPACK_IMPORTED_MODULE_3__);
51081/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
51082/* 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");
51083/* harmony import */ var dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5__);
51084/* 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");
51085/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
51086/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
51087
51088
51089
51090
51091
51092
51093
51094
51095
51096const conf = {};
51097const setConf = function (cnf) {
51098 const keys = Object.keys(cnf);
51099
51100 for (let i = 0; i < keys.length; i++) {
51101 conf[keys[i]] = cnf[keys[i]];
51102 }
51103};
51104/**
51105 * Function that adds the vertices found in the graph definition to the graph to be rendered.
51106 * @param vert Object containing the vertices.
51107 * @param g The graph that is to be drawn.
51108 */
51109
51110const addVertices = function (vert, g, svgId) {
51111 const svg = d3__WEBPACK_IMPORTED_MODULE_1__["select"](`[id="${svgId}"]`);
51112 const keys = Object.keys(vert);
51113
51114 const styleFromStyleArr = function (styleStr, arr) {
51115 // Create a compound style definition from the style definitions found for the node in the graph definition
51116 for (let i = 0; i < arr.length; i++) {
51117 if (typeof arr[i] !== 'undefined') {
51118 styleStr = styleStr + arr[i] + ';';
51119 }
51120 }
51121
51122 return styleStr;
51123 }; // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
51124
51125
51126 keys.forEach(function (id) {
51127 const vertex = vert[id];
51128 /**
51129 * Variable for storing the classes for the vertex
51130 * @type {string}
51131 */
51132
51133 let classStr = '';
51134
51135 if (vertex.classes.length > 0) {
51136 classStr = vertex.classes.join(' ');
51137 }
51138 /**
51139 * Variable for storing the extracted style for the vertex
51140 * @type {string}
51141 */
51142
51143
51144 let style = ''; // Create a compound style definition from the style definitions found for the node in the graph definition
51145
51146 style = styleFromStyleArr(style, vertex.styles); // Use vertex id as text in the box if no text is provided by the graph definition
51147
51148 let vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
51149
51150 let vertexNode;
51151
51152 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
51153 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
51154 const node = {
51155 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, s => `<i class='${s.replace(':', ' ')}'></i>`)
51156 };
51157 vertexNode = Object(dagre_d3_renderer_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6__["default"])(svg, node).node();
51158 vertexNode.parentNode.removeChild(vertexNode);
51159 } else {
51160 const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
51161 const rows = vertexText.split(/<br[/]{0,1}>/);
51162
51163 for (let j = 0; j < rows.length; j++) {
51164 const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
51165 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
51166 tspan.setAttribute('dy', '1em');
51167 tspan.setAttribute('x', '1');
51168 tspan.textContent = rows[j];
51169 svgLabel.appendChild(tspan);
51170 }
51171
51172 vertexNode = svgLabel;
51173 } // If the node has a link, we wrap it in a SVG link
51174
51175
51176 if (vertex.link) {
51177 const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
51178 link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
51179 link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
51180 link.appendChild(vertexNode);
51181 vertexNode = link;
51182 }
51183
51184 let radious = 0;
51185 let _shape = ''; // Set the shape based parameters
51186
51187 switch (vertex.type) {
51188 case 'round':
51189 radious = 5;
51190 _shape = 'rect';
51191 break;
51192
51193 case 'square':
51194 _shape = 'rect';
51195 break;
51196
51197 case 'diamond':
51198 _shape = 'question';
51199 break;
51200
51201 case 'odd':
51202 _shape = 'rect_left_inv_arrow';
51203 break;
51204
51205 case 'lean_right':
51206 _shape = 'lean_right';
51207 break;
51208
51209 case 'lean_left':
51210 _shape = 'lean_left';
51211 break;
51212
51213 case 'trapezoid':
51214 _shape = 'trapezoid';
51215 break;
51216
51217 case 'inv_trapezoid':
51218 _shape = 'inv_trapezoid';
51219 break;
51220
51221 case 'odd_right':
51222 _shape = 'rect_left_inv_arrow';
51223 break;
51224
51225 case 'circle':
51226 _shape = 'circle';
51227 break;
51228
51229 case 'ellipse':
51230 _shape = 'ellipse';
51231 break;
51232
51233 case 'group':
51234 _shape = 'rect';
51235 break;
51236
51237 default:
51238 _shape = 'rect';
51239 } // Add the node
51240
51241
51242 g.setNode(vertex.id, {
51243 labelType: 'svg',
51244 shape: _shape,
51245 label: vertexNode,
51246 rx: radious,
51247 ry: radious,
51248 'class': classStr,
51249 style: style,
51250 id: vertex.id
51251 });
51252 });
51253};
51254/**
51255 * Add edges to graph based on parsed graph defninition
51256 * @param {Object} edges The edges to add to the graph
51257 * @param {Object} g The graph object
51258 */
51259
51260const addEdges = function (edges, g) {
51261 let cnt = 0;
51262 let defaultStyle;
51263
51264 if (typeof edges.defaultStyle !== 'undefined') {
51265 defaultStyle = edges.defaultStyle.toString().replace(/,/g, ';');
51266 }
51267
51268 edges.forEach(function (edge) {
51269 cnt++;
51270 const edgeData = {}; // Set link type for rendering
51271
51272 if (edge.type === 'arrow_open') {
51273 edgeData.arrowhead = 'none';
51274 } else {
51275 edgeData.arrowhead = 'normal';
51276 }
51277
51278 let style = '';
51279
51280 if (typeof edge.style !== 'undefined') {
51281 edge.style.forEach(function (s) {
51282 style = style + s + ';';
51283 });
51284 } else {
51285 switch (edge.stroke) {
51286 case 'normal':
51287 style = 'fill:none';
51288
51289 if (typeof defaultStyle !== 'undefined') {
51290 style = defaultStyle;
51291 }
51292
51293 break;
51294
51295 case 'dotted':
51296 style = 'stroke: #333; fill:none;stroke-width:2px;stroke-dasharray:3;';
51297 break;
51298
51299 case 'thick':
51300 style = 'stroke: #333; stroke-width: 3.5px;fill:none';
51301 break;
51302 }
51303 }
51304
51305 edgeData.style = style;
51306
51307 if (typeof edge.interpolate !== 'undefined') {
51308 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_8__["interpolateToCurve"])(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
51309 } else if (typeof edges.defaultInterpolate !== 'undefined') {
51310 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_8__["interpolateToCurve"])(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
51311 } else {
51312 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_8__["interpolateToCurve"])(conf.curve, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
51313 }
51314
51315 if (typeof edge.text === 'undefined') {
51316 if (typeof edge.style !== 'undefined') {
51317 edgeData.arrowheadStyle = 'fill: #333';
51318 }
51319 } else {
51320 edgeData.arrowheadStyle = 'fill: #333';
51321
51322 if (typeof edge.style === 'undefined') {
51323 edgeData.labelpos = 'c';
51324
51325 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
51326 edgeData.labelType = 'html';
51327 edgeData.label = '<span class="edgeLabel">' + edge.text + '</span>';
51328 } else {
51329 edgeData.labelType = 'text';
51330 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
51331 edgeData.label = edge.text.replace(/<br>/g, '\n');
51332 }
51333 } else {
51334 edgeData.label = edge.text.replace(/<br>/g, '\n');
51335 }
51336 } // Add the edge to the graph
51337
51338
51339 g.setEdge(edge.start, edge.end, edgeData, cnt);
51340 });
51341};
51342/**
51343 * Returns the all the styles from classDef statements in the graph definition.
51344 * @returns {object} classDef styles
51345 */
51346
51347const getClasses = function (text) {
51348 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
51349 const parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
51350 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
51351
51352 parser.parse(text);
51353 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getClasses();
51354};
51355/**
51356 * Draws a flowchart in the tag with id: id based on the graph definition in text.
51357 * @param text
51358 * @param id
51359 */
51360
51361const draw = function (text, id) {
51362 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].debug('Drawing flowchart');
51363 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
51364 const parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
51365 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
51366
51367 try {
51368 parser.parse(text);
51369 } catch (err) {
51370 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].debug('Parsing failed');
51371 } // Fetch the default direction, use TD if none was found
51372
51373
51374 let dir = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
51375
51376 if (typeof dir === 'undefined') {
51377 dir = 'TD';
51378 } // Create the input mermaid.graph
51379
51380
51381 const g = new graphlibrary__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
51382 multigraph: true,
51383 compound: true
51384 }).setGraph({
51385 rankdir: dir,
51386 marginx: 20,
51387 marginy: 20
51388 }).setDefaultEdgeLabel(function () {
51389 return {};
51390 });
51391 let subG;
51392 const subGraphs = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getSubGraphs();
51393
51394 for (let i = subGraphs.length - 1; i >= 0; i--) {
51395 subG = subGraphs[i];
51396 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
51397 } // Fetch the verices/nodes and edges/links from the parsed graph definition
51398
51399
51400 const vert = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getVertices();
51401 const edges = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getEdges();
51402 let i = 0;
51403
51404 for (i = subGraphs.length - 1; i >= 0; i--) {
51405 subG = subGraphs[i];
51406 d3__WEBPACK_IMPORTED_MODULE_1__["selectAll"]('cluster').append('text');
51407
51408 for (let j = 0; j < subG.nodes.length; j++) {
51409 g.setParent(subG.nodes[j], subG.id);
51410 }
51411 }
51412
51413 addVertices(vert, g, id);
51414 addEdges(edges, g); // Create the renderer
51415
51416 const Render = dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.render;
51417 const render = new Render(); // Add custom shape for rhombus type of boc (decision)
51418
51419 render.shapes().question = function (parent, bbox, node) {
51420 const w = bbox.width;
51421 const h = bbox.height;
51422 const s = (w + h) * 0.9;
51423 const points = [{
51424 x: s / 2,
51425 y: 0
51426 }, {
51427 x: s,
51428 y: -s / 2
51429 }, {
51430 x: s / 2,
51431 y: -s
51432 }, {
51433 x: 0,
51434 y: -s / 2
51435 }];
51436 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51437 return d.x + ',' + d.y;
51438 }).join(' ')).attr('rx', 5).attr('ry', 5).attr('transform', 'translate(' + -s / 2 + ',' + s * 2 / 4 + ')');
51439
51440 node.intersect = function (point) {
51441 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51442 };
51443
51444 return shapeSvg;
51445 }; // Add custom shape for box with inverted arrow on left side
51446
51447
51448 render.shapes().rect_left_inv_arrow = function (parent, bbox, node) {
51449 const w = bbox.width;
51450 const h = bbox.height;
51451 const points = [{
51452 x: -h / 2,
51453 y: 0
51454 }, {
51455 x: w,
51456 y: 0
51457 }, {
51458 x: w,
51459 y: -h
51460 }, {
51461 x: -h / 2,
51462 y: -h
51463 }, {
51464 x: 0,
51465 y: -h / 2
51466 }];
51467 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51468 return d.x + ',' + d.y;
51469 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51470
51471 node.intersect = function (point) {
51472 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51473 };
51474
51475 return shapeSvg;
51476 }; // Add custom shape for box with inverted arrow on left side
51477
51478
51479 render.shapes().lean_right = function (parent, bbox, node) {
51480 const w = bbox.width;
51481 const h = bbox.height;
51482 const points = [{
51483 x: -2 * h / 6,
51484 y: 0
51485 }, {
51486 x: w - h / 6,
51487 y: 0
51488 }, {
51489 x: w + 2 * h / 6,
51490 y: -h
51491 }, {
51492 x: h / 6,
51493 y: -h
51494 }];
51495 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51496 return d.x + ',' + d.y;
51497 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51498
51499 node.intersect = function (point) {
51500 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51501 };
51502
51503 return shapeSvg;
51504 }; // Add custom shape for box with inverted arrow on left side
51505
51506
51507 render.shapes().lean_left = function (parent, bbox, node) {
51508 const w = bbox.width;
51509 const h = bbox.height;
51510 const points = [{
51511 x: 2 * h / 6,
51512 y: 0
51513 }, {
51514 x: w + h / 6,
51515 y: 0
51516 }, {
51517 x: w - 2 * h / 6,
51518 y: -h
51519 }, {
51520 x: -h / 6,
51521 y: -h
51522 }];
51523 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51524 return d.x + ',' + d.y;
51525 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51526
51527 node.intersect = function (point) {
51528 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51529 };
51530
51531 return shapeSvg;
51532 }; // Add custom shape for box with inverted arrow on left side
51533
51534
51535 render.shapes().trapezoid = function (parent, bbox, node) {
51536 const w = bbox.width;
51537 const h = bbox.height;
51538 const points = [{
51539 x: -2 * h / 6,
51540 y: 0
51541 }, {
51542 x: w + 2 * h / 6,
51543 y: 0
51544 }, {
51545 x: w - h / 6,
51546 y: -h
51547 }, {
51548 x: h / 6,
51549 y: -h
51550 }];
51551 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51552 return d.x + ',' + d.y;
51553 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51554
51555 node.intersect = function (point) {
51556 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51557 };
51558
51559 return shapeSvg;
51560 }; // Add custom shape for box with inverted arrow on left side
51561
51562
51563 render.shapes().inv_trapezoid = function (parent, bbox, node) {
51564 const w = bbox.width;
51565 const h = bbox.height;
51566 const points = [{
51567 x: h / 6,
51568 y: 0
51569 }, {
51570 x: w - h / 6,
51571 y: 0
51572 }, {
51573 x: w + 2 * h / 6,
51574 y: -h
51575 }, {
51576 x: -2 * h / 6,
51577 y: -h
51578 }];
51579 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51580 return d.x + ',' + d.y;
51581 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51582
51583 node.intersect = function (point) {
51584 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51585 };
51586
51587 return shapeSvg;
51588 }; // Add custom shape for box with inverted arrow on right side
51589
51590
51591 render.shapes().rect_right_inv_arrow = function (parent, bbox, node) {
51592 const w = bbox.width;
51593 const h = bbox.height;
51594 const points = [{
51595 x: 0,
51596 y: 0
51597 }, {
51598 x: w + h / 2,
51599 y: 0
51600 }, {
51601 x: w,
51602 y: -h / 2
51603 }, {
51604 x: w + h / 2,
51605 y: -h
51606 }, {
51607 x: 0,
51608 y: -h
51609 }];
51610 const shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51611 return d.x + ',' + d.y;
51612 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
51613
51614 node.intersect = function (point) {
51615 return dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.intersect.polygon(node, points, point);
51616 };
51617
51618 return shapeSvg;
51619 }; // Add our custom arrow - an empty arrowhead
51620
51621
51622 render.arrows().none = function normal(parent, id, edge, type) {
51623 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');
51624 const path = marker.append('path').attr('d', 'M 0 0 L 0 0 L 0 0 z');
51625 dagre_d3_renderer__WEBPACK_IMPORTED_MODULE_5___default.a.util.applyStyle(path, edge[type + 'Style']);
51626 }; // Override normal arrowhead defined in d3. Remove style & add class to allow css styling.
51627
51628
51629 render.arrows().normal = function normal(parent, id, edge, type) {
51630 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');
51631 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');
51632 }; // Set up an SVG group so that we can translate the final graph.
51633
51634
51635 const svg = d3__WEBPACK_IMPORTED_MODULE_1__["select"](`[id="${id}"]`); // Run the renderer. This is what draws the final graph.
51636
51637 const element = d3__WEBPACK_IMPORTED_MODULE_1__["select"]('#' + id + ' g');
51638 render(element, g);
51639 element.selectAll('g.node').attr('title', function () {
51640 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getTooltip(this.id);
51641 });
51642 const padding = 8;
51643 const width = g.maxX - g.minX + padding * 2;
51644 const height = g.maxY - g.minY + padding * 2;
51645 svg.attr('width', '100%');
51646 svg.attr('style', `max-width: ${width}px;`);
51647 svg.attr('viewBox', `0 0 ${width} ${height}`);
51648 svg.select('g').attr('transform', `translate(${padding - g.minX}, ${padding - g.minY})`); // Index nodes
51649
51650 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].indexNodes('subGraph' + i); // reposition labels
51651
51652 for (i = 0; i < subGraphs.length; i++) {
51653 subG = subGraphs[i];
51654
51655 if (subG.title !== 'undefined') {
51656 const clusterRects = document.querySelectorAll('#' + id + ' #' + subG.id + ' rect');
51657 const clusterEl = document.querySelectorAll('#' + id + ' #' + subG.id);
51658 const xPos = clusterRects[0].x.baseVal.value;
51659 const yPos = clusterRects[0].y.baseVal.value;
51660 const width = clusterRects[0].width.baseVal.value;
51661 const cluster = d3__WEBPACK_IMPORTED_MODULE_1__["select"](clusterEl[0]);
51662 const te = cluster.select('.label');
51663 te.attr('transform', `translate(${xPos + width / 2}, ${yPos + 14})`);
51664 te.attr('id', id + 'Text');
51665 }
51666 } // Add label rects for non html labels
51667
51668
51669 if (!Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
51670 const labels = document.querySelectorAll('#' + id + ' .edgeLabel .label');
51671
51672 for (let k = 0; k < labels.length; k++) {
51673 const label = labels[k]; // Get dimensions of label
51674
51675 const dim = label.getBBox();
51676 const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
51677 rect.setAttribute('rx', 0);
51678 rect.setAttribute('ry', 0);
51679 rect.setAttribute('width', dim.width);
51680 rect.setAttribute('height', dim.height);
51681 rect.setAttribute('style', 'fill:#e8e8e8;');
51682 label.insertBefore(rect, label.firstChild);
51683 }
51684 }
51685};
51686/* harmony default export */ __webpack_exports__["default"] = ({
51687 setConf,
51688 addVertices,
51689 addEdges,
51690 getClasses,
51691 draw
51692});
51693
51694/***/ }),
51695
51696/***/ "./src/diagrams/flowchart/parser/flow.js":
51697/*!***********************************************!*\
51698 !*** ./src/diagrams/flowchart/parser/flow.js ***!
51699 \***********************************************/
51700/*! no static exports found */
51701/***/ (function(module, exports, __webpack_require__) {
51702
51703/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
51704
51705/*
51706 Returns a Parser object of the following structure:
51707
51708 Parser: {
51709 yy: {}
51710 }
51711
51712 Parser.prototype: {
51713 yy: {},
51714 trace: function(),
51715 symbols_: {associative list: name ==> number},
51716 terminals_: {associative list: number ==> name},
51717 productions_: [...],
51718 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
51719 table: [...],
51720 defaultActions: {...},
51721 parseError: function(str, hash),
51722 parse: function(input),
51723
51724 lexer: {
51725 EOF: 1,
51726 parseError: function(str, hash),
51727 setInput: function(input),
51728 input: function(),
51729 unput: function(str),
51730 more: function(),
51731 less: function(n),
51732 pastInput: function(),
51733 upcomingInput: function(),
51734 showPosition: function(),
51735 test_match: function(regex_match_array, rule_index),
51736 next: function(),
51737 lex: function(),
51738 begin: function(condition),
51739 popState: function(),
51740 _currentRules: function(),
51741 topState: function(),
51742 pushState: function(condition),
51743
51744 options: {
51745 ranges: boolean (optional: true ==> token location info will include a .range[] member)
51746 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
51747 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)
51748 },
51749
51750 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
51751 rules: [...],
51752 conditions: {associative list: name ==> set},
51753 }
51754 }
51755
51756
51757 token location info (@$, _$, etc.): {
51758 first_line: n,
51759 last_line: n,
51760 first_column: n,
51761 last_column: n,
51762 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
51763 }
51764
51765
51766 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
51767 text: (matched text)
51768 token: (the produced terminal token, if any)
51769 line: (yylineno)
51770 }
51771 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
51772 loc: (yylloc)
51773 expected: (string describing the set of expected tokens)
51774 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
51775 }
51776*/
51777var parser = function () {
51778 var o = function (k, v, o, l) {
51779 for (o = o || {}, l = k.length; l--; o[k[l]] = v);
51780
51781 return o;
51782 },
51783 $V0 = [1, 4],
51784 $V1 = [1, 3],
51785 $V2 = [1, 5],
51786 $V3 = [1, 8, 9, 10, 11, 13, 18, 30, 51, 93, 94, 95, 96, 97, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121],
51787 $V4 = [2, 2],
51788 $V5 = [1, 12],
51789 $V6 = [1, 13],
51790 $V7 = [1, 14],
51791 $V8 = [1, 15],
51792 $V9 = [1, 31],
51793 $Va = [1, 33],
51794 $Vb = [1, 22],
51795 $Vc = [1, 34],
51796 $Vd = [1, 24],
51797 $Ve = [1, 25],
51798 $Vf = [1, 26],
51799 $Vg = [1, 27],
51800 $Vh = [1, 28],
51801 $Vi = [1, 38],
51802 $Vj = [1, 40],
51803 $Vk = [1, 35],
51804 $Vl = [1, 39],
51805 $Vm = [1, 45],
51806 $Vn = [1, 44],
51807 $Vo = [1, 36],
51808 $Vp = [1, 37],
51809 $Vq = [1, 41],
51810 $Vr = [1, 42],
51811 $Vs = [1, 43],
51812 $Vt = [1, 8, 9, 10, 11, 13, 18, 30, 35, 51, 93, 94, 95, 96, 97, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121],
51813 $Vu = [1, 53],
51814 $Vv = [1, 52],
51815 $Vw = [1, 54],
51816 $Vx = [8, 9, 11],
51817 $Vy = [8, 9, 11, 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],
51818 $Vz = [1, 111],
51819 $VA = [8, 9, 10, 11, 13, 15, 18, 32, 39, 41, 43, 45, 47, 51, 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, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121],
51820 $VB = [8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 30, 32, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 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, 93, 94, 95, 96, 97, 100, 106, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121],
51821 $VC = [1, 113],
51822 $VD = [1, 114],
51823 $VE = [8, 9, 10, 11, 13, 18, 30, 35, 51, 93, 94, 95, 96, 97, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121],
51824 $VF = [13, 18, 51, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121],
51825 $VG = [1, 138],
51826 $VH = [1, 146],
51827 $VI = [1, 147],
51828 $VJ = [1, 132],
51829 $VK = [1, 131],
51830 $VL = [1, 151],
51831 $VM = [1, 150],
51832 $VN = [1, 148],
51833 $VO = [1, 149],
51834 $VP = [1, 129],
51835 $VQ = [1, 139],
51836 $VR = [1, 134],
51837 $VS = [1, 133],
51838 $VT = [1, 141],
51839 $VU = [1, 142],
51840 $VV = [1, 143],
51841 $VW = [1, 144],
51842 $VX = [1, 145],
51843 $VY = [1, 136],
51844 $VZ = [1, 135],
51845 $V_ = [13, 18, 51, 54, 88, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121],
51846 $V$ = [10, 12, 13, 15, 16, 17, 18, 30, 34, 35, 40, 42, 44, 46, 48, 51, 55, 56, 58, 60, 62, 64, 66, 68, 70, 71, 72, 74, 76, 78, 88, 93, 94, 95, 96, 97, 100, 106, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121],
51847 $V01 = [10, 108],
51848 $V11 = [1, 242],
51849 $V21 = [1, 239],
51850 $V31 = [1, 246],
51851 $V41 = [1, 243],
51852 $V51 = [1, 247],
51853 $V61 = [1, 240],
51854 $V71 = [1, 237],
51855 $V81 = [1, 238],
51856 $V91 = [1, 241],
51857 $Va1 = [1, 244],
51858 $Vb1 = [1, 245],
51859 $Vc1 = [1, 272],
51860 $Vd1 = [8, 9, 11, 108],
51861 $Ve1 = [8, 9, 10, 11, 51, 93, 102, 106, 107, 108, 111, 112, 113, 114, 115];
51862
51863 var parser = {
51864 trace: function trace() {},
51865 yy: {},
51866 symbols_: {
51867 "error": 2,
51868 "mermaidDoc": 3,
51869 "graphConfig": 4,
51870 "document": 5,
51871 "line": 6,
51872 "statement": 7,
51873 "SEMI": 8,
51874 "NEWLINE": 9,
51875 "SPACE": 10,
51876 "EOF": 11,
51877 "GRAPH": 12,
51878 "DIR": 13,
51879 "FirstStmtSeperator": 14,
51880 "TAGEND": 15,
51881 "TAGSTART": 16,
51882 "UP": 17,
51883 "DOWN": 18,
51884 "ending": 19,
51885 "endToken": 20,
51886 "spaceList": 21,
51887 "spaceListNewline": 22,
51888 "verticeStatement": 23,
51889 "separator": 24,
51890 "styleStatement": 25,
51891 "linkStyleStatement": 26,
51892 "classDefStatement": 27,
51893 "classStatement": 28,
51894 "clickStatement": 29,
51895 "subgraph": 30,
51896 "alphaNum": 31,
51897 "SQS": 32,
51898 "text": 33,
51899 "SQE": 34,
51900 "end": 35,
51901 "STR": 36,
51902 "vertex": 37,
51903 "link": 38,
51904 "PS": 39,
51905 "PE": 40,
51906 "(-": 41,
51907 "-)": 42,
51908 "DIAMOND_START": 43,
51909 "DIAMOND_STOP": 44,
51910 "TRAPSTART": 45,
51911 "TRAPEND": 46,
51912 "INVTRAPSTART": 47,
51913 "INVTRAPEND": 48,
51914 "alphaNumStatement": 49,
51915 "alphaNumToken": 50,
51916 "MINUS": 51,
51917 "linkStatement": 52,
51918 "arrowText": 53,
51919 "TESTSTR": 54,
51920 "--": 55,
51921 "ARROW_POINT": 56,
51922 "START_DOUBLE_ARROW_POINT": 57,
51923 "ARROW_CIRCLE": 58,
51924 "START_DOUBLE_ARROW_CIRCLE": 59,
51925 "ARROW_CROSS": 60,
51926 "START_DOUBLE_ARROW_CROSS": 61,
51927 "ARROW_OPEN": 62,
51928 "-.": 63,
51929 "DOTTED_ARROW_POINT": 64,
51930 "START_DOUBLE_DOTTED_ARROW_POINT": 65,
51931 "DOTTED_ARROW_CIRCLE": 66,
51932 "START_DOUBLE_DOTTED_ARROW_CIRCLE": 67,
51933 "DOTTED_ARROW_CROSS": 68,
51934 "START_DOUBLE_DOTTED_ARROW_CROSS": 69,
51935 "DOTTED_ARROW_OPEN": 70,
51936 "==": 71,
51937 "THICK_ARROW_POINT": 72,
51938 "START_DOUBLE_THICK_ARROW_POINT": 73,
51939 "THICK_ARROW_CIRCLE": 74,
51940 "START_DOUBLE_THICK_ARROW_CIRCLE": 75,
51941 "THICK_ARROW_CROSS": 76,
51942 "START_DOUBLE_THICK_ARROW_CROSS": 77,
51943 "THICK_ARROW_OPEN": 78,
51944 "DOUBLE_ARROW_POINT": 79,
51945 "DOUBLE_ARROW_CIRCLE": 80,
51946 "DOUBLE_ARROW_CROSS": 81,
51947 "DOUBLE_DOTTED_ARROW_POINT": 82,
51948 "DOUBLE_DOTTED_ARROW_CIRCLE": 83,
51949 "DOUBLE_DOTTED_ARROW_CROSS": 84,
51950 "DOUBLE_THICK_ARROW_POINT": 85,
51951 "DOUBLE_THICK_ARROW_CIRCLE": 86,
51952 "DOUBLE_THICK_ARROW_CROSS": 87,
51953 "PIPE": 88,
51954 "textToken": 89,
51955 "commentText": 90,
51956 "commentToken": 91,
51957 "keywords": 92,
51958 "STYLE": 93,
51959 "LINKSTYLE": 94,
51960 "CLASSDEF": 95,
51961 "CLASS": 96,
51962 "CLICK": 97,
51963 "textNoTags": 98,
51964 "textNoTagsToken": 99,
51965 "DEFAULT": 100,
51966 "stylesOpt": 101,
51967 "HEX": 102,
51968 "numList": 103,
51969 "INTERPOLATE": 104,
51970 "commentStatement": 105,
51971 "PCT": 106,
51972 "NUM": 107,
51973 "COMMA": 108,
51974 "style": 109,
51975 "styleComponent": 110,
51976 "ALPHA": 111,
51977 "COLON": 112,
51978 "UNIT": 113,
51979 "BRKT": 114,
51980 "DOT": 115,
51981 "graphCodeTokens": 116,
51982 "PUNCTUATION": 117,
51983 "UNICODE_TEXT": 118,
51984 "PLUS": 119,
51985 "EQUALS": 120,
51986 "MULT": 121,
51987 "QUOTE": 122,
51988 "$accept": 0,
51989 "$end": 1
51990 },
51991 terminals_: {
51992 2: "error",
51993 8: "SEMI",
51994 9: "NEWLINE",
51995 10: "SPACE",
51996 11: "EOF",
51997 12: "GRAPH",
51998 13: "DIR",
51999 15: "TAGEND",
52000 16: "TAGSTART",
52001 17: "UP",
52002 18: "DOWN",
52003 30: "subgraph",
52004 32: "SQS",
52005 34: "SQE",
52006 35: "end",
52007 36: "STR",
52008 39: "PS",
52009 40: "PE",
52010 41: "(-",
52011 42: "-)",
52012 43: "DIAMOND_START",
52013 44: "DIAMOND_STOP",
52014 45: "TRAPSTART",
52015 46: "TRAPEND",
52016 47: "INVTRAPSTART",
52017 48: "INVTRAPEND",
52018 51: "MINUS",
52019 54: "TESTSTR",
52020 55: "--",
52021 56: "ARROW_POINT",
52022 57: "START_DOUBLE_ARROW_POINT",
52023 58: "ARROW_CIRCLE",
52024 59: "START_DOUBLE_ARROW_CIRCLE",
52025 60: "ARROW_CROSS",
52026 61: "START_DOUBLE_ARROW_CROSS",
52027 62: "ARROW_OPEN",
52028 63: "-.",
52029 64: "DOTTED_ARROW_POINT",
52030 65: "START_DOUBLE_DOTTED_ARROW_POINT",
52031 66: "DOTTED_ARROW_CIRCLE",
52032 67: "START_DOUBLE_DOTTED_ARROW_CIRCLE",
52033 68: "DOTTED_ARROW_CROSS",
52034 69: "START_DOUBLE_DOTTED_ARROW_CROSS",
52035 70: "DOTTED_ARROW_OPEN",
52036 71: "==",
52037 72: "THICK_ARROW_POINT",
52038 73: "START_DOUBLE_THICK_ARROW_POINT",
52039 74: "THICK_ARROW_CIRCLE",
52040 75: "START_DOUBLE_THICK_ARROW_CIRCLE",
52041 76: "THICK_ARROW_CROSS",
52042 77: "START_DOUBLE_THICK_ARROW_CROSS",
52043 78: "THICK_ARROW_OPEN",
52044 79: "DOUBLE_ARROW_POINT",
52045 80: "DOUBLE_ARROW_CIRCLE",
52046 81: "DOUBLE_ARROW_CROSS",
52047 82: "DOUBLE_DOTTED_ARROW_POINT",
52048 83: "DOUBLE_DOTTED_ARROW_CIRCLE",
52049 84: "DOUBLE_DOTTED_ARROW_CROSS",
52050 85: "DOUBLE_THICK_ARROW_POINT",
52051 86: "DOUBLE_THICK_ARROW_CIRCLE",
52052 87: "DOUBLE_THICK_ARROW_CROSS",
52053 88: "PIPE",
52054 93: "STYLE",
52055 94: "LINKSTYLE",
52056 95: "CLASSDEF",
52057 96: "CLASS",
52058 97: "CLICK",
52059 100: "DEFAULT",
52060 102: "HEX",
52061 104: "INTERPOLATE",
52062 106: "PCT",
52063 107: "NUM",
52064 108: "COMMA",
52065 111: "ALPHA",
52066 112: "COLON",
52067 113: "UNIT",
52068 114: "BRKT",
52069 115: "DOT",
52070 117: "PUNCTUATION",
52071 118: "UNICODE_TEXT",
52072 119: "PLUS",
52073 120: "EQUALS",
52074 121: "MULT",
52075 122: "QUOTE"
52076 },
52077 productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [19, 2], [19, 1], [20, 1], [20, 1], [20, 1], [14, 1], [14, 1], [14, 2], [22, 2], [22, 2], [22, 1], [22, 1], [21, 2], [21, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 9], [7, 6], [7, 6], [7, 4], [24, 1], [24, 1], [24, 1], [23, 3], [23, 1], [37, 4], [37, 5], [37, 6], [37, 7], [37, 4], [37, 5], [37, 4], [37, 5], [37, 4], [37, 5], [37, 4], [37, 5], [37, 4], [37, 5], [37, 4], [37, 5], [37, 4], [37, 5], [37, 4], [37, 5], [37, 1], [37, 2], [31, 1], [31, 2], [49, 1], [49, 1], [49, 1], [49, 1], [38, 2], [38, 3], [38, 3], [38, 1], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [38, 3], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [53, 3], [33, 1], [33, 2], [33, 1], [90, 1], [90, 2], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [98, 1], [98, 2], [27, 5], [27, 5], [28, 5], [29, 5], [29, 7], [29, 5], [29, 7], [25, 5], [25, 5], [26, 5], [26, 5], [26, 9], [26, 9], [26, 7], [26, 7], [105, 3], [103, 1], [103, 3], [101, 1], [101, 3], [109, 1], [109, 2], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [91, 1], [91, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [99, 1], [99, 1], [99, 1], [99, 1], [50, 1], [50, 1], [50, 1], [50, 1], [50, 1], [50, 1], [50, 1], [50, 1], [50, 1], [50, 1], [50, 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]],
52078 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate
52079 /* action[1] */
52080 , $$
52081 /* vstack */
52082 , _$
52083 /* lstack */
52084 ) {
52085 /* this == yyval */
52086 var $0 = $$.length - 1;
52087
52088 switch (yystate) {
52089 case 2:
52090 this.$ = [];
52091 break;
52092
52093 case 3:
52094 if ($$[$0] !== []) {
52095 $$[$0 - 1].push($$[$0]);
52096 }
52097
52098 this.$ = $$[$0 - 1];
52099 break;
52100
52101 case 4:
52102 case 67:
52103 case 69:
52104 case 70:
52105 case 120:
52106 case 122:
52107 case 123:
52108 case 136:
52109 this.$ = $$[$0];
52110 break;
52111
52112 case 11:
52113 yy.setDirection($$[$0 - 1]);
52114 this.$ = $$[$0 - 1];
52115 break;
52116
52117 case 12:
52118 yy.setDirection("LR");
52119 this.$ = $$[$0 - 1];
52120 break;
52121
52122 case 13:
52123 yy.setDirection("RL");
52124 this.$ = $$[$0 - 1];
52125 break;
52126
52127 case 14:
52128 yy.setDirection("BT");
52129 this.$ = $$[$0 - 1];
52130 break;
52131
52132 case 15:
52133 yy.setDirection("TB");
52134 this.$ = $$[$0 - 1];
52135 break;
52136
52137 case 30:
52138 this.$ = $$[$0 - 1];
52139 break;
52140
52141 case 31:
52142 case 32:
52143 case 33:
52144 case 34:
52145 case 35:
52146 this.$ = [];
52147 break;
52148
52149 case 36:
52150 this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);
52151 break;
52152
52153 case 37:
52154 this.$ = yy.addSubGraph(undefined, $$[$0 - 1], $$[$0 - 3]);
52155 break;
52156
52157 case 38:
52158 this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);
52159 break;
52160
52161 case 39:
52162 this.$ = yy.addSubGraph(undefined, $$[$0 - 1], undefined);
52163 break;
52164
52165 case 43:
52166 yy.addLink($$[$0 - 2], $$[$0], $$[$0 - 1]);
52167 this.$ = [$$[$0 - 2], $$[$0]];
52168 break;
52169
52170 case 44:
52171 this.$ = [$$[$0]];
52172 break;
52173
52174 case 45:
52175 this.$ = $$[$0 - 3];
52176 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'square');
52177 break;
52178
52179 case 46:
52180 this.$ = $$[$0 - 4];
52181 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'square');
52182 break;
52183
52184 case 47:
52185 this.$ = $$[$0 - 5];
52186 yy.addVertex($$[$0 - 5], $$[$0 - 2], 'circle');
52187 break;
52188
52189 case 48:
52190 this.$ = $$[$0 - 6];
52191 yy.addVertex($$[$0 - 6], $$[$0 - 3], 'circle');
52192 break;
52193
52194 case 49:
52195 this.$ = $$[$0 - 3];
52196 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'ellipse');
52197 break;
52198
52199 case 50:
52200 this.$ = $$[$0 - 4];
52201 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'ellipse');
52202 break;
52203
52204 case 51:
52205 this.$ = $$[$0 - 3];
52206 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'round');
52207 break;
52208
52209 case 52:
52210 this.$ = $$[$0 - 4];
52211 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'round');
52212 break;
52213
52214 case 53:
52215 this.$ = $$[$0 - 3];
52216 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'diamond');
52217 break;
52218
52219 case 54:
52220 this.$ = $$[$0 - 4];
52221 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'diamond');
52222 break;
52223
52224 case 55:
52225 this.$ = $$[$0 - 3];
52226 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'odd');
52227 break;
52228
52229 case 56:
52230 this.$ = $$[$0 - 4];
52231 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'odd');
52232 break;
52233
52234 case 57:
52235 this.$ = $$[$0 - 3];
52236 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'trapezoid');
52237 break;
52238
52239 case 58:
52240 this.$ = $$[$0 - 4];
52241 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'trapezoid');
52242 break;
52243
52244 case 59:
52245 this.$ = $$[$0 - 3];
52246 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'inv_trapezoid');
52247 break;
52248
52249 case 60:
52250 this.$ = $$[$0 - 4];
52251 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'inv_trapezoid');
52252 break;
52253
52254 case 61:
52255 this.$ = $$[$0 - 3];
52256 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'lean_right');
52257 break;
52258
52259 case 62:
52260 this.$ = $$[$0 - 4];
52261 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'lean_right');
52262 break;
52263
52264 case 63:
52265 this.$ = $$[$0 - 3];
52266 yy.addVertex($$[$0 - 3], $$[$0 - 1], 'lean_left');
52267 break;
52268
52269 case 64:
52270 this.$ = $$[$0 - 4];
52271 yy.addVertex($$[$0 - 4], $$[$0 - 2], 'lean_left');
52272 break;
52273
52274 case 65:
52275 this.$ = $$[$0];
52276 yy.addVertex($$[$0]);
52277 break;
52278
52279 case 66:
52280 this.$ = $$[$0 - 1];
52281 yy.addVertex($$[$0 - 1]);
52282 break;
52283
52284 case 68:
52285 case 121:
52286 case 124:
52287 case 137:
52288 this.$ = $$[$0 - 1] + '' + $$[$0];
52289 break;
52290
52291 case 71:
52292 this.$ = 'v';
52293 break;
52294
52295 case 72:
52296 this.$ = '-';
52297 break;
52298
52299 case 73:
52300 $$[$0 - 1].text = $$[$0];
52301 this.$ = $$[$0 - 1];
52302 break;
52303
52304 case 74:
52305 case 75:
52306 $$[$0 - 2].text = $$[$0 - 1];
52307 this.$ = $$[$0 - 2];
52308 break;
52309
52310 case 76:
52311 this.$ = $$[$0];
52312 break;
52313
52314 case 77:
52315 this.$ = {
52316 "type": "arrow",
52317 "stroke": "normal",
52318 "text": $$[$0 - 1]
52319 };
52320 break;
52321
52322 case 78:
52323 this.$ = {
52324 "type": "double_arrow_point",
52325 "stroke": "normal",
52326 "text": $$[$0 - 1]
52327 };
52328 break;
52329
52330 case 79:
52331 this.$ = {
52332 "type": "arrow_circle",
52333 "stroke": "normal",
52334 "text": $$[$0 - 1]
52335 };
52336 break;
52337
52338 case 80:
52339 this.$ = {
52340 "type": "double_arrow_circle",
52341 "stroke": "normal",
52342 "text": $$[$0 - 1]
52343 };
52344 break;
52345
52346 case 81:
52347 this.$ = {
52348 "type": "arrow_cross",
52349 "stroke": "normal",
52350 "text": $$[$0 - 1]
52351 };
52352 break;
52353
52354 case 82:
52355 this.$ = {
52356 "type": "double_arrow_cross",
52357 "stroke": "normal",
52358 "text": $$[$0 - 1]
52359 };
52360 break;
52361
52362 case 83:
52363 this.$ = {
52364 "type": "arrow_open",
52365 "stroke": "normal",
52366 "text": $$[$0 - 1]
52367 };
52368 break;
52369
52370 case 84:
52371 this.$ = {
52372 "type": "arrow",
52373 "stroke": "dotted",
52374 "text": $$[$0 - 1]
52375 };
52376 break;
52377
52378 case 85:
52379 this.$ = {
52380 "type": "double_arrow_point",
52381 "stroke": "dotted",
52382 "text": $$[$0 - 1]
52383 };
52384 break;
52385
52386 case 86:
52387 this.$ = {
52388 "type": "arrow_circle",
52389 "stroke": "dotted",
52390 "text": $$[$0 - 1]
52391 };
52392 break;
52393
52394 case 87:
52395 this.$ = {
52396 "type": "double_arrow_circle",
52397 "stroke": "dotted",
52398 "text": $$[$0 - 1]
52399 };
52400 break;
52401
52402 case 88:
52403 this.$ = {
52404 "type": "arrow_cross",
52405 "stroke": "dotted",
52406 "text": $$[$0 - 1]
52407 };
52408 break;
52409
52410 case 89:
52411 this.$ = {
52412 "type": "double_arrow_cross",
52413 "stroke": "dotted",
52414 "text": $$[$0 - 1]
52415 };
52416 break;
52417
52418 case 90:
52419 this.$ = {
52420 "type": "arrow_open",
52421 "stroke": "dotted",
52422 "text": $$[$0 - 1]
52423 };
52424 break;
52425
52426 case 91:
52427 this.$ = {
52428 "type": "arrow",
52429 "stroke": "thick",
52430 "text": $$[$0 - 1]
52431 };
52432 break;
52433
52434 case 92:
52435 this.$ = {
52436 "type": "double_arrow_point",
52437 "stroke": "thick",
52438 "text": $$[$0 - 1]
52439 };
52440 break;
52441
52442 case 93:
52443 this.$ = {
52444 "type": "arrow_circle",
52445 "stroke": "thick",
52446 "text": $$[$0 - 1]
52447 };
52448 break;
52449
52450 case 94:
52451 this.$ = {
52452 "type": "double_arrow_circle",
52453 "stroke": "thick",
52454 "text": $$[$0 - 1]
52455 };
52456 break;
52457
52458 case 95:
52459 this.$ = {
52460 "type": "arrow_cross",
52461 "stroke": "thick",
52462 "text": $$[$0 - 1]
52463 };
52464 break;
52465
52466 case 96:
52467 this.$ = {
52468 "type": "double_arrow_cross",
52469 "stroke": "thick",
52470 "text": $$[$0 - 1]
52471 };
52472 break;
52473
52474 case 97:
52475 this.$ = {
52476 "type": "arrow_open",
52477 "stroke": "thick",
52478 "text": $$[$0 - 1]
52479 };
52480 break;
52481
52482 case 98:
52483 this.$ = {
52484 "type": "arrow",
52485 "stroke": "normal"
52486 };
52487 break;
52488
52489 case 99:
52490 this.$ = {
52491 "type": "double_arrow_point",
52492 "stroke": "normal"
52493 };
52494 break;
52495
52496 case 100:
52497 this.$ = {
52498 "type": "arrow_circle",
52499 "stroke": "normal"
52500 };
52501 break;
52502
52503 case 101:
52504 this.$ = {
52505 "type": "double_arrow_circle",
52506 "stroke": "normal"
52507 };
52508 break;
52509
52510 case 102:
52511 this.$ = {
52512 "type": "arrow_cross",
52513 "stroke": "normal"
52514 };
52515 break;
52516
52517 case 103:
52518 this.$ = {
52519 "type": "double_arrow_cross",
52520 "stroke": "normal"
52521 };
52522 break;
52523
52524 case 104:
52525 this.$ = {
52526 "type": "arrow_open",
52527 "stroke": "normal"
52528 };
52529 break;
52530
52531 case 105:
52532 this.$ = {
52533 "type": "arrow",
52534 "stroke": "dotted"
52535 };
52536 break;
52537
52538 case 106:
52539 this.$ = {
52540 "type": "double_arrow_point",
52541 "stroke": "dotted"
52542 };
52543 break;
52544
52545 case 107:
52546 this.$ = {
52547 "type": "arrow_circle",
52548 "stroke": "dotted"
52549 };
52550 break;
52551
52552 case 108:
52553 this.$ = {
52554 "type": "double_arrow_circle",
52555 "stroke": "dotted"
52556 };
52557 break;
52558
52559 case 109:
52560 this.$ = {
52561 "type": "arrow_cross",
52562 "stroke": "dotted"
52563 };
52564 break;
52565
52566 case 110:
52567 this.$ = {
52568 "type": "double_arrow_cross",
52569 "stroke": "dotted"
52570 };
52571 break;
52572
52573 case 111:
52574 this.$ = {
52575 "type": "arrow_open",
52576 "stroke": "dotted"
52577 };
52578 break;
52579
52580 case 112:
52581 this.$ = {
52582 "type": "arrow",
52583 "stroke": "thick"
52584 };
52585 break;
52586
52587 case 113:
52588 this.$ = {
52589 "type": "double_arrow_point",
52590 "stroke": "thick"
52591 };
52592 break;
52593
52594 case 114:
52595 this.$ = {
52596 "type": "arrow_circle",
52597 "stroke": "thick"
52598 };
52599 break;
52600
52601 case 115:
52602 this.$ = {
52603 "type": "double_arrow_circle",
52604 "stroke": "thick"
52605 };
52606 break;
52607
52608 case 116:
52609 this.$ = {
52610 "type": "arrow_cross",
52611 "stroke": "thick"
52612 };
52613 break;
52614
52615 case 117:
52616 this.$ = {
52617 "type": "double_arrow_cross",
52618 "stroke": "thick"
52619 };
52620 break;
52621
52622 case 118:
52623 this.$ = {
52624 "type": "arrow_open",
52625 "stroke": "thick"
52626 };
52627 break;
52628
52629 case 119:
52630 this.$ = $$[$0 - 1];
52631 break;
52632
52633 case 138:
52634 case 139:
52635 this.$ = $$[$0 - 4];
52636 yy.addClass($$[$0 - 2], $$[$0]);
52637 break;
52638
52639 case 140:
52640 this.$ = $$[$0 - 4];
52641 yy.setClass($$[$0 - 2], $$[$0]);
52642 break;
52643
52644 case 141:
52645 this.$ = $$[$0 - 4];
52646 yy.setClickEvent($$[$0 - 2], $$[$0], undefined);
52647 break;
52648
52649 case 142:
52650 this.$ = $$[$0 - 6];
52651 yy.setClickEvent($$[$0 - 4], $$[$0 - 2], $$[$0]);
52652 break;
52653
52654 case 143:
52655 this.$ = $$[$0 - 4];
52656 yy.setLink($$[$0 - 2], $$[$0], undefined);
52657 break;
52658
52659 case 144:
52660 this.$ = $$[$0 - 6];
52661 yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);
52662 break;
52663
52664 case 145:
52665 this.$ = $$[$0 - 4];
52666 yy.addVertex($$[$0 - 2], undefined, undefined, $$[$0]);
52667 break;
52668
52669 case 146:
52670 case 148:
52671 this.$ = $$[$0 - 4];
52672 yy.updateLink($$[$0 - 2], $$[$0]);
52673 break;
52674
52675 case 147:
52676 this.$ = $$[$0 - 4];
52677 yy.updateLink([$$[$0 - 2]], $$[$0]);
52678 break;
52679
52680 case 149:
52681 this.$ = $$[$0 - 8];
52682 yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);
52683 yy.updateLink([$$[$0 - 6]], $$[$0]);
52684 break;
52685
52686 case 150:
52687 this.$ = $$[$0 - 8];
52688 yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);
52689 yy.updateLink($$[$0 - 6], $$[$0]);
52690 break;
52691
52692 case 151:
52693 this.$ = $$[$0 - 6];
52694 yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);
52695 break;
52696
52697 case 152:
52698 this.$ = $$[$0 - 6];
52699 yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);
52700 break;
52701
52702 case 154:
52703 case 156:
52704 this.$ = [$$[$0]];
52705 break;
52706
52707 case 155:
52708 case 157:
52709 $$[$0 - 2].push($$[$0]);
52710 this.$ = $$[$0 - 2];
52711 break;
52712
52713 case 159:
52714 this.$ = $$[$0 - 1] + $$[$0];
52715 break;
52716 }
52717 },
52718 table: [{
52719 3: 1,
52720 4: 2,
52721 9: $V0,
52722 10: $V1,
52723 12: $V2
52724 }, {
52725 1: [3]
52726 }, o($V3, $V4, {
52727 5: 6
52728 }), {
52729 4: 7,
52730 9: $V0,
52731 10: $V1,
52732 12: $V2
52733 }, {
52734 4: 8,
52735 9: $V0,
52736 10: $V1,
52737 12: $V2
52738 }, {
52739 10: [1, 9]
52740 }, {
52741 1: [2, 1],
52742 6: 10,
52743 7: 11,
52744 8: $V5,
52745 9: $V6,
52746 10: $V7,
52747 11: $V8,
52748 13: $V9,
52749 18: $Va,
52750 23: 16,
52751 25: 17,
52752 26: 18,
52753 27: 19,
52754 28: 20,
52755 29: 21,
52756 30: $Vb,
52757 31: 29,
52758 37: 23,
52759 49: 30,
52760 50: 32,
52761 51: $Vc,
52762 93: $Vd,
52763 94: $Ve,
52764 95: $Vf,
52765 96: $Vg,
52766 97: $Vh,
52767 107: $Vi,
52768 108: $Vj,
52769 111: $Vk,
52770 112: $Vl,
52771 114: $Vm,
52772 115: $Vn,
52773 117: $Vo,
52774 118: $Vp,
52775 119: $Vq,
52776 120: $Vr,
52777 121: $Vs
52778 }, o($V3, [2, 9]), o($V3, [2, 10]), {
52779 13: [1, 46],
52780 15: [1, 47],
52781 16: [1, 48],
52782 17: [1, 49],
52783 18: [1, 50]
52784 }, o($Vt, [2, 3]), o($Vt, [2, 4]), o($Vt, [2, 5]), o($Vt, [2, 6]), o($Vt, [2, 7]), o($Vt, [2, 8]), {
52785 8: $Vu,
52786 9: $Vv,
52787 11: $Vw,
52788 24: 51
52789 }, {
52790 8: $Vu,
52791 9: $Vv,
52792 11: $Vw,
52793 24: 55
52794 }, {
52795 8: $Vu,
52796 9: $Vv,
52797 11: $Vw,
52798 24: 56
52799 }, {
52800 8: $Vu,
52801 9: $Vv,
52802 11: $Vw,
52803 24: 57
52804 }, {
52805 8: $Vu,
52806 9: $Vv,
52807 11: $Vw,
52808 24: 58
52809 }, {
52810 8: $Vu,
52811 9: $Vv,
52812 11: $Vw,
52813 24: 59
52814 }, {
52815 8: $Vu,
52816 9: $Vv,
52817 10: [1, 60],
52818 11: $Vw,
52819 24: 61
52820 }, o($Vx, [2, 44], {
52821 38: 62,
52822 52: 63,
52823 55: [1, 64],
52824 56: [1, 76],
52825 57: [1, 65],
52826 58: [1, 78],
52827 59: [1, 66],
52828 60: [1, 80],
52829 61: [1, 67],
52830 62: [1, 82],
52831 63: [1, 68],
52832 64: [1, 83],
52833 65: [1, 69],
52834 66: [1, 85],
52835 67: [1, 70],
52836 68: [1, 87],
52837 69: [1, 71],
52838 70: [1, 89],
52839 71: [1, 72],
52840 72: [1, 90],
52841 73: [1, 73],
52842 74: [1, 92],
52843 75: [1, 74],
52844 76: [1, 94],
52845 77: [1, 75],
52846 78: [1, 96],
52847 79: [1, 77],
52848 80: [1, 79],
52849 81: [1, 81],
52850 82: [1, 84],
52851 83: [1, 86],
52852 84: [1, 88],
52853 85: [1, 91],
52854 86: [1, 93],
52855 87: [1, 95]
52856 }), {
52857 10: [1, 97]
52858 }, {
52859 10: [1, 98]
52860 }, {
52861 10: [1, 99]
52862 }, {
52863 10: [1, 100]
52864 }, {
52865 10: [1, 101]
52866 }, o($Vy, [2, 65], {
52867 50: 32,
52868 21: 109,
52869 49: 110,
52870 10: $Vz,
52871 13: $V9,
52872 15: [1, 106],
52873 18: $Va,
52874 32: [1, 102],
52875 39: [1, 103],
52876 41: [1, 104],
52877 43: [1, 105],
52878 45: [1, 107],
52879 47: [1, 108],
52880 51: $Vc,
52881 107: $Vi,
52882 108: $Vj,
52883 111: $Vk,
52884 112: $Vl,
52885 114: $Vm,
52886 115: $Vn,
52887 117: $Vo,
52888 118: $Vp,
52889 119: $Vq,
52890 120: $Vr,
52891 121: $Vs
52892 }), o($VA, [2, 67]), o($VA, [2, 69]), o($VA, [2, 70]), o($VA, [2, 71]), o($VA, [2, 72]), o($VB, [2, 184]), o($VB, [2, 185]), o($VB, [2, 186]), o($VB, [2, 187]), o($VB, [2, 188]), o($VB, [2, 189]), o($VB, [2, 190]), o($VB, [2, 191]), o($VB, [2, 192]), o($VB, [2, 193]), o($VB, [2, 194]), {
52893 8: $VC,
52894 9: $VD,
52895 10: $Vz,
52896 14: 112,
52897 21: 115
52898 }, {
52899 8: $VC,
52900 9: $VD,
52901 10: $Vz,
52902 14: 116,
52903 21: 115
52904 }, {
52905 8: $VC,
52906 9: $VD,
52907 10: $Vz,
52908 14: 117,
52909 21: 115
52910 }, {
52911 8: $VC,
52912 9: $VD,
52913 10: $Vz,
52914 14: 118,
52915 21: 115
52916 }, {
52917 8: $VC,
52918 9: $VD,
52919 10: $Vz,
52920 14: 119,
52921 21: 115
52922 }, o($Vt, [2, 30]), o($Vt, [2, 40]), o($Vt, [2, 41]), o($Vt, [2, 42]), o($Vt, [2, 31]), o($Vt, [2, 32]), o($Vt, [2, 33]), o($Vt, [2, 34]), o($Vt, [2, 35]), {
52923 13: $V9,
52924 18: $Va,
52925 31: 120,
52926 36: [1, 121],
52927 49: 30,
52928 50: 32,
52929 51: $Vc,
52930 107: $Vi,
52931 108: $Vj,
52932 111: $Vk,
52933 112: $Vl,
52934 114: $Vm,
52935 115: $Vn,
52936 117: $Vo,
52937 118: $Vp,
52938 119: $Vq,
52939 120: $Vr,
52940 121: $Vs
52941 }, o($VE, $V4, {
52942 5: 122
52943 }), {
52944 13: $V9,
52945 18: $Va,
52946 31: 29,
52947 37: 123,
52948 49: 30,
52949 50: 32,
52950 51: $Vc,
52951 107: $Vi,
52952 108: $Vj,
52953 111: $Vk,
52954 112: $Vl,
52955 114: $Vm,
52956 115: $Vn,
52957 117: $Vo,
52958 118: $Vp,
52959 119: $Vq,
52960 120: $Vr,
52961 121: $Vs
52962 }, o($VF, [2, 76], {
52963 53: 124,
52964 54: [1, 125],
52965 88: [1, 126]
52966 }), {
52967 10: $VG,
52968 12: $VH,
52969 13: $VI,
52970 15: $VJ,
52971 16: $VK,
52972 17: $VL,
52973 18: $VM,
52974 30: $VN,
52975 33: 127,
52976 35: $VO,
52977 36: $VP,
52978 50: 137,
52979 51: $VQ,
52980 55: $VR,
52981 71: $VS,
52982 89: 128,
52983 92: 140,
52984 93: $VT,
52985 94: $VU,
52986 95: $VV,
52987 96: $VW,
52988 97: $VX,
52989 99: 130,
52990 100: $VY,
52991 106: $VZ,
52992 107: $Vi,
52993 108: $Vj,
52994 111: $Vk,
52995 112: $Vl,
52996 114: $Vm,
52997 115: $Vn,
52998 117: $Vo,
52999 118: $Vp,
53000 119: $Vq,
53001 120: $Vr,
53002 121: $Vs
53003 }, {
53004 10: $VG,
53005 12: $VH,
53006 13: $VI,
53007 15: $VJ,
53008 16: $VK,
53009 17: $VL,
53010 18: $VM,
53011 30: $VN,
53012 33: 152,
53013 35: $VO,
53014 36: $VP,
53015 50: 137,
53016 51: $VQ,
53017 55: $VR,
53018 71: $VS,
53019 89: 128,
53020 92: 140,
53021 93: $VT,
53022 94: $VU,
53023 95: $VV,
53024 96: $VW,
53025 97: $VX,
53026 99: 130,
53027 100: $VY,
53028 106: $VZ,
53029 107: $Vi,
53030 108: $Vj,
53031 111: $Vk,
53032 112: $Vl,
53033 114: $Vm,
53034 115: $Vn,
53035 117: $Vo,
53036 118: $Vp,
53037 119: $Vq,
53038 120: $Vr,
53039 121: $Vs
53040 }, {
53041 10: $VG,
53042 12: $VH,
53043 13: $VI,
53044 15: $VJ,
53045 16: $VK,
53046 17: $VL,
53047 18: $VM,
53048 30: $VN,
53049 33: 153,
53050 35: $VO,
53051 36: $VP,
53052 50: 137,
53053 51: $VQ,
53054 55: $VR,
53055 71: $VS,
53056 89: 128,
53057 92: 140,
53058 93: $VT,
53059 94: $VU,
53060 95: $VV,
53061 96: $VW,
53062 97: $VX,
53063 99: 130,
53064 100: $VY,
53065 106: $VZ,
53066 107: $Vi,
53067 108: $Vj,
53068 111: $Vk,
53069 112: $Vl,
53070 114: $Vm,
53071 115: $Vn,
53072 117: $Vo,
53073 118: $Vp,
53074 119: $Vq,
53075 120: $Vr,
53076 121: $Vs
53077 }, {
53078 10: $VG,
53079 12: $VH,
53080 13: $VI,
53081 15: $VJ,
53082 16: $VK,
53083 17: $VL,
53084 18: $VM,
53085 30: $VN,
53086 33: 154,
53087 35: $VO,
53088 36: $VP,
53089 50: 137,
53090 51: $VQ,
53091 55: $VR,
53092 71: $VS,
53093 89: 128,
53094 92: 140,
53095 93: $VT,
53096 94: $VU,
53097 95: $VV,
53098 96: $VW,
53099 97: $VX,
53100 99: 130,
53101 100: $VY,
53102 106: $VZ,
53103 107: $Vi,
53104 108: $Vj,
53105 111: $Vk,
53106 112: $Vl,
53107 114: $Vm,
53108 115: $Vn,
53109 117: $Vo,
53110 118: $Vp,
53111 119: $Vq,
53112 120: $Vr,
53113 121: $Vs
53114 }, {
53115 10: $VG,
53116 12: $VH,
53117 13: $VI,
53118 15: $VJ,
53119 16: $VK,
53120 17: $VL,
53121 18: $VM,
53122 30: $VN,
53123 33: 155,
53124 35: $VO,
53125 36: $VP,
53126 50: 137,
53127 51: $VQ,
53128 55: $VR,
53129 71: $VS,
53130 89: 128,
53131 92: 140,
53132 93: $VT,
53133 94: $VU,
53134 95: $VV,
53135 96: $VW,
53136 97: $VX,
53137 99: 130,
53138 100: $VY,
53139 106: $VZ,
53140 107: $Vi,
53141 108: $Vj,
53142 111: $Vk,
53143 112: $Vl,
53144 114: $Vm,
53145 115: $Vn,
53146 117: $Vo,
53147 118: $Vp,
53148 119: $Vq,
53149 120: $Vr,
53150 121: $Vs
53151 }, {
53152 10: $VG,
53153 12: $VH,
53154 13: $VI,
53155 15: $VJ,
53156 16: $VK,
53157 17: $VL,
53158 18: $VM,
53159 30: $VN,
53160 33: 156,
53161 35: $VO,
53162 36: $VP,
53163 50: 137,
53164 51: $VQ,
53165 55: $VR,
53166 71: $VS,
53167 89: 128,
53168 92: 140,
53169 93: $VT,
53170 94: $VU,
53171 95: $VV,
53172 96: $VW,
53173 97: $VX,
53174 99: 130,
53175 100: $VY,
53176 106: $VZ,
53177 107: $Vi,
53178 108: $Vj,
53179 111: $Vk,
53180 112: $Vl,
53181 114: $Vm,
53182 115: $Vn,
53183 117: $Vo,
53184 118: $Vp,
53185 119: $Vq,
53186 120: $Vr,
53187 121: $Vs
53188 }, {
53189 10: $VG,
53190 12: $VH,
53191 13: $VI,
53192 15: $VJ,
53193 16: $VK,
53194 17: $VL,
53195 18: $VM,
53196 30: $VN,
53197 33: 157,
53198 35: $VO,
53199 36: $VP,
53200 50: 137,
53201 51: $VQ,
53202 55: $VR,
53203 71: $VS,
53204 89: 128,
53205 92: 140,
53206 93: $VT,
53207 94: $VU,
53208 95: $VV,
53209 96: $VW,
53210 97: $VX,
53211 99: 130,
53212 100: $VY,
53213 106: $VZ,
53214 107: $Vi,
53215 108: $Vj,
53216 111: $Vk,
53217 112: $Vl,
53218 114: $Vm,
53219 115: $Vn,
53220 117: $Vo,
53221 118: $Vp,
53222 119: $Vq,
53223 120: $Vr,
53224 121: $Vs
53225 }, {
53226 10: $VG,
53227 12: $VH,
53228 13: $VI,
53229 15: $VJ,
53230 16: $VK,
53231 17: $VL,
53232 18: $VM,
53233 30: $VN,
53234 33: 158,
53235 35: $VO,
53236 36: $VP,
53237 50: 137,
53238 51: $VQ,
53239 55: $VR,
53240 71: $VS,
53241 89: 128,
53242 92: 140,
53243 93: $VT,
53244 94: $VU,
53245 95: $VV,
53246 96: $VW,
53247 97: $VX,
53248 99: 130,
53249 100: $VY,
53250 106: $VZ,
53251 107: $Vi,
53252 108: $Vj,
53253 111: $Vk,
53254 112: $Vl,
53255 114: $Vm,
53256 115: $Vn,
53257 117: $Vo,
53258 118: $Vp,
53259 119: $Vq,
53260 120: $Vr,
53261 121: $Vs
53262 }, {
53263 10: $VG,
53264 12: $VH,
53265 13: $VI,
53266 15: $VJ,
53267 16: $VK,
53268 17: $VL,
53269 18: $VM,
53270 30: $VN,
53271 33: 159,
53272 35: $VO,
53273 36: $VP,
53274 50: 137,
53275 51: $VQ,
53276 55: $VR,
53277 71: $VS,
53278 89: 128,
53279 92: 140,
53280 93: $VT,
53281 94: $VU,
53282 95: $VV,
53283 96: $VW,
53284 97: $VX,
53285 99: 130,
53286 100: $VY,
53287 106: $VZ,
53288 107: $Vi,
53289 108: $Vj,
53290 111: $Vk,
53291 112: $Vl,
53292 114: $Vm,
53293 115: $Vn,
53294 117: $Vo,
53295 118: $Vp,
53296 119: $Vq,
53297 120: $Vr,
53298 121: $Vs
53299 }, {
53300 10: $VG,
53301 12: $VH,
53302 13: $VI,
53303 15: $VJ,
53304 16: $VK,
53305 17: $VL,
53306 18: $VM,
53307 30: $VN,
53308 33: 160,
53309 35: $VO,
53310 36: $VP,
53311 50: 137,
53312 51: $VQ,
53313 55: $VR,
53314 71: $VS,
53315 89: 128,
53316 92: 140,
53317 93: $VT,
53318 94: $VU,
53319 95: $VV,
53320 96: $VW,
53321 97: $VX,
53322 99: 130,
53323 100: $VY,
53324 106: $VZ,
53325 107: $Vi,
53326 108: $Vj,
53327 111: $Vk,
53328 112: $Vl,
53329 114: $Vm,
53330 115: $Vn,
53331 117: $Vo,
53332 118: $Vp,
53333 119: $Vq,
53334 120: $Vr,
53335 121: $Vs
53336 }, {
53337 10: $VG,
53338 12: $VH,
53339 13: $VI,
53340 15: $VJ,
53341 16: $VK,
53342 17: $VL,
53343 18: $VM,
53344 30: $VN,
53345 33: 161,
53346 35: $VO,
53347 36: $VP,
53348 50: 137,
53349 51: $VQ,
53350 55: $VR,
53351 71: $VS,
53352 89: 128,
53353 92: 140,
53354 93: $VT,
53355 94: $VU,
53356 95: $VV,
53357 96: $VW,
53358 97: $VX,
53359 99: 130,
53360 100: $VY,
53361 106: $VZ,
53362 107: $Vi,
53363 108: $Vj,
53364 111: $Vk,
53365 112: $Vl,
53366 114: $Vm,
53367 115: $Vn,
53368 117: $Vo,
53369 118: $Vp,
53370 119: $Vq,
53371 120: $Vr,
53372 121: $Vs
53373 }, {
53374 10: $VG,
53375 12: $VH,
53376 13: $VI,
53377 15: $VJ,
53378 16: $VK,
53379 17: $VL,
53380 18: $VM,
53381 30: $VN,
53382 33: 162,
53383 35: $VO,
53384 36: $VP,
53385 50: 137,
53386 51: $VQ,
53387 55: $VR,
53388 71: $VS,
53389 89: 128,
53390 92: 140,
53391 93: $VT,
53392 94: $VU,
53393 95: $VV,
53394 96: $VW,
53395 97: $VX,
53396 99: 130,
53397 100: $VY,
53398 106: $VZ,
53399 107: $Vi,
53400 108: $Vj,
53401 111: $Vk,
53402 112: $Vl,
53403 114: $Vm,
53404 115: $Vn,
53405 117: $Vo,
53406 118: $Vp,
53407 119: $Vq,
53408 120: $Vr,
53409 121: $Vs
53410 }, o($V_, [2, 98]), o($V_, [2, 99]), o($V_, [2, 100]), o($V_, [2, 101]), o($V_, [2, 102]), o($V_, [2, 103]), o($V_, [2, 104]), o($V_, [2, 105]), o($V_, [2, 106]), o($V_, [2, 107]), o($V_, [2, 108]), o($V_, [2, 109]), o($V_, [2, 110]), o($V_, [2, 111]), o($V_, [2, 112]), o($V_, [2, 113]), o($V_, [2, 114]), o($V_, [2, 115]), o($V_, [2, 116]), o($V_, [2, 117]), o($V_, [2, 118]), {
53411 13: $V9,
53412 18: $Va,
53413 31: 163,
53414 49: 30,
53415 50: 32,
53416 51: $Vc,
53417 102: [1, 164],
53418 107: $Vi,
53419 108: $Vj,
53420 111: $Vk,
53421 112: $Vl,
53422 114: $Vm,
53423 115: $Vn,
53424 117: $Vo,
53425 118: $Vp,
53426 119: $Vq,
53427 120: $Vr,
53428 121: $Vs
53429 }, {
53430 100: [1, 165],
53431 103: 166,
53432 107: [1, 167]
53433 }, {
53434 13: $V9,
53435 18: $Va,
53436 31: 169,
53437 49: 30,
53438 50: 32,
53439 51: $Vc,
53440 100: [1, 168],
53441 107: $Vi,
53442 108: $Vj,
53443 111: $Vk,
53444 112: $Vl,
53445 114: $Vm,
53446 115: $Vn,
53447 117: $Vo,
53448 118: $Vp,
53449 119: $Vq,
53450 120: $Vr,
53451 121: $Vs
53452 }, {
53453 13: $V9,
53454 18: $Va,
53455 31: 170,
53456 49: 30,
53457 50: 32,
53458 51: $Vc,
53459 107: $Vi,
53460 108: $Vj,
53461 111: $Vk,
53462 112: $Vl,
53463 114: $Vm,
53464 115: $Vn,
53465 117: $Vo,
53466 118: $Vp,
53467 119: $Vq,
53468 120: $Vr,
53469 121: $Vs
53470 }, {
53471 13: $V9,
53472 18: $Va,
53473 31: 171,
53474 49: 30,
53475 50: 32,
53476 51: $Vc,
53477 107: $Vi,
53478 108: $Vj,
53479 111: $Vk,
53480 112: $Vl,
53481 114: $Vm,
53482 115: $Vn,
53483 117: $Vo,
53484 118: $Vp,
53485 119: $Vq,
53486 120: $Vr,
53487 121: $Vs
53488 }, {
53489 10: $VG,
53490 12: $VH,
53491 13: $VI,
53492 15: $VJ,
53493 16: $VK,
53494 17: $VL,
53495 18: $VM,
53496 30: $VN,
53497 33: 172,
53498 35: $VO,
53499 36: $VP,
53500 50: 137,
53501 51: $VQ,
53502 55: $VR,
53503 71: $VS,
53504 89: 128,
53505 92: 140,
53506 93: $VT,
53507 94: $VU,
53508 95: $VV,
53509 96: $VW,
53510 97: $VX,
53511 99: 130,
53512 100: $VY,
53513 106: $VZ,
53514 107: $Vi,
53515 108: $Vj,
53516 111: $Vk,
53517 112: $Vl,
53518 114: $Vm,
53519 115: $Vn,
53520 117: $Vo,
53521 118: $Vp,
53522 119: $Vq,
53523 120: $Vr,
53524 121: $Vs
53525 }, {
53526 10: $VG,
53527 12: $VH,
53528 13: $VI,
53529 15: $VJ,
53530 16: $VK,
53531 17: $VL,
53532 18: $VM,
53533 30: $VN,
53534 33: 174,
53535 35: $VO,
53536 36: $VP,
53537 39: [1, 173],
53538 50: 137,
53539 51: $VQ,
53540 55: $VR,
53541 71: $VS,
53542 89: 128,
53543 92: 140,
53544 93: $VT,
53545 94: $VU,
53546 95: $VV,
53547 96: $VW,
53548 97: $VX,
53549 99: 130,
53550 100: $VY,
53551 106: $VZ,
53552 107: $Vi,
53553 108: $Vj,
53554 111: $Vk,
53555 112: $Vl,
53556 114: $Vm,
53557 115: $Vn,
53558 117: $Vo,
53559 118: $Vp,
53560 119: $Vq,
53561 120: $Vr,
53562 121: $Vs
53563 }, {
53564 10: $VG,
53565 12: $VH,
53566 13: $VI,
53567 15: $VJ,
53568 16: $VK,
53569 17: $VL,
53570 18: $VM,
53571 30: $VN,
53572 33: 175,
53573 35: $VO,
53574 36: $VP,
53575 50: 137,
53576 51: $VQ,
53577 55: $VR,
53578 71: $VS,
53579 89: 128,
53580 92: 140,
53581 93: $VT,
53582 94: $VU,
53583 95: $VV,
53584 96: $VW,
53585 97: $VX,
53586 99: 130,
53587 100: $VY,
53588 106: $VZ,
53589 107: $Vi,
53590 108: $Vj,
53591 111: $Vk,
53592 112: $Vl,
53593 114: $Vm,
53594 115: $Vn,
53595 117: $Vo,
53596 118: $Vp,
53597 119: $Vq,
53598 120: $Vr,
53599 121: $Vs
53600 }, {
53601 10: $VG,
53602 12: $VH,
53603 13: $VI,
53604 15: $VJ,
53605 16: $VK,
53606 17: $VL,
53607 18: $VM,
53608 30: $VN,
53609 33: 176,
53610 35: $VO,
53611 36: $VP,
53612 50: 137,
53613 51: $VQ,
53614 55: $VR,
53615 71: $VS,
53616 89: 128,
53617 92: 140,
53618 93: $VT,
53619 94: $VU,
53620 95: $VV,
53621 96: $VW,
53622 97: $VX,
53623 99: 130,
53624 100: $VY,
53625 106: $VZ,
53626 107: $Vi,
53627 108: $Vj,
53628 111: $Vk,
53629 112: $Vl,
53630 114: $Vm,
53631 115: $Vn,
53632 117: $Vo,
53633 118: $Vp,
53634 119: $Vq,
53635 120: $Vr,
53636 121: $Vs
53637 }, {
53638 10: $VG,
53639 12: $VH,
53640 13: $VI,
53641 15: $VJ,
53642 16: $VK,
53643 17: $VL,
53644 18: $VM,
53645 30: $VN,
53646 33: 177,
53647 35: $VO,
53648 36: $VP,
53649 50: 137,
53650 51: $VQ,
53651 55: $VR,
53652 71: $VS,
53653 89: 128,
53654 92: 140,
53655 93: $VT,
53656 94: $VU,
53657 95: $VV,
53658 96: $VW,
53659 97: $VX,
53660 99: 130,
53661 100: $VY,
53662 106: $VZ,
53663 107: $Vi,
53664 108: $Vj,
53665 111: $Vk,
53666 112: $Vl,
53667 114: $Vm,
53668 115: $Vn,
53669 117: $Vo,
53670 118: $Vp,
53671 119: $Vq,
53672 120: $Vr,
53673 121: $Vs
53674 }, {
53675 10: $VG,
53676 12: $VH,
53677 13: $VI,
53678 15: $VJ,
53679 16: $VK,
53680 17: $VL,
53681 18: $VM,
53682 30: $VN,
53683 33: 178,
53684 35: $VO,
53685 36: $VP,
53686 50: 137,
53687 51: $VQ,
53688 55: $VR,
53689 71: $VS,
53690 89: 128,
53691 92: 140,
53692 93: $VT,
53693 94: $VU,
53694 95: $VV,
53695 96: $VW,
53696 97: $VX,
53697 99: 130,
53698 100: $VY,
53699 106: $VZ,
53700 107: $Vi,
53701 108: $Vj,
53702 111: $Vk,
53703 112: $Vl,
53704 114: $Vm,
53705 115: $Vn,
53706 117: $Vo,
53707 118: $Vp,
53708 119: $Vq,
53709 120: $Vr,
53710 121: $Vs
53711 }, {
53712 10: $VG,
53713 12: $VH,
53714 13: $VI,
53715 15: $VJ,
53716 16: $VK,
53717 17: $VL,
53718 18: $VM,
53719 30: $VN,
53720 33: 179,
53721 35: $VO,
53722 36: $VP,
53723 50: 137,
53724 51: $VQ,
53725 55: $VR,
53726 71: $VS,
53727 89: 128,
53728 92: 140,
53729 93: $VT,
53730 94: $VU,
53731 95: $VV,
53732 96: $VW,
53733 97: $VX,
53734 99: 130,
53735 100: $VY,
53736 106: $VZ,
53737 107: $Vi,
53738 108: $Vj,
53739 111: $Vk,
53740 112: $Vl,
53741 114: $Vm,
53742 115: $Vn,
53743 117: $Vo,
53744 118: $Vp,
53745 119: $Vq,
53746 120: $Vr,
53747 121: $Vs
53748 }, o($Vy, [2, 66]), o($VA, [2, 68]), o($Vy, [2, 29], {
53749 21: 180,
53750 10: $Vz
53751 }), o($V3, [2, 11]), o($V3, [2, 21]), o($V3, [2, 22]), {
53752 9: [1, 181]
53753 }, o($V3, [2, 12]), o($V3, [2, 13]), o($V3, [2, 14]), o($V3, [2, 15]), {
53754 8: $Vu,
53755 9: $Vv,
53756 11: $Vw,
53757 13: $V9,
53758 18: $Va,
53759 24: 183,
53760 32: [1, 182],
53761 49: 110,
53762 50: 32,
53763 51: $Vc,
53764 107: $Vi,
53765 108: $Vj,
53766 111: $Vk,
53767 112: $Vl,
53768 114: $Vm,
53769 115: $Vn,
53770 117: $Vo,
53771 118: $Vp,
53772 119: $Vq,
53773 120: $Vr,
53774 121: $Vs
53775 }, {
53776 8: $Vu,
53777 9: $Vv,
53778 11: $Vw,
53779 24: 184
53780 }, {
53781 6: 10,
53782 7: 11,
53783 8: $V5,
53784 9: $V6,
53785 10: $V7,
53786 11: $V8,
53787 13: $V9,
53788 18: $Va,
53789 23: 16,
53790 25: 17,
53791 26: 18,
53792 27: 19,
53793 28: 20,
53794 29: 21,
53795 30: $Vb,
53796 31: 29,
53797 35: [1, 185],
53798 37: 23,
53799 49: 30,
53800 50: 32,
53801 51: $Vc,
53802 93: $Vd,
53803 94: $Ve,
53804 95: $Vf,
53805 96: $Vg,
53806 97: $Vh,
53807 107: $Vi,
53808 108: $Vj,
53809 111: $Vk,
53810 112: $Vl,
53811 114: $Vm,
53812 115: $Vn,
53813 117: $Vo,
53814 118: $Vp,
53815 119: $Vq,
53816 120: $Vr,
53817 121: $Vs
53818 }, o($Vx, [2, 43]), o($VF, [2, 73], {
53819 10: [1, 186]
53820 }), {
53821 10: [1, 187]
53822 }, {
53823 10: $VG,
53824 12: $VH,
53825 13: $VI,
53826 15: $VJ,
53827 16: $VK,
53828 17: $VL,
53829 18: $VM,
53830 30: $VN,
53831 33: 188,
53832 35: $VO,
53833 36: $VP,
53834 50: 137,
53835 51: $VQ,
53836 55: $VR,
53837 71: $VS,
53838 89: 128,
53839 92: 140,
53840 93: $VT,
53841 94: $VU,
53842 95: $VV,
53843 96: $VW,
53844 97: $VX,
53845 99: 130,
53846 100: $VY,
53847 106: $VZ,
53848 107: $Vi,
53849 108: $Vj,
53850 111: $Vk,
53851 112: $Vl,
53852 114: $Vm,
53853 115: $Vn,
53854 117: $Vo,
53855 118: $Vp,
53856 119: $Vq,
53857 120: $Vr,
53858 121: $Vs
53859 }, {
53860 10: $VG,
53861 12: $VH,
53862 13: $VI,
53863 15: $VJ,
53864 16: $VK,
53865 17: $VL,
53866 18: $VM,
53867 30: $VN,
53868 35: $VO,
53869 50: 137,
53870 51: $VQ,
53871 55: $VR,
53872 56: [1, 189],
53873 58: [1, 190],
53874 60: [1, 191],
53875 62: [1, 192],
53876 71: $VS,
53877 89: 193,
53878 92: 140,
53879 93: $VT,
53880 94: $VU,
53881 95: $VV,
53882 96: $VW,
53883 97: $VX,
53884 99: 130,
53885 100: $VY,
53886 106: $VZ,
53887 107: $Vi,
53888 108: $Vj,
53889 111: $Vk,
53890 112: $Vl,
53891 114: $Vm,
53892 115: $Vn,
53893 117: $Vo,
53894 118: $Vp,
53895 119: $Vq,
53896 120: $Vr,
53897 121: $Vs
53898 }, o($V$, [2, 120]), o($V$, [2, 122]), o($V$, [2, 173]), o($V$, [2, 174]), o($V$, [2, 175]), o($V$, [2, 176]), o($V$, [2, 177]), o($V$, [2, 178]), o($V$, [2, 179]), o($V$, [2, 180]), o($V$, [2, 181]), o($V$, [2, 182]), o($V$, [2, 183]), o($V$, [2, 125]), o($V$, [2, 126]), o($V$, [2, 127]), o($V$, [2, 128]), o($V$, [2, 129]), o($V$, [2, 130]), o($V$, [2, 131]), o($V$, [2, 132]), o($V$, [2, 133]), o($V$, [2, 134]), o($V$, [2, 135]), {
53899 10: $VG,
53900 12: $VH,
53901 13: $VI,
53902 15: $VJ,
53903 16: $VK,
53904 17: $VL,
53905 18: $VM,
53906 30: $VN,
53907 35: $VO,
53908 50: 137,
53909 51: $VQ,
53910 55: $VR,
53911 56: [1, 194],
53912 71: $VS,
53913 89: 193,
53914 92: 140,
53915 93: $VT,
53916 94: $VU,
53917 95: $VV,
53918 96: $VW,
53919 97: $VX,
53920 99: 130,
53921 100: $VY,
53922 106: $VZ,
53923 107: $Vi,
53924 108: $Vj,
53925 111: $Vk,
53926 112: $Vl,
53927 114: $Vm,
53928 115: $Vn,
53929 117: $Vo,
53930 118: $Vp,
53931 119: $Vq,
53932 120: $Vr,
53933 121: $Vs
53934 }, {
53935 10: $VG,
53936 12: $VH,
53937 13: $VI,
53938 15: $VJ,
53939 16: $VK,
53940 17: $VL,
53941 18: $VM,
53942 30: $VN,
53943 35: $VO,
53944 50: 137,
53945 51: $VQ,
53946 55: $VR,
53947 58: [1, 195],
53948 71: $VS,
53949 89: 193,
53950 92: 140,
53951 93: $VT,
53952 94: $VU,
53953 95: $VV,
53954 96: $VW,
53955 97: $VX,
53956 99: 130,
53957 100: $VY,
53958 106: $VZ,
53959 107: $Vi,
53960 108: $Vj,
53961 111: $Vk,
53962 112: $Vl,
53963 114: $Vm,
53964 115: $Vn,
53965 117: $Vo,
53966 118: $Vp,
53967 119: $Vq,
53968 120: $Vr,
53969 121: $Vs
53970 }, {
53971 10: $VG,
53972 12: $VH,
53973 13: $VI,
53974 15: $VJ,
53975 16: $VK,
53976 17: $VL,
53977 18: $VM,
53978 30: $VN,
53979 35: $VO,
53980 50: 137,
53981 51: $VQ,
53982 55: $VR,
53983 60: [1, 196],
53984 71: $VS,
53985 89: 193,
53986 92: 140,
53987 93: $VT,
53988 94: $VU,
53989 95: $VV,
53990 96: $VW,
53991 97: $VX,
53992 99: 130,
53993 100: $VY,
53994 106: $VZ,
53995 107: $Vi,
53996 108: $Vj,
53997 111: $Vk,
53998 112: $Vl,
53999 114: $Vm,
54000 115: $Vn,
54001 117: $Vo,
54002 118: $Vp,
54003 119: $Vq,
54004 120: $Vr,
54005 121: $Vs
54006 }, {
54007 10: $VG,
54008 12: $VH,
54009 13: $VI,
54010 15: $VJ,
54011 16: $VK,
54012 17: $VL,
54013 18: $VM,
54014 30: $VN,
54015 35: $VO,
54016 50: 137,
54017 51: $VQ,
54018 55: $VR,
54019 64: [1, 197],
54020 66: [1, 198],
54021 68: [1, 199],
54022 70: [1, 200],
54023 71: $VS,
54024 89: 193,
54025 92: 140,
54026 93: $VT,
54027 94: $VU,
54028 95: $VV,
54029 96: $VW,
54030 97: $VX,
54031 99: 130,
54032 100: $VY,
54033 106: $VZ,
54034 107: $Vi,
54035 108: $Vj,
54036 111: $Vk,
54037 112: $Vl,
54038 114: $Vm,
54039 115: $Vn,
54040 117: $Vo,
54041 118: $Vp,
54042 119: $Vq,
54043 120: $Vr,
54044 121: $Vs
54045 }, {
54046 10: $VG,
54047 12: $VH,
54048 13: $VI,
54049 15: $VJ,
54050 16: $VK,
54051 17: $VL,
54052 18: $VM,
54053 30: $VN,
54054 35: $VO,
54055 50: 137,
54056 51: $VQ,
54057 55: $VR,
54058 64: [1, 201],
54059 71: $VS,
54060 89: 193,
54061 92: 140,
54062 93: $VT,
54063 94: $VU,
54064 95: $VV,
54065 96: $VW,
54066 97: $VX,
54067 99: 130,
54068 100: $VY,
54069 106: $VZ,
54070 107: $Vi,
54071 108: $Vj,
54072 111: $Vk,
54073 112: $Vl,
54074 114: $Vm,
54075 115: $Vn,
54076 117: $Vo,
54077 118: $Vp,
54078 119: $Vq,
54079 120: $Vr,
54080 121: $Vs
54081 }, {
54082 10: $VG,
54083 12: $VH,
54084 13: $VI,
54085 15: $VJ,
54086 16: $VK,
54087 17: $VL,
54088 18: $VM,
54089 30: $VN,
54090 35: $VO,
54091 50: 137,
54092 51: $VQ,
54093 55: $VR,
54094 66: [1, 202],
54095 71: $VS,
54096 89: 193,
54097 92: 140,
54098 93: $VT,
54099 94: $VU,
54100 95: $VV,
54101 96: $VW,
54102 97: $VX,
54103 99: 130,
54104 100: $VY,
54105 106: $VZ,
54106 107: $Vi,
54107 108: $Vj,
54108 111: $Vk,
54109 112: $Vl,
54110 114: $Vm,
54111 115: $Vn,
54112 117: $Vo,
54113 118: $Vp,
54114 119: $Vq,
54115 120: $Vr,
54116 121: $Vs
54117 }, {
54118 10: $VG,
54119 12: $VH,
54120 13: $VI,
54121 15: $VJ,
54122 16: $VK,
54123 17: $VL,
54124 18: $VM,
54125 30: $VN,
54126 35: $VO,
54127 50: 137,
54128 51: $VQ,
54129 55: $VR,
54130 68: [1, 203],
54131 71: $VS,
54132 89: 193,
54133 92: 140,
54134 93: $VT,
54135 94: $VU,
54136 95: $VV,
54137 96: $VW,
54138 97: $VX,
54139 99: 130,
54140 100: $VY,
54141 106: $VZ,
54142 107: $Vi,
54143 108: $Vj,
54144 111: $Vk,
54145 112: $Vl,
54146 114: $Vm,
54147 115: $Vn,
54148 117: $Vo,
54149 118: $Vp,
54150 119: $Vq,
54151 120: $Vr,
54152 121: $Vs
54153 }, {
54154 10: $VG,
54155 12: $VH,
54156 13: $VI,
54157 15: $VJ,
54158 16: $VK,
54159 17: $VL,
54160 18: $VM,
54161 30: $VN,
54162 35: $VO,
54163 50: 137,
54164 51: $VQ,
54165 55: $VR,
54166 71: $VS,
54167 72: [1, 204],
54168 74: [1, 205],
54169 76: [1, 206],
54170 78: [1, 207],
54171 89: 193,
54172 92: 140,
54173 93: $VT,
54174 94: $VU,
54175 95: $VV,
54176 96: $VW,
54177 97: $VX,
54178 99: 130,
54179 100: $VY,
54180 106: $VZ,
54181 107: $Vi,
54182 108: $Vj,
54183 111: $Vk,
54184 112: $Vl,
54185 114: $Vm,
54186 115: $Vn,
54187 117: $Vo,
54188 118: $Vp,
54189 119: $Vq,
54190 120: $Vr,
54191 121: $Vs
54192 }, {
54193 10: $VG,
54194 12: $VH,
54195 13: $VI,
54196 15: $VJ,
54197 16: $VK,
54198 17: $VL,
54199 18: $VM,
54200 30: $VN,
54201 35: $VO,
54202 50: 137,
54203 51: $VQ,
54204 55: $VR,
54205 71: $VS,
54206 72: [1, 208],
54207 89: 193,
54208 92: 140,
54209 93: $VT,
54210 94: $VU,
54211 95: $VV,
54212 96: $VW,
54213 97: $VX,
54214 99: 130,
54215 100: $VY,
54216 106: $VZ,
54217 107: $Vi,
54218 108: $Vj,
54219 111: $Vk,
54220 112: $Vl,
54221 114: $Vm,
54222 115: $Vn,
54223 117: $Vo,
54224 118: $Vp,
54225 119: $Vq,
54226 120: $Vr,
54227 121: $Vs
54228 }, {
54229 10: $VG,
54230 12: $VH,
54231 13: $VI,
54232 15: $VJ,
54233 16: $VK,
54234 17: $VL,
54235 18: $VM,
54236 30: $VN,
54237 35: $VO,
54238 50: 137,
54239 51: $VQ,
54240 55: $VR,
54241 71: $VS,
54242 74: [1, 209],
54243 89: 193,
54244 92: 140,
54245 93: $VT,
54246 94: $VU,
54247 95: $VV,
54248 96: $VW,
54249 97: $VX,
54250 99: 130,
54251 100: $VY,
54252 106: $VZ,
54253 107: $Vi,
54254 108: $Vj,
54255 111: $Vk,
54256 112: $Vl,
54257 114: $Vm,
54258 115: $Vn,
54259 117: $Vo,
54260 118: $Vp,
54261 119: $Vq,
54262 120: $Vr,
54263 121: $Vs
54264 }, {
54265 10: $VG,
54266 12: $VH,
54267 13: $VI,
54268 15: $VJ,
54269 16: $VK,
54270 17: $VL,
54271 18: $VM,
54272 30: $VN,
54273 35: $VO,
54274 50: 137,
54275 51: $VQ,
54276 55: $VR,
54277 71: $VS,
54278 76: [1, 210],
54279 89: 193,
54280 92: 140,
54281 93: $VT,
54282 94: $VU,
54283 95: $VV,
54284 96: $VW,
54285 97: $VX,
54286 99: 130,
54287 100: $VY,
54288 106: $VZ,
54289 107: $Vi,
54290 108: $Vj,
54291 111: $Vk,
54292 112: $Vl,
54293 114: $Vm,
54294 115: $Vn,
54295 117: $Vo,
54296 118: $Vp,
54297 119: $Vq,
54298 120: $Vr,
54299 121: $Vs
54300 }, {
54301 10: [1, 211],
54302 13: $V9,
54303 18: $Va,
54304 49: 110,
54305 50: 32,
54306 51: $Vc,
54307 107: $Vi,
54308 108: $Vj,
54309 111: $Vk,
54310 112: $Vl,
54311 114: $Vm,
54312 115: $Vn,
54313 117: $Vo,
54314 118: $Vp,
54315 119: $Vq,
54316 120: $Vr,
54317 121: $Vs
54318 }, {
54319 10: [1, 212]
54320 }, {
54321 10: [1, 213]
54322 }, {
54323 10: [1, 214],
54324 108: [1, 215]
54325 }, o($V01, [2, 154]), {
54326 10: [1, 216]
54327 }, {
54328 10: [1, 217],
54329 13: $V9,
54330 18: $Va,
54331 49: 110,
54332 50: 32,
54333 51: $Vc,
54334 107: $Vi,
54335 108: $Vj,
54336 111: $Vk,
54337 112: $Vl,
54338 114: $Vm,
54339 115: $Vn,
54340 117: $Vo,
54341 118: $Vp,
54342 119: $Vq,
54343 120: $Vr,
54344 121: $Vs
54345 }, {
54346 10: [1, 218],
54347 13: $V9,
54348 18: $Va,
54349 49: 110,
54350 50: 32,
54351 51: $Vc,
54352 107: $Vi,
54353 108: $Vj,
54354 111: $Vk,
54355 112: $Vl,
54356 114: $Vm,
54357 115: $Vn,
54358 117: $Vo,
54359 118: $Vp,
54360 119: $Vq,
54361 120: $Vr,
54362 121: $Vs
54363 }, {
54364 10: [1, 219],
54365 13: $V9,
54366 18: $Va,
54367 49: 110,
54368 50: 32,
54369 51: $Vc,
54370 107: $Vi,
54371 108: $Vj,
54372 111: $Vk,
54373 112: $Vl,
54374 114: $Vm,
54375 115: $Vn,
54376 117: $Vo,
54377 118: $Vp,
54378 119: $Vq,
54379 120: $Vr,
54380 121: $Vs
54381 }, {
54382 10: $VG,
54383 12: $VH,
54384 13: $VI,
54385 15: $VJ,
54386 16: $VK,
54387 17: $VL,
54388 18: $VM,
54389 30: $VN,
54390 34: [1, 220],
54391 35: $VO,
54392 50: 137,
54393 51: $VQ,
54394 55: $VR,
54395 71: $VS,
54396 89: 193,
54397 92: 140,
54398 93: $VT,
54399 94: $VU,
54400 95: $VV,
54401 96: $VW,
54402 97: $VX,
54403 99: 130,
54404 100: $VY,
54405 106: $VZ,
54406 107: $Vi,
54407 108: $Vj,
54408 111: $Vk,
54409 112: $Vl,
54410 114: $Vm,
54411 115: $Vn,
54412 117: $Vo,
54413 118: $Vp,
54414 119: $Vq,
54415 120: $Vr,
54416 121: $Vs
54417 }, {
54418 10: $VG,
54419 12: $VH,
54420 13: $VI,
54421 15: $VJ,
54422 16: $VK,
54423 17: $VL,
54424 18: $VM,
54425 30: $VN,
54426 33: 221,
54427 35: $VO,
54428 36: $VP,
54429 50: 137,
54430 51: $VQ,
54431 55: $VR,
54432 71: $VS,
54433 89: 128,
54434 92: 140,
54435 93: $VT,
54436 94: $VU,
54437 95: $VV,
54438 96: $VW,
54439 97: $VX,
54440 99: 130,
54441 100: $VY,
54442 106: $VZ,
54443 107: $Vi,
54444 108: $Vj,
54445 111: $Vk,
54446 112: $Vl,
54447 114: $Vm,
54448 115: $Vn,
54449 117: $Vo,
54450 118: $Vp,
54451 119: $Vq,
54452 120: $Vr,
54453 121: $Vs
54454 }, {
54455 10: $VG,
54456 12: $VH,
54457 13: $VI,
54458 15: $VJ,
54459 16: $VK,
54460 17: $VL,
54461 18: $VM,
54462 30: $VN,
54463 35: $VO,
54464 40: [1, 222],
54465 50: 137,
54466 51: $VQ,
54467 55: $VR,
54468 71: $VS,
54469 89: 193,
54470 92: 140,
54471 93: $VT,
54472 94: $VU,
54473 95: $VV,
54474 96: $VW,
54475 97: $VX,
54476 99: 130,
54477 100: $VY,
54478 106: $VZ,
54479 107: $Vi,
54480 108: $Vj,
54481 111: $Vk,
54482 112: $Vl,
54483 114: $Vm,
54484 115: $Vn,
54485 117: $Vo,
54486 118: $Vp,
54487 119: $Vq,
54488 120: $Vr,
54489 121: $Vs
54490 }, {
54491 10: $VG,
54492 12: $VH,
54493 13: $VI,
54494 15: $VJ,
54495 16: $VK,
54496 17: $VL,
54497 18: $VM,
54498 30: $VN,
54499 35: $VO,
54500 42: [1, 223],
54501 50: 137,
54502 51: $VQ,
54503 55: $VR,
54504 71: $VS,
54505 89: 193,
54506 92: 140,
54507 93: $VT,
54508 94: $VU,
54509 95: $VV,
54510 96: $VW,
54511 97: $VX,
54512 99: 130,
54513 100: $VY,
54514 106: $VZ,
54515 107: $Vi,
54516 108: $Vj,
54517 111: $Vk,
54518 112: $Vl,
54519 114: $Vm,
54520 115: $Vn,
54521 117: $Vo,
54522 118: $Vp,
54523 119: $Vq,
54524 120: $Vr,
54525 121: $Vs
54526 }, {
54527 10: $VG,
54528 12: $VH,
54529 13: $VI,
54530 15: $VJ,
54531 16: $VK,
54532 17: $VL,
54533 18: $VM,
54534 30: $VN,
54535 35: $VO,
54536 44: [1, 224],
54537 50: 137,
54538 51: $VQ,
54539 55: $VR,
54540 71: $VS,
54541 89: 193,
54542 92: 140,
54543 93: $VT,
54544 94: $VU,
54545 95: $VV,
54546 96: $VW,
54547 97: $VX,
54548 99: 130,
54549 100: $VY,
54550 106: $VZ,
54551 107: $Vi,
54552 108: $Vj,
54553 111: $Vk,
54554 112: $Vl,
54555 114: $Vm,
54556 115: $Vn,
54557 117: $Vo,
54558 118: $Vp,
54559 119: $Vq,
54560 120: $Vr,
54561 121: $Vs
54562 }, {
54563 10: $VG,
54564 12: $VH,
54565 13: $VI,
54566 15: $VJ,
54567 16: $VK,
54568 17: $VL,
54569 18: $VM,
54570 30: $VN,
54571 34: [1, 225],
54572 35: $VO,
54573 50: 137,
54574 51: $VQ,
54575 55: $VR,
54576 71: $VS,
54577 89: 193,
54578 92: 140,
54579 93: $VT,
54580 94: $VU,
54581 95: $VV,
54582 96: $VW,
54583 97: $VX,
54584 99: 130,
54585 100: $VY,
54586 106: $VZ,
54587 107: $Vi,
54588 108: $Vj,
54589 111: $Vk,
54590 112: $Vl,
54591 114: $Vm,
54592 115: $Vn,
54593 117: $Vo,
54594 118: $Vp,
54595 119: $Vq,
54596 120: $Vr,
54597 121: $Vs
54598 }, {
54599 10: $VG,
54600 12: $VH,
54601 13: $VI,
54602 15: $VJ,
54603 16: $VK,
54604 17: $VL,
54605 18: $VM,
54606 30: $VN,
54607 35: $VO,
54608 46: [1, 226],
54609 48: [1, 227],
54610 50: 137,
54611 51: $VQ,
54612 55: $VR,
54613 71: $VS,
54614 89: 193,
54615 92: 140,
54616 93: $VT,
54617 94: $VU,
54618 95: $VV,
54619 96: $VW,
54620 97: $VX,
54621 99: 130,
54622 100: $VY,
54623 106: $VZ,
54624 107: $Vi,
54625 108: $Vj,
54626 111: $Vk,
54627 112: $Vl,
54628 114: $Vm,
54629 115: $Vn,
54630 117: $Vo,
54631 118: $Vp,
54632 119: $Vq,
54633 120: $Vr,
54634 121: $Vs
54635 }, {
54636 10: $VG,
54637 12: $VH,
54638 13: $VI,
54639 15: $VJ,
54640 16: $VK,
54641 17: $VL,
54642 18: $VM,
54643 30: $VN,
54644 35: $VO,
54645 46: [1, 229],
54646 48: [1, 228],
54647 50: 137,
54648 51: $VQ,
54649 55: $VR,
54650 71: $VS,
54651 89: 193,
54652 92: 140,
54653 93: $VT,
54654 94: $VU,
54655 95: $VV,
54656 96: $VW,
54657 97: $VX,
54658 99: 130,
54659 100: $VY,
54660 106: $VZ,
54661 107: $Vi,
54662 108: $Vj,
54663 111: $Vk,
54664 112: $Vl,
54665 114: $Vm,
54666 115: $Vn,
54667 117: $Vo,
54668 118: $Vp,
54669 119: $Vq,
54670 120: $Vr,
54671 121: $Vs
54672 }, o($Vy, [2, 28]), o($V3, [2, 23]), {
54673 10: $VG,
54674 12: $VH,
54675 13: $VI,
54676 15: $VJ,
54677 16: $VK,
54678 17: $VL,
54679 18: $VM,
54680 30: $VN,
54681 33: 230,
54682 35: $VO,
54683 36: $VP,
54684 50: 137,
54685 51: $VQ,
54686 55: $VR,
54687 71: $VS,
54688 89: 128,
54689 92: 140,
54690 93: $VT,
54691 94: $VU,
54692 95: $VV,
54693 96: $VW,
54694 97: $VX,
54695 99: 130,
54696 100: $VY,
54697 106: $VZ,
54698 107: $Vi,
54699 108: $Vj,
54700 111: $Vk,
54701 112: $Vl,
54702 114: $Vm,
54703 115: $Vn,
54704 117: $Vo,
54705 118: $Vp,
54706 119: $Vq,
54707 120: $Vr,
54708 121: $Vs
54709 }, o($VE, $V4, {
54710 5: 231
54711 }), o($VE, $V4, {
54712 5: 232
54713 }), o($Vt, [2, 39]), o($VF, [2, 75]), o($VF, [2, 74]), {
54714 10: $VG,
54715 12: $VH,
54716 13: $VI,
54717 15: $VJ,
54718 16: $VK,
54719 17: $VL,
54720 18: $VM,
54721 30: $VN,
54722 35: $VO,
54723 50: 137,
54724 51: $VQ,
54725 55: $VR,
54726 71: $VS,
54727 88: [1, 233],
54728 89: 193,
54729 92: 140,
54730 93: $VT,
54731 94: $VU,
54732 95: $VV,
54733 96: $VW,
54734 97: $VX,
54735 99: 130,
54736 100: $VY,
54737 106: $VZ,
54738 107: $Vi,
54739 108: $Vj,
54740 111: $Vk,
54741 112: $Vl,
54742 114: $Vm,
54743 115: $Vn,
54744 117: $Vo,
54745 118: $Vp,
54746 119: $Vq,
54747 120: $Vr,
54748 121: $Vs
54749 }, o($VF, [2, 77]), o($VF, [2, 79]), o($VF, [2, 81]), o($VF, [2, 83]), o($V$, [2, 121]), o($VF, [2, 78]), o($VF, [2, 80]), o($VF, [2, 82]), o($VF, [2, 84]), o($VF, [2, 86]), o($VF, [2, 88]), o($VF, [2, 90]), o($VF, [2, 85]), o($VF, [2, 87]), o($VF, [2, 89]), o($VF, [2, 91]), o($VF, [2, 93]), o($VF, [2, 95]), o($VF, [2, 97]), o($VF, [2, 92]), o($VF, [2, 94]), o($VF, [2, 96]), {
54750 10: $V11,
54751 51: $V21,
54752 93: $V31,
54753 101: 234,
54754 102: $V41,
54755 106: $V51,
54756 107: $V61,
54757 109: 235,
54758 110: 236,
54759 111: $V71,
54760 112: $V81,
54761 113: $V91,
54762 114: $Va1,
54763 115: $Vb1
54764 }, {
54765 10: $V11,
54766 51: $V21,
54767 93: $V31,
54768 101: 248,
54769 102: $V41,
54770 106: $V51,
54771 107: $V61,
54772 109: 235,
54773 110: 236,
54774 111: $V71,
54775 112: $V81,
54776 113: $V91,
54777 114: $Va1,
54778 115: $Vb1
54779 }, {
54780 10: $V11,
54781 51: $V21,
54782 93: $V31,
54783 101: 249,
54784 102: $V41,
54785 104: [1, 250],
54786 106: $V51,
54787 107: $V61,
54788 109: 235,
54789 110: 236,
54790 111: $V71,
54791 112: $V81,
54792 113: $V91,
54793 114: $Va1,
54794 115: $Vb1
54795 }, {
54796 10: $V11,
54797 51: $V21,
54798 93: $V31,
54799 101: 251,
54800 102: $V41,
54801 104: [1, 252],
54802 106: $V51,
54803 107: $V61,
54804 109: 235,
54805 110: 236,
54806 111: $V71,
54807 112: $V81,
54808 113: $V91,
54809 114: $Va1,
54810 115: $Vb1
54811 }, {
54812 107: [1, 253]
54813 }, {
54814 10: $V11,
54815 51: $V21,
54816 93: $V31,
54817 101: 254,
54818 102: $V41,
54819 106: $V51,
54820 107: $V61,
54821 109: 235,
54822 110: 236,
54823 111: $V71,
54824 112: $V81,
54825 113: $V91,
54826 114: $Va1,
54827 115: $Vb1
54828 }, {
54829 10: $V11,
54830 51: $V21,
54831 93: $V31,
54832 101: 255,
54833 102: $V41,
54834 106: $V51,
54835 107: $V61,
54836 109: 235,
54837 110: 236,
54838 111: $V71,
54839 112: $V81,
54840 113: $V91,
54841 114: $Va1,
54842 115: $Vb1
54843 }, {
54844 13: $V9,
54845 18: $Va,
54846 31: 256,
54847 49: 30,
54848 50: 32,
54849 51: $Vc,
54850 107: $Vi,
54851 108: $Vj,
54852 111: $Vk,
54853 112: $Vl,
54854 114: $Vm,
54855 115: $Vn,
54856 117: $Vo,
54857 118: $Vp,
54858 119: $Vq,
54859 120: $Vr,
54860 121: $Vs
54861 }, {
54862 13: $V9,
54863 18: $Va,
54864 31: 257,
54865 36: [1, 258],
54866 49: 30,
54867 50: 32,
54868 51: $Vc,
54869 107: $Vi,
54870 108: $Vj,
54871 111: $Vk,
54872 112: $Vl,
54873 114: $Vm,
54874 115: $Vn,
54875 117: $Vo,
54876 118: $Vp,
54877 119: $Vq,
54878 120: $Vr,
54879 121: $Vs
54880 }, o($Vy, [2, 45], {
54881 21: 259,
54882 10: $Vz
54883 }), {
54884 10: $VG,
54885 12: $VH,
54886 13: $VI,
54887 15: $VJ,
54888 16: $VK,
54889 17: $VL,
54890 18: $VM,
54891 30: $VN,
54892 35: $VO,
54893 40: [1, 260],
54894 50: 137,
54895 51: $VQ,
54896 55: $VR,
54897 71: $VS,
54898 89: 193,
54899 92: 140,
54900 93: $VT,
54901 94: $VU,
54902 95: $VV,
54903 96: $VW,
54904 97: $VX,
54905 99: 130,
54906 100: $VY,
54907 106: $VZ,
54908 107: $Vi,
54909 108: $Vj,
54910 111: $Vk,
54911 112: $Vl,
54912 114: $Vm,
54913 115: $Vn,
54914 117: $Vo,
54915 118: $Vp,
54916 119: $Vq,
54917 120: $Vr,
54918 121: $Vs
54919 }, o($Vy, [2, 51], {
54920 21: 261,
54921 10: $Vz
54922 }), o($Vy, [2, 49], {
54923 21: 262,
54924 10: $Vz
54925 }), o($Vy, [2, 53], {
54926 21: 263,
54927 10: $Vz
54928 }), o($Vy, [2, 55], {
54929 21: 264,
54930 10: $Vz
54931 }), o($Vy, [2, 57], {
54932 21: 265,
54933 10: $Vz
54934 }), o($Vy, [2, 61], {
54935 21: 266,
54936 10: $Vz
54937 }), o($Vy, [2, 59], {
54938 21: 267,
54939 10: $Vz
54940 }), o($Vy, [2, 63], {
54941 21: 268,
54942 10: $Vz
54943 }), {
54944 10: $VG,
54945 12: $VH,
54946 13: $VI,
54947 15: $VJ,
54948 16: $VK,
54949 17: $VL,
54950 18: $VM,
54951 30: $VN,
54952 34: [1, 269],
54953 35: $VO,
54954 50: 137,
54955 51: $VQ,
54956 55: $VR,
54957 71: $VS,
54958 89: 193,
54959 92: 140,
54960 93: $VT,
54961 94: $VU,
54962 95: $VV,
54963 96: $VW,
54964 97: $VX,
54965 99: 130,
54966 100: $VY,
54967 106: $VZ,
54968 107: $Vi,
54969 108: $Vj,
54970 111: $Vk,
54971 112: $Vl,
54972 114: $Vm,
54973 115: $Vn,
54974 117: $Vo,
54975 118: $Vp,
54976 119: $Vq,
54977 120: $Vr,
54978 121: $Vs
54979 }, {
54980 6: 10,
54981 7: 11,
54982 8: $V5,
54983 9: $V6,
54984 10: $V7,
54985 11: $V8,
54986 13: $V9,
54987 18: $Va,
54988 23: 16,
54989 25: 17,
54990 26: 18,
54991 27: 19,
54992 28: 20,
54993 29: 21,
54994 30: $Vb,
54995 31: 29,
54996 35: [1, 270],
54997 37: 23,
54998 49: 30,
54999 50: 32,
55000 51: $Vc,
55001 93: $Vd,
55002 94: $Ve,
55003 95: $Vf,
55004 96: $Vg,
55005 97: $Vh,
55006 107: $Vi,
55007 108: $Vj,
55008 111: $Vk,
55009 112: $Vl,
55010 114: $Vm,
55011 115: $Vn,
55012 117: $Vo,
55013 118: $Vp,
55014 119: $Vq,
55015 120: $Vr,
55016 121: $Vs
55017 }, {
55018 6: 10,
55019 7: 11,
55020 8: $V5,
55021 9: $V6,
55022 10: $V7,
55023 11: $V8,
55024 13: $V9,
55025 18: $Va,
55026 23: 16,
55027 25: 17,
55028 26: 18,
55029 27: 19,
55030 28: 20,
55031 29: 21,
55032 30: $Vb,
55033 31: 29,
55034 35: [1, 271],
55035 37: 23,
55036 49: 30,
55037 50: 32,
55038 51: $Vc,
55039 93: $Vd,
55040 94: $Ve,
55041 95: $Vf,
55042 96: $Vg,
55043 97: $Vh,
55044 107: $Vi,
55045 108: $Vj,
55046 111: $Vk,
55047 112: $Vl,
55048 114: $Vm,
55049 115: $Vn,
55050 117: $Vo,
55051 118: $Vp,
55052 119: $Vq,
55053 120: $Vr,
55054 121: $Vs
55055 }, o([10, 13, 18, 51, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121], [2, 119]), o($Vx, [2, 145], {
55056 108: $Vc1
55057 }), o($Vd1, [2, 156], {
55058 110: 273,
55059 10: $V11,
55060 51: $V21,
55061 93: $V31,
55062 102: $V41,
55063 106: $V51,
55064 107: $V61,
55065 111: $V71,
55066 112: $V81,
55067 113: $V91,
55068 114: $Va1,
55069 115: $Vb1
55070 }), o($Ve1, [2, 158]), o($Ve1, [2, 160]), o($Ve1, [2, 161]), o($Ve1, [2, 162]), o($Ve1, [2, 163]), o($Ve1, [2, 164]), o($Ve1, [2, 165]), o($Ve1, [2, 166]), o($Ve1, [2, 167]), o($Ve1, [2, 168]), o($Ve1, [2, 169]), o($Ve1, [2, 170]), o($Vx, [2, 146], {
55071 108: $Vc1
55072 }), o($Vx, [2, 147], {
55073 108: $Vc1
55074 }), {
55075 10: [1, 274]
55076 }, o($Vx, [2, 148], {
55077 108: $Vc1
55078 }), {
55079 10: [1, 275]
55080 }, o($V01, [2, 155]), o($Vx, [2, 138], {
55081 108: $Vc1
55082 }), o($Vx, [2, 139], {
55083 108: $Vc1
55084 }), o($Vx, [2, 140], {
55085 50: 32,
55086 49: 110,
55087 13: $V9,
55088 18: $Va,
55089 51: $Vc,
55090 107: $Vi,
55091 108: $Vj,
55092 111: $Vk,
55093 112: $Vl,
55094 114: $Vm,
55095 115: $Vn,
55096 117: $Vo,
55097 118: $Vp,
55098 119: $Vq,
55099 120: $Vr,
55100 121: $Vs
55101 }), o($Vx, [2, 141], {
55102 50: 32,
55103 49: 110,
55104 10: [1, 276],
55105 13: $V9,
55106 18: $Va,
55107 51: $Vc,
55108 107: $Vi,
55109 108: $Vj,
55110 111: $Vk,
55111 112: $Vl,
55112 114: $Vm,
55113 115: $Vn,
55114 117: $Vo,
55115 118: $Vp,
55116 119: $Vq,
55117 120: $Vr,
55118 121: $Vs
55119 }), o($Vx, [2, 143], {
55120 10: [1, 277]
55121 }), o($Vy, [2, 46]), {
55122 40: [1, 278]
55123 }, o($Vy, [2, 52]), o($Vy, [2, 50]), o($Vy, [2, 54]), o($Vy, [2, 56]), o($Vy, [2, 58]), o($Vy, [2, 62]), o($Vy, [2, 60]), o($Vy, [2, 64]), {
55124 8: $Vu,
55125 9: $Vv,
55126 11: $Vw,
55127 24: 279
55128 }, o($Vt, [2, 38]), o($Vt, [2, 37]), {
55129 10: $V11,
55130 51: $V21,
55131 93: $V31,
55132 102: $V41,
55133 106: $V51,
55134 107: $V61,
55135 109: 280,
55136 110: 236,
55137 111: $V71,
55138 112: $V81,
55139 113: $V91,
55140 114: $Va1,
55141 115: $Vb1
55142 }, o($Ve1, [2, 159]), {
55143 13: $V9,
55144 18: $Va,
55145 31: 281,
55146 49: 30,
55147 50: 32,
55148 51: $Vc,
55149 107: $Vi,
55150 108: $Vj,
55151 111: $Vk,
55152 112: $Vl,
55153 114: $Vm,
55154 115: $Vn,
55155 117: $Vo,
55156 118: $Vp,
55157 119: $Vq,
55158 120: $Vr,
55159 121: $Vs
55160 }, {
55161 13: $V9,
55162 18: $Va,
55163 31: 282,
55164 49: 30,
55165 50: 32,
55166 51: $Vc,
55167 107: $Vi,
55168 108: $Vj,
55169 111: $Vk,
55170 112: $Vl,
55171 114: $Vm,
55172 115: $Vn,
55173 117: $Vo,
55174 118: $Vp,
55175 119: $Vq,
55176 120: $Vr,
55177 121: $Vs
55178 }, {
55179 36: [1, 283]
55180 }, {
55181 36: [1, 284]
55182 }, o($Vy, [2, 47], {
55183 21: 285,
55184 10: $Vz
55185 }), o($VE, $V4, {
55186 5: 286
55187 }), o($Vd1, [2, 157], {
55188 110: 273,
55189 10: $V11,
55190 51: $V21,
55191 93: $V31,
55192 102: $V41,
55193 106: $V51,
55194 107: $V61,
55195 111: $V71,
55196 112: $V81,
55197 113: $V91,
55198 114: $Va1,
55199 115: $Vb1
55200 }), o($Vx, [2, 151], {
55201 50: 32,
55202 49: 110,
55203 10: [1, 287],
55204 13: $V9,
55205 18: $Va,
55206 51: $Vc,
55207 107: $Vi,
55208 108: $Vj,
55209 111: $Vk,
55210 112: $Vl,
55211 114: $Vm,
55212 115: $Vn,
55213 117: $Vo,
55214 118: $Vp,
55215 119: $Vq,
55216 120: $Vr,
55217 121: $Vs
55218 }), o($Vx, [2, 152], {
55219 50: 32,
55220 49: 110,
55221 10: [1, 288],
55222 13: $V9,
55223 18: $Va,
55224 51: $Vc,
55225 107: $Vi,
55226 108: $Vj,
55227 111: $Vk,
55228 112: $Vl,
55229 114: $Vm,
55230 115: $Vn,
55231 117: $Vo,
55232 118: $Vp,
55233 119: $Vq,
55234 120: $Vr,
55235 121: $Vs
55236 }), o($Vx, [2, 142]), o($Vx, [2, 144]), o($Vy, [2, 48]), {
55237 6: 10,
55238 7: 11,
55239 8: $V5,
55240 9: $V6,
55241 10: $V7,
55242 11: $V8,
55243 13: $V9,
55244 18: $Va,
55245 23: 16,
55246 25: 17,
55247 26: 18,
55248 27: 19,
55249 28: 20,
55250 29: 21,
55251 30: $Vb,
55252 31: 29,
55253 35: [1, 289],
55254 37: 23,
55255 49: 30,
55256 50: 32,
55257 51: $Vc,
55258 93: $Vd,
55259 94: $Ve,
55260 95: $Vf,
55261 96: $Vg,
55262 97: $Vh,
55263 107: $Vi,
55264 108: $Vj,
55265 111: $Vk,
55266 112: $Vl,
55267 114: $Vm,
55268 115: $Vn,
55269 117: $Vo,
55270 118: $Vp,
55271 119: $Vq,
55272 120: $Vr,
55273 121: $Vs
55274 }, {
55275 10: $V11,
55276 51: $V21,
55277 93: $V31,
55278 101: 290,
55279 102: $V41,
55280 106: $V51,
55281 107: $V61,
55282 109: 235,
55283 110: 236,
55284 111: $V71,
55285 112: $V81,
55286 113: $V91,
55287 114: $Va1,
55288 115: $Vb1
55289 }, {
55290 10: $V11,
55291 51: $V21,
55292 93: $V31,
55293 101: 291,
55294 102: $V41,
55295 106: $V51,
55296 107: $V61,
55297 109: 235,
55298 110: 236,
55299 111: $V71,
55300 112: $V81,
55301 113: $V91,
55302 114: $Va1,
55303 115: $Vb1
55304 }, o($Vt, [2, 36]), o($Vx, [2, 149], {
55305 108: $Vc1
55306 }), o($Vx, [2, 150], {
55307 108: $Vc1
55308 })],
55309 defaultActions: {},
55310 parseError: function parseError(str, hash) {
55311 if (hash.recoverable) {
55312 this.trace(str);
55313 } else {
55314 var error = new Error(str);
55315 error.hash = hash;
55316 throw error;
55317 }
55318 },
55319 parse: function parse(input) {
55320 var self = this,
55321 stack = [0],
55322 tstack = [],
55323 vstack = [null],
55324 lstack = [],
55325 table = this.table,
55326 yytext = '',
55327 yylineno = 0,
55328 yyleng = 0,
55329 recovering = 0,
55330 TERROR = 2,
55331 EOF = 1;
55332 var args = lstack.slice.call(arguments, 1);
55333 var lexer = Object.create(this.lexer);
55334 var sharedState = {
55335 yy: {}
55336 };
55337
55338 for (var k in this.yy) {
55339 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
55340 sharedState.yy[k] = this.yy[k];
55341 }
55342 }
55343
55344 lexer.setInput(input, sharedState.yy);
55345 sharedState.yy.lexer = lexer;
55346 sharedState.yy.parser = this;
55347
55348 if (typeof lexer.yylloc == 'undefined') {
55349 lexer.yylloc = {};
55350 }
55351
55352 var yyloc = lexer.yylloc;
55353 lstack.push(yyloc);
55354 var ranges = lexer.options && lexer.options.ranges;
55355
55356 if (typeof sharedState.yy.parseError === 'function') {
55357 this.parseError = sharedState.yy.parseError;
55358 } else {
55359 this.parseError = Object.getPrototypeOf(this).parseError;
55360 }
55361
55362 function popStack(n) {
55363 stack.length = stack.length - 2 * n;
55364 vstack.length = vstack.length - n;
55365 lstack.length = lstack.length - n;
55366 }
55367
55368 function lex() {
55369 var token;
55370 token = tstack.pop() || lexer.lex() || EOF;
55371
55372 if (typeof token !== 'number') {
55373 if (token instanceof Array) {
55374 tstack = token;
55375 token = tstack.pop();
55376 }
55377
55378 token = self.symbols_[token] || token;
55379 }
55380
55381 return token;
55382 }
55383
55384 var symbol,
55385 preErrorSymbol,
55386 state,
55387 action,
55388 a,
55389 r,
55390 yyval = {},
55391 p,
55392 len,
55393 newState,
55394 expected;
55395
55396 while (true) {
55397 state = stack[stack.length - 1];
55398
55399 if (this.defaultActions[state]) {
55400 action = this.defaultActions[state];
55401 } else {
55402 if (symbol === null || typeof symbol == 'undefined') {
55403 symbol = lex();
55404 }
55405
55406 action = table[state] && table[state][symbol];
55407 }
55408
55409 if (typeof action === 'undefined' || !action.length || !action[0]) {
55410 var errStr = '';
55411 expected = [];
55412
55413 for (p in table[state]) {
55414 if (this.terminals_[p] && p > TERROR) {
55415 expected.push('\'' + this.terminals_[p] + '\'');
55416 }
55417 }
55418
55419 if (lexer.showPosition) {
55420 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
55421 } else {
55422 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
55423 }
55424
55425 this.parseError(errStr, {
55426 text: lexer.match,
55427 token: this.terminals_[symbol] || symbol,
55428 line: lexer.yylineno,
55429 loc: yyloc,
55430 expected: expected
55431 });
55432 }
55433
55434 if (action[0] instanceof Array && action.length > 1) {
55435 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
55436 }
55437
55438 switch (action[0]) {
55439 case 1:
55440 stack.push(symbol);
55441 vstack.push(lexer.yytext);
55442 lstack.push(lexer.yylloc);
55443 stack.push(action[1]);
55444 symbol = null;
55445
55446 if (!preErrorSymbol) {
55447 yyleng = lexer.yyleng;
55448 yytext = lexer.yytext;
55449 yylineno = lexer.yylineno;
55450 yyloc = lexer.yylloc;
55451
55452 if (recovering > 0) {
55453 recovering--;
55454 }
55455 } else {
55456 symbol = preErrorSymbol;
55457 preErrorSymbol = null;
55458 }
55459
55460 break;
55461
55462 case 2:
55463 len = this.productions_[action[1]][1];
55464 yyval.$ = vstack[vstack.length - len];
55465 yyval._$ = {
55466 first_line: lstack[lstack.length - (len || 1)].first_line,
55467 last_line: lstack[lstack.length - 1].last_line,
55468 first_column: lstack[lstack.length - (len || 1)].first_column,
55469 last_column: lstack[lstack.length - 1].last_column
55470 };
55471
55472 if (ranges) {
55473 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
55474 }
55475
55476 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
55477
55478 if (typeof r !== 'undefined') {
55479 return r;
55480 }
55481
55482 if (len) {
55483 stack = stack.slice(0, -1 * len * 2);
55484 vstack = vstack.slice(0, -1 * len);
55485 lstack = lstack.slice(0, -1 * len);
55486 }
55487
55488 stack.push(this.productions_[action[1]][0]);
55489 vstack.push(yyval.$);
55490 lstack.push(yyval._$);
55491 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
55492 stack.push(newState);
55493 break;
55494
55495 case 3:
55496 return true;
55497 }
55498 }
55499
55500 return true;
55501 }
55502 };
55503 /* generated by jison-lex 0.3.4 */
55504
55505 var lexer = function () {
55506 var lexer = {
55507 EOF: 1,
55508 parseError: function parseError(str, hash) {
55509 if (this.yy.parser) {
55510 this.yy.parser.parseError(str, hash);
55511 } else {
55512 throw new Error(str);
55513 }
55514 },
55515 // resets the lexer, sets new input
55516 setInput: function (input, yy) {
55517 this.yy = yy || this.yy || {};
55518 this._input = input;
55519 this._more = this._backtrack = this.done = false;
55520 this.yylineno = this.yyleng = 0;
55521 this.yytext = this.matched = this.match = '';
55522 this.conditionStack = ['INITIAL'];
55523 this.yylloc = {
55524 first_line: 1,
55525 first_column: 0,
55526 last_line: 1,
55527 last_column: 0
55528 };
55529
55530 if (this.options.ranges) {
55531 this.yylloc.range = [0, 0];
55532 }
55533
55534 this.offset = 0;
55535 return this;
55536 },
55537 // consumes and returns one char from the input
55538 input: function () {
55539 var ch = this._input[0];
55540 this.yytext += ch;
55541 this.yyleng++;
55542 this.offset++;
55543 this.match += ch;
55544 this.matched += ch;
55545 var lines = ch.match(/(?:\r\n?|\n).*/g);
55546
55547 if (lines) {
55548 this.yylineno++;
55549 this.yylloc.last_line++;
55550 } else {
55551 this.yylloc.last_column++;
55552 }
55553
55554 if (this.options.ranges) {
55555 this.yylloc.range[1]++;
55556 }
55557
55558 this._input = this._input.slice(1);
55559 return ch;
55560 },
55561 // unshifts one char (or a string) into the input
55562 unput: function (ch) {
55563 var len = ch.length;
55564 var lines = ch.split(/(?:\r\n?|\n)/g);
55565 this._input = ch + this._input;
55566 this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len;
55567
55568 this.offset -= len;
55569 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
55570 this.match = this.match.substr(0, this.match.length - 1);
55571 this.matched = this.matched.substr(0, this.matched.length - 1);
55572
55573 if (lines.length - 1) {
55574 this.yylineno -= lines.length - 1;
55575 }
55576
55577 var r = this.yylloc.range;
55578 this.yylloc = {
55579 first_line: this.yylloc.first_line,
55580 last_line: this.yylineno + 1,
55581 first_column: this.yylloc.first_column,
55582 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
55583 };
55584
55585 if (this.options.ranges) {
55586 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
55587 }
55588
55589 this.yyleng = this.yytext.length;
55590 return this;
55591 },
55592 // When called from action, caches matched text and appends it on next action
55593 more: function () {
55594 this._more = true;
55595 return this;
55596 },
55597 // 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.
55598 reject: function () {
55599 if (this.options.backtrack_lexer) {
55600 this._backtrack = true;
55601 } else {
55602 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(), {
55603 text: "",
55604 token: null,
55605 line: this.yylineno
55606 });
55607 }
55608
55609 return this;
55610 },
55611 // retain first n characters of the match
55612 less: function (n) {
55613 this.unput(this.match.slice(n));
55614 },
55615 // displays already matched input, i.e. for error messages
55616 pastInput: function () {
55617 var past = this.matched.substr(0, this.matched.length - this.match.length);
55618 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
55619 },
55620 // displays upcoming input, i.e. for error messages
55621 upcomingInput: function () {
55622 var next = this.match;
55623
55624 if (next.length < 20) {
55625 next += this._input.substr(0, 20 - next.length);
55626 }
55627
55628 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
55629 },
55630 // displays the character position where the lexing error occurred, i.e. for error messages
55631 showPosition: function () {
55632 var pre = this.pastInput();
55633 var c = new Array(pre.length + 1).join("-");
55634 return pre + this.upcomingInput() + "\n" + c + "^";
55635 },
55636 // test the lexed token: return FALSE when not a match, otherwise return token
55637 test_match: function (match, indexed_rule) {
55638 var token, lines, backup;
55639
55640 if (this.options.backtrack_lexer) {
55641 // save context
55642 backup = {
55643 yylineno: this.yylineno,
55644 yylloc: {
55645 first_line: this.yylloc.first_line,
55646 last_line: this.last_line,
55647 first_column: this.yylloc.first_column,
55648 last_column: this.yylloc.last_column
55649 },
55650 yytext: this.yytext,
55651 match: this.match,
55652 matches: this.matches,
55653 matched: this.matched,
55654 yyleng: this.yyleng,
55655 offset: this.offset,
55656 _more: this._more,
55657 _input: this._input,
55658 yy: this.yy,
55659 conditionStack: this.conditionStack.slice(0),
55660 done: this.done
55661 };
55662
55663 if (this.options.ranges) {
55664 backup.yylloc.range = this.yylloc.range.slice(0);
55665 }
55666 }
55667
55668 lines = match[0].match(/(?:\r\n?|\n).*/g);
55669
55670 if (lines) {
55671 this.yylineno += lines.length;
55672 }
55673
55674 this.yylloc = {
55675 first_line: this.yylloc.last_line,
55676 last_line: this.yylineno + 1,
55677 first_column: this.yylloc.last_column,
55678 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
55679 };
55680 this.yytext += match[0];
55681 this.match += match[0];
55682 this.matches = match;
55683 this.yyleng = this.yytext.length;
55684
55685 if (this.options.ranges) {
55686 this.yylloc.range = [this.offset, this.offset += this.yyleng];
55687 }
55688
55689 this._more = false;
55690 this._backtrack = false;
55691 this._input = this._input.slice(match[0].length);
55692 this.matched += match[0];
55693 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
55694
55695 if (this.done && this._input) {
55696 this.done = false;
55697 }
55698
55699 if (token) {
55700 return token;
55701 } else if (this._backtrack) {
55702 // recover context
55703 for (var k in backup) {
55704 this[k] = backup[k];
55705 }
55706
55707 return false; // rule action called reject() implying the next rule should be tested instead.
55708 }
55709
55710 return false;
55711 },
55712 // return next match in input
55713 next: function () {
55714 if (this.done) {
55715 return this.EOF;
55716 }
55717
55718 if (!this._input) {
55719 this.done = true;
55720 }
55721
55722 var token, match, tempMatch, index;
55723
55724 if (!this._more) {
55725 this.yytext = '';
55726 this.match = '';
55727 }
55728
55729 var rules = this._currentRules();
55730
55731 for (var i = 0; i < rules.length; i++) {
55732 tempMatch = this._input.match(this.rules[rules[i]]);
55733
55734 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
55735 match = tempMatch;
55736 index = i;
55737
55738 if (this.options.backtrack_lexer) {
55739 token = this.test_match(tempMatch, rules[i]);
55740
55741 if (token !== false) {
55742 return token;
55743 } else if (this._backtrack) {
55744 match = false;
55745 continue; // rule action called reject() implying a rule MISmatch.
55746 } else {
55747 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
55748 return false;
55749 }
55750 } else if (!this.options.flex) {
55751 break;
55752 }
55753 }
55754 }
55755
55756 if (match) {
55757 token = this.test_match(match, rules[index]);
55758
55759 if (token !== false) {
55760 return token;
55761 } // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
55762
55763
55764 return false;
55765 }
55766
55767 if (this._input === "") {
55768 return this.EOF;
55769 } else {
55770 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
55771 text: "",
55772 token: null,
55773 line: this.yylineno
55774 });
55775 }
55776 },
55777 // return next match that has a token
55778 lex: function lex() {
55779 var r = this.next();
55780
55781 if (r) {
55782 return r;
55783 } else {
55784 return this.lex();
55785 }
55786 },
55787 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
55788 begin: function begin(condition) {
55789 this.conditionStack.push(condition);
55790 },
55791 // pop the previously active lexer condition state off the condition stack
55792 popState: function popState() {
55793 var n = this.conditionStack.length - 1;
55794
55795 if (n > 0) {
55796 return this.conditionStack.pop();
55797 } else {
55798 return this.conditionStack[0];
55799 }
55800 },
55801 // produce the lexer rule set which is active for the currently active lexer condition state
55802 _currentRules: function _currentRules() {
55803 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
55804 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
55805 } else {
55806 return this.conditions["INITIAL"].rules;
55807 }
55808 },
55809 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
55810 topState: function topState(n) {
55811 n = this.conditionStack.length - 1 - Math.abs(n || 0);
55812
55813 if (n >= 0) {
55814 return this.conditionStack[n];
55815 } else {
55816 return "INITIAL";
55817 }
55818 },
55819 // alias for begin(condition)
55820 pushState: function pushState(condition) {
55821 this.begin(condition);
55822 },
55823 // return the number of states currently on the stack
55824 stateStackSize: function stateStackSize() {
55825 return this.conditionStack.length;
55826 },
55827 options: {},
55828 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
55829 var YYSTATE = YY_START;
55830
55831 switch ($avoiding_name_collisions) {
55832 case 0:
55833 /* do nothing */
55834 break;
55835
55836 case 1:
55837 this.begin("string");
55838 break;
55839
55840 case 2:
55841 this.popState();
55842 break;
55843
55844 case 3:
55845 return "STR";
55846 break;
55847
55848 case 4:
55849 return 93;
55850 break;
55851
55852 case 5:
55853 return 100;
55854 break;
55855
55856 case 6:
55857 return 94;
55858 break;
55859
55860 case 7:
55861 return 104;
55862 break;
55863
55864 case 8:
55865 return 95;
55866 break;
55867
55868 case 9:
55869 return 96;
55870 break;
55871
55872 case 10:
55873 return 97;
55874 break;
55875
55876 case 11:
55877 return 12;
55878 break;
55879
55880 case 12:
55881 return 30;
55882 break;
55883
55884 case 13:
55885 return 35;
55886 break;
55887
55888 case 14:
55889 return 13;
55890 break;
55891
55892 case 15:
55893 return 13;
55894 break;
55895
55896 case 16:
55897 return 13;
55898 break;
55899
55900 case 17:
55901 return 13;
55902 break;
55903
55904 case 18:
55905 return 13;
55906 break;
55907
55908 case 19:
55909 return 13;
55910 break;
55911
55912 case 20:
55913 return 107;
55914 break;
55915
55916 case 21:
55917 return 114;
55918 break;
55919
55920 case 22:
55921 return 112;
55922 break;
55923
55924 case 23:
55925 return 8;
55926 break;
55927
55928 case 24:
55929 return 108;
55930 break;
55931
55932 case 25:
55933 return 121;
55934 break;
55935
55936 case 26:
55937 return 60;
55938 break;
55939
55940 case 27:
55941 return 56;
55942 break;
55943
55944 case 28:
55945 return 79;
55946 break;
55947
55948 case 29:
55949 return 81;
55950 break;
55951
55952 case 30:
55953 return 80;
55954 break;
55955
55956 case 31:
55957 return 83;
55958 break;
55959
55960 case 32:
55961 return 85;
55962 break;
55963
55964 case 33:
55965 return 86;
55966 break;
55967
55968 case 34:
55969 return 87;
55970 break;
55971
55972 case 35:
55973 return 84;
55974 break;
55975
55976 case 36:
55977 return 84;
55978 break;
55979
55980 case 37:
55981 return 82;
55982 break;
55983
55984 case 38:
55985 return 82;
55986 break;
55987
55988 case 39:
55989 return 83;
55990 break;
55991
55992 case 40:
55993 return 58;
55994 break;
55995
55996 case 41:
55997 return 62;
55998 break;
55999
56000 case 42:
56001 return 68;
56002 break;
56003
56004 case 43:
56005 return 64;
56006 break;
56007
56008 case 44:
56009 return 66;
56010 break;
56011
56012 case 45:
56013 return 70;
56014 break;
56015
56016 case 46:
56017 return 68;
56018 break;
56019
56020 case 47:
56021 return 64;
56022 break;
56023
56024 case 48:
56025 return 66;
56026 break;
56027
56028 case 49:
56029 return 70;
56030 break;
56031
56032 case 50:
56033 return 76;
56034 break;
56035
56036 case 51:
56037 return 72;
56038 break;
56039
56040 case 52:
56041 return 74;
56042 break;
56043
56044 case 53:
56045 return 78;
56046 break;
56047
56048 case 54:
56049 return 57;
56050 break;
56051
56052 case 55:
56053 return 61;
56054 break;
56055
56056 case 56:
56057 return 59;
56058 break;
56059
56060 case 57:
56061 return 65;
56062 break;
56063
56064 case 58:
56065 return 69;
56066 break;
56067
56068 case 59:
56069 return 67;
56070 break;
56071
56072 case 60:
56073 return 73;
56074 break;
56075
56076 case 61:
56077 return 77;
56078 break;
56079
56080 case 62:
56081 return 75;
56082 break;
56083
56084 case 63:
56085 return 55;
56086 break;
56087
56088 case 64:
56089 return 63;
56090 break;
56091
56092 case 65:
56093 return 71;
56094 break;
56095
56096 case 66:
56097 return 41;
56098 break;
56099
56100 case 67:
56101 return 42;
56102 break;
56103
56104 case 68:
56105 return 51;
56106 break;
56107
56108 case 69:
56109 return 115;
56110 break;
56111
56112 case 70:
56113 return 119;
56114 break;
56115
56116 case 71:
56117 return 106;
56118 break;
56119
56120 case 72:
56121 return 120;
56122 break;
56123
56124 case 73:
56125 return 120;
56126 break;
56127
56128 case 74:
56129 return 16;
56130 break;
56131
56132 case 75:
56133 return 15;
56134 break;
56135
56136 case 76:
56137 return 17;
56138 break;
56139
56140 case 77:
56141 return 18;
56142 break;
56143
56144 case 78:
56145 return 111;
56146 break;
56147
56148 case 79:
56149 return 46;
56150 break;
56151
56152 case 80:
56153 return 45;
56154 break;
56155
56156 case 81:
56157 return 48;
56158 break;
56159
56160 case 82:
56161 return 47;
56162 break;
56163
56164 case 83:
56165 return 117;
56166 break;
56167
56168 case 84:
56169 return 118;
56170 break;
56171
56172 case 85:
56173 return 88;
56174 break;
56175
56176 case 86:
56177 return 39;
56178 break;
56179
56180 case 87:
56181 return 40;
56182 break;
56183
56184 case 88:
56185 return 32;
56186 break;
56187
56188 case 89:
56189 return 34;
56190 break;
56191
56192 case 90:
56193 return 43;
56194 break;
56195
56196 case 91:
56197 return 44;
56198 break;
56199
56200 case 92:
56201 return 122;
56202 break;
56203
56204 case 93:
56205 return 9;
56206 break;
56207
56208 case 94:
56209 return 10;
56210 break;
56211
56212 case 95:
56213 return 11;
56214 break;
56215 }
56216 },
56217 rules: [/^(?:%%[^\n]*)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:click\b)/, /^(?:graph\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:LR\b)/, /^(?:RL\b)/, /^(?:TB\b)/, /^(?:BT\b)/, /^(?:TD\b)/, /^(?:BR\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)/, /^(?:$)/],
56218 conditions: {
56219 "string": {
56220 "rules": [2, 3],
56221 "inclusive": false
56222 },
56223 "INITIAL": {
56224 "rules": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 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],
56225 "inclusive": true
56226 }
56227 }
56228 };
56229 return lexer;
56230 }();
56231
56232 parser.lexer = lexer;
56233
56234 function Parser() {
56235 this.yy = {};
56236 }
56237
56238 Parser.prototype = parser;
56239 parser.Parser = Parser;
56240 return new Parser();
56241}();
56242
56243if (true) {
56244 exports.parser = parser;
56245 exports.Parser = parser.Parser;
56246
56247 exports.parse = function () {
56248 return parser.parse.apply(parser, arguments);
56249 };
56250
56251 exports.main = function commonjsMain(args) {
56252 if (!args[1]) {
56253 console.log('Usage: ' + args[0] + ' FILE');
56254 process.exit(1);
56255 }
56256
56257 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");
56258
56259 return exports.parser.parse(source);
56260 };
56261
56262 if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
56263 exports.main(process.argv.slice(1));
56264 }
56265}
56266/* 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)))
56267
56268/***/ }),
56269
56270/***/ "./src/diagrams/gantt/ganttDb.js":
56271/*!***************************************!*\
56272 !*** ./src/diagrams/gantt/ganttDb.js ***!
56273 \***************************************/
56274/*! exports provided: clear, setAxisFormat, getAxisFormat, setDateFormat, enableInclusiveEndDates, endDatesAreInclusive, getDateFormat, setExcludes, getExcludes, setTitle, getTitle, addSection, getSections, getTasks, addTask, findTaskById, addTaskOrg, setLink, setClass, setClickEvent, bindFunctions, default */
56275/***/ (function(module, __webpack_exports__, __webpack_require__) {
56276
56277"use strict";
56278__webpack_require__.r(__webpack_exports__);
56279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
56280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAxisFormat", function() { return setAxisFormat; });
56281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAxisFormat", function() { return getAxisFormat; });
56282/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDateFormat", function() { return setDateFormat; });
56283/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableInclusiveEndDates", function() { return enableInclusiveEndDates; });
56284/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endDatesAreInclusive", function() { return endDatesAreInclusive; });
56285/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDateFormat", function() { return getDateFormat; });
56286/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setExcludes", function() { return setExcludes; });
56287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getExcludes", function() { return getExcludes; });
56288/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
56289/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
56290/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSection", function() { return addSection; });
56291/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSections", function() { return getSections; });
56292/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTasks", function() { return getTasks; });
56293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTask", function() { return addTask; });
56294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findTaskById", function() { return findTaskById; });
56295/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTaskOrg", function() { return addTaskOrg; });
56296/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
56297/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClass", function() { return setClass; });
56298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
56299/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
56300/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
56301/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
56302/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js");
56303/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__);
56304/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
56305/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
56306
56307
56308
56309
56310const config = Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])();
56311let dateFormat = '';
56312let axisFormat = '';
56313let excludes = [];
56314let title = '';
56315let sections = [];
56316let tasks = [];
56317let currentSection = '';
56318const tags = ['active', 'done', 'crit', 'milestone'];
56319let funs = [];
56320let inclusiveEndDates = false;
56321const clear = function () {
56322 sections = [];
56323 tasks = [];
56324 currentSection = '';
56325 funs = [];
56326 title = '';
56327 taskCnt = 0;
56328 lastTask = undefined;
56329 lastTaskID = undefined;
56330 rawTasks = [];
56331 dateFormat = '';
56332 axisFormat = '';
56333 excludes = [];
56334 inclusiveEndDates = false;
56335};
56336const setAxisFormat = function (txt) {
56337 axisFormat = txt;
56338};
56339const getAxisFormat = function () {
56340 return axisFormat;
56341};
56342const setDateFormat = function (txt) {
56343 dateFormat = txt;
56344};
56345const enableInclusiveEndDates = function () {
56346 inclusiveEndDates = true;
56347};
56348const endDatesAreInclusive = function () {
56349 return inclusiveEndDates;
56350};
56351const getDateFormat = function () {
56352 return dateFormat;
56353};
56354const setExcludes = function (txt) {
56355 excludes = txt.toLowerCase().split(/[\s,]+/);
56356};
56357const getExcludes = function () {
56358 return excludes;
56359};
56360const setTitle = function (txt) {
56361 title = txt;
56362};
56363const getTitle = function () {
56364 return title;
56365};
56366const addSection = function (txt) {
56367 currentSection = txt;
56368 sections.push(txt);
56369};
56370const getSections = function () {
56371 return sections;
56372};
56373const getTasks = function () {
56374 let allItemsPricessed = compileTasks();
56375 const maxDepth = 10;
56376 let iterationCount = 0;
56377
56378 while (!allItemsPricessed && iterationCount < maxDepth) {
56379 allItemsPricessed = compileTasks();
56380 iterationCount++;
56381 }
56382
56383 tasks = rawTasks;
56384 return tasks;
56385};
56386
56387const isInvalidDate = function (date, dateFormat, excludes) {
56388 if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) {
56389 return true;
56390 }
56391
56392 if (excludes.indexOf(date.format('dddd').toLowerCase()) >= 0) {
56393 return true;
56394 }
56395
56396 return excludes.indexOf(date.format(dateFormat.trim())) >= 0;
56397};
56398
56399const checkTaskDates = function (task, dateFormat, excludes) {
56400 if (!excludes.length || task.manualEndTime) return;
56401 let startTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.startTime, dateFormat, true);
56402 startTime.add(1, 'd');
56403 let endTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.endTime, dateFormat, true);
56404 let renderEndTime = fixTaskDates(startTime, endTime, dateFormat, excludes);
56405 task.endTime = endTime.toDate();
56406 task.renderEndTime = renderEndTime;
56407};
56408
56409const fixTaskDates = function (startTime, endTime, dateFormat, excludes) {
56410 let invalid = false;
56411 let renderEndTime = null;
56412
56413 while (startTime.date() <= endTime.date()) {
56414 if (!invalid) {
56415 renderEndTime = endTime.toDate();
56416 }
56417
56418 invalid = isInvalidDate(startTime, dateFormat, excludes);
56419
56420 if (invalid) {
56421 endTime.add(1, 'd');
56422 }
56423
56424 startTime.add(1, 'd');
56425 }
56426
56427 return renderEndTime;
56428};
56429
56430const getStartDate = function (prevTime, dateFormat, str) {
56431 str = str.trim(); // Test for after
56432
56433 const re = /^after\s+([\d\w-]+)/;
56434 const afterStatement = re.exec(str.trim());
56435
56436 if (afterStatement !== null) {
56437 const task = findTaskById(afterStatement[1]);
56438
56439 if (typeof task === 'undefined') {
56440 const dt = new Date();
56441 dt.setHours(0, 0, 0, 0);
56442 return dt;
56443 }
56444
56445 return task.endTime;
56446 } // Check for actual date set
56447
56448
56449 let mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
56450
56451 if (mDate.isValid()) {
56452 return mDate.toDate();
56453 } else {
56454 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Invalid date:' + str);
56455 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('With date format:' + dateFormat.trim());
56456 } // Default date - now
56457
56458
56459 return new Date();
56460};
56461
56462const durationToDate = function (durationStatement, relativeTime) {
56463 if (durationStatement !== null) {
56464 switch (durationStatement[2]) {
56465 case 's':
56466 relativeTime.add(durationStatement[1], 'seconds');
56467 break;
56468
56469 case 'm':
56470 relativeTime.add(durationStatement[1], 'minutes');
56471 break;
56472
56473 case 'h':
56474 relativeTime.add(durationStatement[1], 'hours');
56475 break;
56476
56477 case 'd':
56478 relativeTime.add(durationStatement[1], 'days');
56479 break;
56480
56481 case 'w':
56482 relativeTime.add(durationStatement[1], 'weeks');
56483 break;
56484 }
56485 } // Default date - now
56486
56487
56488 return relativeTime.toDate();
56489};
56490
56491const getEndDate = function (prevTime, dateFormat, str, inclusive) {
56492 inclusive = inclusive || false;
56493 str = str.trim(); // Check for actual date
56494
56495 let mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
56496
56497 if (mDate.isValid()) {
56498 if (inclusive) {
56499 mDate.add(1, 'd');
56500 }
56501
56502 return mDate.toDate();
56503 }
56504
56505 return durationToDate(/^([\d]+)([wdhms])/.exec(str.trim()), moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(prevTime));
56506};
56507
56508let taskCnt = 0;
56509
56510const parseId = function (idStr) {
56511 if (typeof idStr === 'undefined') {
56512 taskCnt = taskCnt + 1;
56513 return 'task' + taskCnt;
56514 }
56515
56516 return idStr;
56517}; // id, startDate, endDate
56518// id, startDate, length
56519// id, after x, endDate
56520// id, after x, length
56521// startDate, endDate
56522// startDate, length
56523// after x, endDate
56524// after x, length
56525// endDate
56526// length
56527
56528
56529const compileData = function (prevTask, dataStr) {
56530 let ds;
56531
56532 if (dataStr.substr(0, 1) === ':') {
56533 ds = dataStr.substr(1, dataStr.length);
56534 } else {
56535 ds = dataStr;
56536 }
56537
56538 const data = ds.split(',');
56539 const task = {}; // Get tags like active, done, crit and milestone
56540
56541 getTaskTags(data, task, tags);
56542
56543 for (let i = 0; i < data.length; i++) {
56544 data[i] = data[i].trim();
56545 }
56546
56547 let endTimeData = '';
56548
56549 switch (data.length) {
56550 case 1:
56551 task.id = parseId();
56552 task.startTime = prevTask.endTime;
56553 endTimeData = data[0];
56554 break;
56555
56556 case 2:
56557 task.id = parseId();
56558 task.startTime = getStartDate(undefined, dateFormat, data[0]);
56559 endTimeData = data[1];
56560 break;
56561
56562 case 3:
56563 task.id = parseId(data[0]);
56564 task.startTime = getStartDate(undefined, dateFormat, data[1]);
56565 endTimeData = data[2];
56566 break;
56567
56568 default:
56569 }
56570
56571 if (endTimeData) {
56572 task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
56573 task.manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(endTimeData, 'YYYY-MM-DD', true).isValid();
56574 checkTaskDates(task, dateFormat, excludes);
56575 }
56576
56577 return task;
56578};
56579
56580const parseData = function (prevTaskId, dataStr) {
56581 let ds;
56582
56583 if (dataStr.substr(0, 1) === ':') {
56584 ds = dataStr.substr(1, dataStr.length);
56585 } else {
56586 ds = dataStr;
56587 }
56588
56589 const data = ds.split(',');
56590 const task = {}; // Get tags like active, done, crit and milestone
56591
56592 getTaskTags(data, task, tags);
56593
56594 for (let i = 0; i < data.length; i++) {
56595 data[i] = data[i].trim();
56596 }
56597
56598 switch (data.length) {
56599 case 1:
56600 task.id = parseId();
56601 task.startTime = {
56602 type: 'prevTaskEnd',
56603 id: prevTaskId
56604 };
56605 task.endTime = {
56606 data: data[0]
56607 };
56608 break;
56609
56610 case 2:
56611 task.id = parseId();
56612 task.startTime = {
56613 type: 'getStartDate',
56614 startData: data[0]
56615 };
56616 task.endTime = {
56617 data: data[1]
56618 };
56619 break;
56620
56621 case 3:
56622 task.id = parseId(data[0]);
56623 task.startTime = {
56624 type: 'getStartDate',
56625 startData: data[1]
56626 };
56627 task.endTime = {
56628 data: data[2]
56629 };
56630 break;
56631
56632 default:
56633 }
56634
56635 return task;
56636};
56637
56638let lastTask;
56639let lastTaskID;
56640let rawTasks = [];
56641const taskDb = {};
56642const addTask = function (descr, data) {
56643 const rawTask = {
56644 section: currentSection,
56645 type: currentSection,
56646 processed: false,
56647 manualEndTime: false,
56648 renderEndTime: null,
56649 raw: {
56650 data: data
56651 },
56652 task: descr,
56653 classes: []
56654 };
56655 const taskInfo = parseData(lastTaskID, data);
56656 rawTask.raw.startTime = taskInfo.startTime;
56657 rawTask.raw.endTime = taskInfo.endTime;
56658 rawTask.id = taskInfo.id;
56659 rawTask.prevTaskId = lastTaskID;
56660 rawTask.active = taskInfo.active;
56661 rawTask.done = taskInfo.done;
56662 rawTask.crit = taskInfo.crit;
56663 rawTask.milestone = taskInfo.milestone;
56664 const pos = rawTasks.push(rawTask);
56665 lastTaskID = rawTask.id; // Store cross ref
56666
56667 taskDb[rawTask.id] = pos - 1;
56668};
56669const findTaskById = function (id) {
56670 const pos = taskDb[id];
56671 return rawTasks[pos];
56672};
56673const addTaskOrg = function (descr, data) {
56674 const newTask = {
56675 section: currentSection,
56676 type: currentSection,
56677 description: descr,
56678 task: descr,
56679 classes: []
56680 };
56681 const taskInfo = compileData(lastTask, data);
56682 newTask.startTime = taskInfo.startTime;
56683 newTask.endTime = taskInfo.endTime;
56684 newTask.id = taskInfo.id;
56685 newTask.active = taskInfo.active;
56686 newTask.done = taskInfo.done;
56687 newTask.crit = taskInfo.crit;
56688 newTask.milestone = taskInfo.milestone;
56689 lastTask = newTask;
56690 tasks.push(newTask);
56691};
56692
56693const compileTasks = function () {
56694 const compileTask = function (pos) {
56695 const task = rawTasks[pos];
56696 let startTime = '';
56697
56698 switch (rawTasks[pos].raw.startTime.type) {
56699 case 'prevTaskEnd':
56700 const prevTask = findTaskById(task.prevTaskId);
56701 task.startTime = prevTask.endTime;
56702 break;
56703
56704 case 'getStartDate':
56705 startTime = getStartDate(undefined, dateFormat, rawTasks[pos].raw.startTime.startData);
56706
56707 if (startTime) {
56708 rawTasks[pos].startTime = startTime;
56709 }
56710
56711 break;
56712 }
56713
56714 if (rawTasks[pos].startTime) {
56715 rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data, inclusiveEndDates);
56716
56717 if (rawTasks[pos].endTime) {
56718 rawTasks[pos].processed = true;
56719 rawTasks[pos].manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(rawTasks[pos].raw.endTime.data, 'YYYY-MM-DD', true).isValid();
56720 checkTaskDates(rawTasks[pos], dateFormat, excludes);
56721 }
56722 }
56723
56724 return rawTasks[pos].processed;
56725 };
56726
56727 let allProcessed = true;
56728
56729 for (let i = 0; i < rawTasks.length; i++) {
56730 compileTask(i);
56731 allProcessed = allProcessed && rawTasks[i].processed;
56732 }
56733
56734 return allProcessed;
56735};
56736/**
56737 * Called by parser when a link is found. Adds the URL to the vertex data.
56738 * @param ids Comma separated list of ids
56739 * @param linkStr URL to create a link for
56740 */
56741
56742
56743const setLink = function (ids, _linkStr) {
56744 let linkStr = _linkStr;
56745
56746 if (config.securityLevel === 'strict') {
56747 linkStr = Object(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__["sanitizeUrl"])(_linkStr);
56748 }
56749
56750 ids.split(',').forEach(function (id) {
56751 let rawTask = findTaskById(id);
56752
56753 if (typeof rawTask !== 'undefined') {
56754 pushFun(id, () => {
56755 window.open(linkStr, '_self');
56756 });
56757 }
56758 });
56759 setClass(ids, 'clickable');
56760};
56761/**
56762 * Called by parser when a special node is found, e.g. a clickable element.
56763 * @param ids Comma separated list of ids
56764 * @param className Class to add
56765 */
56766
56767const setClass = function (ids, className) {
56768 ids.split(',').forEach(function (id) {
56769 let rawTask = findTaskById(id);
56770
56771 if (typeof rawTask !== 'undefined') {
56772 rawTask.classes.push(className);
56773 }
56774 });
56775};
56776
56777const setClickFun = function (id, functionName, functionArgs) {
56778 if (config.securityLevel === 'strict') {
56779 return;
56780 }
56781
56782 if (typeof functionName === 'undefined') {
56783 return;
56784 }
56785
56786 let argList = [];
56787
56788 if (typeof functionArgs === 'string') {
56789 /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */
56790 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
56791
56792 for (let i = 0; i < argList.length; i++) {
56793 let item = argList[i].trim();
56794 /* Removes all double quotes at the start and end of an argument */
56795
56796 /* This preserves all starting and ending whitespace inside */
56797
56798 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
56799 item = item.substr(1, item.length - 2);
56800 }
56801
56802 argList[i] = item;
56803 }
56804 }
56805
56806 let rawTask = findTaskById(id);
56807
56808 if (typeof rawTask !== 'undefined') {
56809 pushFun(id, () => {
56810 window[functionName](...argList);
56811 });
56812 }
56813};
56814/**
56815 * The callbackFunction is executed in a click event bound to the task with the specified id or the task's assigned text
56816 * @param id The task's id
56817 * @param callbackFunction A function to be executed when clicked on the task or the task's text
56818 */
56819
56820
56821const pushFun = function (id, callbackFunction) {
56822 funs.push(function (element) {
56823 // const elem = d3.select(element).select(`[id="${id}"]`)
56824 const elem = document.querySelector(`[id="${id}"]`);
56825
56826 if (elem !== null) {
56827 elem.addEventListener('click', function () {
56828 callbackFunction();
56829 });
56830 }
56831 });
56832 funs.push(function (element) {
56833 // const elem = d3.select(element).select(`[id="${id}-text"]`)
56834 const elem = document.querySelector(`[id="${id}-text"]`);
56835
56836 if (elem !== null) {
56837 elem.addEventListener('click', function () {
56838 callbackFunction();
56839 });
56840 }
56841 });
56842};
56843/**
56844 * Called by parser when a click definition is found. Registers an event handler.
56845 * @param ids Comma separated list of ids
56846 * @param functionName Function to be called on click
56847 * @param functionArgs Function args the function should be called with
56848 */
56849
56850
56851const setClickEvent = function (ids, functionName, functionArgs) {
56852 ids.split(',').forEach(function (id) {
56853 setClickFun(id, functionName, functionArgs);
56854 });
56855 setClass(ids, 'clickable');
56856};
56857/**
56858 * Binds all functions previously added to fun (specified through click) to the element
56859 * @param element
56860 */
56861
56862const bindFunctions = function (element) {
56863 funs.forEach(function (fun) {
56864 fun(element);
56865 });
56866};
56867/* harmony default export */ __webpack_exports__["default"] = ({
56868 clear,
56869 setDateFormat,
56870 getDateFormat,
56871 enableInclusiveEndDates,
56872 endDatesAreInclusive,
56873 setAxisFormat,
56874 getAxisFormat,
56875 setTitle,
56876 getTitle,
56877 addSection,
56878 getSections,
56879 getTasks,
56880 addTask,
56881 findTaskById,
56882 addTaskOrg,
56883 setExcludes,
56884 getExcludes,
56885 setClickEvent,
56886 setLink,
56887 bindFunctions,
56888 durationToDate
56889});
56890
56891function getTaskTags(data, task, tags) {
56892 let matchFound = true;
56893
56894 while (matchFound) {
56895 matchFound = false;
56896 tags.forEach(function (t) {
56897 const pattern = '^\\s*' + t + '\\s*$';
56898 const regex = new RegExp(pattern);
56899
56900 if (data[0].match(regex)) {
56901 task[t] = true;
56902 data.shift(1);
56903 matchFound = true;
56904 }
56905 });
56906 }
56907}
56908
56909/***/ }),
56910
56911/***/ "./src/diagrams/gantt/ganttRenderer.js":
56912/*!*********************************************!*\
56913 !*** ./src/diagrams/gantt/ganttRenderer.js ***!
56914 \*********************************************/
56915/*! exports provided: setConf, draw, default */
56916/***/ (function(module, __webpack_exports__, __webpack_require__) {
56917
56918"use strict";
56919__webpack_require__.r(__webpack_exports__);
56920/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
56921/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
56922/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
56923/* harmony import */ var _parser_gantt__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser/gantt */ "./src/diagrams/gantt/parser/gantt.js");
56924/* harmony import */ var _parser_gantt__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__);
56925/* harmony import */ var _ganttDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ganttDb */ "./src/diagrams/gantt/ganttDb.js");
56926
56927
56928
56929_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy = _ganttDb__WEBPACK_IMPORTED_MODULE_2__["default"];
56930const conf = {
56931 titleTopMargin: 25,
56932 barHeight: 20,
56933 barGap: 4,
56934 topPadding: 50,
56935 rightPadding: 75,
56936 leftPadding: 75,
56937 gridLineStartPadding: 35,
56938 fontSize: 11,
56939 fontFamily: '"Open-Sans", "sans-serif"'
56940};
56941const setConf = function (cnf) {
56942 const keys = Object.keys(cnf);
56943 keys.forEach(function (key) {
56944 conf[key] = cnf[key];
56945 });
56946};
56947let w;
56948const draw = function (text, id) {
56949 _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.clear();
56950 _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].parse(text);
56951 const elem = document.getElementById(id);
56952 w = elem.parentElement.offsetWidth;
56953
56954 if (typeof w === 'undefined') {
56955 w = 1200;
56956 }
56957
56958 if (typeof conf.useWidth !== 'undefined') {
56959 w = conf.useWidth;
56960 }
56961
56962 const taskArray = _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTasks(); // Set height based on number of tasks
56963
56964 const h = taskArray.length * (conf.barHeight + conf.barGap) + 2 * conf.topPadding;
56965 elem.setAttribute('height', '100%'); // Set viewBox
56966
56967 elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h);
56968 const svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id="${id}"]`); // Set timescale
56969
56970 const timeScale = d3__WEBPACK_IMPORTED_MODULE_0__["scaleTime"]().domain([d3__WEBPACK_IMPORTED_MODULE_0__["min"](taskArray, function (d) {
56971 return d.startTime;
56972 }), d3__WEBPACK_IMPORTED_MODULE_0__["max"](taskArray, function (d) {
56973 return d.endTime;
56974 })]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
56975 let categories = [];
56976
56977 for (let i = 0; i < taskArray.length; i++) {
56978 categories.push(taskArray[i].type);
56979 }
56980
56981 const catsUnfiltered = categories; // for vert labels
56982
56983 categories = checkUnique(categories);
56984 makeGant(taskArray, w, h);
56985
56986 if (typeof conf.useWidth !== 'undefined') {
56987 elem.setAttribute('width', w);
56988 }
56989
56990 svg.append('text').text(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTitle()).attr('x', w / 2).attr('y', conf.titleTopMargin).attr('class', 'titleText');
56991
56992 function makeGant(tasks, pageWidth, pageHeight) {
56993 const barHeight = conf.barHeight;
56994 const gap = barHeight + conf.barGap;
56995 const topPadding = conf.topPadding;
56996 const leftPadding = conf.leftPadding;
56997 const colorScale = d3__WEBPACK_IMPORTED_MODULE_0__["scaleLinear"]().domain([0, categories.length]).range(['#00B9FA', '#F95002']).interpolate(d3__WEBPACK_IMPORTED_MODULE_0__["interpolateHcl"]);
56998 makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
56999 drawRects(tasks, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth, pageHeight);
57000 vertLabels(gap, topPadding, leftPadding, barHeight, colorScale);
57001 drawToday(leftPadding, topPadding, pageWidth, pageHeight);
57002 }
57003
57004 function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w, h) {
57005 // Draw background rects covering the entire width of the graph, these form the section rows.
57006 svg.append('g').selectAll('rect').data(theArray).enter().append('rect').attr('x', 0).attr('y', function (d, i) {
57007 return i * theGap + theTopPad - 2;
57008 }).attr('width', function () {
57009 return w - conf.rightPadding / 2;
57010 }).attr('height', theGap).attr('class', function (d) {
57011 for (let i = 0; i < categories.length; i++) {
57012 if (d.type === categories[i]) {
57013 return 'section section' + i % conf.numberSectionStyles;
57014 }
57015 }
57016
57017 return 'section section0';
57018 }); // Draw the rects representing the tasks
57019
57020 const rectangles = svg.append('g').selectAll('rect').data(theArray).enter();
57021 rectangles.append('rect').attr('id', function (d) {
57022 return d.id;
57023 }).attr('rx', 3).attr('ry', 3).attr('x', function (d) {
57024 if (d.milestone) {
57025 return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
57026 }
57027
57028 return timeScale(d.startTime) + theSidePad;
57029 }).attr('y', function (d, i) {
57030 return i * theGap + theTopPad;
57031 }).attr('width', function (d) {
57032 if (d.milestone) {
57033 return theBarHeight;
57034 }
57035
57036 return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
57037 }).attr('height', theBarHeight).attr('transform-origin', function (d, i) {
57038 return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + 'px ' + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + 'px';
57039 }).attr('class', function (d) {
57040 const res = 'task';
57041 let classStr = '';
57042
57043 if (d.classes.length > 0) {
57044 classStr = d.classes.join(' ');
57045 }
57046
57047 let secNum = 0;
57048
57049 for (let i = 0; i < categories.length; i++) {
57050 if (d.type === categories[i]) {
57051 secNum = i % conf.numberSectionStyles;
57052 }
57053 }
57054
57055 let taskClass = '';
57056
57057 if (d.active) {
57058 if (d.crit) {
57059 taskClass += ' activeCrit';
57060 } else {
57061 taskClass = ' active';
57062 }
57063 } else if (d.done) {
57064 if (d.crit) {
57065 taskClass = ' doneCrit';
57066 } else {
57067 taskClass = ' done';
57068 }
57069 } else {
57070 if (d.crit) {
57071 taskClass += ' crit';
57072 }
57073 }
57074
57075 if (taskClass.length === 0) {
57076 taskClass = ' task';
57077 }
57078
57079 if (d.milestone) {
57080 taskClass = ' milestone ' + taskClass;
57081 }
57082
57083 taskClass += secNum;
57084 taskClass += ' ' + classStr;
57085 return res + taskClass;
57086 }); // Append task labels
57087
57088 rectangles.append('text').attr('id', function (d) {
57089 return d.id + '-text';
57090 }).text(function (d) {
57091 return d.task;
57092 }).attr('font-size', conf.fontSize).attr('x', function (d) {
57093 let startX = timeScale(d.startTime);
57094 let endX = timeScale(d.renderEndTime || d.endTime);
57095
57096 if (d.milestone) {
57097 startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
57098 }
57099
57100 if (d.milestone) {
57101 endX = startX + theBarHeight;
57102 }
57103
57104 const textWidth = this.getBBox().width; // Check id text width > width of rectangle
57105
57106 if (textWidth > endX - startX) {
57107 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
57108 return startX + theSidePad - 5;
57109 } else {
57110 return endX + theSidePad + 5;
57111 }
57112 } else {
57113 return (endX - startX) / 2 + startX + theSidePad;
57114 }
57115 }).attr('y', function (d, i) {
57116 return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
57117 }).attr('text-height', theBarHeight).attr('class', function (d) {
57118 const startX = timeScale(d.startTime);
57119 let endX = timeScale(d.endTime);
57120
57121 if (d.milestone) {
57122 endX = startX + theBarHeight;
57123 }
57124
57125 const textWidth = this.getBBox().width;
57126 let classStr = '';
57127
57128 if (d.classes.length > 0) {
57129 classStr = d.classes.join(' ');
57130 }
57131
57132 let secNum = 0;
57133
57134 for (let i = 0; i < categories.length; i++) {
57135 if (d.type === categories[i]) {
57136 secNum = i % conf.numberSectionStyles;
57137 }
57138 }
57139
57140 let taskType = '';
57141
57142 if (d.active) {
57143 if (d.crit) {
57144 taskType = 'activeCritText' + secNum;
57145 } else {
57146 taskType = 'activeText' + secNum;
57147 }
57148 }
57149
57150 if (d.done) {
57151 if (d.crit) {
57152 taskType = taskType + ' doneCritText' + secNum;
57153 } else {
57154 taskType = taskType + ' doneText' + secNum;
57155 }
57156 } else {
57157 if (d.crit) {
57158 taskType = taskType + ' critText' + secNum;
57159 }
57160 }
57161
57162 if (d.milestone) {
57163 taskType += ' milestoneText';
57164 } // Check id text width > width of rectangle
57165
57166
57167 if (textWidth > endX - startX) {
57168 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
57169 return classStr + ' taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType;
57170 } else {
57171 return classStr + ' taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType;
57172 }
57173 } else {
57174 return classStr + ' taskText taskText' + secNum + ' ' + taskType;
57175 }
57176 });
57177 }
57178
57179 function makeGrid(theSidePad, theTopPad, w, h) {
57180 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'));
57181 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');
57182 }
57183
57184 function vertLabels(theGap, theTopPad) {
57185 const numOccurances = [];
57186 let prevGap = 0;
57187
57188 for (let i = 0; i < categories.length; i++) {
57189 numOccurances[i] = [categories[i], getCount(categories[i], catsUnfiltered)];
57190 }
57191
57192 svg.append('g') // without doing this, impossible to put grid lines behind text
57193 .selectAll('text').data(numOccurances).enter().append('text').text(function (d) {
57194 return d[0];
57195 }).attr('x', 10).attr('y', function (d, i) {
57196 if (i > 0) {
57197 for (let j = 0; j < i; j++) {
57198 prevGap += numOccurances[i - 1][1];
57199 return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
57200 }
57201 } else {
57202 return d[1] * theGap / 2 + theTopPad;
57203 }
57204 }).attr('class', function (d) {
57205 for (let i = 0; i < categories.length; i++) {
57206 if (d[0] === categories[i]) {
57207 return 'sectionTitle sectionTitle' + i % conf.numberSectionStyles;
57208 }
57209 }
57210
57211 return 'sectionTitle';
57212 });
57213 }
57214
57215 function drawToday(theSidePad, theTopPad, w, h) {
57216 const todayG = svg.append('g').attr('class', 'today');
57217 const today = new Date();
57218 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');
57219 } // from this stackexchange question: http://stackoverflow.com/questions/1890203/unique-for-arrays-in-javascript
57220
57221
57222 function checkUnique(arr) {
57223 const hash = {};
57224 const result = [];
57225
57226 for (let i = 0, l = arr.length; i < l; ++i) {
57227 if (!hash.hasOwnProperty(arr[i])) {
57228 // it works with objects! in FF, at least
57229 hash[arr[i]] = true;
57230 result.push(arr[i]);
57231 }
57232 }
57233
57234 return result;
57235 } // from this stackexchange question: http://stackoverflow.com/questions/14227981/count-how-many-strings-in-an-array-have-duplicates-in-the-same-array
57236
57237
57238 function getCounts(arr) {
57239 let i = arr.length; // const to loop over
57240
57241 const obj = {}; // obj to store results
57242
57243 while (i) {
57244 obj[arr[--i]] = (obj[arr[i]] || 0) + 1; // count occurrences
57245 }
57246
57247 return obj;
57248 } // get specific from everything
57249
57250
57251 function getCount(word, arr) {
57252 return getCounts(arr)[word] || 0;
57253 }
57254};
57255/* harmony default export */ __webpack_exports__["default"] = ({
57256 setConf,
57257 draw
57258});
57259
57260/***/ }),
57261
57262/***/ "./src/diagrams/gantt/parser/gantt.js":
57263/*!********************************************!*\
57264 !*** ./src/diagrams/gantt/parser/gantt.js ***!
57265 \********************************************/
57266/*! no static exports found */
57267/***/ (function(module, exports, __webpack_require__) {
57268
57269/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
57270
57271/*
57272 Returns a Parser object of the following structure:
57273
57274 Parser: {
57275 yy: {}
57276 }
57277
57278 Parser.prototype: {
57279 yy: {},
57280 trace: function(),
57281 symbols_: {associative list: name ==> number},
57282 terminals_: {associative list: number ==> name},
57283 productions_: [...],
57284 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
57285 table: [...],
57286 defaultActions: {...},
57287 parseError: function(str, hash),
57288 parse: function(input),
57289
57290 lexer: {
57291 EOF: 1,
57292 parseError: function(str, hash),
57293 setInput: function(input),
57294 input: function(),
57295 unput: function(str),
57296 more: function(),
57297 less: function(n),
57298 pastInput: function(),
57299 upcomingInput: function(),
57300 showPosition: function(),
57301 test_match: function(regex_match_array, rule_index),
57302 next: function(),
57303 lex: function(),
57304 begin: function(condition),
57305 popState: function(),
57306 _currentRules: function(),
57307 topState: function(),
57308 pushState: function(condition),
57309
57310 options: {
57311 ranges: boolean (optional: true ==> token location info will include a .range[] member)
57312 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
57313 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)
57314 },
57315
57316 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
57317 rules: [...],
57318 conditions: {associative list: name ==> set},
57319 }
57320 }
57321
57322
57323 token location info (@$, _$, etc.): {
57324 first_line: n,
57325 last_line: n,
57326 first_column: n,
57327 last_column: n,
57328 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
57329 }
57330
57331
57332 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
57333 text: (matched text)
57334 token: (the produced terminal token, if any)
57335 line: (yylineno)
57336 }
57337 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
57338 loc: (yylloc)
57339 expected: (string describing the set of expected tokens)
57340 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
57341 }
57342*/
57343var parser = function () {
57344 var o = function (k, v, o, l) {
57345 for (o = o || {}, l = k.length; l--; o[k[l]] = v);
57346
57347 return o;
57348 },
57349 $V0 = [6, 8, 10, 11, 12, 13, 14, 15, 16, 18, 20],
57350 $V1 = [1, 9],
57351 $V2 = [1, 10],
57352 $V3 = [1, 11],
57353 $V4 = [1, 12],
57354 $V5 = [1, 13],
57355 $V6 = [1, 14],
57356 $V7 = [1, 16],
57357 $V8 = [1, 17];
57358
57359 var parser = {
57360 trace: function trace() {},
57361 yy: {},
57362 symbols_: {
57363 "error": 2,
57364 "start": 3,
57365 "gantt": 4,
57366 "document": 5,
57367 "EOF": 6,
57368 "line": 7,
57369 "SPACE": 8,
57370 "statement": 9,
57371 "NL": 10,
57372 "dateFormat": 11,
57373 "inclusiveEndDates": 12,
57374 "axisFormat": 13,
57375 "excludes": 14,
57376 "title": 15,
57377 "section": 16,
57378 "clickStatement": 17,
57379 "taskTxt": 18,
57380 "taskData": 19,
57381 "click": 20,
57382 "callbackname": 21,
57383 "callbackargs": 22,
57384 "href": 23,
57385 "clickStatementDebug": 24,
57386 "$accept": 0,
57387 "$end": 1
57388 },
57389 terminals_: {
57390 2: "error",
57391 4: "gantt",
57392 6: "EOF",
57393 8: "SPACE",
57394 10: "NL",
57395 11: "dateFormat",
57396 12: "inclusiveEndDates",
57397 13: "axisFormat",
57398 14: "excludes",
57399 15: "title",
57400 16: "section",
57401 18: "taskTxt",
57402 19: "taskData",
57403 20: "click",
57404 21: "callbackname",
57405 22: "callbackargs",
57406 23: "href"
57407 },
57408 productions_: [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]],
57409 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate
57410 /* action[1] */
57411 , $$
57412 /* vstack */
57413 , _$
57414 /* lstack */
57415 ) {
57416 /* this == yyval */
57417 var $0 = $$.length - 1;
57418
57419 switch (yystate) {
57420 case 1:
57421 return $$[$0 - 1];
57422 break;
57423
57424 case 2:
57425 this.$ = [];
57426 break;
57427
57428 case 3:
57429 $$[$0 - 1].push($$[$0]);
57430 this.$ = $$[$0 - 1];
57431 break;
57432
57433 case 4:
57434 case 5:
57435 this.$ = $$[$0];
57436 break;
57437
57438 case 6:
57439 case 7:
57440 this.$ = [];
57441 break;
57442
57443 case 8:
57444 yy.setDateFormat($$[$0].substr(11));
57445 this.$ = $$[$0].substr(11);
57446 break;
57447
57448 case 9:
57449 yy.enableInclusiveEndDates();
57450 this.$ = $$[$0].substr(18);
57451 break;
57452
57453 case 10:
57454 yy.setAxisFormat($$[$0].substr(11));
57455 this.$ = $$[$0].substr(11);
57456 break;
57457
57458 case 11:
57459 yy.setExcludes($$[$0].substr(9));
57460 this.$ = $$[$0].substr(9);
57461 break;
57462
57463 case 12:
57464 yy.setTitle($$[$0].substr(6));
57465 this.$ = $$[$0].substr(6);
57466 break;
57467
57468 case 13:
57469 yy.addSection($$[$0].substr(8));
57470 this.$ = $$[$0].substr(8);
57471 break;
57472
57473 case 15:
57474 yy.addTask($$[$0 - 1], $$[$0]);
57475 this.$ = 'task';
57476 break;
57477
57478 case 16:
57479 this.$ = $$[$0 - 1];
57480 yy.setClickEvent($$[$0 - 1], $$[$0], null);
57481 break;
57482
57483 case 17:
57484 this.$ = $$[$0 - 2];
57485 yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
57486 break;
57487
57488 case 18:
57489 this.$ = $$[$0 - 2];
57490 yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);
57491 yy.setLink($$[$0 - 2], $$[$0]);
57492 break;
57493
57494 case 19:
57495 this.$ = $$[$0 - 3];
57496 yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
57497 yy.setLink($$[$0 - 3], $$[$0]);
57498 break;
57499
57500 case 20:
57501 this.$ = $$[$0 - 2];
57502 yy.setClickEvent($$[$0 - 2], $$[$0], null);
57503 yy.setLink($$[$0 - 2], $$[$0 - 1]);
57504 break;
57505
57506 case 21:
57507 this.$ = $$[$0 - 3];
57508 yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);
57509 yy.setLink($$[$0 - 3], $$[$0 - 2]);
57510 break;
57511
57512 case 22:
57513 this.$ = $$[$0 - 1];
57514 yy.setLink($$[$0 - 1], $$[$0]);
57515 break;
57516
57517 case 23:
57518 case 29:
57519 this.$ = $$[$0 - 1] + ' ' + $$[$0];
57520 break;
57521
57522 case 24:
57523 case 25:
57524 case 27:
57525 this.$ = $$[$0 - 2] + ' ' + $$[$0 - 1] + ' ' + $$[$0];
57526 break;
57527
57528 case 26:
57529 case 28:
57530 this.$ = $$[$0 - 3] + ' ' + $$[$0 - 2] + ' ' + $$[$0 - 1] + ' ' + $$[$0];
57531 break;
57532 }
57533 },
57534 table: [{
57535 3: 1,
57536 4: [1, 2]
57537 }, {
57538 1: [3]
57539 }, o($V0, [2, 2], {
57540 5: 3
57541 }), {
57542 6: [1, 4],
57543 7: 5,
57544 8: [1, 6],
57545 9: 7,
57546 10: [1, 8],
57547 11: $V1,
57548 12: $V2,
57549 13: $V3,
57550 14: $V4,
57551 15: $V5,
57552 16: $V6,
57553 17: 15,
57554 18: $V7,
57555 20: $V8
57556 }, o($V0, [2, 7], {
57557 1: [2, 1]
57558 }), o($V0, [2, 3]), {
57559 9: 18,
57560 11: $V1,
57561 12: $V2,
57562 13: $V3,
57563 14: $V4,
57564 15: $V5,
57565 16: $V6,
57566 17: 15,
57567 18: $V7,
57568 20: $V8
57569 }, 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]), {
57570 19: [1, 19]
57571 }, {
57572 21: [1, 20],
57573 23: [1, 21]
57574 }, o($V0, [2, 4]), o($V0, [2, 15]), o($V0, [2, 16], {
57575 22: [1, 22],
57576 23: [1, 23]
57577 }), o($V0, [2, 22], {
57578 21: [1, 24]
57579 }), o($V0, [2, 17], {
57580 23: [1, 25]
57581 }), o($V0, [2, 18]), o($V0, [2, 20], {
57582 22: [1, 26]
57583 }), o($V0, [2, 19]), o($V0, [2, 21])],
57584 defaultActions: {},
57585 parseError: function parseError(str, hash) {
57586 if (hash.recoverable) {
57587 this.trace(str);
57588 } else {
57589 var error = new Error(str);
57590 error.hash = hash;
57591 throw error;
57592 }
57593 },
57594 parse: function parse(input) {
57595 var self = this,
57596 stack = [0],
57597 tstack = [],
57598 vstack = [null],
57599 lstack = [],
57600 table = this.table,
57601 yytext = '',
57602 yylineno = 0,
57603 yyleng = 0,
57604 recovering = 0,
57605 TERROR = 2,
57606 EOF = 1;
57607 var args = lstack.slice.call(arguments, 1);
57608 var lexer = Object.create(this.lexer);
57609 var sharedState = {
57610 yy: {}
57611 };
57612
57613 for (var k in this.yy) {
57614 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
57615 sharedState.yy[k] = this.yy[k];
57616 }
57617 }
57618
57619 lexer.setInput(input, sharedState.yy);
57620 sharedState.yy.lexer = lexer;
57621 sharedState.yy.parser = this;
57622
57623 if (typeof lexer.yylloc == 'undefined') {
57624 lexer.yylloc = {};
57625 }
57626
57627 var yyloc = lexer.yylloc;
57628 lstack.push(yyloc);
57629 var ranges = lexer.options && lexer.options.ranges;
57630
57631 if (typeof sharedState.yy.parseError === 'function') {
57632 this.parseError = sharedState.yy.parseError;
57633 } else {
57634 this.parseError = Object.getPrototypeOf(this).parseError;
57635 }
57636
57637 function popStack(n) {
57638 stack.length = stack.length - 2 * n;
57639 vstack.length = vstack.length - n;
57640 lstack.length = lstack.length - n;
57641 }
57642
57643 function lex() {
57644 var token;
57645 token = tstack.pop() || lexer.lex() || EOF;
57646
57647 if (typeof token !== 'number') {
57648 if (token instanceof Array) {
57649 tstack = token;
57650 token = tstack.pop();
57651 }
57652
57653 token = self.symbols_[token] || token;
57654 }
57655
57656 return token;
57657 }
57658
57659 var symbol,
57660 preErrorSymbol,
57661 state,
57662 action,
57663 a,
57664 r,
57665 yyval = {},
57666 p,
57667 len,
57668 newState,
57669 expected;
57670
57671 while (true) {
57672 state = stack[stack.length - 1];
57673
57674 if (this.defaultActions[state]) {
57675 action = this.defaultActions[state];
57676 } else {
57677 if (symbol === null || typeof symbol == 'undefined') {
57678 symbol = lex();
57679 }
57680
57681 action = table[state] && table[state][symbol];
57682 }
57683
57684 if (typeof action === 'undefined' || !action.length || !action[0]) {
57685 var errStr = '';
57686 expected = [];
57687
57688 for (p in table[state]) {
57689 if (this.terminals_[p] && p > TERROR) {
57690 expected.push('\'' + this.terminals_[p] + '\'');
57691 }
57692 }
57693
57694 if (lexer.showPosition) {
57695 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
57696 } else {
57697 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
57698 }
57699
57700 this.parseError(errStr, {
57701 text: lexer.match,
57702 token: this.terminals_[symbol] || symbol,
57703 line: lexer.yylineno,
57704 loc: yyloc,
57705 expected: expected
57706 });
57707 }
57708
57709 if (action[0] instanceof Array && action.length > 1) {
57710 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
57711 }
57712
57713 switch (action[0]) {
57714 case 1:
57715 stack.push(symbol);
57716 vstack.push(lexer.yytext);
57717 lstack.push(lexer.yylloc);
57718 stack.push(action[1]);
57719 symbol = null;
57720
57721 if (!preErrorSymbol) {
57722 yyleng = lexer.yyleng;
57723 yytext = lexer.yytext;
57724 yylineno = lexer.yylineno;
57725 yyloc = lexer.yylloc;
57726
57727 if (recovering > 0) {
57728 recovering--;
57729 }
57730 } else {
57731 symbol = preErrorSymbol;
57732 preErrorSymbol = null;
57733 }
57734
57735 break;
57736
57737 case 2:
57738 len = this.productions_[action[1]][1];
57739 yyval.$ = vstack[vstack.length - len];
57740 yyval._$ = {
57741 first_line: lstack[lstack.length - (len || 1)].first_line,
57742 last_line: lstack[lstack.length - 1].last_line,
57743 first_column: lstack[lstack.length - (len || 1)].first_column,
57744 last_column: lstack[lstack.length - 1].last_column
57745 };
57746
57747 if (ranges) {
57748 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
57749 }
57750
57751 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
57752
57753 if (typeof r !== 'undefined') {
57754 return r;
57755 }
57756
57757 if (len) {
57758 stack = stack.slice(0, -1 * len * 2);
57759 vstack = vstack.slice(0, -1 * len);
57760 lstack = lstack.slice(0, -1 * len);
57761 }
57762
57763 stack.push(this.productions_[action[1]][0]);
57764 vstack.push(yyval.$);
57765 lstack.push(yyval._$);
57766 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
57767 stack.push(newState);
57768 break;
57769
57770 case 3:
57771 return true;
57772 }
57773 }
57774
57775 return true;
57776 }
57777 };
57778 /* generated by jison-lex 0.3.4 */
57779
57780 var lexer = function () {
57781 var lexer = {
57782 EOF: 1,
57783 parseError: function parseError(str, hash) {
57784 if (this.yy.parser) {
57785 this.yy.parser.parseError(str, hash);
57786 } else {
57787 throw new Error(str);
57788 }
57789 },
57790 // resets the lexer, sets new input
57791 setInput: function (input, yy) {
57792 this.yy = yy || this.yy || {};
57793 this._input = input;
57794 this._more = this._backtrack = this.done = false;
57795 this.yylineno = this.yyleng = 0;
57796 this.yytext = this.matched = this.match = '';
57797 this.conditionStack = ['INITIAL'];
57798 this.yylloc = {
57799 first_line: 1,
57800 first_column: 0,
57801 last_line: 1,
57802 last_column: 0
57803 };
57804
57805 if (this.options.ranges) {
57806 this.yylloc.range = [0, 0];
57807 }
57808
57809 this.offset = 0;
57810 return this;
57811 },
57812 // consumes and returns one char from the input
57813 input: function () {
57814 var ch = this._input[0];
57815 this.yytext += ch;
57816 this.yyleng++;
57817 this.offset++;
57818 this.match += ch;
57819 this.matched += ch;
57820 var lines = ch.match(/(?:\r\n?|\n).*/g);
57821
57822 if (lines) {
57823 this.yylineno++;
57824 this.yylloc.last_line++;
57825 } else {
57826 this.yylloc.last_column++;
57827 }
57828
57829 if (this.options.ranges) {
57830 this.yylloc.range[1]++;
57831 }
57832
57833 this._input = this._input.slice(1);
57834 return ch;
57835 },
57836 // unshifts one char (or a string) into the input
57837 unput: function (ch) {
57838 var len = ch.length;
57839 var lines = ch.split(/(?:\r\n?|\n)/g);
57840 this._input = ch + this._input;
57841 this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len;
57842
57843 this.offset -= len;
57844 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
57845 this.match = this.match.substr(0, this.match.length - 1);
57846 this.matched = this.matched.substr(0, this.matched.length - 1);
57847
57848 if (lines.length - 1) {
57849 this.yylineno -= lines.length - 1;
57850 }
57851
57852 var r = this.yylloc.range;
57853 this.yylloc = {
57854 first_line: this.yylloc.first_line,
57855 last_line: this.yylineno + 1,
57856 first_column: this.yylloc.first_column,
57857 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
57858 };
57859
57860 if (this.options.ranges) {
57861 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
57862 }
57863
57864 this.yyleng = this.yytext.length;
57865 return this;
57866 },
57867 // When called from action, caches matched text and appends it on next action
57868 more: function () {
57869 this._more = true;
57870 return this;
57871 },
57872 // 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.
57873 reject: function () {
57874 if (this.options.backtrack_lexer) {
57875 this._backtrack = true;
57876 } else {
57877 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(), {
57878 text: "",
57879 token: null,
57880 line: this.yylineno
57881 });
57882 }
57883
57884 return this;
57885 },
57886 // retain first n characters of the match
57887 less: function (n) {
57888 this.unput(this.match.slice(n));
57889 },
57890 // displays already matched input, i.e. for error messages
57891 pastInput: function () {
57892 var past = this.matched.substr(0, this.matched.length - this.match.length);
57893 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
57894 },
57895 // displays upcoming input, i.e. for error messages
57896 upcomingInput: function () {
57897 var next = this.match;
57898
57899 if (next.length < 20) {
57900 next += this._input.substr(0, 20 - next.length);
57901 }
57902
57903 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
57904 },
57905 // displays the character position where the lexing error occurred, i.e. for error messages
57906 showPosition: function () {
57907 var pre = this.pastInput();
57908 var c = new Array(pre.length + 1).join("-");
57909 return pre + this.upcomingInput() + "\n" + c + "^";
57910 },
57911 // test the lexed token: return FALSE when not a match, otherwise return token
57912 test_match: function (match, indexed_rule) {
57913 var token, lines, backup;
57914
57915 if (this.options.backtrack_lexer) {
57916 // save context
57917 backup = {
57918 yylineno: this.yylineno,
57919 yylloc: {
57920 first_line: this.yylloc.first_line,
57921 last_line: this.last_line,
57922 first_column: this.yylloc.first_column,
57923 last_column: this.yylloc.last_column
57924 },
57925 yytext: this.yytext,
57926 match: this.match,
57927 matches: this.matches,
57928 matched: this.matched,
57929 yyleng: this.yyleng,
57930 offset: this.offset,
57931 _more: this._more,
57932 _input: this._input,
57933 yy: this.yy,
57934 conditionStack: this.conditionStack.slice(0),
57935 done: this.done
57936 };
57937
57938 if (this.options.ranges) {
57939 backup.yylloc.range = this.yylloc.range.slice(0);
57940 }
57941 }
57942
57943 lines = match[0].match(/(?:\r\n?|\n).*/g);
57944
57945 if (lines) {
57946 this.yylineno += lines.length;
57947 }
57948
57949 this.yylloc = {
57950 first_line: this.yylloc.last_line,
57951 last_line: this.yylineno + 1,
57952 first_column: this.yylloc.last_column,
57953 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
57954 };
57955 this.yytext += match[0];
57956 this.match += match[0];
57957 this.matches = match;
57958 this.yyleng = this.yytext.length;
57959
57960 if (this.options.ranges) {
57961 this.yylloc.range = [this.offset, this.offset += this.yyleng];
57962 }
57963
57964 this._more = false;
57965 this._backtrack = false;
57966 this._input = this._input.slice(match[0].length);
57967 this.matched += match[0];
57968 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
57969
57970 if (this.done && this._input) {
57971 this.done = false;
57972 }
57973
57974 if (token) {
57975 return token;
57976 } else if (this._backtrack) {
57977 // recover context
57978 for (var k in backup) {
57979 this[k] = backup[k];
57980 }
57981
57982 return false; // rule action called reject() implying the next rule should be tested instead.
57983 }
57984
57985 return false;
57986 },
57987 // return next match in input
57988 next: function () {
57989 if (this.done) {
57990 return this.EOF;
57991 }
57992
57993 if (!this._input) {
57994 this.done = true;
57995 }
57996
57997 var token, match, tempMatch, index;
57998
57999 if (!this._more) {
58000 this.yytext = '';
58001 this.match = '';
58002 }
58003
58004 var rules = this._currentRules();
58005
58006 for (var i = 0; i < rules.length; i++) {
58007 tempMatch = this._input.match(this.rules[rules[i]]);
58008
58009 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
58010 match = tempMatch;
58011 index = i;
58012
58013 if (this.options.backtrack_lexer) {
58014 token = this.test_match(tempMatch, rules[i]);
58015
58016 if (token !== false) {
58017 return token;
58018 } else if (this._backtrack) {
58019 match = false;
58020 continue; // rule action called reject() implying a rule MISmatch.
58021 } else {
58022 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
58023 return false;
58024 }
58025 } else if (!this.options.flex) {
58026 break;
58027 }
58028 }
58029 }
58030
58031 if (match) {
58032 token = this.test_match(match, rules[index]);
58033
58034 if (token !== false) {
58035 return token;
58036 } // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
58037
58038
58039 return false;
58040 }
58041
58042 if (this._input === "") {
58043 return this.EOF;
58044 } else {
58045 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
58046 text: "",
58047 token: null,
58048 line: this.yylineno
58049 });
58050 }
58051 },
58052 // return next match that has a token
58053 lex: function lex() {
58054 var r = this.next();
58055
58056 if (r) {
58057 return r;
58058 } else {
58059 return this.lex();
58060 }
58061 },
58062 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
58063 begin: function begin(condition) {
58064 this.conditionStack.push(condition);
58065 },
58066 // pop the previously active lexer condition state off the condition stack
58067 popState: function popState() {
58068 var n = this.conditionStack.length - 1;
58069
58070 if (n > 0) {
58071 return this.conditionStack.pop();
58072 } else {
58073 return this.conditionStack[0];
58074 }
58075 },
58076 // produce the lexer rule set which is active for the currently active lexer condition state
58077 _currentRules: function _currentRules() {
58078 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
58079 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
58080 } else {
58081 return this.conditions["INITIAL"].rules;
58082 }
58083 },
58084 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
58085 topState: function topState(n) {
58086 n = this.conditionStack.length - 1 - Math.abs(n || 0);
58087
58088 if (n >= 0) {
58089 return this.conditionStack[n];
58090 } else {
58091 return "INITIAL";
58092 }
58093 },
58094 // alias for begin(condition)
58095 pushState: function pushState(condition) {
58096 this.begin(condition);
58097 },
58098 // return the number of states currently on the stack
58099 stateStackSize: function stateStackSize() {
58100 return this.conditionStack.length;
58101 },
58102 options: {
58103 "case-insensitive": true
58104 },
58105 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
58106 var YYSTATE = YY_START;
58107
58108 switch ($avoiding_name_collisions) {
58109 case 0:
58110 return 10;
58111 break;
58112
58113 case 1:
58114 /* skip whitespace */
58115 break;
58116
58117 case 2:
58118 /* skip comments */
58119 break;
58120
58121 case 3:
58122 /* skip comments */
58123 break;
58124
58125 case 4:
58126 this.begin("href");
58127 break;
58128
58129 case 5:
58130 this.popState();
58131 break;
58132
58133 case 6:
58134 return 23;
58135 break;
58136
58137 case 7:
58138 this.begin("callbackname");
58139 break;
58140
58141 case 8:
58142 this.popState();
58143 break;
58144
58145 case 9:
58146 this.popState();
58147 this.begin("callbackargs");
58148 break;
58149
58150 case 10:
58151 return 21;
58152 break;
58153
58154 case 11:
58155 this.popState();
58156 break;
58157
58158 case 12:
58159 return 22;
58160 break;
58161
58162 case 13:
58163 this.begin("click");
58164 break;
58165
58166 case 14:
58167 this.popState();
58168 break;
58169
58170 case 15:
58171 return 20;
58172 break;
58173
58174 case 16:
58175 return 4;
58176 break;
58177
58178 case 17:
58179 return 11;
58180 break;
58181
58182 case 18:
58183 return 12;
58184 break;
58185
58186 case 19:
58187 return 13;
58188 break;
58189
58190 case 20:
58191 return 14;
58192 break;
58193
58194 case 21:
58195 return 'date';
58196 break;
58197
58198 case 22:
58199 return 15;
58200 break;
58201
58202 case 23:
58203 return 16;
58204 break;
58205
58206 case 24:
58207 return 18;
58208 break;
58209
58210 case 25:
58211 return 19;
58212 break;
58213
58214 case 26:
58215 return ':';
58216 break;
58217
58218 case 27:
58219 return 6;
58220 break;
58221
58222 case 28:
58223 return 'INVALID';
58224 break;
58225 }
58226 },
58227 rules: [/^(?:[\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],
58228 conditions: {
58229 "callbackargs": {
58230 "rules": [11, 12],
58231 "inclusive": false
58232 },
58233 "callbackname": {
58234 "rules": [8, 9, 10],
58235 "inclusive": false
58236 },
58237 "href": {
58238 "rules": [5, 6],
58239 "inclusive": false
58240 },
58241 "click": {
58242 "rules": [14, 15],
58243 "inclusive": false
58244 },
58245 "INITIAL": {
58246 "rules": [0, 1, 2, 3, 4, 7, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28],
58247 "inclusive": true
58248 }
58249 }
58250 };
58251 return lexer;
58252 }();
58253
58254 parser.lexer = lexer;
58255
58256 function Parser() {
58257 this.yy = {};
58258 }
58259
58260 Parser.prototype = parser;
58261 parser.Parser = Parser;
58262 return new Parser();
58263}();
58264
58265if (true) {
58266 exports.parser = parser;
58267 exports.Parser = parser.Parser;
58268
58269 exports.parse = function () {
58270 return parser.parse.apply(parser, arguments);
58271 };
58272
58273 exports.main = function commonjsMain(args) {
58274 if (!args[1]) {
58275 console.log('Usage: ' + args[0] + ' FILE');
58276 process.exit(1);
58277 }
58278
58279 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");
58280
58281 return exports.parser.parse(source);
58282 };
58283
58284 if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
58285 exports.main(process.argv.slice(1));
58286 }
58287}
58288/* 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)))
58289
58290/***/ }),
58291
58292/***/ "./src/diagrams/git/gitGraphAst.js":
58293/*!*****************************************!*\
58294 !*** ./src/diagrams/git/gitGraphAst.js ***!
58295 \*****************************************/
58296/*! exports provided: setDirection, setOptions, getOptions, commit, branch, merge, checkout, reset, prettyPrint, clear, getBranchesAsObjArray, getBranches, getCommits, getCommitsArray, getCurrentBranch, getDirection, getHead, default */
58297/***/ (function(module, __webpack_exports__, __webpack_require__) {
58298
58299"use strict";
58300__webpack_require__.r(__webpack_exports__);
58301/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDirection", function() { return setDirection; });
58302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setOptions", function() { return setOptions; });
58303/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOptions", function() { return getOptions; });
58304/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commit", function() { return commit; });
58305/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "branch", function() { return branch; });
58306/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; });
58307/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkout", function() { return checkout; });
58308/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reset", function() { return reset; });
58309/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prettyPrint", function() { return prettyPrint; });
58310/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
58311/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBranchesAsObjArray", function() { return getBranchesAsObjArray; });
58312/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBranches", function() { return getBranches; });
58313/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCommits", function() { return getCommits; });
58314/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCommitsArray", function() { return getCommitsArray; });
58315/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCurrentBranch", function() { return getCurrentBranch; });
58316/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; });
58317/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getHead", function() { return getHead; });
58318/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
58319/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
58320/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
58321
58322
58323let commits = {};
58324let head = null;
58325let branches = {
58326 'master': head
58327};
58328let curBranch = 'master';
58329let direction = 'LR';
58330let seq = 0;
58331
58332function getRandomInt(min, max) {
58333 return Math.floor(Math.random() * (max - min)) + min;
58334}
58335
58336function getId() {
58337 const pool = '0123456789abcdef';
58338 let id = '';
58339
58340 for (let i = 0; i < 7; i++) {
58341 id += pool[getRandomInt(0, 16)];
58342 }
58343
58344 return id;
58345}
58346
58347function isfastforwardable(currentCommit, otherCommit) {
58348 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id);
58349
58350 while (currentCommit.seq <= otherCommit.seq && currentCommit !== otherCommit) {
58351 // only if other branch has more commits
58352 if (otherCommit.parent == null) break;
58353
58354 if (Array.isArray(otherCommit.parent)) {
58355 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('In merge commit:', otherCommit.parent);
58356 return isfastforwardable(currentCommit, commits[otherCommit.parent[0]]) || isfastforwardable(currentCommit, commits[otherCommit.parent[1]]);
58357 } else {
58358 otherCommit = commits[otherCommit.parent];
58359 }
58360 }
58361
58362 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(currentCommit.id, otherCommit.id);
58363 return currentCommit.id === otherCommit.id;
58364}
58365
58366function isReachableFrom(currentCommit, otherCommit) {
58367 const currentSeq = currentCommit.seq;
58368 const otherSeq = otherCommit.seq;
58369 if (currentSeq > otherSeq) return isfastforwardable(otherCommit, currentCommit);
58370 return false;
58371}
58372
58373const setDirection = function (dir) {
58374 direction = dir;
58375};
58376let options = {};
58377const setOptions = function (rawOptString) {
58378 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('options str', rawOptString);
58379 rawOptString = rawOptString && rawOptString.trim();
58380 rawOptString = rawOptString || '{}';
58381
58382 try {
58383 options = JSON.parse(rawOptString);
58384 } catch (e) {
58385 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error('error while parsing gitGraph options', e.message);
58386 }
58387};
58388const getOptions = function () {
58389 return options;
58390};
58391const commit = function (msg) {
58392 const commit = {
58393 id: getId(),
58394 message: msg,
58395 seq: seq++,
58396 parent: head == null ? null : head.id
58397 };
58398 head = commit;
58399 commits[commit.id] = commit;
58400 branches[curBranch] = commit.id;
58401 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in pushCommit ' + commit.id);
58402};
58403const branch = function (name) {
58404 branches[name] = head != null ? head.id : null;
58405 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in createBranch');
58406};
58407const merge = function (otherBranch) {
58408 const currentCommit = commits[branches[curBranch]];
58409 const otherCommit = commits[branches[otherBranch]];
58410
58411 if (isReachableFrom(currentCommit, otherCommit)) {
58412 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Already merged');
58413 return;
58414 }
58415
58416 if (isfastforwardable(currentCommit, otherCommit)) {
58417 branches[curBranch] = branches[otherBranch];
58418 head = commits[branches[curBranch]];
58419 } else {
58420 // create merge commit
58421 const commit = {
58422 id: getId(),
58423 message: 'merged branch ' + otherBranch + ' into ' + curBranch,
58424 seq: seq++,
58425 parent: [head == null ? null : head.id, branches[otherBranch]]
58426 };
58427 head = commit;
58428 commits[commit.id] = commit;
58429 branches[curBranch] = commit.id;
58430 }
58431
58432 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(branches);
58433 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in mergeBranch');
58434};
58435const checkout = function (branch) {
58436 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in checkout');
58437 curBranch = branch;
58438 const id = branches[curBranch];
58439 head = commits[id];
58440};
58441const reset = function (commitRef) {
58442 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('in reset', commitRef);
58443 const ref = commitRef.split(':')[0];
58444 let parentCount = parseInt(commitRef.split(':')[1]);
58445 let commit = ref === 'HEAD' ? head : commits[branches[ref]];
58446 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(commit, parentCount);
58447
58448 while (parentCount > 0) {
58449 commit = commits[commit.parent];
58450 parentCount--;
58451
58452 if (!commit) {
58453 const err = 'Critical error - unique parent commit not found during reset';
58454 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error(err);
58455 throw err;
58456 }
58457 }
58458
58459 head = commit;
58460 branches[curBranch] = commit.id;
58461};
58462
58463function upsert(arr, key, newval) {
58464 const index = arr.indexOf(key);
58465
58466 if (index === -1) {
58467 arr.push(newval);
58468 } else {
58469 arr.splice(index, 1, newval);
58470 }
58471}
58472
58473function prettyPrintCommitHistory(commitArr) {
58474 const commit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.maxBy(commitArr, 'seq');
58475
58476 let line = '';
58477 commitArr.forEach(function (c) {
58478 if (c === commit) {
58479 line += '\t*';
58480 } else {
58481 line += '\t|';
58482 }
58483 });
58484 const label = [line, commit.id, commit.seq];
58485
58486 for (let branch in branches) {
58487 if (branches[branch] === commit.id) label.push(branch);
58488 }
58489
58490 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(label.join(' '));
58491
58492 if (Array.isArray(commit.parent)) {
58493 const newCommit = commits[commit.parent[0]];
58494 upsert(commitArr, commit, newCommit);
58495 commitArr.push(commits[commit.parent[1]]);
58496 } else if (commit.parent == null) {
58497 return;
58498 } else {
58499 const nextCommit = commits[commit.parent];
58500 upsert(commitArr, commit, nextCommit);
58501 }
58502
58503 commitArr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(commitArr, 'id');
58504 prettyPrintCommitHistory(commitArr);
58505}
58506
58507const prettyPrint = function () {
58508 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(commits);
58509 const node = getCommitsArray()[0];
58510 prettyPrintCommitHistory([node]);
58511};
58512const clear = function () {
58513 commits = {};
58514 head = null;
58515 branches = {
58516 'master': head
58517 };
58518 curBranch = 'master';
58519 seq = 0;
58520};
58521const getBranchesAsObjArray = function () {
58522 const branchArr = [];
58523
58524 for (let branch in branches) {
58525 branchArr.push({
58526 name: branch,
58527 commit: commits[branches[branch]]
58528 });
58529 }
58530
58531 return branchArr;
58532};
58533const getBranches = function () {
58534 return branches;
58535};
58536const getCommits = function () {
58537 return commits;
58538};
58539const getCommitsArray = function () {
58540 const commitArr = Object.keys(commits).map(function (key) {
58541 return commits[key];
58542 });
58543 commitArr.forEach(function (o) {
58544 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug(o.id);
58545 });
58546 return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.orderBy(commitArr, ['seq'], ['desc']);
58547};
58548const getCurrentBranch = function () {
58549 return curBranch;
58550};
58551const getDirection = function () {
58552 return direction;
58553};
58554const getHead = function () {
58555 return head;
58556};
58557/* harmony default export */ __webpack_exports__["default"] = ({
58558 setDirection,
58559 setOptions,
58560 getOptions,
58561 commit,
58562 branch,
58563 merge,
58564 checkout,
58565 reset,
58566 prettyPrint,
58567 clear,
58568 getBranchesAsObjArray,
58569 getBranches,
58570 getCommits,
58571 getCommitsArray,
58572 getCurrentBranch,
58573 getDirection,
58574 getHead
58575});
58576
58577/***/ }),
58578
58579/***/ "./src/diagrams/git/gitGraphRenderer.js":
58580/*!**********************************************!*\
58581 !*** ./src/diagrams/git/gitGraphRenderer.js ***!
58582 \**********************************************/
58583/*! exports provided: setConf, draw, default */
58584/***/ (function(module, __webpack_exports__, __webpack_require__) {
58585
58586"use strict";
58587__webpack_require__.r(__webpack_exports__);
58588/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
58589/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
58590/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
58591/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
58592/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
58593/* harmony import */ var _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
58594/* harmony import */ var _parser_gitGraph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.js");
58595/* harmony import */ var _parser_gitGraph__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_gitGraph__WEBPACK_IMPORTED_MODULE_3__);
58596/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
58597/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
58598
58599
58600
58601
58602
58603
58604let allCommitsDict = {};
58605let branchNum;
58606let config = {
58607 nodeSpacing: 150,
58608 nodeFillColor: 'yellow',
58609 nodeStrokeWidth: 2,
58610 nodeStrokeColor: 'grey',
58611 lineStrokeWidth: 4,
58612 branchOffset: 50,
58613 lineColor: 'grey',
58614 leftMargin: 50,
58615 branchColors: ['#442f74', '#983351', '#609732', '#AA9A39'],
58616 nodeRadius: 10,
58617 nodeLabel: {
58618 width: 75,
58619 height: 100,
58620 x: -25,
58621 y: 0
58622 }
58623};
58624let apiConfig = {};
58625const setConf = function (c) {
58626 apiConfig = c;
58627};
58628
58629function svgCreateDefs(svg) {
58630 svg.append('defs').append('g').attr('id', 'def-commit').append('circle').attr('r', config.nodeRadius).attr('cx', 0).attr('cy', 0);
58631 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('');
58632}
58633
58634function svgDrawLine(svg, points, colorIdx, interpolate) {
58635 const curve = Object(_utils__WEBPACK_IMPORTED_MODULE_5__["interpolateToCurve"])(interpolate, d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
58636 const color = config.branchColors[colorIdx % config.branchColors.length];
58637 const lineGen = d3__WEBPACK_IMPORTED_MODULE_0__["line"]().x(function (d) {
58638 return Math.round(d.x);
58639 }).y(function (d) {
58640 return Math.round(d.y);
58641 }).curve(curve);
58642 svg.append('svg:path').attr('d', lineGen(points)).style('stroke', color).style('stroke-width', config.lineStrokeWidth).style('fill', 'none');
58643} // Pass in the element and its pre-transform coords
58644
58645
58646function getElementCoords(element, coords) {
58647 coords = coords || element.node().getBBox();
58648 const ctm = element.node().getCTM();
58649 const xn = ctm.e + coords.x * ctm.a;
58650 const yn = ctm.f + coords.y * ctm.d;
58651 return {
58652 left: xn,
58653 top: yn,
58654 width: coords.width,
58655 height: coords.height
58656 };
58657}
58658
58659function svgDrawLineForCommits(svg, fromId, toId, direction, color) {
58660 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('svgDrawLineForCommits: ', fromId, toId);
58661 const fromBbox = getElementCoords(svg.select('#node-' + fromId + ' circle'));
58662 const toBbox = getElementCoords(svg.select('#node-' + toId + ' circle'));
58663
58664 switch (direction) {
58665 case 'LR':
58666 // (toBbox)
58667 // +--------
58668 // + (fromBbox)
58669 if (fromBbox.left - toBbox.left > config.nodeSpacing) {
58670 const lineStart = {
58671 x: fromBbox.left - config.nodeSpacing,
58672 y: toBbox.top + toBbox.height / 2
58673 };
58674 const lineEnd = {
58675 x: toBbox.left + toBbox.width,
58676 y: toBbox.top + toBbox.height / 2
58677 };
58678 svgDrawLine(svg, [lineStart, lineEnd], color, 'linear');
58679 svgDrawLine(svg, [{
58680 x: fromBbox.left,
58681 y: fromBbox.top + fromBbox.height / 2
58682 }, {
58683 x: fromBbox.left - config.nodeSpacing / 2,
58684 y: fromBbox.top + fromBbox.height / 2
58685 }, {
58686 x: fromBbox.left - config.nodeSpacing / 2,
58687 y: lineStart.y
58688 }, lineStart], color);
58689 } else {
58690 svgDrawLine(svg, [{
58691 'x': fromBbox.left,
58692 'y': fromBbox.top + fromBbox.height / 2
58693 }, {
58694 'x': fromBbox.left - config.nodeSpacing / 2,
58695 'y': fromBbox.top + fromBbox.height / 2
58696 }, {
58697 'x': fromBbox.left - config.nodeSpacing / 2,
58698 'y': toBbox.top + toBbox.height / 2
58699 }, {
58700 'x': toBbox.left + toBbox.width,
58701 'y': toBbox.top + toBbox.height / 2
58702 }], color);
58703 }
58704
58705 break;
58706
58707 case 'BT':
58708 // + (fromBbox)
58709 // |
58710 // |
58711 // + (toBbox)
58712 if (toBbox.top - fromBbox.top > config.nodeSpacing) {
58713 const lineStart = {
58714 x: toBbox.left + toBbox.width / 2,
58715 y: fromBbox.top + fromBbox.height + config.nodeSpacing
58716 };
58717 const lineEnd = {
58718 x: toBbox.left + toBbox.width / 2,
58719 y: toBbox.top
58720 };
58721 svgDrawLine(svg, [lineStart, lineEnd], color, 'linear');
58722 svgDrawLine(svg, [{
58723 x: fromBbox.left + fromBbox.width / 2,
58724 y: fromBbox.top + fromBbox.height
58725 }, {
58726 x: fromBbox.left + fromBbox.width / 2,
58727 y: fromBbox.top + fromBbox.height + config.nodeSpacing / 2
58728 }, {
58729 x: toBbox.left + toBbox.width / 2,
58730 y: lineStart.y - config.nodeSpacing / 2
58731 }, lineStart], color);
58732 } else {
58733 svgDrawLine(svg, [{
58734 'x': fromBbox.left + fromBbox.width / 2,
58735 'y': fromBbox.top + fromBbox.height
58736 }, {
58737 'x': fromBbox.left + fromBbox.width / 2,
58738 'y': fromBbox.top + config.nodeSpacing / 2
58739 }, {
58740 'x': toBbox.left + toBbox.width / 2,
58741 'y': toBbox.top - config.nodeSpacing / 2
58742 }, {
58743 'x': toBbox.left + toBbox.width / 2,
58744 'y': toBbox.top
58745 }], color);
58746 }
58747
58748 break;
58749 }
58750}
58751
58752function cloneNode(svg, selector) {
58753 return svg.select(selector).node().cloneNode(true);
58754}
58755
58756function renderCommitHistory(svg, commitid, branches, direction) {
58757 let commit;
58758 const numCommits = Object.keys(allCommitsDict).length;
58759
58760 if (typeof commitid === 'string') {
58761 do {
58762 commit = allCommitsDict[commitid];
58763 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('in renderCommitHistory', commit.id, commit.seq);
58764
58765 if (svg.select('#node-' + commitid).size() > 0) {
58766 return;
58767 }
58768
58769 svg.append(function () {
58770 return cloneNode(svg, '#def-commit');
58771 }).attr('class', 'commit').attr('id', function () {
58772 return 'node-' + commit.id;
58773 }).attr('transform', function () {
58774 switch (direction) {
58775 case 'LR':
58776 return 'translate(' + (commit.seq * config.nodeSpacing + config.leftMargin) + ', ' + branchNum * config.branchOffset + ')';
58777
58778 case 'BT':
58779 return 'translate(' + (branchNum * config.branchOffset + config.leftMargin) + ', ' + (numCommits - commit.seq) * config.nodeSpacing + ')';
58780 }
58781 }).attr('fill', config.nodeFillColor).attr('stroke', config.nodeStrokeColor).attr('stroke-width', config.nodeStrokeWidth);
58782 let branch;
58783
58784 for (let branchName in branches) {
58785 if (branches[branchName].commit === commit) {
58786 branch = branches[branchName];
58787 break;
58788 }
58789 }
58790
58791 if (branch) {
58792 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('found branch ', branch.name);
58793 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'branch-label').text(branch.name + ', ');
58794 }
58795
58796 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-id').text(commit.id);
58797
58798 if (commit.message !== '' && direction === 'BT') {
58799 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-msg').text(', ' + commit.message);
58800 }
58801
58802 commitid = commit.parent;
58803 } while (commitid && allCommitsDict[commitid]);
58804 }
58805
58806 if (Array.isArray(commitid)) {
58807 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('found merge commmit', commitid);
58808 renderCommitHistory(svg, commitid[0], branches, direction);
58809 branchNum++;
58810 renderCommitHistory(svg, commitid[1], branches, direction);
58811 branchNum--;
58812 }
58813}
58814
58815function renderLines(svg, commit, direction, branchColor) {
58816 branchColor = branchColor || 0;
58817
58818 while (commit.seq > 0 && !commit.lineDrawn) {
58819 if (typeof commit.parent === 'string') {
58820 svgDrawLineForCommits(svg, commit.id, commit.parent, direction, branchColor);
58821 commit.lineDrawn = true;
58822 commit = allCommitsDict[commit.parent];
58823 } else if (Array.isArray(commit.parent)) {
58824 svgDrawLineForCommits(svg, commit.id, commit.parent[0], direction, branchColor);
58825 svgDrawLineForCommits(svg, commit.id, commit.parent[1], direction, branchColor + 1);
58826 renderLines(svg, allCommitsDict[commit.parent[1]], direction, branchColor + 1);
58827 commit.lineDrawn = true;
58828 commit = allCommitsDict[commit.parent[0]];
58829 }
58830 }
58831}
58832
58833const draw = function (txt, id, ver) {
58834 try {
58835 const parser = _parser_gitGraph__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
58836 parser.yy = _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"];
58837 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('in gitgraph renderer', txt, id, ver); // Parse the graph definition
58838
58839 parser.parse(txt + '\n');
58840 config = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.assign(config, apiConfig, _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"].getOptions());
58841 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('effective options', config);
58842 const direction = _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
58843 allCommitsDict = _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"].getCommits();
58844 const branches = _gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"].getBranchesAsObjArray();
58845
58846 if (direction === 'BT') {
58847 config.nodeLabel.x = branches.length * config.branchOffset;
58848 config.nodeLabel.width = '100%';
58849 config.nodeLabel.y = -1 * 2 * config.nodeRadius;
58850 }
58851
58852 const svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id="${id}"]`);
58853 svgCreateDefs(svg);
58854 branchNum = 1;
58855
58856 for (let branch in branches) {
58857 const v = branches[branch];
58858 renderCommitHistory(svg, v.commit.id, branches, direction);
58859 renderLines(svg, v.commit, direction);
58860 branchNum++;
58861 }
58862
58863 svg.attr('height', function () {
58864 if (direction === 'BT') return Object.keys(allCommitsDict).length * config.nodeSpacing;
58865 return (branches.length + 1) * config.branchOffset;
58866 });
58867 } catch (e) {
58868 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].error('Error while rendering gitgraph');
58869 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].error(e.message);
58870 }
58871};
58872/* harmony default export */ __webpack_exports__["default"] = ({
58873 setConf,
58874 draw
58875});
58876
58877/***/ }),
58878
58879/***/ "./src/diagrams/git/parser/gitGraph.js":
58880/*!*********************************************!*\
58881 !*** ./src/diagrams/git/parser/gitGraph.js ***!
58882 \*********************************************/
58883/*! no static exports found */
58884/***/ (function(module, exports, __webpack_require__) {
58885
58886/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
58887
58888/*
58889 Returns a Parser object of the following structure:
58890
58891 Parser: {
58892 yy: {}
58893 }
58894
58895 Parser.prototype: {
58896 yy: {},
58897 trace: function(),
58898 symbols_: {associative list: name ==> number},
58899 terminals_: {associative list: number ==> name},
58900 productions_: [...],
58901 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
58902 table: [...],
58903 defaultActions: {...},
58904 parseError: function(str, hash),
58905 parse: function(input),
58906
58907 lexer: {
58908 EOF: 1,
58909 parseError: function(str, hash),
58910 setInput: function(input),
58911 input: function(),
58912 unput: function(str),
58913 more: function(),
58914 less: function(n),
58915 pastInput: function(),
58916 upcomingInput: function(),
58917 showPosition: function(),
58918 test_match: function(regex_match_array, rule_index),
58919 next: function(),
58920 lex: function(),
58921 begin: function(condition),
58922 popState: function(),
58923 _currentRules: function(),
58924 topState: function(),
58925 pushState: function(condition),
58926
58927 options: {
58928 ranges: boolean (optional: true ==> token location info will include a .range[] member)
58929 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
58930 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)
58931 },
58932
58933 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
58934 rules: [...],
58935 conditions: {associative list: name ==> set},
58936 }
58937 }
58938
58939
58940 token location info (@$, _$, etc.): {
58941 first_line: n,
58942 last_line: n,
58943 first_column: n,
58944 last_column: n,
58945 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
58946 }
58947
58948
58949 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
58950 text: (matched text)
58951 token: (the produced terminal token, if any)
58952 line: (yylineno)
58953 }
58954 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
58955 loc: (yylloc)
58956 expected: (string describing the set of expected tokens)
58957 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
58958 }
58959*/
58960var parser = function () {
58961 var o = function (k, v, o, l) {
58962 for (o = o || {}, l = k.length; l--; o[k[l]] = v);
58963
58964 return o;
58965 },
58966 $V0 = [2, 3],
58967 $V1 = [1, 7],
58968 $V2 = [7, 12, 15, 17, 19, 20, 21],
58969 $V3 = [7, 11, 12, 15, 17, 19, 20, 21],
58970 $V4 = [2, 20],
58971 $V5 = [1, 32];
58972
58973 var parser = {
58974 trace: function trace() {},
58975 yy: {},
58976 symbols_: {
58977 "error": 2,
58978 "start": 3,
58979 "GG": 4,
58980 ":": 5,
58981 "document": 6,
58982 "EOF": 7,
58983 "DIR": 8,
58984 "options": 9,
58985 "body": 10,
58986 "OPT": 11,
58987 "NL": 12,
58988 "line": 13,
58989 "statement": 14,
58990 "COMMIT": 15,
58991 "commit_arg": 16,
58992 "BRANCH": 17,
58993 "ID": 18,
58994 "CHECKOUT": 19,
58995 "MERGE": 20,
58996 "RESET": 21,
58997 "reset_arg": 22,
58998 "STR": 23,
58999 "HEAD": 24,
59000 "reset_parents": 25,
59001 "CARET": 26,
59002 "$accept": 0,
59003 "$end": 1
59004 },
59005 terminals_: {
59006 2: "error",
59007 4: "GG",
59008 5: ":",
59009 7: "EOF",
59010 8: "DIR",
59011 11: "OPT",
59012 12: "NL",
59013 15: "COMMIT",
59014 17: "BRANCH",
59015 18: "ID",
59016 19: "CHECKOUT",
59017 20: "MERGE",
59018 21: "RESET",
59019 23: "STR",
59020 24: "HEAD",
59021 26: "CARET"
59022 },
59023 productions_: [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]],
59024 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate
59025 /* action[1] */
59026 , $$
59027 /* vstack */
59028 , _$
59029 /* lstack */
59030 ) {
59031 /* this == yyval */
59032 var $0 = $$.length - 1;
59033
59034 switch (yystate) {
59035 case 1:
59036 return $$[$0 - 1];
59037 break;
59038
59039 case 2:
59040 yy.setDirection($$[$0 - 3]);
59041 return $$[$0 - 1];
59042 break;
59043
59044 case 4:
59045 yy.setOptions($$[$0 - 1]);
59046 this.$ = $$[$0];
59047 break;
59048
59049 case 5:
59050 $$[$0 - 1] += $$[$0];
59051 this.$ = $$[$0 - 1];
59052 break;
59053
59054 case 7:
59055 this.$ = [];
59056 break;
59057
59058 case 8:
59059 $$[$0 - 1].push($$[$0]);
59060 this.$ = $$[$0 - 1];
59061 break;
59062
59063 case 9:
59064 this.$ = $$[$0 - 1];
59065 break;
59066
59067 case 11:
59068 yy.commit($$[$0]);
59069 break;
59070
59071 case 12:
59072 yy.branch($$[$0]);
59073 break;
59074
59075 case 13:
59076 yy.checkout($$[$0]);
59077 break;
59078
59079 case 14:
59080 yy.merge($$[$0]);
59081 break;
59082
59083 case 15:
59084 yy.reset($$[$0]);
59085 break;
59086
59087 case 16:
59088 this.$ = "";
59089 break;
59090
59091 case 17:
59092 this.$ = $$[$0];
59093 break;
59094
59095 case 18:
59096 this.$ = $$[$0 - 1] + ":" + $$[$0];
59097 break;
59098
59099 case 19:
59100 this.$ = $$[$0 - 1] + ":" + yy.count;
59101 yy.count = 0;
59102 break;
59103
59104 case 20:
59105 yy.count = 0;
59106 break;
59107
59108 case 21:
59109 yy.count += 1;
59110 break;
59111 }
59112 },
59113 table: [{
59114 3: 1,
59115 4: [1, 2]
59116 }, {
59117 1: [3]
59118 }, {
59119 5: [1, 3],
59120 8: [1, 4]
59121 }, {
59122 6: 5,
59123 7: $V0,
59124 9: 6,
59125 12: $V1
59126 }, {
59127 5: [1, 8]
59128 }, {
59129 7: [1, 9]
59130 }, o($V2, [2, 7], {
59131 10: 10,
59132 11: [1, 11]
59133 }), o($V3, [2, 6]), {
59134 6: 12,
59135 7: $V0,
59136 9: 6,
59137 12: $V1
59138 }, {
59139 1: [2, 1]
59140 }, {
59141 7: [2, 4],
59142 12: [1, 15],
59143 13: 13,
59144 14: 14,
59145 15: [1, 16],
59146 17: [1, 17],
59147 19: [1, 18],
59148 20: [1, 19],
59149 21: [1, 20]
59150 }, o($V3, [2, 5]), {
59151 7: [1, 21]
59152 }, o($V2, [2, 8]), {
59153 12: [1, 22]
59154 }, o($V2, [2, 10]), {
59155 12: [2, 16],
59156 16: 23,
59157 23: [1, 24]
59158 }, {
59159 18: [1, 25]
59160 }, {
59161 18: [1, 26]
59162 }, {
59163 18: [1, 27]
59164 }, {
59165 18: [1, 30],
59166 22: 28,
59167 24: [1, 29]
59168 }, {
59169 1: [2, 2]
59170 }, o($V2, [2, 9]), {
59171 12: [2, 11]
59172 }, {
59173 12: [2, 17]
59174 }, {
59175 12: [2, 12]
59176 }, {
59177 12: [2, 13]
59178 }, {
59179 12: [2, 14]
59180 }, {
59181 12: [2, 15]
59182 }, {
59183 12: $V4,
59184 25: 31,
59185 26: $V5
59186 }, {
59187 12: $V4,
59188 25: 33,
59189 26: $V5
59190 }, {
59191 12: [2, 18]
59192 }, {
59193 12: $V4,
59194 25: 34,
59195 26: $V5
59196 }, {
59197 12: [2, 19]
59198 }, {
59199 12: [2, 21]
59200 }],
59201 defaultActions: {
59202 9: [2, 1],
59203 21: [2, 2],
59204 23: [2, 11],
59205 24: [2, 17],
59206 25: [2, 12],
59207 26: [2, 13],
59208 27: [2, 14],
59209 28: [2, 15],
59210 31: [2, 18],
59211 33: [2, 19],
59212 34: [2, 21]
59213 },
59214 parseError: function parseError(str, hash) {
59215 if (hash.recoverable) {
59216 this.trace(str);
59217 } else {
59218 var error = new Error(str);
59219 error.hash = hash;
59220 throw error;
59221 }
59222 },
59223 parse: function parse(input) {
59224 var self = this,
59225 stack = [0],
59226 tstack = [],
59227 vstack = [null],
59228 lstack = [],
59229 table = this.table,
59230 yytext = '',
59231 yylineno = 0,
59232 yyleng = 0,
59233 recovering = 0,
59234 TERROR = 2,
59235 EOF = 1;
59236 var args = lstack.slice.call(arguments, 1);
59237 var lexer = Object.create(this.lexer);
59238 var sharedState = {
59239 yy: {}
59240 };
59241
59242 for (var k in this.yy) {
59243 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
59244 sharedState.yy[k] = this.yy[k];
59245 }
59246 }
59247
59248 lexer.setInput(input, sharedState.yy);
59249 sharedState.yy.lexer = lexer;
59250 sharedState.yy.parser = this;
59251
59252 if (typeof lexer.yylloc == 'undefined') {
59253 lexer.yylloc = {};
59254 }
59255
59256 var yyloc = lexer.yylloc;
59257 lstack.push(yyloc);
59258 var ranges = lexer.options && lexer.options.ranges;
59259
59260 if (typeof sharedState.yy.parseError === 'function') {
59261 this.parseError = sharedState.yy.parseError;
59262 } else {
59263 this.parseError = Object.getPrototypeOf(this).parseError;
59264 }
59265
59266 function popStack(n) {
59267 stack.length = stack.length - 2 * n;
59268 vstack.length = vstack.length - n;
59269 lstack.length = lstack.length - n;
59270 }
59271
59272 function lex() {
59273 var token;
59274 token = tstack.pop() || lexer.lex() || EOF;
59275
59276 if (typeof token !== 'number') {
59277 if (token instanceof Array) {
59278 tstack = token;
59279 token = tstack.pop();
59280 }
59281
59282 token = self.symbols_[token] || token;
59283 }
59284
59285 return token;
59286 }
59287
59288 var symbol,
59289 preErrorSymbol,
59290 state,
59291 action,
59292 a,
59293 r,
59294 yyval = {},
59295 p,
59296 len,
59297 newState,
59298 expected;
59299
59300 while (true) {
59301 state = stack[stack.length - 1];
59302
59303 if (this.defaultActions[state]) {
59304 action = this.defaultActions[state];
59305 } else {
59306 if (symbol === null || typeof symbol == 'undefined') {
59307 symbol = lex();
59308 }
59309
59310 action = table[state] && table[state][symbol];
59311 }
59312
59313 if (typeof action === 'undefined' || !action.length || !action[0]) {
59314 var errStr = '';
59315 expected = [];
59316
59317 for (p in table[state]) {
59318 if (this.terminals_[p] && p > TERROR) {
59319 expected.push('\'' + this.terminals_[p] + '\'');
59320 }
59321 }
59322
59323 if (lexer.showPosition) {
59324 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
59325 } else {
59326 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
59327 }
59328
59329 this.parseError(errStr, {
59330 text: lexer.match,
59331 token: this.terminals_[symbol] || symbol,
59332 line: lexer.yylineno,
59333 loc: yyloc,
59334 expected: expected
59335 });
59336 }
59337
59338 if (action[0] instanceof Array && action.length > 1) {
59339 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
59340 }
59341
59342 switch (action[0]) {
59343 case 1:
59344 stack.push(symbol);
59345 vstack.push(lexer.yytext);
59346 lstack.push(lexer.yylloc);
59347 stack.push(action[1]);
59348 symbol = null;
59349
59350 if (!preErrorSymbol) {
59351 yyleng = lexer.yyleng;
59352 yytext = lexer.yytext;
59353 yylineno = lexer.yylineno;
59354 yyloc = lexer.yylloc;
59355
59356 if (recovering > 0) {
59357 recovering--;
59358 }
59359 } else {
59360 symbol = preErrorSymbol;
59361 preErrorSymbol = null;
59362 }
59363
59364 break;
59365
59366 case 2:
59367 len = this.productions_[action[1]][1];
59368 yyval.$ = vstack[vstack.length - len];
59369 yyval._$ = {
59370 first_line: lstack[lstack.length - (len || 1)].first_line,
59371 last_line: lstack[lstack.length - 1].last_line,
59372 first_column: lstack[lstack.length - (len || 1)].first_column,
59373 last_column: lstack[lstack.length - 1].last_column
59374 };
59375
59376 if (ranges) {
59377 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
59378 }
59379
59380 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
59381
59382 if (typeof r !== 'undefined') {
59383 return r;
59384 }
59385
59386 if (len) {
59387 stack = stack.slice(0, -1 * len * 2);
59388 vstack = vstack.slice(0, -1 * len);
59389 lstack = lstack.slice(0, -1 * len);
59390 }
59391
59392 stack.push(this.productions_[action[1]][0]);
59393 vstack.push(yyval.$);
59394 lstack.push(yyval._$);
59395 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
59396 stack.push(newState);
59397 break;
59398
59399 case 3:
59400 return true;
59401 }
59402 }
59403
59404 return true;
59405 }
59406 };
59407 /* generated by jison-lex 0.3.4 */
59408
59409 var lexer = function () {
59410 var lexer = {
59411 EOF: 1,
59412 parseError: function parseError(str, hash) {
59413 if (this.yy.parser) {
59414 this.yy.parser.parseError(str, hash);
59415 } else {
59416 throw new Error(str);
59417 }
59418 },
59419 // resets the lexer, sets new input
59420 setInput: function (input, yy) {
59421 this.yy = yy || this.yy || {};
59422 this._input = input;
59423 this._more = this._backtrack = this.done = false;
59424 this.yylineno = this.yyleng = 0;
59425 this.yytext = this.matched = this.match = '';
59426 this.conditionStack = ['INITIAL'];
59427 this.yylloc = {
59428 first_line: 1,
59429 first_column: 0,
59430 last_line: 1,
59431 last_column: 0
59432 };
59433
59434 if (this.options.ranges) {
59435 this.yylloc.range = [0, 0];
59436 }
59437
59438 this.offset = 0;
59439 return this;
59440 },
59441 // consumes and returns one char from the input
59442 input: function () {
59443 var ch = this._input[0];
59444 this.yytext += ch;
59445 this.yyleng++;
59446 this.offset++;
59447 this.match += ch;
59448 this.matched += ch;
59449 var lines = ch.match(/(?:\r\n?|\n).*/g);
59450
59451 if (lines) {
59452 this.yylineno++;
59453 this.yylloc.last_line++;
59454 } else {
59455 this.yylloc.last_column++;
59456 }
59457
59458 if (this.options.ranges) {
59459 this.yylloc.range[1]++;
59460 }
59461
59462 this._input = this._input.slice(1);
59463 return ch;
59464 },
59465 // unshifts one char (or a string) into the input
59466 unput: function (ch) {
59467 var len = ch.length;
59468 var lines = ch.split(/(?:\r\n?|\n)/g);
59469 this._input = ch + this._input;
59470 this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len;
59471
59472 this.offset -= len;
59473 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
59474 this.match = this.match.substr(0, this.match.length - 1);
59475 this.matched = this.matched.substr(0, this.matched.length - 1);
59476
59477 if (lines.length - 1) {
59478 this.yylineno -= lines.length - 1;
59479 }
59480
59481 var r = this.yylloc.range;
59482 this.yylloc = {
59483 first_line: this.yylloc.first_line,
59484 last_line: this.yylineno + 1,
59485 first_column: this.yylloc.first_column,
59486 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
59487 };
59488
59489 if (this.options.ranges) {
59490 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
59491 }
59492
59493 this.yyleng = this.yytext.length;
59494 return this;
59495 },
59496 // When called from action, caches matched text and appends it on next action
59497 more: function () {
59498 this._more = true;
59499 return this;
59500 },
59501 // 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.
59502 reject: function () {
59503 if (this.options.backtrack_lexer) {
59504 this._backtrack = true;
59505 } else {
59506 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(), {
59507 text: "",
59508 token: null,
59509 line: this.yylineno
59510 });
59511 }
59512
59513 return this;
59514 },
59515 // retain first n characters of the match
59516 less: function (n) {
59517 this.unput(this.match.slice(n));
59518 },
59519 // displays already matched input, i.e. for error messages
59520 pastInput: function () {
59521 var past = this.matched.substr(0, this.matched.length - this.match.length);
59522 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
59523 },
59524 // displays upcoming input, i.e. for error messages
59525 upcomingInput: function () {
59526 var next = this.match;
59527
59528 if (next.length < 20) {
59529 next += this._input.substr(0, 20 - next.length);
59530 }
59531
59532 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
59533 },
59534 // displays the character position where the lexing error occurred, i.e. for error messages
59535 showPosition: function () {
59536 var pre = this.pastInput();
59537 var c = new Array(pre.length + 1).join("-");
59538 return pre + this.upcomingInput() + "\n" + c + "^";
59539 },
59540 // test the lexed token: return FALSE when not a match, otherwise return token
59541 test_match: function (match, indexed_rule) {
59542 var token, lines, backup;
59543
59544 if (this.options.backtrack_lexer) {
59545 // save context
59546 backup = {
59547 yylineno: this.yylineno,
59548 yylloc: {
59549 first_line: this.yylloc.first_line,
59550 last_line: this.last_line,
59551 first_column: this.yylloc.first_column,
59552 last_column: this.yylloc.last_column
59553 },
59554 yytext: this.yytext,
59555 match: this.match,
59556 matches: this.matches,
59557 matched: this.matched,
59558 yyleng: this.yyleng,
59559 offset: this.offset,
59560 _more: this._more,
59561 _input: this._input,
59562 yy: this.yy,
59563 conditionStack: this.conditionStack.slice(0),
59564 done: this.done
59565 };
59566
59567 if (this.options.ranges) {
59568 backup.yylloc.range = this.yylloc.range.slice(0);
59569 }
59570 }
59571
59572 lines = match[0].match(/(?:\r\n?|\n).*/g);
59573
59574 if (lines) {
59575 this.yylineno += lines.length;
59576 }
59577
59578 this.yylloc = {
59579 first_line: this.yylloc.last_line,
59580 last_line: this.yylineno + 1,
59581 first_column: this.yylloc.last_column,
59582 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
59583 };
59584 this.yytext += match[0];
59585 this.match += match[0];
59586 this.matches = match;
59587 this.yyleng = this.yytext.length;
59588
59589 if (this.options.ranges) {
59590 this.yylloc.range = [this.offset, this.offset += this.yyleng];
59591 }
59592
59593 this._more = false;
59594 this._backtrack = false;
59595 this._input = this._input.slice(match[0].length);
59596 this.matched += match[0];
59597 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
59598
59599 if (this.done && this._input) {
59600 this.done = false;
59601 }
59602
59603 if (token) {
59604 return token;
59605 } else if (this._backtrack) {
59606 // recover context
59607 for (var k in backup) {
59608 this[k] = backup[k];
59609 }
59610
59611 return false; // rule action called reject() implying the next rule should be tested instead.
59612 }
59613
59614 return false;
59615 },
59616 // return next match in input
59617 next: function () {
59618 if (this.done) {
59619 return this.EOF;
59620 }
59621
59622 if (!this._input) {
59623 this.done = true;
59624 }
59625
59626 var token, match, tempMatch, index;
59627
59628 if (!this._more) {
59629 this.yytext = '';
59630 this.match = '';
59631 }
59632
59633 var rules = this._currentRules();
59634
59635 for (var i = 0; i < rules.length; i++) {
59636 tempMatch = this._input.match(this.rules[rules[i]]);
59637
59638 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
59639 match = tempMatch;
59640 index = i;
59641
59642 if (this.options.backtrack_lexer) {
59643 token = this.test_match(tempMatch, rules[i]);
59644
59645 if (token !== false) {
59646 return token;
59647 } else if (this._backtrack) {
59648 match = false;
59649 continue; // rule action called reject() implying a rule MISmatch.
59650 } else {
59651 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
59652 return false;
59653 }
59654 } else if (!this.options.flex) {
59655 break;
59656 }
59657 }
59658 }
59659
59660 if (match) {
59661 token = this.test_match(match, rules[index]);
59662
59663 if (token !== false) {
59664 return token;
59665 } // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
59666
59667
59668 return false;
59669 }
59670
59671 if (this._input === "") {
59672 return this.EOF;
59673 } else {
59674 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
59675 text: "",
59676 token: null,
59677 line: this.yylineno
59678 });
59679 }
59680 },
59681 // return next match that has a token
59682 lex: function lex() {
59683 var r = this.next();
59684
59685 if (r) {
59686 return r;
59687 } else {
59688 return this.lex();
59689 }
59690 },
59691 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
59692 begin: function begin(condition) {
59693 this.conditionStack.push(condition);
59694 },
59695 // pop the previously active lexer condition state off the condition stack
59696 popState: function popState() {
59697 var n = this.conditionStack.length - 1;
59698
59699 if (n > 0) {
59700 return this.conditionStack.pop();
59701 } else {
59702 return this.conditionStack[0];
59703 }
59704 },
59705 // produce the lexer rule set which is active for the currently active lexer condition state
59706 _currentRules: function _currentRules() {
59707 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
59708 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
59709 } else {
59710 return this.conditions["INITIAL"].rules;
59711 }
59712 },
59713 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
59714 topState: function topState(n) {
59715 n = this.conditionStack.length - 1 - Math.abs(n || 0);
59716
59717 if (n >= 0) {
59718 return this.conditionStack[n];
59719 } else {
59720 return "INITIAL";
59721 }
59722 },
59723 // alias for begin(condition)
59724 pushState: function pushState(condition) {
59725 this.begin(condition);
59726 },
59727 // return the number of states currently on the stack
59728 stateStackSize: function stateStackSize() {
59729 return this.conditionStack.length;
59730 },
59731 options: {
59732 "case-insensitive": true
59733 },
59734 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
59735 var YYSTATE = YY_START;
59736
59737 switch ($avoiding_name_collisions) {
59738 case 0:
59739 return 12;
59740 break;
59741
59742 case 1:
59743 /* skip all whitespace */
59744 break;
59745
59746 case 2:
59747 /* skip comments */
59748 break;
59749
59750 case 3:
59751 /* skip comments */
59752 break;
59753
59754 case 4:
59755 return 4;
59756 break;
59757
59758 case 5:
59759 return 15;
59760 break;
59761
59762 case 6:
59763 return 17;
59764 break;
59765
59766 case 7:
59767 return 20;
59768 break;
59769
59770 case 8:
59771 return 21;
59772 break;
59773
59774 case 9:
59775 return 19;
59776 break;
59777
59778 case 10:
59779 return 8;
59780 break;
59781
59782 case 11:
59783 return 8;
59784 break;
59785
59786 case 12:
59787 return 5;
59788 break;
59789
59790 case 13:
59791 return 26;
59792 break;
59793
59794 case 14:
59795 this.begin("options");
59796 break;
59797
59798 case 15:
59799 this.popState();
59800 break;
59801
59802 case 16:
59803 return 11;
59804 break;
59805
59806 case 17:
59807 this.begin("string");
59808 break;
59809
59810 case 18:
59811 this.popState();
59812 break;
59813
59814 case 19:
59815 return 23;
59816 break;
59817
59818 case 20:
59819 return 18;
59820 break;
59821
59822 case 21:
59823 return 7;
59824 break;
59825 }
59826 },
59827 rules: [/^(?:(\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],
59828 conditions: {
59829 "options": {
59830 "rules": [15, 16],
59831 "inclusive": false
59832 },
59833 "string": {
59834 "rules": [18, 19],
59835 "inclusive": false
59836 },
59837 "INITIAL": {
59838 "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 20, 21],
59839 "inclusive": true
59840 }
59841 }
59842 };
59843 return lexer;
59844 }();
59845
59846 parser.lexer = lexer;
59847
59848 function Parser() {
59849 this.yy = {};
59850 }
59851
59852 Parser.prototype = parser;
59853 parser.Parser = Parser;
59854 return new Parser();
59855}();
59856
59857if (true) {
59858 exports.parser = parser;
59859 exports.Parser = parser.Parser;
59860
59861 exports.parse = function () {
59862 return parser.parse.apply(parser, arguments);
59863 };
59864
59865 exports.main = function commonjsMain(args) {
59866 if (!args[1]) {
59867 console.log('Usage: ' + args[0] + ' FILE');
59868 process.exit(1);
59869 }
59870
59871 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");
59872
59873 return exports.parser.parse(source);
59874 };
59875
59876 if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
59877 exports.main(process.argv.slice(1));
59878 }
59879}
59880/* 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)))
59881
59882/***/ }),
59883
59884/***/ "./src/diagrams/info/infoDb.js":
59885/*!*************************************!*\
59886 !*** ./src/diagrams/info/infoDb.js ***!
59887 \*************************************/
59888/*! exports provided: setMessage, getMessage, setInfo, getInfo, default */
59889/***/ (function(module, __webpack_exports__, __webpack_require__) {
59890
59891"use strict";
59892__webpack_require__.r(__webpack_exports__);
59893/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMessage", function() { return setMessage; });
59894/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMessage", function() { return getMessage; });
59895/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setInfo", function() { return setInfo; });
59896/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInfo", function() { return getInfo; });
59897/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
59898/**
59899 * Created by knut on 15-01-14.
59900 */
59901
59902var message = '';
59903var info = false;
59904const setMessage = txt => {
59905 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Setting message to: ' + txt);
59906 message = txt;
59907};
59908const getMessage = () => {
59909 return message;
59910};
59911const setInfo = inf => {
59912 info = inf;
59913};
59914const getInfo = () => {
59915 return info;
59916}; // export const parseError = (err, hash) => {
59917// global.mermaidAPI.parseError(err, hash)
59918// }
59919
59920/* harmony default export */ __webpack_exports__["default"] = ({
59921 setMessage,
59922 getMessage,
59923 setInfo,
59924 getInfo // parseError
59925
59926});
59927
59928/***/ }),
59929
59930/***/ "./src/diagrams/info/infoRenderer.js":
59931/*!*******************************************!*\
59932 !*** ./src/diagrams/info/infoRenderer.js ***!
59933 \*******************************************/
59934/*! exports provided: setConf, draw, default */
59935/***/ (function(module, __webpack_exports__, __webpack_require__) {
59936
59937"use strict";
59938__webpack_require__.r(__webpack_exports__);
59939/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
59940/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
59941/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
59942/* harmony import */ var _infoDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./infoDb */ "./src/diagrams/info/infoDb.js");
59943/* harmony import */ var _parser_info_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/info.js */ "./src/diagrams/info/parser/info.js");
59944/* harmony import */ var _parser_info_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_info_js__WEBPACK_IMPORTED_MODULE_2__);
59945/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
59946/**
59947 * Created by knut on 14-12-11.
59948 */
59949
59950
59951
59952
59953const conf = {};
59954const setConf = function (cnf) {
59955 const keys = Object.keys(cnf);
59956 keys.forEach(function (key) {
59957 conf[key] = cnf[key];
59958 });
59959};
59960/**
59961 * Draws a an info picture in the tag with id: id based on the graph definition in text.
59962 * @param text
59963 * @param id
59964 */
59965
59966const draw = (txt, id, ver) => {
59967 try {
59968 const parser = _parser_info_js__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
59969 parser.yy = _infoDb__WEBPACK_IMPORTED_MODULE_1__["default"];
59970 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Renering info diagram\n' + txt); // Parse the graph definition
59971
59972 parser.parse(txt);
59973 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Parsed info diagram'); // Fetch the default direction, use TD if none was found
59974
59975 const svg = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#' + id);
59976 const g = svg.append('g');
59977 g.append('text') // text label for the x axis
59978 .attr('x', 100).attr('y', 40).attr('class', 'version').attr('font-size', '32px').style('text-anchor', 'middle').text('v ' + ver);
59979 svg.attr('height', 100);
59980 svg.attr('width', 400); // svg.attr('viewBox', '0 0 300 150');
59981 } catch (e) {
59982 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering info diagram');
59983 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e.message);
59984 }
59985};
59986/* harmony default export */ __webpack_exports__["default"] = ({
59987 setConf,
59988 draw
59989});
59990
59991/***/ }),
59992
59993/***/ "./src/diagrams/info/parser/info.js":
59994/*!******************************************!*\
59995 !*** ./src/diagrams/info/parser/info.js ***!
59996 \******************************************/
59997/*! no static exports found */
59998/***/ (function(module, exports, __webpack_require__) {
59999
60000/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
60001
60002/*
60003 Returns a Parser object of the following structure:
60004
60005 Parser: {
60006 yy: {}
60007 }
60008
60009 Parser.prototype: {
60010 yy: {},
60011 trace: function(),
60012 symbols_: {associative list: name ==> number},
60013 terminals_: {associative list: number ==> name},
60014 productions_: [...],
60015 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
60016 table: [...],
60017 defaultActions: {...},
60018 parseError: function(str, hash),
60019 parse: function(input),
60020
60021 lexer: {
60022 EOF: 1,
60023 parseError: function(str, hash),
60024 setInput: function(input),
60025 input: function(),
60026 unput: function(str),
60027 more: function(),
60028 less: function(n),
60029 pastInput: function(),
60030 upcomingInput: function(),
60031 showPosition: function(),
60032 test_match: function(regex_match_array, rule_index),
60033 next: function(),
60034 lex: function(),
60035 begin: function(condition),
60036 popState: function(),
60037 _currentRules: function(),
60038 topState: function(),
60039 pushState: function(condition),
60040
60041 options: {
60042 ranges: boolean (optional: true ==> token location info will include a .range[] member)
60043 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
60044 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)
60045 },
60046
60047 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
60048 rules: [...],
60049 conditions: {associative list: name ==> set},
60050 }
60051 }
60052
60053
60054 token location info (@$, _$, etc.): {
60055 first_line: n,
60056 last_line: n,
60057 first_column: n,
60058 last_column: n,
60059 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
60060 }
60061
60062
60063 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
60064 text: (matched text)
60065 token: (the produced terminal token, if any)
60066 line: (yylineno)
60067 }
60068 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
60069 loc: (yylloc)
60070 expected: (string describing the set of expected tokens)
60071 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
60072 }
60073*/
60074var parser = function () {
60075 var o = function (k, v, o, l) {
60076 for (o = o || {}, l = k.length; l--; o[k[l]] = v);
60077
60078 return o;
60079 },
60080 $V0 = [6, 9, 10];
60081
60082 var parser = {
60083 trace: function trace() {},
60084 yy: {},
60085 symbols_: {
60086 "error": 2,
60087 "start": 3,
60088 "info": 4,
60089 "document": 5,
60090 "EOF": 6,
60091 "line": 7,
60092 "statement": 8,
60093 "NL": 9,
60094 "showInfo": 10,
60095 "$accept": 0,
60096 "$end": 1
60097 },
60098 terminals_: {
60099 2: "error",
60100 4: "info",
60101 6: "EOF",
60102 9: "NL",
60103 10: "showInfo"
60104 },
60105 productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]],
60106 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate
60107 /* action[1] */
60108 , $$
60109 /* vstack */
60110 , _$
60111 /* lstack */
60112 ) {
60113 /* this == yyval */
60114 var $0 = $$.length - 1;
60115
60116 switch (yystate) {
60117 case 1:
60118 return yy;
60119 break;
60120
60121 case 4:
60122 break;
60123
60124 case 6:
60125 yy.setInfo(true);
60126 break;
60127 }
60128 },
60129 table: [{
60130 3: 1,
60131 4: [1, 2]
60132 }, {
60133 1: [3]
60134 }, o($V0, [2, 2], {
60135 5: 3
60136 }), {
60137 6: [1, 4],
60138 7: 5,
60139 8: 6,
60140 9: [1, 7],
60141 10: [1, 8]
60142 }, {
60143 1: [2, 1]
60144 }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])],
60145 defaultActions: {
60146 4: [2, 1]
60147 },
60148 parseError: function parseError(str, hash) {
60149 if (hash.recoverable) {
60150 this.trace(str);
60151 } else {
60152 var error = new Error(str);
60153 error.hash = hash;
60154 throw error;
60155 }
60156 },
60157 parse: function parse(input) {
60158 var self = this,
60159 stack = [0],
60160 tstack = [],
60161 vstack = [null],
60162 lstack = [],
60163 table = this.table,
60164 yytext = '',
60165 yylineno = 0,
60166 yyleng = 0,
60167 recovering = 0,
60168 TERROR = 2,
60169 EOF = 1;
60170 var args = lstack.slice.call(arguments, 1);
60171 var lexer = Object.create(this.lexer);
60172 var sharedState = {
60173 yy: {}
60174 };
60175
60176 for (var k in this.yy) {
60177 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
60178 sharedState.yy[k] = this.yy[k];
60179 }
60180 }
60181
60182 lexer.setInput(input, sharedState.yy);
60183 sharedState.yy.lexer = lexer;
60184 sharedState.yy.parser = this;
60185
60186 if (typeof lexer.yylloc == 'undefined') {
60187 lexer.yylloc = {};
60188 }
60189
60190 var yyloc = lexer.yylloc;
60191 lstack.push(yyloc);
60192 var ranges = lexer.options && lexer.options.ranges;
60193
60194 if (typeof sharedState.yy.parseError === 'function') {
60195 this.parseError = sharedState.yy.parseError;
60196 } else {
60197 this.parseError = Object.getPrototypeOf(this).parseError;
60198 }
60199
60200 function popStack(n) {
60201 stack.length = stack.length - 2 * n;
60202 vstack.length = vstack.length - n;
60203 lstack.length = lstack.length - n;
60204 }
60205
60206 function lex() {
60207 var token;
60208 token = tstack.pop() || lexer.lex() || EOF;
60209
60210 if (typeof token !== 'number') {
60211 if (token instanceof Array) {
60212 tstack = token;
60213 token = tstack.pop();
60214 }
60215
60216 token = self.symbols_[token] || token;
60217 }
60218
60219 return token;
60220 }
60221
60222 var symbol,
60223 preErrorSymbol,
60224 state,
60225 action,
60226 a,
60227 r,
60228 yyval = {},
60229 p,
60230 len,
60231 newState,
60232 expected;
60233
60234 while (true) {
60235 state = stack[stack.length - 1];
60236
60237 if (this.defaultActions[state]) {
60238 action = this.defaultActions[state];
60239 } else {
60240 if (symbol === null || typeof symbol == 'undefined') {
60241 symbol = lex();
60242 }
60243
60244 action = table[state] && table[state][symbol];
60245 }
60246
60247 if (typeof action === 'undefined' || !action.length || !action[0]) {
60248 var errStr = '';
60249 expected = [];
60250
60251 for (p in table[state]) {
60252 if (this.terminals_[p] && p > TERROR) {
60253 expected.push('\'' + this.terminals_[p] + '\'');
60254 }
60255 }
60256
60257 if (lexer.showPosition) {
60258 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
60259 } else {
60260 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
60261 }
60262
60263 this.parseError(errStr, {
60264 text: lexer.match,
60265 token: this.terminals_[symbol] || symbol,
60266 line: lexer.yylineno,
60267 loc: yyloc,
60268 expected: expected
60269 });
60270 }
60271
60272 if (action[0] instanceof Array && action.length > 1) {
60273 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
60274 }
60275
60276 switch (action[0]) {
60277 case 1:
60278 stack.push(symbol);
60279 vstack.push(lexer.yytext);
60280 lstack.push(lexer.yylloc);
60281 stack.push(action[1]);
60282 symbol = null;
60283
60284 if (!preErrorSymbol) {
60285 yyleng = lexer.yyleng;
60286 yytext = lexer.yytext;
60287 yylineno = lexer.yylineno;
60288 yyloc = lexer.yylloc;
60289
60290 if (recovering > 0) {
60291 recovering--;
60292 }
60293 } else {
60294 symbol = preErrorSymbol;
60295 preErrorSymbol = null;
60296 }
60297
60298 break;
60299
60300 case 2:
60301 len = this.productions_[action[1]][1];
60302 yyval.$ = vstack[vstack.length - len];
60303 yyval._$ = {
60304 first_line: lstack[lstack.length - (len || 1)].first_line,
60305 last_line: lstack[lstack.length - 1].last_line,
60306 first_column: lstack[lstack.length - (len || 1)].first_column,
60307 last_column: lstack[lstack.length - 1].last_column
60308 };
60309
60310 if (ranges) {
60311 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
60312 }
60313
60314 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
60315
60316 if (typeof r !== 'undefined') {
60317 return r;
60318 }
60319
60320 if (len) {
60321 stack = stack.slice(0, -1 * len * 2);
60322 vstack = vstack.slice(0, -1 * len);
60323 lstack = lstack.slice(0, -1 * len);
60324 }
60325
60326 stack.push(this.productions_[action[1]][0]);
60327 vstack.push(yyval.$);
60328 lstack.push(yyval._$);
60329 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
60330 stack.push(newState);
60331 break;
60332
60333 case 3:
60334 return true;
60335 }
60336 }
60337
60338 return true;
60339 }
60340 };
60341 /* generated by jison-lex 0.3.4 */
60342
60343 var lexer = function () {
60344 var lexer = {
60345 EOF: 1,
60346 parseError: function parseError(str, hash) {
60347 if (this.yy.parser) {
60348 this.yy.parser.parseError(str, hash);
60349 } else {
60350 throw new Error(str);
60351 }
60352 },
60353 // resets the lexer, sets new input
60354 setInput: function (input, yy) {
60355 this.yy = yy || this.yy || {};
60356 this._input = input;
60357 this._more = this._backtrack = this.done = false;
60358 this.yylineno = this.yyleng = 0;
60359 this.yytext = this.matched = this.match = '';
60360 this.conditionStack = ['INITIAL'];
60361 this.yylloc = {
60362 first_line: 1,
60363 first_column: 0,
60364 last_line: 1,
60365 last_column: 0
60366 };
60367
60368 if (this.options.ranges) {
60369 this.yylloc.range = [0, 0];
60370 }
60371
60372 this.offset = 0;
60373 return this;
60374 },
60375 // consumes and returns one char from the input
60376 input: function () {
60377 var ch = this._input[0];
60378 this.yytext += ch;
60379 this.yyleng++;
60380 this.offset++;
60381 this.match += ch;
60382 this.matched += ch;
60383 var lines = ch.match(/(?:\r\n?|\n).*/g);
60384
60385 if (lines) {
60386 this.yylineno++;
60387 this.yylloc.last_line++;
60388 } else {
60389 this.yylloc.last_column++;
60390 }
60391
60392 if (this.options.ranges) {
60393 this.yylloc.range[1]++;
60394 }
60395
60396 this._input = this._input.slice(1);
60397 return ch;
60398 },
60399 // unshifts one char (or a string) into the input
60400 unput: function (ch) {
60401 var len = ch.length;
60402 var lines = ch.split(/(?:\r\n?|\n)/g);
60403 this._input = ch + this._input;
60404 this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len;
60405
60406 this.offset -= len;
60407 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
60408 this.match = this.match.substr(0, this.match.length - 1);
60409 this.matched = this.matched.substr(0, this.matched.length - 1);
60410
60411 if (lines.length - 1) {
60412 this.yylineno -= lines.length - 1;
60413 }
60414
60415 var r = this.yylloc.range;
60416 this.yylloc = {
60417 first_line: this.yylloc.first_line,
60418 last_line: this.yylineno + 1,
60419 first_column: this.yylloc.first_column,
60420 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
60421 };
60422
60423 if (this.options.ranges) {
60424 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
60425 }
60426
60427 this.yyleng = this.yytext.length;
60428 return this;
60429 },
60430 // When called from action, caches matched text and appends it on next action
60431 more: function () {
60432 this._more = true;
60433 return this;
60434 },
60435 // 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.
60436 reject: function () {
60437 if (this.options.backtrack_lexer) {
60438 this._backtrack = true;
60439 } else {
60440 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(), {
60441 text: "",
60442 token: null,
60443 line: this.yylineno
60444 });
60445 }
60446
60447 return this;
60448 },
60449 // retain first n characters of the match
60450 less: function (n) {
60451 this.unput(this.match.slice(n));
60452 },
60453 // displays already matched input, i.e. for error messages
60454 pastInput: function () {
60455 var past = this.matched.substr(0, this.matched.length - this.match.length);
60456 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
60457 },
60458 // displays upcoming input, i.e. for error messages
60459 upcomingInput: function () {
60460 var next = this.match;
60461
60462 if (next.length < 20) {
60463 next += this._input.substr(0, 20 - next.length);
60464 }
60465
60466 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
60467 },
60468 // displays the character position where the lexing error occurred, i.e. for error messages
60469 showPosition: function () {
60470 var pre = this.pastInput();
60471 var c = new Array(pre.length + 1).join("-");
60472 return pre + this.upcomingInput() + "\n" + c + "^";
60473 },
60474 // test the lexed token: return FALSE when not a match, otherwise return token
60475 test_match: function (match, indexed_rule) {
60476 var token, lines, backup;
60477
60478 if (this.options.backtrack_lexer) {
60479 // save context
60480 backup = {
60481 yylineno: this.yylineno,
60482 yylloc: {
60483 first_line: this.yylloc.first_line,
60484 last_line: this.last_line,
60485 first_column: this.yylloc.first_column,
60486 last_column: this.yylloc.last_column
60487 },
60488 yytext: this.yytext,
60489 match: this.match,
60490 matches: this.matches,
60491 matched: this.matched,
60492 yyleng: this.yyleng,
60493 offset: this.offset,
60494 _more: this._more,
60495 _input: this._input,
60496 yy: this.yy,
60497 conditionStack: this.conditionStack.slice(0),
60498 done: this.done
60499 };
60500
60501 if (this.options.ranges) {
60502 backup.yylloc.range = this.yylloc.range.slice(0);
60503 }
60504 }
60505
60506 lines = match[0].match(/(?:\r\n?|\n).*/g);
60507
60508 if (lines) {
60509 this.yylineno += lines.length;
60510 }
60511
60512 this.yylloc = {
60513 first_line: this.yylloc.last_line,
60514 last_line: this.yylineno + 1,
60515 first_column: this.yylloc.last_column,
60516 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
60517 };
60518 this.yytext += match[0];
60519 this.match += match[0];
60520 this.matches = match;
60521 this.yyleng = this.yytext.length;
60522
60523 if (this.options.ranges) {
60524 this.yylloc.range = [this.offset, this.offset += this.yyleng];
60525 }
60526
60527 this._more = false;
60528 this._backtrack = false;
60529 this._input = this._input.slice(match[0].length);
60530 this.matched += match[0];
60531 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
60532
60533 if (this.done && this._input) {
60534 this.done = false;
60535 }
60536
60537 if (token) {
60538 return token;
60539 } else if (this._backtrack) {
60540 // recover context
60541 for (var k in backup) {
60542 this[k] = backup[k];
60543 }
60544
60545 return false; // rule action called reject() implying the next rule should be tested instead.
60546 }
60547
60548 return false;
60549 },
60550 // return next match in input
60551 next: function () {
60552 if (this.done) {
60553 return this.EOF;
60554 }
60555
60556 if (!this._input) {
60557 this.done = true;
60558 }
60559
60560 var token, match, tempMatch, index;
60561
60562 if (!this._more) {
60563 this.yytext = '';
60564 this.match = '';
60565 }
60566
60567 var rules = this._currentRules();
60568
60569 for (var i = 0; i < rules.length; i++) {
60570 tempMatch = this._input.match(this.rules[rules[i]]);
60571
60572 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
60573 match = tempMatch;
60574 index = i;
60575
60576 if (this.options.backtrack_lexer) {
60577 token = this.test_match(tempMatch, rules[i]);
60578
60579 if (token !== false) {
60580 return token;
60581 } else if (this._backtrack) {
60582 match = false;
60583 continue; // rule action called reject() implying a rule MISmatch.
60584 } else {
60585 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
60586 return false;
60587 }
60588 } else if (!this.options.flex) {
60589 break;
60590 }
60591 }
60592 }
60593
60594 if (match) {
60595 token = this.test_match(match, rules[index]);
60596
60597 if (token !== false) {
60598 return token;
60599 } // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
60600
60601
60602 return false;
60603 }
60604
60605 if (this._input === "") {
60606 return this.EOF;
60607 } else {
60608 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
60609 text: "",
60610 token: null,
60611 line: this.yylineno
60612 });
60613 }
60614 },
60615 // return next match that has a token
60616 lex: function lex() {
60617 var r = this.next();
60618
60619 if (r) {
60620 return r;
60621 } else {
60622 return this.lex();
60623 }
60624 },
60625 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
60626 begin: function begin(condition) {
60627 this.conditionStack.push(condition);
60628 },
60629 // pop the previously active lexer condition state off the condition stack
60630 popState: function popState() {
60631 var n = this.conditionStack.length - 1;
60632
60633 if (n > 0) {
60634 return this.conditionStack.pop();
60635 } else {
60636 return this.conditionStack[0];
60637 }
60638 },
60639 // produce the lexer rule set which is active for the currently active lexer condition state
60640 _currentRules: function _currentRules() {
60641 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
60642 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
60643 } else {
60644 return this.conditions["INITIAL"].rules;
60645 }
60646 },
60647 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
60648 topState: function topState(n) {
60649 n = this.conditionStack.length - 1 - Math.abs(n || 0);
60650
60651 if (n >= 0) {
60652 return this.conditionStack[n];
60653 } else {
60654 return "INITIAL";
60655 }
60656 },
60657 // alias for begin(condition)
60658 pushState: function pushState(condition) {
60659 this.begin(condition);
60660 },
60661 // return the number of states currently on the stack
60662 stateStackSize: function stateStackSize() {
60663 return this.conditionStack.length;
60664 },
60665 options: {
60666 "case-insensitive": true
60667 },
60668 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
60669 // Pre-lexer code can go here
60670 var YYSTATE = YY_START;
60671
60672 switch ($avoiding_name_collisions) {
60673 case 0:
60674 return 4;
60675 break;
60676
60677 case 1:
60678 return 9;
60679 break;
60680
60681 case 2:
60682 return 'space';
60683 break;
60684
60685 case 3:
60686 return 10;
60687 break;
60688
60689 case 4:
60690 return 6;
60691 break;
60692
60693 case 5:
60694 return 'TXT';
60695 break;
60696 }
60697 },
60698 rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i],
60699 conditions: {
60700 "INITIAL": {
60701 "rules": [0, 1, 2, 3, 4, 5],
60702 "inclusive": true
60703 }
60704 }
60705 };
60706 return lexer;
60707 }();
60708
60709 parser.lexer = lexer;
60710
60711 function Parser() {
60712 this.yy = {};
60713 }
60714
60715 Parser.prototype = parser;
60716 parser.Parser = Parser;
60717 return new Parser();
60718}();
60719
60720if (true) {
60721 exports.parser = parser;
60722 exports.Parser = parser.Parser;
60723
60724 exports.parse = function () {
60725 return parser.parse.apply(parser, arguments);
60726 };
60727
60728 exports.main = function commonjsMain(args) {
60729 if (!args[1]) {
60730 console.log('Usage: ' + args[0] + ' FILE');
60731 process.exit(1);
60732 }
60733
60734 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");
60735
60736 return exports.parser.parse(source);
60737 };
60738
60739 if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
60740 exports.main(process.argv.slice(1));
60741 }
60742}
60743/* 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)))
60744
60745/***/ }),
60746
60747/***/ "./src/diagrams/sequence/parser/sequenceDiagram.js":
60748/*!*********************************************************!*\
60749 !*** ./src/diagrams/sequence/parser/sequenceDiagram.js ***!
60750 \*********************************************************/
60751/*! no static exports found */
60752/***/ (function(module, exports, __webpack_require__) {
60753
60754/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
60755
60756/*
60757 Returns a Parser object of the following structure:
60758
60759 Parser: {
60760 yy: {}
60761 }
60762
60763 Parser.prototype: {
60764 yy: {},
60765 trace: function(),
60766 symbols_: {associative list: name ==> number},
60767 terminals_: {associative list: number ==> name},
60768 productions_: [...],
60769 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
60770 table: [...],
60771 defaultActions: {...},
60772 parseError: function(str, hash),
60773 parse: function(input),
60774
60775 lexer: {
60776 EOF: 1,
60777 parseError: function(str, hash),
60778 setInput: function(input),
60779 input: function(),
60780 unput: function(str),
60781 more: function(),
60782 less: function(n),
60783 pastInput: function(),
60784 upcomingInput: function(),
60785 showPosition: function(),
60786 test_match: function(regex_match_array, rule_index),
60787 next: function(),
60788 lex: function(),
60789 begin: function(condition),
60790 popState: function(),
60791 _currentRules: function(),
60792 topState: function(),
60793 pushState: function(condition),
60794
60795 options: {
60796 ranges: boolean (optional: true ==> token location info will include a .range[] member)
60797 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
60798 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)
60799 },
60800
60801 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
60802 rules: [...],
60803 conditions: {associative list: name ==> set},
60804 }
60805 }
60806
60807
60808 token location info (@$, _$, etc.): {
60809 first_line: n,
60810 last_line: n,
60811 first_column: n,
60812 last_column: n,
60813 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
60814 }
60815
60816
60817 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
60818 text: (matched text)
60819 token: (the produced terminal token, if any)
60820 line: (yylineno)
60821 }
60822 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
60823 loc: (yylloc)
60824 expected: (string describing the set of expected tokens)
60825 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
60826 }
60827*/
60828var sequenceDiagram = function () {
60829 var o = function (k, v, o, l) {
60830 for (o = o || {}, l = k.length; l--; o[k[l]] = v);
60831
60832 return o;
60833 },
60834 $V0 = [1, 2],
60835 $V1 = [1, 3],
60836 $V2 = [1, 4],
60837 $V3 = [2, 4],
60838 $V4 = [1, 9],
60839 $V5 = [1, 11],
60840 $V6 = [1, 12],
60841 $V7 = [1, 14],
60842 $V8 = [1, 15],
60843 $V9 = [1, 17],
60844 $Va = [1, 18],
60845 $Vb = [1, 19],
60846 $Vc = [1, 20],
60847 $Vd = [1, 21],
60848 $Ve = [1, 23],
60849 $Vf = [1, 24],
60850 $Vg = [1, 4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 27, 28, 29, 40],
60851 $Vh = [1, 32],
60852 $Vi = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 29, 40],
60853 $Vj = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 28, 29, 40],
60854 $Vk = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 27, 29, 40],
60855 $Vl = [38, 39, 40];
60856
60857 var parser = {
60858 trace: function trace() {},
60859 yy: {},
60860 symbols_: {
60861 "error": 2,
60862 "start": 3,
60863 "SPACE": 4,
60864 "NL": 5,
60865 "SD": 6,
60866 "document": 7,
60867 "line": 8,
60868 "statement": 9,
60869 "participant": 10,
60870 "actor": 11,
60871 "AS": 12,
60872 "restOfLine": 13,
60873 "signal": 14,
60874 "activate": 15,
60875 "deactivate": 16,
60876 "note_statement": 17,
60877 "title": 18,
60878 "text2": 19,
60879 "loop": 20,
60880 "end": 21,
60881 "opt": 22,
60882 "alt": 23,
60883 "else_sections": 24,
60884 "par": 25,
60885 "par_sections": 26,
60886 "and": 27,
60887 "else": 28,
60888 "note": 29,
60889 "placement": 30,
60890 "over": 31,
60891 "actor_pair": 32,
60892 "spaceList": 33,
60893 ",": 34,
60894 "left_of": 35,
60895 "right_of": 36,
60896 "signaltype": 37,
60897 "+": 38,
60898 "-": 39,
60899 "ACTOR": 40,
60900 "SOLID_OPEN_ARROW": 41,
60901 "DOTTED_OPEN_ARROW": 42,
60902 "SOLID_ARROW": 43,
60903 "DOTTED_ARROW": 44,
60904 "SOLID_CROSS": 45,
60905 "DOTTED_CROSS": 46,
60906 "TXT": 47,
60907 "$accept": 0,
60908 "$end": 1
60909 },
60910 terminals_: {
60911 2: "error",
60912 4: "SPACE",
60913 5: "NL",
60914 6: "SD",
60915 10: "participant",
60916 12: "AS",
60917 13: "restOfLine",
60918 15: "activate",
60919 16: "deactivate",
60920 18: "title",
60921 20: "loop",
60922 21: "end",
60923 22: "opt",
60924 23: "alt",
60925 25: "par",
60926 27: "and",
60927 28: "else",
60928 29: "note",
60929 31: "over",
60930 34: ",",
60931 35: "left_of",
60932 36: "right_of",
60933 38: "+",
60934 39: "-",
60935 40: "ACTOR",
60936 41: "SOLID_OPEN_ARROW",
60937 42: "DOTTED_OPEN_ARROW",
60938 43: "SOLID_ARROW",
60939 44: "DOTTED_ARROW",
60940 45: "SOLID_CROSS",
60941 46: "DOTTED_CROSS",
60942 47: "TXT"
60943 },
60944 productions_: [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], [26, 1], [26, 4], [24, 1], [24, 4], [17, 4], [17, 4], [33, 2], [33, 1], [32, 3], [32, 1], [30, 1], [30, 1], [14, 5], [14, 5], [14, 4], [11, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [19, 1]],
60945 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate
60946 /* action[1] */
60947 , $$
60948 /* vstack */
60949 , _$
60950 /* lstack */
60951 ) {
60952 /* this == yyval */
60953 var $0 = $$.length - 1;
60954
60955 switch (yystate) {
60956 case 3:
60957 yy.apply($$[$0]);
60958 return $$[$0];
60959 break;
60960
60961 case 4:
60962 this.$ = [];
60963 break;
60964
60965 case 5:
60966 $$[$0 - 1].push($$[$0]);
60967 this.$ = $$[$0 - 1];
60968 break;
60969
60970 case 6:
60971 case 7:
60972 this.$ = $$[$0];
60973 break;
60974
60975 case 8:
60976 this.$ = [];
60977 break;
60978
60979 case 9:
60980 $$[$0 - 3].description = $$[$0 - 1];
60981 this.$ = $$[$0 - 3];
60982 break;
60983
60984 case 10:
60985 this.$ = $$[$0 - 1];
60986 break;
60987
60988 case 12:
60989 this.$ = {
60990 type: 'activeStart',
60991 signalType: yy.LINETYPE.ACTIVE_START,
60992 actor: $$[$0 - 1]
60993 };
60994 break;
60995
60996 case 13:
60997 this.$ = {
60998 type: 'activeEnd',
60999 signalType: yy.LINETYPE.ACTIVE_END,
61000 actor: $$[$0 - 1]
61001 };
61002 break;
61003
61004 case 15:
61005 this.$ = [{
61006 type: 'setTitle',
61007 text: $$[$0 - 1]
61008 }];
61009 break;
61010
61011 case 16:
61012 $$[$0 - 1].unshift({
61013 type: 'loopStart',
61014 loopText: $$[$0 - 2],
61015 signalType: yy.LINETYPE.LOOP_START
61016 });
61017 $$[$0 - 1].push({
61018 type: 'loopEnd',
61019 loopText: $$[$0 - 2],
61020 signalType: yy.LINETYPE.LOOP_END
61021 });
61022 this.$ = $$[$0 - 1];
61023 break;
61024
61025 case 17:
61026 $$[$0 - 1].unshift({
61027 type: 'optStart',
61028 optText: $$[$0 - 2],
61029 signalType: yy.LINETYPE.OPT_START
61030 });
61031 $$[$0 - 1].push({
61032 type: 'optEnd',
61033 optText: $$[$0 - 2],
61034 signalType: yy.LINETYPE.OPT_END
61035 });
61036 this.$ = $$[$0 - 1];
61037 break;
61038
61039 case 18:
61040 // Alt start
61041 $$[$0 - 1].unshift({
61042 type: 'altStart',
61043 altText: $$[$0 - 2],
61044 signalType: yy.LINETYPE.ALT_START
61045 }); // Content in alt is already in $$[$0-1]
61046 // End
61047
61048 $$[$0 - 1].push({
61049 type: 'altEnd',
61050 signalType: yy.LINETYPE.ALT_END
61051 });
61052 this.$ = $$[$0 - 1];
61053 break;
61054
61055 case 19:
61056 // Parallel start
61057 $$[$0 - 1].unshift({
61058 type: 'parStart',
61059 parText: $$[$0 - 2],
61060 signalType: yy.LINETYPE.PAR_START
61061 }); // Content in par is already in $$[$0-1]
61062 // End
61063
61064 $$[$0 - 1].push({
61065 type: 'parEnd',
61066 signalType: yy.LINETYPE.PAR_END
61067 });
61068 this.$ = $$[$0 - 1];
61069 break;
61070
61071 case 21:
61072 this.$ = $$[$0 - 3].concat([{
61073 type: 'and',
61074 parText: $$[$0 - 1],
61075 signalType: yy.LINETYPE.PAR_AND
61076 }, $$[$0]]);
61077 break;
61078
61079 case 23:
61080 this.$ = $$[$0 - 3].concat([{
61081 type: 'else',
61082 altText: $$[$0 - 1],
61083 signalType: yy.LINETYPE.ALT_ELSE
61084 }, $$[$0]]);
61085 break;
61086
61087 case 24:
61088 this.$ = [$$[$0 - 1], {
61089 type: 'addNote',
61090 placement: $$[$0 - 2],
61091 actor: $$[$0 - 1].actor,
61092 text: $$[$0]
61093 }];
61094 break;
61095
61096 case 25:
61097 // Coerce actor_pair into a [to, from, ...] array
61098 $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);
61099 $$[$0 - 2][0] = $$[$0 - 2][0].actor;
61100 $$[$0 - 2][1] = $$[$0 - 2][1].actor;
61101 this.$ = [$$[$0 - 1], {
61102 type: 'addNote',
61103 placement: yy.PLACEMENT.OVER,
61104 actor: $$[$0 - 2].slice(0, 2),
61105 text: $$[$0]
61106 }];
61107 break;
61108
61109 case 28:
61110 this.$ = [$$[$0 - 2], $$[$0]];
61111 break;
61112
61113 case 29:
61114 this.$ = $$[$0];
61115 break;
61116
61117 case 30:
61118 this.$ = yy.PLACEMENT.LEFTOF;
61119 break;
61120
61121 case 31:
61122 this.$ = yy.PLACEMENT.RIGHTOF;
61123 break;
61124
61125 case 32:
61126 this.$ = [$$[$0 - 4], $$[$0 - 1], {
61127 type: 'addMessage',
61128 from: $$[$0 - 4].actor,
61129 to: $$[$0 - 1].actor,
61130 signalType: $$[$0 - 3],
61131 msg: $$[$0]
61132 }, {
61133 type: 'activeStart',
61134 signalType: yy.LINETYPE.ACTIVE_START,
61135 actor: $$[$0 - 1]
61136 }];
61137 break;
61138
61139 case 33:
61140 this.$ = [$$[$0 - 4], $$[$0 - 1], {
61141 type: 'addMessage',
61142 from: $$[$0 - 4].actor,
61143 to: $$[$0 - 1].actor,
61144 signalType: $$[$0 - 3],
61145 msg: $$[$0]
61146 }, {
61147 type: 'activeEnd',
61148 signalType: yy.LINETYPE.ACTIVE_END,
61149 actor: $$[$0 - 4]
61150 }];
61151 break;
61152
61153 case 34:
61154 this.$ = [$$[$0 - 3], $$[$0 - 1], {
61155 type: 'addMessage',
61156 from: $$[$0 - 3].actor,
61157 to: $$[$0 - 1].actor,
61158 signalType: $$[$0 - 2],
61159 msg: $$[$0]
61160 }];
61161 break;
61162
61163 case 35:
61164 this.$ = {
61165 type: 'addActor',
61166 actor: $$[$0]
61167 };
61168 break;
61169
61170 case 36:
61171 this.$ = yy.LINETYPE.SOLID_OPEN;
61172 break;
61173
61174 case 37:
61175 this.$ = yy.LINETYPE.DOTTED_OPEN;
61176 break;
61177
61178 case 38:
61179 this.$ = yy.LINETYPE.SOLID;
61180 break;
61181
61182 case 39:
61183 this.$ = yy.LINETYPE.DOTTED;
61184 break;
61185
61186 case 40:
61187 this.$ = yy.LINETYPE.SOLID_CROSS;
61188 break;
61189
61190 case 41:
61191 this.$ = yy.LINETYPE.DOTTED_CROSS;
61192 break;
61193
61194 case 42:
61195 this.$ = $$[$0].substring(1).trim().replace(/\\n/gm, "\n");
61196 break;
61197 }
61198 },
61199 table: [{
61200 3: 1,
61201 4: $V0,
61202 5: $V1,
61203 6: $V2
61204 }, {
61205 1: [3]
61206 }, {
61207 3: 5,
61208 4: $V0,
61209 5: $V1,
61210 6: $V2
61211 }, {
61212 3: 6,
61213 4: $V0,
61214 5: $V1,
61215 6: $V2
61216 }, o([1, 4, 5, 10, 15, 16, 18, 20, 22, 23, 25, 29, 40], $V3, {
61217 7: 7
61218 }), {
61219 1: [2, 1]
61220 }, {
61221 1: [2, 2]
61222 }, {
61223 1: [2, 3],
61224 4: $V4,
61225 5: $V5,
61226 8: 8,
61227 9: 10,
61228 10: $V6,
61229 11: 22,
61230 14: 13,
61231 15: $V7,
61232 16: $V8,
61233 17: 16,
61234 18: $V9,
61235 20: $Va,
61236 22: $Vb,
61237 23: $Vc,
61238 25: $Vd,
61239 29: $Ve,
61240 40: $Vf
61241 }, o($Vg, [2, 5]), {
61242 9: 25,
61243 10: $V6,
61244 11: 22,
61245 14: 13,
61246 15: $V7,
61247 16: $V8,
61248 17: 16,
61249 18: $V9,
61250 20: $Va,
61251 22: $Vb,
61252 23: $Vc,
61253 25: $Vd,
61254 29: $Ve,
61255 40: $Vf
61256 }, o($Vg, [2, 7]), o($Vg, [2, 8]), {
61257 11: 26,
61258 40: $Vf
61259 }, {
61260 5: [1, 27]
61261 }, {
61262 11: 28,
61263 40: $Vf
61264 }, {
61265 11: 29,
61266 40: $Vf
61267 }, {
61268 5: [1, 30]
61269 }, {
61270 19: 31,
61271 47: $Vh
61272 }, {
61273 13: [1, 33]
61274 }, {
61275 13: [1, 34]
61276 }, {
61277 13: [1, 35]
61278 }, {
61279 13: [1, 36]
61280 }, {
61281 37: 37,
61282 41: [1, 38],
61283 42: [1, 39],
61284 43: [1, 40],
61285 44: [1, 41],
61286 45: [1, 42],
61287 46: [1, 43]
61288 }, {
61289 30: 44,
61290 31: [1, 45],
61291 35: [1, 46],
61292 36: [1, 47]
61293 }, o([5, 12, 34, 41, 42, 43, 44, 45, 46, 47], [2, 35]), o($Vg, [2, 6]), {
61294 5: [1, 49],
61295 12: [1, 48]
61296 }, o($Vg, [2, 11]), {
61297 5: [1, 50]
61298 }, {
61299 5: [1, 51]
61300 }, o($Vg, [2, 14]), {
61301 5: [1, 52]
61302 }, {
61303 5: [2, 42]
61304 }, o($Vi, $V3, {
61305 7: 53
61306 }), o($Vi, $V3, {
61307 7: 54
61308 }), o($Vj, $V3, {
61309 24: 55,
61310 7: 56
61311 }), o($Vk, $V3, {
61312 26: 57,
61313 7: 58
61314 }), {
61315 11: 61,
61316 38: [1, 59],
61317 39: [1, 60],
61318 40: $Vf
61319 }, o($Vl, [2, 36]), o($Vl, [2, 37]), o($Vl, [2, 38]), o($Vl, [2, 39]), o($Vl, [2, 40]), o($Vl, [2, 41]), {
61320 11: 62,
61321 40: $Vf
61322 }, {
61323 11: 64,
61324 32: 63,
61325 40: $Vf
61326 }, {
61327 40: [2, 30]
61328 }, {
61329 40: [2, 31]
61330 }, {
61331 13: [1, 65]
61332 }, o($Vg, [2, 10]), o($Vg, [2, 12]), o($Vg, [2, 13]), o($Vg, [2, 15]), {
61333 4: $V4,
61334 5: $V5,
61335 8: 8,
61336 9: 10,
61337 10: $V6,
61338 11: 22,
61339 14: 13,
61340 15: $V7,
61341 16: $V8,
61342 17: 16,
61343 18: $V9,
61344 20: $Va,
61345 21: [1, 66],
61346 22: $Vb,
61347 23: $Vc,
61348 25: $Vd,
61349 29: $Ve,
61350 40: $Vf
61351 }, {
61352 4: $V4,
61353 5: $V5,
61354 8: 8,
61355 9: 10,
61356 10: $V6,
61357 11: 22,
61358 14: 13,
61359 15: $V7,
61360 16: $V8,
61361 17: 16,
61362 18: $V9,
61363 20: $Va,
61364 21: [1, 67],
61365 22: $Vb,
61366 23: $Vc,
61367 25: $Vd,
61368 29: $Ve,
61369 40: $Vf
61370 }, {
61371 21: [1, 68]
61372 }, {
61373 4: $V4,
61374 5: $V5,
61375 8: 8,
61376 9: 10,
61377 10: $V6,
61378 11: 22,
61379 14: 13,
61380 15: $V7,
61381 16: $V8,
61382 17: 16,
61383 18: $V9,
61384 20: $Va,
61385 21: [2, 22],
61386 22: $Vb,
61387 23: $Vc,
61388 25: $Vd,
61389 28: [1, 69],
61390 29: $Ve,
61391 40: $Vf
61392 }, {
61393 21: [1, 70]
61394 }, {
61395 4: $V4,
61396 5: $V5,
61397 8: 8,
61398 9: 10,
61399 10: $V6,
61400 11: 22,
61401 14: 13,
61402 15: $V7,
61403 16: $V8,
61404 17: 16,
61405 18: $V9,
61406 20: $Va,
61407 21: [2, 20],
61408 22: $Vb,
61409 23: $Vc,
61410 25: $Vd,
61411 27: [1, 71],
61412 29: $Ve,
61413 40: $Vf
61414 }, {
61415 11: 72,
61416 40: $Vf
61417 }, {
61418 11: 73,
61419 40: $Vf
61420 }, {
61421 19: 74,
61422 47: $Vh
61423 }, {
61424 19: 75,
61425 47: $Vh
61426 }, {
61427 19: 76,
61428 47: $Vh
61429 }, {
61430 34: [1, 77],
61431 47: [2, 29]
61432 }, {
61433 5: [1, 78]
61434 }, o($Vg, [2, 16]), o($Vg, [2, 17]), o($Vg, [2, 18]), {
61435 13: [1, 79]
61436 }, o($Vg, [2, 19]), {
61437 13: [1, 80]
61438 }, {
61439 19: 81,
61440 47: $Vh
61441 }, {
61442 19: 82,
61443 47: $Vh
61444 }, {
61445 5: [2, 34]
61446 }, {
61447 5: [2, 24]
61448 }, {
61449 5: [2, 25]
61450 }, {
61451 11: 83,
61452 40: $Vf
61453 }, o($Vg, [2, 9]), o($Vj, $V3, {
61454 7: 56,
61455 24: 84
61456 }), o($Vk, $V3, {
61457 7: 58,
61458 26: 85
61459 }), {
61460 5: [2, 32]
61461 }, {
61462 5: [2, 33]
61463 }, {
61464 47: [2, 28]
61465 }, {
61466 21: [2, 23]
61467 }, {
61468 21: [2, 21]
61469 }],
61470 defaultActions: {
61471 5: [2, 1],
61472 6: [2, 2],
61473 32: [2, 42],
61474 46: [2, 30],
61475 47: [2, 31],
61476 74: [2, 34],
61477 75: [2, 24],
61478 76: [2, 25],
61479 81: [2, 32],
61480 82: [2, 33],
61481 83: [2, 28],
61482 84: [2, 23],
61483 85: [2, 21]
61484 },
61485 parseError: function parseError(str, hash) {
61486 if (hash.recoverable) {
61487 this.trace(str);
61488 } else {
61489 var error = new Error(str);
61490 error.hash = hash;
61491 throw error;
61492 }
61493 },
61494 parse: function parse(input) {
61495 var self = this,
61496 stack = [0],
61497 tstack = [],
61498 vstack = [null],
61499 lstack = [],
61500 table = this.table,
61501 yytext = '',
61502 yylineno = 0,
61503 yyleng = 0,
61504 recovering = 0,
61505 TERROR = 2,
61506 EOF = 1;
61507 var args = lstack.slice.call(arguments, 1);
61508 var lexer = Object.create(this.lexer);
61509 var sharedState = {
61510 yy: {}
61511 };
61512
61513 for (var k in this.yy) {
61514 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
61515 sharedState.yy[k] = this.yy[k];
61516 }
61517 }
61518
61519 lexer.setInput(input, sharedState.yy);
61520 sharedState.yy.lexer = lexer;
61521 sharedState.yy.parser = this;
61522
61523 if (typeof lexer.yylloc == 'undefined') {
61524 lexer.yylloc = {};
61525 }
61526
61527 var yyloc = lexer.yylloc;
61528 lstack.push(yyloc);
61529 var ranges = lexer.options && lexer.options.ranges;
61530
61531 if (typeof sharedState.yy.parseError === 'function') {
61532 this.parseError = sharedState.yy.parseError;
61533 } else {
61534 this.parseError = Object.getPrototypeOf(this).parseError;
61535 }
61536
61537 function popStack(n) {
61538 stack.length = stack.length - 2 * n;
61539 vstack.length = vstack.length - n;
61540 lstack.length = lstack.length - n;
61541 }
61542
61543 _token_stack: var lex = function () {
61544 var token;
61545 token = lexer.lex() || EOF;
61546
61547 if (typeof token !== 'number') {
61548 token = self.symbols_[token] || token;
61549 }
61550
61551 return token;
61552 };
61553
61554 var symbol,
61555 preErrorSymbol,
61556 state,
61557 action,
61558 a,
61559 r,
61560 yyval = {},
61561 p,
61562 len,
61563 newState,
61564 expected;
61565
61566 while (true) {
61567 state = stack[stack.length - 1];
61568
61569 if (this.defaultActions[state]) {
61570 action = this.defaultActions[state];
61571 } else {
61572 if (symbol === null || typeof symbol == 'undefined') {
61573 symbol = lex();
61574 }
61575
61576 action = table[state] && table[state][symbol];
61577 }
61578
61579 if (typeof action === 'undefined' || !action.length || !action[0]) {
61580 var errStr = '';
61581 expected = [];
61582
61583 for (p in table[state]) {
61584 if (this.terminals_[p] && p > TERROR) {
61585 expected.push('\'' + this.terminals_[p] + '\'');
61586 }
61587 }
61588
61589 if (lexer.showPosition) {
61590 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
61591 } else {
61592 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
61593 }
61594
61595 this.parseError(errStr, {
61596 text: lexer.match,
61597 token: this.terminals_[symbol] || symbol,
61598 line: lexer.yylineno,
61599 loc: yyloc,
61600 expected: expected
61601 });
61602 }
61603
61604 if (action[0] instanceof Array && action.length > 1) {
61605 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
61606 }
61607
61608 switch (action[0]) {
61609 case 1:
61610 stack.push(symbol);
61611 vstack.push(lexer.yytext);
61612 lstack.push(lexer.yylloc);
61613 stack.push(action[1]);
61614 symbol = null;
61615
61616 if (!preErrorSymbol) {
61617 yyleng = lexer.yyleng;
61618 yytext = lexer.yytext;
61619 yylineno = lexer.yylineno;
61620 yyloc = lexer.yylloc;
61621
61622 if (recovering > 0) {
61623 recovering--;
61624 }
61625 } else {
61626 symbol = preErrorSymbol;
61627 preErrorSymbol = null;
61628 }
61629
61630 break;
61631
61632 case 2:
61633 len = this.productions_[action[1]][1];
61634 yyval.$ = vstack[vstack.length - len];
61635 yyval._$ = {
61636 first_line: lstack[lstack.length - (len || 1)].first_line,
61637 last_line: lstack[lstack.length - 1].last_line,
61638 first_column: lstack[lstack.length - (len || 1)].first_column,
61639 last_column: lstack[lstack.length - 1].last_column
61640 };
61641
61642 if (ranges) {
61643 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
61644 }
61645
61646 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
61647
61648 if (typeof r !== 'undefined') {
61649 return r;
61650 }
61651
61652 if (len) {
61653 stack = stack.slice(0, -1 * len * 2);
61654 vstack = vstack.slice(0, -1 * len);
61655 lstack = lstack.slice(0, -1 * len);
61656 }
61657
61658 stack.push(this.productions_[action[1]][0]);
61659 vstack.push(yyval.$);
61660 lstack.push(yyval._$);
61661 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
61662 stack.push(newState);
61663 break;
61664
61665 case 3:
61666 return true;
61667 }
61668 }
61669
61670 return true;
61671 }
61672 };
61673 /* generated by jison-lex 0.3.4 */
61674
61675 var lexer = function () {
61676 var lexer = {
61677 EOF: 1,
61678 parseError: function parseError(str, hash) {
61679 if (this.yy.parser) {
61680 this.yy.parser.parseError(str, hash);
61681 } else {
61682 throw new Error(str);
61683 }
61684 },
61685 // resets the lexer, sets new input
61686 setInput: function (input, yy) {
61687 this.yy = yy || this.yy || {};
61688 this._input = input;
61689 this._more = this._backtrack = this.done = false;
61690 this.yylineno = this.yyleng = 0;
61691 this.yytext = this.matched = this.match = '';
61692 this.conditionStack = ['INITIAL'];
61693 this.yylloc = {
61694 first_line: 1,
61695 first_column: 0,
61696 last_line: 1,
61697 last_column: 0
61698 };
61699
61700 if (this.options.ranges) {
61701 this.yylloc.range = [0, 0];
61702 }
61703
61704 this.offset = 0;
61705 return this;
61706 },
61707 // consumes and returns one char from the input
61708 input: function () {
61709 var ch = this._input[0];
61710 this.yytext += ch;
61711 this.yyleng++;
61712 this.offset++;
61713 this.match += ch;
61714 this.matched += ch;
61715 var lines = ch.match(/(?:\r\n?|\n).*/g);
61716
61717 if (lines) {
61718 this.yylineno++;
61719 this.yylloc.last_line++;
61720 } else {
61721 this.yylloc.last_column++;
61722 }
61723
61724 if (this.options.ranges) {
61725 this.yylloc.range[1]++;
61726 }
61727
61728 this._input = this._input.slice(1);
61729 return ch;
61730 },
61731 // unshifts one char (or a string) into the input
61732 unput: function (ch) {
61733 var len = ch.length;
61734 var lines = ch.split(/(?:\r\n?|\n)/g);
61735 this._input = ch + this._input;
61736 this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len;
61737
61738 this.offset -= len;
61739 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
61740 this.match = this.match.substr(0, this.match.length - 1);
61741 this.matched = this.matched.substr(0, this.matched.length - 1);
61742
61743 if (lines.length - 1) {
61744 this.yylineno -= lines.length - 1;
61745 }
61746
61747 var r = this.yylloc.range;
61748 this.yylloc = {
61749 first_line: this.yylloc.first_line,
61750 last_line: this.yylineno + 1,
61751 first_column: this.yylloc.first_column,
61752 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
61753 };
61754
61755 if (this.options.ranges) {
61756 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
61757 }
61758
61759 this.yyleng = this.yytext.length;
61760 return this;
61761 },
61762 // When called from action, caches matched text and appends it on next action
61763 more: function () {
61764 this._more = true;
61765 return this;
61766 },
61767 // 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.
61768 reject: function () {
61769 if (this.options.backtrack_lexer) {
61770 this._backtrack = true;
61771 } else {
61772 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(), {
61773 text: "",
61774 token: null,
61775 line: this.yylineno
61776 });
61777 }
61778
61779 return this;
61780 },
61781 // retain first n characters of the match
61782 less: function (n) {
61783 this.unput(this.match.slice(n));
61784 },
61785 // displays already matched input, i.e. for error messages
61786 pastInput: function () {
61787 var past = this.matched.substr(0, this.matched.length - this.match.length);
61788 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
61789 },
61790 // displays upcoming input, i.e. for error messages
61791 upcomingInput: function () {
61792 var next = this.match;
61793
61794 if (next.length < 20) {
61795 next += this._input.substr(0, 20 - next.length);
61796 }
61797
61798 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
61799 },
61800 // displays the character position where the lexing error occurred, i.e. for error messages
61801 showPosition: function () {
61802 var pre = this.pastInput();
61803 var c = new Array(pre.length + 1).join("-");
61804 return pre + this.upcomingInput() + "\n" + c + "^";
61805 },
61806 // test the lexed token: return FALSE when not a match, otherwise return token
61807 test_match: function (match, indexed_rule) {
61808 var token, lines, backup;
61809
61810 if (this.options.backtrack_lexer) {
61811 // save context
61812 backup = {
61813 yylineno: this.yylineno,
61814 yylloc: {
61815 first_line: this.yylloc.first_line,
61816 last_line: this.last_line,
61817 first_column: this.yylloc.first_column,
61818 last_column: this.yylloc.last_column
61819 },
61820 yytext: this.yytext,
61821 match: this.match,
61822 matches: this.matches,
61823 matched: this.matched,
61824 yyleng: this.yyleng,
61825 offset: this.offset,
61826 _more: this._more,
61827 _input: this._input,
61828 yy: this.yy,
61829 conditionStack: this.conditionStack.slice(0),
61830 done: this.done
61831 };
61832
61833 if (this.options.ranges) {
61834 backup.yylloc.range = this.yylloc.range.slice(0);
61835 }
61836 }
61837
61838 lines = match[0].match(/(?:\r\n?|\n).*/g);
61839
61840 if (lines) {
61841 this.yylineno += lines.length;
61842 }
61843
61844 this.yylloc = {
61845 first_line: this.yylloc.last_line,
61846 last_line: this.yylineno + 1,
61847 first_column: this.yylloc.last_column,
61848 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
61849 };
61850 this.yytext += match[0];
61851 this.match += match[0];
61852 this.matches = match;
61853 this.yyleng = this.yytext.length;
61854
61855 if (this.options.ranges) {
61856 this.yylloc.range = [this.offset, this.offset += this.yyleng];
61857 }
61858
61859 this._more = false;
61860 this._backtrack = false;
61861 this._input = this._input.slice(match[0].length);
61862 this.matched += match[0];
61863 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
61864
61865 if (this.done && this._input) {
61866 this.done = false;
61867 }
61868
61869 if (token) {
61870 return token;
61871 } else if (this._backtrack) {
61872 // recover context
61873 for (var k in backup) {
61874 this[k] = backup[k];
61875 }
61876
61877 return false; // rule action called reject() implying the next rule should be tested instead.
61878 }
61879
61880 return false;
61881 },
61882 // return next match in input
61883 next: function () {
61884 if (this.done) {
61885 return this.EOF;
61886 }
61887
61888 if (!this._input) {
61889 this.done = true;
61890 }
61891
61892 var token, match, tempMatch, index;
61893
61894 if (!this._more) {
61895 this.yytext = '';
61896 this.match = '';
61897 }
61898
61899 var rules = this._currentRules();
61900
61901 for (var i = 0; i < rules.length; i++) {
61902 tempMatch = this._input.match(this.rules[rules[i]]);
61903
61904 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
61905 match = tempMatch;
61906 index = i;
61907
61908 if (this.options.backtrack_lexer) {
61909 token = this.test_match(tempMatch, rules[i]);
61910
61911 if (token !== false) {
61912 return token;
61913 } else if (this._backtrack) {
61914 match = false;
61915 continue; // rule action called reject() implying a rule MISmatch.
61916 } else {
61917 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
61918 return false;
61919 }
61920 } else if (!this.options.flex) {
61921 break;
61922 }
61923 }
61924 }
61925
61926 if (match) {
61927 token = this.test_match(match, rules[index]);
61928
61929 if (token !== false) {
61930 return token;
61931 } // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
61932
61933
61934 return false;
61935 }
61936
61937 if (this._input === "") {
61938 return this.EOF;
61939 } else {
61940 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
61941 text: "",
61942 token: null,
61943 line: this.yylineno
61944 });
61945 }
61946 },
61947 // return next match that has a token
61948 lex: function lex() {
61949 var r = this.next();
61950
61951 if (r) {
61952 return r;
61953 } else {
61954 return this.lex();
61955 }
61956 },
61957 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
61958 begin: function begin(condition) {
61959 this.conditionStack.push(condition);
61960 },
61961 // pop the previously active lexer condition state off the condition stack
61962 popState: function popState() {
61963 var n = this.conditionStack.length - 1;
61964
61965 if (n > 0) {
61966 return this.conditionStack.pop();
61967 } else {
61968 return this.conditionStack[0];
61969 }
61970 },
61971 // produce the lexer rule set which is active for the currently active lexer condition state
61972 _currentRules: function _currentRules() {
61973 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
61974 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
61975 } else {
61976 return this.conditions["INITIAL"].rules;
61977 }
61978 },
61979 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
61980 topState: function topState(n) {
61981 n = this.conditionStack.length - 1 - Math.abs(n || 0);
61982
61983 if (n >= 0) {
61984 return this.conditionStack[n];
61985 } else {
61986 return "INITIAL";
61987 }
61988 },
61989 // alias for begin(condition)
61990 pushState: function pushState(condition) {
61991 this.begin(condition);
61992 },
61993 // return the number of states currently on the stack
61994 stateStackSize: function stateStackSize() {
61995 return this.conditionStack.length;
61996 },
61997 options: {
61998 "case-insensitive": true
61999 },
62000 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
62001 var YYSTATE = YY_START;
62002
62003 switch ($avoiding_name_collisions) {
62004 case 0:
62005 return 5;
62006 break;
62007
62008 case 1:
62009 /* skip all whitespace */
62010 break;
62011
62012 case 2:
62013 /* skip same-line whitespace */
62014 break;
62015
62016 case 3:
62017 /* skip comments */
62018 break;
62019
62020 case 4:
62021 /* skip comments */
62022 break;
62023
62024 case 5:
62025 this.begin('ID');
62026 return 10;
62027 break;
62028
62029 case 6:
62030 yy_.yytext = yy_.yytext.trim();
62031 this.begin('ALIAS');
62032 return 40;
62033 break;
62034
62035 case 7:
62036 this.popState();
62037 this.popState();
62038 this.begin('LINE');
62039 return 12;
62040 break;
62041
62042 case 8:
62043 this.popState();
62044 this.popState();
62045 return 5;
62046 break;
62047
62048 case 9:
62049 this.begin('LINE');
62050 return 20;
62051 break;
62052
62053 case 10:
62054 this.begin('LINE');
62055 return 22;
62056 break;
62057
62058 case 11:
62059 this.begin('LINE');
62060 return 23;
62061 break;
62062
62063 case 12:
62064 this.begin('LINE');
62065 return 28;
62066 break;
62067
62068 case 13:
62069 this.begin('LINE');
62070 return 25;
62071 break;
62072
62073 case 14:
62074 this.begin('LINE');
62075 return 27;
62076 break;
62077
62078 case 15:
62079 this.popState();
62080 return 13;
62081 break;
62082
62083 case 16:
62084 return 21;
62085 break;
62086
62087 case 17:
62088 return 35;
62089 break;
62090
62091 case 18:
62092 return 36;
62093 break;
62094
62095 case 19:
62096 return 31;
62097 break;
62098
62099 case 20:
62100 return 29;
62101 break;
62102
62103 case 21:
62104 this.begin('ID');
62105 return 15;
62106 break;
62107
62108 case 22:
62109 this.begin('ID');
62110 return 16;
62111 break;
62112
62113 case 23:
62114 return 18;
62115 break;
62116
62117 case 24:
62118 return 6;
62119 break;
62120
62121 case 25:
62122 return 34;
62123 break;
62124
62125 case 26:
62126 return 5;
62127 break;
62128
62129 case 27:
62130 yy_.yytext = yy_.yytext.trim();
62131 return 40;
62132 break;
62133
62134 case 28:
62135 return 43;
62136 break;
62137
62138 case 29:
62139 return 44;
62140 break;
62141
62142 case 30:
62143 return 41;
62144 break;
62145
62146 case 31:
62147 return 42;
62148 break;
62149
62150 case 32:
62151 return 45;
62152 break;
62153
62154 case 33:
62155 return 46;
62156 break;
62157
62158 case 34:
62159 return 47;
62160 break;
62161
62162 case 35:
62163 return 38;
62164 break;
62165
62166 case 36:
62167 return 39;
62168 break;
62169
62170 case 37:
62171 return 5;
62172 break;
62173
62174 case 38:
62175 return 'INVALID';
62176 break;
62177 }
62178 },
62179 rules: [/^(?:[\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, /^(?: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],
62180 conditions: {
62181 "LINE": {
62182 "rules": [2, 3, 15],
62183 "inclusive": false
62184 },
62185 "ALIAS": {
62186 "rules": [2, 3, 7, 8],
62187 "inclusive": false
62188 },
62189 "ID": {
62190 "rules": [2, 3, 6],
62191 "inclusive": false
62192 },
62193 "INITIAL": {
62194 "rules": [0, 1, 3, 4, 5, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
62195 "inclusive": true
62196 }
62197 }
62198 };
62199 return lexer;
62200 }();
62201
62202 parser.lexer = lexer;
62203
62204 function Parser() {
62205 this.yy = {};
62206 }
62207
62208 Parser.prototype = parser;
62209 parser.Parser = Parser;
62210 return new Parser();
62211}();
62212
62213if (true) {
62214 exports.parser = sequenceDiagram;
62215 exports.Parser = sequenceDiagram.Parser;
62216
62217 exports.parse = function () {
62218 return sequenceDiagram.parse.apply(sequenceDiagram, arguments);
62219 };
62220
62221 exports.main = function commonjsMain(args) {
62222 if (!args[1]) {
62223 console.log('Usage: ' + args[0] + ' FILE');
62224 process.exit(1);
62225 }
62226
62227 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");
62228
62229 return exports.parser.parse(source);
62230 };
62231
62232 if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
62233 exports.main(process.argv.slice(1));
62234 }
62235}
62236/* 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)))
62237
62238/***/ }),
62239
62240/***/ "./src/diagrams/sequence/sequenceDb.js":
62241/*!*********************************************!*\
62242 !*** ./src/diagrams/sequence/sequenceDb.js ***!
62243 \*********************************************/
62244/*! exports provided: addActor, addMessage, addSignal, getMessages, getActors, getActor, getActorKeys, getTitle, clear, LINETYPE, ARROWTYPE, PLACEMENT, addNote, setTitle, apply, default */
62245/***/ (function(module, __webpack_exports__, __webpack_require__) {
62246
62247"use strict";
62248__webpack_require__.r(__webpack_exports__);
62249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addActor", function() { return addActor; });
62250/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMessage", function() { return addMessage; });
62251/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSignal", function() { return addSignal; });
62252/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMessages", function() { return getMessages; });
62253/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActors", function() { return getActors; });
62254/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActor", function() { return getActor; });
62255/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActorKeys", function() { return getActorKeys; });
62256/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
62257/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
62258/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LINETYPE", function() { return LINETYPE; });
62259/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ARROWTYPE", function() { return ARROWTYPE; });
62260/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PLACEMENT", function() { return PLACEMENT; });
62261/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addNote", function() { return addNote; });
62262/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
62263/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "apply", function() { return apply; });
62264/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
62265
62266let actors = {};
62267let messages = [];
62268const notes = [];
62269let title = '';
62270const addActor = function (id, name, description) {
62271 // Don't allow description nulling
62272 const old = actors[id];
62273 if (old && name === old.name && description == null) return; // Don't allow null descriptions, either
62274
62275 if (description == null) description = name;
62276 actors[id] = {
62277 name: name,
62278 description: description
62279 };
62280};
62281const addMessage = function (idFrom, idTo, message, answer) {
62282 messages.push({
62283 from: idFrom,
62284 to: idTo,
62285 message: message,
62286 answer: answer
62287 });
62288};
62289const addSignal = function (idFrom, idTo, message, messageType) {
62290 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Adding message from=' + idFrom + ' to=' + idTo + ' message=' + message + ' type=' + messageType);
62291 messages.push({
62292 from: idFrom,
62293 to: idTo,
62294 message: message,
62295 type: messageType
62296 });
62297};
62298const getMessages = function () {
62299 return messages;
62300};
62301const getActors = function () {
62302 return actors;
62303};
62304const getActor = function (id) {
62305 return actors[id];
62306};
62307const getActorKeys = function () {
62308 return Object.keys(actors);
62309};
62310const getTitle = function () {
62311 return title;
62312};
62313const clear = function () {
62314 actors = {};
62315 messages = [];
62316};
62317const LINETYPE = {
62318 SOLID: 0,
62319 DOTTED: 1,
62320 NOTE: 2,
62321 SOLID_CROSS: 3,
62322 DOTTED_CROSS: 4,
62323 SOLID_OPEN: 5,
62324 DOTTED_OPEN: 6,
62325 LOOP_START: 10,
62326 LOOP_END: 11,
62327 ALT_START: 12,
62328 ALT_ELSE: 13,
62329 ALT_END: 14,
62330 OPT_START: 15,
62331 OPT_END: 16,
62332 ACTIVE_START: 17,
62333 ACTIVE_END: 18,
62334 PAR_START: 19,
62335 PAR_AND: 20,
62336 PAR_END: 21
62337};
62338const ARROWTYPE = {
62339 FILLED: 0,
62340 OPEN: 1
62341};
62342const PLACEMENT = {
62343 LEFTOF: 0,
62344 RIGHTOF: 1,
62345 OVER: 2
62346};
62347const addNote = function (actor, placement, message) {
62348 const note = {
62349 actor: actor,
62350 placement: placement,
62351 message: message // Coerce actor into a [to, from, ...] array
62352
62353 };
62354 const actors = [].concat(actor, actor);
62355 notes.push(note);
62356 messages.push({
62357 from: actors[0],
62358 to: actors[1],
62359 message: message,
62360 type: LINETYPE.NOTE,
62361 placement: placement
62362 });
62363};
62364const setTitle = function (titleText) {
62365 title = titleText;
62366};
62367const apply = function (param) {
62368 if (param instanceof Array) {
62369 param.forEach(function (item) {
62370 apply(item);
62371 });
62372 } else {
62373 switch (param.type) {
62374 case 'addActor':
62375 addActor(param.actor, param.actor, param.description);
62376 break;
62377
62378 case 'activeStart':
62379 addSignal(param.actor, undefined, undefined, param.signalType);
62380 break;
62381
62382 case 'activeEnd':
62383 addSignal(param.actor, undefined, undefined, param.signalType);
62384 break;
62385
62386 case 'addNote':
62387 addNote(param.actor, param.placement, param.text);
62388 break;
62389
62390 case 'addMessage':
62391 addSignal(param.from, param.to, param.msg, param.signalType);
62392 break;
62393
62394 case 'loopStart':
62395 addSignal(undefined, undefined, param.loopText, param.signalType);
62396 break;
62397
62398 case 'loopEnd':
62399 addSignal(undefined, undefined, undefined, param.signalType);
62400 break;
62401
62402 case 'optStart':
62403 addSignal(undefined, undefined, param.optText, param.signalType);
62404 break;
62405
62406 case 'optEnd':
62407 addSignal(undefined, undefined, undefined, param.signalType);
62408 break;
62409
62410 case 'altStart':
62411 addSignal(undefined, undefined, param.altText, param.signalType);
62412 break;
62413
62414 case 'else':
62415 addSignal(undefined, undefined, param.altText, param.signalType);
62416 break;
62417
62418 case 'altEnd':
62419 addSignal(undefined, undefined, undefined, param.signalType);
62420 break;
62421
62422 case 'setTitle':
62423 setTitle(param.text);
62424 break;
62425
62426 case 'parStart':
62427 addSignal(undefined, undefined, param.parText, param.signalType);
62428 break;
62429
62430 case 'and':
62431 addSignal(undefined, undefined, param.parText, param.signalType);
62432 break;
62433
62434 case 'parEnd':
62435 addSignal(undefined, undefined, undefined, param.signalType);
62436 break;
62437 }
62438 }
62439};
62440/* harmony default export */ __webpack_exports__["default"] = ({
62441 addActor,
62442 addMessage,
62443 addSignal,
62444 getMessages,
62445 getActors,
62446 getActor,
62447 getActorKeys,
62448 getTitle,
62449 clear,
62450 LINETYPE,
62451 ARROWTYPE,
62452 PLACEMENT,
62453 addNote,
62454 setTitle,
62455 apply
62456});
62457
62458/***/ }),
62459
62460/***/ "./src/diagrams/sequence/sequenceRenderer.js":
62461/*!***************************************************!*\
62462 !*** ./src/diagrams/sequence/sequenceRenderer.js ***!
62463 \***************************************************/
62464/*! exports provided: bounds, drawActors, setConf, draw, default */
62465/***/ (function(module, __webpack_exports__, __webpack_require__) {
62466
62467"use strict";
62468__webpack_require__.r(__webpack_exports__);
62469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounds", function() { return bounds; });
62470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActors", function() { return drawActors; });
62471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
62472/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
62473/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
62474/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/sequence/svgDraw.js");
62475/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
62476/* harmony import */ var _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.js");
62477/* harmony import */ var _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__);
62478/* harmony import */ var _sequenceDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
62479
62480
62481
62482
62483
62484_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy = _sequenceDb__WEBPACK_IMPORTED_MODULE_4__["default"];
62485const conf = {
62486 diagramMarginX: 50,
62487 diagramMarginY: 30,
62488 // Margin between actors
62489 actorMargin: 50,
62490 // Width of actor boxes
62491 width: 150,
62492 // Height of actor boxes
62493 height: 65,
62494 actorFontSize: 14,
62495 actorFontFamily: '"Open-Sans", "sans-serif"',
62496 // Margin around loop boxes
62497 boxMargin: 10,
62498 boxTextMargin: 5,
62499 noteMargin: 10,
62500 // Space between messages
62501 messageMargin: 35,
62502 // mirror actors under diagram
62503 mirrorActors: false,
62504 // Depending on css styling this might need adjustment
62505 // Prolongs the edge of the diagram downwards
62506 bottomMarginAdj: 1,
62507 // width of activation box
62508 activationWidth: 10,
62509 // text placement as: tspan | fo | old only text as before
62510 textPlacement: 'tspan',
62511 showSequenceNumbers: false
62512};
62513const bounds = {
62514 data: {
62515 startx: undefined,
62516 stopx: undefined,
62517 starty: undefined,
62518 stopy: undefined
62519 },
62520 verticalPos: 0,
62521 sequenceItems: [],
62522 activations: [],
62523 init: function () {
62524 this.sequenceItems = [];
62525 this.activations = [];
62526 this.data = {
62527 startx: undefined,
62528 stopx: undefined,
62529 starty: undefined,
62530 stopy: undefined
62531 };
62532 this.verticalPos = 0;
62533 },
62534 updateVal: function (obj, key, val, fun) {
62535 if (typeof obj[key] === 'undefined') {
62536 obj[key] = val;
62537 } else {
62538 obj[key] = fun(val, obj[key]);
62539 }
62540 },
62541 updateBounds: function (startx, starty, stopx, stopy) {
62542 const _self = this;
62543
62544 let cnt = 0;
62545
62546 function updateFn(type) {
62547 return function updateItemBounds(item) {
62548 cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
62549
62550 const n = _self.sequenceItems.length - cnt + 1;
62551
62552 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
62553
62554 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
62555
62556 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
62557
62558 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
62559
62560 if (!(type === 'activation')) {
62561 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
62562
62563 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
62564
62565 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
62566
62567 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
62568 }
62569 };
62570 }
62571
62572 this.sequenceItems.forEach(updateFn());
62573 this.activations.forEach(updateFn('activation'));
62574 },
62575 insert: function (startx, starty, stopx, stopy) {
62576 const _startx = Math.min(startx, stopx);
62577
62578 const _stopx = Math.max(startx, stopx);
62579
62580 const _starty = Math.min(starty, stopy);
62581
62582 const _stopy = Math.max(starty, stopy);
62583
62584 this.updateVal(bounds.data, 'startx', _startx, Math.min);
62585 this.updateVal(bounds.data, 'starty', _starty, Math.min);
62586 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
62587 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
62588 this.updateBounds(_startx, _starty, _stopx, _stopy);
62589 },
62590 newActivation: function (message, diagram) {
62591 const actorRect = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActors()[message.from.actor];
62592 const stackedSize = actorActivations(message.from.actor).length;
62593 const x = actorRect.x + conf.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
62594 this.activations.push({
62595 startx: x,
62596 starty: this.verticalPos + 2,
62597 stopx: x + conf.activationWidth,
62598 stopy: undefined,
62599 actor: message.from.actor,
62600 anchored: _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].anchorElement(diagram)
62601 });
62602 },
62603 endActivation: function (message) {
62604 // find most recent activation for given actor
62605 const lastActorActivationIdx = this.activations.map(function (activation) {
62606 return activation.actor;
62607 }).lastIndexOf(message.from.actor);
62608 const activation = this.activations.splice(lastActorActivationIdx, 1)[0];
62609 return activation;
62610 },
62611 newLoop: function (title) {
62612 this.sequenceItems.push({
62613 startx: undefined,
62614 starty: this.verticalPos,
62615 stopx: undefined,
62616 stopy: undefined,
62617 title: title
62618 });
62619 },
62620 endLoop: function () {
62621 const loop = this.sequenceItems.pop();
62622 return loop;
62623 },
62624 addSectionToLoop: function (message) {
62625 const loop = this.sequenceItems.pop();
62626 loop.sections = loop.sections || [];
62627 loop.sectionTitles = loop.sectionTitles || [];
62628 loop.sections.push(bounds.getVerticalPos());
62629 loop.sectionTitles.push(message);
62630 this.sequenceItems.push(loop);
62631 },
62632 bumpVerticalPos: function (bump) {
62633 this.verticalPos = this.verticalPos + bump;
62634 this.data.stopy = this.verticalPos;
62635 },
62636 getVerticalPos: function () {
62637 return this.verticalPos;
62638 },
62639 getBounds: function () {
62640 return this.data;
62641 }
62642};
62643
62644const _drawLongText = (text, x, y, g, width) => {
62645 let textHeight = 0;
62646 const lines = text.split(/<br\/?>/ig);
62647
62648 for (const line of lines) {
62649 const textObj = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getTextObj();
62650 textObj.x = x;
62651 textObj.y = y + textHeight;
62652 textObj.textMargin = conf.noteMargin;
62653 textObj.dy = '1em';
62654 textObj.text = line;
62655 textObj.class = 'noteText';
62656 const textElem = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawText(g, textObj, width);
62657 textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
62658 }
62659
62660 return textHeight;
62661};
62662/**
62663 * Draws an actor in the diagram with the attaced line
62664 * @param center - The center of the the actor
62665 * @param pos The position if the actor in the liost of actors
62666 * @param description The text in the box
62667 */
62668
62669
62670const drawNote = function (elem, startx, verticalPos, msg, forceWidth) {
62671 const rect = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getNoteRect();
62672 rect.x = startx;
62673 rect.y = verticalPos;
62674 rect.width = forceWidth || conf.width;
62675 rect.class = 'note';
62676 let g = elem.append('g');
62677 const rectElem = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawRect(g, rect);
62678
62679 const textHeight = _drawLongText(msg.message, startx - 4, verticalPos + 24, g, rect.width - conf.noteMargin);
62680
62681 bounds.insert(startx, verticalPos, startx + rect.width, verticalPos + 2 * conf.noteMargin + textHeight);
62682 rectElem.attr('height', textHeight + 2 * conf.noteMargin);
62683 bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);
62684};
62685/**
62686 * Draws a message
62687 * @param elem
62688 * @param startx
62689 * @param stopx
62690 * @param verticalPos
62691 * @param txtCenter
62692 * @param msg
62693 */
62694
62695
62696const drawMessage = function (elem, startx, stopx, verticalPos, msg, sequenceIndex) {
62697 const g = elem.append('g');
62698 const txtCenter = startx + (stopx - startx) / 2;
62699 const textElem = g.append('text') // text label for the x axis
62700 .attr('x', txtCenter).attr('y', verticalPos - 7).style('text-anchor', 'middle').attr('class', 'messageText').text(msg.message);
62701 let textWidth = (textElem._groups || textElem)[0][0].getBBox().width;
62702 let line;
62703
62704 if (startx === stopx) {
62705 if (conf.rightAngles) {
62706 line = g.append('path').attr('d', `M ${startx},${verticalPos} H ${startx + conf.width / 2} V ${verticalPos + 25} H ${startx}`);
62707 } else {
62708 line = g.append('path').attr('d', 'M ' + startx + ',' + verticalPos + ' C ' + (startx + 60) + ',' + (verticalPos - 10) + ' ' + (startx + 60) + ',' + (verticalPos + 30) + ' ' + startx + ',' + (verticalPos + 20));
62709 }
62710
62711 bounds.bumpVerticalPos(30);
62712 const dx = Math.max(textWidth / 2, 100);
62713 bounds.insert(startx - dx, bounds.getVerticalPos() - 10, stopx + dx, bounds.getVerticalPos());
62714 } else {
62715 line = g.append('line');
62716 line.attr('x1', startx);
62717 line.attr('y1', verticalPos);
62718 line.attr('x2', stopx);
62719 line.attr('y2', verticalPos);
62720 bounds.insert(startx, bounds.getVerticalPos() - 10, stopx, bounds.getVerticalPos());
62721 } // Make an SVG Container
62722 // Draw the line
62723
62724
62725 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) {
62726 line.style('stroke-dasharray', '3, 3');
62727 line.attr('class', 'messageLine1');
62728 } else {
62729 line.attr('class', 'messageLine0');
62730 }
62731
62732 let url = '';
62733
62734 if (conf.arrowMarkerAbsolute) {
62735 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
62736 url = url.replace(/\(/g, '\\(');
62737 url = url.replace(/\)/g, '\\)');
62738 }
62739
62740 line.attr('stroke-width', 2);
62741 line.attr('stroke', 'black');
62742 line.style('fill', 'none'); // remove any fill colour
62743
62744 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) {
62745 line.attr('marker-end', 'url(' + url + '#arrowhead)');
62746 }
62747
62748 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) {
62749 line.attr('marker-end', 'url(' + url + '#crosshead)');
62750 } // add node number
62751
62752
62753 if (conf.showSequenceNumbers) {
62754 line.attr('marker-start', 'url(' + url + '#sequencenumber)');
62755 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);
62756 }
62757};
62758
62759const drawActors = function (diagram, actors, actorKeys, verticalPos) {
62760 // Draw the actors
62761 for (let i = 0; i < actorKeys.length; i++) {
62762 const key = actorKeys[i]; // Add some rendering data to the object
62763
62764 actors[key].x = i * conf.actorMargin + i * conf.width;
62765 actors[key].y = verticalPos;
62766 actors[key].width = conf.diagramMarginX;
62767 actors[key].height = conf.diagramMarginY; // Draw the box with the attached line
62768
62769 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawActor(diagram, actors[key].x, verticalPos, actors[key].description, conf);
62770 bounds.insert(actors[key].x, verticalPos, actors[key].x + conf.width, conf.height);
62771 } // Add a margin between the actor boxes and the first arrow
62772
62773
62774 bounds.bumpVerticalPos(conf.height);
62775};
62776const setConf = function (cnf) {
62777 const keys = Object.keys(cnf);
62778 keys.forEach(function (key) {
62779 conf[key] = cnf[key];
62780 });
62781};
62782
62783const actorActivations = function (actor) {
62784 return bounds.activations.filter(function (activation) {
62785 return activation.actor === actor;
62786 });
62787};
62788
62789const actorFlowVerticaBounds = function (actor) {
62790 // handle multiple stacked activations for same actor
62791 const actors = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActors();
62792 const activations = actorActivations(actor);
62793 const left = activations.reduce(function (acc, activation) {
62794 return Math.min(acc, activation.startx);
62795 }, actors[actor].x + conf.width / 2);
62796 const right = activations.reduce(function (acc, activation) {
62797 return Math.max(acc, activation.stopx);
62798 }, actors[actor].x + conf.width / 2);
62799 return [left, right];
62800};
62801/**
62802 * Draws a flowchart in the tag with id: id based on the graph definition in text.
62803 * @param text
62804 * @param id
62805 */
62806
62807
62808const draw = function (text, id) {
62809 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.clear();
62810 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].parse(text + '\n');
62811 bounds.init();
62812 const diagram = d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id="${id}"]`);
62813 let startx;
62814 let stopx;
62815 let forceWidth; // Fetch data from the parsing
62816
62817 const actors = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActors();
62818 const actorKeys = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActorKeys();
62819 const messages = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getMessages();
62820 const title = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getTitle();
62821 drawActors(diagram, actors, actorKeys, 0); // The arrow head definition is attached to the svg once
62822
62823 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertArrowHead(diagram);
62824 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertArrowCrossHead(diagram);
62825 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertSequenceNumber(diagram);
62826
62827 function activeEnd(msg, verticalPos) {
62828 const activationData = bounds.endActivation(msg);
62829
62830 if (activationData.starty + 18 > verticalPos) {
62831 activationData.starty = verticalPos - 6;
62832 verticalPos += 12;
62833 }
62834
62835 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawActivation(diagram, activationData, verticalPos, conf, actorActivations(msg.from.actor).length);
62836 bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
62837 } // const lastMsg
62838 // Draw the messages/signals
62839
62840
62841 let sequenceIndex = 1;
62842 messages.forEach(function (msg) {
62843 let loopData;
62844
62845 switch (msg.type) {
62846 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.NOTE:
62847 bounds.bumpVerticalPos(conf.boxMargin);
62848 startx = actors[msg.from].x;
62849 stopx = actors[msg.to].x;
62850
62851 if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.RIGHTOF) {
62852 drawNote(diagram, startx + (conf.width + conf.actorMargin) / 2, bounds.getVerticalPos(), msg);
62853 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.LEFTOF) {
62854 drawNote(diagram, startx - (conf.width + conf.actorMargin) / 2, bounds.getVerticalPos(), msg);
62855 } else if (msg.to === msg.from) {
62856 // Single-actor over
62857 drawNote(diagram, startx, bounds.getVerticalPos(), msg);
62858 } else {
62859 // Multi-actor over
62860 forceWidth = Math.abs(startx - stopx) + conf.actorMargin;
62861 drawNote(diagram, (startx + stopx + conf.width - forceWidth) / 2, bounds.getVerticalPos(), msg, forceWidth);
62862 }
62863
62864 break;
62865
62866 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_START:
62867 bounds.newActivation(msg, diagram);
62868 break;
62869
62870 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_END:
62871 activeEnd(msg, bounds.getVerticalPos());
62872 break;
62873
62874 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_START:
62875 bounds.bumpVerticalPos(conf.boxMargin);
62876 bounds.newLoop(msg.message);
62877 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
62878 break;
62879
62880 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_END:
62881 loopData = bounds.endLoop();
62882 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopData, 'loop', conf);
62883 bounds.bumpVerticalPos(conf.boxMargin);
62884 break;
62885
62886 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_START:
62887 bounds.bumpVerticalPos(conf.boxMargin);
62888 bounds.newLoop(msg.message);
62889 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
62890 break;
62891
62892 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_END:
62893 loopData = bounds.endLoop();
62894 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopData, 'opt', conf);
62895 bounds.bumpVerticalPos(conf.boxMargin);
62896 break;
62897
62898 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_START:
62899 bounds.bumpVerticalPos(conf.boxMargin);
62900 bounds.newLoop(msg.message);
62901 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
62902 break;
62903
62904 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_ELSE:
62905 bounds.bumpVerticalPos(conf.boxMargin);
62906 loopData = bounds.addSectionToLoop(msg.message);
62907 bounds.bumpVerticalPos(conf.boxMargin);
62908 break;
62909
62910 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_END:
62911 loopData = bounds.endLoop();
62912 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopData, 'alt', conf);
62913 bounds.bumpVerticalPos(conf.boxMargin);
62914 break;
62915
62916 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_START:
62917 bounds.bumpVerticalPos(conf.boxMargin);
62918 bounds.newLoop(msg.message);
62919 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
62920 break;
62921
62922 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_AND:
62923 bounds.bumpVerticalPos(conf.boxMargin);
62924 loopData = bounds.addSectionToLoop(msg.message);
62925 bounds.bumpVerticalPos(conf.boxMargin);
62926 break;
62927
62928 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_END:
62929 loopData = bounds.endLoop();
62930 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopData, 'par', conf);
62931 bounds.bumpVerticalPos(conf.boxMargin);
62932 break;
62933
62934 default:
62935 try {
62936 // lastMsg = msg
62937 bounds.bumpVerticalPos(conf.messageMargin);
62938 const fromBounds = actorFlowVerticaBounds(msg.from);
62939 const toBounds = actorFlowVerticaBounds(msg.to);
62940 const fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
62941 const toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
62942 startx = fromBounds[fromIdx];
62943 stopx = toBounds[toIdx];
62944 const verticalPos = bounds.getVerticalPos();
62945 drawMessage(diagram, startx, stopx, verticalPos, msg, sequenceIndex);
62946 const allBounds = fromBounds.concat(toBounds);
62947 bounds.insert(Math.min.apply(null, allBounds), verticalPos, Math.max.apply(null, allBounds), verticalPos);
62948 } catch (e) {
62949 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].error('error while drawing message', e);
62950 }
62951
62952 } // Increment sequence counter if msg.type is a line (and not another event like activation or note, etc)
62953
62954
62955 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)) {
62956 sequenceIndex++;
62957 }
62958 });
62959
62960 if (conf.mirrorActors) {
62961 // Draw actors below diagram
62962 bounds.bumpVerticalPos(conf.boxMargin * 2);
62963 drawActors(diagram, actors, actorKeys, bounds.getVerticalPos());
62964 }
62965
62966 const box = bounds.getBounds(); // Adjust line height of actor lines now that the height of the diagram is known
62967
62968 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('For line height fix Querying: #' + id + ' .actor-line');
62969 const actorLines = d3__WEBPACK_IMPORTED_MODULE_0__["selectAll"]('#' + id + ' .actor-line');
62970 actorLines.attr('y2', box.stopy);
62971 let height = box.stopy - box.starty + 2 * conf.diagramMarginY;
62972
62973 if (conf.mirrorActors) {
62974 height = height - conf.boxMargin + conf.bottomMarginAdj;
62975 }
62976
62977 const width = box.stopx - box.startx + 2 * conf.diagramMarginX;
62978
62979 if (title) {
62980 diagram.append('text').text(title).attr('x', (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr('y', -25);
62981 }
62982
62983 if (conf.useMaxWidth) {
62984 diagram.attr('height', '100%');
62985 diagram.attr('width', '100%');
62986 diagram.attr('style', 'max-width:' + width + 'px;');
62987 } else {
62988 diagram.attr('height', height);
62989 diagram.attr('width', width);
62990 }
62991
62992 const extraVertForTitle = title ? 40 : 0;
62993 diagram.attr('viewBox', box.startx - conf.diagramMarginX + ' -' + (conf.diagramMarginY + extraVertForTitle) + ' ' + width + ' ' + (height + extraVertForTitle));
62994};
62995/* harmony default export */ __webpack_exports__["default"] = ({
62996 bounds,
62997 drawActors,
62998 setConf,
62999 draw
63000});
63001
63002/***/ }),
63003
63004/***/ "./src/diagrams/sequence/svgDraw.js":
63005/*!******************************************!*\
63006 !*** ./src/diagrams/sequence/svgDraw.js ***!
63007 \******************************************/
63008/*! exports provided: drawRect, drawText, drawLabel, drawActor, anchorElement, drawActivation, drawLoop, insertArrowHead, insertSequenceNumber, insertArrowCrossHead, getTextObj, getNoteRect, default */
63009/***/ (function(module, __webpack_exports__, __webpack_require__) {
63010
63011"use strict";
63012__webpack_require__.r(__webpack_exports__);
63013/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawRect", function() { return drawRect; });
63014/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawText", function() { return drawText; });
63015/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLabel", function() { return drawLabel; });
63016/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActor", function() { return drawActor; });
63017/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anchorElement", function() { return anchorElement; });
63018/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActivation", function() { return drawActivation; });
63019/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLoop", function() { return drawLoop; });
63020/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrowHead", function() { return insertArrowHead; });
63021/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertSequenceNumber", function() { return insertSequenceNumber; });
63022/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrowCrossHead", function() { return insertArrowCrossHead; });
63023/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextObj", function() { return getTextObj; });
63024/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNoteRect", function() { return getNoteRect; });
63025const drawRect = function (elem, rectData) {
63026 const rectElem = elem.append('rect');
63027 rectElem.attr('x', rectData.x);
63028 rectElem.attr('y', rectData.y);
63029 rectElem.attr('fill', rectData.fill);
63030 rectElem.attr('stroke', rectData.stroke);
63031 rectElem.attr('width', rectData.width);
63032 rectElem.attr('height', rectData.height);
63033 rectElem.attr('rx', rectData.rx);
63034 rectElem.attr('ry', rectData.ry);
63035
63036 if (typeof rectData.class !== 'undefined') {
63037 rectElem.attr('class', rectData.class);
63038 }
63039
63040 return rectElem;
63041};
63042const drawText = function (elem, textData, width) {
63043 // Remove and ignore br:s
63044 const nText = textData.text.replace(/<br\/?>/ig, ' ');
63045 const textElem = elem.append('text');
63046 textElem.attr('x', textData.x);
63047 textElem.attr('y', textData.y);
63048 textElem.style('text-anchor', textData.anchor);
63049 textElem.attr('fill', textData.fill);
63050
63051 if (typeof textData.class !== 'undefined') {
63052 textElem.attr('class', textData.class);
63053 }
63054
63055 const span = textElem.append('tspan');
63056 span.attr('x', textData.x + textData.textMargin * 2);
63057 span.attr('fill', textData.fill);
63058 span.text(nText);
63059 return textElem;
63060};
63061const drawLabel = function (elem, txtObject) {
63062 function genPoints(x, y, width, height, cut) {
63063 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
63064 }
63065
63066 const polygon = elem.append('polygon');
63067 polygon.attr('points', genPoints(txtObject.x, txtObject.y, 50, 20, 7));
63068 polygon.attr('class', 'labelBox');
63069 txtObject.y = txtObject.y + txtObject.labelMargin;
63070 txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
63071 drawText(elem, txtObject);
63072};
63073let actorCnt = -1;
63074/**
63075 * Draws an actor in the diagram with the attaced line
63076 * @param center - The center of the the actor
63077 * @param pos The position if the actor in the liost of actors
63078 * @param description The text in the box
63079 */
63080
63081const drawActor = function (elem, left, verticalPos, description, conf) {
63082 const center = left + conf.width / 2;
63083 const g = elem.append('g');
63084
63085 if (verticalPos === 0) {
63086 actorCnt++;
63087 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');
63088 }
63089
63090 const rect = getNoteRect();
63091 rect.x = left;
63092 rect.y = verticalPos;
63093 rect.fill = '#eaeaea';
63094 rect.width = conf.width;
63095 rect.height = conf.height;
63096 rect.class = 'actor';
63097 rect.rx = 3;
63098 rect.ry = 3;
63099 drawRect(g, rect);
63100
63101 _drawTextCandidateFunc(conf)(description, g, rect.x, rect.y, rect.width, rect.height, {
63102 'class': 'actor'
63103 }, conf);
63104};
63105const anchorElement = function (elem) {
63106 return elem.append('g');
63107};
63108/**
63109 * Draws an actor in the diagram with the attaced line
63110 * @param elem - element to append activation rect
63111 * @param bounds - activation box bounds
63112 * @param verticalPos - precise y cooridnate of bottom activation box edge
63113 */
63114
63115const drawActivation = function (elem, bounds, verticalPos, conf, actorActivations) {
63116 const rect = getNoteRect();
63117 const g = bounds.anchored;
63118 rect.x = bounds.startx;
63119 rect.y = bounds.starty;
63120 rect.class = 'activation' + actorActivations % 3; // Will evaluate to 0, 1 or 2
63121
63122 rect.width = bounds.stopx - bounds.startx;
63123 rect.height = verticalPos - bounds.starty;
63124 drawRect(g, rect);
63125};
63126/**
63127 * Draws an actor in the diagram with the attaced line
63128 * @param center - The center of the the actor
63129 * @param pos The position if the actor in the list of actors
63130 * @param description The text in the box
63131 */
63132
63133const drawLoop = function (elem, bounds, labelText, conf) {
63134 const g = elem.append('g');
63135
63136 const drawLoopLine = function (startx, starty, stopx, stopy) {
63137 return g.append('line').attr('x1', startx).attr('y1', starty).attr('x2', stopx).attr('y2', stopy).attr('class', 'loopLine');
63138 };
63139
63140 drawLoopLine(bounds.startx, bounds.starty, bounds.stopx, bounds.starty);
63141 drawLoopLine(bounds.stopx, bounds.starty, bounds.stopx, bounds.stopy);
63142 drawLoopLine(bounds.startx, bounds.stopy, bounds.stopx, bounds.stopy);
63143 drawLoopLine(bounds.startx, bounds.starty, bounds.startx, bounds.stopy);
63144
63145 if (typeof bounds.sections !== 'undefined') {
63146 bounds.sections.forEach(function (item) {
63147 drawLoopLine(bounds.startx, item, bounds.stopx, item).style('stroke-dasharray', '3, 3');
63148 });
63149 }
63150
63151 let txt = getTextObj();
63152 txt.text = labelText;
63153 txt.x = bounds.startx;
63154 txt.y = bounds.starty;
63155 txt.labelMargin = 1.5 * 10; // This is the small box that says "loop"
63156
63157 txt.class = 'labelText'; // Its size & position are fixed.
63158
63159 drawLabel(g, txt);
63160 txt = getTextObj();
63161 txt.text = '[ ' + bounds.title + ' ]';
63162 txt.x = bounds.startx + (bounds.stopx - bounds.startx) / 2;
63163 txt.y = bounds.starty + 1.5 * conf.boxMargin;
63164 txt.anchor = 'middle';
63165 txt.class = 'loopText';
63166 drawText(g, txt);
63167
63168 if (typeof bounds.sectionTitles !== 'undefined') {
63169 bounds.sectionTitles.forEach(function (item, idx) {
63170 if (item !== '') {
63171 txt.text = '[ ' + item + ' ]';
63172 txt.y = bounds.sections[idx] + 1.5 * conf.boxMargin;
63173 drawText(g, txt);
63174 }
63175 });
63176 }
63177};
63178/**
63179 * Setup arrow head and define the marker. The result is appended to the svg.
63180 */
63181
63182const insertArrowHead = function (elem) {
63183 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
63184};
63185/**
63186 * Setup node number. The result is appended to the svg.
63187 */
63188
63189const insertSequenceNumber = function (elem) {
63190 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');
63191};
63192/**
63193 * Setup arrow head and define the marker. The result is appended to the svg.
63194 */
63195
63196const insertArrowCrossHead = function (elem) {
63197 const defs = elem.append('defs');
63198 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
63199
63200 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
63201
63202 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
63203};
63204const getTextObj = function () {
63205 const txt = {
63206 x: 0,
63207 y: 0,
63208 'fill': undefined,
63209 'text-anchor': 'start',
63210 style: '#666',
63211 width: 100,
63212 height: 100,
63213 textMargin: 0,
63214 rx: 0,
63215 ry: 0
63216 };
63217 return txt;
63218};
63219const getNoteRect = function () {
63220 const rect = {
63221 x: 0,
63222 y: 0,
63223 fill: '#EDF2AE',
63224 stroke: '#666',
63225 width: 100,
63226 anchor: 'start',
63227 height: 100,
63228 rx: 0,
63229 ry: 0
63230 };
63231 return rect;
63232};
63233
63234const _drawTextCandidateFunc = function () {
63235 function byText(content, g, x, y, width, height, textAttrs) {
63236 const text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('text-anchor', 'middle').text(content);
63237
63238 _setTextAttrs(text, textAttrs);
63239 }
63240
63241 function byTspan(content, g, x, y, width, height, textAttrs, conf) {
63242 const {
63243 actorFontSize,
63244 actorFontFamily
63245 } = conf;
63246 const lines = content.split(/<br\/?>/ig);
63247
63248 for (let i = 0; i < lines.length; i++) {
63249 const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;
63250 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);
63251 text.append('tspan').attr('x', x + width / 2).attr('dy', dy).text(lines[i]);
63252 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
63253
63254 _setTextAttrs(text, textAttrs);
63255 }
63256 }
63257
63258 function byFo(content, g, x, y, width, height, textAttrs, conf) {
63259 const s = g.append('switch');
63260 const f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height);
63261 const text = f.append('div').style('display', 'table').style('height', '100%').style('width', '100%');
63262 text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
63263 byTspan(content, s, x, y, width, height, textAttrs, conf);
63264
63265 _setTextAttrs(text, textAttrs);
63266 }
63267
63268 function _setTextAttrs(toText, fromTextAttrsDict) {
63269 for (const key in fromTextAttrsDict) {
63270 if (fromTextAttrsDict.hasOwnProperty(key)) {
63271 toText.attr(key, fromTextAttrsDict[key]);
63272 }
63273 }
63274 }
63275
63276 return function (conf) {
63277 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
63278 };
63279}();
63280
63281/* harmony default export */ __webpack_exports__["default"] = ({
63282 drawRect,
63283 drawText,
63284 drawLabel,
63285 drawActor,
63286 anchorElement,
63287 drawActivation,
63288 drawLoop,
63289 insertArrowHead,
63290 insertSequenceNumber,
63291 insertArrowCrossHead,
63292 getTextObj,
63293 getNoteRect
63294});
63295
63296/***/ }),
63297
63298/***/ "./src/logger.js":
63299/*!***********************!*\
63300 !*** ./src/logger.js ***!
63301 \***********************/
63302/*! exports provided: LEVELS, logger, setLogLevel */
63303/***/ (function(module, __webpack_exports__, __webpack_require__) {
63304
63305"use strict";
63306__webpack_require__.r(__webpack_exports__);
63307/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LEVELS", function() { return LEVELS; });
63308/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logger", function() { return logger; });
63309/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLogLevel", function() { return setLogLevel; });
63310/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
63311/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
63312
63313const LEVELS = {
63314 debug: 1,
63315 info: 2,
63316 warn: 3,
63317 error: 4,
63318 fatal: 5
63319};
63320const logger = {
63321 debug: () => {},
63322 info: () => {},
63323 warn: () => {},
63324 error: () => {},
63325 fatal: () => {}
63326};
63327const setLogLevel = function (level) {
63328 logger.debug = () => {};
63329
63330 logger.info = () => {};
63331
63332 logger.warn = () => {};
63333
63334 logger.error = () => {};
63335
63336 logger.fatal = () => {};
63337
63338 if (level <= LEVELS.fatal) {
63339 logger.fatal = console.log.bind(console, '\x1b[35m', format('FATAL'));
63340 }
63341
63342 if (level <= LEVELS.error) {
63343 logger.error = console.log.bind(console, '\x1b[31m', format('ERROR'));
63344 }
63345
63346 if (level <= LEVELS.warn) {
63347 logger.warn = console.log.bind(console, `\x1b[33m`, format('WARN'));
63348 }
63349
63350 if (level <= LEVELS.info) {
63351 logger.info = console.log.bind(console, '\x1b[34m', format('INFO'));
63352 }
63353
63354 if (level <= LEVELS.debug) {
63355 logger.debug = console.log.bind(console, '\x1b[32m', format('DEBUG'));
63356 }
63357};
63358
63359const format = level => {
63360 const time = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()().format('HH:mm:ss.SSS');
63361 return `${time} : ${level} : `;
63362};
63363
63364/***/ }),
63365
63366/***/ "./src/mermaid.js":
63367/*!************************!*\
63368 !*** ./src/mermaid.js ***!
63369 \************************/
63370/*! exports provided: default */
63371/***/ (function(module, __webpack_exports__, __webpack_require__) {
63372
63373"use strict";
63374__webpack_require__.r(__webpack_exports__);
63375/* harmony import */ var he__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! he */ "./node_modules/he/he.js");
63376/* harmony import */ var he__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(he__WEBPACK_IMPORTED_MODULE_0__);
63377/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mermaidAPI */ "./src/mermaidAPI.js");
63378/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
63379/**
63380 * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid functionality and to render
63381 * the diagrams to svg code.
63382 */
63383
63384
63385
63386/**
63387 * ## init
63388 * Function that goes through the document to find the chart definitions in there and render them.
63389 *
63390 * The function tags the processed attributes with the attribute data-processed and ignores found elements with the
63391 * attribute already set. This way the init function can be triggered several times.
63392 *
63393 * Optionally, `init` can accept in the second argument one of the following:
63394 * - a DOM Node
63395 * - an array of DOM nodes (as would come from a jQuery selector)
63396 * - a W3C selector, a la `.mermaid`
63397 *
63398 * ```mermaid
63399 * graph LR;
63400 * a(Find elements)-->b{Processed}
63401 * b-->|Yes|c(Leave element)
63402 * b-->|No |d(Transform)
63403 * ```
63404 * Renders the mermaid diagrams
63405 * @param nodes a css selector or an array of nodes
63406 */
63407
63408const init = function () {
63409 const conf = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
63410 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Starting rendering diagrams');
63411 let nodes;
63412
63413 if (arguments.length >= 2) {
63414 /*! sequence config was passed as #1 */
63415 if (typeof arguments[0] !== 'undefined') {
63416 mermaid.sequenceConfig = arguments[0];
63417 }
63418
63419 nodes = arguments[1];
63420 } else {
63421 nodes = arguments[0];
63422 } // if last argument is a function this is the callback function
63423
63424
63425 let callback;
63426
63427 if (typeof arguments[arguments.length - 1] === 'function') {
63428 callback = arguments[arguments.length - 1];
63429 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Callback function found');
63430 } else {
63431 if (typeof conf.mermaid !== 'undefined') {
63432 if (typeof conf.mermaid.callback === 'function') {
63433 callback = conf.mermaid.callback;
63434 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Callback function found');
63435 } else {
63436 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('No Callback function found');
63437 }
63438 }
63439 }
63440
63441 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
63442
63443 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Start On Load before: ' + mermaid.startOnLoad);
63444
63445 if (typeof mermaid.startOnLoad !== 'undefined') {
63446 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Start On Load inner: ' + mermaid.startOnLoad);
63447 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize({
63448 startOnLoad: mermaid.startOnLoad
63449 });
63450 }
63451
63452 if (typeof mermaid.ganttConfig !== 'undefined') {
63453 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize({
63454 gantt: mermaid.ganttConfig
63455 });
63456 }
63457
63458 let txt;
63459
63460 for (let i = 0; i < nodes.length; i++) {
63461 const element = nodes[i];
63462 /*! Check if previously processed */
63463
63464 if (!element.getAttribute('data-processed')) {
63465 element.setAttribute('data-processed', true);
63466 } else {
63467 continue;
63468 }
63469
63470 const id = `mermaid-${Date.now()}`; // Fetch the graph definition including tags
63471
63472 txt = element.innerHTML; // transforms the html to pure text
63473
63474 txt = he__WEBPACK_IMPORTED_MODULE_0___default.a.decode(txt).trim().replace(/<br>/ig, '<br/>');
63475 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render(id, txt, (svgCode, bindFunctions) => {
63476 element.innerHTML = svgCode;
63477
63478 if (typeof callback !== 'undefined') {
63479 callback(id);
63480 }
63481
63482 bindFunctions(element);
63483 }, element);
63484 }
63485};
63486
63487const initialize = function (config) {
63488 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Initializing mermaid ');
63489
63490 if (typeof config.mermaid !== 'undefined') {
63491 if (typeof config.mermaid.startOnLoad !== 'undefined') {
63492 mermaid.startOnLoad = config.mermaid.startOnLoad;
63493 }
63494
63495 if (typeof config.mermaid.htmlLabels !== 'undefined') {
63496 mermaid.htmlLabels = config.mermaid.htmlLabels;
63497 }
63498 }
63499
63500 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize(config);
63501};
63502/**
63503 * ##contentLoaded
63504 * Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and
63505 * calls init for rendering the mermaid diagrams on the page.
63506 */
63507
63508
63509const contentLoaded = function () {
63510 let config;
63511
63512 if (mermaid.startOnLoad) {
63513 // No config found, do check API config
63514 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
63515
63516 if (config.startOnLoad) {
63517 mermaid.init();
63518 }
63519 } else {
63520 if (typeof mermaid.startOnLoad === 'undefined') {
63521 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('In start, no config');
63522 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
63523
63524 if (config.startOnLoad) {
63525 mermaid.init();
63526 }
63527 }
63528 }
63529};
63530
63531if (typeof document !== 'undefined') {
63532 /*!
63533 * Wait for document loaded before starting the execution
63534 */
63535 window.addEventListener('load', function () {
63536 contentLoaded();
63537 }, false);
63538}
63539
63540const mermaid = {
63541 startOnLoad: true,
63542 htmlLabels: true,
63543 mermaidAPI: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"],
63544 parse: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parse,
63545 render: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render,
63546 init,
63547 initialize,
63548 contentLoaded
63549};
63550/* harmony default export */ __webpack_exports__["default"] = (mermaid);
63551
63552/***/ }),
63553
63554/***/ "./src/mermaidAPI.js":
63555/*!***************************!*\
63556 !*** ./src/mermaidAPI.js ***!
63557 \***************************/
63558/*! exports provided: encodeEntities, decodeEntities, default */
63559/***/ (function(module, __webpack_exports__, __webpack_require__) {
63560
63561"use strict";
63562__webpack_require__.r(__webpack_exports__);
63563/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeEntities", function() { return encodeEntities; });
63564/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decodeEntities", function() { return decodeEntities; });
63565/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
63566/* harmony import */ var scope_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! scope-css */ "./node_modules/scope-css/index.js");
63567/* harmony import */ var scope_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(scope_css__WEBPACK_IMPORTED_MODULE_1__);
63568/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../package.json */ "./package.json");
63569var _package_json__WEBPACK_IMPORTED_MODULE_2___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../package.json */ "./package.json", 1);
63570/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config */ "./src/config.js");
63571/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
63572/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
63573/* harmony import */ var _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js");
63574/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/flowchart/parser/flow */ "./src/diagrams/flowchart/parser/flow.js");
63575/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7__);
63576/* harmony import */ var _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js");
63577/* harmony import */ var _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js");
63578/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diagrams/sequence/parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.js");
63579/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10__);
63580/* harmony import */ var _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diagrams/sequence/sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
63581/* harmony import */ var _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js");
63582/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diagrams/gantt/parser/gantt */ "./src/diagrams/gantt/parser/gantt.js");
63583/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13__);
63584/* harmony import */ var _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js");
63585/* harmony import */ var _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diagrams/class/classRenderer */ "./src/diagrams/class/classRenderer.js");
63586/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./diagrams/class/parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.js");
63587/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_16__);
63588/* harmony import */ var _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diagrams/class/classDb */ "./src/diagrams/class/classDb.js");
63589/* harmony import */ var _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diagrams/git/gitGraphRenderer */ "./src/diagrams/git/gitGraphRenderer.js");
63590/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./diagrams/git/parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.js");
63591/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_19__);
63592/* harmony import */ var _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./diagrams/git/gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
63593/* harmony import */ var _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./diagrams/info/infoRenderer */ "./src/diagrams/info/infoRenderer.js");
63594/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./diagrams/info/parser/info */ "./src/diagrams/info/parser/info.js");
63595/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_22__);
63596/* harmony import */ var _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./diagrams/info/infoDb */ "./src/diagrams/info/infoDb.js");
63597/**
63598 * This is the api to be used when handling the integration with the web page instead of using the default integration
63599 * (mermaid.js).
63600 *
63601 * The core of this api is the **render** function that given a graph definitionas text renders the graph/diagram and
63602 * returns a svg element for the graph. It is is then up to the user of the API to make use of the svg, either insert it
63603 * somewhere in the page or something completely different.
63604 * @name mermaidAPI
63605*/
63606
63607
63608
63609
63610
63611
63612
63613
63614
63615
63616
63617
63618
63619
63620
63621
63622
63623
63624
63625
63626
63627
63628
63629
63630const themes = {};
63631
63632for (const themeName of ['default', 'forest', 'dark', 'neutral']) {
63633 themes[themeName] = __webpack_require__("./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$")(`./${themeName}/index.scss`);
63634}
63635/**
63636 * These are the default options which can be overridden with the initialization call as in the example below:
63637 * ```
63638 * mermaid.initialize({
63639 * flowchart:{
63640 * htmlLabels: false
63641 * }
63642 * });
63643 * ```
63644 * @name Configuration
63645 */
63646
63647
63648const config = {
63649 /** theme , the CSS style sheet
63650 *
63651 * **theme** - Choose one of the built-in themes: default, forest, dark or neutral. To disable any pre-defined mermaid theme, use "null".
63652 * **themeCSS** - Use your own CSS. This overrides **theme**.
63653 *```
63654 * "theme": "forest",
63655 * "themeCSS": ".node rect { fill: red; }"
63656 *```
63657 */
63658 theme: 'default',
63659 themeCSS: undefined,
63660
63661 /**
63662 * This option decides the amount of logging to be used.
63663 * * debug: 1
63664 * * info: 2
63665 * * warn: 3
63666 * * error: 4
63667 * * fatal: (**default**) 5
63668 */
63669 logLevel: 5,
63670
63671 /**
63672 * Sets the level of trust to be used on the parsed diagrams.
63673 * * **true**: (**default**) tags in text are encoded, click functionality is disabeled
63674 * * **false**: tags in text are allowed, click functionality is enabled
63675 */
63676 securityLevel: 'strict',
63677
63678 /**
63679 * This options controls whether or mermaid starts when the page loads
63680 * **Default value true**.
63681 */
63682 startOnLoad: true,
63683
63684 /**
63685 * This options controls whether or arrow markers in html code will be absolute paths or
63686 * an anchor, #. This matters if you are using base tag settings.
63687 * **Default value false**.
63688 */
63689 arrowMarkerAbsolute: false,
63690
63691 /**
63692 * The object containing configurations specific for flowcharts
63693 */
63694 flowchart: {
63695 /**
63696 * Flag for setting whether or not a html tag should be used for rendering labels
63697 * on the edges.
63698 * **Default value true**.
63699 */
63700 htmlLabels: true,
63701
63702 /**
63703 * **Default value linear**.
63704 */
63705 curve: 'linear'
63706 },
63707
63708 /**
63709 * The object containing configurations specific for sequence diagrams
63710 */
63711 sequence: {
63712 /**
63713 * margin to the right and left of the sequence diagram
63714 * **Default value 50**.
63715 */
63716 diagramMarginX: 50,
63717
63718 /**
63719 * margin to the over and under the sequence diagram.
63720 * **Default value 10**.
63721 */
63722 diagramMarginY: 10,
63723
63724 /**
63725 * Margin between actors.
63726 * **Default value 50**.
63727 */
63728 actorMargin: 50,
63729
63730 /**
63731 * Width of actor boxes
63732 * **Default value 150**.
63733 */
63734 width: 150,
63735
63736 /**
63737 * Height of actor boxes
63738 * **Default value 65**.
63739 */
63740 height: 65,
63741
63742 /**
63743 * Margin around loop boxes
63744 * **Default value 10**.
63745 */
63746 boxMargin: 10,
63747
63748 /**
63749 * margin around the text in loop/alt/opt boxes
63750 * **Default value 5**.
63751 */
63752 boxTextMargin: 5,
63753
63754 /**
63755 * margin around notes.
63756 * **Default value 10**.
63757 */
63758 noteMargin: 10,
63759
63760 /**
63761 * Space between messages.
63762 * **Default value 35**.
63763 */
63764 messageMargin: 35,
63765
63766 /**
63767 * mirror actors under diagram.
63768 * **Default value true**.
63769 */
63770 mirrorActors: true,
63771
63772 /**
63773 * Depending on css styling this might need adjustment.
63774 * Prolongs the edge of the diagram downwards.
63775 * **Default value 1**.
63776 */
63777 bottomMarginAdj: 1,
63778
63779 /**
63780 * when this flag is set the height and width is set to 100% and is then scaling with the
63781 * available space if not the absolute space required is used.
63782 * **Default value true**.
63783 */
63784 useMaxWidth: true,
63785
63786 /**
63787 * This will display arrows that start and begin at the same node as right angles, rather than a curve
63788 * **Default value false**.
63789 */
63790 rightAngles: false,
63791
63792 /**
63793 * This will show the node numbers
63794 * **Default value false**.
63795 */
63796 showSequenceNumbers: false
63797 },
63798
63799 /**
63800 * The object containing configurations specific for gantt diagrams*
63801 */
63802 gantt: {
63803 /**
63804 * Margin top for the text over the gantt diagram
63805 * **Default value 25**.
63806 */
63807 titleTopMargin: 25,
63808
63809 /**
63810 * The height of the bars in the graph
63811 * **Default value 20**.
63812 */
63813 barHeight: 20,
63814
63815 /**
63816 * The margin between the different activities in the gantt diagram.
63817 * **Default value 4**.
63818 */
63819 barGap: 4,
63820
63821 /**
63822 * Margin between title and gantt diagram and between axis and gantt diagram.
63823 * **Default value 50**.
63824 */
63825 topPadding: 50,
63826
63827 /**
63828 * The space allocated for the section name to the left of the activities.
63829 * **Default value 75**.
63830 */
63831 leftPadding: 75,
63832
63833 /**
63834 * Vertical starting position of the grid lines.
63835 * **Default value 35**.
63836 */
63837 gridLineStartPadding: 35,
63838
63839 /**
63840 * Font size ...
63841 * **Default value 11**.
63842 */
63843 fontSize: 11,
63844
63845 /**
63846 * font family ...
63847 * **Default value '"Open-Sans", "sans-serif"'**.
63848 */
63849 fontFamily: '"Open-Sans", "sans-serif"',
63850
63851 /**
63852 * The number of alternating section styles.
63853 * **Default value 4**.
63854 */
63855 numberSectionStyles: 4,
63856
63857 /**
63858 * Datetime format of the axis, this might need adjustment to match your locale and preferences
63859 * **Default value '%Y-%m-%d'**.
63860 */
63861 axisFormat: '%Y-%m-%d'
63862 },
63863 class: {},
63864 git: {}
63865};
63866Object(_logger__WEBPACK_IMPORTED_MODULE_4__["setLogLevel"])(config.logLevel);
63867Object(_config__WEBPACK_IMPORTED_MODULE_3__["setConfig"])(config);
63868
63869function parse(text) {
63870 const graphType = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].detectType(text);
63871 let parser;
63872 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('Type ' + graphType);
63873
63874 switch (graphType) {
63875 case 'git':
63876 parser = _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_19___default.a;
63877 parser.parser.yy = _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_20__["default"];
63878 break;
63879
63880 case 'flowchart':
63881 parser = _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default.a;
63882 parser.parser.yy = _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"];
63883 break;
63884
63885 case 'sequence':
63886 parser = _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10___default.a;
63887 parser.parser.yy = _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_11__["default"];
63888 break;
63889
63890 case 'gantt':
63891 parser = _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13___default.a;
63892 parser.parser.yy = _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"];
63893 break;
63894
63895 case 'class':
63896 parser = _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_16___default.a;
63897 parser.parser.yy = _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_17__["default"];
63898 break;
63899
63900 case 'info':
63901 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('info info info');
63902 parser = _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_22___default.a;
63903 parser.parser.yy = _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_23__["default"];
63904 break;
63905 }
63906
63907 parser.parser.yy.parseError = (str, hash) => {
63908 const error = {
63909 str,
63910 hash
63911 };
63912 throw error;
63913 };
63914
63915 parser.parse(text);
63916}
63917
63918const encodeEntities = function (text) {
63919 let txt = text;
63920 txt = txt.replace(/style.*:\S*#.*;/g, function (s) {
63921 const innerTxt = s.substring(0, s.length - 1);
63922 return innerTxt;
63923 });
63924 txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) {
63925 const innerTxt = s.substring(0, s.length - 1);
63926 return innerTxt;
63927 });
63928 txt = txt.replace(/#\w+;/g, function (s) {
63929 const innerTxt = s.substring(1, s.length - 1);
63930 const isInt = /^\+?\d+$/.test(innerTxt);
63931
63932 if (isInt) {
63933 return 'fl°°' + innerTxt + '¶ß';
63934 } else {
63935 return 'fl°' + innerTxt + '¶ß';
63936 }
63937 });
63938 return txt;
63939};
63940const decodeEntities = function (text) {
63941 let txt = text;
63942 txt = txt.replace(/fl°°/g, function () {
63943 return '&#';
63944 });
63945 txt = txt.replace(/fl°/g, function () {
63946 return '&';
63947 });
63948 txt = txt.replace(/¶ß/g, function () {
63949 return ';';
63950 });
63951 return txt;
63952};
63953/**
63954 * Function that renders an svg with a graph from a chart definition. Usage example below.
63955 *
63956 * ```js
63957 * mermaidAPI.initialize({
63958 * startOnLoad:true
63959 * });
63960 * $(function(){
63961 * const graphDefinition = 'graph TB\na-->b';
63962 * const cb = function(svgGraph){
63963 * console.log(svgGraph);
63964 * };
63965 * mermaidAPI.render('id1',graphDefinition,cb);
63966 * });
63967 *```
63968 * @param id the id of the element to be rendered
63969 * @param txt the graph definition
63970 * @param cb callback which is called after rendering is finished with the svg code as inparam.
63971 * @param container selector to element in which a div with the graph temporarily will be inserted. In one is
63972 * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is
63973 * completed.
63974 */
63975
63976const render = function (id, txt, cb, container) {
63977 if (typeof container !== 'undefined') {
63978 container.innerHTML = '';
63979 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');
63980 } else {
63981 const element = document.querySelector('#' + 'd' + id);
63982
63983 if (element) {
63984 element.innerHTML = '';
63985 }
63986
63987 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');
63988 }
63989
63990 window.txt = txt;
63991 txt = encodeEntities(txt);
63992 const element = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#d' + id).node();
63993 const graphType = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].detectType(txt); // insert inline style into svg
63994
63995 const svg = element.firstChild;
63996 const firstChild = svg.firstChild; // pre-defined theme
63997
63998 let style = themes[config.theme];
63999
64000 if (style === undefined) {
64001 style = '';
64002 } // user provided theme CSS
64003
64004
64005 if (config.themeCSS !== undefined) {
64006 style += `\n${config.themeCSS}`;
64007 } // classDef
64008
64009
64010 if (graphType === 'flowchart') {
64011 const classes = _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_6__["default"].getClasses(txt);
64012
64013 for (const className in classes) {
64014 style += `\n.${className} > * { ${classes[className].styles.join(' !important; ')} !important; }`;
64015 }
64016 }
64017
64018 const style1 = document.createElement('style');
64019 style1.innerHTML = scope_css__WEBPACK_IMPORTED_MODULE_1___default()(style, `#${id}`);
64020 svg.insertBefore(style1, firstChild);
64021 const style2 = document.createElement('style');
64022 const cs = window.getComputedStyle(svg);
64023 style2.innerHTML = `#${id} {
64024 color: ${cs.color};
64025 font: ${cs.font};
64026 }`;
64027 svg.insertBefore(style2, firstChild);
64028
64029 switch (graphType) {
64030 case 'git':
64031 config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
64032 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_18__["default"].setConf(config.git);
64033 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_18__["default"].draw(txt, id, false);
64034 break;
64035
64036 case 'flowchart':
64037 config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
64038 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_6__["default"].setConf(config.flowchart);
64039 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_6__["default"].draw(txt, id, false);
64040 break;
64041
64042 case 'sequence':
64043 config.sequence.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
64044
64045 if (config.sequenceDiagram) {
64046 // backwards compatibility
64047 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(Object.assign(config.sequence, config.sequenceDiagram));
64048 console.error('`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.');
64049 } else {
64050 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(config.sequence);
64051 }
64052
64053 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].draw(txt, id);
64054 break;
64055
64056 case 'gantt':
64057 config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
64058 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].setConf(config.gantt);
64059 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].draw(txt, id);
64060 break;
64061
64062 case 'class':
64063 config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
64064 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].setConf(config.class);
64065 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].draw(txt, id);
64066 break;
64067
64068 case 'info':
64069 config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
64070 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_21__["default"].setConf(config.class);
64071 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_21__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
64072 break;
64073 }
64074
64075 d3__WEBPACK_IMPORTED_MODULE_0__["select"](`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', 'http://www.w3.org/1999/xhtml');
64076 let url = '';
64077
64078 if (config.arrowMarkerAbsolute) {
64079 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
64080 url = url.replace(/\(/g, '\\(');
64081 url = url.replace(/\)/g, '\\)');
64082 } // Fix for when the base tag is used
64083
64084
64085 let svgCode = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#d' + id).node().innerHTML.replace(/url\(#arrowhead/g, 'url(' + url + '#arrowhead', 'g');
64086 svgCode = decodeEntities(svgCode);
64087
64088 if (typeof cb !== 'undefined') {
64089 cb(svgCode, _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].bindFunctions);
64090 cb(svgCode, _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"].bindFunctions);
64091 } else {
64092 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].warn('CB = undefined!');
64093 }
64094
64095 const node = d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#d' + id).node();
64096
64097 if (node !== null && typeof node.remove === 'function') {
64098 d3__WEBPACK_IMPORTED_MODULE_0__["select"]('#d' + id).node().remove();
64099 }
64100
64101 return svgCode;
64102};
64103
64104const setConf = function (cnf) {
64105 // Top level initially mermaid, gflow, sequenceDiagram and gantt
64106 const lvl1Keys = Object.keys(cnf);
64107
64108 for (let i = 0; i < lvl1Keys.length; i++) {
64109 if (typeof cnf[lvl1Keys[i]] === 'object' && cnf[lvl1Keys[i]] != null) {
64110 const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);
64111
64112 for (let j = 0; j < lvl2Keys.length; j++) {
64113 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]);
64114
64115 if (typeof config[lvl1Keys[i]] === 'undefined') {
64116 config[lvl1Keys[i]] = {};
64117 }
64118
64119 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('Setting config: ' + lvl1Keys[i] + ' ' + lvl2Keys[j] + ' to ' + cnf[lvl1Keys[i]][lvl2Keys[j]]);
64120 config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];
64121 }
64122 } else {
64123 config[lvl1Keys[i]] = cnf[lvl1Keys[i]];
64124 }
64125 }
64126};
64127
64128function initialize(options) {
64129 _logger__WEBPACK_IMPORTED_MODULE_4__["logger"].debug('Initializing mermaidAPI ', _package_json__WEBPACK_IMPORTED_MODULE_2__.version); // Update default config with options supplied at initialization
64130
64131 if (typeof options === 'object') {
64132 setConf(options);
64133 }
64134
64135 Object(_config__WEBPACK_IMPORTED_MODULE_3__["setConfig"])(config);
64136 Object(_logger__WEBPACK_IMPORTED_MODULE_4__["setLogLevel"])(config.logLevel);
64137} // function getConfig () {
64138// console.warn('get config')
64139// return config
64140// }
64141
64142
64143const mermaidAPI = {
64144 render,
64145 parse,
64146 initialize,
64147 getConfig: _config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]
64148};
64149/* harmony default export */ __webpack_exports__["default"] = (mermaidAPI);
64150
64151/***/ }),
64152
64153/***/ "./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$":
64154/*!***********************************************!*\
64155 !*** ./src/themes sync ^\.\/.*\/index\.scss$ ***!
64156 \***********************************************/
64157/*! no static exports found */
64158/***/ (function(module, exports, __webpack_require__) {
64159
64160var map = {
64161 "./dark/index.scss": "./src/themes/dark/index.scss",
64162 "./default/index.scss": "./src/themes/default/index.scss",
64163 "./forest/index.scss": "./src/themes/forest/index.scss",
64164 "./neutral/index.scss": "./src/themes/neutral/index.scss"
64165};
64166
64167
64168function webpackContext(req) {
64169 var id = webpackContextResolve(req);
64170 return __webpack_require__(id);
64171}
64172function webpackContextResolve(req) {
64173 var id = map[req];
64174 if(!(id + 1)) { // check for number or string
64175 var e = new Error("Cannot find module '" + req + "'");
64176 e.code = 'MODULE_NOT_FOUND';
64177 throw e;
64178 }
64179 return id;
64180}
64181webpackContext.keys = function webpackContextKeys() {
64182 return Object.keys(map);
64183};
64184webpackContext.resolve = webpackContextResolve;
64185module.exports = webpackContext;
64186webpackContext.id = "./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$";
64187
64188/***/ }),
64189
64190/***/ "./src/themes/dark/index.scss":
64191/*!************************************!*\
64192 !*** ./src/themes/dark/index.scss ***!
64193 \************************************/
64194/*! no static exports found */
64195/***/ (function(module, exports, __webpack_require__) {
64196
64197// css-to-string-loader: transforms styles from css-loader to a string output
64198
64199// Get the styles
64200var 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");
64201
64202if (typeof styles === 'string') {
64203 // Return an existing string
64204 module.exports = styles;
64205} else {
64206 // Call the custom toString method from css-loader module
64207 module.exports = styles.toString();
64208}
64209
64210/***/ }),
64211
64212/***/ "./src/themes/default/index.scss":
64213/*!***************************************!*\
64214 !*** ./src/themes/default/index.scss ***!
64215 \***************************************/
64216/*! no static exports found */
64217/***/ (function(module, exports, __webpack_require__) {
64218
64219// css-to-string-loader: transforms styles from css-loader to a string output
64220
64221// Get the styles
64222var 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");
64223
64224if (typeof styles === 'string') {
64225 // Return an existing string
64226 module.exports = styles;
64227} else {
64228 // Call the custom toString method from css-loader module
64229 module.exports = styles.toString();
64230}
64231
64232/***/ }),
64233
64234/***/ "./src/themes/forest/index.scss":
64235/*!**************************************!*\
64236 !*** ./src/themes/forest/index.scss ***!
64237 \**************************************/
64238/*! no static exports found */
64239/***/ (function(module, exports, __webpack_require__) {
64240
64241// css-to-string-loader: transforms styles from css-loader to a string output
64242
64243// Get the styles
64244var 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");
64245
64246if (typeof styles === 'string') {
64247 // Return an existing string
64248 module.exports = styles;
64249} else {
64250 // Call the custom toString method from css-loader module
64251 module.exports = styles.toString();
64252}
64253
64254/***/ }),
64255
64256/***/ "./src/themes/neutral/index.scss":
64257/*!***************************************!*\
64258 !*** ./src/themes/neutral/index.scss ***!
64259 \***************************************/
64260/*! no static exports found */
64261/***/ (function(module, exports, __webpack_require__) {
64262
64263// css-to-string-loader: transforms styles from css-loader to a string output
64264
64265// Get the styles
64266var 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");
64267
64268if (typeof styles === 'string') {
64269 // Return an existing string
64270 module.exports = styles;
64271} else {
64272 // Call the custom toString method from css-loader module
64273 module.exports = styles.toString();
64274}
64275
64276/***/ }),
64277
64278/***/ "./src/utils.js":
64279/*!**********************!*\
64280 !*** ./src/utils.js ***!
64281 \**********************/
64282/*! exports provided: detectType, isSubstringInArray, interpolateToCurve, default */
64283/***/ (function(module, __webpack_exports__, __webpack_require__) {
64284
64285"use strict";
64286__webpack_require__.r(__webpack_exports__);
64287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectType", function() { return detectType; });
64288/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSubstringInArray", function() { return isSubstringInArray; });
64289/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateToCurve", function() { return interpolateToCurve; });
64290/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
64291/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
64292
64293
64294/**
64295 * @function detectType
64296 * Detects the type of the graph text.
64297 * ```mermaid
64298 * graph LR
64299 * a-->b
64300 * b-->c
64301 * c-->d
64302 * d-->e
64303 * e-->f
64304 * f-->g
64305 * g-->h
64306 * ```
64307 *
64308 * @param {string} text The text defining the graph
64309 * @returns {string} A graph definition key
64310 */
64311
64312const detectType = function (text) {
64313 text = text.replace(/^\s*%%.*\n/g, '\n');
64314 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Detecting diagram type based on the text ' + text);
64315
64316 if (text.match(/^\s*sequenceDiagram/)) {
64317 return 'sequence';
64318 }
64319
64320 if (text.match(/^\s*gantt/)) {
64321 return 'gantt';
64322 }
64323
64324 if (text.match(/^\s*classDiagram/)) {
64325 return 'class';
64326 }
64327
64328 if (text.match(/^\s*gitGraph/)) {
64329 return 'git';
64330 }
64331
64332 if (text.match(/^\s*info/)) {
64333 return 'info';
64334 }
64335
64336 return 'flowchart';
64337};
64338/**
64339 * @function isSubstringInArray
64340 * Detects whether a substring in present in a given array
64341 * @param {string} str The substring to detect
64342 * @param {array} arr The array to search
64343 * @returns {number} the array index containing the substring or -1 if not present
64344 **/
64345
64346const isSubstringInArray = function (str, arr) {
64347 for (let i = 0; i < arr.length; i++) {
64348 if (arr[i].match(str)) return i;
64349 }
64350
64351 return -1;
64352};
64353const interpolateToCurve = (interpolate, defaultCurve) => {
64354 if (!interpolate) {
64355 return defaultCurve;
64356 }
64357
64358 const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;
64359 return d3__WEBPACK_IMPORTED_MODULE_0__[curveName] || defaultCurve;
64360};
64361/* harmony default export */ __webpack_exports__["default"] = ({
64362 detectType,
64363 isSubstringInArray,
64364 interpolateToCurve
64365});
64366
64367/***/ })
64368
64369/******/ })["default"];
64370});
64371//# sourceMappingURL=mermaid.js.map
\No newline at end of file