UNPKG

2.73 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, {
50/******/ configurable: false,
51/******/ enumerable: true,
52/******/ get: getter
53/******/ });
54/******/ }
55/******/ };
56/******/
57/******/ // define __esModule on exports
58/******/ __webpack_require__.r = function(exports) {
59/******/ Object.defineProperty(exports, '__esModule', { value: true });
60/******/ };
61/******/
62/******/ // getDefaultExport function for compatibility with non-harmony modules
63/******/ __webpack_require__.n = function(module) {
64/******/ var getter = module && module.__esModule ?
65/******/ function getDefault() { return module['default']; } :
66/******/ function getModuleExports() { return module; };
67/******/ __webpack_require__.d(getter, 'a', getter);
68/******/ return getter;
69/******/ };
70/******/
71/******/ // Object.prototype.hasOwnProperty.call
72/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
73/******/
74/******/ // __webpack_public_path__
75/******/ __webpack_require__.p = "";
76/******/
77/******/
78/******/ // Load entry module and return exports
79/******/ return __webpack_require__(__webpack_require__.s = "./src/mermaid.js");
80/******/ })
81/************************************************************************/
82/******/ ({
83
84/***/ "./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/themes/dark/index.scss":
85/*!*******************************************************************************************************!*\
86 !*** ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/themes/dark/index.scss ***!
87 \*******************************************************************************************************/
88/*! no static exports found */
89/***/ (function(module, exports, __webpack_require__) {
90
91exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
92// imports
93
94
95// module
96exports.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.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 !important;\n stroke: rgba(255, 255, 255, 0.25) !important;\n stroke-width: 1px !important; }\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 marker-end: 'url(#arrowhead)';\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#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: lightgrey;\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 marker-end: 'url(#arrowhead)';\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/** 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/* 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.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", ""]);
97
98// exports
99
100
101/***/ }),
102
103/***/ "./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/themes/default/index.scss":
104/*!**********************************************************************************************************!*\
105 !*** ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/themes/default/index.scss ***!
106 \**********************************************************************************************************/
107/*! no static exports found */
108/***/ (function(module, exports, __webpack_require__) {
109
110exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
111// imports
112
113
114// module
115exports.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.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 !important;\n stroke: #aaaa33 !important;\n stroke-width: 1px !important; }\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 marker-end: 'url(#arrowhead)';\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#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 marker-end: 'url(#arrowhead)';\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/** 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/* 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.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", ""]);
116
117// exports
118
119
120/***/ }),
121
122/***/ "./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/themes/forest/index.scss":
123/*!*********************************************************************************************************!*\
124 !*** ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/themes/forest/index.scss ***!
125 \*********************************************************************************************************/
126/*! no static exports found */
127/***/ (function(module, exports, __webpack_require__) {
128
129exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
130// imports
131
132
133// module
134exports.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.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 !important;\n stroke: #6eaa49 !important;\n stroke-width: 1px !important; }\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 marker-end: 'url(#arrowhead)';\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#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 marker-end: 'url(#arrowhead)';\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/** 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/* 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.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", ""]);
135
136// exports
137
138
139/***/ }),
140
141/***/ "./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/themes/neutral/index.scss":
142/*!**********************************************************************************************************!*\
143 !*** ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/themes/neutral/index.scss ***!
144 \**********************************************************************************************************/
145/*! no static exports found */
146/***/ (function(module, exports, __webpack_require__) {
147
148exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
149// imports
150
151
152// module
153exports.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.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 !important;\n stroke: #26a !important;\n stroke-width: 1px !important; }\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 marker-end: 'url(#arrowhead)';\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#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: white;\n stroke: none; }\n\n.loopText {\n fill: white;\n stroke: none; }\n\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: '2 2';\n marker-end: 'url(#arrowhead)';\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/** 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/* 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.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", ""]);
154
155// exports
156
157
158/***/ }),
159
160/***/ "./node_modules/css-loader/lib/css-base.js":
161/*!*************************************************!*\
162 !*** ./node_modules/css-loader/lib/css-base.js ***!
163 \*************************************************/
164/*! no static exports found */
165/***/ (function(module, exports) {
166
167/*
168 MIT License http://www.opensource.org/licenses/mit-license.php
169 Author Tobias Koppers @sokra
170*/
171// css base code, injected by the css-loader
172module.exports = function(useSourceMap) {
173 var list = [];
174
175 // return the list of modules as css string
176 list.toString = function toString() {
177 return this.map(function (item) {
178 var content = cssWithMappingToString(item, useSourceMap);
179 if(item[2]) {
180 return "@media " + item[2] + "{" + content + "}";
181 } else {
182 return content;
183 }
184 }).join("");
185 };
186
187 // import a list of modules into the list
188 list.i = function(modules, mediaQuery) {
189 if(typeof modules === "string")
190 modules = [[null, modules, ""]];
191 var alreadyImportedModules = {};
192 for(var i = 0; i < this.length; i++) {
193 var id = this[i][0];
194 if(typeof id === "number")
195 alreadyImportedModules[id] = true;
196 }
197 for(i = 0; i < modules.length; i++) {
198 var item = modules[i];
199 // skip already imported module
200 // this implementation is not 100% perfect for weird media query combinations
201 // when a module is imported multiple times with different media queries.
202 // I hope this will never occur (Hey this way we have smaller bundles)
203 if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
204 if(mediaQuery && !item[2]) {
205 item[2] = mediaQuery;
206 } else if(mediaQuery) {
207 item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
208 }
209 list.push(item);
210 }
211 }
212 };
213 return list;
214};
215
216function cssWithMappingToString(item, useSourceMap) {
217 var content = item[1] || '';
218 var cssMapping = item[3];
219 if (!cssMapping) {
220 return content;
221 }
222
223 if (useSourceMap && typeof btoa === 'function') {
224 var sourceMapping = toComment(cssMapping);
225 var sourceURLs = cssMapping.sources.map(function (source) {
226 return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
227 });
228
229 return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
230 }
231
232 return [content].join('\n');
233}
234
235// Adapted from convert-source-map (MIT)
236function toComment(sourceMap) {
237 // eslint-disable-next-line no-undef
238 var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
239 var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
240
241 return '/*# ' + data + ' */';
242}
243
244
245/***/ }),
246
247/***/ "./node_modules/d3-array/index.js":
248/*!****************************************!*\
249 !*** ./node_modules/d3-array/index.js ***!
250 \****************************************/
251/*! 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 */
252/***/ (function(module, __webpack_exports__, __webpack_require__) {
253
254"use strict";
255__webpack_require__.r(__webpack_exports__);
256/* harmony import */ var _src_bisect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/bisect */ "./node_modules/d3-array/src/bisect.js");
257/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisect", function() { return _src_bisect__WEBPACK_IMPORTED_MODULE_0__["default"]; });
258
259/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return _src_bisect__WEBPACK_IMPORTED_MODULE_0__["bisectRight"]; });
260
261/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return _src_bisect__WEBPACK_IMPORTED_MODULE_0__["bisectLeft"]; });
262
263/* harmony import */ var _src_ascending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/ascending */ "./node_modules/d3-array/src/ascending.js");
264/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ascending", function() { return _src_ascending__WEBPACK_IMPORTED_MODULE_1__["default"]; });
265
266/* harmony import */ var _src_bisector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/bisector */ "./node_modules/d3-array/src/bisector.js");
267/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisector", function() { return _src_bisector__WEBPACK_IMPORTED_MODULE_2__["default"]; });
268
269/* harmony import */ var _src_cross__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/cross */ "./node_modules/d3-array/src/cross.js");
270/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cross", function() { return _src_cross__WEBPACK_IMPORTED_MODULE_3__["default"]; });
271
272/* harmony import */ var _src_descending__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/descending */ "./node_modules/d3-array/src/descending.js");
273/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "descending", function() { return _src_descending__WEBPACK_IMPORTED_MODULE_4__["default"]; });
274
275/* harmony import */ var _src_deviation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/deviation */ "./node_modules/d3-array/src/deviation.js");
276/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deviation", function() { return _src_deviation__WEBPACK_IMPORTED_MODULE_5__["default"]; });
277
278/* harmony import */ var _src_extent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/extent */ "./node_modules/d3-array/src/extent.js");
279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extent", function() { return _src_extent__WEBPACK_IMPORTED_MODULE_6__["default"]; });
280
281/* harmony import */ var _src_histogram__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/histogram */ "./node_modules/d3-array/src/histogram.js");
282/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "histogram", function() { return _src_histogram__WEBPACK_IMPORTED_MODULE_7__["default"]; });
283
284/* harmony import */ var _src_threshold_freedmanDiaconis__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/threshold/freedmanDiaconis */ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js");
285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdFreedmanDiaconis", function() { return _src_threshold_freedmanDiaconis__WEBPACK_IMPORTED_MODULE_8__["default"]; });
286
287/* harmony import */ var _src_threshold_scott__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/threshold/scott */ "./node_modules/d3-array/src/threshold/scott.js");
288/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdScott", function() { return _src_threshold_scott__WEBPACK_IMPORTED_MODULE_9__["default"]; });
289
290/* harmony import */ var _src_threshold_sturges__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/threshold/sturges */ "./node_modules/d3-array/src/threshold/sturges.js");
291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdSturges", function() { return _src_threshold_sturges__WEBPACK_IMPORTED_MODULE_10__["default"]; });
292
293/* harmony import */ var _src_max__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/max */ "./node_modules/d3-array/src/max.js");
294/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _src_max__WEBPACK_IMPORTED_MODULE_11__["default"]; });
295
296/* harmony import */ var _src_mean__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/mean */ "./node_modules/d3-array/src/mean.js");
297/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mean", function() { return _src_mean__WEBPACK_IMPORTED_MODULE_12__["default"]; });
298
299/* harmony import */ var _src_median__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/median */ "./node_modules/d3-array/src/median.js");
300/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "median", function() { return _src_median__WEBPACK_IMPORTED_MODULE_13__["default"]; });
301
302/* harmony import */ var _src_merge__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/merge */ "./node_modules/d3-array/src/merge.js");
303/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _src_merge__WEBPACK_IMPORTED_MODULE_14__["default"]; });
304
305/* harmony import */ var _src_min__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/min */ "./node_modules/d3-array/src/min.js");
306/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _src_min__WEBPACK_IMPORTED_MODULE_15__["default"]; });
307
308/* harmony import */ var _src_pairs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./src/pairs */ "./node_modules/d3-array/src/pairs.js");
309/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return _src_pairs__WEBPACK_IMPORTED_MODULE_16__["default"]; });
310
311/* harmony import */ var _src_permute__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./src/permute */ "./node_modules/d3-array/src/permute.js");
312/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "permute", function() { return _src_permute__WEBPACK_IMPORTED_MODULE_17__["default"]; });
313
314/* harmony import */ var _src_quantile__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./src/quantile */ "./node_modules/d3-array/src/quantile.js");
315/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantile", function() { return _src_quantile__WEBPACK_IMPORTED_MODULE_18__["default"]; });
316
317/* harmony import */ var _src_range__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./src/range */ "./node_modules/d3-array/src/range.js");
318/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return _src_range__WEBPACK_IMPORTED_MODULE_19__["default"]; });
319
320/* harmony import */ var _src_scan__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./src/scan */ "./node_modules/d3-array/src/scan.js");
321/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _src_scan__WEBPACK_IMPORTED_MODULE_20__["default"]; });
322
323/* harmony import */ var _src_shuffle__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./src/shuffle */ "./node_modules/d3-array/src/shuffle.js");
324/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return _src_shuffle__WEBPACK_IMPORTED_MODULE_21__["default"]; });
325
326/* harmony import */ var _src_sum__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./src/sum */ "./node_modules/d3-array/src/sum.js");
327/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return _src_sum__WEBPACK_IMPORTED_MODULE_22__["default"]; });
328
329/* harmony import */ var _src_ticks__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./src/ticks */ "./node_modules/d3-array/src/ticks.js");
330/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ticks", function() { return _src_ticks__WEBPACK_IMPORTED_MODULE_23__["default"]; });
331
332/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return _src_ticks__WEBPACK_IMPORTED_MODULE_23__["tickIncrement"]; });
333
334/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return _src_ticks__WEBPACK_IMPORTED_MODULE_23__["tickStep"]; });
335
336/* harmony import */ var _src_transpose__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./src/transpose */ "./node_modules/d3-array/src/transpose.js");
337/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transpose", function() { return _src_transpose__WEBPACK_IMPORTED_MODULE_24__["default"]; });
338
339/* harmony import */ var _src_variance__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./src/variance */ "./node_modules/d3-array/src/variance.js");
340/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "variance", function() { return _src_variance__WEBPACK_IMPORTED_MODULE_25__["default"]; });
341
342/* harmony import */ var _src_zip__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./src/zip */ "./node_modules/d3-array/src/zip.js");
343/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _src_zip__WEBPACK_IMPORTED_MODULE_26__["default"]; });
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374/***/ }),
375
376/***/ "./node_modules/d3-array/src/array.js":
377/*!********************************************!*\
378 !*** ./node_modules/d3-array/src/array.js ***!
379 \********************************************/
380/*! exports provided: slice, map */
381/***/ (function(module, __webpack_exports__, __webpack_require__) {
382
383"use strict";
384__webpack_require__.r(__webpack_exports__);
385/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
386/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
387var array = Array.prototype;
388
389var slice = array.slice;
390var map = array.map;
391
392
393/***/ }),
394
395/***/ "./node_modules/d3-array/src/ascending.js":
396/*!************************************************!*\
397 !*** ./node_modules/d3-array/src/ascending.js ***!
398 \************************************************/
399/*! exports provided: default */
400/***/ (function(module, __webpack_exports__, __webpack_require__) {
401
402"use strict";
403__webpack_require__.r(__webpack_exports__);
404/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
405 return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
406});
407
408
409/***/ }),
410
411/***/ "./node_modules/d3-array/src/bisect.js":
412/*!*********************************************!*\
413 !*** ./node_modules/d3-array/src/bisect.js ***!
414 \*********************************************/
415/*! exports provided: bisectRight, bisectLeft, default */
416/***/ (function(module, __webpack_exports__, __webpack_require__) {
417
418"use strict";
419__webpack_require__.r(__webpack_exports__);
420/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return bisectRight; });
421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return bisectLeft; });
422/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
423/* harmony import */ var _bisector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bisector */ "./node_modules/d3-array/src/bisector.js");
424
425
426
427var ascendingBisect = Object(_bisector__WEBPACK_IMPORTED_MODULE_1__["default"])(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"]);
428var bisectRight = ascendingBisect.right;
429var bisectLeft = ascendingBisect.left;
430/* harmony default export */ __webpack_exports__["default"] = (bisectRight);
431
432
433/***/ }),
434
435/***/ "./node_modules/d3-array/src/bisector.js":
436/*!***********************************************!*\
437 !*** ./node_modules/d3-array/src/bisector.js ***!
438 \***********************************************/
439/*! exports provided: default */
440/***/ (function(module, __webpack_exports__, __webpack_require__) {
441
442"use strict";
443__webpack_require__.r(__webpack_exports__);
444/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
445
446
447/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
448 if (compare.length === 1) compare = ascendingComparator(compare);
449 return {
450 left: function(a, x, lo, hi) {
451 if (lo == null) lo = 0;
452 if (hi == null) hi = a.length;
453 while (lo < hi) {
454 var mid = lo + hi >>> 1;
455 if (compare(a[mid], x) < 0) lo = mid + 1;
456 else hi = mid;
457 }
458 return lo;
459 },
460 right: function(a, x, lo, hi) {
461 if (lo == null) lo = 0;
462 if (hi == null) hi = a.length;
463 while (lo < hi) {
464 var mid = lo + hi >>> 1;
465 if (compare(a[mid], x) > 0) hi = mid;
466 else lo = mid + 1;
467 }
468 return lo;
469 }
470 };
471});
472
473function ascendingComparator(f) {
474 return function(d, x) {
475 return Object(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"])(f(d), x);
476 };
477}
478
479
480/***/ }),
481
482/***/ "./node_modules/d3-array/src/constant.js":
483/*!***********************************************!*\
484 !*** ./node_modules/d3-array/src/constant.js ***!
485 \***********************************************/
486/*! exports provided: default */
487/***/ (function(module, __webpack_exports__, __webpack_require__) {
488
489"use strict";
490__webpack_require__.r(__webpack_exports__);
491/* harmony default export */ __webpack_exports__["default"] = (function(x) {
492 return function() {
493 return x;
494 };
495});
496
497
498/***/ }),
499
500/***/ "./node_modules/d3-array/src/cross.js":
501/*!********************************************!*\
502 !*** ./node_modules/d3-array/src/cross.js ***!
503 \********************************************/
504/*! exports provided: default */
505/***/ (function(module, __webpack_exports__, __webpack_require__) {
506
507"use strict";
508__webpack_require__.r(__webpack_exports__);
509/* harmony import */ var _pairs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pairs */ "./node_modules/d3-array/src/pairs.js");
510
511
512/* harmony default export */ __webpack_exports__["default"] = (function(values0, values1, reduce) {
513 var n0 = values0.length,
514 n1 = values1.length,
515 values = new Array(n0 * n1),
516 i0,
517 i1,
518 i,
519 value0;
520
521 if (reduce == null) reduce = _pairs__WEBPACK_IMPORTED_MODULE_0__["pair"];
522
523 for (i0 = i = 0; i0 < n0; ++i0) {
524 for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
525 values[i] = reduce(value0, values1[i1]);
526 }
527 }
528
529 return values;
530});
531
532
533/***/ }),
534
535/***/ "./node_modules/d3-array/src/descending.js":
536/*!*************************************************!*\
537 !*** ./node_modules/d3-array/src/descending.js ***!
538 \*************************************************/
539/*! exports provided: default */
540/***/ (function(module, __webpack_exports__, __webpack_require__) {
541
542"use strict";
543__webpack_require__.r(__webpack_exports__);
544/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
545 return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
546});
547
548
549/***/ }),
550
551/***/ "./node_modules/d3-array/src/deviation.js":
552/*!************************************************!*\
553 !*** ./node_modules/d3-array/src/deviation.js ***!
554 \************************************************/
555/*! exports provided: default */
556/***/ (function(module, __webpack_exports__, __webpack_require__) {
557
558"use strict";
559__webpack_require__.r(__webpack_exports__);
560/* harmony import */ var _variance__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variance */ "./node_modules/d3-array/src/variance.js");
561
562
563/* harmony default export */ __webpack_exports__["default"] = (function(array, f) {
564 var v = Object(_variance__WEBPACK_IMPORTED_MODULE_0__["default"])(array, f);
565 return v ? Math.sqrt(v) : v;
566});
567
568
569/***/ }),
570
571/***/ "./node_modules/d3-array/src/extent.js":
572/*!*********************************************!*\
573 !*** ./node_modules/d3-array/src/extent.js ***!
574 \*********************************************/
575/*! exports provided: default */
576/***/ (function(module, __webpack_exports__, __webpack_require__) {
577
578"use strict";
579__webpack_require__.r(__webpack_exports__);
580/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
581 var n = values.length,
582 i = -1,
583 value,
584 min,
585 max;
586
587 if (valueof == null) {
588 while (++i < n) { // Find the first comparable value.
589 if ((value = values[i]) != null && value >= value) {
590 min = max = value;
591 while (++i < n) { // Compare the remaining values.
592 if ((value = values[i]) != null) {
593 if (min > value) min = value;
594 if (max < value) max = value;
595 }
596 }
597 }
598 }
599 }
600
601 else {
602 while (++i < n) { // Find the first comparable value.
603 if ((value = valueof(values[i], i, values)) != null && value >= value) {
604 min = max = value;
605 while (++i < n) { // Compare the remaining values.
606 if ((value = valueof(values[i], i, values)) != null) {
607 if (min > value) min = value;
608 if (max < value) max = value;
609 }
610 }
611 }
612 }
613 }
614
615 return [min, max];
616});
617
618
619/***/ }),
620
621/***/ "./node_modules/d3-array/src/histogram.js":
622/*!************************************************!*\
623 !*** ./node_modules/d3-array/src/histogram.js ***!
624 \************************************************/
625/*! exports provided: default */
626/***/ (function(module, __webpack_exports__, __webpack_require__) {
627
628"use strict";
629__webpack_require__.r(__webpack_exports__);
630/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-array/src/array.js");
631/* harmony import */ var _bisect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bisect */ "./node_modules/d3-array/src/bisect.js");
632/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-array/src/constant.js");
633/* harmony import */ var _extent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extent */ "./node_modules/d3-array/src/extent.js");
634/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-array/src/identity.js");
635/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./range */ "./node_modules/d3-array/src/range.js");
636/* harmony import */ var _ticks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ticks */ "./node_modules/d3-array/src/ticks.js");
637/* harmony import */ var _threshold_sturges__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./threshold/sturges */ "./node_modules/d3-array/src/threshold/sturges.js");
638
639
640
641
642
643
644
645
646
647/* harmony default export */ __webpack_exports__["default"] = (function() {
648 var value = _identity__WEBPACK_IMPORTED_MODULE_4__["default"],
649 domain = _extent__WEBPACK_IMPORTED_MODULE_3__["default"],
650 threshold = _threshold_sturges__WEBPACK_IMPORTED_MODULE_7__["default"];
651
652 function histogram(data) {
653 var i,
654 n = data.length,
655 x,
656 values = new Array(n);
657
658 for (i = 0; i < n; ++i) {
659 values[i] = value(data[i], i, data);
660 }
661
662 var xz = domain(values),
663 x0 = xz[0],
664 x1 = xz[1],
665 tz = threshold(values, x0, x1);
666
667 // Convert number of thresholds into uniform thresholds.
668 if (!Array.isArray(tz)) {
669 tz = Object(_ticks__WEBPACK_IMPORTED_MODULE_6__["tickStep"])(x0, x1, tz);
670 tz = Object(_range__WEBPACK_IMPORTED_MODULE_5__["default"])(Math.ceil(x0 / tz) * tz, Math.floor(x1 / tz) * tz, tz); // exclusive
671 }
672
673 // Remove any thresholds outside the domain.
674 var m = tz.length;
675 while (tz[0] <= x0) tz.shift(), --m;
676 while (tz[m - 1] > x1) tz.pop(), --m;
677
678 var bins = new Array(m + 1),
679 bin;
680
681 // Initialize bins.
682 for (i = 0; i <= m; ++i) {
683 bin = bins[i] = [];
684 bin.x0 = i > 0 ? tz[i - 1] : x0;
685 bin.x1 = i < m ? tz[i] : x1;
686 }
687
688 // Assign data to bins by value, ignoring any outside the domain.
689 for (i = 0; i < n; ++i) {
690 x = values[i];
691 if (x0 <= x && x <= x1) {
692 bins[Object(_bisect__WEBPACK_IMPORTED_MODULE_1__["default"])(tz, x, 0, m)].push(data[i]);
693 }
694 }
695
696 return bins;
697 }
698
699 histogram.value = function(_) {
700 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(_), histogram) : value;
701 };
702
703 histogram.domain = function(_) {
704 return arguments.length ? (domain = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])([_[0], _[1]]), histogram) : domain;
705 };
706
707 histogram.thresholds = function(_) {
708 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;
709 };
710
711 return histogram;
712});
713
714
715/***/ }),
716
717/***/ "./node_modules/d3-array/src/identity.js":
718/*!***********************************************!*\
719 !*** ./node_modules/d3-array/src/identity.js ***!
720 \***********************************************/
721/*! exports provided: default */
722/***/ (function(module, __webpack_exports__, __webpack_require__) {
723
724"use strict";
725__webpack_require__.r(__webpack_exports__);
726/* harmony default export */ __webpack_exports__["default"] = (function(x) {
727 return x;
728});
729
730
731/***/ }),
732
733/***/ "./node_modules/d3-array/src/max.js":
734/*!******************************************!*\
735 !*** ./node_modules/d3-array/src/max.js ***!
736 \******************************************/
737/*! exports provided: default */
738/***/ (function(module, __webpack_exports__, __webpack_require__) {
739
740"use strict";
741__webpack_require__.r(__webpack_exports__);
742/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
743 var n = values.length,
744 i = -1,
745 value,
746 max;
747
748 if (valueof == null) {
749 while (++i < n) { // Find the first comparable value.
750 if ((value = values[i]) != null && value >= value) {
751 max = value;
752 while (++i < n) { // Compare the remaining values.
753 if ((value = values[i]) != null && value > max) {
754 max = value;
755 }
756 }
757 }
758 }
759 }
760
761 else {
762 while (++i < n) { // Find the first comparable value.
763 if ((value = valueof(values[i], i, values)) != null && value >= value) {
764 max = value;
765 while (++i < n) { // Compare the remaining values.
766 if ((value = valueof(values[i], i, values)) != null && value > max) {
767 max = value;
768 }
769 }
770 }
771 }
772 }
773
774 return max;
775});
776
777
778/***/ }),
779
780/***/ "./node_modules/d3-array/src/mean.js":
781/*!*******************************************!*\
782 !*** ./node_modules/d3-array/src/mean.js ***!
783 \*******************************************/
784/*! exports provided: default */
785/***/ (function(module, __webpack_exports__, __webpack_require__) {
786
787"use strict";
788__webpack_require__.r(__webpack_exports__);
789/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
790
791
792/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
793 var n = values.length,
794 m = n,
795 i = -1,
796 value,
797 sum = 0;
798
799 if (valueof == null) {
800 while (++i < n) {
801 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(values[i]))) sum += value;
802 else --m;
803 }
804 }
805
806 else {
807 while (++i < n) {
808 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(valueof(values[i], i, values)))) sum += value;
809 else --m;
810 }
811 }
812
813 if (m) return sum / m;
814});
815
816
817/***/ }),
818
819/***/ "./node_modules/d3-array/src/median.js":
820/*!*********************************************!*\
821 !*** ./node_modules/d3-array/src/median.js ***!
822 \*********************************************/
823/*! exports provided: default */
824/***/ (function(module, __webpack_exports__, __webpack_require__) {
825
826"use strict";
827__webpack_require__.r(__webpack_exports__);
828/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
829/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
830/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./quantile */ "./node_modules/d3-array/src/quantile.js");
831
832
833
834
835/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
836 var n = values.length,
837 i = -1,
838 value,
839 numbers = [];
840
841 if (valueof == null) {
842 while (++i < n) {
843 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_1__["default"])(values[i]))) {
844 numbers.push(value);
845 }
846 }
847 }
848
849 else {
850 while (++i < n) {
851 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_1__["default"])(valueof(values[i], i, values)))) {
852 numbers.push(value);
853 }
854 }
855 }
856
857 return Object(_quantile__WEBPACK_IMPORTED_MODULE_2__["default"])(numbers.sort(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"]), 0.5);
858});
859
860
861/***/ }),
862
863/***/ "./node_modules/d3-array/src/merge.js":
864/*!********************************************!*\
865 !*** ./node_modules/d3-array/src/merge.js ***!
866 \********************************************/
867/*! exports provided: default */
868/***/ (function(module, __webpack_exports__, __webpack_require__) {
869
870"use strict";
871__webpack_require__.r(__webpack_exports__);
872/* harmony default export */ __webpack_exports__["default"] = (function(arrays) {
873 var n = arrays.length,
874 m,
875 i = -1,
876 j = 0,
877 merged,
878 array;
879
880 while (++i < n) j += arrays[i].length;
881 merged = new Array(j);
882
883 while (--n >= 0) {
884 array = arrays[n];
885 m = array.length;
886 while (--m >= 0) {
887 merged[--j] = array[m];
888 }
889 }
890
891 return merged;
892});
893
894
895/***/ }),
896
897/***/ "./node_modules/d3-array/src/min.js":
898/*!******************************************!*\
899 !*** ./node_modules/d3-array/src/min.js ***!
900 \******************************************/
901/*! exports provided: default */
902/***/ (function(module, __webpack_exports__, __webpack_require__) {
903
904"use strict";
905__webpack_require__.r(__webpack_exports__);
906/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
907 var n = values.length,
908 i = -1,
909 value,
910 min;
911
912 if (valueof == null) {
913 while (++i < n) { // Find the first comparable value.
914 if ((value = values[i]) != null && value >= value) {
915 min = value;
916 while (++i < n) { // Compare the remaining values.
917 if ((value = values[i]) != null && min > value) {
918 min = value;
919 }
920 }
921 }
922 }
923 }
924
925 else {
926 while (++i < n) { // Find the first comparable value.
927 if ((value = valueof(values[i], i, values)) != null && value >= value) {
928 min = value;
929 while (++i < n) { // Compare the remaining values.
930 if ((value = valueof(values[i], i, values)) != null && min > value) {
931 min = value;
932 }
933 }
934 }
935 }
936 }
937
938 return min;
939});
940
941
942/***/ }),
943
944/***/ "./node_modules/d3-array/src/number.js":
945/*!*********************************************!*\
946 !*** ./node_modules/d3-array/src/number.js ***!
947 \*********************************************/
948/*! exports provided: default */
949/***/ (function(module, __webpack_exports__, __webpack_require__) {
950
951"use strict";
952__webpack_require__.r(__webpack_exports__);
953/* harmony default export */ __webpack_exports__["default"] = (function(x) {
954 return x === null ? NaN : +x;
955});
956
957
958/***/ }),
959
960/***/ "./node_modules/d3-array/src/pairs.js":
961/*!********************************************!*\
962 !*** ./node_modules/d3-array/src/pairs.js ***!
963 \********************************************/
964/*! exports provided: default, pair */
965/***/ (function(module, __webpack_exports__, __webpack_require__) {
966
967"use strict";
968__webpack_require__.r(__webpack_exports__);
969/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pair", function() { return pair; });
970/* harmony default export */ __webpack_exports__["default"] = (function(array, f) {
971 if (f == null) f = pair;
972 var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
973 while (i < n) pairs[i] = f(p, p = array[++i]);
974 return pairs;
975});
976
977function pair(a, b) {
978 return [a, b];
979}
980
981
982/***/ }),
983
984/***/ "./node_modules/d3-array/src/permute.js":
985/*!**********************************************!*\
986 !*** ./node_modules/d3-array/src/permute.js ***!
987 \**********************************************/
988/*! exports provided: default */
989/***/ (function(module, __webpack_exports__, __webpack_require__) {
990
991"use strict";
992__webpack_require__.r(__webpack_exports__);
993/* harmony default export */ __webpack_exports__["default"] = (function(array, indexes) {
994 var i = indexes.length, permutes = new Array(i);
995 while (i--) permutes[i] = array[indexes[i]];
996 return permutes;
997});
998
999
1000/***/ }),
1001
1002/***/ "./node_modules/d3-array/src/quantile.js":
1003/*!***********************************************!*\
1004 !*** ./node_modules/d3-array/src/quantile.js ***!
1005 \***********************************************/
1006/*! exports provided: default */
1007/***/ (function(module, __webpack_exports__, __webpack_require__) {
1008
1009"use strict";
1010__webpack_require__.r(__webpack_exports__);
1011/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
1012
1013
1014/* harmony default export */ __webpack_exports__["default"] = (function(values, p, valueof) {
1015 if (valueof == null) valueof = _number__WEBPACK_IMPORTED_MODULE_0__["default"];
1016 if (!(n = values.length)) return;
1017 if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
1018 if (p >= 1) return +valueof(values[n - 1], n - 1, values);
1019 var n,
1020 i = (n - 1) * p,
1021 i0 = Math.floor(i),
1022 value0 = +valueof(values[i0], i0, values),
1023 value1 = +valueof(values[i0 + 1], i0 + 1, values);
1024 return value0 + (value1 - value0) * (i - i0);
1025});
1026
1027
1028/***/ }),
1029
1030/***/ "./node_modules/d3-array/src/range.js":
1031/*!********************************************!*\
1032 !*** ./node_modules/d3-array/src/range.js ***!
1033 \********************************************/
1034/*! exports provided: default */
1035/***/ (function(module, __webpack_exports__, __webpack_require__) {
1036
1037"use strict";
1038__webpack_require__.r(__webpack_exports__);
1039/* harmony default export */ __webpack_exports__["default"] = (function(start, stop, step) {
1040 start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
1041
1042 var i = -1,
1043 n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
1044 range = new Array(n);
1045
1046 while (++i < n) {
1047 range[i] = start + i * step;
1048 }
1049
1050 return range;
1051});
1052
1053
1054/***/ }),
1055
1056/***/ "./node_modules/d3-array/src/scan.js":
1057/*!*******************************************!*\
1058 !*** ./node_modules/d3-array/src/scan.js ***!
1059 \*******************************************/
1060/*! exports provided: default */
1061/***/ (function(module, __webpack_exports__, __webpack_require__) {
1062
1063"use strict";
1064__webpack_require__.r(__webpack_exports__);
1065/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
1066
1067
1068/* harmony default export */ __webpack_exports__["default"] = (function(values, compare) {
1069 if (!(n = values.length)) return;
1070 var n,
1071 i = 0,
1072 j = 0,
1073 xi,
1074 xj = values[j];
1075
1076 if (compare == null) compare = _ascending__WEBPACK_IMPORTED_MODULE_0__["default"];
1077
1078 while (++i < n) {
1079 if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
1080 xj = xi, j = i;
1081 }
1082 }
1083
1084 if (compare(xj, xj) === 0) return j;
1085});
1086
1087
1088/***/ }),
1089
1090/***/ "./node_modules/d3-array/src/shuffle.js":
1091/*!**********************************************!*\
1092 !*** ./node_modules/d3-array/src/shuffle.js ***!
1093 \**********************************************/
1094/*! exports provided: default */
1095/***/ (function(module, __webpack_exports__, __webpack_require__) {
1096
1097"use strict";
1098__webpack_require__.r(__webpack_exports__);
1099/* harmony default export */ __webpack_exports__["default"] = (function(array, i0, i1) {
1100 var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
1101 t,
1102 i;
1103
1104 while (m) {
1105 i = Math.random() * m-- | 0;
1106 t = array[m + i0];
1107 array[m + i0] = array[i + i0];
1108 array[i + i0] = t;
1109 }
1110
1111 return array;
1112});
1113
1114
1115/***/ }),
1116
1117/***/ "./node_modules/d3-array/src/sum.js":
1118/*!******************************************!*\
1119 !*** ./node_modules/d3-array/src/sum.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 default export */ __webpack_exports__["default"] = (function(values, valueof) {
1127 var n = values.length,
1128 i = -1,
1129 value,
1130 sum = 0;
1131
1132 if (valueof == null) {
1133 while (++i < n) {
1134 if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
1135 }
1136 }
1137
1138 else {
1139 while (++i < n) {
1140 if (value = +valueof(values[i], i, values)) sum += value;
1141 }
1142 }
1143
1144 return sum;
1145});
1146
1147
1148/***/ }),
1149
1150/***/ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js":
1151/*!*****************************************************************!*\
1152 !*** ./node_modules/d3-array/src/threshold/freedmanDiaconis.js ***!
1153 \*****************************************************************/
1154/*! exports provided: default */
1155/***/ (function(module, __webpack_exports__, __webpack_require__) {
1156
1157"use strict";
1158__webpack_require__.r(__webpack_exports__);
1159/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array */ "./node_modules/d3-array/src/array.js");
1160/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ascending */ "./node_modules/d3-array/src/ascending.js");
1161/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../number */ "./node_modules/d3-array/src/number.js");
1162/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../quantile */ "./node_modules/d3-array/src/quantile.js");
1163
1164
1165
1166
1167
1168/* harmony default export */ __webpack_exports__["default"] = (function(values, min, max) {
1169 values = _array__WEBPACK_IMPORTED_MODULE_0__["map"].call(values, _number__WEBPACK_IMPORTED_MODULE_2__["default"]).sort(_ascending__WEBPACK_IMPORTED_MODULE_1__["default"]);
1170 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)));
1171});
1172
1173
1174/***/ }),
1175
1176/***/ "./node_modules/d3-array/src/threshold/scott.js":
1177/*!******************************************************!*\
1178 !*** ./node_modules/d3-array/src/threshold/scott.js ***!
1179 \******************************************************/
1180/*! exports provided: default */
1181/***/ (function(module, __webpack_exports__, __webpack_require__) {
1182
1183"use strict";
1184__webpack_require__.r(__webpack_exports__);
1185/* harmony import */ var _deviation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../deviation */ "./node_modules/d3-array/src/deviation.js");
1186
1187
1188/* harmony default export */ __webpack_exports__["default"] = (function(values, min, max) {
1189 return Math.ceil((max - min) / (3.5 * Object(_deviation__WEBPACK_IMPORTED_MODULE_0__["default"])(values) * Math.pow(values.length, -1 / 3)));
1190});
1191
1192
1193/***/ }),
1194
1195/***/ "./node_modules/d3-array/src/threshold/sturges.js":
1196/*!********************************************************!*\
1197 !*** ./node_modules/d3-array/src/threshold/sturges.js ***!
1198 \********************************************************/
1199/*! exports provided: default */
1200/***/ (function(module, __webpack_exports__, __webpack_require__) {
1201
1202"use strict";
1203__webpack_require__.r(__webpack_exports__);
1204/* harmony default export */ __webpack_exports__["default"] = (function(values) {
1205 return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
1206});
1207
1208
1209/***/ }),
1210
1211/***/ "./node_modules/d3-array/src/ticks.js":
1212/*!********************************************!*\
1213 !*** ./node_modules/d3-array/src/ticks.js ***!
1214 \********************************************/
1215/*! exports provided: default, tickIncrement, tickStep */
1216/***/ (function(module, __webpack_exports__, __webpack_require__) {
1217
1218"use strict";
1219__webpack_require__.r(__webpack_exports__);
1220/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return tickIncrement; });
1221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return tickStep; });
1222var e10 = Math.sqrt(50),
1223 e5 = Math.sqrt(10),
1224 e2 = Math.sqrt(2);
1225
1226/* harmony default export */ __webpack_exports__["default"] = (function(start, stop, count) {
1227 var reverse,
1228 i = -1,
1229 n,
1230 ticks,
1231 step;
1232
1233 stop = +stop, start = +start, count = +count;
1234 if (start === stop && count > 0) return [start];
1235 if (reverse = stop < start) n = start, start = stop, stop = n;
1236 if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
1237
1238 if (step > 0) {
1239 start = Math.ceil(start / step);
1240 stop = Math.floor(stop / step);
1241 ticks = new Array(n = Math.ceil(stop - start + 1));
1242 while (++i < n) ticks[i] = (start + i) * step;
1243 } else {
1244 start = Math.floor(start * step);
1245 stop = Math.ceil(stop * step);
1246 ticks = new Array(n = Math.ceil(start - stop + 1));
1247 while (++i < n) ticks[i] = (start - i) / step;
1248 }
1249
1250 if (reverse) ticks.reverse();
1251
1252 return ticks;
1253});
1254
1255function tickIncrement(start, stop, count) {
1256 var step = (stop - start) / Math.max(0, count),
1257 power = Math.floor(Math.log(step) / Math.LN10),
1258 error = step / Math.pow(10, power);
1259 return power >= 0
1260 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
1261 : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
1262}
1263
1264function tickStep(start, stop, count) {
1265 var step0 = Math.abs(stop - start) / Math.max(0, count),
1266 step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
1267 error = step0 / step1;
1268 if (error >= e10) step1 *= 10;
1269 else if (error >= e5) step1 *= 5;
1270 else if (error >= e2) step1 *= 2;
1271 return stop < start ? -step1 : step1;
1272}
1273
1274
1275/***/ }),
1276
1277/***/ "./node_modules/d3-array/src/transpose.js":
1278/*!************************************************!*\
1279 !*** ./node_modules/d3-array/src/transpose.js ***!
1280 \************************************************/
1281/*! exports provided: default */
1282/***/ (function(module, __webpack_exports__, __webpack_require__) {
1283
1284"use strict";
1285__webpack_require__.r(__webpack_exports__);
1286/* harmony import */ var _min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./min */ "./node_modules/d3-array/src/min.js");
1287
1288
1289/* harmony default export */ __webpack_exports__["default"] = (function(matrix) {
1290 if (!(n = matrix.length)) return [];
1291 for (var i = -1, m = Object(_min__WEBPACK_IMPORTED_MODULE_0__["default"])(matrix, length), transpose = new Array(m); ++i < m;) {
1292 for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
1293 row[j] = matrix[j][i];
1294 }
1295 }
1296 return transpose;
1297});
1298
1299function length(d) {
1300 return d.length;
1301}
1302
1303
1304/***/ }),
1305
1306/***/ "./node_modules/d3-array/src/variance.js":
1307/*!***********************************************!*\
1308 !*** ./node_modules/d3-array/src/variance.js ***!
1309 \***********************************************/
1310/*! exports provided: default */
1311/***/ (function(module, __webpack_exports__, __webpack_require__) {
1312
1313"use strict";
1314__webpack_require__.r(__webpack_exports__);
1315/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
1316
1317
1318/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
1319 var n = values.length,
1320 m = 0,
1321 i = -1,
1322 mean = 0,
1323 value,
1324 delta,
1325 sum = 0;
1326
1327 if (valueof == null) {
1328 while (++i < n) {
1329 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(values[i]))) {
1330 delta = value - mean;
1331 mean += delta / ++m;
1332 sum += delta * (value - mean);
1333 }
1334 }
1335 }
1336
1337 else {
1338 while (++i < n) {
1339 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(valueof(values[i], i, values)))) {
1340 delta = value - mean;
1341 mean += delta / ++m;
1342 sum += delta * (value - mean);
1343 }
1344 }
1345 }
1346
1347 if (m > 1) return sum / (m - 1);
1348});
1349
1350
1351/***/ }),
1352
1353/***/ "./node_modules/d3-array/src/zip.js":
1354/*!******************************************!*\
1355 !*** ./node_modules/d3-array/src/zip.js ***!
1356 \******************************************/
1357/*! exports provided: default */
1358/***/ (function(module, __webpack_exports__, __webpack_require__) {
1359
1360"use strict";
1361__webpack_require__.r(__webpack_exports__);
1362/* harmony import */ var _transpose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transpose */ "./node_modules/d3-array/src/transpose.js");
1363
1364
1365/* harmony default export */ __webpack_exports__["default"] = (function() {
1366 return Object(_transpose__WEBPACK_IMPORTED_MODULE_0__["default"])(arguments);
1367});
1368
1369
1370/***/ }),
1371
1372/***/ "./node_modules/d3-axis/index.js":
1373/*!***************************************!*\
1374 !*** ./node_modules/d3-axis/index.js ***!
1375 \***************************************/
1376/*! exports provided: axisTop, axisRight, axisBottom, axisLeft */
1377/***/ (function(module, __webpack_exports__, __webpack_require__) {
1378
1379"use strict";
1380__webpack_require__.r(__webpack_exports__);
1381/* harmony import */ var _src_axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/axis */ "./node_modules/d3-axis/src/axis.js");
1382/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return _src_axis__WEBPACK_IMPORTED_MODULE_0__["axisTop"]; });
1383
1384/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return _src_axis__WEBPACK_IMPORTED_MODULE_0__["axisRight"]; });
1385
1386/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return _src_axis__WEBPACK_IMPORTED_MODULE_0__["axisBottom"]; });
1387
1388/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return _src_axis__WEBPACK_IMPORTED_MODULE_0__["axisLeft"]; });
1389
1390
1391
1392
1393/***/ }),
1394
1395/***/ "./node_modules/d3-axis/src/array.js":
1396/*!*******************************************!*\
1397 !*** ./node_modules/d3-axis/src/array.js ***!
1398 \*******************************************/
1399/*! exports provided: slice */
1400/***/ (function(module, __webpack_exports__, __webpack_require__) {
1401
1402"use strict";
1403__webpack_require__.r(__webpack_exports__);
1404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
1405var slice = Array.prototype.slice;
1406
1407
1408/***/ }),
1409
1410/***/ "./node_modules/d3-axis/src/axis.js":
1411/*!******************************************!*\
1412 !*** ./node_modules/d3-axis/src/axis.js ***!
1413 \******************************************/
1414/*! exports provided: axisTop, axisRight, axisBottom, axisLeft */
1415/***/ (function(module, __webpack_exports__, __webpack_require__) {
1416
1417"use strict";
1418__webpack_require__.r(__webpack_exports__);
1419/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return axisTop; });
1420/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return axisRight; });
1421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return axisBottom; });
1422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return axisLeft; });
1423/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-axis/src/array.js");
1424/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-axis/src/identity.js");
1425
1426
1427
1428var top = 1,
1429 right = 2,
1430 bottom = 3,
1431 left = 4,
1432 epsilon = 1e-6;
1433
1434function translateX(x) {
1435 return "translate(" + (x + 0.5) + ",0)";
1436}
1437
1438function translateY(y) {
1439 return "translate(0," + (y + 0.5) + ")";
1440}
1441
1442function number(scale) {
1443 return function(d) {
1444 return +scale(d);
1445 };
1446}
1447
1448function center(scale) {
1449 var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.
1450 if (scale.round()) offset = Math.round(offset);
1451 return function(d) {
1452 return +scale(d) + offset;
1453 };
1454}
1455
1456function entering() {
1457 return !this.__axis;
1458}
1459
1460function axis(orient, scale) {
1461 var tickArguments = [],
1462 tickValues = null,
1463 tickFormat = null,
1464 tickSizeInner = 6,
1465 tickSizeOuter = 6,
1466 tickPadding = 3,
1467 k = orient === top || orient === left ? -1 : 1,
1468 x = orient === left || orient === right ? "x" : "y",
1469 transform = orient === top || orient === bottom ? translateX : translateY;
1470
1471 function axis(context) {
1472 var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
1473 format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : _identity__WEBPACK_IMPORTED_MODULE_1__["default"]) : tickFormat,
1474 spacing = Math.max(tickSizeInner, 0) + tickPadding,
1475 range = scale.range(),
1476 range0 = +range[0] + 0.5,
1477 range1 = +range[range.length - 1] + 0.5,
1478 position = (scale.bandwidth ? center : number)(scale.copy()),
1479 selection = context.selection ? context.selection() : context,
1480 path = selection.selectAll(".domain").data([null]),
1481 tick = selection.selectAll(".tick").data(values, scale).order(),
1482 tickExit = tick.exit(),
1483 tickEnter = tick.enter().append("g").attr("class", "tick"),
1484 line = tick.select("line"),
1485 text = tick.select("text");
1486
1487 path = path.merge(path.enter().insert("path", ".tick")
1488 .attr("class", "domain")
1489 .attr("stroke", "#000"));
1490
1491 tick = tick.merge(tickEnter);
1492
1493 line = line.merge(tickEnter.append("line")
1494 .attr("stroke", "#000")
1495 .attr(x + "2", k * tickSizeInner));
1496
1497 text = text.merge(tickEnter.append("text")
1498 .attr("fill", "#000")
1499 .attr(x, k * spacing)
1500 .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
1501
1502 if (context !== selection) {
1503 path = path.transition(context);
1504 tick = tick.transition(context);
1505 line = line.transition(context);
1506 text = text.transition(context);
1507
1508 tickExit = tickExit.transition(context)
1509 .attr("opacity", epsilon)
1510 .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute("transform"); });
1511
1512 tickEnter
1513 .attr("opacity", epsilon)
1514 .attr("transform", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });
1515 }
1516
1517 tickExit.remove();
1518
1519 path
1520 .attr("d", orient === left || orient == right
1521 ? "M" + k * tickSizeOuter + "," + range0 + "H0.5V" + range1 + "H" + k * tickSizeOuter
1522 : "M" + range0 + "," + k * tickSizeOuter + "V0.5H" + range1 + "V" + k * tickSizeOuter);
1523
1524 tick
1525 .attr("opacity", 1)
1526 .attr("transform", function(d) { return transform(position(d)); });
1527
1528 line
1529 .attr(x + "2", k * tickSizeInner);
1530
1531 text
1532 .attr(x, k * spacing)
1533 .text(format);
1534
1535 selection.filter(entering)
1536 .attr("fill", "none")
1537 .attr("font-size", 10)
1538 .attr("font-family", "sans-serif")
1539 .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
1540
1541 selection
1542 .each(function() { this.__axis = position; });
1543 }
1544
1545 axis.scale = function(_) {
1546 return arguments.length ? (scale = _, axis) : scale;
1547 };
1548
1549 axis.ticks = function() {
1550 return tickArguments = _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(arguments), axis;
1551 };
1552
1553 axis.tickArguments = function(_) {
1554 return arguments.length ? (tickArguments = _ == null ? [] : _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_), axis) : tickArguments.slice();
1555 };
1556
1557 axis.tickValues = function(_) {
1558 return arguments.length ? (tickValues = _ == null ? null : _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_), axis) : tickValues && tickValues.slice();
1559 };
1560
1561 axis.tickFormat = function(_) {
1562 return arguments.length ? (tickFormat = _, axis) : tickFormat;
1563 };
1564
1565 axis.tickSize = function(_) {
1566 return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
1567 };
1568
1569 axis.tickSizeInner = function(_) {
1570 return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
1571 };
1572
1573 axis.tickSizeOuter = function(_) {
1574 return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
1575 };
1576
1577 axis.tickPadding = function(_) {
1578 return arguments.length ? (tickPadding = +_, axis) : tickPadding;
1579 };
1580
1581 return axis;
1582}
1583
1584function axisTop(scale) {
1585 return axis(top, scale);
1586}
1587
1588function axisRight(scale) {
1589 return axis(right, scale);
1590}
1591
1592function axisBottom(scale) {
1593 return axis(bottom, scale);
1594}
1595
1596function axisLeft(scale) {
1597 return axis(left, scale);
1598}
1599
1600
1601/***/ }),
1602
1603/***/ "./node_modules/d3-axis/src/identity.js":
1604/*!**********************************************!*\
1605 !*** ./node_modules/d3-axis/src/identity.js ***!
1606 \**********************************************/
1607/*! exports provided: default */
1608/***/ (function(module, __webpack_exports__, __webpack_require__) {
1609
1610"use strict";
1611__webpack_require__.r(__webpack_exports__);
1612/* harmony default export */ __webpack_exports__["default"] = (function(x) {
1613 return x;
1614});
1615
1616
1617/***/ }),
1618
1619/***/ "./node_modules/d3-brush/index.js":
1620/*!****************************************!*\
1621 !*** ./node_modules/d3-brush/index.js ***!
1622 \****************************************/
1623/*! exports provided: brush, brushX, brushY, brushSelection */
1624/***/ (function(module, __webpack_exports__, __webpack_require__) {
1625
1626"use strict";
1627__webpack_require__.r(__webpack_exports__);
1628/* harmony import */ var _src_brush__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/brush */ "./node_modules/d3-brush/src/brush.js");
1629/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brush", function() { return _src_brush__WEBPACK_IMPORTED_MODULE_0__["default"]; });
1630
1631/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return _src_brush__WEBPACK_IMPORTED_MODULE_0__["brushX"]; });
1632
1633/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return _src_brush__WEBPACK_IMPORTED_MODULE_0__["brushY"]; });
1634
1635/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return _src_brush__WEBPACK_IMPORTED_MODULE_0__["brushSelection"]; });
1636
1637
1638
1639
1640/***/ }),
1641
1642/***/ "./node_modules/d3-brush/src/brush.js":
1643/*!********************************************!*\
1644 !*** ./node_modules/d3-brush/src/brush.js ***!
1645 \********************************************/
1646/*! exports provided: brushSelection, brushX, brushY, default */
1647/***/ (function(module, __webpack_exports__, __webpack_require__) {
1648
1649"use strict";
1650__webpack_require__.r(__webpack_exports__);
1651/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return brushSelection; });
1652/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return brushX; });
1653/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return brushY; });
1654/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/index.js");
1655/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/index.js");
1656/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
1657/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
1658/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/index.js");
1659/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-brush/src/constant.js");
1660/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./event */ "./node_modules/d3-brush/src/event.js");
1661/* harmony import */ var _noevent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./noevent */ "./node_modules/d3-brush/src/noevent.js");
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671var MODE_DRAG = {name: "drag"},
1672 MODE_SPACE = {name: "space"},
1673 MODE_HANDLE = {name: "handle"},
1674 MODE_CENTER = {name: "center"};
1675
1676var X = {
1677 name: "x",
1678 handles: ["e", "w"].map(type),
1679 input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; },
1680 output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
1681};
1682
1683var Y = {
1684 name: "y",
1685 handles: ["n", "s"].map(type),
1686 input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; },
1687 output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
1688};
1689
1690var XY = {
1691 name: "xy",
1692 handles: ["n", "e", "s", "w", "nw", "ne", "se", "sw"].map(type),
1693 input: function(xy) { return xy; },
1694 output: function(xy) { return xy; }
1695};
1696
1697var cursors = {
1698 overlay: "crosshair",
1699 selection: "move",
1700 n: "ns-resize",
1701 e: "ew-resize",
1702 s: "ns-resize",
1703 w: "ew-resize",
1704 nw: "nwse-resize",
1705 ne: "nesw-resize",
1706 se: "nwse-resize",
1707 sw: "nesw-resize"
1708};
1709
1710var flipX = {
1711 e: "w",
1712 w: "e",
1713 nw: "ne",
1714 ne: "nw",
1715 se: "sw",
1716 sw: "se"
1717};
1718
1719var flipY = {
1720 n: "s",
1721 s: "n",
1722 nw: "sw",
1723 ne: "se",
1724 se: "ne",
1725 sw: "nw"
1726};
1727
1728var signsX = {
1729 overlay: +1,
1730 selection: +1,
1731 n: null,
1732 e: +1,
1733 s: null,
1734 w: -1,
1735 nw: -1,
1736 ne: +1,
1737 se: +1,
1738 sw: -1
1739};
1740
1741var signsY = {
1742 overlay: +1,
1743 selection: +1,
1744 n: -1,
1745 e: null,
1746 s: +1,
1747 w: null,
1748 nw: -1,
1749 ne: -1,
1750 se: +1,
1751 sw: +1
1752};
1753
1754function type(t) {
1755 return {type: t};
1756}
1757
1758// Ignore right-click, since that should open the context menu.
1759function defaultFilter() {
1760 return !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].button;
1761}
1762
1763function defaultExtent() {
1764 var svg = this.ownerSVGElement || this;
1765 return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
1766}
1767
1768// Like d3.local, but with the name “__brush” rather than auto-generated.
1769function local(node) {
1770 while (!node.__brush) if (!(node = node.parentNode)) return;
1771 return node.__brush;
1772}
1773
1774function empty(extent) {
1775 return extent[0][0] === extent[1][0]
1776 || extent[0][1] === extent[1][1];
1777}
1778
1779function brushSelection(node) {
1780 var state = node.__brush;
1781 return state ? state.dim.output(state.selection) : null;
1782}
1783
1784function brushX() {
1785 return brush(X);
1786}
1787
1788function brushY() {
1789 return brush(Y);
1790}
1791
1792/* harmony default export */ __webpack_exports__["default"] = (function() {
1793 return brush(XY);
1794});
1795
1796function brush(dim) {
1797 var extent = defaultExtent,
1798 filter = defaultFilter,
1799 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])(brush, "start", "brush", "end"),
1800 handleSize = 6,
1801 touchending;
1802
1803 function brush(group) {
1804 var overlay = group
1805 .property("__brush", initialize)
1806 .selectAll(".overlay")
1807 .data([type("overlay")]);
1808
1809 overlay.enter().append("rect")
1810 .attr("class", "overlay")
1811 .attr("pointer-events", "all")
1812 .attr("cursor", cursors.overlay)
1813 .merge(overlay)
1814 .each(function() {
1815 var extent = local(this).extent;
1816 Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this)
1817 .attr("x", extent[0][0])
1818 .attr("y", extent[0][1])
1819 .attr("width", extent[1][0] - extent[0][0])
1820 .attr("height", extent[1][1] - extent[0][1]);
1821 });
1822
1823 group.selectAll(".selection")
1824 .data([type("selection")])
1825 .enter().append("rect")
1826 .attr("class", "selection")
1827 .attr("cursor", cursors.selection)
1828 .attr("fill", "#777")
1829 .attr("fill-opacity", 0.3)
1830 .attr("stroke", "#fff")
1831 .attr("shape-rendering", "crispEdges");
1832
1833 var handle = group.selectAll(".handle")
1834 .data(dim.handles, function(d) { return d.type; });
1835
1836 handle.exit().remove();
1837
1838 handle.enter().append("rect")
1839 .attr("class", function(d) { return "handle handle--" + d.type; })
1840 .attr("cursor", function(d) { return cursors[d.type]; });
1841
1842 group
1843 .each(redraw)
1844 .attr("fill", "none")
1845 .attr("pointer-events", "all")
1846 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)")
1847 .on("mousedown.brush touchstart.brush", started);
1848 }
1849
1850 brush.move = function(group, selection) {
1851 if (group.selection) {
1852 group
1853 .on("start.brush", function() { emitter(this, arguments).beforestart().start(); })
1854 .on("interrupt.brush end.brush", function() { emitter(this, arguments).end(); })
1855 .tween("brush", function() {
1856 var that = this,
1857 state = that.__brush,
1858 emit = emitter(that, arguments),
1859 selection0 = state.selection,
1860 selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
1861 i = Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["interpolate"])(selection0, selection1);
1862
1863 function tween(t) {
1864 state.selection = t === 1 && empty(selection1) ? null : i(t);
1865 redraw.call(that);
1866 emit.brush();
1867 }
1868
1869 return selection0 && selection1 ? tween : tween(1);
1870 });
1871 } else {
1872 group
1873 .each(function() {
1874 var that = this,
1875 args = arguments,
1876 state = that.__brush,
1877 selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
1878 emit = emitter(that, args).beforestart();
1879
1880 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(that);
1881 state.selection = selection1 == null || empty(selection1) ? null : selection1;
1882 redraw.call(that);
1883 emit.start().brush().end();
1884 });
1885 }
1886 };
1887
1888 function redraw() {
1889 var group = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this),
1890 selection = local(this).selection;
1891
1892 if (selection) {
1893 group.selectAll(".selection")
1894 .style("display", null)
1895 .attr("x", selection[0][0])
1896 .attr("y", selection[0][1])
1897 .attr("width", selection[1][0] - selection[0][0])
1898 .attr("height", selection[1][1] - selection[0][1]);
1899
1900 group.selectAll(".handle")
1901 .style("display", null)
1902 .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
1903 .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
1904 .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
1905 .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
1906 }
1907
1908 else {
1909 group.selectAll(".selection,.handle")
1910 .style("display", "none")
1911 .attr("x", null)
1912 .attr("y", null)
1913 .attr("width", null)
1914 .attr("height", null);
1915 }
1916 }
1917
1918 function emitter(that, args) {
1919 return that.__brush.emitter || new Emitter(that, args);
1920 }
1921
1922 function Emitter(that, args) {
1923 this.that = that;
1924 this.args = args;
1925 this.state = that.__brush;
1926 this.active = 0;
1927 }
1928
1929 Emitter.prototype = {
1930 beforestart: function() {
1931 if (++this.active === 1) this.state.emitter = this, this.starting = true;
1932 return this;
1933 },
1934 start: function() {
1935 if (this.starting) this.starting = false, this.emit("start");
1936 return this;
1937 },
1938 brush: function() {
1939 this.emit("brush");
1940 return this;
1941 },
1942 end: function() {
1943 if (--this.active === 0) delete this.state.emitter, this.emit("end");
1944 return this;
1945 },
1946 emit: function(type) {
1947 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]);
1948 }
1949 };
1950
1951 function started() {
1952 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"])(); }
1953 else if (touchending) return;
1954 if (!filter.apply(this, arguments)) return;
1955
1956 var that = this,
1957 type = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].target.__data__.type,
1958 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),
1959 signX = dim === Y ? null : signsX[type],
1960 signY = dim === X ? null : signsY[type],
1961 state = local(that),
1962 extent = state.extent,
1963 selection = state.selection,
1964 W = extent[0][0], w0, w1,
1965 N = extent[0][1], n0, n1,
1966 E = extent[1][0], e0, e1,
1967 S = extent[1][1], s0, s1,
1968 dx,
1969 dy,
1970 moving,
1971 shifting = signX && signY && d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].shiftKey,
1972 lockX,
1973 lockY,
1974 point0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(that),
1975 point = point0,
1976 emit = emitter(that, arguments).beforestart();
1977
1978 if (type === "overlay") {
1979 state.selection = selection = [
1980 [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],
1981 [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]
1982 ];
1983 } else {
1984 w0 = selection[0][0];
1985 n0 = selection[0][1];
1986 e0 = selection[1][0];
1987 s0 = selection[1][1];
1988 }
1989
1990 w1 = w0;
1991 n1 = n0;
1992 e1 = e0;
1993 s1 = s0;
1994
1995 var group = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(that)
1996 .attr("pointer-events", "none");
1997
1998 var overlay = group.selectAll(".overlay")
1999 .attr("cursor", cursors[type]);
2000
2001 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches) {
2002 group
2003 .on("touchmove.brush", moved, true)
2004 .on("touchend.brush touchcancel.brush", ended, true);
2005 } else {
2006 var view = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view)
2007 .on("keydown.brush", keydowned, true)
2008 .on("keyup.brush", keyupped, true)
2009 .on("mousemove.brush", moved, true)
2010 .on("mouseup.brush", ended, true);
2011
2012 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragDisable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view);
2013 }
2014
2015 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["nopropagation"])();
2016 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(that);
2017 redraw.call(that);
2018 emit.start();
2019
2020 function moved() {
2021 var point1 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(that);
2022 if (shifting && !lockX && !lockY) {
2023 if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;
2024 else lockX = true;
2025 }
2026 point = point1;
2027 moving = true;
2028 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["default"])();
2029 move();
2030 }
2031
2032 function move() {
2033 var t;
2034
2035 dx = point[0] - point0[0];
2036 dy = point[1] - point0[1];
2037
2038 switch (mode) {
2039 case MODE_SPACE:
2040 case MODE_DRAG: {
2041 if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
2042 if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
2043 break;
2044 }
2045 case MODE_HANDLE: {
2046 if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;
2047 else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;
2048 if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;
2049 else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;
2050 break;
2051 }
2052 case MODE_CENTER: {
2053 if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));
2054 if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));
2055 break;
2056 }
2057 }
2058
2059 if (e1 < w1) {
2060 signX *= -1;
2061 t = w0, w0 = e0, e0 = t;
2062 t = w1, w1 = e1, e1 = t;
2063 if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
2064 }
2065
2066 if (s1 < n1) {
2067 signY *= -1;
2068 t = n0, n0 = s0, s0 = t;
2069 t = n1, n1 = s1, s1 = t;
2070 if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
2071 }
2072
2073 if (state.selection) selection = state.selection; // May be set by brush.move!
2074 if (lockX) w1 = selection[0][0], e1 = selection[1][0];
2075 if (lockY) n1 = selection[0][1], s1 = selection[1][1];
2076
2077 if (selection[0][0] !== w1
2078 || selection[0][1] !== n1
2079 || selection[1][0] !== e1
2080 || selection[1][1] !== s1) {
2081 state.selection = [[w1, n1], [e1, s1]];
2082 redraw.call(that);
2083 emit.brush();
2084 }
2085 }
2086
2087 function ended() {
2088 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["nopropagation"])();
2089 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches) {
2090 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches.length) return;
2091 if (touchending) clearTimeout(touchending);
2092 touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
2093 group.on("touchmove.brush touchend.brush touchcancel.brush", null);
2094 } else {
2095 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragEnable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view, moving);
2096 view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
2097 }
2098 group.attr("pointer-events", "all");
2099 overlay.attr("cursor", cursors.overlay);
2100 if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
2101 if (empty(selection)) state.selection = null, redraw.call(that);
2102 emit.end();
2103 }
2104
2105 function keydowned() {
2106 switch (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].keyCode) {
2107 case 16: { // SHIFT
2108 shifting = signX && signY;
2109 break;
2110 }
2111 case 18: { // ALT
2112 if (mode === MODE_HANDLE) {
2113 if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
2114 if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
2115 mode = MODE_CENTER;
2116 move();
2117 }
2118 break;
2119 }
2120 case 32: { // SPACE; takes priority over ALT
2121 if (mode === MODE_HANDLE || mode === MODE_CENTER) {
2122 if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
2123 if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
2124 mode = MODE_SPACE;
2125 overlay.attr("cursor", cursors.selection);
2126 move();
2127 }
2128 break;
2129 }
2130 default: return;
2131 }
2132 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["default"])();
2133 }
2134
2135 function keyupped() {
2136 switch (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].keyCode) {
2137 case 16: { // SHIFT
2138 if (shifting) {
2139 lockX = lockY = shifting = false;
2140 move();
2141 }
2142 break;
2143 }
2144 case 18: { // ALT
2145 if (mode === MODE_CENTER) {
2146 if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
2147 if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
2148 mode = MODE_HANDLE;
2149 move();
2150 }
2151 break;
2152 }
2153 case 32: { // SPACE
2154 if (mode === MODE_SPACE) {
2155 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].altKey) {
2156 if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
2157 if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
2158 mode = MODE_CENTER;
2159 } else {
2160 if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
2161 if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
2162 mode = MODE_HANDLE;
2163 }
2164 overlay.attr("cursor", cursors[type]);
2165 move();
2166 }
2167 break;
2168 }
2169 default: return;
2170 }
2171 Object(_noevent__WEBPACK_IMPORTED_MODULE_7__["default"])();
2172 }
2173 }
2174
2175 function initialize() {
2176 var state = this.__brush || {selection: null};
2177 state.extent = extent.apply(this, arguments);
2178 state.dim = dim;
2179 return state;
2180 }
2181
2182 brush.extent = function(_) {
2183 return arguments.length ? (extent = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;
2184 };
2185
2186 brush.filter = function(_) {
2187 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), brush) : filter;
2188 };
2189
2190 brush.handleSize = function(_) {
2191 return arguments.length ? (handleSize = +_, brush) : handleSize;
2192 };
2193
2194 brush.on = function() {
2195 var value = listeners.on.apply(listeners, arguments);
2196 return value === listeners ? brush : value;
2197 };
2198
2199 return brush;
2200}
2201
2202
2203/***/ }),
2204
2205/***/ "./node_modules/d3-brush/src/constant.js":
2206/*!***********************************************!*\
2207 !*** ./node_modules/d3-brush/src/constant.js ***!
2208 \***********************************************/
2209/*! exports provided: default */
2210/***/ (function(module, __webpack_exports__, __webpack_require__) {
2211
2212"use strict";
2213__webpack_require__.r(__webpack_exports__);
2214/* harmony default export */ __webpack_exports__["default"] = (function(x) {
2215 return function() {
2216 return x;
2217 };
2218});
2219
2220
2221/***/ }),
2222
2223/***/ "./node_modules/d3-brush/src/event.js":
2224/*!********************************************!*\
2225 !*** ./node_modules/d3-brush/src/event.js ***!
2226 \********************************************/
2227/*! exports provided: default */
2228/***/ (function(module, __webpack_exports__, __webpack_require__) {
2229
2230"use strict";
2231__webpack_require__.r(__webpack_exports__);
2232/* harmony default export */ __webpack_exports__["default"] = (function(target, type, selection) {
2233 this.target = target;
2234 this.type = type;
2235 this.selection = selection;
2236});
2237
2238
2239/***/ }),
2240
2241/***/ "./node_modules/d3-brush/src/noevent.js":
2242/*!**********************************************!*\
2243 !*** ./node_modules/d3-brush/src/noevent.js ***!
2244 \**********************************************/
2245/*! exports provided: nopropagation, default */
2246/***/ (function(module, __webpack_exports__, __webpack_require__) {
2247
2248"use strict";
2249__webpack_require__.r(__webpack_exports__);
2250/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
2251/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
2252
2253
2254function nopropagation() {
2255 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
2256}
2257
2258/* harmony default export */ __webpack_exports__["default"] = (function() {
2259 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
2260 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
2261});
2262
2263
2264/***/ }),
2265
2266/***/ "./node_modules/d3-chord/index.js":
2267/*!****************************************!*\
2268 !*** ./node_modules/d3-chord/index.js ***!
2269 \****************************************/
2270/*! exports provided: chord, ribbon */
2271/***/ (function(module, __webpack_exports__, __webpack_require__) {
2272
2273"use strict";
2274__webpack_require__.r(__webpack_exports__);
2275/* harmony import */ var _src_chord__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/chord */ "./node_modules/d3-chord/src/chord.js");
2276/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chord", function() { return _src_chord__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2277
2278/* harmony import */ var _src_ribbon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/ribbon */ "./node_modules/d3-chord/src/ribbon.js");
2279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ribbon", function() { return _src_ribbon__WEBPACK_IMPORTED_MODULE_1__["default"]; });
2280
2281
2282
2283
2284
2285/***/ }),
2286
2287/***/ "./node_modules/d3-chord/src/array.js":
2288/*!********************************************!*\
2289 !*** ./node_modules/d3-chord/src/array.js ***!
2290 \********************************************/
2291/*! exports provided: slice */
2292/***/ (function(module, __webpack_exports__, __webpack_require__) {
2293
2294"use strict";
2295__webpack_require__.r(__webpack_exports__);
2296/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
2297var slice = Array.prototype.slice;
2298
2299
2300/***/ }),
2301
2302/***/ "./node_modules/d3-chord/src/chord.js":
2303/*!********************************************!*\
2304 !*** ./node_modules/d3-chord/src/chord.js ***!
2305 \********************************************/
2306/*! exports provided: default */
2307/***/ (function(module, __webpack_exports__, __webpack_require__) {
2308
2309"use strict";
2310__webpack_require__.r(__webpack_exports__);
2311/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
2312/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-chord/src/math.js");
2313
2314
2315
2316function compareValue(compare) {
2317 return function(a, b) {
2318 return compare(
2319 a.source.value + a.target.value,
2320 b.source.value + b.target.value
2321 );
2322 };
2323}
2324
2325/* harmony default export */ __webpack_exports__["default"] = (function() {
2326 var padAngle = 0,
2327 sortGroups = null,
2328 sortSubgroups = null,
2329 sortChords = null;
2330
2331 function chord(matrix) {
2332 var n = matrix.length,
2333 groupSums = [],
2334 groupIndex = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n),
2335 subgroupIndex = [],
2336 chords = [],
2337 groups = chords.groups = new Array(n),
2338 subgroups = new Array(n * n),
2339 k,
2340 x,
2341 x0,
2342 dx,
2343 i,
2344 j;
2345
2346 // Compute the sum.
2347 k = 0, i = -1; while (++i < n) {
2348 x = 0, j = -1; while (++j < n) {
2349 x += matrix[i][j];
2350 }
2351 groupSums.push(x);
2352 subgroupIndex.push(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n));
2353 k += x;
2354 }
2355
2356 // Sort groups…
2357 if (sortGroups) groupIndex.sort(function(a, b) {
2358 return sortGroups(groupSums[a], groupSums[b]);
2359 });
2360
2361 // Sort subgroups…
2362 if (sortSubgroups) subgroupIndex.forEach(function(d, i) {
2363 d.sort(function(a, b) {
2364 return sortSubgroups(matrix[i][a], matrix[i][b]);
2365 });
2366 });
2367
2368 // Convert the sum to scaling factor for [0, 2pi].
2369 // TODO Allow start and end angle to be specified?
2370 // TODO Allow padding to be specified as percentage?
2371 k = Object(_math__WEBPACK_IMPORTED_MODULE_1__["max"])(0, _math__WEBPACK_IMPORTED_MODULE_1__["tau"] - padAngle * n) / k;
2372 dx = k ? padAngle : _math__WEBPACK_IMPORTED_MODULE_1__["tau"] / n;
2373
2374 // Compute the start and end angle for each group and subgroup.
2375 // Note: Opera has a bug reordering object literal properties!
2376 x = 0, i = -1; while (++i < n) {
2377 x0 = x, j = -1; while (++j < n) {
2378 var di = groupIndex[i],
2379 dj = subgroupIndex[di][j],
2380 v = matrix[di][dj],
2381 a0 = x,
2382 a1 = x += v * k;
2383 subgroups[dj * n + di] = {
2384 index: di,
2385 subindex: dj,
2386 startAngle: a0,
2387 endAngle: a1,
2388 value: v
2389 };
2390 }
2391 groups[di] = {
2392 index: di,
2393 startAngle: x0,
2394 endAngle: x,
2395 value: groupSums[di]
2396 };
2397 x += dx;
2398 }
2399
2400 // Generate chords for each (non-empty) subgroup-subgroup link.
2401 i = -1; while (++i < n) {
2402 j = i - 1; while (++j < n) {
2403 var source = subgroups[j * n + i],
2404 target = subgroups[i * n + j];
2405 if (source.value || target.value) {
2406 chords.push(source.value < target.value
2407 ? {source: target, target: source}
2408 : {source: source, target: target});
2409 }
2410 }
2411 }
2412
2413 return sortChords ? chords.sort(sortChords) : chords;
2414 }
2415
2416 chord.padAngle = function(_) {
2417 return arguments.length ? (padAngle = Object(_math__WEBPACK_IMPORTED_MODULE_1__["max"])(0, _), chord) : padAngle;
2418 };
2419
2420 chord.sortGroups = function(_) {
2421 return arguments.length ? (sortGroups = _, chord) : sortGroups;
2422 };
2423
2424 chord.sortSubgroups = function(_) {
2425 return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
2426 };
2427
2428 chord.sortChords = function(_) {
2429 return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
2430 };
2431
2432 return chord;
2433});
2434
2435
2436/***/ }),
2437
2438/***/ "./node_modules/d3-chord/src/constant.js":
2439/*!***********************************************!*\
2440 !*** ./node_modules/d3-chord/src/constant.js ***!
2441 \***********************************************/
2442/*! exports provided: default */
2443/***/ (function(module, __webpack_exports__, __webpack_require__) {
2444
2445"use strict";
2446__webpack_require__.r(__webpack_exports__);
2447/* harmony default export */ __webpack_exports__["default"] = (function(x) {
2448 return function() {
2449 return x;
2450 };
2451});
2452
2453
2454/***/ }),
2455
2456/***/ "./node_modules/d3-chord/src/math.js":
2457/*!*******************************************!*\
2458 !*** ./node_modules/d3-chord/src/math.js ***!
2459 \*******************************************/
2460/*! exports provided: cos, sin, pi, halfPi, tau, max */
2461/***/ (function(module, __webpack_exports__, __webpack_require__) {
2462
2463"use strict";
2464__webpack_require__.r(__webpack_exports__);
2465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
2466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
2467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
2468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
2469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
2470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; });
2471var cos = Math.cos;
2472var sin = Math.sin;
2473var pi = Math.PI;
2474var halfPi = pi / 2;
2475var tau = pi * 2;
2476var max = Math.max;
2477
2478
2479/***/ }),
2480
2481/***/ "./node_modules/d3-chord/src/ribbon.js":
2482/*!*********************************************!*\
2483 !*** ./node_modules/d3-chord/src/ribbon.js ***!
2484 \*********************************************/
2485/*! exports provided: default */
2486/***/ (function(module, __webpack_exports__, __webpack_require__) {
2487
2488"use strict";
2489__webpack_require__.r(__webpack_exports__);
2490/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-chord/src/array.js");
2491/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-chord/src/constant.js");
2492/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-chord/src/math.js");
2493/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/index.js");
2494
2495
2496
2497
2498
2499function defaultSource(d) {
2500 return d.source;
2501}
2502
2503function defaultTarget(d) {
2504 return d.target;
2505}
2506
2507function defaultRadius(d) {
2508 return d.radius;
2509}
2510
2511function defaultStartAngle(d) {
2512 return d.startAngle;
2513}
2514
2515function defaultEndAngle(d) {
2516 return d.endAngle;
2517}
2518
2519/* harmony default export */ __webpack_exports__["default"] = (function() {
2520 var source = defaultSource,
2521 target = defaultTarget,
2522 radius = defaultRadius,
2523 startAngle = defaultStartAngle,
2524 endAngle = defaultEndAngle,
2525 context = null;
2526
2527 function ribbon() {
2528 var buffer,
2529 argv = _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(arguments),
2530 s = source.apply(this, argv),
2531 t = target.apply(this, argv),
2532 sr = +radius.apply(this, (argv[0] = s, argv)),
2533 sa0 = startAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2534 sa1 = endAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2535 sx0 = sr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(sa0),
2536 sy0 = sr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(sa0),
2537 tr = +radius.apply(this, (argv[0] = t, argv)),
2538 ta0 = startAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2539 ta1 = endAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"];
2540
2541 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_3__["path"])();
2542
2543 context.moveTo(sx0, sy0);
2544 context.arc(0, 0, sr, sa0, sa1);
2545 if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?
2546 context.quadraticCurveTo(0, 0, tr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(ta0), tr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(ta0));
2547 context.arc(0, 0, tr, ta0, ta1);
2548 }
2549 context.quadraticCurveTo(0, 0, sx0, sy0);
2550 context.closePath();
2551
2552 if (buffer) return context = null, buffer + "" || null;
2553 }
2554
2555 ribbon.radius = function(_) {
2556 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : radius;
2557 };
2558
2559 ribbon.startAngle = function(_) {
2560 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : startAngle;
2561 };
2562
2563 ribbon.endAngle = function(_) {
2564 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : endAngle;
2565 };
2566
2567 ribbon.source = function(_) {
2568 return arguments.length ? (source = _, ribbon) : source;
2569 };
2570
2571 ribbon.target = function(_) {
2572 return arguments.length ? (target = _, ribbon) : target;
2573 };
2574
2575 ribbon.context = function(_) {
2576 return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
2577 };
2578
2579 return ribbon;
2580});
2581
2582
2583/***/ }),
2584
2585/***/ "./node_modules/d3-collection/index.js":
2586/*!*********************************************!*\
2587 !*** ./node_modules/d3-collection/index.js ***!
2588 \*********************************************/
2589/*! exports provided: nest, set, map, keys, values, entries */
2590/***/ (function(module, __webpack_exports__, __webpack_require__) {
2591
2592"use strict";
2593__webpack_require__.r(__webpack_exports__);
2594/* harmony import */ var _src_nest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/nest */ "./node_modules/d3-collection/src/nest.js");
2595/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nest", function() { return _src_nest__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2596
2597/* harmony import */ var _src_set__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/set */ "./node_modules/d3-collection/src/set.js");
2598/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "set", function() { return _src_set__WEBPACK_IMPORTED_MODULE_1__["default"]; });
2599
2600/* harmony import */ var _src_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/map */ "./node_modules/d3-collection/src/map.js");
2601/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _src_map__WEBPACK_IMPORTED_MODULE_2__["default"]; });
2602
2603/* harmony import */ var _src_keys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/keys */ "./node_modules/d3-collection/src/keys.js");
2604/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return _src_keys__WEBPACK_IMPORTED_MODULE_3__["default"]; });
2605
2606/* harmony import */ var _src_values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/values */ "./node_modules/d3-collection/src/values.js");
2607/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return _src_values__WEBPACK_IMPORTED_MODULE_4__["default"]; });
2608
2609/* harmony import */ var _src_entries__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/entries */ "./node_modules/d3-collection/src/entries.js");
2610/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "entries", function() { return _src_entries__WEBPACK_IMPORTED_MODULE_5__["default"]; });
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620/***/ }),
2621
2622/***/ "./node_modules/d3-collection/src/entries.js":
2623/*!***************************************************!*\
2624 !*** ./node_modules/d3-collection/src/entries.js ***!
2625 \***************************************************/
2626/*! exports provided: default */
2627/***/ (function(module, __webpack_exports__, __webpack_require__) {
2628
2629"use strict";
2630__webpack_require__.r(__webpack_exports__);
2631/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2632 var entries = [];
2633 for (var key in map) entries.push({key: key, value: map[key]});
2634 return entries;
2635});
2636
2637
2638/***/ }),
2639
2640/***/ "./node_modules/d3-collection/src/keys.js":
2641/*!************************************************!*\
2642 !*** ./node_modules/d3-collection/src/keys.js ***!
2643 \************************************************/
2644/*! exports provided: default */
2645/***/ (function(module, __webpack_exports__, __webpack_require__) {
2646
2647"use strict";
2648__webpack_require__.r(__webpack_exports__);
2649/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2650 var keys = [];
2651 for (var key in map) keys.push(key);
2652 return keys;
2653});
2654
2655
2656/***/ }),
2657
2658/***/ "./node_modules/d3-collection/src/map.js":
2659/*!***********************************************!*\
2660 !*** ./node_modules/d3-collection/src/map.js ***!
2661 \***********************************************/
2662/*! exports provided: prefix, default */
2663/***/ (function(module, __webpack_exports__, __webpack_require__) {
2664
2665"use strict";
2666__webpack_require__.r(__webpack_exports__);
2667/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefix", function() { return prefix; });
2668var prefix = "$";
2669
2670function Map() {}
2671
2672Map.prototype = map.prototype = {
2673 constructor: Map,
2674 has: function(key) {
2675 return (prefix + key) in this;
2676 },
2677 get: function(key) {
2678 return this[prefix + key];
2679 },
2680 set: function(key, value) {
2681 this[prefix + key] = value;
2682 return this;
2683 },
2684 remove: function(key) {
2685 var property = prefix + key;
2686 return property in this && delete this[property];
2687 },
2688 clear: function() {
2689 for (var property in this) if (property[0] === prefix) delete this[property];
2690 },
2691 keys: function() {
2692 var keys = [];
2693 for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));
2694 return keys;
2695 },
2696 values: function() {
2697 var values = [];
2698 for (var property in this) if (property[0] === prefix) values.push(this[property]);
2699 return values;
2700 },
2701 entries: function() {
2702 var entries = [];
2703 for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});
2704 return entries;
2705 },
2706 size: function() {
2707 var size = 0;
2708 for (var property in this) if (property[0] === prefix) ++size;
2709 return size;
2710 },
2711 empty: function() {
2712 for (var property in this) if (property[0] === prefix) return false;
2713 return true;
2714 },
2715 each: function(f) {
2716 for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);
2717 }
2718};
2719
2720function map(object, f) {
2721 var map = new Map;
2722
2723 // Copy constructor.
2724 if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });
2725
2726 // Index array by numeric index or specified key function.
2727 else if (Array.isArray(object)) {
2728 var i = -1,
2729 n = object.length,
2730 o;
2731
2732 if (f == null) while (++i < n) map.set(i, object[i]);
2733 else while (++i < n) map.set(f(o = object[i], i, object), o);
2734 }
2735
2736 // Convert object to map.
2737 else if (object) for (var key in object) map.set(key, object[key]);
2738
2739 return map;
2740}
2741
2742/* harmony default export */ __webpack_exports__["default"] = (map);
2743
2744
2745/***/ }),
2746
2747/***/ "./node_modules/d3-collection/src/nest.js":
2748/*!************************************************!*\
2749 !*** ./node_modules/d3-collection/src/nest.js ***!
2750 \************************************************/
2751/*! exports provided: default */
2752/***/ (function(module, __webpack_exports__, __webpack_require__) {
2753
2754"use strict";
2755__webpack_require__.r(__webpack_exports__);
2756/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ "./node_modules/d3-collection/src/map.js");
2757
2758
2759/* harmony default export */ __webpack_exports__["default"] = (function() {
2760 var keys = [],
2761 sortKeys = [],
2762 sortValues,
2763 rollup,
2764 nest;
2765
2766 function apply(array, depth, createResult, setResult) {
2767 if (depth >= keys.length) {
2768 if (sortValues != null) array.sort(sortValues);
2769 return rollup != null ? rollup(array) : array;
2770 }
2771
2772 var i = -1,
2773 n = array.length,
2774 key = keys[depth++],
2775 keyValue,
2776 value,
2777 valuesByKey = Object(_map__WEBPACK_IMPORTED_MODULE_0__["default"])(),
2778 values,
2779 result = createResult();
2780
2781 while (++i < n) {
2782 if (values = valuesByKey.get(keyValue = key(value = array[i]) + "")) {
2783 values.push(value);
2784 } else {
2785 valuesByKey.set(keyValue, [value]);
2786 }
2787 }
2788
2789 valuesByKey.each(function(values, key) {
2790 setResult(result, key, apply(values, depth, createResult, setResult));
2791 });
2792
2793 return result;
2794 }
2795
2796 function entries(map, depth) {
2797 if (++depth > keys.length) return map;
2798 var array, sortKey = sortKeys[depth - 1];
2799 if (rollup != null && depth >= keys.length) array = map.entries();
2800 else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });
2801 return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;
2802 }
2803
2804 return nest = {
2805 object: function(array) { return apply(array, 0, createObject, setObject); },
2806 map: function(array) { return apply(array, 0, createMap, setMap); },
2807 entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },
2808 key: function(d) { keys.push(d); return nest; },
2809 sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },
2810 sortValues: function(order) { sortValues = order; return nest; },
2811 rollup: function(f) { rollup = f; return nest; }
2812 };
2813});
2814
2815function createObject() {
2816 return {};
2817}
2818
2819function setObject(object, key, value) {
2820 object[key] = value;
2821}
2822
2823function createMap() {
2824 return Object(_map__WEBPACK_IMPORTED_MODULE_0__["default"])();
2825}
2826
2827function setMap(map, key, value) {
2828 map.set(key, value);
2829}
2830
2831
2832/***/ }),
2833
2834/***/ "./node_modules/d3-collection/src/set.js":
2835/*!***********************************************!*\
2836 !*** ./node_modules/d3-collection/src/set.js ***!
2837 \***********************************************/
2838/*! exports provided: default */
2839/***/ (function(module, __webpack_exports__, __webpack_require__) {
2840
2841"use strict";
2842__webpack_require__.r(__webpack_exports__);
2843/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ "./node_modules/d3-collection/src/map.js");
2844
2845
2846function Set() {}
2847
2848var proto = _map__WEBPACK_IMPORTED_MODULE_0__["default"].prototype;
2849
2850Set.prototype = set.prototype = {
2851 constructor: Set,
2852 has: proto.has,
2853 add: function(value) {
2854 value += "";
2855 this[_map__WEBPACK_IMPORTED_MODULE_0__["prefix"] + value] = value;
2856 return this;
2857 },
2858 remove: proto.remove,
2859 clear: proto.clear,
2860 values: proto.keys,
2861 size: proto.size,
2862 empty: proto.empty,
2863 each: proto.each
2864};
2865
2866function set(object, f) {
2867 var set = new Set;
2868
2869 // Copy constructor.
2870 if (object instanceof Set) object.each(function(value) { set.add(value); });
2871
2872 // Otherwise, assume it’s an array.
2873 else if (object) {
2874 var i = -1, n = object.length;
2875 if (f == null) while (++i < n) set.add(object[i]);
2876 else while (++i < n) set.add(f(object[i], i, object));
2877 }
2878
2879 return set;
2880}
2881
2882/* harmony default export */ __webpack_exports__["default"] = (set);
2883
2884
2885/***/ }),
2886
2887/***/ "./node_modules/d3-collection/src/values.js":
2888/*!**************************************************!*\
2889 !*** ./node_modules/d3-collection/src/values.js ***!
2890 \**************************************************/
2891/*! exports provided: default */
2892/***/ (function(module, __webpack_exports__, __webpack_require__) {
2893
2894"use strict";
2895__webpack_require__.r(__webpack_exports__);
2896/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2897 var values = [];
2898 for (var key in map) values.push(map[key]);
2899 return values;
2900});
2901
2902
2903/***/ }),
2904
2905/***/ "./node_modules/d3-color/index.js":
2906/*!****************************************!*\
2907 !*** ./node_modules/d3-color/index.js ***!
2908 \****************************************/
2909/*! exports provided: color, rgb, hsl, lab, hcl, cubehelix */
2910/***/ (function(module, __webpack_exports__, __webpack_require__) {
2911
2912"use strict";
2913__webpack_require__.r(__webpack_exports__);
2914/* harmony import */ var _src_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/color */ "./node_modules/d3-color/src/color.js");
2915/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "color", function() { return _src_color__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2916
2917/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return _src_color__WEBPACK_IMPORTED_MODULE_0__["rgb"]; });
2918
2919/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return _src_color__WEBPACK_IMPORTED_MODULE_0__["hsl"]; });
2920
2921/* harmony import */ var _src_lab__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/lab */ "./node_modules/d3-color/src/lab.js");
2922/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lab", function() { return _src_lab__WEBPACK_IMPORTED_MODULE_1__["default"]; });
2923
2924/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return _src_lab__WEBPACK_IMPORTED_MODULE_1__["hcl"]; });
2925
2926/* harmony import */ var _src_cubehelix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/cubehelix */ "./node_modules/d3-color/src/cubehelix.js");
2927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cubehelix", function() { return _src_cubehelix__WEBPACK_IMPORTED_MODULE_2__["default"]; });
2928
2929
2930
2931
2932
2933
2934/***/ }),
2935
2936/***/ "./node_modules/d3-color/src/color.js":
2937/*!********************************************!*\
2938 !*** ./node_modules/d3-color/src/color.js ***!
2939 \********************************************/
2940/*! exports provided: Color, darker, brighter, default, rgbConvert, rgb, Rgb, hslConvert, hsl */
2941/***/ (function(module, __webpack_exports__, __webpack_require__) {
2942
2943"use strict";
2944__webpack_require__.r(__webpack_exports__);
2945/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return Color; });
2946/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "darker", function() { return darker; });
2947/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brighter", function() { return brighter; });
2948/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return color; });
2949/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbConvert", function() { return rgbConvert; });
2950/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return rgb; });
2951/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Rgb", function() { return Rgb; });
2952/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hslConvert", function() { return hslConvert; });
2953/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return hsl; });
2954/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define */ "./node_modules/d3-color/src/define.js");
2955
2956
2957function Color() {}
2958
2959var darker = 0.7;
2960var brighter = 1 / darker;
2961
2962var reI = "\\s*([+-]?\\d+)\\s*",
2963 reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2964 reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2965 reHex3 = /^#([0-9a-f]{3})$/,
2966 reHex6 = /^#([0-9a-f]{6})$/,
2967 reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
2968 reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
2969 reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
2970 reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
2971 reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
2972 reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
2973
2974var named = {
2975 aliceblue: 0xf0f8ff,
2976 antiquewhite: 0xfaebd7,
2977 aqua: 0x00ffff,
2978 aquamarine: 0x7fffd4,
2979 azure: 0xf0ffff,
2980 beige: 0xf5f5dc,
2981 bisque: 0xffe4c4,
2982 black: 0x000000,
2983 blanchedalmond: 0xffebcd,
2984 blue: 0x0000ff,
2985 blueviolet: 0x8a2be2,
2986 brown: 0xa52a2a,
2987 burlywood: 0xdeb887,
2988 cadetblue: 0x5f9ea0,
2989 chartreuse: 0x7fff00,
2990 chocolate: 0xd2691e,
2991 coral: 0xff7f50,
2992 cornflowerblue: 0x6495ed,
2993 cornsilk: 0xfff8dc,
2994 crimson: 0xdc143c,
2995 cyan: 0x00ffff,
2996 darkblue: 0x00008b,
2997 darkcyan: 0x008b8b,
2998 darkgoldenrod: 0xb8860b,
2999 darkgray: 0xa9a9a9,
3000 darkgreen: 0x006400,
3001 darkgrey: 0xa9a9a9,
3002 darkkhaki: 0xbdb76b,
3003 darkmagenta: 0x8b008b,
3004 darkolivegreen: 0x556b2f,
3005 darkorange: 0xff8c00,
3006 darkorchid: 0x9932cc,
3007 darkred: 0x8b0000,
3008 darksalmon: 0xe9967a,
3009 darkseagreen: 0x8fbc8f,
3010 darkslateblue: 0x483d8b,
3011 darkslategray: 0x2f4f4f,
3012 darkslategrey: 0x2f4f4f,
3013 darkturquoise: 0x00ced1,
3014 darkviolet: 0x9400d3,
3015 deeppink: 0xff1493,
3016 deepskyblue: 0x00bfff,
3017 dimgray: 0x696969,
3018 dimgrey: 0x696969,
3019 dodgerblue: 0x1e90ff,
3020 firebrick: 0xb22222,
3021 floralwhite: 0xfffaf0,
3022 forestgreen: 0x228b22,
3023 fuchsia: 0xff00ff,
3024 gainsboro: 0xdcdcdc,
3025 ghostwhite: 0xf8f8ff,
3026 gold: 0xffd700,
3027 goldenrod: 0xdaa520,
3028 gray: 0x808080,
3029 green: 0x008000,
3030 greenyellow: 0xadff2f,
3031 grey: 0x808080,
3032 honeydew: 0xf0fff0,
3033 hotpink: 0xff69b4,
3034 indianred: 0xcd5c5c,
3035 indigo: 0x4b0082,
3036 ivory: 0xfffff0,
3037 khaki: 0xf0e68c,
3038 lavender: 0xe6e6fa,
3039 lavenderblush: 0xfff0f5,
3040 lawngreen: 0x7cfc00,
3041 lemonchiffon: 0xfffacd,
3042 lightblue: 0xadd8e6,
3043 lightcoral: 0xf08080,
3044 lightcyan: 0xe0ffff,
3045 lightgoldenrodyellow: 0xfafad2,
3046 lightgray: 0xd3d3d3,
3047 lightgreen: 0x90ee90,
3048 lightgrey: 0xd3d3d3,
3049 lightpink: 0xffb6c1,
3050 lightsalmon: 0xffa07a,
3051 lightseagreen: 0x20b2aa,
3052 lightskyblue: 0x87cefa,
3053 lightslategray: 0x778899,
3054 lightslategrey: 0x778899,
3055 lightsteelblue: 0xb0c4de,
3056 lightyellow: 0xffffe0,
3057 lime: 0x00ff00,
3058 limegreen: 0x32cd32,
3059 linen: 0xfaf0e6,
3060 magenta: 0xff00ff,
3061 maroon: 0x800000,
3062 mediumaquamarine: 0x66cdaa,
3063 mediumblue: 0x0000cd,
3064 mediumorchid: 0xba55d3,
3065 mediumpurple: 0x9370db,
3066 mediumseagreen: 0x3cb371,
3067 mediumslateblue: 0x7b68ee,
3068 mediumspringgreen: 0x00fa9a,
3069 mediumturquoise: 0x48d1cc,
3070 mediumvioletred: 0xc71585,
3071 midnightblue: 0x191970,
3072 mintcream: 0xf5fffa,
3073 mistyrose: 0xffe4e1,
3074 moccasin: 0xffe4b5,
3075 navajowhite: 0xffdead,
3076 navy: 0x000080,
3077 oldlace: 0xfdf5e6,
3078 olive: 0x808000,
3079 olivedrab: 0x6b8e23,
3080 orange: 0xffa500,
3081 orangered: 0xff4500,
3082 orchid: 0xda70d6,
3083 palegoldenrod: 0xeee8aa,
3084 palegreen: 0x98fb98,
3085 paleturquoise: 0xafeeee,
3086 palevioletred: 0xdb7093,
3087 papayawhip: 0xffefd5,
3088 peachpuff: 0xffdab9,
3089 peru: 0xcd853f,
3090 pink: 0xffc0cb,
3091 plum: 0xdda0dd,
3092 powderblue: 0xb0e0e6,
3093 purple: 0x800080,
3094 rebeccapurple: 0x663399,
3095 red: 0xff0000,
3096 rosybrown: 0xbc8f8f,
3097 royalblue: 0x4169e1,
3098 saddlebrown: 0x8b4513,
3099 salmon: 0xfa8072,
3100 sandybrown: 0xf4a460,
3101 seagreen: 0x2e8b57,
3102 seashell: 0xfff5ee,
3103 sienna: 0xa0522d,
3104 silver: 0xc0c0c0,
3105 skyblue: 0x87ceeb,
3106 slateblue: 0x6a5acd,
3107 slategray: 0x708090,
3108 slategrey: 0x708090,
3109 snow: 0xfffafa,
3110 springgreen: 0x00ff7f,
3111 steelblue: 0x4682b4,
3112 tan: 0xd2b48c,
3113 teal: 0x008080,
3114 thistle: 0xd8bfd8,
3115 tomato: 0xff6347,
3116 turquoise: 0x40e0d0,
3117 violet: 0xee82ee,
3118 wheat: 0xf5deb3,
3119 white: 0xffffff,
3120 whitesmoke: 0xf5f5f5,
3121 yellow: 0xffff00,
3122 yellowgreen: 0x9acd32
3123};
3124
3125Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Color, color, {
3126 displayable: function() {
3127 return this.rgb().displayable();
3128 },
3129 toString: function() {
3130 return this.rgb() + "";
3131 }
3132});
3133
3134function color(format) {
3135 var m;
3136 format = (format + "").trim().toLowerCase();
3137 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
3138 : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000
3139 : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
3140 : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
3141 : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
3142 : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
3143 : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
3144 : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
3145 : named.hasOwnProperty(format) ? rgbn(named[format])
3146 : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
3147 : null;
3148}
3149
3150function rgbn(n) {
3151 return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
3152}
3153
3154function rgba(r, g, b, a) {
3155 if (a <= 0) r = g = b = NaN;
3156 return new Rgb(r, g, b, a);
3157}
3158
3159function rgbConvert(o) {
3160 if (!(o instanceof Color)) o = color(o);
3161 if (!o) return new Rgb;
3162 o = o.rgb();
3163 return new Rgb(o.r, o.g, o.b, o.opacity);
3164}
3165
3166function rgb(r, g, b, opacity) {
3167 return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
3168}
3169
3170function Rgb(r, g, b, opacity) {
3171 this.r = +r;
3172 this.g = +g;
3173 this.b = +b;
3174 this.opacity = +opacity;
3175}
3176
3177Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Rgb, rgb, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(Color, {
3178 brighter: function(k) {
3179 k = k == null ? brighter : Math.pow(brighter, k);
3180 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3181 },
3182 darker: function(k) {
3183 k = k == null ? darker : Math.pow(darker, k);
3184 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3185 },
3186 rgb: function() {
3187 return this;
3188 },
3189 displayable: function() {
3190 return (0 <= this.r && this.r <= 255)
3191 && (0 <= this.g && this.g <= 255)
3192 && (0 <= this.b && this.b <= 255)
3193 && (0 <= this.opacity && this.opacity <= 1);
3194 },
3195 toString: function() {
3196 var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
3197 return (a === 1 ? "rgb(" : "rgba(")
3198 + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
3199 + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
3200 + Math.max(0, Math.min(255, Math.round(this.b) || 0))
3201 + (a === 1 ? ")" : ", " + a + ")");
3202 }
3203}));
3204
3205function hsla(h, s, l, a) {
3206 if (a <= 0) h = s = l = NaN;
3207 else if (l <= 0 || l >= 1) h = s = NaN;
3208 else if (s <= 0) h = NaN;
3209 return new Hsl(h, s, l, a);
3210}
3211
3212function hslConvert(o) {
3213 if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
3214 if (!(o instanceof Color)) o = color(o);
3215 if (!o) return new Hsl;
3216 if (o instanceof Hsl) return o;
3217 o = o.rgb();
3218 var r = o.r / 255,
3219 g = o.g / 255,
3220 b = o.b / 255,
3221 min = Math.min(r, g, b),
3222 max = Math.max(r, g, b),
3223 h = NaN,
3224 s = max - min,
3225 l = (max + min) / 2;
3226 if (s) {
3227 if (r === max) h = (g - b) / s + (g < b) * 6;
3228 else if (g === max) h = (b - r) / s + 2;
3229 else h = (r - g) / s + 4;
3230 s /= l < 0.5 ? max + min : 2 - max - min;
3231 h *= 60;
3232 } else {
3233 s = l > 0 && l < 1 ? 0 : h;
3234 }
3235 return new Hsl(h, s, l, o.opacity);
3236}
3237
3238function hsl(h, s, l, opacity) {
3239 return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
3240}
3241
3242function Hsl(h, s, l, opacity) {
3243 this.h = +h;
3244 this.s = +s;
3245 this.l = +l;
3246 this.opacity = +opacity;
3247}
3248
3249Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Hsl, hsl, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(Color, {
3250 brighter: function(k) {
3251 k = k == null ? brighter : Math.pow(brighter, k);
3252 return new Hsl(this.h, this.s, this.l * k, this.opacity);
3253 },
3254 darker: function(k) {
3255 k = k == null ? darker : Math.pow(darker, k);
3256 return new Hsl(this.h, this.s, this.l * k, this.opacity);
3257 },
3258 rgb: function() {
3259 var h = this.h % 360 + (this.h < 0) * 360,
3260 s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
3261 l = this.l,
3262 m2 = l + (l < 0.5 ? l : 1 - l) * s,
3263 m1 = 2 * l - m2;
3264 return new Rgb(
3265 hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
3266 hsl2rgb(h, m1, m2),
3267 hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
3268 this.opacity
3269 );
3270 },
3271 displayable: function() {
3272 return (0 <= this.s && this.s <= 1 || isNaN(this.s))
3273 && (0 <= this.l && this.l <= 1)
3274 && (0 <= this.opacity && this.opacity <= 1);
3275 }
3276}));
3277
3278/* From FvD 13.37, CSS Color Module Level 3 */
3279function hsl2rgb(h, m1, m2) {
3280 return (h < 60 ? m1 + (m2 - m1) * h / 60
3281 : h < 180 ? m2
3282 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
3283 : m1) * 255;
3284}
3285
3286
3287/***/ }),
3288
3289/***/ "./node_modules/d3-color/src/cubehelix.js":
3290/*!************************************************!*\
3291 !*** ./node_modules/d3-color/src/cubehelix.js ***!
3292 \************************************************/
3293/*! exports provided: default, Cubehelix */
3294/***/ (function(module, __webpack_exports__, __webpack_require__) {
3295
3296"use strict";
3297__webpack_require__.r(__webpack_exports__);
3298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return cubehelix; });
3299/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Cubehelix", function() { return Cubehelix; });
3300/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define */ "./node_modules/d3-color/src/define.js");
3301/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-color/src/color.js");
3302/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-color/src/math.js");
3303
3304
3305
3306
3307var A = -0.14861,
3308 B = +1.78277,
3309 C = -0.29227,
3310 D = -0.90649,
3311 E = +1.97294,
3312 ED = E * D,
3313 EB = E * B,
3314 BC_DA = B * C - D * A;
3315
3316function cubehelixConvert(o) {
3317 if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
3318 if (!(o instanceof _color__WEBPACK_IMPORTED_MODULE_1__["Rgb"])) o = Object(_color__WEBPACK_IMPORTED_MODULE_1__["rgbConvert"])(o);
3319 var r = o.r / 255,
3320 g = o.g / 255,
3321 b = o.b / 255,
3322 l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
3323 bl = b - l,
3324 k = (E * (g - l) - C * bl) / D,
3325 s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
3326 h = s ? Math.atan2(k, bl) * _math__WEBPACK_IMPORTED_MODULE_2__["rad2deg"] - 120 : NaN;
3327 return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
3328}
3329
3330function cubehelix(h, s, l, opacity) {
3331 return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
3332}
3333
3334function Cubehelix(h, s, l, opacity) {
3335 this.h = +h;
3336 this.s = +s;
3337 this.l = +l;
3338 this.opacity = +opacity;
3339}
3340
3341Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Cubehelix, cubehelix, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3342 brighter: function(k) {
3343 k = k == null ? _color__WEBPACK_IMPORTED_MODULE_1__["brighter"] : Math.pow(_color__WEBPACK_IMPORTED_MODULE_1__["brighter"], k);
3344 return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
3345 },
3346 darker: function(k) {
3347 k = k == null ? _color__WEBPACK_IMPORTED_MODULE_1__["darker"] : Math.pow(_color__WEBPACK_IMPORTED_MODULE_1__["darker"], k);
3348 return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
3349 },
3350 rgb: function() {
3351 var h = isNaN(this.h) ? 0 : (this.h + 120) * _math__WEBPACK_IMPORTED_MODULE_2__["deg2rad"],
3352 l = +this.l,
3353 a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
3354 cosh = Math.cos(h),
3355 sinh = Math.sin(h);
3356 return new _color__WEBPACK_IMPORTED_MODULE_1__["Rgb"](
3357 255 * (l + a * (A * cosh + B * sinh)),
3358 255 * (l + a * (C * cosh + D * sinh)),
3359 255 * (l + a * (E * cosh)),
3360 this.opacity
3361 );
3362 }
3363}));
3364
3365
3366/***/ }),
3367
3368/***/ "./node_modules/d3-color/src/define.js":
3369/*!*********************************************!*\
3370 !*** ./node_modules/d3-color/src/define.js ***!
3371 \*********************************************/
3372/*! exports provided: default, extend */
3373/***/ (function(module, __webpack_exports__, __webpack_require__) {
3374
3375"use strict";
3376__webpack_require__.r(__webpack_exports__);
3377/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; });
3378/* harmony default export */ __webpack_exports__["default"] = (function(constructor, factory, prototype) {
3379 constructor.prototype = factory.prototype = prototype;
3380 prototype.constructor = constructor;
3381});
3382
3383function extend(parent, definition) {
3384 var prototype = Object.create(parent.prototype);
3385 for (var key in definition) prototype[key] = definition[key];
3386 return prototype;
3387}
3388
3389
3390/***/ }),
3391
3392/***/ "./node_modules/d3-color/src/lab.js":
3393/*!******************************************!*\
3394 !*** ./node_modules/d3-color/src/lab.js ***!
3395 \******************************************/
3396/*! exports provided: default, Lab, hcl, Hcl */
3397/***/ (function(module, __webpack_exports__, __webpack_require__) {
3398
3399"use strict";
3400__webpack_require__.r(__webpack_exports__);
3401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return lab; });
3402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Lab", function() { return Lab; });
3403/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return hcl; });
3404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Hcl", function() { return Hcl; });
3405/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define */ "./node_modules/d3-color/src/define.js");
3406/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-color/src/color.js");
3407/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-color/src/math.js");
3408
3409
3410
3411
3412var Kn = 18,
3413 Xn = 0.950470, // D65 standard referent
3414 Yn = 1,
3415 Zn = 1.088830,
3416 t0 = 4 / 29,
3417 t1 = 6 / 29,
3418 t2 = 3 * t1 * t1,
3419 t3 = t1 * t1 * t1;
3420
3421function labConvert(o) {
3422 if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
3423 if (o instanceof Hcl) {
3424 var h = o.h * _math__WEBPACK_IMPORTED_MODULE_2__["deg2rad"];
3425 return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
3426 }
3427 if (!(o instanceof _color__WEBPACK_IMPORTED_MODULE_1__["Rgb"])) o = Object(_color__WEBPACK_IMPORTED_MODULE_1__["rgbConvert"])(o);
3428 var b = rgb2xyz(o.r),
3429 a = rgb2xyz(o.g),
3430 l = rgb2xyz(o.b),
3431 x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),
3432 y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),
3433 z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);
3434 return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
3435}
3436
3437function lab(l, a, b, opacity) {
3438 return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
3439}
3440
3441function Lab(l, a, b, opacity) {
3442 this.l = +l;
3443 this.a = +a;
3444 this.b = +b;
3445 this.opacity = +opacity;
3446}
3447
3448Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Lab, lab, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3449 brighter: function(k) {
3450 return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);
3451 },
3452 darker: function(k) {
3453 return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);
3454 },
3455 rgb: function() {
3456 var y = (this.l + 16) / 116,
3457 x = isNaN(this.a) ? y : y + this.a / 500,
3458 z = isNaN(this.b) ? y : y - this.b / 200;
3459 y = Yn * lab2xyz(y);
3460 x = Xn * lab2xyz(x);
3461 z = Zn * lab2xyz(z);
3462 return new _color__WEBPACK_IMPORTED_MODULE_1__["Rgb"](
3463 xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB
3464 xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),
3465 xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),
3466 this.opacity
3467 );
3468 }
3469}));
3470
3471function xyz2lab(t) {
3472 return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
3473}
3474
3475function lab2xyz(t) {
3476 return t > t1 ? t * t * t : t2 * (t - t0);
3477}
3478
3479function xyz2rgb(x) {
3480 return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
3481}
3482
3483function rgb2xyz(x) {
3484 return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
3485}
3486
3487function hclConvert(o) {
3488 if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
3489 if (!(o instanceof Lab)) o = labConvert(o);
3490 var h = Math.atan2(o.b, o.a) * _math__WEBPACK_IMPORTED_MODULE_2__["rad2deg"];
3491 return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
3492}
3493
3494function hcl(h, c, l, opacity) {
3495 return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
3496}
3497
3498function Hcl(h, c, l, opacity) {
3499 this.h = +h;
3500 this.c = +c;
3501 this.l = +l;
3502 this.opacity = +opacity;
3503}
3504
3505Object(_define__WEBPACK_IMPORTED_MODULE_0__["default"])(Hcl, hcl, Object(_define__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3506 brighter: function(k) {
3507 return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);
3508 },
3509 darker: function(k) {
3510 return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);
3511 },
3512 rgb: function() {
3513 return labConvert(this).rgb();
3514 }
3515}));
3516
3517
3518/***/ }),
3519
3520/***/ "./node_modules/d3-color/src/math.js":
3521/*!*******************************************!*\
3522 !*** ./node_modules/d3-color/src/math.js ***!
3523 \*******************************************/
3524/*! exports provided: deg2rad, rad2deg */
3525/***/ (function(module, __webpack_exports__, __webpack_require__) {
3526
3527"use strict";
3528__webpack_require__.r(__webpack_exports__);
3529/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deg2rad", function() { return deg2rad; });
3530/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rad2deg", function() { return rad2deg; });
3531var deg2rad = Math.PI / 180;
3532var rad2deg = 180 / Math.PI;
3533
3534
3535/***/ }),
3536
3537/***/ "./node_modules/d3-dispatch/index.js":
3538/*!*******************************************!*\
3539 !*** ./node_modules/d3-dispatch/index.js ***!
3540 \*******************************************/
3541/*! exports provided: dispatch */
3542/***/ (function(module, __webpack_exports__, __webpack_require__) {
3543
3544"use strict";
3545__webpack_require__.r(__webpack_exports__);
3546/* harmony import */ var _src_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/dispatch */ "./node_modules/d3-dispatch/src/dispatch.js");
3547/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return _src_dispatch__WEBPACK_IMPORTED_MODULE_0__["default"]; });
3548
3549
3550
3551
3552/***/ }),
3553
3554/***/ "./node_modules/d3-dispatch/src/dispatch.js":
3555/*!**************************************************!*\
3556 !*** ./node_modules/d3-dispatch/src/dispatch.js ***!
3557 \**************************************************/
3558/*! exports provided: default */
3559/***/ (function(module, __webpack_exports__, __webpack_require__) {
3560
3561"use strict";
3562__webpack_require__.r(__webpack_exports__);
3563var noop = {value: function() {}};
3564
3565function dispatch() {
3566 for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
3567 if (!(t = arguments[i] + "") || (t in _)) throw new Error("illegal type: " + t);
3568 _[t] = [];
3569 }
3570 return new Dispatch(_);
3571}
3572
3573function Dispatch(_) {
3574 this._ = _;
3575}
3576
3577function parseTypenames(typenames, types) {
3578 return typenames.trim().split(/^|\s+/).map(function(t) {
3579 var name = "", i = t.indexOf(".");
3580 if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
3581 if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
3582 return {type: t, name: name};
3583 });
3584}
3585
3586Dispatch.prototype = dispatch.prototype = {
3587 constructor: Dispatch,
3588 on: function(typename, callback) {
3589 var _ = this._,
3590 T = parseTypenames(typename + "", _),
3591 t,
3592 i = -1,
3593 n = T.length;
3594
3595 // If no callback was specified, return the callback of the given type and name.
3596 if (arguments.length < 2) {
3597 while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
3598 return;
3599 }
3600
3601 // If a type was specified, set the callback for the given type and name.
3602 // Otherwise, if a null callback was specified, remove callbacks of the given name.
3603 if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
3604 while (++i < n) {
3605 if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
3606 else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
3607 }
3608
3609 return this;
3610 },
3611 copy: function() {
3612 var copy = {}, _ = this._;
3613 for (var t in _) copy[t] = _[t].slice();
3614 return new Dispatch(copy);
3615 },
3616 call: function(type, that) {
3617 if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
3618 if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
3619 for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
3620 },
3621 apply: function(type, that, args) {
3622 if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
3623 for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
3624 }
3625};
3626
3627function get(type, name) {
3628 for (var i = 0, n = type.length, c; i < n; ++i) {
3629 if ((c = type[i]).name === name) {
3630 return c.value;
3631 }
3632 }
3633}
3634
3635function set(type, name, callback) {
3636 for (var i = 0, n = type.length; i < n; ++i) {
3637 if (type[i].name === name) {
3638 type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
3639 break;
3640 }
3641 }
3642 if (callback != null) type.push({name: name, value: callback});
3643 return type;
3644}
3645
3646/* harmony default export */ __webpack_exports__["default"] = (dispatch);
3647
3648
3649/***/ }),
3650
3651/***/ "./node_modules/d3-drag/index.js":
3652/*!***************************************!*\
3653 !*** ./node_modules/d3-drag/index.js ***!
3654 \***************************************/
3655/*! exports provided: drag, dragDisable, dragEnable */
3656/***/ (function(module, __webpack_exports__, __webpack_require__) {
3657
3658"use strict";
3659__webpack_require__.r(__webpack_exports__);
3660/* harmony import */ var _src_drag__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/drag */ "./node_modules/d3-drag/src/drag.js");
3661/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "drag", function() { return _src_drag__WEBPACK_IMPORTED_MODULE_0__["default"]; });
3662
3663/* harmony import */ var _src_nodrag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/nodrag */ "./node_modules/d3-drag/src/nodrag.js");
3664/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragDisable", function() { return _src_nodrag__WEBPACK_IMPORTED_MODULE_1__["default"]; });
3665
3666/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragEnable", function() { return _src_nodrag__WEBPACK_IMPORTED_MODULE_1__["yesdrag"]; });
3667
3668
3669
3670
3671
3672/***/ }),
3673
3674/***/ "./node_modules/d3-drag/src/constant.js":
3675/*!**********************************************!*\
3676 !*** ./node_modules/d3-drag/src/constant.js ***!
3677 \**********************************************/
3678/*! exports provided: default */
3679/***/ (function(module, __webpack_exports__, __webpack_require__) {
3680
3681"use strict";
3682__webpack_require__.r(__webpack_exports__);
3683/* harmony default export */ __webpack_exports__["default"] = (function(x) {
3684 return function() {
3685 return x;
3686 };
3687});
3688
3689
3690/***/ }),
3691
3692/***/ "./node_modules/d3-drag/src/drag.js":
3693/*!******************************************!*\
3694 !*** ./node_modules/d3-drag/src/drag.js ***!
3695 \******************************************/
3696/*! exports provided: default */
3697/***/ (function(module, __webpack_exports__, __webpack_require__) {
3698
3699"use strict";
3700__webpack_require__.r(__webpack_exports__);
3701/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/index.js");
3702/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
3703/* harmony import */ var _nodrag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nodrag */ "./node_modules/d3-drag/src/nodrag.js");
3704/* harmony import */ var _noevent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./noevent */ "./node_modules/d3-drag/src/noevent.js");
3705/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-drag/src/constant.js");
3706/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event */ "./node_modules/d3-drag/src/event.js");
3707
3708
3709
3710
3711
3712
3713
3714// Ignore right-click, since that should open the context menu.
3715function defaultFilter() {
3716 return !d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].button;
3717}
3718
3719function defaultContainer() {
3720 return this.parentNode;
3721}
3722
3723function defaultSubject(d) {
3724 return d == null ? {x: d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].x, y: d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].y} : d;
3725}
3726
3727function defaultTouchable() {
3728 return "ontouchstart" in this;
3729}
3730
3731/* harmony default export */ __webpack_exports__["default"] = (function() {
3732 var filter = defaultFilter,
3733 container = defaultContainer,
3734 subject = defaultSubject,
3735 touchable = defaultTouchable,
3736 gestures = {},
3737 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "drag", "end"),
3738 active = 0,
3739 mousedownx,
3740 mousedowny,
3741 mousemoving,
3742 touchending,
3743 clickDistance2 = 0;
3744
3745 function drag(selection) {
3746 selection
3747 .on("mousedown.drag", mousedowned)
3748 .filter(touchable)
3749 .on("touchstart.drag", touchstarted)
3750 .on("touchmove.drag", touchmoved)
3751 .on("touchend.drag touchcancel.drag", touchended)
3752 .style("touch-action", "none")
3753 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
3754 }
3755
3756 function mousedowned() {
3757 if (touchending || !filter.apply(this, arguments)) return;
3758 var gesture = beforestart("mouse", container.apply(this, arguments), d3_selection__WEBPACK_IMPORTED_MODULE_1__["mouse"], this, arguments);
3759 if (!gesture) return;
3760 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);
3761 Object(_nodrag__WEBPACK_IMPORTED_MODULE_2__["default"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view);
3762 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
3763 mousemoving = false;
3764 mousedownx = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientX;
3765 mousedowny = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientY;
3766 gesture("start");
3767 }
3768
3769 function mousemoved() {
3770 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["default"])();
3771 if (!mousemoving) {
3772 var dx = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientX - mousedownx, dy = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientY - mousedowny;
3773 mousemoving = dx * dx + dy * dy > clickDistance2;
3774 }
3775 gestures.mouse("drag");
3776 }
3777
3778 function mouseupped() {
3779 Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["select"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view).on("mousemove.drag mouseup.drag", null);
3780 Object(_nodrag__WEBPACK_IMPORTED_MODULE_2__["yesdrag"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view, mousemoving);
3781 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["default"])();
3782 gestures.mouse("end");
3783 }
3784
3785 function touchstarted() {
3786 if (!filter.apply(this, arguments)) return;
3787 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
3788 c = container.apply(this, arguments),
3789 n = touches.length, i, gesture;
3790
3791 for (i = 0; i < n; ++i) {
3792 if (gesture = beforestart(touches[i].identifier, c, d3_selection__WEBPACK_IMPORTED_MODULE_1__["touch"], this, arguments)) {
3793 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
3794 gesture("start");
3795 }
3796 }
3797 }
3798
3799 function touchmoved() {
3800 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
3801 n = touches.length, i, gesture;
3802
3803 for (i = 0; i < n; ++i) {
3804 if (gesture = gestures[touches[i].identifier]) {
3805 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["default"])();
3806 gesture("drag");
3807 }
3808 }
3809 }
3810
3811 function touchended() {
3812 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
3813 n = touches.length, i, gesture;
3814
3815 if (touchending) clearTimeout(touchending);
3816 touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
3817 for (i = 0; i < n; ++i) {
3818 if (gesture = gestures[touches[i].identifier]) {
3819 Object(_noevent__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
3820 gesture("end");
3821 }
3822 }
3823 }
3824
3825 function beforestart(id, container, point, that, args) {
3826 var p = point(container, id), s, dx, dy,
3827 sublisteners = listeners.copy();
3828
3829 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() {
3830 if ((d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].subject = s = subject.apply(that, args)) == null) return false;
3831 dx = s.x - p[0] || 0;
3832 dy = s.y - p[1] || 0;
3833 return true;
3834 })) return;
3835
3836 return function gesture(type) {
3837 var p0 = p, n;
3838 switch (type) {
3839 case "start": gestures[id] = gesture, n = active++; break;
3840 case "end": delete gestures[id], --active; // nobreak
3841 case "drag": p = point(container, id), n = active; break;
3842 }
3843 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]);
3844 };
3845 }
3846
3847 drag.filter = function(_) {
3848 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(!!_), drag) : filter;
3849 };
3850
3851 drag.container = function(_) {
3852 return arguments.length ? (container = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(_), drag) : container;
3853 };
3854
3855 drag.subject = function(_) {
3856 return arguments.length ? (subject = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(_), drag) : subject;
3857 };
3858
3859 drag.touchable = function(_) {
3860 return arguments.length ? (touchable = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(!!_), drag) : touchable;
3861 };
3862
3863 drag.on = function() {
3864 var value = listeners.on.apply(listeners, arguments);
3865 return value === listeners ? drag : value;
3866 };
3867
3868 drag.clickDistance = function(_) {
3869 return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
3870 };
3871
3872 return drag;
3873});
3874
3875
3876/***/ }),
3877
3878/***/ "./node_modules/d3-drag/src/event.js":
3879/*!*******************************************!*\
3880 !*** ./node_modules/d3-drag/src/event.js ***!
3881 \*******************************************/
3882/*! exports provided: default */
3883/***/ (function(module, __webpack_exports__, __webpack_require__) {
3884
3885"use strict";
3886__webpack_require__.r(__webpack_exports__);
3887/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return DragEvent; });
3888function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {
3889 this.target = target;
3890 this.type = type;
3891 this.subject = subject;
3892 this.identifier = id;
3893 this.active = active;
3894 this.x = x;
3895 this.y = y;
3896 this.dx = dx;
3897 this.dy = dy;
3898 this._ = dispatch;
3899}
3900
3901DragEvent.prototype.on = function() {
3902 var value = this._.on.apply(this._, arguments);
3903 return value === this._ ? this : value;
3904};
3905
3906
3907/***/ }),
3908
3909/***/ "./node_modules/d3-drag/src/nodrag.js":
3910/*!********************************************!*\
3911 !*** ./node_modules/d3-drag/src/nodrag.js ***!
3912 \********************************************/
3913/*! exports provided: default, yesdrag */
3914/***/ (function(module, __webpack_exports__, __webpack_require__) {
3915
3916"use strict";
3917__webpack_require__.r(__webpack_exports__);
3918/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yesdrag", function() { return yesdrag; });
3919/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
3920/* harmony import */ var _noevent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noevent */ "./node_modules/d3-drag/src/noevent.js");
3921
3922
3923
3924/* harmony default export */ __webpack_exports__["default"] = (function(view) {
3925 var root = view.document.documentElement,
3926 selection = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["select"])(view).on("dragstart.drag", _noevent__WEBPACK_IMPORTED_MODULE_1__["default"], true);
3927 if ("onselectstart" in root) {
3928 selection.on("selectstart.drag", _noevent__WEBPACK_IMPORTED_MODULE_1__["default"], true);
3929 } else {
3930 root.__noselect = root.style.MozUserSelect;
3931 root.style.MozUserSelect = "none";
3932 }
3933});
3934
3935function yesdrag(view, noclick) {
3936 var root = view.document.documentElement,
3937 selection = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["select"])(view).on("dragstart.drag", null);
3938 if (noclick) {
3939 selection.on("click.drag", _noevent__WEBPACK_IMPORTED_MODULE_1__["default"], true);
3940 setTimeout(function() { selection.on("click.drag", null); }, 0);
3941 }
3942 if ("onselectstart" in root) {
3943 selection.on("selectstart.drag", null);
3944 } else {
3945 root.style.MozUserSelect = root.__noselect;
3946 delete root.__noselect;
3947 }
3948}
3949
3950
3951/***/ }),
3952
3953/***/ "./node_modules/d3-drag/src/noevent.js":
3954/*!*********************************************!*\
3955 !*** ./node_modules/d3-drag/src/noevent.js ***!
3956 \*********************************************/
3957/*! exports provided: nopropagation, default */
3958/***/ (function(module, __webpack_exports__, __webpack_require__) {
3959
3960"use strict";
3961__webpack_require__.r(__webpack_exports__);
3962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
3963/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
3964
3965
3966function nopropagation() {
3967 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
3968}
3969
3970/* harmony default export */ __webpack_exports__["default"] = (function() {
3971 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
3972 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
3973});
3974
3975
3976/***/ }),
3977
3978/***/ "./node_modules/d3-dsv/index.js":
3979/*!**************************************!*\
3980 !*** ./node_modules/d3-dsv/index.js ***!
3981 \**************************************/
3982/*! exports provided: dsvFormat, csvParse, csvParseRows, csvFormat, csvFormatRows, tsvParse, tsvParseRows, tsvFormat, tsvFormatRows */
3983/***/ (function(module, __webpack_exports__, __webpack_require__) {
3984
3985"use strict";
3986__webpack_require__.r(__webpack_exports__);
3987/* harmony import */ var _src_dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/dsv */ "./node_modules/d3-dsv/src/dsv.js");
3988/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsvFormat", function() { return _src_dsv__WEBPACK_IMPORTED_MODULE_0__["default"]; });
3989
3990/* harmony import */ var _src_csv__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/csv */ "./node_modules/d3-dsv/src/csv.js");
3991/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return _src_csv__WEBPACK_IMPORTED_MODULE_1__["csvParse"]; });
3992
3993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return _src_csv__WEBPACK_IMPORTED_MODULE_1__["csvParseRows"]; });
3994
3995/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return _src_csv__WEBPACK_IMPORTED_MODULE_1__["csvFormat"]; });
3996
3997/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return _src_csv__WEBPACK_IMPORTED_MODULE_1__["csvFormatRows"]; });
3998
3999/* harmony import */ var _src_tsv__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/tsv */ "./node_modules/d3-dsv/src/tsv.js");
4000/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return _src_tsv__WEBPACK_IMPORTED_MODULE_2__["tsvParse"]; });
4001
4002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return _src_tsv__WEBPACK_IMPORTED_MODULE_2__["tsvParseRows"]; });
4003
4004/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return _src_tsv__WEBPACK_IMPORTED_MODULE_2__["tsvFormat"]; });
4005
4006/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return _src_tsv__WEBPACK_IMPORTED_MODULE_2__["tsvFormatRows"]; });
4007
4008
4009
4010
4011
4012
4013/***/ }),
4014
4015/***/ "./node_modules/d3-dsv/src/csv.js":
4016/*!****************************************!*\
4017 !*** ./node_modules/d3-dsv/src/csv.js ***!
4018 \****************************************/
4019/*! exports provided: csvParse, csvParseRows, csvFormat, csvFormatRows */
4020/***/ (function(module, __webpack_exports__, __webpack_require__) {
4021
4022"use strict";
4023__webpack_require__.r(__webpack_exports__);
4024/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return csvParse; });
4025/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return csvParseRows; });
4026/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return csvFormat; });
4027/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return csvFormatRows; });
4028/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-dsv/src/dsv.js");
4029
4030
4031var csv = Object(_dsv__WEBPACK_IMPORTED_MODULE_0__["default"])(",");
4032
4033var csvParse = csv.parse;
4034var csvParseRows = csv.parseRows;
4035var csvFormat = csv.format;
4036var csvFormatRows = csv.formatRows;
4037
4038
4039/***/ }),
4040
4041/***/ "./node_modules/d3-dsv/src/dsv.js":
4042/*!****************************************!*\
4043 !*** ./node_modules/d3-dsv/src/dsv.js ***!
4044 \****************************************/
4045/*! exports provided: default */
4046/***/ (function(module, __webpack_exports__, __webpack_require__) {
4047
4048"use strict";
4049__webpack_require__.r(__webpack_exports__);
4050var EOL = {},
4051 EOF = {},
4052 QUOTE = 34,
4053 NEWLINE = 10,
4054 RETURN = 13;
4055
4056function objectConverter(columns) {
4057 return new Function("d", "return {" + columns.map(function(name, i) {
4058 return JSON.stringify(name) + ": d[" + i + "]";
4059 }).join(",") + "}");
4060}
4061
4062function customConverter(columns, f) {
4063 var object = objectConverter(columns);
4064 return function(row, i) {
4065 return f(object(row), i, columns);
4066 };
4067}
4068
4069// Compute unique columns in order of discovery.
4070function inferColumns(rows) {
4071 var columnSet = Object.create(null),
4072 columns = [];
4073
4074 rows.forEach(function(row) {
4075 for (var column in row) {
4076 if (!(column in columnSet)) {
4077 columns.push(columnSet[column] = column);
4078 }
4079 }
4080 });
4081
4082 return columns;
4083}
4084
4085/* harmony default export */ __webpack_exports__["default"] = (function(delimiter) {
4086 var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
4087 DELIMITER = delimiter.charCodeAt(0);
4088
4089 function parse(text, f) {
4090 var convert, columns, rows = parseRows(text, function(row, i) {
4091 if (convert) return convert(row, i - 1);
4092 columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
4093 });
4094 rows.columns = columns || [];
4095 return rows;
4096 }
4097
4098 function parseRows(text, f) {
4099 var rows = [], // output rows
4100 N = text.length,
4101 I = 0, // current character index
4102 n = 0, // current line number
4103 t, // current token
4104 eof = N <= 0, // current token followed by EOF?
4105 eol = false; // current token followed by EOL?
4106
4107 // Strip the trailing newline.
4108 if (text.charCodeAt(N - 1) === NEWLINE) --N;
4109 if (text.charCodeAt(N - 1) === RETURN) --N;
4110
4111 function token() {
4112 if (eof) return EOF;
4113 if (eol) return eol = false, EOL;
4114
4115 // Unescape quotes.
4116 var i, j = I, c;
4117 if (text.charCodeAt(j) === QUOTE) {
4118 while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
4119 if ((i = I) >= N) eof = true;
4120 else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
4121 else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
4122 return text.slice(j + 1, i - 1).replace(/""/g, "\"");
4123 }
4124
4125 // Find next delimiter or newline.
4126 while (I < N) {
4127 if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
4128 else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
4129 else if (c !== DELIMITER) continue;
4130 return text.slice(j, i);
4131 }
4132
4133 // Return last token before EOF.
4134 return eof = true, text.slice(j, N);
4135 }
4136
4137 while ((t = token()) !== EOF) {
4138 var row = [];
4139 while (t !== EOL && t !== EOF) row.push(t), t = token();
4140 if (f && (row = f(row, n++)) == null) continue;
4141 rows.push(row);
4142 }
4143
4144 return rows;
4145 }
4146
4147 function format(rows, columns) {
4148 if (columns == null) columns = inferColumns(rows);
4149 return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {
4150 return columns.map(function(column) {
4151 return formatValue(row[column]);
4152 }).join(delimiter);
4153 })).join("\n");
4154 }
4155
4156 function formatRows(rows) {
4157 return rows.map(formatRow).join("\n");
4158 }
4159
4160 function formatRow(row) {
4161 return row.map(formatValue).join(delimiter);
4162 }
4163
4164 function formatValue(text) {
4165 return text == null ? ""
4166 : reFormat.test(text += "") ? "\"" + text.replace(/"/g, "\"\"") + "\""
4167 : text;
4168 }
4169
4170 return {
4171 parse: parse,
4172 parseRows: parseRows,
4173 format: format,
4174 formatRows: formatRows
4175 };
4176});
4177
4178
4179/***/ }),
4180
4181/***/ "./node_modules/d3-dsv/src/tsv.js":
4182/*!****************************************!*\
4183 !*** ./node_modules/d3-dsv/src/tsv.js ***!
4184 \****************************************/
4185/*! exports provided: tsvParse, tsvParseRows, tsvFormat, tsvFormatRows */
4186/***/ (function(module, __webpack_exports__, __webpack_require__) {
4187
4188"use strict";
4189__webpack_require__.r(__webpack_exports__);
4190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return tsvParse; });
4191/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return tsvParseRows; });
4192/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return tsvFormat; });
4193/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return tsvFormatRows; });
4194/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-dsv/src/dsv.js");
4195
4196
4197var tsv = Object(_dsv__WEBPACK_IMPORTED_MODULE_0__["default"])("\t");
4198
4199var tsvParse = tsv.parse;
4200var tsvParseRows = tsv.parseRows;
4201var tsvFormat = tsv.format;
4202var tsvFormatRows = tsv.formatRows;
4203
4204
4205/***/ }),
4206
4207/***/ "./node_modules/d3-ease/index.js":
4208/*!***************************************!*\
4209 !*** ./node_modules/d3-ease/index.js ***!
4210 \***************************************/
4211/*! 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 */
4212/***/ (function(module, __webpack_exports__, __webpack_require__) {
4213
4214"use strict";
4215__webpack_require__.r(__webpack_exports__);
4216/* harmony import */ var _src_linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/linear */ "./node_modules/d3-ease/src/linear.js");
4217/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeLinear", function() { return _src_linear__WEBPACK_IMPORTED_MODULE_0__["linear"]; });
4218
4219/* harmony import */ var _src_quad__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/quad */ "./node_modules/d3-ease/src/quad.js");
4220/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuad", function() { return _src_quad__WEBPACK_IMPORTED_MODULE_1__["quadInOut"]; });
4221
4222/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadIn", function() { return _src_quad__WEBPACK_IMPORTED_MODULE_1__["quadIn"]; });
4223
4224/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadOut", function() { return _src_quad__WEBPACK_IMPORTED_MODULE_1__["quadOut"]; });
4225
4226/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadInOut", function() { return _src_quad__WEBPACK_IMPORTED_MODULE_1__["quadInOut"]; });
4227
4228/* harmony import */ var _src_cubic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/cubic */ "./node_modules/d3-ease/src/cubic.js");
4229/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubic", function() { return _src_cubic__WEBPACK_IMPORTED_MODULE_2__["cubicInOut"]; });
4230
4231/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicIn", function() { return _src_cubic__WEBPACK_IMPORTED_MODULE_2__["cubicIn"]; });
4232
4233/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicOut", function() { return _src_cubic__WEBPACK_IMPORTED_MODULE_2__["cubicOut"]; });
4234
4235/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicInOut", function() { return _src_cubic__WEBPACK_IMPORTED_MODULE_2__["cubicInOut"]; });
4236
4237/* harmony import */ var _src_poly__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/poly */ "./node_modules/d3-ease/src/poly.js");
4238/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePoly", function() { return _src_poly__WEBPACK_IMPORTED_MODULE_3__["polyInOut"]; });
4239
4240/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyIn", function() { return _src_poly__WEBPACK_IMPORTED_MODULE_3__["polyIn"]; });
4241
4242/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyOut", function() { return _src_poly__WEBPACK_IMPORTED_MODULE_3__["polyOut"]; });
4243
4244/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyInOut", function() { return _src_poly__WEBPACK_IMPORTED_MODULE_3__["polyInOut"]; });
4245
4246/* harmony import */ var _src_sin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/sin */ "./node_modules/d3-ease/src/sin.js");
4247/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSin", function() { return _src_sin__WEBPACK_IMPORTED_MODULE_4__["sinInOut"]; });
4248
4249/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinIn", function() { return _src_sin__WEBPACK_IMPORTED_MODULE_4__["sinIn"]; });
4250
4251/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinOut", function() { return _src_sin__WEBPACK_IMPORTED_MODULE_4__["sinOut"]; });
4252
4253/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinInOut", function() { return _src_sin__WEBPACK_IMPORTED_MODULE_4__["sinInOut"]; });
4254
4255/* harmony import */ var _src_exp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/exp */ "./node_modules/d3-ease/src/exp.js");
4256/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExp", function() { return _src_exp__WEBPACK_IMPORTED_MODULE_5__["expInOut"]; });
4257
4258/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpIn", function() { return _src_exp__WEBPACK_IMPORTED_MODULE_5__["expIn"]; });
4259
4260/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpOut", function() { return _src_exp__WEBPACK_IMPORTED_MODULE_5__["expOut"]; });
4261
4262/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpInOut", function() { return _src_exp__WEBPACK_IMPORTED_MODULE_5__["expInOut"]; });
4263
4264/* harmony import */ var _src_circle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/circle */ "./node_modules/d3-ease/src/circle.js");
4265/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircle", function() { return _src_circle__WEBPACK_IMPORTED_MODULE_6__["circleInOut"]; });
4266
4267/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleIn", function() { return _src_circle__WEBPACK_IMPORTED_MODULE_6__["circleIn"]; });
4268
4269/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleOut", function() { return _src_circle__WEBPACK_IMPORTED_MODULE_6__["circleOut"]; });
4270
4271/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleInOut", function() { return _src_circle__WEBPACK_IMPORTED_MODULE_6__["circleInOut"]; });
4272
4273/* harmony import */ var _src_bounce__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/bounce */ "./node_modules/d3-ease/src/bounce.js");
4274/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounce", function() { return _src_bounce__WEBPACK_IMPORTED_MODULE_7__["bounceOut"]; });
4275
4276/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceIn", function() { return _src_bounce__WEBPACK_IMPORTED_MODULE_7__["bounceIn"]; });
4277
4278/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceOut", function() { return _src_bounce__WEBPACK_IMPORTED_MODULE_7__["bounceOut"]; });
4279
4280/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceInOut", function() { return _src_bounce__WEBPACK_IMPORTED_MODULE_7__["bounceInOut"]; });
4281
4282/* harmony import */ var _src_back__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/back */ "./node_modules/d3-ease/src/back.js");
4283/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBack", function() { return _src_back__WEBPACK_IMPORTED_MODULE_8__["backInOut"]; });
4284
4285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackIn", function() { return _src_back__WEBPACK_IMPORTED_MODULE_8__["backIn"]; });
4286
4287/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackOut", function() { return _src_back__WEBPACK_IMPORTED_MODULE_8__["backOut"]; });
4288
4289/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackInOut", function() { return _src_back__WEBPACK_IMPORTED_MODULE_8__["backInOut"]; });
4290
4291/* harmony import */ var _src_elastic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/elastic */ "./node_modules/d3-ease/src/elastic.js");
4292/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElastic", function() { return _src_elastic__WEBPACK_IMPORTED_MODULE_9__["elasticOut"]; });
4293
4294/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticIn", function() { return _src_elastic__WEBPACK_IMPORTED_MODULE_9__["elasticIn"]; });
4295
4296/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticOut", function() { return _src_elastic__WEBPACK_IMPORTED_MODULE_9__["elasticOut"]; });
4297
4298/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticInOut", function() { return _src_elastic__WEBPACK_IMPORTED_MODULE_9__["elasticInOut"]; });
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321/***/ }),
4322
4323/***/ "./node_modules/d3-ease/src/back.js":
4324/*!******************************************!*\
4325 !*** ./node_modules/d3-ease/src/back.js ***!
4326 \******************************************/
4327/*! exports provided: backIn, backOut, backInOut */
4328/***/ (function(module, __webpack_exports__, __webpack_require__) {
4329
4330"use strict";
4331__webpack_require__.r(__webpack_exports__);
4332/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backIn", function() { return backIn; });
4333/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backOut", function() { return backOut; });
4334/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backInOut", function() { return backInOut; });
4335var overshoot = 1.70158;
4336
4337var backIn = (function custom(s) {
4338 s = +s;
4339
4340 function backIn(t) {
4341 return t * t * ((s + 1) * t - s);
4342 }
4343
4344 backIn.overshoot = custom;
4345
4346 return backIn;
4347})(overshoot);
4348
4349var backOut = (function custom(s) {
4350 s = +s;
4351
4352 function backOut(t) {
4353 return --t * t * ((s + 1) * t + s) + 1;
4354 }
4355
4356 backOut.overshoot = custom;
4357
4358 return backOut;
4359})(overshoot);
4360
4361var backInOut = (function custom(s) {
4362 s = +s;
4363
4364 function backInOut(t) {
4365 return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
4366 }
4367
4368 backInOut.overshoot = custom;
4369
4370 return backInOut;
4371})(overshoot);
4372
4373
4374/***/ }),
4375
4376/***/ "./node_modules/d3-ease/src/bounce.js":
4377/*!********************************************!*\
4378 !*** ./node_modules/d3-ease/src/bounce.js ***!
4379 \********************************************/
4380/*! exports provided: bounceIn, bounceOut, bounceInOut */
4381/***/ (function(module, __webpack_exports__, __webpack_require__) {
4382
4383"use strict";
4384__webpack_require__.r(__webpack_exports__);
4385/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceIn", function() { return bounceIn; });
4386/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceOut", function() { return bounceOut; });
4387/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceInOut", function() { return bounceInOut; });
4388var b1 = 4 / 11,
4389 b2 = 6 / 11,
4390 b3 = 8 / 11,
4391 b4 = 3 / 4,
4392 b5 = 9 / 11,
4393 b6 = 10 / 11,
4394 b7 = 15 / 16,
4395 b8 = 21 / 22,
4396 b9 = 63 / 64,
4397 b0 = 1 / b1 / b1;
4398
4399function bounceIn(t) {
4400 return 1 - bounceOut(1 - t);
4401}
4402
4403function bounceOut(t) {
4404 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;
4405}
4406
4407function bounceInOut(t) {
4408 return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
4409}
4410
4411
4412/***/ }),
4413
4414/***/ "./node_modules/d3-ease/src/circle.js":
4415/*!********************************************!*\
4416 !*** ./node_modules/d3-ease/src/circle.js ***!
4417 \********************************************/
4418/*! exports provided: circleIn, circleOut, circleInOut */
4419/***/ (function(module, __webpack_exports__, __webpack_require__) {
4420
4421"use strict";
4422__webpack_require__.r(__webpack_exports__);
4423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleIn", function() { return circleIn; });
4424/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleOut", function() { return circleOut; });
4425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleInOut", function() { return circleInOut; });
4426function circleIn(t) {
4427 return 1 - Math.sqrt(1 - t * t);
4428}
4429
4430function circleOut(t) {
4431 return Math.sqrt(1 - --t * t);
4432}
4433
4434function circleInOut(t) {
4435 return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
4436}
4437
4438
4439/***/ }),
4440
4441/***/ "./node_modules/d3-ease/src/cubic.js":
4442/*!*******************************************!*\
4443 !*** ./node_modules/d3-ease/src/cubic.js ***!
4444 \*******************************************/
4445/*! exports provided: cubicIn, cubicOut, cubicInOut */
4446/***/ (function(module, __webpack_exports__, __webpack_require__) {
4447
4448"use strict";
4449__webpack_require__.r(__webpack_exports__);
4450/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicIn", function() { return cubicIn; });
4451/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicOut", function() { return cubicOut; });
4452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicInOut", function() { return cubicInOut; });
4453function cubicIn(t) {
4454 return t * t * t;
4455}
4456
4457function cubicOut(t) {
4458 return --t * t * t + 1;
4459}
4460
4461function cubicInOut(t) {
4462 return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
4463}
4464
4465
4466/***/ }),
4467
4468/***/ "./node_modules/d3-ease/src/elastic.js":
4469/*!*********************************************!*\
4470 !*** ./node_modules/d3-ease/src/elastic.js ***!
4471 \*********************************************/
4472/*! exports provided: elasticIn, elasticOut, elasticInOut */
4473/***/ (function(module, __webpack_exports__, __webpack_require__) {
4474
4475"use strict";
4476__webpack_require__.r(__webpack_exports__);
4477/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticIn", function() { return elasticIn; });
4478/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticOut", function() { return elasticOut; });
4479/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticInOut", function() { return elasticInOut; });
4480var tau = 2 * Math.PI,
4481 amplitude = 1,
4482 period = 0.3;
4483
4484var elasticIn = (function custom(a, p) {
4485 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
4486
4487 function elasticIn(t) {
4488 return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);
4489 }
4490
4491 elasticIn.amplitude = function(a) { return custom(a, p * tau); };
4492 elasticIn.period = function(p) { return custom(a, p); };
4493
4494 return elasticIn;
4495})(amplitude, period);
4496
4497var elasticOut = (function custom(a, p) {
4498 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
4499
4500 function elasticOut(t) {
4501 return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);
4502 }
4503
4504 elasticOut.amplitude = function(a) { return custom(a, p * tau); };
4505 elasticOut.period = function(p) { return custom(a, p); };
4506
4507 return elasticOut;
4508})(amplitude, period);
4509
4510var elasticInOut = (function custom(a, p) {
4511 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
4512
4513 function elasticInOut(t) {
4514 return ((t = t * 2 - 1) < 0
4515 ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)
4516 : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;
4517 }
4518
4519 elasticInOut.amplitude = function(a) { return custom(a, p * tau); };
4520 elasticInOut.period = function(p) { return custom(a, p); };
4521
4522 return elasticInOut;
4523})(amplitude, period);
4524
4525
4526/***/ }),
4527
4528/***/ "./node_modules/d3-ease/src/exp.js":
4529/*!*****************************************!*\
4530 !*** ./node_modules/d3-ease/src/exp.js ***!
4531 \*****************************************/
4532/*! exports provided: expIn, expOut, expInOut */
4533/***/ (function(module, __webpack_exports__, __webpack_require__) {
4534
4535"use strict";
4536__webpack_require__.r(__webpack_exports__);
4537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expIn", function() { return expIn; });
4538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expOut", function() { return expOut; });
4539/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expInOut", function() { return expInOut; });
4540function expIn(t) {
4541 return Math.pow(2, 10 * t - 10);
4542}
4543
4544function expOut(t) {
4545 return 1 - Math.pow(2, -10 * t);
4546}
4547
4548function expInOut(t) {
4549 return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;
4550}
4551
4552
4553/***/ }),
4554
4555/***/ "./node_modules/d3-ease/src/linear.js":
4556/*!********************************************!*\
4557 !*** ./node_modules/d3-ease/src/linear.js ***!
4558 \********************************************/
4559/*! exports provided: linear */
4560/***/ (function(module, __webpack_exports__, __webpack_require__) {
4561
4562"use strict";
4563__webpack_require__.r(__webpack_exports__);
4564/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linear", function() { return linear; });
4565function linear(t) {
4566 return +t;
4567}
4568
4569
4570/***/ }),
4571
4572/***/ "./node_modules/d3-ease/src/poly.js":
4573/*!******************************************!*\
4574 !*** ./node_modules/d3-ease/src/poly.js ***!
4575 \******************************************/
4576/*! exports provided: polyIn, polyOut, polyInOut */
4577/***/ (function(module, __webpack_exports__, __webpack_require__) {
4578
4579"use strict";
4580__webpack_require__.r(__webpack_exports__);
4581/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyIn", function() { return polyIn; });
4582/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyOut", function() { return polyOut; });
4583/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyInOut", function() { return polyInOut; });
4584var exponent = 3;
4585
4586var polyIn = (function custom(e) {
4587 e = +e;
4588
4589 function polyIn(t) {
4590 return Math.pow(t, e);
4591 }
4592
4593 polyIn.exponent = custom;
4594
4595 return polyIn;
4596})(exponent);
4597
4598var polyOut = (function custom(e) {
4599 e = +e;
4600
4601 function polyOut(t) {
4602 return 1 - Math.pow(1 - t, e);
4603 }
4604
4605 polyOut.exponent = custom;
4606
4607 return polyOut;
4608})(exponent);
4609
4610var polyInOut = (function custom(e) {
4611 e = +e;
4612
4613 function polyInOut(t) {
4614 return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
4615 }
4616
4617 polyInOut.exponent = custom;
4618
4619 return polyInOut;
4620})(exponent);
4621
4622
4623/***/ }),
4624
4625/***/ "./node_modules/d3-ease/src/quad.js":
4626/*!******************************************!*\
4627 !*** ./node_modules/d3-ease/src/quad.js ***!
4628 \******************************************/
4629/*! exports provided: quadIn, quadOut, quadInOut */
4630/***/ (function(module, __webpack_exports__, __webpack_require__) {
4631
4632"use strict";
4633__webpack_require__.r(__webpack_exports__);
4634/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadIn", function() { return quadIn; });
4635/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadOut", function() { return quadOut; });
4636/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadInOut", function() { return quadInOut; });
4637function quadIn(t) {
4638 return t * t;
4639}
4640
4641function quadOut(t) {
4642 return t * (2 - t);
4643}
4644
4645function quadInOut(t) {
4646 return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
4647}
4648
4649
4650/***/ }),
4651
4652/***/ "./node_modules/d3-ease/src/sin.js":
4653/*!*****************************************!*\
4654 !*** ./node_modules/d3-ease/src/sin.js ***!
4655 \*****************************************/
4656/*! exports provided: sinIn, sinOut, sinInOut */
4657/***/ (function(module, __webpack_exports__, __webpack_require__) {
4658
4659"use strict";
4660__webpack_require__.r(__webpack_exports__);
4661/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinIn", function() { return sinIn; });
4662/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinOut", function() { return sinOut; });
4663/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinInOut", function() { return sinInOut; });
4664var pi = Math.PI,
4665 halfPi = pi / 2;
4666
4667function sinIn(t) {
4668 return 1 - Math.cos(t * halfPi);
4669}
4670
4671function sinOut(t) {
4672 return Math.sin(t * halfPi);
4673}
4674
4675function sinInOut(t) {
4676 return (1 - Math.cos(pi * t)) / 2;
4677}
4678
4679
4680/***/ }),
4681
4682/***/ "./node_modules/d3-force/index.js":
4683/*!****************************************!*\
4684 !*** ./node_modules/d3-force/index.js ***!
4685 \****************************************/
4686/*! exports provided: forceCenter, forceCollide, forceLink, forceManyBody, forceRadial, forceSimulation, forceX, forceY */
4687/***/ (function(module, __webpack_exports__, __webpack_require__) {
4688
4689"use strict";
4690__webpack_require__.r(__webpack_exports__);
4691/* harmony import */ var _src_center__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/center */ "./node_modules/d3-force/src/center.js");
4692/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCenter", function() { return _src_center__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4693
4694/* harmony import */ var _src_collide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/collide */ "./node_modules/d3-force/src/collide.js");
4695/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCollide", function() { return _src_collide__WEBPACK_IMPORTED_MODULE_1__["default"]; });
4696
4697/* harmony import */ var _src_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/link */ "./node_modules/d3-force/src/link.js");
4698/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceLink", function() { return _src_link__WEBPACK_IMPORTED_MODULE_2__["default"]; });
4699
4700/* harmony import */ var _src_manyBody__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/manyBody */ "./node_modules/d3-force/src/manyBody.js");
4701/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceManyBody", function() { return _src_manyBody__WEBPACK_IMPORTED_MODULE_3__["default"]; });
4702
4703/* harmony import */ var _src_radial__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/radial */ "./node_modules/d3-force/src/radial.js");
4704/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceRadial", function() { return _src_radial__WEBPACK_IMPORTED_MODULE_4__["default"]; });
4705
4706/* harmony import */ var _src_simulation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/simulation */ "./node_modules/d3-force/src/simulation.js");
4707/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceSimulation", function() { return _src_simulation__WEBPACK_IMPORTED_MODULE_5__["default"]; });
4708
4709/* harmony import */ var _src_x__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/x */ "./node_modules/d3-force/src/x.js");
4710/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceX", function() { return _src_x__WEBPACK_IMPORTED_MODULE_6__["default"]; });
4711
4712/* harmony import */ var _src_y__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/y */ "./node_modules/d3-force/src/y.js");
4713/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceY", function() { return _src_y__WEBPACK_IMPORTED_MODULE_7__["default"]; });
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725/***/ }),
4726
4727/***/ "./node_modules/d3-force/src/center.js":
4728/*!*********************************************!*\
4729 !*** ./node_modules/d3-force/src/center.js ***!
4730 \*********************************************/
4731/*! exports provided: default */
4732/***/ (function(module, __webpack_exports__, __webpack_require__) {
4733
4734"use strict";
4735__webpack_require__.r(__webpack_exports__);
4736/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
4737 var nodes;
4738
4739 if (x == null) x = 0;
4740 if (y == null) y = 0;
4741
4742 function force() {
4743 var i,
4744 n = nodes.length,
4745 node,
4746 sx = 0,
4747 sy = 0;
4748
4749 for (i = 0; i < n; ++i) {
4750 node = nodes[i], sx += node.x, sy += node.y;
4751 }
4752
4753 for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {
4754 node = nodes[i], node.x -= sx, node.y -= sy;
4755 }
4756 }
4757
4758 force.initialize = function(_) {
4759 nodes = _;
4760 };
4761
4762 force.x = function(_) {
4763 return arguments.length ? (x = +_, force) : x;
4764 };
4765
4766 force.y = function(_) {
4767 return arguments.length ? (y = +_, force) : y;
4768 };
4769
4770 return force;
4771});
4772
4773
4774/***/ }),
4775
4776/***/ "./node_modules/d3-force/src/collide.js":
4777/*!**********************************************!*\
4778 !*** ./node_modules/d3-force/src/collide.js ***!
4779 \**********************************************/
4780/*! exports provided: default */
4781/***/ (function(module, __webpack_exports__, __webpack_require__) {
4782
4783"use strict";
4784__webpack_require__.r(__webpack_exports__);
4785/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
4786/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
4787/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/index.js");
4788
4789
4790
4791
4792function x(d) {
4793 return d.x + d.vx;
4794}
4795
4796function y(d) {
4797 return d.y + d.vy;
4798}
4799
4800/* harmony default export */ __webpack_exports__["default"] = (function(radius) {
4801 var nodes,
4802 radii,
4803 strength = 1,
4804 iterations = 1;
4805
4806 if (typeof radius !== "function") radius = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(radius == null ? 1 : +radius);
4807
4808 function force() {
4809 var i, n = nodes.length,
4810 tree,
4811 node,
4812 xi,
4813 yi,
4814 ri,
4815 ri2;
4816
4817 for (var k = 0; k < iterations; ++k) {
4818 tree = Object(d3_quadtree__WEBPACK_IMPORTED_MODULE_2__["quadtree"])(nodes, x, y).visitAfter(prepare);
4819 for (i = 0; i < n; ++i) {
4820 node = nodes[i];
4821 ri = radii[node.index], ri2 = ri * ri;
4822 xi = node.x + node.vx;
4823 yi = node.y + node.vy;
4824 tree.visit(apply);
4825 }
4826 }
4827
4828 function apply(quad, x0, y0, x1, y1) {
4829 var data = quad.data, rj = quad.r, r = ri + rj;
4830 if (data) {
4831 if (data.index > node.index) {
4832 var x = xi - data.x - data.vx,
4833 y = yi - data.y - data.vy,
4834 l = x * x + y * y;
4835 if (l < r * r) {
4836 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
4837 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
4838 l = (r - (l = Math.sqrt(l))) / l * strength;
4839 node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
4840 node.vy += (y *= l) * r;
4841 data.vx -= x * (r = 1 - r);
4842 data.vy -= y * r;
4843 }
4844 }
4845 return;
4846 }
4847 return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
4848 }
4849 }
4850
4851 function prepare(quad) {
4852 if (quad.data) return quad.r = radii[quad.data.index];
4853 for (var i = quad.r = 0; i < 4; ++i) {
4854 if (quad[i] && quad[i].r > quad.r) {
4855 quad.r = quad[i].r;
4856 }
4857 }
4858 }
4859
4860 function initialize() {
4861 if (!nodes) return;
4862 var i, n = nodes.length, node;
4863 radii = new Array(n);
4864 for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
4865 }
4866
4867 force.initialize = function(_) {
4868 nodes = _;
4869 initialize();
4870 };
4871
4872 force.iterations = function(_) {
4873 return arguments.length ? (iterations = +_, force) : iterations;
4874 };
4875
4876 force.strength = function(_) {
4877 return arguments.length ? (strength = +_, force) : strength;
4878 };
4879
4880 force.radius = function(_) {
4881 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : radius;
4882 };
4883
4884 return force;
4885});
4886
4887
4888/***/ }),
4889
4890/***/ "./node_modules/d3-force/src/constant.js":
4891/*!***********************************************!*\
4892 !*** ./node_modules/d3-force/src/constant.js ***!
4893 \***********************************************/
4894/*! exports provided: default */
4895/***/ (function(module, __webpack_exports__, __webpack_require__) {
4896
4897"use strict";
4898__webpack_require__.r(__webpack_exports__);
4899/* harmony default export */ __webpack_exports__["default"] = (function(x) {
4900 return function() {
4901 return x;
4902 };
4903});
4904
4905
4906/***/ }),
4907
4908/***/ "./node_modules/d3-force/src/jiggle.js":
4909/*!*********************************************!*\
4910 !*** ./node_modules/d3-force/src/jiggle.js ***!
4911 \*********************************************/
4912/*! exports provided: default */
4913/***/ (function(module, __webpack_exports__, __webpack_require__) {
4914
4915"use strict";
4916__webpack_require__.r(__webpack_exports__);
4917/* harmony default export */ __webpack_exports__["default"] = (function() {
4918 return (Math.random() - 0.5) * 1e-6;
4919});
4920
4921
4922/***/ }),
4923
4924/***/ "./node_modules/d3-force/src/link.js":
4925/*!*******************************************!*\
4926 !*** ./node_modules/d3-force/src/link.js ***!
4927 \*******************************************/
4928/*! exports provided: default */
4929/***/ (function(module, __webpack_exports__, __webpack_require__) {
4930
4931"use strict";
4932__webpack_require__.r(__webpack_exports__);
4933/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
4934/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
4935/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/index.js");
4936
4937
4938
4939
4940function index(d) {
4941 return d.index;
4942}
4943
4944function find(nodeById, nodeId) {
4945 var node = nodeById.get(nodeId);
4946 if (!node) throw new Error("missing: " + nodeId);
4947 return node;
4948}
4949
4950/* harmony default export */ __webpack_exports__["default"] = (function(links) {
4951 var id = index,
4952 strength = defaultStrength,
4953 strengths,
4954 distance = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(30),
4955 distances,
4956 nodes,
4957 count,
4958 bias,
4959 iterations = 1;
4960
4961 if (links == null) links = [];
4962
4963 function defaultStrength(link) {
4964 return 1 / Math.min(count[link.source.index], count[link.target.index]);
4965 }
4966
4967 function force(alpha) {
4968 for (var k = 0, n = links.length; k < iterations; ++k) {
4969 for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
4970 link = links[i], source = link.source, target = link.target;
4971 x = target.x + target.vx - source.x - source.vx || Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])();
4972 y = target.y + target.vy - source.y - source.vy || Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])();
4973 l = Math.sqrt(x * x + y * y);
4974 l = (l - distances[i]) / l * alpha * strengths[i];
4975 x *= l, y *= l;
4976 target.vx -= x * (b = bias[i]);
4977 target.vy -= y * b;
4978 source.vx += x * (b = 1 - b);
4979 source.vy += y * b;
4980 }
4981 }
4982 }
4983
4984 function initialize() {
4985 if (!nodes) return;
4986
4987 var i,
4988 n = nodes.length,
4989 m = links.length,
4990 nodeById = Object(d3_collection__WEBPACK_IMPORTED_MODULE_2__["map"])(nodes, id),
4991 link;
4992
4993 for (i = 0, count = new Array(n); i < m; ++i) {
4994 link = links[i], link.index = i;
4995 if (typeof link.source !== "object") link.source = find(nodeById, link.source);
4996 if (typeof link.target !== "object") link.target = find(nodeById, link.target);
4997 count[link.source.index] = (count[link.source.index] || 0) + 1;
4998 count[link.target.index] = (count[link.target.index] || 0) + 1;
4999 }
5000
5001 for (i = 0, bias = new Array(m); i < m; ++i) {
5002 link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
5003 }
5004
5005 strengths = new Array(m), initializeStrength();
5006 distances = new Array(m), initializeDistance();
5007 }
5008
5009 function initializeStrength() {
5010 if (!nodes) return;
5011
5012 for (var i = 0, n = links.length; i < n; ++i) {
5013 strengths[i] = +strength(links[i], i, links);
5014 }
5015 }
5016
5017 function initializeDistance() {
5018 if (!nodes) return;
5019
5020 for (var i = 0, n = links.length; i < n; ++i) {
5021 distances[i] = +distance(links[i], i, links);
5022 }
5023 }
5024
5025 force.initialize = function(_) {
5026 nodes = _;
5027 initialize();
5028 };
5029
5030 force.links = function(_) {
5031 return arguments.length ? (links = _, initialize(), force) : links;
5032 };
5033
5034 force.id = function(_) {
5035 return arguments.length ? (id = _, force) : id;
5036 };
5037
5038 force.iterations = function(_) {
5039 return arguments.length ? (iterations = +_, force) : iterations;
5040 };
5041
5042 force.strength = function(_) {
5043 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initializeStrength(), force) : strength;
5044 };
5045
5046 force.distance = function(_) {
5047 return arguments.length ? (distance = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initializeDistance(), force) : distance;
5048 };
5049
5050 return force;
5051});
5052
5053
5054/***/ }),
5055
5056/***/ "./node_modules/d3-force/src/manyBody.js":
5057/*!***********************************************!*\
5058 !*** ./node_modules/d3-force/src/manyBody.js ***!
5059 \***********************************************/
5060/*! exports provided: default */
5061/***/ (function(module, __webpack_exports__, __webpack_require__) {
5062
5063"use strict";
5064__webpack_require__.r(__webpack_exports__);
5065/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5066/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
5067/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/index.js");
5068/* harmony import */ var _simulation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./simulation */ "./node_modules/d3-force/src/simulation.js");
5069
5070
5071
5072
5073
5074/* harmony default export */ __webpack_exports__["default"] = (function() {
5075 var nodes,
5076 node,
5077 alpha,
5078 strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(-30),
5079 strengths,
5080 distanceMin2 = 1,
5081 distanceMax2 = Infinity,
5082 theta2 = 0.81;
5083
5084 function force(_) {
5085 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);
5086 for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
5087 }
5088
5089 function initialize() {
5090 if (!nodes) return;
5091 var i, n = nodes.length, node;
5092 strengths = new Array(n);
5093 for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
5094 }
5095
5096 function accumulate(quad) {
5097 var strength = 0, q, c, weight = 0, x, y, i;
5098
5099 // For internal nodes, accumulate forces from child quadrants.
5100 if (quad.length) {
5101 for (x = y = i = 0; i < 4; ++i) {
5102 if ((q = quad[i]) && (c = Math.abs(q.value))) {
5103 strength += q.value, weight += c, x += c * q.x, y += c * q.y;
5104 }
5105 }
5106 quad.x = x / weight;
5107 quad.y = y / weight;
5108 }
5109
5110 // For leaf nodes, accumulate forces from coincident quadrants.
5111 else {
5112 q = quad;
5113 q.x = q.data.x;
5114 q.y = q.data.y;
5115 do strength += strengths[q.data.index];
5116 while (q = q.next);
5117 }
5118
5119 quad.value = strength;
5120 }
5121
5122 function apply(quad, x1, _, x2) {
5123 if (!quad.value) return true;
5124
5125 var x = quad.x - node.x,
5126 y = quad.y - node.y,
5127 w = x2 - x1,
5128 l = x * x + y * y;
5129
5130 // Apply the Barnes-Hut approximation if possible.
5131 // Limit forces for very close nodes; randomize direction if coincident.
5132 if (w * w / theta2 < l) {
5133 if (l < distanceMax2) {
5134 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
5135 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
5136 if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
5137 node.vx += x * quad.value * alpha / l;
5138 node.vy += y * quad.value * alpha / l;
5139 }
5140 return true;
5141 }
5142
5143 // Otherwise, process points directly.
5144 else if (quad.length || l >= distanceMax2) return;
5145
5146 // Limit forces for very close nodes; randomize direction if coincident.
5147 if (quad.data !== node || quad.next) {
5148 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
5149 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
5150 if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
5151 }
5152
5153 do if (quad.data !== node) {
5154 w = strengths[quad.data.index] * alpha / l;
5155 node.vx += x * w;
5156 node.vy += y * w;
5157 } while (quad = quad.next);
5158 }
5159
5160 force.initialize = function(_) {
5161 nodes = _;
5162 initialize();
5163 };
5164
5165 force.strength = function(_) {
5166 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
5167 };
5168
5169 force.distanceMin = function(_) {
5170 return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
5171 };
5172
5173 force.distanceMax = function(_) {
5174 return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
5175 };
5176
5177 force.theta = function(_) {
5178 return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
5179 };
5180
5181 return force;
5182});
5183
5184
5185/***/ }),
5186
5187/***/ "./node_modules/d3-force/src/radial.js":
5188/*!*********************************************!*\
5189 !*** ./node_modules/d3-force/src/radial.js ***!
5190 \*********************************************/
5191/*! exports provided: default */
5192/***/ (function(module, __webpack_exports__, __webpack_require__) {
5193
5194"use strict";
5195__webpack_require__.r(__webpack_exports__);
5196/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5197
5198
5199/* harmony default export */ __webpack_exports__["default"] = (function(radius, x, y) {
5200 var nodes,
5201 strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
5202 strengths,
5203 radiuses;
5204
5205 if (typeof radius !== "function") radius = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+radius);
5206 if (x == null) x = 0;
5207 if (y == null) y = 0;
5208
5209 function force(alpha) {
5210 for (var i = 0, n = nodes.length; i < n; ++i) {
5211 var node = nodes[i],
5212 dx = node.x - x || 1e-6,
5213 dy = node.y - y || 1e-6,
5214 r = Math.sqrt(dx * dx + dy * dy),
5215 k = (radiuses[i] - r) * strengths[i] * alpha / r;
5216 node.vx += dx * k;
5217 node.vy += dy * k;
5218 }
5219 }
5220
5221 function initialize() {
5222 if (!nodes) return;
5223 var i, n = nodes.length;
5224 strengths = new Array(n);
5225 radiuses = new Array(n);
5226 for (i = 0; i < n; ++i) {
5227 radiuses[i] = +radius(nodes[i], i, nodes);
5228 strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
5229 }
5230 }
5231
5232 force.initialize = function(_) {
5233 nodes = _, initialize();
5234 };
5235
5236 force.strength = function(_) {
5237 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
5238 };
5239
5240 force.radius = function(_) {
5241 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : radius;
5242 };
5243
5244 force.x = function(_) {
5245 return arguments.length ? (x = +_, force) : x;
5246 };
5247
5248 force.y = function(_) {
5249 return arguments.length ? (y = +_, force) : y;
5250 };
5251
5252 return force;
5253});
5254
5255
5256/***/ }),
5257
5258/***/ "./node_modules/d3-force/src/simulation.js":
5259/*!*************************************************!*\
5260 !*** ./node_modules/d3-force/src/simulation.js ***!
5261 \*************************************************/
5262/*! exports provided: x, y, default */
5263/***/ (function(module, __webpack_exports__, __webpack_require__) {
5264
5265"use strict";
5266__webpack_require__.r(__webpack_exports__);
5267/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
5268/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
5269/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/index.js");
5270/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/index.js");
5271/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/index.js");
5272
5273
5274
5275
5276function x(d) {
5277 return d.x;
5278}
5279
5280function y(d) {
5281 return d.y;
5282}
5283
5284var initialRadius = 10,
5285 initialAngle = Math.PI * (3 - Math.sqrt(5));
5286
5287/* harmony default export */ __webpack_exports__["default"] = (function(nodes) {
5288 var simulation,
5289 alpha = 1,
5290 alphaMin = 0.001,
5291 alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
5292 alphaTarget = 0,
5293 velocityDecay = 0.6,
5294 forces = Object(d3_collection__WEBPACK_IMPORTED_MODULE_1__["map"])(),
5295 stepper = Object(d3_timer__WEBPACK_IMPORTED_MODULE_2__["timer"])(step),
5296 event = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("tick", "end");
5297
5298 if (nodes == null) nodes = [];
5299
5300 function step() {
5301 tick();
5302 event.call("tick", simulation);
5303 if (alpha < alphaMin) {
5304 stepper.stop();
5305 event.call("end", simulation);
5306 }
5307 }
5308
5309 function tick() {
5310 var i, n = nodes.length, node;
5311
5312 alpha += (alphaTarget - alpha) * alphaDecay;
5313
5314 forces.each(function(force) {
5315 force(alpha);
5316 });
5317
5318 for (i = 0; i < n; ++i) {
5319 node = nodes[i];
5320 if (node.fx == null) node.x += node.vx *= velocityDecay;
5321 else node.x = node.fx, node.vx = 0;
5322 if (node.fy == null) node.y += node.vy *= velocityDecay;
5323 else node.y = node.fy, node.vy = 0;
5324 }
5325 }
5326
5327 function initializeNodes() {
5328 for (var i = 0, n = nodes.length, node; i < n; ++i) {
5329 node = nodes[i], node.index = i;
5330 if (isNaN(node.x) || isNaN(node.y)) {
5331 var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;
5332 node.x = radius * Math.cos(angle);
5333 node.y = radius * Math.sin(angle);
5334 }
5335 if (isNaN(node.vx) || isNaN(node.vy)) {
5336 node.vx = node.vy = 0;
5337 }
5338 }
5339 }
5340
5341 function initializeForce(force) {
5342 if (force.initialize) force.initialize(nodes);
5343 return force;
5344 }
5345
5346 initializeNodes();
5347
5348 return simulation = {
5349 tick: tick,
5350
5351 restart: function() {
5352 return stepper.restart(step), simulation;
5353 },
5354
5355 stop: function() {
5356 return stepper.stop(), simulation;
5357 },
5358
5359 nodes: function(_) {
5360 return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;
5361 },
5362
5363 alpha: function(_) {
5364 return arguments.length ? (alpha = +_, simulation) : alpha;
5365 },
5366
5367 alphaMin: function(_) {
5368 return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
5369 },
5370
5371 alphaDecay: function(_) {
5372 return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
5373 },
5374
5375 alphaTarget: function(_) {
5376 return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
5377 },
5378
5379 velocityDecay: function(_) {
5380 return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
5381 },
5382
5383 force: function(name, _) {
5384 return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
5385 },
5386
5387 find: function(x, y, radius) {
5388 var i = 0,
5389 n = nodes.length,
5390 dx,
5391 dy,
5392 d2,
5393 node,
5394 closest;
5395
5396 if (radius == null) radius = Infinity;
5397 else radius *= radius;
5398
5399 for (i = 0; i < n; ++i) {
5400 node = nodes[i];
5401 dx = x - node.x;
5402 dy = y - node.y;
5403 d2 = dx * dx + dy * dy;
5404 if (d2 < radius) closest = node, radius = d2;
5405 }
5406
5407 return closest;
5408 },
5409
5410 on: function(name, _) {
5411 return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
5412 }
5413 };
5414});
5415
5416
5417/***/ }),
5418
5419/***/ "./node_modules/d3-force/src/x.js":
5420/*!****************************************!*\
5421 !*** ./node_modules/d3-force/src/x.js ***!
5422 \****************************************/
5423/*! exports provided: default */
5424/***/ (function(module, __webpack_exports__, __webpack_require__) {
5425
5426"use strict";
5427__webpack_require__.r(__webpack_exports__);
5428/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5429
5430
5431/* harmony default export */ __webpack_exports__["default"] = (function(x) {
5432 var strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
5433 nodes,
5434 strengths,
5435 xz;
5436
5437 if (typeof x !== "function") x = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(x == null ? 0 : +x);
5438
5439 function force(alpha) {
5440 for (var i = 0, n = nodes.length, node; i < n; ++i) {
5441 node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
5442 }
5443 }
5444
5445 function initialize() {
5446 if (!nodes) return;
5447 var i, n = nodes.length;
5448 strengths = new Array(n);
5449 xz = new Array(n);
5450 for (i = 0; i < n; ++i) {
5451 strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
5452 }
5453 }
5454
5455 force.initialize = function(_) {
5456 nodes = _;
5457 initialize();
5458 };
5459
5460 force.strength = function(_) {
5461 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
5462 };
5463
5464 force.x = function(_) {
5465 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : x;
5466 };
5467
5468 return force;
5469});
5470
5471
5472/***/ }),
5473
5474/***/ "./node_modules/d3-force/src/y.js":
5475/*!****************************************!*\
5476 !*** ./node_modules/d3-force/src/y.js ***!
5477 \****************************************/
5478/*! exports provided: default */
5479/***/ (function(module, __webpack_exports__, __webpack_require__) {
5480
5481"use strict";
5482__webpack_require__.r(__webpack_exports__);
5483/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5484
5485
5486/* harmony default export */ __webpack_exports__["default"] = (function(y) {
5487 var strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
5488 nodes,
5489 strengths,
5490 yz;
5491
5492 if (typeof y !== "function") y = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(y == null ? 0 : +y);
5493
5494 function force(alpha) {
5495 for (var i = 0, n = nodes.length, node; i < n; ++i) {
5496 node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
5497 }
5498 }
5499
5500 function initialize() {
5501 if (!nodes) return;
5502 var i, n = nodes.length;
5503 strengths = new Array(n);
5504 yz = new Array(n);
5505 for (i = 0; i < n; ++i) {
5506 strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
5507 }
5508 }
5509
5510 force.initialize = function(_) {
5511 nodes = _;
5512 initialize();
5513 };
5514
5515 force.strength = function(_) {
5516 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
5517 };
5518
5519 force.y = function(_) {
5520 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : y;
5521 };
5522
5523 return force;
5524});
5525
5526
5527/***/ }),
5528
5529/***/ "./node_modules/d3-format/index.js":
5530/*!*****************************************!*\
5531 !*** ./node_modules/d3-format/index.js ***!
5532 \*****************************************/
5533/*! exports provided: formatDefaultLocale, format, formatPrefix, formatLocale, formatSpecifier, precisionFixed, precisionPrefix, precisionRound */
5534/***/ (function(module, __webpack_exports__, __webpack_require__) {
5535
5536"use strict";
5537__webpack_require__.r(__webpack_exports__);
5538/* harmony import */ var _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/defaultLocale */ "./node_modules/d3-format/src/defaultLocale.js");
5539/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatDefaultLocale", function() { return _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["default"]; });
5540
5541/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["format"]; });
5542
5543/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["formatPrefix"]; });
5544
5545/* harmony import */ var _src_locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/locale */ "./node_modules/d3-format/src/locale.js");
5546/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatLocale", function() { return _src_locale__WEBPACK_IMPORTED_MODULE_1__["default"]; });
5547
5548/* harmony import */ var _src_formatSpecifier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/formatSpecifier */ "./node_modules/d3-format/src/formatSpecifier.js");
5549/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatSpecifier", function() { return _src_formatSpecifier__WEBPACK_IMPORTED_MODULE_2__["default"]; });
5550
5551/* harmony import */ var _src_precisionFixed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/precisionFixed */ "./node_modules/d3-format/src/precisionFixed.js");
5552/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionFixed", function() { return _src_precisionFixed__WEBPACK_IMPORTED_MODULE_3__["default"]; });
5553
5554/* harmony import */ var _src_precisionPrefix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/precisionPrefix */ "./node_modules/d3-format/src/precisionPrefix.js");
5555/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionPrefix", function() { return _src_precisionPrefix__WEBPACK_IMPORTED_MODULE_4__["default"]; });
5556
5557/* harmony import */ var _src_precisionRound__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/precisionRound */ "./node_modules/d3-format/src/precisionRound.js");
5558/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return _src_precisionRound__WEBPACK_IMPORTED_MODULE_5__["default"]; });
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568/***/ }),
5569
5570/***/ "./node_modules/d3-format/src/defaultLocale.js":
5571/*!*****************************************************!*\
5572 !*** ./node_modules/d3-format/src/defaultLocale.js ***!
5573 \*****************************************************/
5574/*! exports provided: format, formatPrefix, default */
5575/***/ (function(module, __webpack_exports__, __webpack_require__) {
5576
5577"use strict";
5578__webpack_require__.r(__webpack_exports__);
5579/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "format", function() { return format; });
5580/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return formatPrefix; });
5581/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return defaultLocale; });
5582/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale */ "./node_modules/d3-format/src/locale.js");
5583
5584
5585var locale;
5586var format;
5587var formatPrefix;
5588
5589defaultLocale({
5590 decimal: ".",
5591 thousands: ",",
5592 grouping: [3],
5593 currency: ["$", ""]
5594});
5595
5596function defaultLocale(definition) {
5597 locale = Object(_locale__WEBPACK_IMPORTED_MODULE_0__["default"])(definition);
5598 format = locale.format;
5599 formatPrefix = locale.formatPrefix;
5600 return locale;
5601}
5602
5603
5604/***/ }),
5605
5606/***/ "./node_modules/d3-format/src/exponent.js":
5607/*!************************************************!*\
5608 !*** ./node_modules/d3-format/src/exponent.js ***!
5609 \************************************************/
5610/*! exports provided: default */
5611/***/ (function(module, __webpack_exports__, __webpack_require__) {
5612
5613"use strict";
5614__webpack_require__.r(__webpack_exports__);
5615/* harmony import */ var _formatDecimal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal */ "./node_modules/d3-format/src/formatDecimal.js");
5616
5617
5618/* harmony default export */ __webpack_exports__["default"] = (function(x) {
5619 return x = Object(_formatDecimal__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(x)), x ? x[1] : NaN;
5620});
5621
5622
5623/***/ }),
5624
5625/***/ "./node_modules/d3-format/src/formatDecimal.js":
5626/*!*****************************************************!*\
5627 !*** ./node_modules/d3-format/src/formatDecimal.js ***!
5628 \*****************************************************/
5629/*! exports provided: default */
5630/***/ (function(module, __webpack_exports__, __webpack_require__) {
5631
5632"use strict";
5633__webpack_require__.r(__webpack_exports__);
5634// Computes the decimal coefficient and exponent of the specified number x with
5635// significant digits p, where x is positive and p is in [1, 21] or undefined.
5636// For example, formatDecimal(1.23) returns ["123", 0].
5637/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
5638 if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
5639 var i, coefficient = x.slice(0, i);
5640
5641 // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
5642 // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
5643 return [
5644 coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
5645 +x.slice(i + 1)
5646 ];
5647});
5648
5649
5650/***/ }),
5651
5652/***/ "./node_modules/d3-format/src/formatDefault.js":
5653/*!*****************************************************!*\
5654 !*** ./node_modules/d3-format/src/formatDefault.js ***!
5655 \*****************************************************/
5656/*! exports provided: default */
5657/***/ (function(module, __webpack_exports__, __webpack_require__) {
5658
5659"use strict";
5660__webpack_require__.r(__webpack_exports__);
5661/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
5662 x = x.toPrecision(p);
5663
5664 out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {
5665 switch (x[i]) {
5666 case ".": i0 = i1 = i; break;
5667 case "0": if (i0 === 0) i0 = i; i1 = i; break;
5668 case "e": break out;
5669 default: if (i0 > 0) i0 = 0; break;
5670 }
5671 }
5672
5673 return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;
5674});
5675
5676
5677/***/ }),
5678
5679/***/ "./node_modules/d3-format/src/formatGroup.js":
5680/*!***************************************************!*\
5681 !*** ./node_modules/d3-format/src/formatGroup.js ***!
5682 \***************************************************/
5683/*! exports provided: default */
5684/***/ (function(module, __webpack_exports__, __webpack_require__) {
5685
5686"use strict";
5687__webpack_require__.r(__webpack_exports__);
5688/* harmony default export */ __webpack_exports__["default"] = (function(grouping, thousands) {
5689 return function(value, width) {
5690 var i = value.length,
5691 t = [],
5692 j = 0,
5693 g = grouping[0],
5694 length = 0;
5695
5696 while (i > 0 && g > 0) {
5697 if (length + g + 1 > width) g = Math.max(1, width - length);
5698 t.push(value.substring(i -= g, i + g));
5699 if ((length += g + 1) > width) break;
5700 g = grouping[j = (j + 1) % grouping.length];
5701 }
5702
5703 return t.reverse().join(thousands);
5704 };
5705});
5706
5707
5708/***/ }),
5709
5710/***/ "./node_modules/d3-format/src/formatNumerals.js":
5711/*!******************************************************!*\
5712 !*** ./node_modules/d3-format/src/formatNumerals.js ***!
5713 \******************************************************/
5714/*! exports provided: default */
5715/***/ (function(module, __webpack_exports__, __webpack_require__) {
5716
5717"use strict";
5718__webpack_require__.r(__webpack_exports__);
5719/* harmony default export */ __webpack_exports__["default"] = (function(numerals) {
5720 return function(value) {
5721 return value.replace(/[0-9]/g, function(i) {
5722 return numerals[+i];
5723 });
5724 };
5725});
5726
5727
5728/***/ }),
5729
5730/***/ "./node_modules/d3-format/src/formatPrefixAuto.js":
5731/*!********************************************************!*\
5732 !*** ./node_modules/d3-format/src/formatPrefixAuto.js ***!
5733 \********************************************************/
5734/*! exports provided: prefixExponent, default */
5735/***/ (function(module, __webpack_exports__, __webpack_require__) {
5736
5737"use strict";
5738__webpack_require__.r(__webpack_exports__);
5739/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefixExponent", function() { return prefixExponent; });
5740/* harmony import */ var _formatDecimal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal */ "./node_modules/d3-format/src/formatDecimal.js");
5741
5742
5743var prefixExponent;
5744
5745/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
5746 var d = Object(_formatDecimal__WEBPACK_IMPORTED_MODULE_0__["default"])(x, p);
5747 if (!d) return x + "";
5748 var coefficient = d[0],
5749 exponent = d[1],
5750 i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
5751 n = coefficient.length;
5752 return i === n ? coefficient
5753 : i > n ? coefficient + new Array(i - n + 1).join("0")
5754 : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
5755 : "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!
5756});
5757
5758
5759/***/ }),
5760
5761/***/ "./node_modules/d3-format/src/formatRounded.js":
5762/*!*****************************************************!*\
5763 !*** ./node_modules/d3-format/src/formatRounded.js ***!
5764 \*****************************************************/
5765/*! exports provided: default */
5766/***/ (function(module, __webpack_exports__, __webpack_require__) {
5767
5768"use strict";
5769__webpack_require__.r(__webpack_exports__);
5770/* harmony import */ var _formatDecimal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal */ "./node_modules/d3-format/src/formatDecimal.js");
5771
5772
5773/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
5774 var d = Object(_formatDecimal__WEBPACK_IMPORTED_MODULE_0__["default"])(x, p);
5775 if (!d) return x + "";
5776 var coefficient = d[0],
5777 exponent = d[1];
5778 return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
5779 : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
5780 : coefficient + new Array(exponent - coefficient.length + 2).join("0");
5781});
5782
5783
5784/***/ }),
5785
5786/***/ "./node_modules/d3-format/src/formatSpecifier.js":
5787/*!*******************************************************!*\
5788 !*** ./node_modules/d3-format/src/formatSpecifier.js ***!
5789 \*******************************************************/
5790/*! exports provided: default */
5791/***/ (function(module, __webpack_exports__, __webpack_require__) {
5792
5793"use strict";
5794__webpack_require__.r(__webpack_exports__);
5795/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatSpecifier; });
5796/* harmony import */ var _formatTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatTypes */ "./node_modules/d3-format/src/formatTypes.js");
5797
5798
5799// [[fill]align][sign][symbol][0][width][,][.precision][type]
5800var re = /^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;
5801
5802function formatSpecifier(specifier) {
5803 return new FormatSpecifier(specifier);
5804}
5805
5806formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
5807
5808function FormatSpecifier(specifier) {
5809 if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
5810
5811 var match,
5812 fill = match[1] || " ",
5813 align = match[2] || ">",
5814 sign = match[3] || "-",
5815 symbol = match[4] || "",
5816 zero = !!match[5],
5817 width = match[6] && +match[6],
5818 comma = !!match[7],
5819 precision = match[8] && +match[8].slice(1),
5820 type = match[9] || "";
5821
5822 // The "n" type is an alias for ",g".
5823 if (type === "n") comma = true, type = "g";
5824
5825 // Map invalid types to the default format.
5826 else if (!_formatTypes__WEBPACK_IMPORTED_MODULE_0__["default"][type]) type = "";
5827
5828 // If zero fill is specified, padding goes after sign and before digits.
5829 if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
5830
5831 this.fill = fill;
5832 this.align = align;
5833 this.sign = sign;
5834 this.symbol = symbol;
5835 this.zero = zero;
5836 this.width = width;
5837 this.comma = comma;
5838 this.precision = precision;
5839 this.type = type;
5840}
5841
5842FormatSpecifier.prototype.toString = function() {
5843 return this.fill
5844 + this.align
5845 + this.sign
5846 + this.symbol
5847 + (this.zero ? "0" : "")
5848 + (this.width == null ? "" : Math.max(1, this.width | 0))
5849 + (this.comma ? "," : "")
5850 + (this.precision == null ? "" : "." + Math.max(0, this.precision | 0))
5851 + this.type;
5852};
5853
5854
5855/***/ }),
5856
5857/***/ "./node_modules/d3-format/src/formatTypes.js":
5858/*!***************************************************!*\
5859 !*** ./node_modules/d3-format/src/formatTypes.js ***!
5860 \***************************************************/
5861/*! exports provided: default */
5862/***/ (function(module, __webpack_exports__, __webpack_require__) {
5863
5864"use strict";
5865__webpack_require__.r(__webpack_exports__);
5866/* harmony import */ var _formatDefault__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDefault */ "./node_modules/d3-format/src/formatDefault.js");
5867/* harmony import */ var _formatPrefixAuto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatPrefixAuto */ "./node_modules/d3-format/src/formatPrefixAuto.js");
5868/* harmony import */ var _formatRounded__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatRounded */ "./node_modules/d3-format/src/formatRounded.js");
5869
5870
5871
5872
5873/* harmony default export */ __webpack_exports__["default"] = ({
5874 "": _formatDefault__WEBPACK_IMPORTED_MODULE_0__["default"],
5875 "%": function(x, p) { return (x * 100).toFixed(p); },
5876 "b": function(x) { return Math.round(x).toString(2); },
5877 "c": function(x) { return x + ""; },
5878 "d": function(x) { return Math.round(x).toString(10); },
5879 "e": function(x, p) { return x.toExponential(p); },
5880 "f": function(x, p) { return x.toFixed(p); },
5881 "g": function(x, p) { return x.toPrecision(p); },
5882 "o": function(x) { return Math.round(x).toString(8); },
5883 "p": function(x, p) { return Object(_formatRounded__WEBPACK_IMPORTED_MODULE_2__["default"])(x * 100, p); },
5884 "r": _formatRounded__WEBPACK_IMPORTED_MODULE_2__["default"],
5885 "s": _formatPrefixAuto__WEBPACK_IMPORTED_MODULE_1__["default"],
5886 "X": function(x) { return Math.round(x).toString(16).toUpperCase(); },
5887 "x": function(x) { return Math.round(x).toString(16); }
5888});
5889
5890
5891/***/ }),
5892
5893/***/ "./node_modules/d3-format/src/identity.js":
5894/*!************************************************!*\
5895 !*** ./node_modules/d3-format/src/identity.js ***!
5896 \************************************************/
5897/*! exports provided: default */
5898/***/ (function(module, __webpack_exports__, __webpack_require__) {
5899
5900"use strict";
5901__webpack_require__.r(__webpack_exports__);
5902/* harmony default export */ __webpack_exports__["default"] = (function(x) {
5903 return x;
5904});
5905
5906
5907/***/ }),
5908
5909/***/ "./node_modules/d3-format/src/locale.js":
5910/*!**********************************************!*\
5911 !*** ./node_modules/d3-format/src/locale.js ***!
5912 \**********************************************/
5913/*! exports provided: default */
5914/***/ (function(module, __webpack_exports__, __webpack_require__) {
5915
5916"use strict";
5917__webpack_require__.r(__webpack_exports__);
5918/* harmony import */ var _exponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent */ "./node_modules/d3-format/src/exponent.js");
5919/* harmony import */ var _formatGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatGroup */ "./node_modules/d3-format/src/formatGroup.js");
5920/* harmony import */ var _formatNumerals__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatNumerals */ "./node_modules/d3-format/src/formatNumerals.js");
5921/* harmony import */ var _formatSpecifier__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formatSpecifier */ "./node_modules/d3-format/src/formatSpecifier.js");
5922/* harmony import */ var _formatTypes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatTypes */ "./node_modules/d3-format/src/formatTypes.js");
5923/* harmony import */ var _formatPrefixAuto__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatPrefixAuto */ "./node_modules/d3-format/src/formatPrefixAuto.js");
5924/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-format/src/identity.js");
5925
5926
5927
5928
5929
5930
5931
5932
5933var prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
5934
5935/* harmony default export */ __webpack_exports__["default"] = (function(locale) {
5936 var group = locale.grouping && locale.thousands ? Object(_formatGroup__WEBPACK_IMPORTED_MODULE_1__["default"])(locale.grouping, locale.thousands) : _identity__WEBPACK_IMPORTED_MODULE_6__["default"],
5937 currency = locale.currency,
5938 decimal = locale.decimal,
5939 numerals = locale.numerals ? Object(_formatNumerals__WEBPACK_IMPORTED_MODULE_2__["default"])(locale.numerals) : _identity__WEBPACK_IMPORTED_MODULE_6__["default"],
5940 percent = locale.percent || "%";
5941
5942 function newFormat(specifier) {
5943 specifier = Object(_formatSpecifier__WEBPACK_IMPORTED_MODULE_3__["default"])(specifier);
5944
5945 var fill = specifier.fill,
5946 align = specifier.align,
5947 sign = specifier.sign,
5948 symbol = specifier.symbol,
5949 zero = specifier.zero,
5950 width = specifier.width,
5951 comma = specifier.comma,
5952 precision = specifier.precision,
5953 type = specifier.type;
5954
5955 // Compute the prefix and suffix.
5956 // For SI-prefix, the suffix is lazily computed.
5957 var prefix = symbol === "$" ? currency[0] : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
5958 suffix = symbol === "$" ? currency[1] : /[%p]/.test(type) ? percent : "";
5959
5960 // What format function should we use?
5961 // Is this an integer type?
5962 // Can this type generate exponential notation?
5963 var formatType = _formatTypes__WEBPACK_IMPORTED_MODULE_4__["default"][type],
5964 maybeSuffix = !type || /[defgprs%]/.test(type);
5965
5966 // Set the default precision if not specified,
5967 // or clamp the specified precision to the supported range.
5968 // For significant precision, it must be in [1, 21].
5969 // For fixed precision, it must be in [0, 20].
5970 precision = precision == null ? (type ? 6 : 12)
5971 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
5972 : Math.max(0, Math.min(20, precision));
5973
5974 function format(value) {
5975 var valuePrefix = prefix,
5976 valueSuffix = suffix,
5977 i, n, c;
5978
5979 if (type === "c") {
5980 valueSuffix = formatType(value) + valueSuffix;
5981 value = "";
5982 } else {
5983 value = +value;
5984
5985 // Perform the initial formatting.
5986 var valueNegative = value < 0;
5987 value = formatType(Math.abs(value), precision);
5988
5989 // If a negative value rounds to zero during formatting, treat as positive.
5990 if (valueNegative && +value === 0) valueNegative = false;
5991
5992 // Compute the prefix and suffix.
5993 valuePrefix = (valueNegative ? (sign === "(" ? sign : "-") : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
5994 valueSuffix = (type === "s" ? prefixes[8 + _formatPrefixAuto__WEBPACK_IMPORTED_MODULE_5__["prefixExponent"] / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
5995
5996 // Break the formatted value into the integer “value” part that can be
5997 // grouped, and fractional or exponential “suffix” part that is not.
5998 if (maybeSuffix) {
5999 i = -1, n = value.length;
6000 while (++i < n) {
6001 if (c = value.charCodeAt(i), 48 > c || c > 57) {
6002 valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
6003 value = value.slice(0, i);
6004 break;
6005 }
6006 }
6007 }
6008 }
6009
6010 // If the fill character is not "0", grouping is applied before padding.
6011 if (comma && !zero) value = group(value, Infinity);
6012
6013 // Compute the padding.
6014 var length = valuePrefix.length + value.length + valueSuffix.length,
6015 padding = length < width ? new Array(width - length + 1).join(fill) : "";
6016
6017 // If the fill character is "0", grouping is applied after padding.
6018 if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
6019
6020 // Reconstruct the final output based on the desired alignment.
6021 switch (align) {
6022 case "<": value = valuePrefix + value + valueSuffix + padding; break;
6023 case "=": value = valuePrefix + padding + value + valueSuffix; break;
6024 case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
6025 default: value = padding + valuePrefix + value + valueSuffix; break;
6026 }
6027
6028 return numerals(value);
6029 }
6030
6031 format.toString = function() {
6032 return specifier + "";
6033 };
6034
6035 return format;
6036 }
6037
6038 function formatPrefix(specifier, value) {
6039 var f = newFormat((specifier = Object(_formatSpecifier__WEBPACK_IMPORTED_MODULE_3__["default"])(specifier), specifier.type = "f", specifier)),
6040 e = Math.max(-8, Math.min(8, Math.floor(Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(value) / 3))) * 3,
6041 k = Math.pow(10, -e),
6042 prefix = prefixes[8 + e / 3];
6043 return function(value) {
6044 return f(k * value) + prefix;
6045 };
6046 }
6047
6048 return {
6049 format: newFormat,
6050 formatPrefix: formatPrefix
6051 };
6052});
6053
6054
6055/***/ }),
6056
6057/***/ "./node_modules/d3-format/src/precisionFixed.js":
6058/*!******************************************************!*\
6059 !*** ./node_modules/d3-format/src/precisionFixed.js ***!
6060 \******************************************************/
6061/*! exports provided: default */
6062/***/ (function(module, __webpack_exports__, __webpack_require__) {
6063
6064"use strict";
6065__webpack_require__.r(__webpack_exports__);
6066/* harmony import */ var _exponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent */ "./node_modules/d3-format/src/exponent.js");
6067
6068
6069/* harmony default export */ __webpack_exports__["default"] = (function(step) {
6070 return Math.max(0, -Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(step)));
6071});
6072
6073
6074/***/ }),
6075
6076/***/ "./node_modules/d3-format/src/precisionPrefix.js":
6077/*!*******************************************************!*\
6078 !*** ./node_modules/d3-format/src/precisionPrefix.js ***!
6079 \*******************************************************/
6080/*! exports provided: default */
6081/***/ (function(module, __webpack_exports__, __webpack_require__) {
6082
6083"use strict";
6084__webpack_require__.r(__webpack_exports__);
6085/* harmony import */ var _exponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent */ "./node_modules/d3-format/src/exponent.js");
6086
6087
6088/* harmony default export */ __webpack_exports__["default"] = (function(step, value) {
6089 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)));
6090});
6091
6092
6093/***/ }),
6094
6095/***/ "./node_modules/d3-format/src/precisionRound.js":
6096/*!******************************************************!*\
6097 !*** ./node_modules/d3-format/src/precisionRound.js ***!
6098 \******************************************************/
6099/*! exports provided: default */
6100/***/ (function(module, __webpack_exports__, __webpack_require__) {
6101
6102"use strict";
6103__webpack_require__.r(__webpack_exports__);
6104/* harmony import */ var _exponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent */ "./node_modules/d3-format/src/exponent.js");
6105
6106
6107/* harmony default export */ __webpack_exports__["default"] = (function(step, max) {
6108 step = Math.abs(step), max = Math.abs(max) - step;
6109 return Math.max(0, Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(max) - Object(_exponent__WEBPACK_IMPORTED_MODULE_0__["default"])(step)) + 1;
6110});
6111
6112
6113/***/ }),
6114
6115/***/ "./node_modules/d3-geo/index.js":
6116/*!**************************************!*\
6117 !*** ./node_modules/d3-geo/index.js ***!
6118 \**************************************/
6119/*! 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, geoEquirectangular, geoEquirectangularRaw, geoGnomonic, geoGnomonicRaw, geoIdentity, geoProjection, geoProjectionMutator, geoMercator, geoMercatorRaw, geoNaturalEarth1, geoNaturalEarth1Raw, geoOrthographic, geoOrthographicRaw, geoStereographic, geoStereographicRaw, geoTransverseMercator, geoTransverseMercatorRaw, geoRotation, geoStream, geoTransform */
6120/***/ (function(module, __webpack_exports__, __webpack_require__) {
6121
6122"use strict";
6123__webpack_require__.r(__webpack_exports__);
6124/* harmony import */ var _src_area__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/area */ "./node_modules/d3-geo/src/area.js");
6125/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoArea", function() { return _src_area__WEBPACK_IMPORTED_MODULE_0__["default"]; });
6126
6127/* harmony import */ var _src_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/bounds */ "./node_modules/d3-geo/src/bounds.js");
6128/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoBounds", function() { return _src_bounds__WEBPACK_IMPORTED_MODULE_1__["default"]; });
6129
6130/* harmony import */ var _src_centroid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/centroid */ "./node_modules/d3-geo/src/centroid.js");
6131/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCentroid", function() { return _src_centroid__WEBPACK_IMPORTED_MODULE_2__["default"]; });
6132
6133/* harmony import */ var _src_circle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/circle */ "./node_modules/d3-geo/src/circle.js");
6134/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCircle", function() { return _src_circle__WEBPACK_IMPORTED_MODULE_3__["default"]; });
6135
6136/* harmony import */ var _src_clip_antimeridian__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/clip/antimeridian */ "./node_modules/d3-geo/src/clip/antimeridian.js");
6137/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipAntimeridian", function() { return _src_clip_antimeridian__WEBPACK_IMPORTED_MODULE_4__["default"]; });
6138
6139/* harmony import */ var _src_clip_circle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/clip/circle */ "./node_modules/d3-geo/src/clip/circle.js");
6140/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipCircle", function() { return _src_clip_circle__WEBPACK_IMPORTED_MODULE_5__["default"]; });
6141
6142/* harmony import */ var _src_clip_extent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/clip/extent */ "./node_modules/d3-geo/src/clip/extent.js");
6143/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipExtent", function() { return _src_clip_extent__WEBPACK_IMPORTED_MODULE_6__["default"]; });
6144
6145/* harmony import */ var _src_clip_rectangle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/clip/rectangle */ "./node_modules/d3-geo/src/clip/rectangle.js");
6146/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipRectangle", function() { return _src_clip_rectangle__WEBPACK_IMPORTED_MODULE_7__["default"]; });
6147
6148/* harmony import */ var _src_contains__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/contains */ "./node_modules/d3-geo/src/contains.js");
6149/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoContains", function() { return _src_contains__WEBPACK_IMPORTED_MODULE_8__["default"]; });
6150
6151/* harmony import */ var _src_distance__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/distance */ "./node_modules/d3-geo/src/distance.js");
6152/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoDistance", function() { return _src_distance__WEBPACK_IMPORTED_MODULE_9__["default"]; });
6153
6154/* harmony import */ var _src_graticule__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/graticule */ "./node_modules/d3-geo/src/graticule.js");
6155/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule", function() { return _src_graticule__WEBPACK_IMPORTED_MODULE_10__["default"]; });
6156
6157/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule10", function() { return _src_graticule__WEBPACK_IMPORTED_MODULE_10__["graticule10"]; });
6158
6159/* harmony import */ var _src_interpolate__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/interpolate */ "./node_modules/d3-geo/src/interpolate.js");
6160/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoInterpolate", function() { return _src_interpolate__WEBPACK_IMPORTED_MODULE_11__["default"]; });
6161
6162/* harmony import */ var _src_length__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/length */ "./node_modules/d3-geo/src/length.js");
6163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoLength", function() { return _src_length__WEBPACK_IMPORTED_MODULE_12__["default"]; });
6164
6165/* harmony import */ var _src_path_index__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/path/index */ "./node_modules/d3-geo/src/path/index.js");
6166/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoPath", function() { return _src_path_index__WEBPACK_IMPORTED_MODULE_13__["default"]; });
6167
6168/* harmony import */ var _src_projection_albers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/projection/albers */ "./node_modules/d3-geo/src/projection/albers.js");
6169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbers", function() { return _src_projection_albers__WEBPACK_IMPORTED_MODULE_14__["default"]; });
6170
6171/* harmony import */ var _src_projection_albersUsa__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/projection/albersUsa */ "./node_modules/d3-geo/src/projection/albersUsa.js");
6172/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbersUsa", function() { return _src_projection_albersUsa__WEBPACK_IMPORTED_MODULE_15__["default"]; });
6173
6174/* harmony import */ var _src_projection_azimuthalEqualArea__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./src/projection/azimuthalEqualArea */ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js");
6175/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualArea", function() { return _src_projection_azimuthalEqualArea__WEBPACK_IMPORTED_MODULE_16__["default"]; });
6176
6177/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualAreaRaw", function() { return _src_projection_azimuthalEqualArea__WEBPACK_IMPORTED_MODULE_16__["azimuthalEqualAreaRaw"]; });
6178
6179/* harmony import */ var _src_projection_azimuthalEquidistant__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./src/projection/azimuthalEquidistant */ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js");
6180/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistant", function() { return _src_projection_azimuthalEquidistant__WEBPACK_IMPORTED_MODULE_17__["default"]; });
6181
6182/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistantRaw", function() { return _src_projection_azimuthalEquidistant__WEBPACK_IMPORTED_MODULE_17__["azimuthalEquidistantRaw"]; });
6183
6184/* harmony import */ var _src_projection_conicConformal__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./src/projection/conicConformal */ "./node_modules/d3-geo/src/projection/conicConformal.js");
6185/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformal", function() { return _src_projection_conicConformal__WEBPACK_IMPORTED_MODULE_18__["default"]; });
6186
6187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformalRaw", function() { return _src_projection_conicConformal__WEBPACK_IMPORTED_MODULE_18__["conicConformalRaw"]; });
6188
6189/* harmony import */ var _src_projection_conicEqualArea__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./src/projection/conicEqualArea */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
6190/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualArea", function() { return _src_projection_conicEqualArea__WEBPACK_IMPORTED_MODULE_19__["default"]; });
6191
6192/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualAreaRaw", function() { return _src_projection_conicEqualArea__WEBPACK_IMPORTED_MODULE_19__["conicEqualAreaRaw"]; });
6193
6194/* harmony import */ var _src_projection_conicEquidistant__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./src/projection/conicEquidistant */ "./node_modules/d3-geo/src/projection/conicEquidistant.js");
6195/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistant", function() { return _src_projection_conicEquidistant__WEBPACK_IMPORTED_MODULE_20__["default"]; });
6196
6197/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistantRaw", function() { return _src_projection_conicEquidistant__WEBPACK_IMPORTED_MODULE_20__["conicEquidistantRaw"]; });
6198
6199/* harmony import */ var _src_projection_equirectangular__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./src/projection/equirectangular */ "./node_modules/d3-geo/src/projection/equirectangular.js");
6200/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangular", function() { return _src_projection_equirectangular__WEBPACK_IMPORTED_MODULE_21__["default"]; });
6201
6202/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangularRaw", function() { return _src_projection_equirectangular__WEBPACK_IMPORTED_MODULE_21__["equirectangularRaw"]; });
6203
6204/* harmony import */ var _src_projection_gnomonic__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./src/projection/gnomonic */ "./node_modules/d3-geo/src/projection/gnomonic.js");
6205/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonic", function() { return _src_projection_gnomonic__WEBPACK_IMPORTED_MODULE_22__["default"]; });
6206
6207/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonicRaw", function() { return _src_projection_gnomonic__WEBPACK_IMPORTED_MODULE_22__["gnomonicRaw"]; });
6208
6209/* harmony import */ var _src_projection_identity__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./src/projection/identity */ "./node_modules/d3-geo/src/projection/identity.js");
6210/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoIdentity", function() { return _src_projection_identity__WEBPACK_IMPORTED_MODULE_23__["default"]; });
6211
6212/* harmony import */ var _src_projection_index__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./src/projection/index */ "./node_modules/d3-geo/src/projection/index.js");
6213/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjection", function() { return _src_projection_index__WEBPACK_IMPORTED_MODULE_24__["default"]; });
6214
6215/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjectionMutator", function() { return _src_projection_index__WEBPACK_IMPORTED_MODULE_24__["projectionMutator"]; });
6216
6217/* harmony import */ var _src_projection_mercator__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./src/projection/mercator */ "./node_modules/d3-geo/src/projection/mercator.js");
6218/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercator", function() { return _src_projection_mercator__WEBPACK_IMPORTED_MODULE_25__["default"]; });
6219
6220/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercatorRaw", function() { return _src_projection_mercator__WEBPACK_IMPORTED_MODULE_25__["mercatorRaw"]; });
6221
6222/* harmony import */ var _src_projection_naturalEarth1__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./src/projection/naturalEarth1 */ "./node_modules/d3-geo/src/projection/naturalEarth1.js");
6223/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1", function() { return _src_projection_naturalEarth1__WEBPACK_IMPORTED_MODULE_26__["default"]; });
6224
6225/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1Raw", function() { return _src_projection_naturalEarth1__WEBPACK_IMPORTED_MODULE_26__["naturalEarth1Raw"]; });
6226
6227/* harmony import */ var _src_projection_orthographic__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./src/projection/orthographic */ "./node_modules/d3-geo/src/projection/orthographic.js");
6228/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographic", function() { return _src_projection_orthographic__WEBPACK_IMPORTED_MODULE_27__["default"]; });
6229
6230/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographicRaw", function() { return _src_projection_orthographic__WEBPACK_IMPORTED_MODULE_27__["orthographicRaw"]; });
6231
6232/* harmony import */ var _src_projection_stereographic__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./src/projection/stereographic */ "./node_modules/d3-geo/src/projection/stereographic.js");
6233/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographic", function() { return _src_projection_stereographic__WEBPACK_IMPORTED_MODULE_28__["default"]; });
6234
6235/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographicRaw", function() { return _src_projection_stereographic__WEBPACK_IMPORTED_MODULE_28__["stereographicRaw"]; });
6236
6237/* harmony import */ var _src_projection_transverseMercator__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./src/projection/transverseMercator */ "./node_modules/d3-geo/src/projection/transverseMercator.js");
6238/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercator", function() { return _src_projection_transverseMercator__WEBPACK_IMPORTED_MODULE_29__["default"]; });
6239
6240/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercatorRaw", function() { return _src_projection_transverseMercator__WEBPACK_IMPORTED_MODULE_29__["transverseMercatorRaw"]; });
6241
6242/* harmony import */ var _src_rotation__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./src/rotation */ "./node_modules/d3-geo/src/rotation.js");
6243/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoRotation", function() { return _src_rotation__WEBPACK_IMPORTED_MODULE_30__["default"]; });
6244
6245/* harmony import */ var _src_stream__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./src/stream */ "./node_modules/d3-geo/src/stream.js");
6246/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStream", function() { return _src_stream__WEBPACK_IMPORTED_MODULE_31__["default"]; });
6247
6248/* harmony import */ var _src_transform__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./src/transform */ "./node_modules/d3-geo/src/transform.js");
6249/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransform", function() { return _src_transform__WEBPACK_IMPORTED_MODULE_32__["default"]; });
6250
6251
6252
6253
6254
6255
6256
6257 // DEPRECATED! Use d3.geoIdentity().clipExtent(…).
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286/***/ }),
6287
6288/***/ "./node_modules/d3-geo/src/adder.js":
6289/*!******************************************!*\
6290 !*** ./node_modules/d3-geo/src/adder.js ***!
6291 \******************************************/
6292/*! exports provided: default */
6293/***/ (function(module, __webpack_exports__, __webpack_require__) {
6294
6295"use strict";
6296__webpack_require__.r(__webpack_exports__);
6297// Adds floating point numbers with twice the normal precision.
6298// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and
6299// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)
6300// 305–363 (1997).
6301// Code adapted from GeographicLib by Charles F. F. Karney,
6302// http://geographiclib.sourceforge.net/
6303
6304/* harmony default export */ __webpack_exports__["default"] = (function() {
6305 return new Adder;
6306});
6307
6308function Adder() {
6309 this.reset();
6310}
6311
6312Adder.prototype = {
6313 constructor: Adder,
6314 reset: function() {
6315 this.s = // rounded value
6316 this.t = 0; // exact error
6317 },
6318 add: function(y) {
6319 add(temp, y, this.t);
6320 add(this, temp.s, this.s);
6321 if (this.s) this.t += temp.t;
6322 else this.s = temp.t;
6323 },
6324 valueOf: function() {
6325 return this.s;
6326 }
6327};
6328
6329var temp = new Adder;
6330
6331function add(adder, a, b) {
6332 var x = adder.s = a + b,
6333 bv = x - a,
6334 av = x - bv;
6335 adder.t = (a - av) + (b - bv);
6336}
6337
6338
6339/***/ }),
6340
6341/***/ "./node_modules/d3-geo/src/area.js":
6342/*!*****************************************!*\
6343 !*** ./node_modules/d3-geo/src/area.js ***!
6344 \*****************************************/
6345/*! exports provided: areaRingSum, areaStream, default */
6346/***/ (function(module, __webpack_exports__, __webpack_require__) {
6347
6348"use strict";
6349__webpack_require__.r(__webpack_exports__);
6350/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areaRingSum", function() { return areaRingSum; });
6351/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areaStream", function() { return areaStream; });
6352/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder */ "./node_modules/d3-geo/src/adder.js");
6353/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
6354/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop */ "./node_modules/d3-geo/src/noop.js");
6355/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
6356
6357
6358
6359
6360
6361var areaRingSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])();
6362
6363var areaSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
6364 lambda00,
6365 phi00,
6366 lambda0,
6367 cosPhi0,
6368 sinPhi0;
6369
6370var areaStream = {
6371 point: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
6372 lineStart: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
6373 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
6374 polygonStart: function() {
6375 areaRingSum.reset();
6376 areaStream.lineStart = areaRingStart;
6377 areaStream.lineEnd = areaRingEnd;
6378 },
6379 polygonEnd: function() {
6380 var areaRing = +areaRingSum;
6381 areaSum.add(areaRing < 0 ? _math__WEBPACK_IMPORTED_MODULE_1__["tau"] + areaRing : areaRing);
6382 this.lineStart = this.lineEnd = this.point = _noop__WEBPACK_IMPORTED_MODULE_2__["default"];
6383 },
6384 sphere: function() {
6385 areaSum.add(_math__WEBPACK_IMPORTED_MODULE_1__["tau"]);
6386 }
6387};
6388
6389function areaRingStart() {
6390 areaStream.point = areaPointFirst;
6391}
6392
6393function areaRingEnd() {
6394 areaPoint(lambda00, phi00);
6395}
6396
6397function areaPointFirst(lambda, phi) {
6398 areaStream.point = areaPoint;
6399 lambda00 = lambda, phi00 = phi;
6400 lambda *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"];
6401 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);
6402}
6403
6404function areaPoint(lambda, phi) {
6405 lambda *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"];
6406 phi = phi / 2 + _math__WEBPACK_IMPORTED_MODULE_1__["quarterPi"]; // half the angular distance from south pole
6407
6408 // Spherical excess E for a spherical triangle with vertices: south pole,
6409 // previous point, current point. Uses a formula derived from Cagnoli’s
6410 // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
6411 var dLambda = lambda - lambda0,
6412 sdLambda = dLambda >= 0 ? 1 : -1,
6413 adLambda = sdLambda * dLambda,
6414 cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
6415 sinPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
6416 k = sinPhi0 * sinPhi,
6417 u = cosPhi0 * cosPhi + k * Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(adLambda),
6418 v = k * sdLambda * Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(adLambda);
6419 areaRingSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(v, u));
6420
6421 // Advance the previous points.
6422 lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;
6423}
6424
6425/* harmony default export */ __webpack_exports__["default"] = (function(object) {
6426 areaSum.reset();
6427 Object(_stream__WEBPACK_IMPORTED_MODULE_3__["default"])(object, areaStream);
6428 return areaSum * 2;
6429});
6430
6431
6432/***/ }),
6433
6434/***/ "./node_modules/d3-geo/src/bounds.js":
6435/*!*******************************************!*\
6436 !*** ./node_modules/d3-geo/src/bounds.js ***!
6437 \*******************************************/
6438/*! exports provided: default */
6439/***/ (function(module, __webpack_exports__, __webpack_require__) {
6440
6441"use strict";
6442__webpack_require__.r(__webpack_exports__);
6443/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder */ "./node_modules/d3-geo/src/adder.js");
6444/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area */ "./node_modules/d3-geo/src/area.js");
6445/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cartesian */ "./node_modules/d3-geo/src/cartesian.js");
6446/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
6447/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
6448
6449
6450
6451
6452
6453
6454var lambda0, phi0, lambda1, phi1, // bounds
6455 lambda2, // previous lambda-coordinate
6456 lambda00, phi00, // first point
6457 p0, // previous 3D point
6458 deltaSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
6459 ranges,
6460 range;
6461
6462var boundsStream = {
6463 point: boundsPoint,
6464 lineStart: boundsLineStart,
6465 lineEnd: boundsLineEnd,
6466 polygonStart: function() {
6467 boundsStream.point = boundsRingPoint;
6468 boundsStream.lineStart = boundsRingStart;
6469 boundsStream.lineEnd = boundsRingEnd;
6470 deltaSum.reset();
6471 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].polygonStart();
6472 },
6473 polygonEnd: function() {
6474 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].polygonEnd();
6475 boundsStream.point = boundsPoint;
6476 boundsStream.lineStart = boundsLineStart;
6477 boundsStream.lineEnd = boundsLineEnd;
6478 if (_area__WEBPACK_IMPORTED_MODULE_1__["areaRingSum"] < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);
6479 else if (deltaSum > _math__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) phi1 = 90;
6480 else if (deltaSum < -_math__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) phi0 = -90;
6481 range[0] = lambda0, range[1] = lambda1;
6482 }
6483};
6484
6485function boundsPoint(lambda, phi) {
6486 ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
6487 if (phi < phi0) phi0 = phi;
6488 if (phi > phi1) phi1 = phi;
6489}
6490
6491function linePoint(lambda, phi) {
6492 var p = Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["cartesian"])([lambda * _math__WEBPACK_IMPORTED_MODULE_3__["radians"], phi * _math__WEBPACK_IMPORTED_MODULE_3__["radians"]]);
6493 if (p0) {
6494 var normal = Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["cartesianCross"])(p0, p),
6495 equatorial = [normal[1], -normal[0], 0],
6496 inflection = Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["cartesianCross"])(equatorial, normal);
6497 Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["cartesianNormalizeInPlace"])(inflection);
6498 inflection = Object(_cartesian__WEBPACK_IMPORTED_MODULE_2__["spherical"])(inflection);
6499 var delta = lambda - lambda2,
6500 sign = delta > 0 ? 1 : -1,
6501 lambdai = inflection[0] * _math__WEBPACK_IMPORTED_MODULE_3__["degrees"] * sign,
6502 phii,
6503 antimeridian = Object(_math__WEBPACK_IMPORTED_MODULE_3__["abs"])(delta) > 180;
6504 if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
6505 phii = inflection[1] * _math__WEBPACK_IMPORTED_MODULE_3__["degrees"];
6506 if (phii > phi1) phi1 = phii;
6507 } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
6508 phii = -inflection[1] * _math__WEBPACK_IMPORTED_MODULE_3__["degrees"];
6509 if (phii < phi0) phi0 = phii;
6510 } else {
6511 if (phi < phi0) phi0 = phi;
6512 if (phi > phi1) phi1 = phi;
6513 }
6514 if (antimeridian) {
6515 if (lambda < lambda2) {
6516 if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
6517 } else {
6518 if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
6519 }
6520 } else {
6521 if (lambda1 >= lambda0) {
6522 if (lambda < lambda0) lambda0 = lambda;
6523 if (lambda > lambda1) lambda1 = lambda;
6524 } else {
6525 if (lambda > lambda2) {
6526 if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
6527 } else {
6528 if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
6529 }
6530 }
6531 }
6532 } else {
6533 ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
6534 }
6535 if (phi < phi0) phi0 = phi;
6536 if (phi > phi1) phi1 = phi;
6537 p0 = p, lambda2 = lambda;
6538}
6539
6540function boundsLineStart() {
6541 boundsStream.point = linePoint;
6542}
6543
6544function boundsLineEnd() {
6545 range[0] = lambda0, range[1] = lambda1;
6546 boundsStream.point = boundsPoint;
6547 p0 = null;
6548}
6549
6550function boundsRingPoint(lambda, phi) {
6551 if (p0) {
6552 var delta = lambda - lambda2;
6553 deltaSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_3__["abs"])(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
6554 } else {
6555 lambda00 = lambda, phi00 = phi;
6556 }
6557 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].point(lambda, phi);
6558 linePoint(lambda, phi);
6559}
6560
6561function boundsRingStart() {
6562 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].lineStart();
6563}
6564
6565function boundsRingEnd() {
6566 boundsRingPoint(lambda00, phi00);
6567 _area__WEBPACK_IMPORTED_MODULE_1__["areaStream"].lineEnd();
6568 if (Object(_math__WEBPACK_IMPORTED_MODULE_3__["abs"])(deltaSum) > _math__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) lambda0 = -(lambda1 = 180);
6569 range[0] = lambda0, range[1] = lambda1;
6570 p0 = null;
6571}
6572
6573// Finds the left-right distance between two longitudes.
6574// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
6575// the distance between ±180° to be 360°.
6576function angle(lambda0, lambda1) {
6577 return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
6578}
6579
6580function rangeCompare(a, b) {
6581 return a[0] - b[0];
6582}
6583
6584function rangeContains(range, x) {
6585 return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
6586}
6587
6588/* harmony default export */ __webpack_exports__["default"] = (function(feature) {
6589 var i, n, a, b, merged, deltaMax, delta;
6590
6591 phi1 = lambda1 = -(lambda0 = phi0 = Infinity);
6592 ranges = [];
6593 Object(_stream__WEBPACK_IMPORTED_MODULE_4__["default"])(feature, boundsStream);
6594
6595 // First, sort ranges by their minimum longitudes.
6596 if (n = ranges.length) {
6597 ranges.sort(rangeCompare);
6598
6599 // Then, merge any ranges that overlap.
6600 for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
6601 b = ranges[i];
6602 if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
6603 if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
6604 if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
6605 } else {
6606 merged.push(a = b);
6607 }
6608 }
6609
6610 // Finally, find the largest gap between the merged ranges.
6611 // The final bounding box will be the inverse of this gap.
6612 for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
6613 b = merged[i];
6614 if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];
6615 }
6616 }
6617
6618 ranges = range = null;
6619
6620 return lambda0 === Infinity || phi0 === Infinity
6621 ? [[NaN, NaN], [NaN, NaN]]
6622 : [[lambda0, phi0], [lambda1, phi1]];
6623});
6624
6625
6626/***/ }),
6627
6628/***/ "./node_modules/d3-geo/src/cartesian.js":
6629/*!**********************************************!*\
6630 !*** ./node_modules/d3-geo/src/cartesian.js ***!
6631 \**********************************************/
6632/*! exports provided: spherical, cartesian, cartesianDot, cartesianCross, cartesianAddInPlace, cartesianScale, cartesianNormalizeInPlace */
6633/***/ (function(module, __webpack_exports__, __webpack_require__) {
6634
6635"use strict";
6636__webpack_require__.r(__webpack_exports__);
6637/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spherical", function() { return spherical; });
6638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesian", function() { return cartesian; });
6639/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianDot", function() { return cartesianDot; });
6640/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianCross", function() { return cartesianCross; });
6641/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianAddInPlace", function() { return cartesianAddInPlace; });
6642/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianScale", function() { return cartesianScale; });
6643/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianNormalizeInPlace", function() { return cartesianNormalizeInPlace; });
6644/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
6645
6646
6647function spherical(cartesian) {
6648 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(cartesian[1], cartesian[0]), Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(cartesian[2])];
6649}
6650
6651function cartesian(spherical) {
6652 var lambda = spherical[0], phi = spherical[1], cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
6653 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)];
6654}
6655
6656function cartesianDot(a, b) {
6657 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
6658}
6659
6660function cartesianCross(a, b) {
6661 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]];
6662}
6663
6664// TODO return a
6665function cartesianAddInPlace(a, b) {
6666 a[0] += b[0], a[1] += b[1], a[2] += b[2];
6667}
6668
6669function cartesianScale(vector, k) {
6670 return [vector[0] * k, vector[1] * k, vector[2] * k];
6671}
6672
6673// TODO return d
6674function cartesianNormalizeInPlace(d) {
6675 var l = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
6676 d[0] /= l, d[1] /= l, d[2] /= l;
6677}
6678
6679
6680/***/ }),
6681
6682/***/ "./node_modules/d3-geo/src/centroid.js":
6683/*!*********************************************!*\
6684 !*** ./node_modules/d3-geo/src/centroid.js ***!
6685 \*********************************************/
6686/*! exports provided: default */
6687/***/ (function(module, __webpack_exports__, __webpack_require__) {
6688
6689"use strict";
6690__webpack_require__.r(__webpack_exports__);
6691/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
6692/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noop */ "./node_modules/d3-geo/src/noop.js");
6693/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
6694
6695
6696
6697
6698var W0, W1,
6699 X0, Y0, Z0,
6700 X1, Y1, Z1,
6701 X2, Y2, Z2,
6702 lambda00, phi00, // first point
6703 x0, y0, z0; // previous point
6704
6705var centroidStream = {
6706 sphere: _noop__WEBPACK_IMPORTED_MODULE_1__["default"],
6707 point: centroidPoint,
6708 lineStart: centroidLineStart,
6709 lineEnd: centroidLineEnd,
6710 polygonStart: function() {
6711 centroidStream.lineStart = centroidRingStart;
6712 centroidStream.lineEnd = centroidRingEnd;
6713 },
6714 polygonEnd: function() {
6715 centroidStream.lineStart = centroidLineStart;
6716 centroidStream.lineEnd = centroidLineEnd;
6717 }
6718};
6719
6720// Arithmetic mean of Cartesian vectors.
6721function centroidPoint(lambda, phi) {
6722 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
6723 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
6724 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));
6725}
6726
6727function centroidPointCartesian(x, y, z) {
6728 ++W0;
6729 X0 += (x - X0) / W0;
6730 Y0 += (y - Y0) / W0;
6731 Z0 += (z - Z0) / W0;
6732}
6733
6734function centroidLineStart() {
6735 centroidStream.point = centroidLinePointFirst;
6736}
6737
6738function centroidLinePointFirst(lambda, phi) {
6739 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
6740 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
6741 x0 = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda);
6742 y0 = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda);
6743 z0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi);
6744 centroidStream.point = centroidLinePoint;
6745 centroidPointCartesian(x0, y0, z0);
6746}
6747
6748function centroidLinePoint(lambda, phi) {
6749 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
6750 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi),
6751 x = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda),
6752 y = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda),
6753 z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi),
6754 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);
6755 W1 += w;
6756 X1 += w * (x0 + (x0 = x));
6757 Y1 += w * (y0 + (y0 = y));
6758 Z1 += w * (z0 + (z0 = z));
6759 centroidPointCartesian(x0, y0, z0);
6760}
6761
6762function centroidLineEnd() {
6763 centroidStream.point = centroidPoint;
6764}
6765
6766// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
6767// J. Applied Mechanics 42, 239 (1975).
6768function centroidRingStart() {
6769 centroidStream.point = centroidRingPointFirst;
6770}
6771
6772function centroidRingEnd() {
6773 centroidRingPoint(lambda00, phi00);
6774 centroidStream.point = centroidPoint;
6775}
6776
6777function centroidRingPointFirst(lambda, phi) {
6778 lambda00 = lambda, phi00 = phi;
6779 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
6780 centroidStream.point = centroidRingPoint;
6781 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
6782 x0 = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda);
6783 y0 = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda);
6784 z0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi);
6785 centroidPointCartesian(x0, y0, z0);
6786}
6787
6788function centroidRingPoint(lambda, phi) {
6789 lambda *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_0__["radians"];
6790 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi),
6791 x = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda),
6792 y = cosPhi * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda),
6793 z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi),
6794 cx = y0 * z - z0 * y,
6795 cy = z0 * x - x0 * z,
6796 cz = x0 * y - y0 * x,
6797 m = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(cx * cx + cy * cy + cz * cz),
6798 w = Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(m), // line weight = angle
6799 v = m && -w / m; // area weight multiplier
6800 X2 += v * cx;
6801 Y2 += v * cy;
6802 Z2 += v * cz;
6803 W1 += w;
6804 X1 += w * (x0 + (x0 = x));
6805 Y1 += w * (y0 + (y0 = y));
6806 Z1 += w * (z0 + (z0 = z));
6807 centroidPointCartesian(x0, y0, z0);
6808}
6809
6810/* harmony default export */ __webpack_exports__["default"] = (function(object) {
6811 W0 = W1 =
6812 X0 = Y0 = Z0 =
6813 X1 = Y1 = Z1 =
6814 X2 = Y2 = Z2 = 0;
6815 Object(_stream__WEBPACK_IMPORTED_MODULE_2__["default"])(object, centroidStream);
6816
6817 var x = X2,
6818 y = Y2,
6819 z = Z2,
6820 m = x * x + y * y + z * z;
6821
6822 // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
6823 if (m < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon2"]) {
6824 x = X1, y = Y1, z = Z1;
6825 // If the feature has zero length, fall back to arithmetic mean of point vectors.
6826 if (W1 < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) x = X0, y = Y0, z = Z0;
6827 m = x * x + y * y + z * z;
6828 // If the feature still has an undefined ccentroid, then return.
6829 if (m < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon2"]) return [NaN, NaN];
6830 }
6831
6832 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"]];
6833});
6834
6835
6836/***/ }),
6837
6838/***/ "./node_modules/d3-geo/src/circle.js":
6839/*!*******************************************!*\
6840 !*** ./node_modules/d3-geo/src/circle.js ***!
6841 \*******************************************/
6842/*! exports provided: circleStream, default */
6843/***/ (function(module, __webpack_exports__, __webpack_require__) {
6844
6845"use strict";
6846__webpack_require__.r(__webpack_exports__);
6847/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleStream", function() { return circleStream; });
6848/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cartesian */ "./node_modules/d3-geo/src/cartesian.js");
6849/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-geo/src/constant.js");
6850/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
6851/* harmony import */ var _rotation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rotation */ "./node_modules/d3-geo/src/rotation.js");
6852
6853
6854
6855
6856
6857// Generates a circle centered at [0°, 0°], with a given radius and precision.
6858function circleStream(stream, radius, delta, direction, t0, t1) {
6859 if (!delta) return;
6860 var cosRadius = Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(radius),
6861 sinRadius = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(radius),
6862 step = direction * delta;
6863 if (t0 == null) {
6864 t0 = radius + direction * _math__WEBPACK_IMPORTED_MODULE_2__["tau"];
6865 t1 = radius - step / 2;
6866 } else {
6867 t0 = circleRadius(cosRadius, t0);
6868 t1 = circleRadius(cosRadius, t1);
6869 if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * _math__WEBPACK_IMPORTED_MODULE_2__["tau"];
6870 }
6871 for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
6872 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)]);
6873 stream.point(point[0], point[1]);
6874 }
6875}
6876
6877// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
6878function circleRadius(cosRadius, point) {
6879 point = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(point), point[0] -= cosRadius;
6880 Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianNormalizeInPlace"])(point);
6881 var radius = Object(_math__WEBPACK_IMPORTED_MODULE_2__["acos"])(-point[1]);
6882 return ((-point[2] < 0 ? -radius : radius) + _math__WEBPACK_IMPORTED_MODULE_2__["tau"] - _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) % _math__WEBPACK_IMPORTED_MODULE_2__["tau"];
6883}
6884
6885/* harmony default export */ __webpack_exports__["default"] = (function() {
6886 var center = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])([0, 0]),
6887 radius = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(90),
6888 precision = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(6),
6889 ring,
6890 rotate,
6891 stream = {point: point};
6892
6893 function point(x, y) {
6894 ring.push(x = rotate(x, y));
6895 x[0] *= _math__WEBPACK_IMPORTED_MODULE_2__["degrees"], x[1] *= _math__WEBPACK_IMPORTED_MODULE_2__["degrees"];
6896 }
6897
6898 function circle() {
6899 var c = center.apply(this, arguments),
6900 r = radius.apply(this, arguments) * _math__WEBPACK_IMPORTED_MODULE_2__["radians"],
6901 p = precision.apply(this, arguments) * _math__WEBPACK_IMPORTED_MODULE_2__["radians"];
6902 ring = [];
6903 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;
6904 circleStream(stream, r, p, 1);
6905 c = {type: "Polygon", coordinates: [ring]};
6906 ring = rotate = null;
6907 return c;
6908 }
6909
6910 circle.center = function(_) {
6911 return arguments.length ? (center = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])([+_[0], +_[1]]), circle) : center;
6912 };
6913
6914 circle.radius = function(_) {
6915 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), circle) : radius;
6916 };
6917
6918 circle.precision = function(_) {
6919 return arguments.length ? (precision = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), circle) : precision;
6920 };
6921
6922 return circle;
6923});
6924
6925
6926/***/ }),
6927
6928/***/ "./node_modules/d3-geo/src/clip/antimeridian.js":
6929/*!******************************************************!*\
6930 !*** ./node_modules/d3-geo/src/clip/antimeridian.js ***!
6931 \******************************************************/
6932/*! exports provided: default */
6933/***/ (function(module, __webpack_exports__, __webpack_require__) {
6934
6935"use strict";
6936__webpack_require__.r(__webpack_exports__);
6937/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/clip/index.js");
6938/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
6939
6940
6941
6942/* harmony default export */ __webpack_exports__["default"] = (Object(_index__WEBPACK_IMPORTED_MODULE_0__["default"])(
6943 function() { return true; },
6944 clipAntimeridianLine,
6945 clipAntimeridianInterpolate,
6946 [-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], -_math__WEBPACK_IMPORTED_MODULE_1__["halfPi"]]
6947));
6948
6949// Takes a line and cuts into visible segments. Return values: 0 - there were
6950// intersections or the line was empty; 1 - no intersections; 2 - there were
6951// intersections, and the first and last segments should be rejoined.
6952function clipAntimeridianLine(stream) {
6953 var lambda0 = NaN,
6954 phi0 = NaN,
6955 sign0 = NaN,
6956 clean; // no intersections
6957
6958 return {
6959 lineStart: function() {
6960 stream.lineStart();
6961 clean = 1;
6962 },
6963 point: function(lambda1, phi1) {
6964 var sign1 = lambda1 > 0 ? _math__WEBPACK_IMPORTED_MODULE_1__["pi"] : -_math__WEBPACK_IMPORTED_MODULE_1__["pi"],
6965 delta = Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda1 - lambda0);
6966 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
6967 stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? _math__WEBPACK_IMPORTED_MODULE_1__["halfPi"] : -_math__WEBPACK_IMPORTED_MODULE_1__["halfPi"]);
6968 stream.point(sign0, phi0);
6969 stream.lineEnd();
6970 stream.lineStart();
6971 stream.point(sign1, phi0);
6972 stream.point(lambda1, phi0);
6973 clean = 0;
6974 } else if (sign0 !== sign1 && delta >= _math__WEBPACK_IMPORTED_MODULE_1__["pi"]) { // line crosses antimeridian
6975 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
6976 if (Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda1 - sign1) < _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) lambda1 -= sign1 * _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"];
6977 phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
6978 stream.point(sign0, phi0);
6979 stream.lineEnd();
6980 stream.lineStart();
6981 stream.point(sign1, phi0);
6982 clean = 0;
6983 }
6984 stream.point(lambda0 = lambda1, phi0 = phi1);
6985 sign0 = sign1;
6986 },
6987 lineEnd: function() {
6988 stream.lineEnd();
6989 lambda0 = phi0 = NaN;
6990 },
6991 clean: function() {
6992 return 2 - clean; // if intersections, rejoin first and last segments
6993 }
6994 };
6995}
6996
6997function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
6998 var cosPhi0,
6999 cosPhi1,
7000 sinLambda0Lambda1 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda0 - lambda1);
7001 return Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(sinLambda0Lambda1) > _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]
7002 ? 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)
7003 - 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))
7004 / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
7005 : (phi0 + phi1) / 2;
7006}
7007
7008function clipAntimeridianInterpolate(from, to, direction, stream) {
7009 var phi;
7010 if (from == null) {
7011 phi = direction * _math__WEBPACK_IMPORTED_MODULE_1__["halfPi"];
7012 stream.point(-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7013 stream.point(0, phi);
7014 stream.point(_math__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7015 stream.point(_math__WEBPACK_IMPORTED_MODULE_1__["pi"], 0);
7016 stream.point(_math__WEBPACK_IMPORTED_MODULE_1__["pi"], -phi);
7017 stream.point(0, -phi);
7018 stream.point(-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], -phi);
7019 stream.point(-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], 0);
7020 stream.point(-_math__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7021 } else if (Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(from[0] - to[0]) > _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) {
7022 var lambda = from[0] < to[0] ? _math__WEBPACK_IMPORTED_MODULE_1__["pi"] : -_math__WEBPACK_IMPORTED_MODULE_1__["pi"];
7023 phi = direction * lambda / 2;
7024 stream.point(-lambda, phi);
7025 stream.point(0, phi);
7026 stream.point(lambda, phi);
7027 } else {
7028 stream.point(to[0], to[1]);
7029 }
7030}
7031
7032
7033/***/ }),
7034
7035/***/ "./node_modules/d3-geo/src/clip/buffer.js":
7036/*!************************************************!*\
7037 !*** ./node_modules/d3-geo/src/clip/buffer.js ***!
7038 \************************************************/
7039/*! exports provided: default */
7040/***/ (function(module, __webpack_exports__, __webpack_require__) {
7041
7042"use strict";
7043__webpack_require__.r(__webpack_exports__);
7044/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
7045
7046
7047/* harmony default export */ __webpack_exports__["default"] = (function() {
7048 var lines = [],
7049 line;
7050 return {
7051 point: function(x, y) {
7052 line.push([x, y]);
7053 },
7054 lineStart: function() {
7055 lines.push(line = []);
7056 },
7057 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
7058 rejoin: function() {
7059 if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
7060 },
7061 result: function() {
7062 var result = lines;
7063 lines = [];
7064 line = null;
7065 return result;
7066 }
7067 };
7068});
7069
7070
7071/***/ }),
7072
7073/***/ "./node_modules/d3-geo/src/clip/circle.js":
7074/*!************************************************!*\
7075 !*** ./node_modules/d3-geo/src/clip/circle.js ***!
7076 \************************************************/
7077/*! exports provided: default */
7078/***/ (function(module, __webpack_exports__, __webpack_require__) {
7079
7080"use strict";
7081__webpack_require__.r(__webpack_exports__);
7082/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cartesian */ "./node_modules/d3-geo/src/cartesian.js");
7083/* harmony import */ var _circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../circle */ "./node_modules/d3-geo/src/circle.js");
7084/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
7085/* harmony import */ var _pointEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../pointEqual */ "./node_modules/d3-geo/src/pointEqual.js");
7086/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/clip/index.js");
7087
7088
7089
7090
7091
7092
7093/* harmony default export */ __webpack_exports__["default"] = (function(radius) {
7094 var cr = Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(radius),
7095 delta = 6 * _math__WEBPACK_IMPORTED_MODULE_2__["radians"],
7096 smallRadius = cr > 0,
7097 notHemisphere = Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(cr) > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]; // TODO optimise for this common case
7098
7099 function interpolate(from, to, direction, stream) {
7100 Object(_circle__WEBPACK_IMPORTED_MODULE_1__["circleStream"])(stream, radius, delta, direction, from, to);
7101 }
7102
7103 function visible(lambda, phi) {
7104 return Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(lambda) * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi) > cr;
7105 }
7106
7107 // Takes a line and cuts into visible segments. Return values used for polygon
7108 // clipping: 0 - there were intersections or the line was empty; 1 - no
7109 // intersections 2 - there were intersections, and the first and last segments
7110 // should be rejoined.
7111 function clipLine(stream) {
7112 var point0, // previous point
7113 c0, // code for previous point
7114 v0, // visibility of previous point
7115 v00, // visibility of first point
7116 clean; // no intersections
7117 return {
7118 lineStart: function() {
7119 v00 = v0 = false;
7120 clean = 1;
7121 },
7122 point: function(lambda, phi) {
7123 var point1 = [lambda, phi],
7124 point2,
7125 v = visible(lambda, phi),
7126 c = smallRadius
7127 ? v ? 0 : code(lambda, phi)
7128 : v ? code(lambda + (lambda < 0 ? _math__WEBPACK_IMPORTED_MODULE_2__["pi"] : -_math__WEBPACK_IMPORTED_MODULE_2__["pi"]), phi) : 0;
7129 if (!point0 && (v00 = v0 = v)) stream.lineStart();
7130 // Handle degeneracies.
7131 // TODO ignore if not clipping polygons.
7132 if (v !== v0) {
7133 point2 = intersect(point0, point1);
7134 if (!point2 || Object(_pointEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(point0, point2) || Object(_pointEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(point1, point2)) {
7135 point1[0] += _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7136 point1[1] += _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7137 v = visible(point1[0], point1[1]);
7138 }
7139 }
7140 if (v !== v0) {
7141 clean = 0;
7142 if (v) {
7143 // outside going in
7144 stream.lineStart();
7145 point2 = intersect(point1, point0);
7146 stream.point(point2[0], point2[1]);
7147 } else {
7148 // inside going out
7149 point2 = intersect(point0, point1);
7150 stream.point(point2[0], point2[1]);
7151 stream.lineEnd();
7152 }
7153 point0 = point2;
7154 } else if (notHemisphere && point0 && smallRadius ^ v) {
7155 var t;
7156 // If the codes for two points are different, or are both zero,
7157 // and there this segment intersects with the small circle.
7158 if (!(c & c0) && (t = intersect(point1, point0, true))) {
7159 clean = 0;
7160 if (smallRadius) {
7161 stream.lineStart();
7162 stream.point(t[0][0], t[0][1]);
7163 stream.point(t[1][0], t[1][1]);
7164 stream.lineEnd();
7165 } else {
7166 stream.point(t[1][0], t[1][1]);
7167 stream.lineEnd();
7168 stream.lineStart();
7169 stream.point(t[0][0], t[0][1]);
7170 }
7171 }
7172 }
7173 if (v && (!point0 || !Object(_pointEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(point0, point1))) {
7174 stream.point(point1[0], point1[1]);
7175 }
7176 point0 = point1, v0 = v, c0 = c;
7177 },
7178 lineEnd: function() {
7179 if (v0) stream.lineEnd();
7180 point0 = null;
7181 },
7182 // Rejoin first and last segments if there were intersections and the first
7183 // and last points were visible.
7184 clean: function() {
7185 return clean | ((v00 && v0) << 1);
7186 }
7187 };
7188 }
7189
7190 // Intersects the great circle between a and b with the clip circle.
7191 function intersect(a, b, two) {
7192 var pa = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(a),
7193 pb = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(b);
7194
7195 // We have two planes, n1.p = d1 and n2.p = d2.
7196 // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
7197 var n1 = [1, 0, 0], // normal
7198 n2 = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianCross"])(pa, pb),
7199 n2n2 = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(n2, n2),
7200 n1n2 = n2[0], // cartesianDot(n1, n2),
7201 determinant = n2n2 - n1n2 * n1n2;
7202
7203 // Two polar points.
7204 if (!determinant) return !two && a;
7205
7206 var c1 = cr * n2n2 / determinant,
7207 c2 = -cr * n1n2 / determinant,
7208 n1xn2 = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianCross"])(n1, n2),
7209 A = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(n1, c1),
7210 B = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(n2, c2);
7211 Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(A, B);
7212
7213 // Solve |p(t)|^2 = 1.
7214 var u = n1xn2,
7215 w = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(A, u),
7216 uu = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(u, u),
7217 t2 = w * w - uu * (Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(A, A) - 1);
7218
7219 if (t2 < 0) return;
7220
7221 var t = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(t2),
7222 q = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(u, (-w - t) / uu);
7223 Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(q, A);
7224 q = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["spherical"])(q);
7225
7226 if (!two) return q;
7227
7228 // Two intersection points.
7229 var lambda0 = a[0],
7230 lambda1 = b[0],
7231 phi0 = a[1],
7232 phi1 = b[1],
7233 z;
7234
7235 if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;
7236
7237 var delta = lambda1 - lambda0,
7238 polar = Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(delta - _math__WEBPACK_IMPORTED_MODULE_2__["pi"]) < _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"],
7239 meridian = polar || delta < _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7240
7241 if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;
7242
7243 // Check that the first point is between a and b.
7244 if (meridian
7245 ? polar
7246 ? phi0 + phi1 > 0 ^ q[1] < (Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(q[0] - lambda0) < _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] ? phi0 : phi1)
7247 : phi0 <= q[1] && q[1] <= phi1
7248 : delta > _math__WEBPACK_IMPORTED_MODULE_2__["pi"] ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
7249 var q1 = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(u, (-w + t) / uu);
7250 Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(q1, A);
7251 return [q, Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["spherical"])(q1)];
7252 }
7253 }
7254
7255 // Generates a 4-bit vector representing the location of a point relative to
7256 // the small circle's bounding box.
7257 function code(lambda, phi) {
7258 var r = smallRadius ? radius : _math__WEBPACK_IMPORTED_MODULE_2__["pi"] - radius,
7259 code = 0;
7260 if (lambda < -r) code |= 1; // left
7261 else if (lambda > r) code |= 2; // right
7262 if (phi < -r) code |= 4; // below
7263 else if (phi > r) code |= 8; // above
7264 return code;
7265 }
7266
7267 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"]]);
7268});
7269
7270
7271/***/ }),
7272
7273/***/ "./node_modules/d3-geo/src/clip/extent.js":
7274/*!************************************************!*\
7275 !*** ./node_modules/d3-geo/src/clip/extent.js ***!
7276 \************************************************/
7277/*! exports provided: default */
7278/***/ (function(module, __webpack_exports__, __webpack_require__) {
7279
7280"use strict";
7281__webpack_require__.r(__webpack_exports__);
7282/* harmony import */ var _rectangle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rectangle */ "./node_modules/d3-geo/src/clip/rectangle.js");
7283
7284
7285/* harmony default export */ __webpack_exports__["default"] = (function() {
7286 var x0 = 0,
7287 y0 = 0,
7288 x1 = 960,
7289 y1 = 500,
7290 cache,
7291 cacheStream,
7292 clip;
7293
7294 return clip = {
7295 stream: function(stream) {
7296 return cache && cacheStream === stream ? cache : cache = Object(_rectangle__WEBPACK_IMPORTED_MODULE_0__["default"])(x0, y0, x1, y1)(cacheStream = stream);
7297 },
7298 extent: function(_) {
7299 return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
7300 }
7301 };
7302});
7303
7304
7305/***/ }),
7306
7307/***/ "./node_modules/d3-geo/src/clip/index.js":
7308/*!***********************************************!*\
7309 !*** ./node_modules/d3-geo/src/clip/index.js ***!
7310 \***********************************************/
7311/*! exports provided: default */
7312/***/ (function(module, __webpack_exports__, __webpack_require__) {
7313
7314"use strict";
7315__webpack_require__.r(__webpack_exports__);
7316/* harmony import */ var _buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./buffer */ "./node_modules/d3-geo/src/clip/buffer.js");
7317/* harmony import */ var _rejoin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rejoin */ "./node_modules/d3-geo/src/clip/rejoin.js");
7318/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
7319/* harmony import */ var _polygonContains__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../polygonContains */ "./node_modules/d3-geo/src/polygonContains.js");
7320/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
7321
7322
7323
7324
7325
7326
7327/* harmony default export */ __webpack_exports__["default"] = (function(pointVisible, clipLine, interpolate, start) {
7328 return function(sink) {
7329 var line = clipLine(sink),
7330 ringBuffer = Object(_buffer__WEBPACK_IMPORTED_MODULE_0__["default"])(),
7331 ringSink = clipLine(ringBuffer),
7332 polygonStarted = false,
7333 polygon,
7334 segments,
7335 ring;
7336
7337 var clip = {
7338 point: point,
7339 lineStart: lineStart,
7340 lineEnd: lineEnd,
7341 polygonStart: function() {
7342 clip.point = pointRing;
7343 clip.lineStart = ringStart;
7344 clip.lineEnd = ringEnd;
7345 segments = [];
7346 polygon = [];
7347 },
7348 polygonEnd: function() {
7349 clip.point = point;
7350 clip.lineStart = lineStart;
7351 clip.lineEnd = lineEnd;
7352 segments = Object(d3_array__WEBPACK_IMPORTED_MODULE_4__["merge"])(segments);
7353 var startInside = Object(_polygonContains__WEBPACK_IMPORTED_MODULE_3__["default"])(polygon, start);
7354 if (segments.length) {
7355 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
7356 Object(_rejoin__WEBPACK_IMPORTED_MODULE_1__["default"])(segments, compareIntersection, startInside, interpolate, sink);
7357 } else if (startInside) {
7358 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
7359 sink.lineStart();
7360 interpolate(null, null, 1, sink);
7361 sink.lineEnd();
7362 }
7363 if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
7364 segments = polygon = null;
7365 },
7366 sphere: function() {
7367 sink.polygonStart();
7368 sink.lineStart();
7369 interpolate(null, null, 1, sink);
7370 sink.lineEnd();
7371 sink.polygonEnd();
7372 }
7373 };
7374
7375 function point(lambda, phi) {
7376 if (pointVisible(lambda, phi)) sink.point(lambda, phi);
7377 }
7378
7379 function pointLine(lambda, phi) {
7380 line.point(lambda, phi);
7381 }
7382
7383 function lineStart() {
7384 clip.point = pointLine;
7385 line.lineStart();
7386 }
7387
7388 function lineEnd() {
7389 clip.point = point;
7390 line.lineEnd();
7391 }
7392
7393 function pointRing(lambda, phi) {
7394 ring.push([lambda, phi]);
7395 ringSink.point(lambda, phi);
7396 }
7397
7398 function ringStart() {
7399 ringSink.lineStart();
7400 ring = [];
7401 }
7402
7403 function ringEnd() {
7404 pointRing(ring[0][0], ring[0][1]);
7405 ringSink.lineEnd();
7406
7407 var clean = ringSink.clean(),
7408 ringSegments = ringBuffer.result(),
7409 i, n = ringSegments.length, m,
7410 segment,
7411 point;
7412
7413 ring.pop();
7414 polygon.push(ring);
7415 ring = null;
7416
7417 if (!n) return;
7418
7419 // No intersections.
7420 if (clean & 1) {
7421 segment = ringSegments[0];
7422 if ((m = segment.length - 1) > 0) {
7423 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
7424 sink.lineStart();
7425 for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
7426 sink.lineEnd();
7427 }
7428 return;
7429 }
7430
7431 // Rejoin connected segments.
7432 // TODO reuse ringBuffer.rejoin()?
7433 if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
7434
7435 segments.push(ringSegments.filter(validSegment));
7436 }
7437
7438 return clip;
7439 };
7440});
7441
7442function validSegment(segment) {
7443 return segment.length > 1;
7444}
7445
7446// Intersections are sorted along the clip edge. For both antimeridian cutting
7447// and circle clipping, the same comparison is used.
7448function compareIntersection(a, b) {
7449 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])
7450 - ((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]);
7451}
7452
7453
7454/***/ }),
7455
7456/***/ "./node_modules/d3-geo/src/clip/line.js":
7457/*!**********************************************!*\
7458 !*** ./node_modules/d3-geo/src/clip/line.js ***!
7459 \**********************************************/
7460/*! exports provided: default */
7461/***/ (function(module, __webpack_exports__, __webpack_require__) {
7462
7463"use strict";
7464__webpack_require__.r(__webpack_exports__);
7465/* harmony default export */ __webpack_exports__["default"] = (function(a, b, x0, y0, x1, y1) {
7466 var ax = a[0],
7467 ay = a[1],
7468 bx = b[0],
7469 by = b[1],
7470 t0 = 0,
7471 t1 = 1,
7472 dx = bx - ax,
7473 dy = by - ay,
7474 r;
7475
7476 r = x0 - ax;
7477 if (!dx && r > 0) return;
7478 r /= dx;
7479 if (dx < 0) {
7480 if (r < t0) return;
7481 if (r < t1) t1 = r;
7482 } else if (dx > 0) {
7483 if (r > t1) return;
7484 if (r > t0) t0 = r;
7485 }
7486
7487 r = x1 - ax;
7488 if (!dx && r < 0) return;
7489 r /= dx;
7490 if (dx < 0) {
7491 if (r > t1) return;
7492 if (r > t0) t0 = r;
7493 } else if (dx > 0) {
7494 if (r < t0) return;
7495 if (r < t1) t1 = r;
7496 }
7497
7498 r = y0 - ay;
7499 if (!dy && r > 0) return;
7500 r /= dy;
7501 if (dy < 0) {
7502 if (r < t0) return;
7503 if (r < t1) t1 = r;
7504 } else if (dy > 0) {
7505 if (r > t1) return;
7506 if (r > t0) t0 = r;
7507 }
7508
7509 r = y1 - ay;
7510 if (!dy && r < 0) return;
7511 r /= dy;
7512 if (dy < 0) {
7513 if (r > t1) return;
7514 if (r > t0) t0 = r;
7515 } else if (dy > 0) {
7516 if (r < t0) return;
7517 if (r < t1) t1 = r;
7518 }
7519
7520 if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
7521 if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
7522 return true;
7523});
7524
7525
7526/***/ }),
7527
7528/***/ "./node_modules/d3-geo/src/clip/rectangle.js":
7529/*!***************************************************!*\
7530 !*** ./node_modules/d3-geo/src/clip/rectangle.js ***!
7531 \***************************************************/
7532/*! exports provided: default */
7533/***/ (function(module, __webpack_exports__, __webpack_require__) {
7534
7535"use strict";
7536__webpack_require__.r(__webpack_exports__);
7537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return clipRectangle; });
7538/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
7539/* harmony import */ var _buffer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buffer */ "./node_modules/d3-geo/src/clip/buffer.js");
7540/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line */ "./node_modules/d3-geo/src/clip/line.js");
7541/* harmony import */ var _rejoin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rejoin */ "./node_modules/d3-geo/src/clip/rejoin.js");
7542/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
7543
7544
7545
7546
7547
7548
7549var clipMax = 1e9, clipMin = -clipMax;
7550
7551// TODO Use d3-polygon’s polygonContains here for the ring check?
7552// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?
7553
7554function clipRectangle(x0, y0, x1, y1) {
7555
7556 function visible(x, y) {
7557 return x0 <= x && x <= x1 && y0 <= y && y <= y1;
7558 }
7559
7560 function interpolate(from, to, direction, stream) {
7561 var a = 0, a1 = 0;
7562 if (from == null
7563 || (a = corner(from, direction)) !== (a1 = corner(to, direction))
7564 || comparePoint(from, to) < 0 ^ direction > 0) {
7565 do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
7566 while ((a = (a + direction + 4) % 4) !== a1);
7567 } else {
7568 stream.point(to[0], to[1]);
7569 }
7570 }
7571
7572 function corner(p, direction) {
7573 return Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[0] - x0) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 0 : 3
7574 : Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[0] - x1) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 2 : 1
7575 : Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[1] - y0) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 1 : 0
7576 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
7577 }
7578
7579 function compareIntersection(a, b) {
7580 return comparePoint(a.x, b.x);
7581 }
7582
7583 function comparePoint(a, b) {
7584 var ca = corner(a, 1),
7585 cb = corner(b, 1);
7586 return ca !== cb ? ca - cb
7587 : ca === 0 ? b[1] - a[1]
7588 : ca === 1 ? a[0] - b[0]
7589 : ca === 2 ? a[1] - b[1]
7590 : b[0] - a[0];
7591 }
7592
7593 return function(stream) {
7594 var activeStream = stream,
7595 bufferStream = Object(_buffer__WEBPACK_IMPORTED_MODULE_1__["default"])(),
7596 segments,
7597 polygon,
7598 ring,
7599 x__, y__, v__, // first point
7600 x_, y_, v_, // previous point
7601 first,
7602 clean;
7603
7604 var clipStream = {
7605 point: point,
7606 lineStart: lineStart,
7607 lineEnd: lineEnd,
7608 polygonStart: polygonStart,
7609 polygonEnd: polygonEnd
7610 };
7611
7612 function point(x, y) {
7613 if (visible(x, y)) activeStream.point(x, y);
7614 }
7615
7616 function polygonInside() {
7617 var winding = 0;
7618
7619 for (var i = 0, n = polygon.length; i < n; ++i) {
7620 for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
7621 a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
7622 if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
7623 else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
7624 }
7625 }
7626
7627 return winding;
7628 }
7629
7630 // Buffer geometry within a polygon and then clip it en masse.
7631 function polygonStart() {
7632 activeStream = bufferStream, segments = [], polygon = [], clean = true;
7633 }
7634
7635 function polygonEnd() {
7636 var startInside = polygonInside(),
7637 cleanInside = clean && startInside,
7638 visible = (segments = Object(d3_array__WEBPACK_IMPORTED_MODULE_4__["merge"])(segments)).length;
7639 if (cleanInside || visible) {
7640 stream.polygonStart();
7641 if (cleanInside) {
7642 stream.lineStart();
7643 interpolate(null, null, 1, stream);
7644 stream.lineEnd();
7645 }
7646 if (visible) {
7647 Object(_rejoin__WEBPACK_IMPORTED_MODULE_3__["default"])(segments, compareIntersection, startInside, interpolate, stream);
7648 }
7649 stream.polygonEnd();
7650 }
7651 activeStream = stream, segments = polygon = ring = null;
7652 }
7653
7654 function lineStart() {
7655 clipStream.point = linePoint;
7656 if (polygon) polygon.push(ring = []);
7657 first = true;
7658 v_ = false;
7659 x_ = y_ = NaN;
7660 }
7661
7662 // TODO rather than special-case polygons, simply handle them separately.
7663 // Ideally, coincident intersection points should be jittered to avoid
7664 // clipping issues.
7665 function lineEnd() {
7666 if (segments) {
7667 linePoint(x__, y__);
7668 if (v__ && v_) bufferStream.rejoin();
7669 segments.push(bufferStream.result());
7670 }
7671 clipStream.point = point;
7672 if (v_) activeStream.lineEnd();
7673 }
7674
7675 function linePoint(x, y) {
7676 var v = visible(x, y);
7677 if (polygon) ring.push([x, y]);
7678 if (first) {
7679 x__ = x, y__ = y, v__ = v;
7680 first = false;
7681 if (v) {
7682 activeStream.lineStart();
7683 activeStream.point(x, y);
7684 }
7685 } else {
7686 if (v && v_) activeStream.point(x, y);
7687 else {
7688 var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
7689 b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
7690 if (Object(_line__WEBPACK_IMPORTED_MODULE_2__["default"])(a, b, x0, y0, x1, y1)) {
7691 if (!v_) {
7692 activeStream.lineStart();
7693 activeStream.point(a[0], a[1]);
7694 }
7695 activeStream.point(b[0], b[1]);
7696 if (!v) activeStream.lineEnd();
7697 clean = false;
7698 } else if (v) {
7699 activeStream.lineStart();
7700 activeStream.point(x, y);
7701 clean = false;
7702 }
7703 }
7704 }
7705 x_ = x, y_ = y, v_ = v;
7706 }
7707
7708 return clipStream;
7709 };
7710}
7711
7712
7713/***/ }),
7714
7715/***/ "./node_modules/d3-geo/src/clip/rejoin.js":
7716/*!************************************************!*\
7717 !*** ./node_modules/d3-geo/src/clip/rejoin.js ***!
7718 \************************************************/
7719/*! exports provided: default */
7720/***/ (function(module, __webpack_exports__, __webpack_require__) {
7721
7722"use strict";
7723__webpack_require__.r(__webpack_exports__);
7724/* harmony import */ var _pointEqual__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../pointEqual */ "./node_modules/d3-geo/src/pointEqual.js");
7725
7726
7727function Intersection(point, points, other, entry) {
7728 this.x = point;
7729 this.z = points;
7730 this.o = other; // another intersection
7731 this.e = entry; // is an entry?
7732 this.v = false; // visited
7733 this.n = this.p = null; // next & previous
7734}
7735
7736// A generalized polygon clipping algorithm: given a polygon that has been cut
7737// into its visible line segments, and rejoins the segments by interpolating
7738// along the clip edge.
7739/* harmony default export */ __webpack_exports__["default"] = (function(segments, compareIntersection, startInside, interpolate, stream) {
7740 var subject = [],
7741 clip = [],
7742 i,
7743 n;
7744
7745 segments.forEach(function(segment) {
7746 if ((n = segment.length - 1) <= 0) return;
7747 var n, p0 = segment[0], p1 = segment[n], x;
7748
7749 // If the first and last points of a segment are coincident, then treat as a
7750 // closed ring. TODO if all rings are closed, then the winding order of the
7751 // exterior ring should be checked.
7752 if (Object(_pointEqual__WEBPACK_IMPORTED_MODULE_0__["default"])(p0, p1)) {
7753 stream.lineStart();
7754 for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
7755 stream.lineEnd();
7756 return;
7757 }
7758
7759 subject.push(x = new Intersection(p0, segment, null, true));
7760 clip.push(x.o = new Intersection(p0, null, x, false));
7761 subject.push(x = new Intersection(p1, segment, null, false));
7762 clip.push(x.o = new Intersection(p1, null, x, true));
7763 });
7764
7765 if (!subject.length) return;
7766
7767 clip.sort(compareIntersection);
7768 link(subject);
7769 link(clip);
7770
7771 for (i = 0, n = clip.length; i < n; ++i) {
7772 clip[i].e = startInside = !startInside;
7773 }
7774
7775 var start = subject[0],
7776 points,
7777 point;
7778
7779 while (1) {
7780 // Find first unvisited intersection.
7781 var current = start,
7782 isSubject = true;
7783 while (current.v) if ((current = current.n) === start) return;
7784 points = current.z;
7785 stream.lineStart();
7786 do {
7787 current.v = current.o.v = true;
7788 if (current.e) {
7789 if (isSubject) {
7790 for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
7791 } else {
7792 interpolate(current.x, current.n.x, 1, stream);
7793 }
7794 current = current.n;
7795 } else {
7796 if (isSubject) {
7797 points = current.p.z;
7798 for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
7799 } else {
7800 interpolate(current.x, current.p.x, -1, stream);
7801 }
7802 current = current.p;
7803 }
7804 current = current.o;
7805 points = current.z;
7806 isSubject = !isSubject;
7807 } while (!current.v);
7808 stream.lineEnd();
7809 }
7810});
7811
7812function link(array) {
7813 if (!(n = array.length)) return;
7814 var n,
7815 i = 0,
7816 a = array[0],
7817 b;
7818 while (++i < n) {
7819 a.n = b = array[i];
7820 b.p = a;
7821 a = b;
7822 }
7823 a.n = b = array[0];
7824 b.p = a;
7825}
7826
7827
7828/***/ }),
7829
7830/***/ "./node_modules/d3-geo/src/compose.js":
7831/*!********************************************!*\
7832 !*** ./node_modules/d3-geo/src/compose.js ***!
7833 \********************************************/
7834/*! exports provided: default */
7835/***/ (function(module, __webpack_exports__, __webpack_require__) {
7836
7837"use strict";
7838__webpack_require__.r(__webpack_exports__);
7839/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
7840
7841 function compose(x, y) {
7842 return x = a(x, y), b(x[0], x[1]);
7843 }
7844
7845 if (a.invert && b.invert) compose.invert = function(x, y) {
7846 return x = b.invert(x, y), x && a.invert(x[0], x[1]);
7847 };
7848
7849 return compose;
7850});
7851
7852
7853/***/ }),
7854
7855/***/ "./node_modules/d3-geo/src/constant.js":
7856/*!*********************************************!*\
7857 !*** ./node_modules/d3-geo/src/constant.js ***!
7858 \*********************************************/
7859/*! exports provided: default */
7860/***/ (function(module, __webpack_exports__, __webpack_require__) {
7861
7862"use strict";
7863__webpack_require__.r(__webpack_exports__);
7864/* harmony default export */ __webpack_exports__["default"] = (function(x) {
7865 return function() {
7866 return x;
7867 };
7868});
7869
7870
7871/***/ }),
7872
7873/***/ "./node_modules/d3-geo/src/contains.js":
7874/*!*********************************************!*\
7875 !*** ./node_modules/d3-geo/src/contains.js ***!
7876 \*********************************************/
7877/*! exports provided: default */
7878/***/ (function(module, __webpack_exports__, __webpack_require__) {
7879
7880"use strict";
7881__webpack_require__.r(__webpack_exports__);
7882/* harmony import */ var _polygonContains__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./polygonContains */ "./node_modules/d3-geo/src/polygonContains.js");
7883/* harmony import */ var _distance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./distance */ "./node_modules/d3-geo/src/distance.js");
7884/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
7885
7886
7887
7888
7889var containsObjectType = {
7890 Feature: function(object, point) {
7891 return containsGeometry(object.geometry, point);
7892 },
7893 FeatureCollection: function(object, point) {
7894 var features = object.features, i = -1, n = features.length;
7895 while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
7896 return false;
7897 }
7898};
7899
7900var containsGeometryType = {
7901 Sphere: function() {
7902 return true;
7903 },
7904 Point: function(object, point) {
7905 return containsPoint(object.coordinates, point);
7906 },
7907 MultiPoint: function(object, point) {
7908 var coordinates = object.coordinates, i = -1, n = coordinates.length;
7909 while (++i < n) if (containsPoint(coordinates[i], point)) return true;
7910 return false;
7911 },
7912 LineString: function(object, point) {
7913 return containsLine(object.coordinates, point);
7914 },
7915 MultiLineString: function(object, point) {
7916 var coordinates = object.coordinates, i = -1, n = coordinates.length;
7917 while (++i < n) if (containsLine(coordinates[i], point)) return true;
7918 return false;
7919 },
7920 Polygon: function(object, point) {
7921 return containsPolygon(object.coordinates, point);
7922 },
7923 MultiPolygon: function(object, point) {
7924 var coordinates = object.coordinates, i = -1, n = coordinates.length;
7925 while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
7926 return false;
7927 },
7928 GeometryCollection: function(object, point) {
7929 var geometries = object.geometries, i = -1, n = geometries.length;
7930 while (++i < n) if (containsGeometry(geometries[i], point)) return true;
7931 return false;
7932 }
7933};
7934
7935function containsGeometry(geometry, point) {
7936 return geometry && containsGeometryType.hasOwnProperty(geometry.type)
7937 ? containsGeometryType[geometry.type](geometry, point)
7938 : false;
7939}
7940
7941function containsPoint(coordinates, point) {
7942 return Object(_distance__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates, point) === 0;
7943}
7944
7945function containsLine(coordinates, point) {
7946 var ab = Object(_distance__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates[0], coordinates[1]),
7947 ao = Object(_distance__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates[0], point),
7948 ob = Object(_distance__WEBPACK_IMPORTED_MODULE_1__["default"])(point, coordinates[1]);
7949 return ao + ob <= ab + _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7950}
7951
7952function containsPolygon(coordinates, point) {
7953 return !!Object(_polygonContains__WEBPACK_IMPORTED_MODULE_0__["default"])(coordinates.map(ringRadians), pointRadians(point));
7954}
7955
7956function ringRadians(ring) {
7957 return ring = ring.map(pointRadians), ring.pop(), ring;
7958}
7959
7960function pointRadians(point) {
7961 return [point[0] * _math__WEBPACK_IMPORTED_MODULE_2__["radians"], point[1] * _math__WEBPACK_IMPORTED_MODULE_2__["radians"]];
7962}
7963
7964/* harmony default export */ __webpack_exports__["default"] = (function(object, point) {
7965 return (object && containsObjectType.hasOwnProperty(object.type)
7966 ? containsObjectType[object.type]
7967 : containsGeometry)(object, point);
7968});
7969
7970
7971/***/ }),
7972
7973/***/ "./node_modules/d3-geo/src/distance.js":
7974/*!*********************************************!*\
7975 !*** ./node_modules/d3-geo/src/distance.js ***!
7976 \*********************************************/
7977/*! exports provided: default */
7978/***/ (function(module, __webpack_exports__, __webpack_require__) {
7979
7980"use strict";
7981__webpack_require__.r(__webpack_exports__);
7982/* harmony import */ var _length__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./length */ "./node_modules/d3-geo/src/length.js");
7983
7984
7985var coordinates = [null, null],
7986 object = {type: "LineString", coordinates: coordinates};
7987
7988/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
7989 coordinates[0] = a;
7990 coordinates[1] = b;
7991 return Object(_length__WEBPACK_IMPORTED_MODULE_0__["default"])(object);
7992});
7993
7994
7995/***/ }),
7996
7997/***/ "./node_modules/d3-geo/src/graticule.js":
7998/*!**********************************************!*\
7999 !*** ./node_modules/d3-geo/src/graticule.js ***!
8000 \**********************************************/
8001/*! exports provided: default, graticule10 */
8002/***/ (function(module, __webpack_exports__, __webpack_require__) {
8003
8004"use strict";
8005__webpack_require__.r(__webpack_exports__);
8006/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return graticule; });
8007/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "graticule10", function() { return graticule10; });
8008/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
8009/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
8010
8011
8012
8013function graticuleX(y0, y1, dy) {
8014 var y = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(y0, y1 - _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"], dy).concat(y1);
8015 return function(x) { return y.map(function(y) { return [x, y]; }); };
8016}
8017
8018function graticuleY(x0, x1, dx) {
8019 var x = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(x0, x1 - _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"], dx).concat(x1);
8020 return function(y) { return x.map(function(x) { return [x, y]; }); };
8021}
8022
8023function graticule() {
8024 var x1, x0, X1, X0,
8025 y1, y0, Y1, Y0,
8026 dx = 10, dy = dx, DX = 90, DY = 360,
8027 x, y, X, Y,
8028 precision = 2.5;
8029
8030 function graticule() {
8031 return {type: "MultiLineString", coordinates: lines()};
8032 }
8033
8034 function lines() {
8035 return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["ceil"])(X0 / DX) * DX, X1, DX).map(X)
8036 .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["ceil"])(Y0 / DY) * DY, Y1, DY).map(Y))
8037 .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))
8038 .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));
8039 }
8040
8041 graticule.lines = function() {
8042 return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
8043 };
8044
8045 graticule.outline = function() {
8046 return {
8047 type: "Polygon",
8048 coordinates: [
8049 X(X0).concat(
8050 Y(Y1).slice(1),
8051 X(X1).reverse().slice(1),
8052 Y(Y0).reverse().slice(1))
8053 ]
8054 };
8055 };
8056
8057 graticule.extent = function(_) {
8058 if (!arguments.length) return graticule.extentMinor();
8059 return graticule.extentMajor(_).extentMinor(_);
8060 };
8061
8062 graticule.extentMajor = function(_) {
8063 if (!arguments.length) return [[X0, Y0], [X1, Y1]];
8064 X0 = +_[0][0], X1 = +_[1][0];
8065 Y0 = +_[0][1], Y1 = +_[1][1];
8066 if (X0 > X1) _ = X0, X0 = X1, X1 = _;
8067 if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
8068 return graticule.precision(precision);
8069 };
8070
8071 graticule.extentMinor = function(_) {
8072 if (!arguments.length) return [[x0, y0], [x1, y1]];
8073 x0 = +_[0][0], x1 = +_[1][0];
8074 y0 = +_[0][1], y1 = +_[1][1];
8075 if (x0 > x1) _ = x0, x0 = x1, x1 = _;
8076 if (y0 > y1) _ = y0, y0 = y1, y1 = _;
8077 return graticule.precision(precision);
8078 };
8079
8080 graticule.step = function(_) {
8081 if (!arguments.length) return graticule.stepMinor();
8082 return graticule.stepMajor(_).stepMinor(_);
8083 };
8084
8085 graticule.stepMajor = function(_) {
8086 if (!arguments.length) return [DX, DY];
8087 DX = +_[0], DY = +_[1];
8088 return graticule;
8089 };
8090
8091 graticule.stepMinor = function(_) {
8092 if (!arguments.length) return [dx, dy];
8093 dx = +_[0], dy = +_[1];
8094 return graticule;
8095 };
8096
8097 graticule.precision = function(_) {
8098 if (!arguments.length) return precision;
8099 precision = +_;
8100 x = graticuleX(y0, y1, 90);
8101 y = graticuleY(x0, x1, precision);
8102 X = graticuleX(Y0, Y1, 90);
8103 Y = graticuleY(X0, X1, precision);
8104 return graticule;
8105 };
8106
8107 return graticule
8108 .extentMajor([[-180, -90 + _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]], [180, 90 - _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]]])
8109 .extentMinor([[-180, -80 - _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]], [180, 80 + _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"]]]);
8110}
8111
8112function graticule10() {
8113 return graticule()();
8114}
8115
8116
8117/***/ }),
8118
8119/***/ "./node_modules/d3-geo/src/identity.js":
8120/*!*********************************************!*\
8121 !*** ./node_modules/d3-geo/src/identity.js ***!
8122 \*********************************************/
8123/*! exports provided: default */
8124/***/ (function(module, __webpack_exports__, __webpack_require__) {
8125
8126"use strict";
8127__webpack_require__.r(__webpack_exports__);
8128/* harmony default export */ __webpack_exports__["default"] = (function(x) {
8129 return x;
8130});
8131
8132
8133/***/ }),
8134
8135/***/ "./node_modules/d3-geo/src/interpolate.js":
8136/*!************************************************!*\
8137 !*** ./node_modules/d3-geo/src/interpolate.js ***!
8138 \************************************************/
8139/*! exports provided: default */
8140/***/ (function(module, __webpack_exports__, __webpack_require__) {
8141
8142"use strict";
8143__webpack_require__.r(__webpack_exports__);
8144/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
8145
8146
8147/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
8148 var x0 = a[0] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"],
8149 y0 = a[1] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"],
8150 x1 = b[0] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"],
8151 y1 = b[1] * _math__WEBPACK_IMPORTED_MODULE_0__["radians"],
8152 cy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
8153 sy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0),
8154 cy1 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y1),
8155 sy1 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y1),
8156 kx0 = cy0 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x0),
8157 ky0 = cy0 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x0),
8158 kx1 = cy1 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x1),
8159 ky1 = cy1 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x1),
8160 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))),
8161 k = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(d);
8162
8163 var interpolate = d ? function(t) {
8164 var B = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(t *= d) / k,
8165 A = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(d - t) / k,
8166 x = A * kx0 + B * kx1,
8167 y = A * ky0 + B * ky1,
8168 z = A * sy0 + B * sy1;
8169 return [
8170 Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(y, x) * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"],
8171 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"]
8172 ];
8173 } : function() {
8174 return [x0 * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"], y0 * _math__WEBPACK_IMPORTED_MODULE_0__["degrees"]];
8175 };
8176
8177 interpolate.distance = d;
8178
8179 return interpolate;
8180});
8181
8182
8183/***/ }),
8184
8185/***/ "./node_modules/d3-geo/src/length.js":
8186/*!*******************************************!*\
8187 !*** ./node_modules/d3-geo/src/length.js ***!
8188 \*******************************************/
8189/*! exports provided: default */
8190/***/ (function(module, __webpack_exports__, __webpack_require__) {
8191
8192"use strict";
8193__webpack_require__.r(__webpack_exports__);
8194/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder */ "./node_modules/d3-geo/src/adder.js");
8195/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
8196/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop */ "./node_modules/d3-geo/src/noop.js");
8197/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream */ "./node_modules/d3-geo/src/stream.js");
8198
8199
8200
8201
8202
8203var lengthSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
8204 lambda0,
8205 sinPhi0,
8206 cosPhi0;
8207
8208var lengthStream = {
8209 sphere: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
8210 point: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
8211 lineStart: lengthLineStart,
8212 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
8213 polygonStart: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
8214 polygonEnd: _noop__WEBPACK_IMPORTED_MODULE_2__["default"]
8215};
8216
8217function lengthLineStart() {
8218 lengthStream.point = lengthPointFirst;
8219 lengthStream.lineEnd = lengthLineEnd;
8220}
8221
8222function lengthLineEnd() {
8223 lengthStream.point = lengthStream.lineEnd = _noop__WEBPACK_IMPORTED_MODULE_2__["default"];
8224}
8225
8226function lengthPointFirst(lambda, phi) {
8227 lambda *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"];
8228 lambda0 = lambda, sinPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi), cosPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi);
8229 lengthStream.point = lengthPoint;
8230}
8231
8232function lengthPoint(lambda, phi) {
8233 lambda *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math__WEBPACK_IMPORTED_MODULE_1__["radians"];
8234 var sinPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
8235 cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
8236 delta = Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda - lambda0),
8237 cosDelta = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(delta),
8238 sinDelta = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(delta),
8239 x = cosPhi * sinDelta,
8240 y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,
8241 z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;
8242 lengthSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(Object(_math__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(x * x + y * y), z));
8243 lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;
8244}
8245
8246/* harmony default export */ __webpack_exports__["default"] = (function(object) {
8247 lengthSum.reset();
8248 Object(_stream__WEBPACK_IMPORTED_MODULE_3__["default"])(object, lengthStream);
8249 return +lengthSum;
8250});
8251
8252
8253/***/ }),
8254
8255/***/ "./node_modules/d3-geo/src/math.js":
8256/*!*****************************************!*\
8257 !*** ./node_modules/d3-geo/src/math.js ***!
8258 \*****************************************/
8259/*! 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 */
8260/***/ (function(module, __webpack_exports__, __webpack_require__) {
8261
8262"use strict";
8263__webpack_require__.r(__webpack_exports__);
8264/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
8265/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon2", function() { return epsilon2; });
8266/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
8267/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
8268/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quarterPi", function() { return quarterPi; });
8269/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
8270/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "degrees", function() { return degrees; });
8271/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "radians", function() { return radians; });
8272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "abs", function() { return abs; });
8273/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan", function() { return atan; });
8274/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan2", function() { return atan2; });
8275/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
8276/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ceil", function() { return ceil; });
8277/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exp", function() { return exp; });
8278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "floor", function() { return floor; });
8279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
8280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pow", function() { return pow; });
8281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
8282/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sign", function() { return sign; });
8283/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
8284/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tan", function() { return tan; });
8285/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "acos", function() { return acos; });
8286/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asin", function() { return asin; });
8287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "haversin", function() { return haversin; });
8288var epsilon = 1e-6;
8289var epsilon2 = 1e-12;
8290var pi = Math.PI;
8291var halfPi = pi / 2;
8292var quarterPi = pi / 4;
8293var tau = pi * 2;
8294
8295var degrees = 180 / pi;
8296var radians = pi / 180;
8297
8298var abs = Math.abs;
8299var atan = Math.atan;
8300var atan2 = Math.atan2;
8301var cos = Math.cos;
8302var ceil = Math.ceil;
8303var exp = Math.exp;
8304var floor = Math.floor;
8305var log = Math.log;
8306var pow = Math.pow;
8307var sin = Math.sin;
8308var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
8309var sqrt = Math.sqrt;
8310var tan = Math.tan;
8311
8312function acos(x) {
8313 return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
8314}
8315
8316function asin(x) {
8317 return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);
8318}
8319
8320function haversin(x) {
8321 return (x = sin(x / 2)) * x;
8322}
8323
8324
8325/***/ }),
8326
8327/***/ "./node_modules/d3-geo/src/noop.js":
8328/*!*****************************************!*\
8329 !*** ./node_modules/d3-geo/src/noop.js ***!
8330 \*****************************************/
8331/*! exports provided: default */
8332/***/ (function(module, __webpack_exports__, __webpack_require__) {
8333
8334"use strict";
8335__webpack_require__.r(__webpack_exports__);
8336/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return noop; });
8337function noop() {}
8338
8339
8340/***/ }),
8341
8342/***/ "./node_modules/d3-geo/src/path/area.js":
8343/*!**********************************************!*\
8344 !*** ./node_modules/d3-geo/src/path/area.js ***!
8345 \**********************************************/
8346/*! exports provided: default */
8347/***/ (function(module, __webpack_exports__, __webpack_require__) {
8348
8349"use strict";
8350__webpack_require__.r(__webpack_exports__);
8351/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../adder */ "./node_modules/d3-geo/src/adder.js");
8352/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
8353/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
8354
8355
8356
8357
8358var areaSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
8359 areaRingSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
8360 x00,
8361 y00,
8362 x0,
8363 y0;
8364
8365var areaStream = {
8366 point: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
8367 lineStart: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
8368 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
8369 polygonStart: function() {
8370 areaStream.lineStart = areaRingStart;
8371 areaStream.lineEnd = areaRingEnd;
8372 },
8373 polygonEnd: function() {
8374 areaStream.lineStart = areaStream.lineEnd = areaStream.point = _noop__WEBPACK_IMPORTED_MODULE_2__["default"];
8375 areaSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(areaRingSum));
8376 areaRingSum.reset();
8377 },
8378 result: function() {
8379 var area = areaSum / 2;
8380 areaSum.reset();
8381 return area;
8382 }
8383};
8384
8385function areaRingStart() {
8386 areaStream.point = areaPointFirst;
8387}
8388
8389function areaPointFirst(x, y) {
8390 areaStream.point = areaPoint;
8391 x00 = x0 = x, y00 = y0 = y;
8392}
8393
8394function areaPoint(x, y) {
8395 areaRingSum.add(y0 * x - x0 * y);
8396 x0 = x, y0 = y;
8397}
8398
8399function areaRingEnd() {
8400 areaPoint(x00, y00);
8401}
8402
8403/* harmony default export */ __webpack_exports__["default"] = (areaStream);
8404
8405
8406/***/ }),
8407
8408/***/ "./node_modules/d3-geo/src/path/bounds.js":
8409/*!************************************************!*\
8410 !*** ./node_modules/d3-geo/src/path/bounds.js ***!
8411 \************************************************/
8412/*! exports provided: default */
8413/***/ (function(module, __webpack_exports__, __webpack_require__) {
8414
8415"use strict";
8416__webpack_require__.r(__webpack_exports__);
8417/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
8418
8419
8420var x0 = Infinity,
8421 y0 = x0,
8422 x1 = -x0,
8423 y1 = x1;
8424
8425var boundsStream = {
8426 point: boundsPoint,
8427 lineStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
8428 lineEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
8429 polygonStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
8430 polygonEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
8431 result: function() {
8432 var bounds = [[x0, y0], [x1, y1]];
8433 x1 = y1 = -(y0 = x0 = Infinity);
8434 return bounds;
8435 }
8436};
8437
8438function boundsPoint(x, y) {
8439 if (x < x0) x0 = x;
8440 if (x > x1) x1 = x;
8441 if (y < y0) y0 = y;
8442 if (y > y1) y1 = y;
8443}
8444
8445/* harmony default export */ __webpack_exports__["default"] = (boundsStream);
8446
8447
8448/***/ }),
8449
8450/***/ "./node_modules/d3-geo/src/path/centroid.js":
8451/*!**************************************************!*\
8452 !*** ./node_modules/d3-geo/src/path/centroid.js ***!
8453 \**************************************************/
8454/*! exports provided: default */
8455/***/ (function(module, __webpack_exports__, __webpack_require__) {
8456
8457"use strict";
8458__webpack_require__.r(__webpack_exports__);
8459/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
8460
8461
8462// TODO Enforce positive area for exterior, negative area for interior?
8463
8464var X0 = 0,
8465 Y0 = 0,
8466 Z0 = 0,
8467 X1 = 0,
8468 Y1 = 0,
8469 Z1 = 0,
8470 X2 = 0,
8471 Y2 = 0,
8472 Z2 = 0,
8473 x00,
8474 y00,
8475 x0,
8476 y0;
8477
8478var centroidStream = {
8479 point: centroidPoint,
8480 lineStart: centroidLineStart,
8481 lineEnd: centroidLineEnd,
8482 polygonStart: function() {
8483 centroidStream.lineStart = centroidRingStart;
8484 centroidStream.lineEnd = centroidRingEnd;
8485 },
8486 polygonEnd: function() {
8487 centroidStream.point = centroidPoint;
8488 centroidStream.lineStart = centroidLineStart;
8489 centroidStream.lineEnd = centroidLineEnd;
8490 },
8491 result: function() {
8492 var centroid = Z2 ? [X2 / Z2, Y2 / Z2]
8493 : Z1 ? [X1 / Z1, Y1 / Z1]
8494 : Z0 ? [X0 / Z0, Y0 / Z0]
8495 : [NaN, NaN];
8496 X0 = Y0 = Z0 =
8497 X1 = Y1 = Z1 =
8498 X2 = Y2 = Z2 = 0;
8499 return centroid;
8500 }
8501};
8502
8503function centroidPoint(x, y) {
8504 X0 += x;
8505 Y0 += y;
8506 ++Z0;
8507}
8508
8509function centroidLineStart() {
8510 centroidStream.point = centroidPointFirstLine;
8511}
8512
8513function centroidPointFirstLine(x, y) {
8514 centroidStream.point = centroidPointLine;
8515 centroidPoint(x0 = x, y0 = y);
8516}
8517
8518function centroidPointLine(x, y) {
8519 var dx = x - x0, dy = y - y0, z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(dx * dx + dy * dy);
8520 X1 += z * (x0 + x) / 2;
8521 Y1 += z * (y0 + y) / 2;
8522 Z1 += z;
8523 centroidPoint(x0 = x, y0 = y);
8524}
8525
8526function centroidLineEnd() {
8527 centroidStream.point = centroidPoint;
8528}
8529
8530function centroidRingStart() {
8531 centroidStream.point = centroidPointFirstRing;
8532}
8533
8534function centroidRingEnd() {
8535 centroidPointRing(x00, y00);
8536}
8537
8538function centroidPointFirstRing(x, y) {
8539 centroidStream.point = centroidPointRing;
8540 centroidPoint(x00 = x0 = x, y00 = y0 = y);
8541}
8542
8543function centroidPointRing(x, y) {
8544 var dx = x - x0,
8545 dy = y - y0,
8546 z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(dx * dx + dy * dy);
8547
8548 X1 += z * (x0 + x) / 2;
8549 Y1 += z * (y0 + y) / 2;
8550 Z1 += z;
8551
8552 z = y0 * x - x0 * y;
8553 X2 += z * (x0 + x);
8554 Y2 += z * (y0 + y);
8555 Z2 += z * 3;
8556 centroidPoint(x0 = x, y0 = y);
8557}
8558
8559/* harmony default export */ __webpack_exports__["default"] = (centroidStream);
8560
8561
8562/***/ }),
8563
8564/***/ "./node_modules/d3-geo/src/path/context.js":
8565/*!*************************************************!*\
8566 !*** ./node_modules/d3-geo/src/path/context.js ***!
8567 \*************************************************/
8568/*! exports provided: default */
8569/***/ (function(module, __webpack_exports__, __webpack_require__) {
8570
8571"use strict";
8572__webpack_require__.r(__webpack_exports__);
8573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return PathContext; });
8574/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
8575/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
8576
8577
8578
8579function PathContext(context) {
8580 this._context = context;
8581}
8582
8583PathContext.prototype = {
8584 _radius: 4.5,
8585 pointRadius: function(_) {
8586 return this._radius = _, this;
8587 },
8588 polygonStart: function() {
8589 this._line = 0;
8590 },
8591 polygonEnd: function() {
8592 this._line = NaN;
8593 },
8594 lineStart: function() {
8595 this._point = 0;
8596 },
8597 lineEnd: function() {
8598 if (this._line === 0) this._context.closePath();
8599 this._point = NaN;
8600 },
8601 point: function(x, y) {
8602 switch (this._point) {
8603 case 0: {
8604 this._context.moveTo(x, y);
8605 this._point = 1;
8606 break;
8607 }
8608 case 1: {
8609 this._context.lineTo(x, y);
8610 break;
8611 }
8612 default: {
8613 this._context.moveTo(x + this._radius, y);
8614 this._context.arc(x, y, this._radius, 0, _math__WEBPACK_IMPORTED_MODULE_0__["tau"]);
8615 break;
8616 }
8617 }
8618 },
8619 result: _noop__WEBPACK_IMPORTED_MODULE_1__["default"]
8620};
8621
8622
8623/***/ }),
8624
8625/***/ "./node_modules/d3-geo/src/path/index.js":
8626/*!***********************************************!*\
8627 !*** ./node_modules/d3-geo/src/path/index.js ***!
8628 \***********************************************/
8629/*! exports provided: default */
8630/***/ (function(module, __webpack_exports__, __webpack_require__) {
8631
8632"use strict";
8633__webpack_require__.r(__webpack_exports__);
8634/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../identity */ "./node_modules/d3-geo/src/identity.js");
8635/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stream */ "./node_modules/d3-geo/src/stream.js");
8636/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./area */ "./node_modules/d3-geo/src/path/area.js");
8637/* harmony import */ var _bounds__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bounds */ "./node_modules/d3-geo/src/path/bounds.js");
8638/* harmony import */ var _centroid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./centroid */ "./node_modules/d3-geo/src/path/centroid.js");
8639/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./context */ "./node_modules/d3-geo/src/path/context.js");
8640/* harmony import */ var _measure__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./measure */ "./node_modules/d3-geo/src/path/measure.js");
8641/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./string */ "./node_modules/d3-geo/src/path/string.js");
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651/* harmony default export */ __webpack_exports__["default"] = (function(projection, context) {
8652 var pointRadius = 4.5,
8653 projectionStream,
8654 contextStream;
8655
8656 function path(object) {
8657 if (object) {
8658 if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
8659 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(contextStream));
8660 }
8661 return contextStream.result();
8662 }
8663
8664 path.area = function(object) {
8665 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_area__WEBPACK_IMPORTED_MODULE_2__["default"]));
8666 return _area__WEBPACK_IMPORTED_MODULE_2__["default"].result();
8667 };
8668
8669 path.measure = function(object) {
8670 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_measure__WEBPACK_IMPORTED_MODULE_6__["default"]));
8671 return _measure__WEBPACK_IMPORTED_MODULE_6__["default"].result();
8672 };
8673
8674 path.bounds = function(object) {
8675 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_bounds__WEBPACK_IMPORTED_MODULE_3__["default"]));
8676 return _bounds__WEBPACK_IMPORTED_MODULE_3__["default"].result();
8677 };
8678
8679 path.centroid = function(object) {
8680 Object(_stream__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_centroid__WEBPACK_IMPORTED_MODULE_4__["default"]));
8681 return _centroid__WEBPACK_IMPORTED_MODULE_4__["default"].result();
8682 };
8683
8684 path.projection = function(_) {
8685 return arguments.length ? (projectionStream = _ == null ? (projection = null, _identity__WEBPACK_IMPORTED_MODULE_0__["default"]) : (projection = _).stream, path) : projection;
8686 };
8687
8688 path.context = function(_) {
8689 if (!arguments.length) return context;
8690 contextStream = _ == null ? (context = null, new _string__WEBPACK_IMPORTED_MODULE_7__["default"]) : new _context__WEBPACK_IMPORTED_MODULE_5__["default"](context = _);
8691 if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
8692 return path;
8693 };
8694
8695 path.pointRadius = function(_) {
8696 if (!arguments.length) return pointRadius;
8697 pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
8698 return path;
8699 };
8700
8701 return path.projection(projection).context(context);
8702});
8703
8704
8705/***/ }),
8706
8707/***/ "./node_modules/d3-geo/src/path/measure.js":
8708/*!*************************************************!*\
8709 !*** ./node_modules/d3-geo/src/path/measure.js ***!
8710 \*************************************************/
8711/*! exports provided: default */
8712/***/ (function(module, __webpack_exports__, __webpack_require__) {
8713
8714"use strict";
8715__webpack_require__.r(__webpack_exports__);
8716/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../adder */ "./node_modules/d3-geo/src/adder.js");
8717/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
8718/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-geo/src/noop.js");
8719
8720
8721
8722
8723var lengthSum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])(),
8724 lengthRing,
8725 x00,
8726 y00,
8727 x0,
8728 y0;
8729
8730var lengthStream = {
8731 point: _noop__WEBPACK_IMPORTED_MODULE_2__["default"],
8732 lineStart: function() {
8733 lengthStream.point = lengthPointFirst;
8734 },
8735 lineEnd: function() {
8736 if (lengthRing) lengthPoint(x00, y00);
8737 lengthStream.point = _noop__WEBPACK_IMPORTED_MODULE_2__["default"];
8738 },
8739 polygonStart: function() {
8740 lengthRing = true;
8741 },
8742 polygonEnd: function() {
8743 lengthRing = null;
8744 },
8745 result: function() {
8746 var length = +lengthSum;
8747 lengthSum.reset();
8748 return length;
8749 }
8750};
8751
8752function lengthPointFirst(x, y) {
8753 lengthStream.point = lengthPoint;
8754 x00 = x0 = x, y00 = y0 = y;
8755}
8756
8757function lengthPoint(x, y) {
8758 x0 -= x, y0 -= y;
8759 lengthSum.add(Object(_math__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(x0 * x0 + y0 * y0));
8760 x0 = x, y0 = y;
8761}
8762
8763/* harmony default export */ __webpack_exports__["default"] = (lengthStream);
8764
8765
8766/***/ }),
8767
8768/***/ "./node_modules/d3-geo/src/path/string.js":
8769/*!************************************************!*\
8770 !*** ./node_modules/d3-geo/src/path/string.js ***!
8771 \************************************************/
8772/*! exports provided: default */
8773/***/ (function(module, __webpack_exports__, __webpack_require__) {
8774
8775"use strict";
8776__webpack_require__.r(__webpack_exports__);
8777/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return PathString; });
8778function PathString() {
8779 this._string = [];
8780}
8781
8782PathString.prototype = {
8783 _radius: 4.5,
8784 _circle: circle(4.5),
8785 pointRadius: function(_) {
8786 if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;
8787 return this;
8788 },
8789 polygonStart: function() {
8790 this._line = 0;
8791 },
8792 polygonEnd: function() {
8793 this._line = NaN;
8794 },
8795 lineStart: function() {
8796 this._point = 0;
8797 },
8798 lineEnd: function() {
8799 if (this._line === 0) this._string.push("Z");
8800 this._point = NaN;
8801 },
8802 point: function(x, y) {
8803 switch (this._point) {
8804 case 0: {
8805 this._string.push("M", x, ",", y);
8806 this._point = 1;
8807 break;
8808 }
8809 case 1: {
8810 this._string.push("L", x, ",", y);
8811 break;
8812 }
8813 default: {
8814 if (this._circle == null) this._circle = circle(this._radius);
8815 this._string.push("M", x, ",", y, this._circle);
8816 break;
8817 }
8818 }
8819 },
8820 result: function() {
8821 if (this._string.length) {
8822 var result = this._string.join("");
8823 this._string = [];
8824 return result;
8825 } else {
8826 return null;
8827 }
8828 }
8829};
8830
8831function circle(radius) {
8832 return "m0," + radius
8833 + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius
8834 + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius
8835 + "z";
8836}
8837
8838
8839/***/ }),
8840
8841/***/ "./node_modules/d3-geo/src/pointEqual.js":
8842/*!***********************************************!*\
8843 !*** ./node_modules/d3-geo/src/pointEqual.js ***!
8844 \***********************************************/
8845/*! exports provided: default */
8846/***/ (function(module, __webpack_exports__, __webpack_require__) {
8847
8848"use strict";
8849__webpack_require__.r(__webpack_exports__);
8850/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
8851
8852
8853/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
8854 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"];
8855});
8856
8857
8858/***/ }),
8859
8860/***/ "./node_modules/d3-geo/src/polygonContains.js":
8861/*!****************************************************!*\
8862 !*** ./node_modules/d3-geo/src/polygonContains.js ***!
8863 \****************************************************/
8864/*! exports provided: default */
8865/***/ (function(module, __webpack_exports__, __webpack_require__) {
8866
8867"use strict";
8868__webpack_require__.r(__webpack_exports__);
8869/* harmony import */ var _adder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder */ "./node_modules/d3-geo/src/adder.js");
8870/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cartesian */ "./node_modules/d3-geo/src/cartesian.js");
8871/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
8872
8873
8874
8875
8876var sum = Object(_adder__WEBPACK_IMPORTED_MODULE_0__["default"])();
8877
8878/* harmony default export */ __webpack_exports__["default"] = (function(polygon, point) {
8879 var lambda = point[0],
8880 phi = point[1],
8881 normal = [Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(lambda), -Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(lambda), 0],
8882 angle = 0,
8883 winding = 0;
8884
8885 sum.reset();
8886
8887 for (var i = 0, n = polygon.length; i < n; ++i) {
8888 if (!(m = (ring = polygon[i]).length)) continue;
8889 var ring,
8890 m,
8891 point0 = ring[m - 1],
8892 lambda0 = point0[0],
8893 phi0 = point0[1] / 2 + _math__WEBPACK_IMPORTED_MODULE_2__["quarterPi"],
8894 sinPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(phi0),
8895 cosPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi0);
8896
8897 for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
8898 var point1 = ring[j],
8899 lambda1 = point1[0],
8900 phi1 = point1[1] / 2 + _math__WEBPACK_IMPORTED_MODULE_2__["quarterPi"],
8901 sinPhi1 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(phi1),
8902 cosPhi1 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi1),
8903 delta = lambda1 - lambda0,
8904 sign = delta >= 0 ? 1 : -1,
8905 absDelta = sign * delta,
8906 antimeridian = absDelta > _math__WEBPACK_IMPORTED_MODULE_2__["pi"],
8907 k = sinPhi0 * sinPhi1;
8908
8909 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)));
8910 angle += antimeridian ? delta + sign * _math__WEBPACK_IMPORTED_MODULE_2__["tau"] : delta;
8911
8912 // Are the longitudes either side of the point’s meridian (lambda),
8913 // and are the latitudes smaller than the parallel (phi)?
8914 if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
8915 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));
8916 Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesianNormalizeInPlace"])(arc);
8917 var intersection = Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesianCross"])(normal, arc);
8918 Object(_cartesian__WEBPACK_IMPORTED_MODULE_1__["cartesianNormalizeInPlace"])(intersection);
8919 var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * Object(_math__WEBPACK_IMPORTED_MODULE_2__["asin"])(intersection[2]);
8920 if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
8921 winding += antimeridian ^ delta >= 0 ? 1 : -1;
8922 }
8923 }
8924 }
8925 }
8926
8927 // First, determine whether the South pole is inside or outside:
8928 //
8929 // It is inside if:
8930 // * the polygon winds around it in a clockwise direction.
8931 // * the polygon does not (cumulatively) wind around it, but has a negative
8932 // (counter-clockwise) area.
8933 //
8934 // Second, count the (signed) number of times a segment crosses a lambda
8935 // from the point to the South pole. If it is zero, then the point is the
8936 // same side as the South pole.
8937
8938 return (angle < -_math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] || angle < _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] && sum < -_math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) ^ (winding & 1);
8939});
8940
8941
8942/***/ }),
8943
8944/***/ "./node_modules/d3-geo/src/projection/albers.js":
8945/*!******************************************************!*\
8946 !*** ./node_modules/d3-geo/src/projection/albers.js ***!
8947 \******************************************************/
8948/*! exports provided: default */
8949/***/ (function(module, __webpack_exports__, __webpack_require__) {
8950
8951"use strict";
8952__webpack_require__.r(__webpack_exports__);
8953/* harmony import */ var _conicEqualArea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./conicEqualArea */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
8954
8955
8956/* harmony default export */ __webpack_exports__["default"] = (function() {
8957 return Object(_conicEqualArea__WEBPACK_IMPORTED_MODULE_0__["default"])()
8958 .parallels([29.5, 45.5])
8959 .scale(1070)
8960 .translate([480, 250])
8961 .rotate([96, 0])
8962 .center([-0.6, 38.7]);
8963});
8964
8965
8966/***/ }),
8967
8968/***/ "./node_modules/d3-geo/src/projection/albersUsa.js":
8969/*!*********************************************************!*\
8970 !*** ./node_modules/d3-geo/src/projection/albersUsa.js ***!
8971 \*********************************************************/
8972/*! exports provided: default */
8973/***/ (function(module, __webpack_exports__, __webpack_require__) {
8974
8975"use strict";
8976__webpack_require__.r(__webpack_exports__);
8977/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
8978/* harmony import */ var _albers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./albers */ "./node_modules/d3-geo/src/projection/albers.js");
8979/* harmony import */ var _conicEqualArea__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./conicEqualArea */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
8980/* harmony import */ var _fit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit */ "./node_modules/d3-geo/src/projection/fit.js");
8981
8982
8983
8984
8985
8986// The projections must have mutually exclusive clip regions on the sphere,
8987// as this will avoid emitting interleaving lines and polygons.
8988function multiplex(streams) {
8989 var n = streams.length;
8990 return {
8991 point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
8992 sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
8993 lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
8994 lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
8995 polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
8996 polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
8997 };
8998}
8999
9000// A composite projection for the United States, configured by default for
9001// 960×500. The projection also works quite well at 960×600 if you change the
9002// scale to 1285 and adjust the translate accordingly. The set of standard
9003// parallels for each region comes from USGS, which is published here:
9004// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
9005/* harmony default export */ __webpack_exports__["default"] = (function() {
9006 var cache,
9007 cacheStream,
9008 lower48 = Object(_albers__WEBPACK_IMPORTED_MODULE_1__["default"])(), lower48Point,
9009 alaska = Object(_conicEqualArea__WEBPACK_IMPORTED_MODULE_2__["default"])().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
9010 hawaii = Object(_conicEqualArea__WEBPACK_IMPORTED_MODULE_2__["default"])().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
9011 point, pointStream = {point: function(x, y) { point = [x, y]; }};
9012
9013 function albersUsa(coordinates) {
9014 var x = coordinates[0], y = coordinates[1];
9015 return point = null,
9016 (lower48Point.point(x, y), point)
9017 || (alaskaPoint.point(x, y), point)
9018 || (hawaiiPoint.point(x, y), point);
9019 }
9020
9021 albersUsa.invert = function(coordinates) {
9022 var k = lower48.scale(),
9023 t = lower48.translate(),
9024 x = (coordinates[0] - t[0]) / k,
9025 y = (coordinates[1] - t[1]) / k;
9026 return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
9027 : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
9028 : lower48).invert(coordinates);
9029 };
9030
9031 albersUsa.stream = function(stream) {
9032 return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
9033 };
9034
9035 albersUsa.precision = function(_) {
9036 if (!arguments.length) return lower48.precision();
9037 lower48.precision(_), alaska.precision(_), hawaii.precision(_);
9038 return reset();
9039 };
9040
9041 albersUsa.scale = function(_) {
9042 if (!arguments.length) return lower48.scale();
9043 lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
9044 return albersUsa.translate(lower48.translate());
9045 };
9046
9047 albersUsa.translate = function(_) {
9048 if (!arguments.length) return lower48.translate();
9049 var k = lower48.scale(), x = +_[0], y = +_[1];
9050
9051 lower48Point = lower48
9052 .translate(_)
9053 .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
9054 .stream(pointStream);
9055
9056 alaskaPoint = alaska
9057 .translate([x - 0.307 * k, y + 0.201 * k])
9058 .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"]]])
9059 .stream(pointStream);
9060
9061 hawaiiPoint = hawaii
9062 .translate([x - 0.205 * k, y + 0.212 * k])
9063 .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"]]])
9064 .stream(pointStream);
9065
9066 return reset();
9067 };
9068
9069 albersUsa.fitExtent = function(extent, object) {
9070 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitExtent"])(albersUsa, extent, object);
9071 };
9072
9073 albersUsa.fitSize = function(size, object) {
9074 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitSize"])(albersUsa, size, object);
9075 };
9076
9077 albersUsa.fitWidth = function(width, object) {
9078 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitWidth"])(albersUsa, width, object);
9079 };
9080
9081 albersUsa.fitHeight = function(height, object) {
9082 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitHeight"])(albersUsa, height, object);
9083 };
9084
9085 function reset() {
9086 cache = cacheStream = null;
9087 return albersUsa;
9088 }
9089
9090 return albersUsa.scale(1070);
9091});
9092
9093
9094/***/ }),
9095
9096/***/ "./node_modules/d3-geo/src/projection/azimuthal.js":
9097/*!*********************************************************!*\
9098 !*** ./node_modules/d3-geo/src/projection/azimuthal.js ***!
9099 \*********************************************************/
9100/*! exports provided: azimuthalRaw, azimuthalInvert */
9101/***/ (function(module, __webpack_exports__, __webpack_require__) {
9102
9103"use strict";
9104__webpack_require__.r(__webpack_exports__);
9105/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalRaw", function() { return azimuthalRaw; });
9106/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalInvert", function() { return azimuthalInvert; });
9107/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9108
9109
9110function azimuthalRaw(scale) {
9111 return function(x, y) {
9112 var cx = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x),
9113 cy = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y),
9114 k = scale(cx * cy);
9115 return [
9116 k * cy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x),
9117 k * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y)
9118 ];
9119 }
9120}
9121
9122function azimuthalInvert(angle) {
9123 return function(x, y) {
9124 var z = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + y * y),
9125 c = angle(z),
9126 sc = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(c),
9127 cc = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(c);
9128 return [
9129 Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x * sc, z * cc),
9130 Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(z && y * sc / z)
9131 ];
9132 }
9133}
9134
9135
9136/***/ }),
9137
9138/***/ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js":
9139/*!******************************************************************!*\
9140 !*** ./node_modules/d3-geo/src/projection/azimuthalEqualArea.js ***!
9141 \******************************************************************/
9142/*! exports provided: azimuthalEqualAreaRaw, default */
9143/***/ (function(module, __webpack_exports__, __webpack_require__) {
9144
9145"use strict";
9146__webpack_require__.r(__webpack_exports__);
9147/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalEqualAreaRaw", function() { return azimuthalEqualAreaRaw; });
9148/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9149/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
9150/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
9151
9152
9153
9154
9155var azimuthalEqualAreaRaw = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalRaw"])(function(cxcy) {
9156 return Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(2 / (1 + cxcy));
9157});
9158
9159azimuthalEqualAreaRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
9160 return 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(z / 2);
9161});
9162
9163/* harmony default export */ __webpack_exports__["default"] = (function() {
9164 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(azimuthalEqualAreaRaw)
9165 .scale(124.75)
9166 .clipAngle(180 - 1e-3);
9167});
9168
9169
9170/***/ }),
9171
9172/***/ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js":
9173/*!********************************************************************!*\
9174 !*** ./node_modules/d3-geo/src/projection/azimuthalEquidistant.js ***!
9175 \********************************************************************/
9176/*! exports provided: azimuthalEquidistantRaw, default */
9177/***/ (function(module, __webpack_exports__, __webpack_require__) {
9178
9179"use strict";
9180__webpack_require__.r(__webpack_exports__);
9181/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalEquidistantRaw", function() { return azimuthalEquidistantRaw; });
9182/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9183/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
9184/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
9185
9186
9187
9188
9189var azimuthalEquidistantRaw = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalRaw"])(function(c) {
9190 return (c = Object(_math__WEBPACK_IMPORTED_MODULE_0__["acos"])(c)) && c / Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(c);
9191});
9192
9193azimuthalEquidistantRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
9194 return z;
9195});
9196
9197/* harmony default export */ __webpack_exports__["default"] = (function() {
9198 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(azimuthalEquidistantRaw)
9199 .scale(79.4188)
9200 .clipAngle(180 - 1e-3);
9201});
9202
9203
9204/***/ }),
9205
9206/***/ "./node_modules/d3-geo/src/projection/conic.js":
9207/*!*****************************************************!*\
9208 !*** ./node_modules/d3-geo/src/projection/conic.js ***!
9209 \*****************************************************/
9210/*! exports provided: conicProjection */
9211/***/ (function(module, __webpack_exports__, __webpack_require__) {
9212
9213"use strict";
9214__webpack_require__.r(__webpack_exports__);
9215/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicProjection", function() { return conicProjection; });
9216/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9217/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
9218
9219
9220
9221function conicProjection(projectAt) {
9222 var phi0 = 0,
9223 phi1 = _math__WEBPACK_IMPORTED_MODULE_0__["pi"] / 3,
9224 m = Object(_index__WEBPACK_IMPORTED_MODULE_1__["projectionMutator"])(projectAt),
9225 p = m(phi0, phi1);
9226
9227 p.parallels = function(_) {
9228 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"]];
9229 };
9230
9231 return p;
9232}
9233
9234
9235/***/ }),
9236
9237/***/ "./node_modules/d3-geo/src/projection/conicConformal.js":
9238/*!**************************************************************!*\
9239 !*** ./node_modules/d3-geo/src/projection/conicConformal.js ***!
9240 \**************************************************************/
9241/*! exports provided: conicConformalRaw, default */
9242/***/ (function(module, __webpack_exports__, __webpack_require__) {
9243
9244"use strict";
9245__webpack_require__.r(__webpack_exports__);
9246/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicConformalRaw", function() { return conicConformalRaw; });
9247/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9248/* harmony import */ var _conic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic */ "./node_modules/d3-geo/src/projection/conic.js");
9249/* harmony import */ var _mercator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mercator */ "./node_modules/d3-geo/src/projection/mercator.js");
9250
9251
9252
9253
9254function tany(y) {
9255 return Object(_math__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + y) / 2);
9256}
9257
9258function conicConformalRaw(y0, y1) {
9259 var cy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
9260 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)),
9261 f = cy0 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["pow"])(tany(y0), n) / n;
9262
9263 if (!n) return _mercator__WEBPACK_IMPORTED_MODULE_2__["mercatorRaw"];
9264
9265 function project(x, y) {
9266 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"]; }
9267 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"]; }
9268 var r = f / Object(_math__WEBPACK_IMPORTED_MODULE_0__["pow"])(tany(y), n);
9269 return [r * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(n * x), f - r * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(n * x)];
9270 }
9271
9272 project.invert = function(x, y) {
9273 var fy = f - y, r = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sign"])(n) * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + fy * fy);
9274 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"]];
9275 };
9276
9277 return project;
9278}
9279
9280/* harmony default export */ __webpack_exports__["default"] = (function() {
9281 return Object(_conic__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicConformalRaw)
9282 .scale(109.5)
9283 .parallels([30, 30]);
9284});
9285
9286
9287/***/ }),
9288
9289/***/ "./node_modules/d3-geo/src/projection/conicEqualArea.js":
9290/*!**************************************************************!*\
9291 !*** ./node_modules/d3-geo/src/projection/conicEqualArea.js ***!
9292 \**************************************************************/
9293/*! exports provided: conicEqualAreaRaw, default */
9294/***/ (function(module, __webpack_exports__, __webpack_require__) {
9295
9296"use strict";
9297__webpack_require__.r(__webpack_exports__);
9298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicEqualAreaRaw", function() { return conicEqualAreaRaw; });
9299/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9300/* harmony import */ var _conic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic */ "./node_modules/d3-geo/src/projection/conic.js");
9301/* harmony import */ var _cylindricalEqualArea__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cylindricalEqualArea */ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js");
9302
9303
9304
9305
9306function conicEqualAreaRaw(y0, y1) {
9307 var sy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0), n = (sy0 + Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y1)) / 2;
9308
9309 // Are the parallels symmetrical around the Equator?
9310 if (Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(n) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) return Object(_cylindricalEqualArea__WEBPACK_IMPORTED_MODULE_2__["cylindricalEqualAreaRaw"])(y0);
9311
9312 var c = 1 + sy0 * (2 * n - sy0), r0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(c) / n;
9313
9314 function project(x, y) {
9315 var r = Object(_math__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(c - 2 * n * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y)) / n;
9316 return [r * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x *= n), r0 - r * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x)];
9317 }
9318
9319 project.invert = function(x, y) {
9320 var r0y = r0 - y;
9321 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))];
9322 };
9323
9324 return project;
9325}
9326
9327/* harmony default export */ __webpack_exports__["default"] = (function() {
9328 return Object(_conic__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicEqualAreaRaw)
9329 .scale(155.424)
9330 .center([0, 33.6442]);
9331});
9332
9333
9334/***/ }),
9335
9336/***/ "./node_modules/d3-geo/src/projection/conicEquidistant.js":
9337/*!****************************************************************!*\
9338 !*** ./node_modules/d3-geo/src/projection/conicEquidistant.js ***!
9339 \****************************************************************/
9340/*! exports provided: conicEquidistantRaw, default */
9341/***/ (function(module, __webpack_exports__, __webpack_require__) {
9342
9343"use strict";
9344__webpack_require__.r(__webpack_exports__);
9345/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicEquidistantRaw", function() { return conicEquidistantRaw; });
9346/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9347/* harmony import */ var _conic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic */ "./node_modules/d3-geo/src/projection/conic.js");
9348/* harmony import */ var _equirectangular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equirectangular */ "./node_modules/d3-geo/src/projection/equirectangular.js");
9349
9350
9351
9352
9353function conicEquidistantRaw(y0, y1) {
9354 var cy0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
9355 n = y0 === y1 ? Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0) : (cy0 - Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y1)) / (y1 - y0),
9356 g = cy0 / n + y0;
9357
9358 if (Object(_math__WEBPACK_IMPORTED_MODULE_0__["abs"])(n) < _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) return _equirectangular__WEBPACK_IMPORTED_MODULE_2__["equirectangularRaw"];
9359
9360 function project(x, y) {
9361 var gy = g - y, nx = n * x;
9362 return [gy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(nx), g - gy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(nx)];
9363 }
9364
9365 project.invert = function(x, y) {
9366 var gy = g - y;
9367 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)];
9368 };
9369
9370 return project;
9371}
9372
9373/* harmony default export */ __webpack_exports__["default"] = (function() {
9374 return Object(_conic__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicEquidistantRaw)
9375 .scale(131.154)
9376 .center([0, 13.9389]);
9377});
9378
9379
9380/***/ }),
9381
9382/***/ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js":
9383/*!********************************************************************!*\
9384 !*** ./node_modules/d3-geo/src/projection/cylindricalEqualArea.js ***!
9385 \********************************************************************/
9386/*! exports provided: cylindricalEqualAreaRaw */
9387/***/ (function(module, __webpack_exports__, __webpack_require__) {
9388
9389"use strict";
9390__webpack_require__.r(__webpack_exports__);
9391/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cylindricalEqualAreaRaw", function() { return cylindricalEqualAreaRaw; });
9392/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9393
9394
9395function cylindricalEqualAreaRaw(phi0) {
9396 var cosPhi0 = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi0);
9397
9398 function forward(lambda, phi) {
9399 return [lambda * cosPhi0, Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi) / cosPhi0];
9400 }
9401
9402 forward.invert = function(x, y) {
9403 return [x / cosPhi0, Object(_math__WEBPACK_IMPORTED_MODULE_0__["asin"])(y * cosPhi0)];
9404 };
9405
9406 return forward;
9407}
9408
9409
9410/***/ }),
9411
9412/***/ "./node_modules/d3-geo/src/projection/equirectangular.js":
9413/*!***************************************************************!*\
9414 !*** ./node_modules/d3-geo/src/projection/equirectangular.js ***!
9415 \***************************************************************/
9416/*! exports provided: equirectangularRaw, default */
9417/***/ (function(module, __webpack_exports__, __webpack_require__) {
9418
9419"use strict";
9420__webpack_require__.r(__webpack_exports__);
9421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "equirectangularRaw", function() { return equirectangularRaw; });
9422/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
9423
9424
9425function equirectangularRaw(lambda, phi) {
9426 return [lambda, phi];
9427}
9428
9429equirectangularRaw.invert = equirectangularRaw;
9430
9431/* harmony default export */ __webpack_exports__["default"] = (function() {
9432 return Object(_index__WEBPACK_IMPORTED_MODULE_0__["default"])(equirectangularRaw)
9433 .scale(152.63);
9434});
9435
9436
9437/***/ }),
9438
9439/***/ "./node_modules/d3-geo/src/projection/fit.js":
9440/*!***************************************************!*\
9441 !*** ./node_modules/d3-geo/src/projection/fit.js ***!
9442 \***************************************************/
9443/*! exports provided: fitExtent, fitSize, fitWidth, fitHeight */
9444/***/ (function(module, __webpack_exports__, __webpack_require__) {
9445
9446"use strict";
9447__webpack_require__.r(__webpack_exports__);
9448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitExtent", function() { return fitExtent; });
9449/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitSize", function() { return fitSize; });
9450/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitWidth", function() { return fitWidth; });
9451/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitHeight", function() { return fitHeight; });
9452/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stream */ "./node_modules/d3-geo/src/stream.js");
9453/* harmony import */ var _path_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../path/bounds */ "./node_modules/d3-geo/src/path/bounds.js");
9454
9455
9456
9457function fit(projection, fitBounds, object) {
9458 var clip = projection.clipExtent && projection.clipExtent();
9459 projection.scale(150).translate([0, 0]);
9460 if (clip != null) projection.clipExtent(null);
9461 Object(_stream__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projection.stream(_path_bounds__WEBPACK_IMPORTED_MODULE_1__["default"]));
9462 fitBounds(_path_bounds__WEBPACK_IMPORTED_MODULE_1__["default"].result());
9463 if (clip != null) projection.clipExtent(clip);
9464 return projection;
9465}
9466
9467function fitExtent(projection, extent, object) {
9468 return fit(projection, function(b) {
9469 var w = extent[1][0] - extent[0][0],
9470 h = extent[1][1] - extent[0][1],
9471 k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
9472 x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
9473 y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
9474 projection.scale(150 * k).translate([x, y]);
9475 }, object);
9476}
9477
9478function fitSize(projection, size, object) {
9479 return fitExtent(projection, [[0, 0], size], object);
9480}
9481
9482function fitWidth(projection, width, object) {
9483 return fit(projection, function(b) {
9484 var w = +width,
9485 k = w / (b[1][0] - b[0][0]),
9486 x = (w - k * (b[1][0] + b[0][0])) / 2,
9487 y = -k * b[0][1];
9488 projection.scale(150 * k).translate([x, y]);
9489 }, object);
9490}
9491
9492function fitHeight(projection, height, object) {
9493 return fit(projection, function(b) {
9494 var h = +height,
9495 k = h / (b[1][1] - b[0][1]),
9496 x = -k * b[0][0],
9497 y = (h - k * (b[1][1] + b[0][1])) / 2;
9498 projection.scale(150 * k).translate([x, y]);
9499 }, object);
9500}
9501
9502
9503/***/ }),
9504
9505/***/ "./node_modules/d3-geo/src/projection/gnomonic.js":
9506/*!********************************************************!*\
9507 !*** ./node_modules/d3-geo/src/projection/gnomonic.js ***!
9508 \********************************************************/
9509/*! exports provided: gnomonicRaw, default */
9510/***/ (function(module, __webpack_exports__, __webpack_require__) {
9511
9512"use strict";
9513__webpack_require__.r(__webpack_exports__);
9514/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "gnomonicRaw", function() { return gnomonicRaw; });
9515/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9516/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
9517/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
9518
9519
9520
9521
9522function gnomonicRaw(x, y) {
9523 var cy = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y), k = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x) * cy;
9524 return [cy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x) / k, Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y) / k];
9525}
9526
9527gnomonicRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(_math__WEBPACK_IMPORTED_MODULE_0__["atan"]);
9528
9529/* harmony default export */ __webpack_exports__["default"] = (function() {
9530 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(gnomonicRaw)
9531 .scale(144.049)
9532 .clipAngle(60);
9533});
9534
9535
9536/***/ }),
9537
9538/***/ "./node_modules/d3-geo/src/projection/identity.js":
9539/*!********************************************************!*\
9540 !*** ./node_modules/d3-geo/src/projection/identity.js ***!
9541 \********************************************************/
9542/*! exports provided: default */
9543/***/ (function(module, __webpack_exports__, __webpack_require__) {
9544
9545"use strict";
9546__webpack_require__.r(__webpack_exports__);
9547/* harmony import */ var _clip_rectangle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clip/rectangle */ "./node_modules/d3-geo/src/clip/rectangle.js");
9548/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../identity */ "./node_modules/d3-geo/src/identity.js");
9549/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transform */ "./node_modules/d3-geo/src/transform.js");
9550/* harmony import */ var _fit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit */ "./node_modules/d3-geo/src/projection/fit.js");
9551
9552
9553
9554
9555
9556function scaleTranslate(kx, ky, tx, ty) {
9557 return kx === 1 && ky === 1 && tx === 0 && ty === 0 ? _identity__WEBPACK_IMPORTED_MODULE_1__["default"] : Object(_transform__WEBPACK_IMPORTED_MODULE_2__["transformer"])({
9558 point: function(x, y) {
9559 this.stream.point(x * kx + tx, y * ky + ty);
9560 }
9561 });
9562}
9563
9564/* harmony default export */ __webpack_exports__["default"] = (function() {
9565 var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, transform = _identity__WEBPACK_IMPORTED_MODULE_1__["default"], // scale, translate and reflect
9566 x0 = null, y0, x1, y1, // clip extent
9567 postclip = _identity__WEBPACK_IMPORTED_MODULE_1__["default"],
9568 cache,
9569 cacheStream,
9570 projection;
9571
9572 function reset() {
9573 cache = cacheStream = null;
9574 return projection;
9575 }
9576
9577 return projection = {
9578 stream: function(stream) {
9579 return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));
9580 },
9581 postclip: function(_) {
9582 return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
9583 },
9584 clipExtent: function(_) {
9585 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]];
9586 },
9587 scale: function(_) {
9588 return arguments.length ? (transform = scaleTranslate((k = +_) * sx, k * sy, tx, ty), reset()) : k;
9589 },
9590 translate: function(_) {
9591 return arguments.length ? (transform = scaleTranslate(k * sx, k * sy, tx = +_[0], ty = +_[1]), reset()) : [tx, ty];
9592 },
9593 reflectX: function(_) {
9594 return arguments.length ? (transform = scaleTranslate(k * (sx = _ ? -1 : 1), k * sy, tx, ty), reset()) : sx < 0;
9595 },
9596 reflectY: function(_) {
9597 return arguments.length ? (transform = scaleTranslate(k * sx, k * (sy = _ ? -1 : 1), tx, ty), reset()) : sy < 0;
9598 },
9599 fitExtent: function(extent, object) {
9600 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitExtent"])(projection, extent, object);
9601 },
9602 fitSize: function(size, object) {
9603 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitSize"])(projection, size, object);
9604 },
9605 fitWidth: function(width, object) {
9606 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitWidth"])(projection, width, object);
9607 },
9608 fitHeight: function(height, object) {
9609 return Object(_fit__WEBPACK_IMPORTED_MODULE_3__["fitHeight"])(projection, height, object);
9610 }
9611 };
9612});
9613
9614
9615/***/ }),
9616
9617/***/ "./node_modules/d3-geo/src/projection/index.js":
9618/*!*****************************************************!*\
9619 !*** ./node_modules/d3-geo/src/projection/index.js ***!
9620 \*****************************************************/
9621/*! exports provided: default, projectionMutator */
9622/***/ (function(module, __webpack_exports__, __webpack_require__) {
9623
9624"use strict";
9625__webpack_require__.r(__webpack_exports__);
9626/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return projection; });
9627/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "projectionMutator", function() { return projectionMutator; });
9628/* harmony import */ var _clip_antimeridian__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clip/antimeridian */ "./node_modules/d3-geo/src/clip/antimeridian.js");
9629/* harmony import */ var _clip_circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../clip/circle */ "./node_modules/d3-geo/src/clip/circle.js");
9630/* harmony import */ var _clip_rectangle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../clip/rectangle */ "./node_modules/d3-geo/src/clip/rectangle.js");
9631/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../compose */ "./node_modules/d3-geo/src/compose.js");
9632/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../identity */ "./node_modules/d3-geo/src/identity.js");
9633/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9634/* harmony import */ var _rotation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../rotation */ "./node_modules/d3-geo/src/rotation.js");
9635/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../transform */ "./node_modules/d3-geo/src/transform.js");
9636/* harmony import */ var _fit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./fit */ "./node_modules/d3-geo/src/projection/fit.js");
9637/* harmony import */ var _resample__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./resample */ "./node_modules/d3-geo/src/projection/resample.js");
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649var transformRadians = Object(_transform__WEBPACK_IMPORTED_MODULE_7__["transformer"])({
9650 point: function(x, y) {
9651 this.stream.point(x * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], y * _math__WEBPACK_IMPORTED_MODULE_5__["radians"]);
9652 }
9653});
9654
9655function transformRotate(rotate) {
9656 return Object(_transform__WEBPACK_IMPORTED_MODULE_7__["transformer"])({
9657 point: function(x, y) {
9658 var r = rotate(x, y);
9659 return this.stream.point(r[0], r[1]);
9660 }
9661 });
9662}
9663
9664function projection(project) {
9665 return projectionMutator(function() { return project; })();
9666}
9667
9668function projectionMutator(projectAt) {
9669 var project,
9670 k = 150, // scale
9671 x = 480, y = 250, // translate
9672 dx, dy, lambda = 0, phi = 0, // center
9673 deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, projectRotate, // rotate
9674 theta = null, preclip = _clip_antimeridian__WEBPACK_IMPORTED_MODULE_0__["default"], // clip angle
9675 x0 = null, y0, x1, y1, postclip = _identity__WEBPACK_IMPORTED_MODULE_4__["default"], // clip extent
9676 delta2 = 0.5, projectResample = Object(_resample__WEBPACK_IMPORTED_MODULE_9__["default"])(projectTransform, delta2), // precision
9677 cache,
9678 cacheStream;
9679
9680 function projection(point) {
9681 point = projectRotate(point[0] * _math__WEBPACK_IMPORTED_MODULE_5__["radians"], point[1] * _math__WEBPACK_IMPORTED_MODULE_5__["radians"]);
9682 return [point[0] * k + dx, dy - point[1] * k];
9683 }
9684
9685 function invert(point) {
9686 point = projectRotate.invert((point[0] - dx) / k, (dy - point[1]) / k);
9687 return point && [point[0] * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"], point[1] * _math__WEBPACK_IMPORTED_MODULE_5__["degrees"]];
9688 }
9689
9690 function projectTransform(x, y) {
9691 return x = project(x, y), [x[0] * k + dx, dy - x[1] * k];
9692 }
9693
9694 projection.stream = function(stream) {
9695 return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
9696 };
9697
9698 projection.preclip = function(_) {
9699 return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;
9700 };
9701
9702 projection.postclip = function(_) {
9703 return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
9704 };
9705
9706 projection.clipAngle = function(_) {
9707 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"];
9708 };
9709
9710 projection.clipExtent = function(_) {
9711 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]];
9712 };
9713
9714 projection.scale = function(_) {
9715 return arguments.length ? (k = +_, recenter()) : k;
9716 };
9717
9718 projection.translate = function(_) {
9719 return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
9720 };
9721
9722 projection.center = function(_) {
9723 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"]];
9724 };
9725
9726 projection.rotate = function(_) {
9727 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"]];
9728 };
9729
9730 projection.precision = function(_) {
9731 return arguments.length ? (projectResample = Object(_resample__WEBPACK_IMPORTED_MODULE_9__["default"])(projectTransform, delta2 = _ * _), reset()) : Object(_math__WEBPACK_IMPORTED_MODULE_5__["sqrt"])(delta2);
9732 };
9733
9734 projection.fitExtent = function(extent, object) {
9735 return Object(_fit__WEBPACK_IMPORTED_MODULE_8__["fitExtent"])(projection, extent, object);
9736 };
9737
9738 projection.fitSize = function(size, object) {
9739 return Object(_fit__WEBPACK_IMPORTED_MODULE_8__["fitSize"])(projection, size, object);
9740 };
9741
9742 projection.fitWidth = function(width, object) {
9743 return Object(_fit__WEBPACK_IMPORTED_MODULE_8__["fitWidth"])(projection, width, object);
9744 };
9745
9746 projection.fitHeight = function(height, object) {
9747 return Object(_fit__WEBPACK_IMPORTED_MODULE_8__["fitHeight"])(projection, height, object);
9748 };
9749
9750 function recenter() {
9751 projectRotate = Object(_compose__WEBPACK_IMPORTED_MODULE_3__["default"])(rotate = Object(_rotation__WEBPACK_IMPORTED_MODULE_6__["rotateRadians"])(deltaLambda, deltaPhi, deltaGamma), project);
9752 var center = project(lambda, phi);
9753 dx = x - center[0] * k;
9754 dy = y + center[1] * k;
9755 return reset();
9756 }
9757
9758 function reset() {
9759 cache = cacheStream = null;
9760 return projection;
9761 }
9762
9763 return function() {
9764 project = projectAt.apply(this, arguments);
9765 projection.invert = project.invert && invert;
9766 return recenter();
9767 };
9768}
9769
9770
9771/***/ }),
9772
9773/***/ "./node_modules/d3-geo/src/projection/mercator.js":
9774/*!********************************************************!*\
9775 !*** ./node_modules/d3-geo/src/projection/mercator.js ***!
9776 \********************************************************/
9777/*! exports provided: mercatorRaw, default, mercatorProjection */
9778/***/ (function(module, __webpack_exports__, __webpack_require__) {
9779
9780"use strict";
9781__webpack_require__.r(__webpack_exports__);
9782/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mercatorRaw", function() { return mercatorRaw; });
9783/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mercatorProjection", function() { return mercatorProjection; });
9784/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9785/* harmony import */ var _rotation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rotation */ "./node_modules/d3-geo/src/rotation.js");
9786/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
9787
9788
9789
9790
9791function mercatorRaw(lambda, phi) {
9792 return [lambda, Object(_math__WEBPACK_IMPORTED_MODULE_0__["log"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + phi) / 2))];
9793}
9794
9795mercatorRaw.invert = function(x, y) {
9796 return [x, 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["exp"])(y)) - _math__WEBPACK_IMPORTED_MODULE_0__["halfPi"]];
9797};
9798
9799/* harmony default export */ __webpack_exports__["default"] = (function() {
9800 return mercatorProjection(mercatorRaw)
9801 .scale(961 / _math__WEBPACK_IMPORTED_MODULE_0__["tau"]);
9802});
9803
9804function mercatorProjection(project) {
9805 var m = Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(project),
9806 center = m.center,
9807 scale = m.scale,
9808 translate = m.translate,
9809 clipExtent = m.clipExtent,
9810 x0 = null, y0, x1, y1; // clip extent
9811
9812 m.scale = function(_) {
9813 return arguments.length ? (scale(_), reclip()) : scale();
9814 };
9815
9816 m.translate = function(_) {
9817 return arguments.length ? (translate(_), reclip()) : translate();
9818 };
9819
9820 m.center = function(_) {
9821 return arguments.length ? (center(_), reclip()) : center();
9822 };
9823
9824 m.clipExtent = function(_) {
9825 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]];
9826 };
9827
9828 function reclip() {
9829 var k = _math__WEBPACK_IMPORTED_MODULE_0__["pi"] * scale(),
9830 t = m(Object(_rotation__WEBPACK_IMPORTED_MODULE_1__["default"])(m.rotate()).invert([0, 0]));
9831 return clipExtent(x0 == null
9832 ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
9833 ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
9834 : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
9835 }
9836
9837 return reclip();
9838}
9839
9840
9841/***/ }),
9842
9843/***/ "./node_modules/d3-geo/src/projection/naturalEarth1.js":
9844/*!*************************************************************!*\
9845 !*** ./node_modules/d3-geo/src/projection/naturalEarth1.js ***!
9846 \*************************************************************/
9847/*! exports provided: naturalEarth1Raw, default */
9848/***/ (function(module, __webpack_exports__, __webpack_require__) {
9849
9850"use strict";
9851__webpack_require__.r(__webpack_exports__);
9852/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "naturalEarth1Raw", function() { return naturalEarth1Raw; });
9853/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
9854/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9855
9856
9857
9858function naturalEarth1Raw(lambda, phi) {
9859 var phi2 = phi * phi, phi4 = phi2 * phi2;
9860 return [
9861 lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
9862 phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
9863 ];
9864}
9865
9866naturalEarth1Raw.invert = function(x, y) {
9867 var phi = y, i = 25, delta;
9868 do {
9869 var phi2 = phi * phi, phi4 = phi2 * phi2;
9870 phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
9871 (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
9872 } while (Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])(delta) > _math__WEBPACK_IMPORTED_MODULE_1__["epsilon"] && --i > 0);
9873 return [
9874 x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
9875 phi
9876 ];
9877};
9878
9879/* harmony default export */ __webpack_exports__["default"] = (function() {
9880 return Object(_index__WEBPACK_IMPORTED_MODULE_0__["default"])(naturalEarth1Raw)
9881 .scale(175.295);
9882});
9883
9884
9885/***/ }),
9886
9887/***/ "./node_modules/d3-geo/src/projection/orthographic.js":
9888/*!************************************************************!*\
9889 !*** ./node_modules/d3-geo/src/projection/orthographic.js ***!
9890 \************************************************************/
9891/*! exports provided: orthographicRaw, default */
9892/***/ (function(module, __webpack_exports__, __webpack_require__) {
9893
9894"use strict";
9895__webpack_require__.r(__webpack_exports__);
9896/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "orthographicRaw", function() { return orthographicRaw; });
9897/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9898/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
9899/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
9900
9901
9902
9903
9904function orthographicRaw(x, y) {
9905 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)];
9906}
9907
9908orthographicRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(_math__WEBPACK_IMPORTED_MODULE_0__["asin"]);
9909
9910/* harmony default export */ __webpack_exports__["default"] = (function() {
9911 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(orthographicRaw)
9912 .scale(249.5)
9913 .clipAngle(90 + _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]);
9914});
9915
9916
9917/***/ }),
9918
9919/***/ "./node_modules/d3-geo/src/projection/resample.js":
9920/*!********************************************************!*\
9921 !*** ./node_modules/d3-geo/src/projection/resample.js ***!
9922 \********************************************************/
9923/*! exports provided: default */
9924/***/ (function(module, __webpack_exports__, __webpack_require__) {
9925
9926"use strict";
9927__webpack_require__.r(__webpack_exports__);
9928/* harmony import */ var _cartesian__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cartesian */ "./node_modules/d3-geo/src/cartesian.js");
9929/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
9930/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transform */ "./node_modules/d3-geo/src/transform.js");
9931
9932
9933
9934
9935var maxDepth = 16, // maximum depth of subdivision
9936 cosMinDistance = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(30 * _math__WEBPACK_IMPORTED_MODULE_1__["radians"]); // cos(minimum angular distance)
9937
9938/* harmony default export */ __webpack_exports__["default"] = (function(project, delta2) {
9939 return +delta2 ? resample(project, delta2) : resampleNone(project);
9940});
9941
9942function resampleNone(project) {
9943 return Object(_transform__WEBPACK_IMPORTED_MODULE_2__["transformer"])({
9944 point: function(x, y) {
9945 x = project(x, y);
9946 this.stream.point(x[0], x[1]);
9947 }
9948 });
9949}
9950
9951function resample(project, delta2) {
9952
9953 function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
9954 var dx = x1 - x0,
9955 dy = y1 - y0,
9956 d2 = dx * dx + dy * dy;
9957 if (d2 > 4 * delta2 && depth--) {
9958 var a = a0 + a1,
9959 b = b0 + b1,
9960 c = c0 + c1,
9961 m = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(a * a + b * b + c * c),
9962 phi2 = Object(_math__WEBPACK_IMPORTED_MODULE_1__["asin"])(c /= m),
9963 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),
9964 p = project(lambda2, phi2),
9965 x2 = p[0],
9966 y2 = p[1],
9967 dx2 = x2 - x0,
9968 dy2 = y2 - y0,
9969 dz = dy * dx2 - dx * dy2;
9970 if (dz * dz / d2 > delta2 // perpendicular projected distance
9971 || Object(_math__WEBPACK_IMPORTED_MODULE_1__["abs"])((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
9972 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
9973 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
9974 stream.point(x2, y2);
9975 resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
9976 }
9977 }
9978 }
9979 return function(stream) {
9980 var lambda00, x00, y00, a00, b00, c00, // first point
9981 lambda0, x0, y0, a0, b0, c0; // previous point
9982
9983 var resampleStream = {
9984 point: point,
9985 lineStart: lineStart,
9986 lineEnd: lineEnd,
9987 polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
9988 polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
9989 };
9990
9991 function point(x, y) {
9992 x = project(x, y);
9993 stream.point(x[0], x[1]);
9994 }
9995
9996 function lineStart() {
9997 x0 = NaN;
9998 resampleStream.point = linePoint;
9999 stream.lineStart();
10000 }
10001
10002 function linePoint(lambda, phi) {
10003 var c = Object(_cartesian__WEBPACK_IMPORTED_MODULE_0__["cartesian"])([lambda, phi]), p = project(lambda, phi);
10004 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);
10005 stream.point(x0, y0);
10006 }
10007
10008 function lineEnd() {
10009 resampleStream.point = point;
10010 stream.lineEnd();
10011 }
10012
10013 function ringStart() {
10014 lineStart();
10015 resampleStream.point = ringPoint;
10016 resampleStream.lineEnd = ringEnd;
10017 }
10018
10019 function ringPoint(lambda, phi) {
10020 linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
10021 resampleStream.point = linePoint;
10022 }
10023
10024 function ringEnd() {
10025 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
10026 resampleStream.lineEnd = lineEnd;
10027 lineEnd();
10028 }
10029
10030 return resampleStream;
10031 };
10032}
10033
10034
10035/***/ }),
10036
10037/***/ "./node_modules/d3-geo/src/projection/stereographic.js":
10038/*!*************************************************************!*\
10039 !*** ./node_modules/d3-geo/src/projection/stereographic.js ***!
10040 \*************************************************************/
10041/*! exports provided: stereographicRaw, default */
10042/***/ (function(module, __webpack_exports__, __webpack_require__) {
10043
10044"use strict";
10045__webpack_require__.r(__webpack_exports__);
10046/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stereographicRaw", function() { return stereographicRaw; });
10047/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10048/* harmony import */ var _azimuthal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10049/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./node_modules/d3-geo/src/projection/index.js");
10050
10051
10052
10053
10054function stereographicRaw(x, y) {
10055 var cy = Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(y), k = 1 + Object(_math__WEBPACK_IMPORTED_MODULE_0__["cos"])(x) * cy;
10056 return [cy * Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(x) / k, Object(_math__WEBPACK_IMPORTED_MODULE_0__["sin"])(y) / k];
10057}
10058
10059stereographicRaw.invert = Object(_azimuthal__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
10060 return 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan"])(z);
10061});
10062
10063/* harmony default export */ __webpack_exports__["default"] = (function() {
10064 return Object(_index__WEBPACK_IMPORTED_MODULE_2__["default"])(stereographicRaw)
10065 .scale(250)
10066 .clipAngle(142);
10067});
10068
10069
10070/***/ }),
10071
10072/***/ "./node_modules/d3-geo/src/projection/transverseMercator.js":
10073/*!******************************************************************!*\
10074 !*** ./node_modules/d3-geo/src/projection/transverseMercator.js ***!
10075 \******************************************************************/
10076/*! exports provided: transverseMercatorRaw, default */
10077/***/ (function(module, __webpack_exports__, __webpack_require__) {
10078
10079"use strict";
10080__webpack_require__.r(__webpack_exports__);
10081/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transverseMercatorRaw", function() { return transverseMercatorRaw; });
10082/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-geo/src/math.js");
10083/* harmony import */ var _mercator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mercator */ "./node_modules/d3-geo/src/projection/mercator.js");
10084
10085
10086
10087function transverseMercatorRaw(lambda, phi) {
10088 return [Object(_math__WEBPACK_IMPORTED_MODULE_0__["log"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + phi) / 2)), -lambda];
10089}
10090
10091transverseMercatorRaw.invert = function(x, y) {
10092 return [-y, 2 * Object(_math__WEBPACK_IMPORTED_MODULE_0__["atan"])(Object(_math__WEBPACK_IMPORTED_MODULE_0__["exp"])(x)) - _math__WEBPACK_IMPORTED_MODULE_0__["halfPi"]];
10093};
10094
10095/* harmony default export */ __webpack_exports__["default"] = (function() {
10096 var m = Object(_mercator__WEBPACK_IMPORTED_MODULE_1__["mercatorProjection"])(transverseMercatorRaw),
10097 center = m.center,
10098 rotate = m.rotate;
10099
10100 m.center = function(_) {
10101 return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
10102 };
10103
10104 m.rotate = function(_) {
10105 return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
10106 };
10107
10108 return rotate([0, 0, 90])
10109 .scale(159.155);
10110});
10111
10112
10113/***/ }),
10114
10115/***/ "./node_modules/d3-geo/src/rotation.js":
10116/*!*********************************************!*\
10117 !*** ./node_modules/d3-geo/src/rotation.js ***!
10118 \*********************************************/
10119/*! exports provided: rotateRadians, default */
10120/***/ (function(module, __webpack_exports__, __webpack_require__) {
10121
10122"use strict";
10123__webpack_require__.r(__webpack_exports__);
10124/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rotateRadians", function() { return rotateRadians; });
10125/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./compose */ "./node_modules/d3-geo/src/compose.js");
10126/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-geo/src/math.js");
10127
10128
10129
10130function rotationIdentity(lambda, phi) {
10131 return [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];
10132}
10133
10134rotationIdentity.invert = rotationIdentity;
10135
10136function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
10137 return (deltaLambda %= _math__WEBPACK_IMPORTED_MODULE_1__["tau"]) ? (deltaPhi || deltaGamma ? Object(_compose__WEBPACK_IMPORTED_MODULE_0__["default"])(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
10138 : rotationLambda(deltaLambda))
10139 : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
10140 : rotationIdentity);
10141}
10142
10143function forwardRotationLambda(deltaLambda) {
10144 return function(lambda, phi) {
10145 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];
10146 };
10147}
10148
10149function rotationLambda(deltaLambda) {
10150 var rotation = forwardRotationLambda(deltaLambda);
10151 rotation.invert = forwardRotationLambda(-deltaLambda);
10152 return rotation;
10153}
10154
10155function rotationPhiGamma(deltaPhi, deltaGamma) {
10156 var cosDeltaPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(deltaPhi),
10157 sinDeltaPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(deltaPhi),
10158 cosDeltaGamma = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(deltaGamma),
10159 sinDeltaGamma = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(deltaGamma);
10160
10161 function rotation(lambda, phi) {
10162 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
10163 x = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(lambda) * cosPhi,
10164 y = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda) * cosPhi,
10165 z = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
10166 k = z * cosDeltaPhi + x * sinDeltaPhi;
10167 return [
10168 Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
10169 Object(_math__WEBPACK_IMPORTED_MODULE_1__["asin"])(k * cosDeltaGamma + y * sinDeltaGamma)
10170 ];
10171 }
10172
10173 rotation.invert = function(lambda, phi) {
10174 var cosPhi = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
10175 x = Object(_math__WEBPACK_IMPORTED_MODULE_1__["cos"])(lambda) * cosPhi,
10176 y = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda) * cosPhi,
10177 z = Object(_math__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
10178 k = z * cosDeltaGamma - y * sinDeltaGamma;
10179 return [
10180 Object(_math__WEBPACK_IMPORTED_MODULE_1__["atan2"])(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
10181 Object(_math__WEBPACK_IMPORTED_MODULE_1__["asin"])(k * cosDeltaPhi - x * sinDeltaPhi)
10182 ];
10183 };
10184
10185 return rotation;
10186}
10187
10188/* harmony default export */ __webpack_exports__["default"] = (function(rotate) {
10189 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);
10190
10191 function forward(coordinates) {
10192 coordinates = rotate(coordinates[0] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"], coordinates[1] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"]);
10193 return coordinates[0] *= _math__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates[1] *= _math__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates;
10194 }
10195
10196 forward.invert = function(coordinates) {
10197 coordinates = rotate.invert(coordinates[0] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"], coordinates[1] * _math__WEBPACK_IMPORTED_MODULE_1__["radians"]);
10198 return coordinates[0] *= _math__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates[1] *= _math__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates;
10199 };
10200
10201 return forward;
10202});
10203
10204
10205/***/ }),
10206
10207/***/ "./node_modules/d3-geo/src/stream.js":
10208/*!*******************************************!*\
10209 !*** ./node_modules/d3-geo/src/stream.js ***!
10210 \*******************************************/
10211/*! exports provided: default */
10212/***/ (function(module, __webpack_exports__, __webpack_require__) {
10213
10214"use strict";
10215__webpack_require__.r(__webpack_exports__);
10216function streamGeometry(geometry, stream) {
10217 if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
10218 streamGeometryType[geometry.type](geometry, stream);
10219 }
10220}
10221
10222var streamObjectType = {
10223 Feature: function(object, stream) {
10224 streamGeometry(object.geometry, stream);
10225 },
10226 FeatureCollection: function(object, stream) {
10227 var features = object.features, i = -1, n = features.length;
10228 while (++i < n) streamGeometry(features[i].geometry, stream);
10229 }
10230};
10231
10232var streamGeometryType = {
10233 Sphere: function(object, stream) {
10234 stream.sphere();
10235 },
10236 Point: function(object, stream) {
10237 object = object.coordinates;
10238 stream.point(object[0], object[1], object[2]);
10239 },
10240 MultiPoint: function(object, stream) {
10241 var coordinates = object.coordinates, i = -1, n = coordinates.length;
10242 while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
10243 },
10244 LineString: function(object, stream) {
10245 streamLine(object.coordinates, stream, 0);
10246 },
10247 MultiLineString: function(object, stream) {
10248 var coordinates = object.coordinates, i = -1, n = coordinates.length;
10249 while (++i < n) streamLine(coordinates[i], stream, 0);
10250 },
10251 Polygon: function(object, stream) {
10252 streamPolygon(object.coordinates, stream);
10253 },
10254 MultiPolygon: function(object, stream) {
10255 var coordinates = object.coordinates, i = -1, n = coordinates.length;
10256 while (++i < n) streamPolygon(coordinates[i], stream);
10257 },
10258 GeometryCollection: function(object, stream) {
10259 var geometries = object.geometries, i = -1, n = geometries.length;
10260 while (++i < n) streamGeometry(geometries[i], stream);
10261 }
10262};
10263
10264function streamLine(coordinates, stream, closed) {
10265 var i = -1, n = coordinates.length - closed, coordinate;
10266 stream.lineStart();
10267 while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
10268 stream.lineEnd();
10269}
10270
10271function streamPolygon(coordinates, stream) {
10272 var i = -1, n = coordinates.length;
10273 stream.polygonStart();
10274 while (++i < n) streamLine(coordinates[i], stream, 1);
10275 stream.polygonEnd();
10276}
10277
10278/* harmony default export */ __webpack_exports__["default"] = (function(object, stream) {
10279 if (object && streamObjectType.hasOwnProperty(object.type)) {
10280 streamObjectType[object.type](object, stream);
10281 } else {
10282 streamGeometry(object, stream);
10283 }
10284});
10285
10286
10287/***/ }),
10288
10289/***/ "./node_modules/d3-geo/src/transform.js":
10290/*!**********************************************!*\
10291 !*** ./node_modules/d3-geo/src/transform.js ***!
10292 \**********************************************/
10293/*! exports provided: default, transformer */
10294/***/ (function(module, __webpack_exports__, __webpack_require__) {
10295
10296"use strict";
10297__webpack_require__.r(__webpack_exports__);
10298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformer", function() { return transformer; });
10299/* harmony default export */ __webpack_exports__["default"] = (function(methods) {
10300 return {
10301 stream: transformer(methods)
10302 };
10303});
10304
10305function transformer(methods) {
10306 return function(stream) {
10307 var s = new TransformStream;
10308 for (var key in methods) s[key] = methods[key];
10309 s.stream = stream;
10310 return s;
10311 };
10312}
10313
10314function TransformStream() {}
10315
10316TransformStream.prototype = {
10317 constructor: TransformStream,
10318 point: function(x, y) { this.stream.point(x, y); },
10319 sphere: function() { this.stream.sphere(); },
10320 lineStart: function() { this.stream.lineStart(); },
10321 lineEnd: function() { this.stream.lineEnd(); },
10322 polygonStart: function() { this.stream.polygonStart(); },
10323 polygonEnd: function() { this.stream.polygonEnd(); }
10324};
10325
10326
10327/***/ }),
10328
10329/***/ "./node_modules/d3-hierarchy/index.js":
10330/*!********************************************!*\
10331 !*** ./node_modules/d3-hierarchy/index.js ***!
10332 \********************************************/
10333/*! exports provided: cluster, hierarchy, pack, packSiblings, packEnclose, partition, stratify, tree, treemap, treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify */
10334/***/ (function(module, __webpack_exports__, __webpack_require__) {
10335
10336"use strict";
10337__webpack_require__.r(__webpack_exports__);
10338/* harmony import */ var _src_cluster__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/cluster */ "./node_modules/d3-hierarchy/src/cluster.js");
10339/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cluster", function() { return _src_cluster__WEBPACK_IMPORTED_MODULE_0__["default"]; });
10340
10341/* harmony import */ var _src_hierarchy_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/hierarchy/index */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
10342/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hierarchy", function() { return _src_hierarchy_index__WEBPACK_IMPORTED_MODULE_1__["default"]; });
10343
10344/* harmony import */ var _src_pack_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/pack/index */ "./node_modules/d3-hierarchy/src/pack/index.js");
10345/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pack", function() { return _src_pack_index__WEBPACK_IMPORTED_MODULE_2__["default"]; });
10346
10347/* harmony import */ var _src_pack_siblings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/pack/siblings */ "./node_modules/d3-hierarchy/src/pack/siblings.js");
10348/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packSiblings", function() { return _src_pack_siblings__WEBPACK_IMPORTED_MODULE_3__["default"]; });
10349
10350/* harmony import */ var _src_pack_enclose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/pack/enclose */ "./node_modules/d3-hierarchy/src/pack/enclose.js");
10351/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return _src_pack_enclose__WEBPACK_IMPORTED_MODULE_4__["default"]; });
10352
10353/* harmony import */ var _src_partition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/partition */ "./node_modules/d3-hierarchy/src/partition.js");
10354/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _src_partition__WEBPACK_IMPORTED_MODULE_5__["default"]; });
10355
10356/* harmony import */ var _src_stratify__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/stratify */ "./node_modules/d3-hierarchy/src/stratify.js");
10357/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stratify", function() { return _src_stratify__WEBPACK_IMPORTED_MODULE_6__["default"]; });
10358
10359/* harmony import */ var _src_tree__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/tree */ "./node_modules/d3-hierarchy/src/tree.js");
10360/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tree", function() { return _src_tree__WEBPACK_IMPORTED_MODULE_7__["default"]; });
10361
10362/* harmony import */ var _src_treemap_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/treemap/index */ "./node_modules/d3-hierarchy/src/treemap/index.js");
10363/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemap", function() { return _src_treemap_index__WEBPACK_IMPORTED_MODULE_8__["default"]; });
10364
10365/* harmony import */ var _src_treemap_binary__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/treemap/binary */ "./node_modules/d3-hierarchy/src/treemap/binary.js");
10366/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapBinary", function() { return _src_treemap_binary__WEBPACK_IMPORTED_MODULE_9__["default"]; });
10367
10368/* harmony import */ var _src_treemap_dice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/treemap/dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
10369/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapDice", function() { return _src_treemap_dice__WEBPACK_IMPORTED_MODULE_10__["default"]; });
10370
10371/* harmony import */ var _src_treemap_slice__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/treemap/slice */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
10372/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSlice", function() { return _src_treemap_slice__WEBPACK_IMPORTED_MODULE_11__["default"]; });
10373
10374/* harmony import */ var _src_treemap_sliceDice__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/treemap/sliceDice */ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js");
10375/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSliceDice", function() { return _src_treemap_sliceDice__WEBPACK_IMPORTED_MODULE_12__["default"]; });
10376
10377/* harmony import */ var _src_treemap_squarify__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/treemap/squarify */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
10378/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSquarify", function() { return _src_treemap_squarify__WEBPACK_IMPORTED_MODULE_13__["default"]; });
10379
10380/* harmony import */ var _src_treemap_resquarify__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/treemap/resquarify */ "./node_modules/d3-hierarchy/src/treemap/resquarify.js");
10381/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapResquarify", function() { return _src_treemap_resquarify__WEBPACK_IMPORTED_MODULE_14__["default"]; });
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400/***/ }),
10401
10402/***/ "./node_modules/d3-hierarchy/src/accessors.js":
10403/*!****************************************************!*\
10404 !*** ./node_modules/d3-hierarchy/src/accessors.js ***!
10405 \****************************************************/
10406/*! exports provided: optional, required */
10407/***/ (function(module, __webpack_exports__, __webpack_require__) {
10408
10409"use strict";
10410__webpack_require__.r(__webpack_exports__);
10411/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "optional", function() { return optional; });
10412/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "required", function() { return required; });
10413function optional(f) {
10414 return f == null ? null : required(f);
10415}
10416
10417function required(f) {
10418 if (typeof f !== "function") throw new Error;
10419 return f;
10420}
10421
10422
10423/***/ }),
10424
10425/***/ "./node_modules/d3-hierarchy/src/array.js":
10426/*!************************************************!*\
10427 !*** ./node_modules/d3-hierarchy/src/array.js ***!
10428 \************************************************/
10429/*! exports provided: slice, shuffle */
10430/***/ (function(module, __webpack_exports__, __webpack_require__) {
10431
10432"use strict";
10433__webpack_require__.r(__webpack_exports__);
10434/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
10435/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return shuffle; });
10436var slice = Array.prototype.slice;
10437
10438function shuffle(array) {
10439 var m = array.length,
10440 t,
10441 i;
10442
10443 while (m) {
10444 i = Math.random() * m-- | 0;
10445 t = array[m];
10446 array[m] = array[i];
10447 array[i] = t;
10448 }
10449
10450 return array;
10451}
10452
10453
10454/***/ }),
10455
10456/***/ "./node_modules/d3-hierarchy/src/cluster.js":
10457/*!**************************************************!*\
10458 !*** ./node_modules/d3-hierarchy/src/cluster.js ***!
10459 \**************************************************/
10460/*! exports provided: default */
10461/***/ (function(module, __webpack_exports__, __webpack_require__) {
10462
10463"use strict";
10464__webpack_require__.r(__webpack_exports__);
10465function defaultSeparation(a, b) {
10466 return a.parent === b.parent ? 1 : 2;
10467}
10468
10469function meanX(children) {
10470 return children.reduce(meanXReduce, 0) / children.length;
10471}
10472
10473function meanXReduce(x, c) {
10474 return x + c.x;
10475}
10476
10477function maxY(children) {
10478 return 1 + children.reduce(maxYReduce, 0);
10479}
10480
10481function maxYReduce(y, c) {
10482 return Math.max(y, c.y);
10483}
10484
10485function leafLeft(node) {
10486 var children;
10487 while (children = node.children) node = children[0];
10488 return node;
10489}
10490
10491function leafRight(node) {
10492 var children;
10493 while (children = node.children) node = children[children.length - 1];
10494 return node;
10495}
10496
10497/* harmony default export */ __webpack_exports__["default"] = (function() {
10498 var separation = defaultSeparation,
10499 dx = 1,
10500 dy = 1,
10501 nodeSize = false;
10502
10503 function cluster(root) {
10504 var previousNode,
10505 x = 0;
10506
10507 // First walk, computing the initial x & y values.
10508 root.eachAfter(function(node) {
10509 var children = node.children;
10510 if (children) {
10511 node.x = meanX(children);
10512 node.y = maxY(children);
10513 } else {
10514 node.x = previousNode ? x += separation(node, previousNode) : 0;
10515 node.y = 0;
10516 previousNode = node;
10517 }
10518 });
10519
10520 var left = leafLeft(root),
10521 right = leafRight(root),
10522 x0 = left.x - separation(left, right) / 2,
10523 x1 = right.x + separation(right, left) / 2;
10524
10525 // Second walk, normalizing x & y to the desired size.
10526 return root.eachAfter(nodeSize ? function(node) {
10527 node.x = (node.x - root.x) * dx;
10528 node.y = (root.y - node.y) * dy;
10529 } : function(node) {
10530 node.x = (node.x - x0) / (x1 - x0) * dx;
10531 node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;
10532 });
10533 }
10534
10535 cluster.separation = function(x) {
10536 return arguments.length ? (separation = x, cluster) : separation;
10537 };
10538
10539 cluster.size = function(x) {
10540 return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);
10541 };
10542
10543 cluster.nodeSize = function(x) {
10544 return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);
10545 };
10546
10547 return cluster;
10548});
10549
10550
10551/***/ }),
10552
10553/***/ "./node_modules/d3-hierarchy/src/constant.js":
10554/*!***************************************************!*\
10555 !*** ./node_modules/d3-hierarchy/src/constant.js ***!
10556 \***************************************************/
10557/*! exports provided: constantZero, default */
10558/***/ (function(module, __webpack_exports__, __webpack_require__) {
10559
10560"use strict";
10561__webpack_require__.r(__webpack_exports__);
10562/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "constantZero", function() { return constantZero; });
10563function constantZero() {
10564 return 0;
10565}
10566
10567/* harmony default export */ __webpack_exports__["default"] = (function(x) {
10568 return function() {
10569 return x;
10570 };
10571});
10572
10573
10574/***/ }),
10575
10576/***/ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js":
10577/*!**************************************************************!*\
10578 !*** ./node_modules/d3-hierarchy/src/hierarchy/ancestors.js ***!
10579 \**************************************************************/
10580/*! exports provided: default */
10581/***/ (function(module, __webpack_exports__, __webpack_require__) {
10582
10583"use strict";
10584__webpack_require__.r(__webpack_exports__);
10585/* harmony default export */ __webpack_exports__["default"] = (function() {
10586 var node = this, nodes = [node];
10587 while (node = node.parent) {
10588 nodes.push(node);
10589 }
10590 return nodes;
10591});
10592
10593
10594/***/ }),
10595
10596/***/ "./node_modules/d3-hierarchy/src/hierarchy/count.js":
10597/*!**********************************************************!*\
10598 !*** ./node_modules/d3-hierarchy/src/hierarchy/count.js ***!
10599 \**********************************************************/
10600/*! exports provided: default */
10601/***/ (function(module, __webpack_exports__, __webpack_require__) {
10602
10603"use strict";
10604__webpack_require__.r(__webpack_exports__);
10605function count(node) {
10606 var sum = 0,
10607 children = node.children,
10608 i = children && children.length;
10609 if (!i) sum = 1;
10610 else while (--i >= 0) sum += children[i].value;
10611 node.value = sum;
10612}
10613
10614/* harmony default export */ __webpack_exports__["default"] = (function() {
10615 return this.eachAfter(count);
10616});
10617
10618
10619/***/ }),
10620
10621/***/ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js":
10622/*!****************************************************************!*\
10623 !*** ./node_modules/d3-hierarchy/src/hierarchy/descendants.js ***!
10624 \****************************************************************/
10625/*! exports provided: default */
10626/***/ (function(module, __webpack_exports__, __webpack_require__) {
10627
10628"use strict";
10629__webpack_require__.r(__webpack_exports__);
10630/* harmony default export */ __webpack_exports__["default"] = (function() {
10631 var nodes = [];
10632 this.each(function(node) {
10633 nodes.push(node);
10634 });
10635 return nodes;
10636});
10637
10638
10639/***/ }),
10640
10641/***/ "./node_modules/d3-hierarchy/src/hierarchy/each.js":
10642/*!*********************************************************!*\
10643 !*** ./node_modules/d3-hierarchy/src/hierarchy/each.js ***!
10644 \*********************************************************/
10645/*! exports provided: default */
10646/***/ (function(module, __webpack_exports__, __webpack_require__) {
10647
10648"use strict";
10649__webpack_require__.r(__webpack_exports__);
10650/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
10651 var node = this, current, next = [node], children, i, n;
10652 do {
10653 current = next.reverse(), next = [];
10654 while (node = current.pop()) {
10655 callback(node), children = node.children;
10656 if (children) for (i = 0, n = children.length; i < n; ++i) {
10657 next.push(children[i]);
10658 }
10659 }
10660 } while (next.length);
10661 return this;
10662});
10663
10664
10665/***/ }),
10666
10667/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js":
10668/*!**************************************************************!*\
10669 !*** ./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js ***!
10670 \**************************************************************/
10671/*! exports provided: default */
10672/***/ (function(module, __webpack_exports__, __webpack_require__) {
10673
10674"use strict";
10675__webpack_require__.r(__webpack_exports__);
10676/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
10677 var node = this, nodes = [node], next = [], children, i, n;
10678 while (node = nodes.pop()) {
10679 next.push(node), children = node.children;
10680 if (children) for (i = 0, n = children.length; i < n; ++i) {
10681 nodes.push(children[i]);
10682 }
10683 }
10684 while (node = next.pop()) {
10685 callback(node);
10686 }
10687 return this;
10688});
10689
10690
10691/***/ }),
10692
10693/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js":
10694/*!***************************************************************!*\
10695 !*** ./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js ***!
10696 \***************************************************************/
10697/*! exports provided: default */
10698/***/ (function(module, __webpack_exports__, __webpack_require__) {
10699
10700"use strict";
10701__webpack_require__.r(__webpack_exports__);
10702/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
10703 var node = this, nodes = [node], children, i;
10704 while (node = nodes.pop()) {
10705 callback(node), children = node.children;
10706 if (children) for (i = children.length - 1; i >= 0; --i) {
10707 nodes.push(children[i]);
10708 }
10709 }
10710 return this;
10711});
10712
10713
10714/***/ }),
10715
10716/***/ "./node_modules/d3-hierarchy/src/hierarchy/index.js":
10717/*!**********************************************************!*\
10718 !*** ./node_modules/d3-hierarchy/src/hierarchy/index.js ***!
10719 \**********************************************************/
10720/*! exports provided: default, computeHeight, Node */
10721/***/ (function(module, __webpack_exports__, __webpack_require__) {
10722
10723"use strict";
10724__webpack_require__.r(__webpack_exports__);
10725/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return hierarchy; });
10726/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeHeight", function() { return computeHeight; });
10727/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Node", function() { return Node; });
10728/* harmony import */ var _count__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./count */ "./node_modules/d3-hierarchy/src/hierarchy/count.js");
10729/* harmony import */ var _each__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each */ "./node_modules/d3-hierarchy/src/hierarchy/each.js");
10730/* harmony import */ var _eachBefore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./eachBefore */ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js");
10731/* harmony import */ var _eachAfter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eachAfter */ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js");
10732/* harmony import */ var _sum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sum */ "./node_modules/d3-hierarchy/src/hierarchy/sum.js");
10733/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sort */ "./node_modules/d3-hierarchy/src/hierarchy/sort.js");
10734/* harmony import */ var _path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./path */ "./node_modules/d3-hierarchy/src/hierarchy/path.js");
10735/* harmony import */ var _ancestors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ancestors */ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js");
10736/* harmony import */ var _descendants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./descendants */ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js");
10737/* harmony import */ var _leaves__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./leaves */ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js");
10738/* harmony import */ var _links__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./links */ "./node_modules/d3-hierarchy/src/hierarchy/links.js");
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751function hierarchy(data, children) {
10752 var root = new Node(data),
10753 valued = +data.value && (root.value = data.value),
10754 node,
10755 nodes = [root],
10756 child,
10757 childs,
10758 i,
10759 n;
10760
10761 if (children == null) children = defaultChildren;
10762
10763 while (node = nodes.pop()) {
10764 if (valued) node.value = +node.data.value;
10765 if ((childs = children(node.data)) && (n = childs.length)) {
10766 node.children = new Array(n);
10767 for (i = n - 1; i >= 0; --i) {
10768 nodes.push(child = node.children[i] = new Node(childs[i]));
10769 child.parent = node;
10770 child.depth = node.depth + 1;
10771 }
10772 }
10773 }
10774
10775 return root.eachBefore(computeHeight);
10776}
10777
10778function node_copy() {
10779 return hierarchy(this).eachBefore(copyData);
10780}
10781
10782function defaultChildren(d) {
10783 return d.children;
10784}
10785
10786function copyData(node) {
10787 node.data = node.data.data;
10788}
10789
10790function computeHeight(node) {
10791 var height = 0;
10792 do node.height = height;
10793 while ((node = node.parent) && (node.height < ++height));
10794}
10795
10796function Node(data) {
10797 this.data = data;
10798 this.depth =
10799 this.height = 0;
10800 this.parent = null;
10801}
10802
10803Node.prototype = hierarchy.prototype = {
10804 constructor: Node,
10805 count: _count__WEBPACK_IMPORTED_MODULE_0__["default"],
10806 each: _each__WEBPACK_IMPORTED_MODULE_1__["default"],
10807 eachAfter: _eachAfter__WEBPACK_IMPORTED_MODULE_3__["default"],
10808 eachBefore: _eachBefore__WEBPACK_IMPORTED_MODULE_2__["default"],
10809 sum: _sum__WEBPACK_IMPORTED_MODULE_4__["default"],
10810 sort: _sort__WEBPACK_IMPORTED_MODULE_5__["default"],
10811 path: _path__WEBPACK_IMPORTED_MODULE_6__["default"],
10812 ancestors: _ancestors__WEBPACK_IMPORTED_MODULE_7__["default"],
10813 descendants: _descendants__WEBPACK_IMPORTED_MODULE_8__["default"],
10814 leaves: _leaves__WEBPACK_IMPORTED_MODULE_9__["default"],
10815 links: _links__WEBPACK_IMPORTED_MODULE_10__["default"],
10816 copy: node_copy
10817};
10818
10819
10820/***/ }),
10821
10822/***/ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js":
10823/*!***********************************************************!*\
10824 !*** ./node_modules/d3-hierarchy/src/hierarchy/leaves.js ***!
10825 \***********************************************************/
10826/*! exports provided: default */
10827/***/ (function(module, __webpack_exports__, __webpack_require__) {
10828
10829"use strict";
10830__webpack_require__.r(__webpack_exports__);
10831/* harmony default export */ __webpack_exports__["default"] = (function() {
10832 var leaves = [];
10833 this.eachBefore(function(node) {
10834 if (!node.children) {
10835 leaves.push(node);
10836 }
10837 });
10838 return leaves;
10839});
10840
10841
10842/***/ }),
10843
10844/***/ "./node_modules/d3-hierarchy/src/hierarchy/links.js":
10845/*!**********************************************************!*\
10846 !*** ./node_modules/d3-hierarchy/src/hierarchy/links.js ***!
10847 \**********************************************************/
10848/*! exports provided: default */
10849/***/ (function(module, __webpack_exports__, __webpack_require__) {
10850
10851"use strict";
10852__webpack_require__.r(__webpack_exports__);
10853/* harmony default export */ __webpack_exports__["default"] = (function() {
10854 var root = this, links = [];
10855 root.each(function(node) {
10856 if (node !== root) { // Don’t include the root’s parent, if any.
10857 links.push({source: node.parent, target: node});
10858 }
10859 });
10860 return links;
10861});
10862
10863
10864/***/ }),
10865
10866/***/ "./node_modules/d3-hierarchy/src/hierarchy/path.js":
10867/*!*********************************************************!*\
10868 !*** ./node_modules/d3-hierarchy/src/hierarchy/path.js ***!
10869 \*********************************************************/
10870/*! exports provided: default */
10871/***/ (function(module, __webpack_exports__, __webpack_require__) {
10872
10873"use strict";
10874__webpack_require__.r(__webpack_exports__);
10875/* harmony default export */ __webpack_exports__["default"] = (function(end) {
10876 var start = this,
10877 ancestor = leastCommonAncestor(start, end),
10878 nodes = [start];
10879 while (start !== ancestor) {
10880 start = start.parent;
10881 nodes.push(start);
10882 }
10883 var k = nodes.length;
10884 while (end !== ancestor) {
10885 nodes.splice(k, 0, end);
10886 end = end.parent;
10887 }
10888 return nodes;
10889});
10890
10891function leastCommonAncestor(a, b) {
10892 if (a === b) return a;
10893 var aNodes = a.ancestors(),
10894 bNodes = b.ancestors(),
10895 c = null;
10896 a = aNodes.pop();
10897 b = bNodes.pop();
10898 while (a === b) {
10899 c = a;
10900 a = aNodes.pop();
10901 b = bNodes.pop();
10902 }
10903 return c;
10904}
10905
10906
10907/***/ }),
10908
10909/***/ "./node_modules/d3-hierarchy/src/hierarchy/sort.js":
10910/*!*********************************************************!*\
10911 !*** ./node_modules/d3-hierarchy/src/hierarchy/sort.js ***!
10912 \*********************************************************/
10913/*! exports provided: default */
10914/***/ (function(module, __webpack_exports__, __webpack_require__) {
10915
10916"use strict";
10917__webpack_require__.r(__webpack_exports__);
10918/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
10919 return this.eachBefore(function(node) {
10920 if (node.children) {
10921 node.children.sort(compare);
10922 }
10923 });
10924});
10925
10926
10927/***/ }),
10928
10929/***/ "./node_modules/d3-hierarchy/src/hierarchy/sum.js":
10930/*!********************************************************!*\
10931 !*** ./node_modules/d3-hierarchy/src/hierarchy/sum.js ***!
10932 \********************************************************/
10933/*! exports provided: default */
10934/***/ (function(module, __webpack_exports__, __webpack_require__) {
10935
10936"use strict";
10937__webpack_require__.r(__webpack_exports__);
10938/* harmony default export */ __webpack_exports__["default"] = (function(value) {
10939 return this.eachAfter(function(node) {
10940 var sum = +value(node.data) || 0,
10941 children = node.children,
10942 i = children && children.length;
10943 while (--i >= 0) sum += children[i].value;
10944 node.value = sum;
10945 });
10946});
10947
10948
10949/***/ }),
10950
10951/***/ "./node_modules/d3-hierarchy/src/pack/enclose.js":
10952/*!*******************************************************!*\
10953 !*** ./node_modules/d3-hierarchy/src/pack/enclose.js ***!
10954 \*******************************************************/
10955/*! exports provided: default */
10956/***/ (function(module, __webpack_exports__, __webpack_require__) {
10957
10958"use strict";
10959__webpack_require__.r(__webpack_exports__);
10960/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array */ "./node_modules/d3-hierarchy/src/array.js");
10961
10962
10963/* harmony default export */ __webpack_exports__["default"] = (function(circles) {
10964 var i = 0, n = (circles = Object(_array__WEBPACK_IMPORTED_MODULE_0__["shuffle"])(_array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(circles))).length, B = [], p, e;
10965
10966 while (i < n) {
10967 p = circles[i];
10968 if (e && enclosesWeak(e, p)) ++i;
10969 else e = encloseBasis(B = extendBasis(B, p)), i = 0;
10970 }
10971
10972 return e;
10973});
10974
10975function extendBasis(B, p) {
10976 var i, j;
10977
10978 if (enclosesWeakAll(p, B)) return [p];
10979
10980 // If we get here then B must have at least one element.
10981 for (i = 0; i < B.length; ++i) {
10982 if (enclosesNot(p, B[i])
10983 && enclosesWeakAll(encloseBasis2(B[i], p), B)) {
10984 return [B[i], p];
10985 }
10986 }
10987
10988 // If we get here then B must have at least two elements.
10989 for (i = 0; i < B.length - 1; ++i) {
10990 for (j = i + 1; j < B.length; ++j) {
10991 if (enclosesNot(encloseBasis2(B[i], B[j]), p)
10992 && enclosesNot(encloseBasis2(B[i], p), B[j])
10993 && enclosesNot(encloseBasis2(B[j], p), B[i])
10994 && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {
10995 return [B[i], B[j], p];
10996 }
10997 }
10998 }
10999
11000 // If we get here then something is very wrong.
11001 throw new Error;
11002}
11003
11004function enclosesNot(a, b) {
11005 var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;
11006 return dr < 0 || dr * dr < dx * dx + dy * dy;
11007}
11008
11009function enclosesWeak(a, b) {
11010 var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;
11011 return dr > 0 && dr * dr > dx * dx + dy * dy;
11012}
11013
11014function enclosesWeakAll(a, B) {
11015 for (var i = 0; i < B.length; ++i) {
11016 if (!enclosesWeak(a, B[i])) {
11017 return false;
11018 }
11019 }
11020 return true;
11021}
11022
11023function encloseBasis(B) {
11024 switch (B.length) {
11025 case 1: return encloseBasis1(B[0]);
11026 case 2: return encloseBasis2(B[0], B[1]);
11027 case 3: return encloseBasis3(B[0], B[1], B[2]);
11028 }
11029}
11030
11031function encloseBasis1(a) {
11032 return {
11033 x: a.x,
11034 y: a.y,
11035 r: a.r
11036 };
11037}
11038
11039function encloseBasis2(a, b) {
11040 var x1 = a.x, y1 = a.y, r1 = a.r,
11041 x2 = b.x, y2 = b.y, r2 = b.r,
11042 x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,
11043 l = Math.sqrt(x21 * x21 + y21 * y21);
11044 return {
11045 x: (x1 + x2 + x21 / l * r21) / 2,
11046 y: (y1 + y2 + y21 / l * r21) / 2,
11047 r: (l + r1 + r2) / 2
11048 };
11049}
11050
11051function encloseBasis3(a, b, c) {
11052 var x1 = a.x, y1 = a.y, r1 = a.r,
11053 x2 = b.x, y2 = b.y, r2 = b.r,
11054 x3 = c.x, y3 = c.y, r3 = c.r,
11055 a2 = x1 - x2,
11056 a3 = x1 - x3,
11057 b2 = y1 - y2,
11058 b3 = y1 - y3,
11059 c2 = r2 - r1,
11060 c3 = r3 - r1,
11061 d1 = x1 * x1 + y1 * y1 - r1 * r1,
11062 d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
11063 d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
11064 ab = a3 * b2 - a2 * b3,
11065 xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
11066 xb = (b3 * c2 - b2 * c3) / ab,
11067 ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
11068 yb = (a2 * c3 - a3 * c2) / ab,
11069 A = xb * xb + yb * yb - 1,
11070 B = 2 * (r1 + xa * xb + ya * yb),
11071 C = xa * xa + ya * ya - r1 * r1,
11072 r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
11073 return {
11074 x: x1 + xa + xb * r,
11075 y: y1 + ya + yb * r,
11076 r: r
11077 };
11078}
11079
11080
11081/***/ }),
11082
11083/***/ "./node_modules/d3-hierarchy/src/pack/index.js":
11084/*!*****************************************************!*\
11085 !*** ./node_modules/d3-hierarchy/src/pack/index.js ***!
11086 \*****************************************************/
11087/*! exports provided: default */
11088/***/ (function(module, __webpack_exports__, __webpack_require__) {
11089
11090"use strict";
11091__webpack_require__.r(__webpack_exports__);
11092/* harmony import */ var _siblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./siblings */ "./node_modules/d3-hierarchy/src/pack/siblings.js");
11093/* harmony import */ var _accessors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../accessors */ "./node_modules/d3-hierarchy/src/accessors.js");
11094/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-hierarchy/src/constant.js");
11095
11096
11097
11098
11099function defaultRadius(d) {
11100 return Math.sqrt(d.value);
11101}
11102
11103/* harmony default export */ __webpack_exports__["default"] = (function() {
11104 var radius = null,
11105 dx = 1,
11106 dy = 1,
11107 padding = _constant__WEBPACK_IMPORTED_MODULE_2__["constantZero"];
11108
11109 function pack(root) {
11110 root.x = dx / 2, root.y = dy / 2;
11111 if (radius) {
11112 root.eachBefore(radiusLeaf(radius))
11113 .eachAfter(packChildren(padding, 0.5))
11114 .eachBefore(translateChild(1));
11115 } else {
11116 root.eachBefore(radiusLeaf(defaultRadius))
11117 .eachAfter(packChildren(_constant__WEBPACK_IMPORTED_MODULE_2__["constantZero"], 1))
11118 .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))
11119 .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
11120 }
11121 return root;
11122 }
11123
11124 pack.radius = function(x) {
11125 return arguments.length ? (radius = Object(_accessors__WEBPACK_IMPORTED_MODULE_1__["optional"])(x), pack) : radius;
11126 };
11127
11128 pack.size = function(x) {
11129 return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
11130 };
11131
11132 pack.padding = function(x) {
11133 return arguments.length ? (padding = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(+x), pack) : padding;
11134 };
11135
11136 return pack;
11137});
11138
11139function radiusLeaf(radius) {
11140 return function(node) {
11141 if (!node.children) {
11142 node.r = Math.max(0, +radius(node) || 0);
11143 }
11144 };
11145}
11146
11147function packChildren(padding, k) {
11148 return function(node) {
11149 if (children = node.children) {
11150 var children,
11151 i,
11152 n = children.length,
11153 r = padding(node) * k || 0,
11154 e;
11155
11156 if (r) for (i = 0; i < n; ++i) children[i].r += r;
11157 e = Object(_siblings__WEBPACK_IMPORTED_MODULE_0__["packEnclose"])(children);
11158 if (r) for (i = 0; i < n; ++i) children[i].r -= r;
11159 node.r = e + r;
11160 }
11161 };
11162}
11163
11164function translateChild(k) {
11165 return function(node) {
11166 var parent = node.parent;
11167 node.r *= k;
11168 if (parent) {
11169 node.x = parent.x + k * node.x;
11170 node.y = parent.y + k * node.y;
11171 }
11172 };
11173}
11174
11175
11176/***/ }),
11177
11178/***/ "./node_modules/d3-hierarchy/src/pack/siblings.js":
11179/*!********************************************************!*\
11180 !*** ./node_modules/d3-hierarchy/src/pack/siblings.js ***!
11181 \********************************************************/
11182/*! exports provided: packEnclose, default */
11183/***/ (function(module, __webpack_exports__, __webpack_require__) {
11184
11185"use strict";
11186__webpack_require__.r(__webpack_exports__);
11187/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return packEnclose; });
11188/* harmony import */ var _enclose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enclose */ "./node_modules/d3-hierarchy/src/pack/enclose.js");
11189
11190
11191function place(a, b, c) {
11192 var ax = a.x,
11193 ay = a.y,
11194 da = b.r + c.r,
11195 db = a.r + c.r,
11196 dx = b.x - ax,
11197 dy = b.y - ay,
11198 dc = dx * dx + dy * dy;
11199 if (dc) {
11200 var x = 0.5 + ((db *= db) - (da *= da)) / (2 * dc),
11201 y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
11202 c.x = ax + x * dx + y * dy;
11203 c.y = ay + x * dy - y * dx;
11204 } else {
11205 c.x = ax + db;
11206 c.y = ay;
11207 }
11208}
11209
11210function intersects(a, b) {
11211 var dx = b.x - a.x,
11212 dy = b.y - a.y,
11213 dr = a.r + b.r;
11214 return dr * dr - 1e-6 > dx * dx + dy * dy;
11215}
11216
11217function score(node) {
11218 var a = node._,
11219 b = node.next._,
11220 ab = a.r + b.r,
11221 dx = (a.x * b.r + b.x * a.r) / ab,
11222 dy = (a.y * b.r + b.y * a.r) / ab;
11223 return dx * dx + dy * dy;
11224}
11225
11226function Node(circle) {
11227 this._ = circle;
11228 this.next = null;
11229 this.previous = null;
11230}
11231
11232function packEnclose(circles) {
11233 if (!(n = circles.length)) return 0;
11234
11235 var a, b, c, n, aa, ca, i, j, k, sj, sk;
11236
11237 // Place the first circle.
11238 a = circles[0], a.x = 0, a.y = 0;
11239 if (!(n > 1)) return a.r;
11240
11241 // Place the second circle.
11242 b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;
11243 if (!(n > 2)) return a.r + b.r;
11244
11245 // Place the third circle.
11246 place(b, a, c = circles[2]);
11247
11248 // Initialize the front-chain using the first three circles a, b and c.
11249 a = new Node(a), b = new Node(b), c = new Node(c);
11250 a.next = c.previous = b;
11251 b.next = a.previous = c;
11252 c.next = b.previous = a;
11253
11254 // Attempt to place each remaining circle…
11255 pack: for (i = 3; i < n; ++i) {
11256 place(a._, b._, c = circles[i]), c = new Node(c);
11257
11258 // Find the closest intersecting circle on the front-chain, if any.
11259 // “Closeness” is determined by linear distance along the front-chain.
11260 // “Ahead” or “behind” is likewise determined by linear distance.
11261 j = b.next, k = a.previous, sj = b._.r, sk = a._.r;
11262 do {
11263 if (sj <= sk) {
11264 if (intersects(j._, c._)) {
11265 b = j, a.next = b, b.previous = a, --i;
11266 continue pack;
11267 }
11268 sj += j._.r, j = j.next;
11269 } else {
11270 if (intersects(k._, c._)) {
11271 a = k, a.next = b, b.previous = a, --i;
11272 continue pack;
11273 }
11274 sk += k._.r, k = k.previous;
11275 }
11276 } while (j !== k.next);
11277
11278 // Success! Insert the new circle c between a and b.
11279 c.previous = a, c.next = b, a.next = b.previous = b = c;
11280
11281 // Compute the new closest circle pair to the centroid.
11282 aa = score(a);
11283 while ((c = c.next) !== b) {
11284 if ((ca = score(c)) < aa) {
11285 a = c, aa = ca;
11286 }
11287 }
11288 b = a.next;
11289 }
11290
11291 // Compute the enclosing circle of the front chain.
11292 a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = Object(_enclose__WEBPACK_IMPORTED_MODULE_0__["default"])(a);
11293
11294 // Translate the circles to put the enclosing circle around the origin.
11295 for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;
11296
11297 return c.r;
11298}
11299
11300/* harmony default export */ __webpack_exports__["default"] = (function(circles) {
11301 packEnclose(circles);
11302 return circles;
11303});
11304
11305
11306/***/ }),
11307
11308/***/ "./node_modules/d3-hierarchy/src/partition.js":
11309/*!****************************************************!*\
11310 !*** ./node_modules/d3-hierarchy/src/partition.js ***!
11311 \****************************************************/
11312/*! exports provided: default */
11313/***/ (function(module, __webpack_exports__, __webpack_require__) {
11314
11315"use strict";
11316__webpack_require__.r(__webpack_exports__);
11317/* harmony import */ var _treemap_round__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./treemap/round */ "./node_modules/d3-hierarchy/src/treemap/round.js");
11318/* harmony import */ var _treemap_dice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./treemap/dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
11319
11320
11321
11322/* harmony default export */ __webpack_exports__["default"] = (function() {
11323 var dx = 1,
11324 dy = 1,
11325 padding = 0,
11326 round = false;
11327
11328 function partition(root) {
11329 var n = root.height + 1;
11330 root.x0 =
11331 root.y0 = padding;
11332 root.x1 = dx;
11333 root.y1 = dy / n;
11334 root.eachBefore(positionNode(dy, n));
11335 if (round) root.eachBefore(_treemap_round__WEBPACK_IMPORTED_MODULE_0__["default"]);
11336 return root;
11337 }
11338
11339 function positionNode(dy, n) {
11340 return function(node) {
11341 if (node.children) {
11342 Object(_treemap_dice__WEBPACK_IMPORTED_MODULE_1__["default"])(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);
11343 }
11344 var x0 = node.x0,
11345 y0 = node.y0,
11346 x1 = node.x1 - padding,
11347 y1 = node.y1 - padding;
11348 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
11349 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
11350 node.x0 = x0;
11351 node.y0 = y0;
11352 node.x1 = x1;
11353 node.y1 = y1;
11354 };
11355 }
11356
11357 partition.round = function(x) {
11358 return arguments.length ? (round = !!x, partition) : round;
11359 };
11360
11361 partition.size = function(x) {
11362 return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];
11363 };
11364
11365 partition.padding = function(x) {
11366 return arguments.length ? (padding = +x, partition) : padding;
11367 };
11368
11369 return partition;
11370});
11371
11372
11373/***/ }),
11374
11375/***/ "./node_modules/d3-hierarchy/src/stratify.js":
11376/*!***************************************************!*\
11377 !*** ./node_modules/d3-hierarchy/src/stratify.js ***!
11378 \***************************************************/
11379/*! exports provided: default */
11380/***/ (function(module, __webpack_exports__, __webpack_require__) {
11381
11382"use strict";
11383__webpack_require__.r(__webpack_exports__);
11384/* harmony import */ var _accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./accessors */ "./node_modules/d3-hierarchy/src/accessors.js");
11385/* harmony import */ var _hierarchy_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hierarchy/index */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
11386
11387
11388
11389var keyPrefix = "$", // Protect against keys like “__proto__”.
11390 preroot = {depth: -1},
11391 ambiguous = {};
11392
11393function defaultId(d) {
11394 return d.id;
11395}
11396
11397function defaultParentId(d) {
11398 return d.parentId;
11399}
11400
11401/* harmony default export */ __webpack_exports__["default"] = (function() {
11402 var id = defaultId,
11403 parentId = defaultParentId;
11404
11405 function stratify(data) {
11406 var d,
11407 i,
11408 n = data.length,
11409 root,
11410 parent,
11411 node,
11412 nodes = new Array(n),
11413 nodeId,
11414 nodeKey,
11415 nodeByKey = {};
11416
11417 for (i = 0; i < n; ++i) {
11418 d = data[i], node = nodes[i] = new _hierarchy_index__WEBPACK_IMPORTED_MODULE_1__["Node"](d);
11419 if ((nodeId = id(d, i, data)) != null && (nodeId += "")) {
11420 nodeKey = keyPrefix + (node.id = nodeId);
11421 nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;
11422 }
11423 }
11424
11425 for (i = 0; i < n; ++i) {
11426 node = nodes[i], nodeId = parentId(data[i], i, data);
11427 if (nodeId == null || !(nodeId += "")) {
11428 if (root) throw new Error("multiple roots");
11429 root = node;
11430 } else {
11431 parent = nodeByKey[keyPrefix + nodeId];
11432 if (!parent) throw new Error("missing: " + nodeId);
11433 if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
11434 if (parent.children) parent.children.push(node);
11435 else parent.children = [node];
11436 node.parent = parent;
11437 }
11438 }
11439
11440 if (!root) throw new Error("no root");
11441 root.parent = preroot;
11442 root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(_hierarchy_index__WEBPACK_IMPORTED_MODULE_1__["computeHeight"]);
11443 root.parent = null;
11444 if (n > 0) throw new Error("cycle");
11445
11446 return root;
11447 }
11448
11449 stratify.id = function(x) {
11450 return arguments.length ? (id = Object(_accessors__WEBPACK_IMPORTED_MODULE_0__["required"])(x), stratify) : id;
11451 };
11452
11453 stratify.parentId = function(x) {
11454 return arguments.length ? (parentId = Object(_accessors__WEBPACK_IMPORTED_MODULE_0__["required"])(x), stratify) : parentId;
11455 };
11456
11457 return stratify;
11458});
11459
11460
11461/***/ }),
11462
11463/***/ "./node_modules/d3-hierarchy/src/tree.js":
11464/*!***********************************************!*\
11465 !*** ./node_modules/d3-hierarchy/src/tree.js ***!
11466 \***********************************************/
11467/*! exports provided: default */
11468/***/ (function(module, __webpack_exports__, __webpack_require__) {
11469
11470"use strict";
11471__webpack_require__.r(__webpack_exports__);
11472/* harmony import */ var _hierarchy_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hierarchy/index */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
11473
11474
11475function defaultSeparation(a, b) {
11476 return a.parent === b.parent ? 1 : 2;
11477}
11478
11479// function radialSeparation(a, b) {
11480// return (a.parent === b.parent ? 1 : 2) / a.depth;
11481// }
11482
11483// This function is used to traverse the left contour of a subtree (or
11484// subforest). It returns the successor of v on this contour. This successor is
11485// either given by the leftmost child of v or by the thread of v. The function
11486// returns null if and only if v is on the highest level of its subtree.
11487function nextLeft(v) {
11488 var children = v.children;
11489 return children ? children[0] : v.t;
11490}
11491
11492// This function works analogously to nextLeft.
11493function nextRight(v) {
11494 var children = v.children;
11495 return children ? children[children.length - 1] : v.t;
11496}
11497
11498// Shifts the current subtree rooted at w+. This is done by increasing
11499// prelim(w+) and mod(w+) by shift.
11500function moveSubtree(wm, wp, shift) {
11501 var change = shift / (wp.i - wm.i);
11502 wp.c -= change;
11503 wp.s += shift;
11504 wm.c += change;
11505 wp.z += shift;
11506 wp.m += shift;
11507}
11508
11509// All other shifts, applied to the smaller subtrees between w- and w+, are
11510// performed by this function. To prepare the shifts, we have to adjust
11511// change(w+), shift(w+), and change(w-).
11512function executeShifts(v) {
11513 var shift = 0,
11514 change = 0,
11515 children = v.children,
11516 i = children.length,
11517 w;
11518 while (--i >= 0) {
11519 w = children[i];
11520 w.z += shift;
11521 w.m += shift;
11522 shift += w.s + (change += w.c);
11523 }
11524}
11525
11526// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,
11527// returns the specified (default) ancestor.
11528function nextAncestor(vim, v, ancestor) {
11529 return vim.a.parent === v.parent ? vim.a : ancestor;
11530}
11531
11532function TreeNode(node, i) {
11533 this._ = node;
11534 this.parent = null;
11535 this.children = null;
11536 this.A = null; // default ancestor
11537 this.a = this; // ancestor
11538 this.z = 0; // prelim
11539 this.m = 0; // mod
11540 this.c = 0; // change
11541 this.s = 0; // shift
11542 this.t = null; // thread
11543 this.i = i; // number
11544}
11545
11546TreeNode.prototype = Object.create(_hierarchy_index__WEBPACK_IMPORTED_MODULE_0__["Node"].prototype);
11547
11548function treeRoot(root) {
11549 var tree = new TreeNode(root, 0),
11550 node,
11551 nodes = [tree],
11552 child,
11553 children,
11554 i,
11555 n;
11556
11557 while (node = nodes.pop()) {
11558 if (children = node._.children) {
11559 node.children = new Array(n = children.length);
11560 for (i = n - 1; i >= 0; --i) {
11561 nodes.push(child = node.children[i] = new TreeNode(children[i], i));
11562 child.parent = node;
11563 }
11564 }
11565 }
11566
11567 (tree.parent = new TreeNode(null, 0)).children = [tree];
11568 return tree;
11569}
11570
11571// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
11572/* harmony default export */ __webpack_exports__["default"] = (function() {
11573 var separation = defaultSeparation,
11574 dx = 1,
11575 dy = 1,
11576 nodeSize = null;
11577
11578 function tree(root) {
11579 var t = treeRoot(root);
11580
11581 // Compute the layout using Buchheim et al.’s algorithm.
11582 t.eachAfter(firstWalk), t.parent.m = -t.z;
11583 t.eachBefore(secondWalk);
11584
11585 // If a fixed node size is specified, scale x and y.
11586 if (nodeSize) root.eachBefore(sizeNode);
11587
11588 // If a fixed tree size is specified, scale x and y based on the extent.
11589 // Compute the left-most, right-most, and depth-most nodes for extents.
11590 else {
11591 var left = root,
11592 right = root,
11593 bottom = root;
11594 root.eachBefore(function(node) {
11595 if (node.x < left.x) left = node;
11596 if (node.x > right.x) right = node;
11597 if (node.depth > bottom.depth) bottom = node;
11598 });
11599 var s = left === right ? 1 : separation(left, right) / 2,
11600 tx = s - left.x,
11601 kx = dx / (right.x + s + tx),
11602 ky = dy / (bottom.depth || 1);
11603 root.eachBefore(function(node) {
11604 node.x = (node.x + tx) * kx;
11605 node.y = node.depth * ky;
11606 });
11607 }
11608
11609 return root;
11610 }
11611
11612 // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is
11613 // applied recursively to the children of v, as well as the function
11614 // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the
11615 // node v is placed to the midpoint of its outermost children.
11616 function firstWalk(v) {
11617 var children = v.children,
11618 siblings = v.parent.children,
11619 w = v.i ? siblings[v.i - 1] : null;
11620 if (children) {
11621 executeShifts(v);
11622 var midpoint = (children[0].z + children[children.length - 1].z) / 2;
11623 if (w) {
11624 v.z = w.z + separation(v._, w._);
11625 v.m = v.z - midpoint;
11626 } else {
11627 v.z = midpoint;
11628 }
11629 } else if (w) {
11630 v.z = w.z + separation(v._, w._);
11631 }
11632 v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
11633 }
11634
11635 // Computes all real x-coordinates by summing up the modifiers recursively.
11636 function secondWalk(v) {
11637 v._.x = v.z + v.parent.m;
11638 v.m += v.parent.m;
11639 }
11640
11641 // The core of the algorithm. Here, a new subtree is combined with the
11642 // previous subtrees. Threads are used to traverse the inside and outside
11643 // contours of the left and right subtree up to the highest common level. The
11644 // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the
11645 // superscript o means outside and i means inside, the subscript - means left
11646 // subtree and + means right subtree. For summing up the modifiers along the
11647 // contour, we use respective variables si+, si-, so-, and so+. Whenever two
11648 // nodes of the inside contours conflict, we compute the left one of the
11649 // greatest uncommon ancestors using the function ANCESTOR and call MOVE
11650 // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.
11651 // Finally, we add a new thread (if necessary).
11652 function apportion(v, w, ancestor) {
11653 if (w) {
11654 var vip = v,
11655 vop = v,
11656 vim = w,
11657 vom = vip.parent.children[0],
11658 sip = vip.m,
11659 sop = vop.m,
11660 sim = vim.m,
11661 som = vom.m,
11662 shift;
11663 while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
11664 vom = nextLeft(vom);
11665 vop = nextRight(vop);
11666 vop.a = v;
11667 shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
11668 if (shift > 0) {
11669 moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
11670 sip += shift;
11671 sop += shift;
11672 }
11673 sim += vim.m;
11674 sip += vip.m;
11675 som += vom.m;
11676 sop += vop.m;
11677 }
11678 if (vim && !nextRight(vop)) {
11679 vop.t = vim;
11680 vop.m += sim - sop;
11681 }
11682 if (vip && !nextLeft(vom)) {
11683 vom.t = vip;
11684 vom.m += sip - som;
11685 ancestor = v;
11686 }
11687 }
11688 return ancestor;
11689 }
11690
11691 function sizeNode(node) {
11692 node.x *= dx;
11693 node.y = node.depth * dy;
11694 }
11695
11696 tree.separation = function(x) {
11697 return arguments.length ? (separation = x, tree) : separation;
11698 };
11699
11700 tree.size = function(x) {
11701 return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);
11702 };
11703
11704 tree.nodeSize = function(x) {
11705 return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);
11706 };
11707
11708 return tree;
11709});
11710
11711
11712/***/ }),
11713
11714/***/ "./node_modules/d3-hierarchy/src/treemap/binary.js":
11715/*!*********************************************************!*\
11716 !*** ./node_modules/d3-hierarchy/src/treemap/binary.js ***!
11717 \*********************************************************/
11718/*! exports provided: default */
11719/***/ (function(module, __webpack_exports__, __webpack_require__) {
11720
11721"use strict";
11722__webpack_require__.r(__webpack_exports__);
11723/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
11724 var nodes = parent.children,
11725 i, n = nodes.length,
11726 sum, sums = new Array(n + 1);
11727
11728 for (sums[0] = sum = i = 0; i < n; ++i) {
11729 sums[i + 1] = sum += nodes[i].value;
11730 }
11731
11732 partition(0, n, parent.value, x0, y0, x1, y1);
11733
11734 function partition(i, j, value, x0, y0, x1, y1) {
11735 if (i >= j - 1) {
11736 var node = nodes[i];
11737 node.x0 = x0, node.y0 = y0;
11738 node.x1 = x1, node.y1 = y1;
11739 return;
11740 }
11741
11742 var valueOffset = sums[i],
11743 valueTarget = (value / 2) + valueOffset,
11744 k = i + 1,
11745 hi = j - 1;
11746
11747 while (k < hi) {
11748 var mid = k + hi >>> 1;
11749 if (sums[mid] < valueTarget) k = mid + 1;
11750 else hi = mid;
11751 }
11752
11753 if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;
11754
11755 var valueLeft = sums[k] - valueOffset,
11756 valueRight = value - valueLeft;
11757
11758 if ((x1 - x0) > (y1 - y0)) {
11759 var xk = (x0 * valueRight + x1 * valueLeft) / value;
11760 partition(i, k, valueLeft, x0, y0, xk, y1);
11761 partition(k, j, valueRight, xk, y0, x1, y1);
11762 } else {
11763 var yk = (y0 * valueRight + y1 * valueLeft) / value;
11764 partition(i, k, valueLeft, x0, y0, x1, yk);
11765 partition(k, j, valueRight, x0, yk, x1, y1);
11766 }
11767 }
11768});
11769
11770
11771/***/ }),
11772
11773/***/ "./node_modules/d3-hierarchy/src/treemap/dice.js":
11774/*!*******************************************************!*\
11775 !*** ./node_modules/d3-hierarchy/src/treemap/dice.js ***!
11776 \*******************************************************/
11777/*! exports provided: default */
11778/***/ (function(module, __webpack_exports__, __webpack_require__) {
11779
11780"use strict";
11781__webpack_require__.r(__webpack_exports__);
11782/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
11783 var nodes = parent.children,
11784 node,
11785 i = -1,
11786 n = nodes.length,
11787 k = parent.value && (x1 - x0) / parent.value;
11788
11789 while (++i < n) {
11790 node = nodes[i], node.y0 = y0, node.y1 = y1;
11791 node.x0 = x0, node.x1 = x0 += node.value * k;
11792 }
11793});
11794
11795
11796/***/ }),
11797
11798/***/ "./node_modules/d3-hierarchy/src/treemap/index.js":
11799/*!********************************************************!*\
11800 !*** ./node_modules/d3-hierarchy/src/treemap/index.js ***!
11801 \********************************************************/
11802/*! exports provided: default */
11803/***/ (function(module, __webpack_exports__, __webpack_require__) {
11804
11805"use strict";
11806__webpack_require__.r(__webpack_exports__);
11807/* harmony import */ var _round__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./round */ "./node_modules/d3-hierarchy/src/treemap/round.js");
11808/* harmony import */ var _squarify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./squarify */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
11809/* harmony import */ var _accessors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../accessors */ "./node_modules/d3-hierarchy/src/accessors.js");
11810/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-hierarchy/src/constant.js");
11811
11812
11813
11814
11815
11816/* harmony default export */ __webpack_exports__["default"] = (function() {
11817 var tile = _squarify__WEBPACK_IMPORTED_MODULE_1__["default"],
11818 round = false,
11819 dx = 1,
11820 dy = 1,
11821 paddingStack = [0],
11822 paddingInner = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
11823 paddingTop = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
11824 paddingRight = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
11825 paddingBottom = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
11826 paddingLeft = _constant__WEBPACK_IMPORTED_MODULE_3__["constantZero"];
11827
11828 function treemap(root) {
11829 root.x0 =
11830 root.y0 = 0;
11831 root.x1 = dx;
11832 root.y1 = dy;
11833 root.eachBefore(positionNode);
11834 paddingStack = [0];
11835 if (round) root.eachBefore(_round__WEBPACK_IMPORTED_MODULE_0__["default"]);
11836 return root;
11837 }
11838
11839 function positionNode(node) {
11840 var p = paddingStack[node.depth],
11841 x0 = node.x0 + p,
11842 y0 = node.y0 + p,
11843 x1 = node.x1 - p,
11844 y1 = node.y1 - p;
11845 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
11846 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
11847 node.x0 = x0;
11848 node.y0 = y0;
11849 node.x1 = x1;
11850 node.y1 = y1;
11851 if (node.children) {
11852 p = paddingStack[node.depth + 1] = paddingInner(node) / 2;
11853 x0 += paddingLeft(node) - p;
11854 y0 += paddingTop(node) - p;
11855 x1 -= paddingRight(node) - p;
11856 y1 -= paddingBottom(node) - p;
11857 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
11858 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
11859 tile(node, x0, y0, x1, y1);
11860 }
11861 }
11862
11863 treemap.round = function(x) {
11864 return arguments.length ? (round = !!x, treemap) : round;
11865 };
11866
11867 treemap.size = function(x) {
11868 return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];
11869 };
11870
11871 treemap.tile = function(x) {
11872 return arguments.length ? (tile = Object(_accessors__WEBPACK_IMPORTED_MODULE_2__["required"])(x), treemap) : tile;
11873 };
11874
11875 treemap.padding = function(x) {
11876 return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();
11877 };
11878
11879 treemap.paddingInner = function(x) {
11880 return arguments.length ? (paddingInner = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingInner;
11881 };
11882
11883 treemap.paddingOuter = function(x) {
11884 return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();
11885 };
11886
11887 treemap.paddingTop = function(x) {
11888 return arguments.length ? (paddingTop = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingTop;
11889 };
11890
11891 treemap.paddingRight = function(x) {
11892 return arguments.length ? (paddingRight = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingRight;
11893 };
11894
11895 treemap.paddingBottom = function(x) {
11896 return arguments.length ? (paddingBottom = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingBottom;
11897 };
11898
11899 treemap.paddingLeft = function(x) {
11900 return arguments.length ? (paddingLeft = typeof x === "function" ? x : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingLeft;
11901 };
11902
11903 return treemap;
11904});
11905
11906
11907/***/ }),
11908
11909/***/ "./node_modules/d3-hierarchy/src/treemap/resquarify.js":
11910/*!*************************************************************!*\
11911 !*** ./node_modules/d3-hierarchy/src/treemap/resquarify.js ***!
11912 \*************************************************************/
11913/*! exports provided: default */
11914/***/ (function(module, __webpack_exports__, __webpack_require__) {
11915
11916"use strict";
11917__webpack_require__.r(__webpack_exports__);
11918/* harmony import */ var _dice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
11919/* harmony import */ var _slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
11920/* harmony import */ var _squarify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./squarify */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
11921
11922
11923
11924
11925/* harmony default export */ __webpack_exports__["default"] = ((function custom(ratio) {
11926
11927 function resquarify(parent, x0, y0, x1, y1) {
11928 if ((rows = parent._squarify) && (rows.ratio === ratio)) {
11929 var rows,
11930 row,
11931 nodes,
11932 i,
11933 j = -1,
11934 n,
11935 m = rows.length,
11936 value = parent.value;
11937
11938 while (++j < m) {
11939 row = rows[j], nodes = row.children;
11940 for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;
11941 if (row.dice) Object(_dice__WEBPACK_IMPORTED_MODULE_0__["default"])(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);
11942 else Object(_slice__WEBPACK_IMPORTED_MODULE_1__["default"])(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);
11943 value -= row.value;
11944 }
11945 } else {
11946 parent._squarify = rows = Object(_squarify__WEBPACK_IMPORTED_MODULE_2__["squarifyRatio"])(ratio, parent, x0, y0, x1, y1);
11947 rows.ratio = ratio;
11948 }
11949 }
11950
11951 resquarify.ratio = function(x) {
11952 return custom((x = +x) > 1 ? x : 1);
11953 };
11954
11955 return resquarify;
11956})(_squarify__WEBPACK_IMPORTED_MODULE_2__["phi"]));
11957
11958
11959/***/ }),
11960
11961/***/ "./node_modules/d3-hierarchy/src/treemap/round.js":
11962/*!********************************************************!*\
11963 !*** ./node_modules/d3-hierarchy/src/treemap/round.js ***!
11964 \********************************************************/
11965/*! exports provided: default */
11966/***/ (function(module, __webpack_exports__, __webpack_require__) {
11967
11968"use strict";
11969__webpack_require__.r(__webpack_exports__);
11970/* harmony default export */ __webpack_exports__["default"] = (function(node) {
11971 node.x0 = Math.round(node.x0);
11972 node.y0 = Math.round(node.y0);
11973 node.x1 = Math.round(node.x1);
11974 node.y1 = Math.round(node.y1);
11975});
11976
11977
11978/***/ }),
11979
11980/***/ "./node_modules/d3-hierarchy/src/treemap/slice.js":
11981/*!********************************************************!*\
11982 !*** ./node_modules/d3-hierarchy/src/treemap/slice.js ***!
11983 \********************************************************/
11984/*! exports provided: default */
11985/***/ (function(module, __webpack_exports__, __webpack_require__) {
11986
11987"use strict";
11988__webpack_require__.r(__webpack_exports__);
11989/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
11990 var nodes = parent.children,
11991 node,
11992 i = -1,
11993 n = nodes.length,
11994 k = parent.value && (y1 - y0) / parent.value;
11995
11996 while (++i < n) {
11997 node = nodes[i], node.x0 = x0, node.x1 = x1;
11998 node.y0 = y0, node.y1 = y0 += node.value * k;
11999 }
12000});
12001
12002
12003/***/ }),
12004
12005/***/ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js":
12006/*!************************************************************!*\
12007 !*** ./node_modules/d3-hierarchy/src/treemap/sliceDice.js ***!
12008 \************************************************************/
12009/*! exports provided: default */
12010/***/ (function(module, __webpack_exports__, __webpack_require__) {
12011
12012"use strict";
12013__webpack_require__.r(__webpack_exports__);
12014/* harmony import */ var _dice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
12015/* harmony import */ var _slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
12016
12017
12018
12019/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
12020 (parent.depth & 1 ? _slice__WEBPACK_IMPORTED_MODULE_1__["default"] : _dice__WEBPACK_IMPORTED_MODULE_0__["default"])(parent, x0, y0, x1, y1);
12021});
12022
12023
12024/***/ }),
12025
12026/***/ "./node_modules/d3-hierarchy/src/treemap/squarify.js":
12027/*!***********************************************************!*\
12028 !*** ./node_modules/d3-hierarchy/src/treemap/squarify.js ***!
12029 \***********************************************************/
12030/*! exports provided: phi, squarifyRatio, default */
12031/***/ (function(module, __webpack_exports__, __webpack_require__) {
12032
12033"use strict";
12034__webpack_require__.r(__webpack_exports__);
12035/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "phi", function() { return phi; });
12036/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "squarifyRatio", function() { return squarifyRatio; });
12037/* harmony import */ var _dice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
12038/* harmony import */ var _slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
12039
12040
12041
12042var phi = (1 + Math.sqrt(5)) / 2;
12043
12044function squarifyRatio(ratio, parent, x0, y0, x1, y1) {
12045 var rows = [],
12046 nodes = parent.children,
12047 row,
12048 nodeValue,
12049 i0 = 0,
12050 i1 = 0,
12051 n = nodes.length,
12052 dx, dy,
12053 value = parent.value,
12054 sumValue,
12055 minValue,
12056 maxValue,
12057 newRatio,
12058 minRatio,
12059 alpha,
12060 beta;
12061
12062 while (i0 < n) {
12063 dx = x1 - x0, dy = y1 - y0;
12064
12065 // Find the next non-empty node.
12066 do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);
12067 minValue = maxValue = sumValue;
12068 alpha = Math.max(dy / dx, dx / dy) / (value * ratio);
12069 beta = sumValue * sumValue * alpha;
12070 minRatio = Math.max(maxValue / beta, beta / minValue);
12071
12072 // Keep adding nodes while the aspect ratio maintains or improves.
12073 for (; i1 < n; ++i1) {
12074 sumValue += nodeValue = nodes[i1].value;
12075 if (nodeValue < minValue) minValue = nodeValue;
12076 if (nodeValue > maxValue) maxValue = nodeValue;
12077 beta = sumValue * sumValue * alpha;
12078 newRatio = Math.max(maxValue / beta, beta / minValue);
12079 if (newRatio > minRatio) { sumValue -= nodeValue; break; }
12080 minRatio = newRatio;
12081 }
12082
12083 // Position and record the row orientation.
12084 rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});
12085 if (row.dice) Object(_dice__WEBPACK_IMPORTED_MODULE_0__["default"])(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);
12086 else Object(_slice__WEBPACK_IMPORTED_MODULE_1__["default"])(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);
12087 value -= sumValue, i0 = i1;
12088 }
12089
12090 return rows;
12091}
12092
12093/* harmony default export */ __webpack_exports__["default"] = ((function custom(ratio) {
12094
12095 function squarify(parent, x0, y0, x1, y1) {
12096 squarifyRatio(ratio, parent, x0, y0, x1, y1);
12097 }
12098
12099 squarify.ratio = function(x) {
12100 return custom((x = +x) > 1 ? x : 1);
12101 };
12102
12103 return squarify;
12104})(phi));
12105
12106
12107/***/ }),
12108
12109/***/ "./node_modules/d3-interpolate/index.js":
12110/*!**********************************************!*\
12111 !*** ./node_modules/d3-interpolate/index.js ***!
12112 \**********************************************/
12113/*! exports provided: interpolate, interpolateArray, interpolateBasis, interpolateBasisClosed, interpolateDate, interpolateNumber, interpolateObject, interpolateRound, interpolateString, interpolateTransformCss, interpolateTransformSvg, interpolateZoom, interpolateRgb, interpolateRgbBasis, interpolateRgbBasisClosed, interpolateHsl, interpolateHslLong, interpolateLab, interpolateHcl, interpolateHclLong, interpolateCubehelix, interpolateCubehelixLong, quantize */
12114/***/ (function(module, __webpack_exports__, __webpack_require__) {
12115
12116"use strict";
12117__webpack_require__.r(__webpack_exports__);
12118/* harmony import */ var _src_value__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/value */ "./node_modules/d3-interpolate/src/value.js");
12119/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolate", function() { return _src_value__WEBPACK_IMPORTED_MODULE_0__["default"]; });
12120
12121/* harmony import */ var _src_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/array */ "./node_modules/d3-interpolate/src/array.js");
12122/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateArray", function() { return _src_array__WEBPACK_IMPORTED_MODULE_1__["default"]; });
12123
12124/* harmony import */ var _src_basis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/basis */ "./node_modules/d3-interpolate/src/basis.js");
12125/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasis", function() { return _src_basis__WEBPACK_IMPORTED_MODULE_2__["default"]; });
12126
12127/* harmony import */ var _src_basisClosed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/basisClosed */ "./node_modules/d3-interpolate/src/basisClosed.js");
12128/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasisClosed", function() { return _src_basisClosed__WEBPACK_IMPORTED_MODULE_3__["default"]; });
12129
12130/* harmony import */ var _src_date__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/date */ "./node_modules/d3-interpolate/src/date.js");
12131/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDate", function() { return _src_date__WEBPACK_IMPORTED_MODULE_4__["default"]; });
12132
12133/* harmony import */ var _src_number__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/number */ "./node_modules/d3-interpolate/src/number.js");
12134/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateNumber", function() { return _src_number__WEBPACK_IMPORTED_MODULE_5__["default"]; });
12135
12136/* harmony import */ var _src_object__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/object */ "./node_modules/d3-interpolate/src/object.js");
12137/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateObject", function() { return _src_object__WEBPACK_IMPORTED_MODULE_6__["default"]; });
12138
12139/* harmony import */ var _src_round__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/round */ "./node_modules/d3-interpolate/src/round.js");
12140/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRound", function() { return _src_round__WEBPACK_IMPORTED_MODULE_7__["default"]; });
12141
12142/* harmony import */ var _src_string__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/string */ "./node_modules/d3-interpolate/src/string.js");
12143/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateString", function() { return _src_string__WEBPACK_IMPORTED_MODULE_8__["default"]; });
12144
12145/* harmony import */ var _src_transform_index__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/transform/index */ "./node_modules/d3-interpolate/src/transform/index.js");
12146/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return _src_transform_index__WEBPACK_IMPORTED_MODULE_9__["interpolateTransformCss"]; });
12147
12148/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return _src_transform_index__WEBPACK_IMPORTED_MODULE_9__["interpolateTransformSvg"]; });
12149
12150/* harmony import */ var _src_zoom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/zoom */ "./node_modules/d3-interpolate/src/zoom.js");
12151/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateZoom", function() { return _src_zoom__WEBPACK_IMPORTED_MODULE_10__["default"]; });
12152
12153/* harmony import */ var _src_rgb__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/rgb */ "./node_modules/d3-interpolate/src/rgb.js");
12154/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgb", function() { return _src_rgb__WEBPACK_IMPORTED_MODULE_11__["default"]; });
12155
12156/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasis", function() { return _src_rgb__WEBPACK_IMPORTED_MODULE_11__["rgbBasis"]; });
12157
12158/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasisClosed", function() { return _src_rgb__WEBPACK_IMPORTED_MODULE_11__["rgbBasisClosed"]; });
12159
12160/* harmony import */ var _src_hsl__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/hsl */ "./node_modules/d3-interpolate/src/hsl.js");
12161/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHsl", function() { return _src_hsl__WEBPACK_IMPORTED_MODULE_12__["default"]; });
12162
12163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHslLong", function() { return _src_hsl__WEBPACK_IMPORTED_MODULE_12__["hslLong"]; });
12164
12165/* harmony import */ var _src_lab__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/lab */ "./node_modules/d3-interpolate/src/lab.js");
12166/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateLab", function() { return _src_lab__WEBPACK_IMPORTED_MODULE_13__["default"]; });
12167
12168/* harmony import */ var _src_hcl__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/hcl */ "./node_modules/d3-interpolate/src/hcl.js");
12169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHcl", function() { return _src_hcl__WEBPACK_IMPORTED_MODULE_14__["default"]; });
12170
12171/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHclLong", function() { return _src_hcl__WEBPACK_IMPORTED_MODULE_14__["hclLong"]; });
12172
12173/* harmony import */ var _src_cubehelix__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/cubehelix */ "./node_modules/d3-interpolate/src/cubehelix.js");
12174/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelix", function() { return _src_cubehelix__WEBPACK_IMPORTED_MODULE_15__["default"]; });
12175
12176/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixLong", function() { return _src_cubehelix__WEBPACK_IMPORTED_MODULE_15__["cubehelixLong"]; });
12177
12178/* harmony import */ var _src_quantize__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./src/quantize */ "./node_modules/d3-interpolate/src/quantize.js");
12179/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantize", function() { return _src_quantize__WEBPACK_IMPORTED_MODULE_16__["default"]; });
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200/***/ }),
12201
12202/***/ "./node_modules/d3-interpolate/src/array.js":
12203/*!**************************************************!*\
12204 !*** ./node_modules/d3-interpolate/src/array.js ***!
12205 \**************************************************/
12206/*! exports provided: default */
12207/***/ (function(module, __webpack_exports__, __webpack_require__) {
12208
12209"use strict";
12210__webpack_require__.r(__webpack_exports__);
12211/* harmony import */ var _value__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value */ "./node_modules/d3-interpolate/src/value.js");
12212
12213
12214/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
12215 var nb = b ? b.length : 0,
12216 na = a ? Math.min(nb, a.length) : 0,
12217 x = new Array(na),
12218 c = new Array(nb),
12219 i;
12220
12221 for (i = 0; i < na; ++i) x[i] = Object(_value__WEBPACK_IMPORTED_MODULE_0__["default"])(a[i], b[i]);
12222 for (; i < nb; ++i) c[i] = b[i];
12223
12224 return function(t) {
12225 for (i = 0; i < na; ++i) c[i] = x[i](t);
12226 return c;
12227 };
12228});
12229
12230
12231/***/ }),
12232
12233/***/ "./node_modules/d3-interpolate/src/basis.js":
12234/*!**************************************************!*\
12235 !*** ./node_modules/d3-interpolate/src/basis.js ***!
12236 \**************************************************/
12237/*! exports provided: basis, default */
12238/***/ (function(module, __webpack_exports__, __webpack_require__) {
12239
12240"use strict";
12241__webpack_require__.r(__webpack_exports__);
12242/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "basis", function() { return basis; });
12243function basis(t1, v0, v1, v2, v3) {
12244 var t2 = t1 * t1, t3 = t2 * t1;
12245 return ((1 - 3 * t1 + 3 * t2 - t3) * v0
12246 + (4 - 6 * t2 + 3 * t3) * v1
12247 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
12248 + t3 * v3) / 6;
12249}
12250
12251/* harmony default export */ __webpack_exports__["default"] = (function(values) {
12252 var n = values.length - 1;
12253 return function(t) {
12254 var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
12255 v1 = values[i],
12256 v2 = values[i + 1],
12257 v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
12258 v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
12259 return basis((t - i / n) * n, v0, v1, v2, v3);
12260 };
12261});
12262
12263
12264/***/ }),
12265
12266/***/ "./node_modules/d3-interpolate/src/basisClosed.js":
12267/*!********************************************************!*\
12268 !*** ./node_modules/d3-interpolate/src/basisClosed.js ***!
12269 \********************************************************/
12270/*! exports provided: default */
12271/***/ (function(module, __webpack_exports__, __webpack_require__) {
12272
12273"use strict";
12274__webpack_require__.r(__webpack_exports__);
12275/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-interpolate/src/basis.js");
12276
12277
12278/* harmony default export */ __webpack_exports__["default"] = (function(values) {
12279 var n = values.length;
12280 return function(t) {
12281 var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
12282 v0 = values[(i + n - 1) % n],
12283 v1 = values[i % n],
12284 v2 = values[(i + 1) % n],
12285 v3 = values[(i + 2) % n];
12286 return Object(_basis__WEBPACK_IMPORTED_MODULE_0__["basis"])((t - i / n) * n, v0, v1, v2, v3);
12287 };
12288});
12289
12290
12291/***/ }),
12292
12293/***/ "./node_modules/d3-interpolate/src/color.js":
12294/*!**************************************************!*\
12295 !*** ./node_modules/d3-interpolate/src/color.js ***!
12296 \**************************************************/
12297/*! exports provided: hue, gamma, default */
12298/***/ (function(module, __webpack_exports__, __webpack_require__) {
12299
12300"use strict";
12301__webpack_require__.r(__webpack_exports__);
12302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hue", function() { return hue; });
12303/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "gamma", function() { return gamma; });
12304/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return nogamma; });
12305/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-interpolate/src/constant.js");
12306
12307
12308function linear(a, d) {
12309 return function(t) {
12310 return a + t * d;
12311 };
12312}
12313
12314function exponential(a, b, y) {
12315 return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
12316 return Math.pow(a + t * b, y);
12317 };
12318}
12319
12320function hue(a, b) {
12321 var d = b - a;
12322 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);
12323}
12324
12325function gamma(y) {
12326 return (y = +y) === 1 ? nogamma : function(a, b) {
12327 return b - a ? exponential(a, b, y) : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
12328 };
12329}
12330
12331function nogamma(a, b) {
12332 var d = b - a;
12333 return d ? linear(a, d) : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
12334}
12335
12336
12337/***/ }),
12338
12339/***/ "./node_modules/d3-interpolate/src/constant.js":
12340/*!*****************************************************!*\
12341 !*** ./node_modules/d3-interpolate/src/constant.js ***!
12342 \*****************************************************/
12343/*! exports provided: default */
12344/***/ (function(module, __webpack_exports__, __webpack_require__) {
12345
12346"use strict";
12347__webpack_require__.r(__webpack_exports__);
12348/* harmony default export */ __webpack_exports__["default"] = (function(x) {
12349 return function() {
12350 return x;
12351 };
12352});
12353
12354
12355/***/ }),
12356
12357/***/ "./node_modules/d3-interpolate/src/cubehelix.js":
12358/*!******************************************************!*\
12359 !*** ./node_modules/d3-interpolate/src/cubehelix.js ***!
12360 \******************************************************/
12361/*! exports provided: default, cubehelixLong */
12362/***/ (function(module, __webpack_exports__, __webpack_require__) {
12363
12364"use strict";
12365__webpack_require__.r(__webpack_exports__);
12366/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubehelixLong", function() { return cubehelixLong; });
12367/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
12368/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
12369
12370
12371
12372function cubehelix(hue) {
12373 return (function cubehelixGamma(y) {
12374 y = +y;
12375
12376 function cubehelix(start, end) {
12377 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),
12378 s = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.s, end.s),
12379 l = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
12380 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
12381 return function(t) {
12382 start.h = h(t);
12383 start.s = s(t);
12384 start.l = l(Math.pow(t, y));
12385 start.opacity = opacity(t);
12386 return start + "";
12387 };
12388 }
12389
12390 cubehelix.gamma = cubehelixGamma;
12391
12392 return cubehelix;
12393 })(1);
12394}
12395
12396/* harmony default export */ __webpack_exports__["default"] = (cubehelix(_color__WEBPACK_IMPORTED_MODULE_1__["hue"]));
12397var cubehelixLong = cubehelix(_color__WEBPACK_IMPORTED_MODULE_1__["default"]);
12398
12399
12400/***/ }),
12401
12402/***/ "./node_modules/d3-interpolate/src/date.js":
12403/*!*************************************************!*\
12404 !*** ./node_modules/d3-interpolate/src/date.js ***!
12405 \*************************************************/
12406/*! exports provided: default */
12407/***/ (function(module, __webpack_exports__, __webpack_require__) {
12408
12409"use strict";
12410__webpack_require__.r(__webpack_exports__);
12411/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
12412 var d = new Date;
12413 return a = +a, b -= a, function(t) {
12414 return d.setTime(a + b * t), d;
12415 };
12416});
12417
12418
12419/***/ }),
12420
12421/***/ "./node_modules/d3-interpolate/src/hcl.js":
12422/*!************************************************!*\
12423 !*** ./node_modules/d3-interpolate/src/hcl.js ***!
12424 \************************************************/
12425/*! exports provided: default, hclLong */
12426/***/ (function(module, __webpack_exports__, __webpack_require__) {
12427
12428"use strict";
12429__webpack_require__.r(__webpack_exports__);
12430/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hclLong", function() { return hclLong; });
12431/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
12432/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
12433
12434
12435
12436function hcl(hue) {
12437 return function(start, end) {
12438 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),
12439 c = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.c, end.c),
12440 l = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
12441 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
12442 return function(t) {
12443 start.h = h(t);
12444 start.c = c(t);
12445 start.l = l(t);
12446 start.opacity = opacity(t);
12447 return start + "";
12448 };
12449 }
12450}
12451
12452/* harmony default export */ __webpack_exports__["default"] = (hcl(_color__WEBPACK_IMPORTED_MODULE_1__["hue"]));
12453var hclLong = hcl(_color__WEBPACK_IMPORTED_MODULE_1__["default"]);
12454
12455
12456/***/ }),
12457
12458/***/ "./node_modules/d3-interpolate/src/hsl.js":
12459/*!************************************************!*\
12460 !*** ./node_modules/d3-interpolate/src/hsl.js ***!
12461 \************************************************/
12462/*! exports provided: default, hslLong */
12463/***/ (function(module, __webpack_exports__, __webpack_require__) {
12464
12465"use strict";
12466__webpack_require__.r(__webpack_exports__);
12467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hslLong", function() { return hslLong; });
12468/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
12469/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
12470
12471
12472
12473function hsl(hue) {
12474 return function(start, end) {
12475 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),
12476 s = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.s, end.s),
12477 l = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
12478 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
12479 return function(t) {
12480 start.h = h(t);
12481 start.s = s(t);
12482 start.l = l(t);
12483 start.opacity = opacity(t);
12484 return start + "";
12485 };
12486 }
12487}
12488
12489/* harmony default export */ __webpack_exports__["default"] = (hsl(_color__WEBPACK_IMPORTED_MODULE_1__["hue"]));
12490var hslLong = hsl(_color__WEBPACK_IMPORTED_MODULE_1__["default"]);
12491
12492
12493/***/ }),
12494
12495/***/ "./node_modules/d3-interpolate/src/lab.js":
12496/*!************************************************!*\
12497 !*** ./node_modules/d3-interpolate/src/lab.js ***!
12498 \************************************************/
12499/*! exports provided: default */
12500/***/ (function(module, __webpack_exports__, __webpack_require__) {
12501
12502"use strict";
12503__webpack_require__.r(__webpack_exports__);
12504/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return lab; });
12505/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
12506/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
12507
12508
12509
12510function lab(start, end) {
12511 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),
12512 a = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.a, end.a),
12513 b = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.b, end.b),
12514 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
12515 return function(t) {
12516 start.l = l(t);
12517 start.a = a(t);
12518 start.b = b(t);
12519 start.opacity = opacity(t);
12520 return start + "";
12521 };
12522}
12523
12524
12525/***/ }),
12526
12527/***/ "./node_modules/d3-interpolate/src/number.js":
12528/*!***************************************************!*\
12529 !*** ./node_modules/d3-interpolate/src/number.js ***!
12530 \***************************************************/
12531/*! exports provided: default */
12532/***/ (function(module, __webpack_exports__, __webpack_require__) {
12533
12534"use strict";
12535__webpack_require__.r(__webpack_exports__);
12536/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
12537 return a = +a, b -= a, function(t) {
12538 return a + b * t;
12539 };
12540});
12541
12542
12543/***/ }),
12544
12545/***/ "./node_modules/d3-interpolate/src/object.js":
12546/*!***************************************************!*\
12547 !*** ./node_modules/d3-interpolate/src/object.js ***!
12548 \***************************************************/
12549/*! exports provided: default */
12550/***/ (function(module, __webpack_exports__, __webpack_require__) {
12551
12552"use strict";
12553__webpack_require__.r(__webpack_exports__);
12554/* harmony import */ var _value__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value */ "./node_modules/d3-interpolate/src/value.js");
12555
12556
12557/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
12558 var i = {},
12559 c = {},
12560 k;
12561
12562 if (a === null || typeof a !== "object") a = {};
12563 if (b === null || typeof b !== "object") b = {};
12564
12565 for (k in b) {
12566 if (k in a) {
12567 i[k] = Object(_value__WEBPACK_IMPORTED_MODULE_0__["default"])(a[k], b[k]);
12568 } else {
12569 c[k] = b[k];
12570 }
12571 }
12572
12573 return function(t) {
12574 for (k in i) c[k] = i[k](t);
12575 return c;
12576 };
12577});
12578
12579
12580/***/ }),
12581
12582/***/ "./node_modules/d3-interpolate/src/quantize.js":
12583/*!*****************************************************!*\
12584 !*** ./node_modules/d3-interpolate/src/quantize.js ***!
12585 \*****************************************************/
12586/*! exports provided: default */
12587/***/ (function(module, __webpack_exports__, __webpack_require__) {
12588
12589"use strict";
12590__webpack_require__.r(__webpack_exports__);
12591/* harmony default export */ __webpack_exports__["default"] = (function(interpolator, n) {
12592 var samples = new Array(n);
12593 for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
12594 return samples;
12595});
12596
12597
12598/***/ }),
12599
12600/***/ "./node_modules/d3-interpolate/src/rgb.js":
12601/*!************************************************!*\
12602 !*** ./node_modules/d3-interpolate/src/rgb.js ***!
12603 \************************************************/
12604/*! exports provided: default, rgbBasis, rgbBasisClosed */
12605/***/ (function(module, __webpack_exports__, __webpack_require__) {
12606
12607"use strict";
12608__webpack_require__.r(__webpack_exports__);
12609/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbBasis", function() { return rgbBasis; });
12610/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbBasisClosed", function() { return rgbBasisClosed; });
12611/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
12612/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-interpolate/src/basis.js");
12613/* harmony import */ var _basisClosed__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basisClosed */ "./node_modules/d3-interpolate/src/basisClosed.js");
12614/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./color */ "./node_modules/d3-interpolate/src/color.js");
12615
12616
12617
12618
12619
12620/* harmony default export */ __webpack_exports__["default"] = ((function rgbGamma(y) {
12621 var color = Object(_color__WEBPACK_IMPORTED_MODULE_3__["gamma"])(y);
12622
12623 function rgb(start, end) {
12624 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),
12625 g = color(start.g, end.g),
12626 b = color(start.b, end.b),
12627 opacity = Object(_color__WEBPACK_IMPORTED_MODULE_3__["default"])(start.opacity, end.opacity);
12628 return function(t) {
12629 start.r = r(t);
12630 start.g = g(t);
12631 start.b = b(t);
12632 start.opacity = opacity(t);
12633 return start + "";
12634 };
12635 }
12636
12637 rgb.gamma = rgbGamma;
12638
12639 return rgb;
12640})(1));
12641
12642function rgbSpline(spline) {
12643 return function(colors) {
12644 var n = colors.length,
12645 r = new Array(n),
12646 g = new Array(n),
12647 b = new Array(n),
12648 i, color;
12649 for (i = 0; i < n; ++i) {
12650 color = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["rgb"])(colors[i]);
12651 r[i] = color.r || 0;
12652 g[i] = color.g || 0;
12653 b[i] = color.b || 0;
12654 }
12655 r = spline(r);
12656 g = spline(g);
12657 b = spline(b);
12658 color.opacity = 1;
12659 return function(t) {
12660 color.r = r(t);
12661 color.g = g(t);
12662 color.b = b(t);
12663 return color + "";
12664 };
12665 };
12666}
12667
12668var rgbBasis = rgbSpline(_basis__WEBPACK_IMPORTED_MODULE_1__["default"]);
12669var rgbBasisClosed = rgbSpline(_basisClosed__WEBPACK_IMPORTED_MODULE_2__["default"]);
12670
12671
12672/***/ }),
12673
12674/***/ "./node_modules/d3-interpolate/src/round.js":
12675/*!**************************************************!*\
12676 !*** ./node_modules/d3-interpolate/src/round.js ***!
12677 \**************************************************/
12678/*! exports provided: default */
12679/***/ (function(module, __webpack_exports__, __webpack_require__) {
12680
12681"use strict";
12682__webpack_require__.r(__webpack_exports__);
12683/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
12684 return a = +a, b -= a, function(t) {
12685 return Math.round(a + b * t);
12686 };
12687});
12688
12689
12690/***/ }),
12691
12692/***/ "./node_modules/d3-interpolate/src/string.js":
12693/*!***************************************************!*\
12694 !*** ./node_modules/d3-interpolate/src/string.js ***!
12695 \***************************************************/
12696/*! exports provided: default */
12697/***/ (function(module, __webpack_exports__, __webpack_require__) {
12698
12699"use strict";
12700__webpack_require__.r(__webpack_exports__);
12701/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-interpolate/src/number.js");
12702
12703
12704var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
12705 reB = new RegExp(reA.source, "g");
12706
12707function zero(b) {
12708 return function() {
12709 return b;
12710 };
12711}
12712
12713function one(b) {
12714 return function(t) {
12715 return b(t) + "";
12716 };
12717}
12718
12719/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
12720 var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
12721 am, // current match in a
12722 bm, // current match in b
12723 bs, // string preceding current number in b, if any
12724 i = -1, // index in s
12725 s = [], // string constants and placeholders
12726 q = []; // number interpolators
12727
12728 // Coerce inputs to strings.
12729 a = a + "", b = b + "";
12730
12731 // Interpolate pairs of numbers in a & b.
12732 while ((am = reA.exec(a))
12733 && (bm = reB.exec(b))) {
12734 if ((bs = bm.index) > bi) { // a string precedes the next number in b
12735 bs = b.slice(bi, bs);
12736 if (s[i]) s[i] += bs; // coalesce with previous string
12737 else s[++i] = bs;
12738 }
12739 if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
12740 if (s[i]) s[i] += bm; // coalesce with previous string
12741 else s[++i] = bm;
12742 } else { // interpolate non-matching numbers
12743 s[++i] = null;
12744 q.push({i: i, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(am, bm)});
12745 }
12746 bi = reB.lastIndex;
12747 }
12748
12749 // Add remains of b.
12750 if (bi < b.length) {
12751 bs = b.slice(bi);
12752 if (s[i]) s[i] += bs; // coalesce with previous string
12753 else s[++i] = bs;
12754 }
12755
12756 // Special optimization for only a single match.
12757 // Otherwise, interpolate each of the numbers and rejoin the string.
12758 return s.length < 2 ? (q[0]
12759 ? one(q[0].x)
12760 : zero(b))
12761 : (b = q.length, function(t) {
12762 for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
12763 return s.join("");
12764 });
12765});
12766
12767
12768/***/ }),
12769
12770/***/ "./node_modules/d3-interpolate/src/transform/decompose.js":
12771/*!****************************************************************!*\
12772 !*** ./node_modules/d3-interpolate/src/transform/decompose.js ***!
12773 \****************************************************************/
12774/*! exports provided: identity, default */
12775/***/ (function(module, __webpack_exports__, __webpack_require__) {
12776
12777"use strict";
12778__webpack_require__.r(__webpack_exports__);
12779/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
12780var degrees = 180 / Math.PI;
12781
12782var identity = {
12783 translateX: 0,
12784 translateY: 0,
12785 rotate: 0,
12786 skewX: 0,
12787 scaleX: 1,
12788 scaleY: 1
12789};
12790
12791/* harmony default export */ __webpack_exports__["default"] = (function(a, b, c, d, e, f) {
12792 var scaleX, scaleY, skewX;
12793 if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
12794 if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
12795 if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
12796 if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
12797 return {
12798 translateX: e,
12799 translateY: f,
12800 rotate: Math.atan2(b, a) * degrees,
12801 skewX: Math.atan(skewX) * degrees,
12802 scaleX: scaleX,
12803 scaleY: scaleY
12804 };
12805});
12806
12807
12808/***/ }),
12809
12810/***/ "./node_modules/d3-interpolate/src/transform/index.js":
12811/*!************************************************************!*\
12812 !*** ./node_modules/d3-interpolate/src/transform/index.js ***!
12813 \************************************************************/
12814/*! exports provided: interpolateTransformCss, interpolateTransformSvg */
12815/***/ (function(module, __webpack_exports__, __webpack_require__) {
12816
12817"use strict";
12818__webpack_require__.r(__webpack_exports__);
12819/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return interpolateTransformCss; });
12820/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return interpolateTransformSvg; });
12821/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../number */ "./node_modules/d3-interpolate/src/number.js");
12822/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse */ "./node_modules/d3-interpolate/src/transform/parse.js");
12823
12824
12825
12826function interpolateTransform(parse, pxComma, pxParen, degParen) {
12827
12828 function pop(s) {
12829 return s.length ? s.pop() + " " : "";
12830 }
12831
12832 function translate(xa, ya, xb, yb, s, q) {
12833 if (xa !== xb || ya !== yb) {
12834 var i = s.push("translate(", null, pxComma, null, pxParen);
12835 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)});
12836 } else if (xb || yb) {
12837 s.push("translate(" + xb + pxComma + yb + pxParen);
12838 }
12839 }
12840
12841 function rotate(a, b, s, q) {
12842 if (a !== b) {
12843 if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
12844 q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)});
12845 } else if (b) {
12846 s.push(pop(s) + "rotate(" + b + degParen);
12847 }
12848 }
12849
12850 function skewX(a, b, s, q) {
12851 if (a !== b) {
12852 q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)});
12853 } else if (b) {
12854 s.push(pop(s) + "skewX(" + b + degParen);
12855 }
12856 }
12857
12858 function scale(xa, ya, xb, yb, s, q) {
12859 if (xa !== xb || ya !== yb) {
12860 var i = s.push(pop(s) + "scale(", null, ",", null, ")");
12861 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)});
12862 } else if (xb !== 1 || yb !== 1) {
12863 s.push(pop(s) + "scale(" + xb + "," + yb + ")");
12864 }
12865 }
12866
12867 return function(a, b) {
12868 var s = [], // string constants and placeholders
12869 q = []; // number interpolators
12870 a = parse(a), b = parse(b);
12871 translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
12872 rotate(a.rotate, b.rotate, s, q);
12873 skewX(a.skewX, b.skewX, s, q);
12874 scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
12875 a = b = null; // gc
12876 return function(t) {
12877 var i = -1, n = q.length, o;
12878 while (++i < n) s[(o = q[i]).i] = o.x(t);
12879 return s.join("");
12880 };
12881 };
12882}
12883
12884var interpolateTransformCss = interpolateTransform(_parse__WEBPACK_IMPORTED_MODULE_1__["parseCss"], "px, ", "px)", "deg)");
12885var interpolateTransformSvg = interpolateTransform(_parse__WEBPACK_IMPORTED_MODULE_1__["parseSvg"], ", ", ")", ")");
12886
12887
12888/***/ }),
12889
12890/***/ "./node_modules/d3-interpolate/src/transform/parse.js":
12891/*!************************************************************!*\
12892 !*** ./node_modules/d3-interpolate/src/transform/parse.js ***!
12893 \************************************************************/
12894/*! exports provided: parseCss, parseSvg */
12895/***/ (function(module, __webpack_exports__, __webpack_require__) {
12896
12897"use strict";
12898__webpack_require__.r(__webpack_exports__);
12899/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseCss", function() { return parseCss; });
12900/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseSvg", function() { return parseSvg; });
12901/* harmony import */ var _decompose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./decompose */ "./node_modules/d3-interpolate/src/transform/decompose.js");
12902
12903
12904var cssNode,
12905 cssRoot,
12906 cssView,
12907 svgNode;
12908
12909function parseCss(value) {
12910 if (value === "none") return _decompose__WEBPACK_IMPORTED_MODULE_0__["identity"];
12911 if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView;
12912 cssNode.style.transform = value;
12913 value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform");
12914 cssRoot.removeChild(cssNode);
12915 value = value.slice(7, -1).split(",");
12916 return Object(_decompose__WEBPACK_IMPORTED_MODULE_0__["default"])(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);
12917}
12918
12919function parseSvg(value) {
12920 if (value == null) return _decompose__WEBPACK_IMPORTED_MODULE_0__["identity"];
12921 if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
12922 svgNode.setAttribute("transform", value);
12923 if (!(value = svgNode.transform.baseVal.consolidate())) return _decompose__WEBPACK_IMPORTED_MODULE_0__["identity"];
12924 value = value.matrix;
12925 return Object(_decompose__WEBPACK_IMPORTED_MODULE_0__["default"])(value.a, value.b, value.c, value.d, value.e, value.f);
12926}
12927
12928
12929/***/ }),
12930
12931/***/ "./node_modules/d3-interpolate/src/value.js":
12932/*!**************************************************!*\
12933 !*** ./node_modules/d3-interpolate/src/value.js ***!
12934 \**************************************************/
12935/*! exports provided: default */
12936/***/ (function(module, __webpack_exports__, __webpack_require__) {
12937
12938"use strict";
12939__webpack_require__.r(__webpack_exports__);
12940/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
12941/* harmony import */ var _rgb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgb */ "./node_modules/d3-interpolate/src/rgb.js");
12942/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array */ "./node_modules/d3-interpolate/src/array.js");
12943/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./date */ "./node_modules/d3-interpolate/src/date.js");
12944/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number */ "./node_modules/d3-interpolate/src/number.js");
12945/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./object */ "./node_modules/d3-interpolate/src/object.js");
12946/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./string */ "./node_modules/d3-interpolate/src/string.js");
12947/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-interpolate/src/constant.js");
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
12958 var t = typeof b, c;
12959 return b == null || t === "boolean" ? Object(_constant__WEBPACK_IMPORTED_MODULE_7__["default"])(b)
12960 : (t === "number" ? _number__WEBPACK_IMPORTED_MODULE_4__["default"]
12961 : 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"])
12962 : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_0__["color"] ? _rgb__WEBPACK_IMPORTED_MODULE_1__["default"]
12963 : b instanceof Date ? _date__WEBPACK_IMPORTED_MODULE_3__["default"]
12964 : Array.isArray(b) ? _array__WEBPACK_IMPORTED_MODULE_2__["default"]
12965 : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? _object__WEBPACK_IMPORTED_MODULE_5__["default"]
12966 : _number__WEBPACK_IMPORTED_MODULE_4__["default"])(a, b);
12967});
12968
12969
12970/***/ }),
12971
12972/***/ "./node_modules/d3-interpolate/src/zoom.js":
12973/*!*************************************************!*\
12974 !*** ./node_modules/d3-interpolate/src/zoom.js ***!
12975 \*************************************************/
12976/*! exports provided: default */
12977/***/ (function(module, __webpack_exports__, __webpack_require__) {
12978
12979"use strict";
12980__webpack_require__.r(__webpack_exports__);
12981var rho = Math.SQRT2,
12982 rho2 = 2,
12983 rho4 = 4,
12984 epsilon2 = 1e-12;
12985
12986function cosh(x) {
12987 return ((x = Math.exp(x)) + 1 / x) / 2;
12988}
12989
12990function sinh(x) {
12991 return ((x = Math.exp(x)) - 1 / x) / 2;
12992}
12993
12994function tanh(x) {
12995 return ((x = Math.exp(2 * x)) - 1) / (x + 1);
12996}
12997
12998// p0 = [ux0, uy0, w0]
12999// p1 = [ux1, uy1, w1]
13000/* harmony default export */ __webpack_exports__["default"] = (function(p0, p1) {
13001 var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
13002 ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
13003 dx = ux1 - ux0,
13004 dy = uy1 - uy0,
13005 d2 = dx * dx + dy * dy,
13006 i,
13007 S;
13008
13009 // Special case for u0 ≅ u1.
13010 if (d2 < epsilon2) {
13011 S = Math.log(w1 / w0) / rho;
13012 i = function(t) {
13013 return [
13014 ux0 + t * dx,
13015 uy0 + t * dy,
13016 w0 * Math.exp(rho * t * S)
13017 ];
13018 }
13019 }
13020
13021 // General case.
13022 else {
13023 var d1 = Math.sqrt(d2),
13024 b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
13025 b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
13026 r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
13027 r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
13028 S = (r1 - r0) / rho;
13029 i = function(t) {
13030 var s = t * S,
13031 coshr0 = cosh(r0),
13032 u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
13033 return [
13034 ux0 + u * dx,
13035 uy0 + u * dy,
13036 w0 * coshr0 / cosh(rho * s + r0)
13037 ];
13038 }
13039 }
13040
13041 i.duration = S * 1000;
13042
13043 return i;
13044});
13045
13046
13047/***/ }),
13048
13049/***/ "./node_modules/d3-path/index.js":
13050/*!***************************************!*\
13051 !*** ./node_modules/d3-path/index.js ***!
13052 \***************************************/
13053/*! exports provided: path */
13054/***/ (function(module, __webpack_exports__, __webpack_require__) {
13055
13056"use strict";
13057__webpack_require__.r(__webpack_exports__);
13058/* harmony import */ var _src_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/path */ "./node_modules/d3-path/src/path.js");
13059/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "path", function() { return _src_path__WEBPACK_IMPORTED_MODULE_0__["default"]; });
13060
13061
13062
13063
13064/***/ }),
13065
13066/***/ "./node_modules/d3-path/src/path.js":
13067/*!******************************************!*\
13068 !*** ./node_modules/d3-path/src/path.js ***!
13069 \******************************************/
13070/*! exports provided: default */
13071/***/ (function(module, __webpack_exports__, __webpack_require__) {
13072
13073"use strict";
13074__webpack_require__.r(__webpack_exports__);
13075var pi = Math.PI,
13076 tau = 2 * pi,
13077 epsilon = 1e-6,
13078 tauEpsilon = tau - epsilon;
13079
13080function Path() {
13081 this._x0 = this._y0 = // start of current subpath
13082 this._x1 = this._y1 = null; // end of current subpath
13083 this._ = "";
13084}
13085
13086function path() {
13087 return new Path;
13088}
13089
13090Path.prototype = path.prototype = {
13091 constructor: Path,
13092 moveTo: function(x, y) {
13093 this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
13094 },
13095 closePath: function() {
13096 if (this._x1 !== null) {
13097 this._x1 = this._x0, this._y1 = this._y0;
13098 this._ += "Z";
13099 }
13100 },
13101 lineTo: function(x, y) {
13102 this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
13103 },
13104 quadraticCurveTo: function(x1, y1, x, y) {
13105 this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
13106 },
13107 bezierCurveTo: function(x1, y1, x2, y2, x, y) {
13108 this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
13109 },
13110 arcTo: function(x1, y1, x2, y2, r) {
13111 x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
13112 var x0 = this._x1,
13113 y0 = this._y1,
13114 x21 = x2 - x1,
13115 y21 = y2 - y1,
13116 x01 = x0 - x1,
13117 y01 = y0 - y1,
13118 l01_2 = x01 * x01 + y01 * y01;
13119
13120 // Is the radius negative? Error.
13121 if (r < 0) throw new Error("negative radius: " + r);
13122
13123 // Is this path empty? Move to (x1,y1).
13124 if (this._x1 === null) {
13125 this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
13126 }
13127
13128 // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
13129 else if (!(l01_2 > epsilon)) {}
13130
13131 // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
13132 // Equivalently, is (x1,y1) coincident with (x2,y2)?
13133 // Or, is the radius zero? Line to (x1,y1).
13134 else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
13135 this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
13136 }
13137
13138 // Otherwise, draw an arc!
13139 else {
13140 var x20 = x2 - x0,
13141 y20 = y2 - y0,
13142 l21_2 = x21 * x21 + y21 * y21,
13143 l20_2 = x20 * x20 + y20 * y20,
13144 l21 = Math.sqrt(l21_2),
13145 l01 = Math.sqrt(l01_2),
13146 l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
13147 t01 = l / l01,
13148 t21 = l / l21;
13149
13150 // If the start tangent is not coincident with (x0,y0), line to.
13151 if (Math.abs(t01 - 1) > epsilon) {
13152 this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
13153 }
13154
13155 this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
13156 }
13157 },
13158 arc: function(x, y, r, a0, a1, ccw) {
13159 x = +x, y = +y, r = +r;
13160 var dx = r * Math.cos(a0),
13161 dy = r * Math.sin(a0),
13162 x0 = x + dx,
13163 y0 = y + dy,
13164 cw = 1 ^ ccw,
13165 da = ccw ? a0 - a1 : a1 - a0;
13166
13167 // Is the radius negative? Error.
13168 if (r < 0) throw new Error("negative radius: " + r);
13169
13170 // Is this path empty? Move to (x0,y0).
13171 if (this._x1 === null) {
13172 this._ += "M" + x0 + "," + y0;
13173 }
13174
13175 // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
13176 else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
13177 this._ += "L" + x0 + "," + y0;
13178 }
13179
13180 // Is this arc empty? We’re done.
13181 if (!r) return;
13182
13183 // Does the angle go the wrong way? Flip the direction.
13184 if (da < 0) da = da % tau + tau;
13185
13186 // Is this a complete circle? Draw two arcs to complete the circle.
13187 if (da > tauEpsilon) {
13188 this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
13189 }
13190
13191 // Is this arc non-empty? Draw an arc!
13192 else if (da > epsilon) {
13193 this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
13194 }
13195 },
13196 rect: function(x, y, w, h) {
13197 this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z";
13198 },
13199 toString: function() {
13200 return this._;
13201 }
13202};
13203
13204/* harmony default export */ __webpack_exports__["default"] = (path);
13205
13206
13207/***/ }),
13208
13209/***/ "./node_modules/d3-polygon/index.js":
13210/*!******************************************!*\
13211 !*** ./node_modules/d3-polygon/index.js ***!
13212 \******************************************/
13213/*! exports provided: polygonArea, polygonCentroid, polygonHull, polygonContains, polygonLength */
13214/***/ (function(module, __webpack_exports__, __webpack_require__) {
13215
13216"use strict";
13217__webpack_require__.r(__webpack_exports__);
13218/* harmony import */ var _src_area__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/area */ "./node_modules/d3-polygon/src/area.js");
13219/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonArea", function() { return _src_area__WEBPACK_IMPORTED_MODULE_0__["default"]; });
13220
13221/* harmony import */ var _src_centroid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/centroid */ "./node_modules/d3-polygon/src/centroid.js");
13222/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonCentroid", function() { return _src_centroid__WEBPACK_IMPORTED_MODULE_1__["default"]; });
13223
13224/* harmony import */ var _src_hull__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/hull */ "./node_modules/d3-polygon/src/hull.js");
13225/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonHull", function() { return _src_hull__WEBPACK_IMPORTED_MODULE_2__["default"]; });
13226
13227/* harmony import */ var _src_contains__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/contains */ "./node_modules/d3-polygon/src/contains.js");
13228/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonContains", function() { return _src_contains__WEBPACK_IMPORTED_MODULE_3__["default"]; });
13229
13230/* harmony import */ var _src_length__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/length */ "./node_modules/d3-polygon/src/length.js");
13231/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonLength", function() { return _src_length__WEBPACK_IMPORTED_MODULE_4__["default"]; });
13232
13233
13234
13235
13236
13237
13238
13239
13240/***/ }),
13241
13242/***/ "./node_modules/d3-polygon/src/area.js":
13243/*!*********************************************!*\
13244 !*** ./node_modules/d3-polygon/src/area.js ***!
13245 \*********************************************/
13246/*! exports provided: default */
13247/***/ (function(module, __webpack_exports__, __webpack_require__) {
13248
13249"use strict";
13250__webpack_require__.r(__webpack_exports__);
13251/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
13252 var i = -1,
13253 n = polygon.length,
13254 a,
13255 b = polygon[n - 1],
13256 area = 0;
13257
13258 while (++i < n) {
13259 a = b;
13260 b = polygon[i];
13261 area += a[1] * b[0] - a[0] * b[1];
13262 }
13263
13264 return area / 2;
13265});
13266
13267
13268/***/ }),
13269
13270/***/ "./node_modules/d3-polygon/src/centroid.js":
13271/*!*************************************************!*\
13272 !*** ./node_modules/d3-polygon/src/centroid.js ***!
13273 \*************************************************/
13274/*! exports provided: default */
13275/***/ (function(module, __webpack_exports__, __webpack_require__) {
13276
13277"use strict";
13278__webpack_require__.r(__webpack_exports__);
13279/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
13280 var i = -1,
13281 n = polygon.length,
13282 x = 0,
13283 y = 0,
13284 a,
13285 b = polygon[n - 1],
13286 c,
13287 k = 0;
13288
13289 while (++i < n) {
13290 a = b;
13291 b = polygon[i];
13292 k += c = a[0] * b[1] - b[0] * a[1];
13293 x += (a[0] + b[0]) * c;
13294 y += (a[1] + b[1]) * c;
13295 }
13296
13297 return k *= 3, [x / k, y / k];
13298});
13299
13300
13301/***/ }),
13302
13303/***/ "./node_modules/d3-polygon/src/contains.js":
13304/*!*************************************************!*\
13305 !*** ./node_modules/d3-polygon/src/contains.js ***!
13306 \*************************************************/
13307/*! exports provided: default */
13308/***/ (function(module, __webpack_exports__, __webpack_require__) {
13309
13310"use strict";
13311__webpack_require__.r(__webpack_exports__);
13312/* harmony default export */ __webpack_exports__["default"] = (function(polygon, point) {
13313 var n = polygon.length,
13314 p = polygon[n - 1],
13315 x = point[0], y = point[1],
13316 x0 = p[0], y0 = p[1],
13317 x1, y1,
13318 inside = false;
13319
13320 for (var i = 0; i < n; ++i) {
13321 p = polygon[i], x1 = p[0], y1 = p[1];
13322 if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;
13323 x0 = x1, y0 = y1;
13324 }
13325
13326 return inside;
13327});
13328
13329
13330/***/ }),
13331
13332/***/ "./node_modules/d3-polygon/src/cross.js":
13333/*!**********************************************!*\
13334 !*** ./node_modules/d3-polygon/src/cross.js ***!
13335 \**********************************************/
13336/*! exports provided: default */
13337/***/ (function(module, __webpack_exports__, __webpack_require__) {
13338
13339"use strict";
13340__webpack_require__.r(__webpack_exports__);
13341// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
13342// the 3D cross product in a quadrant I Cartesian coordinate system (+x is
13343// right, +y is up). Returns a positive value if ABC is counter-clockwise,
13344// negative if clockwise, and zero if the points are collinear.
13345/* harmony default export */ __webpack_exports__["default"] = (function(a, b, c) {
13346 return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
13347});
13348
13349
13350/***/ }),
13351
13352/***/ "./node_modules/d3-polygon/src/hull.js":
13353/*!*********************************************!*\
13354 !*** ./node_modules/d3-polygon/src/hull.js ***!
13355 \*********************************************/
13356/*! exports provided: default */
13357/***/ (function(module, __webpack_exports__, __webpack_require__) {
13358
13359"use strict";
13360__webpack_require__.r(__webpack_exports__);
13361/* harmony import */ var _cross__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cross */ "./node_modules/d3-polygon/src/cross.js");
13362
13363
13364function lexicographicOrder(a, b) {
13365 return a[0] - b[0] || a[1] - b[1];
13366}
13367
13368// Computes the upper convex hull per the monotone chain algorithm.
13369// Assumes points.length >= 3, is sorted by x, unique in y.
13370// Returns an array of indices into points in left-to-right order.
13371function computeUpperHullIndexes(points) {
13372 var n = points.length,
13373 indexes = [0, 1],
13374 size = 2;
13375
13376 for (var i = 2; i < n; ++i) {
13377 while (size > 1 && Object(_cross__WEBPACK_IMPORTED_MODULE_0__["default"])(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;
13378 indexes[size++] = i;
13379 }
13380
13381 return indexes.slice(0, size); // remove popped points
13382}
13383
13384/* harmony default export */ __webpack_exports__["default"] = (function(points) {
13385 if ((n = points.length) < 3) return null;
13386
13387 var i,
13388 n,
13389 sortedPoints = new Array(n),
13390 flippedPoints = new Array(n);
13391
13392 for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];
13393 sortedPoints.sort(lexicographicOrder);
13394 for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];
13395
13396 var upperIndexes = computeUpperHullIndexes(sortedPoints),
13397 lowerIndexes = computeUpperHullIndexes(flippedPoints);
13398
13399 // Construct the hull polygon, removing possible duplicate endpoints.
13400 var skipLeft = lowerIndexes[0] === upperIndexes[0],
13401 skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],
13402 hull = [];
13403
13404 // Add upper hull in right-to-l order.
13405 // Then add lower hull in left-to-right order.
13406 for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);
13407 for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);
13408
13409 return hull;
13410});
13411
13412
13413/***/ }),
13414
13415/***/ "./node_modules/d3-polygon/src/length.js":
13416/*!***********************************************!*\
13417 !*** ./node_modules/d3-polygon/src/length.js ***!
13418 \***********************************************/
13419/*! exports provided: default */
13420/***/ (function(module, __webpack_exports__, __webpack_require__) {
13421
13422"use strict";
13423__webpack_require__.r(__webpack_exports__);
13424/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
13425 var i = -1,
13426 n = polygon.length,
13427 b = polygon[n - 1],
13428 xa,
13429 ya,
13430 xb = b[0],
13431 yb = b[1],
13432 perimeter = 0;
13433
13434 while (++i < n) {
13435 xa = xb;
13436 ya = yb;
13437 b = polygon[i];
13438 xb = b[0];
13439 yb = b[1];
13440 xa -= xb;
13441 ya -= yb;
13442 perimeter += Math.sqrt(xa * xa + ya * ya);
13443 }
13444
13445 return perimeter;
13446});
13447
13448
13449/***/ }),
13450
13451/***/ "./node_modules/d3-quadtree/index.js":
13452/*!*******************************************!*\
13453 !*** ./node_modules/d3-quadtree/index.js ***!
13454 \*******************************************/
13455/*! exports provided: quadtree */
13456/***/ (function(module, __webpack_exports__, __webpack_require__) {
13457
13458"use strict";
13459__webpack_require__.r(__webpack_exports__);
13460/* harmony import */ var _src_quadtree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/quadtree */ "./node_modules/d3-quadtree/src/quadtree.js");
13461/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quadtree", function() { return _src_quadtree__WEBPACK_IMPORTED_MODULE_0__["default"]; });
13462
13463
13464
13465
13466/***/ }),
13467
13468/***/ "./node_modules/d3-quadtree/src/add.js":
13469/*!*********************************************!*\
13470 !*** ./node_modules/d3-quadtree/src/add.js ***!
13471 \*********************************************/
13472/*! exports provided: default, addAll */
13473/***/ (function(module, __webpack_exports__, __webpack_require__) {
13474
13475"use strict";
13476__webpack_require__.r(__webpack_exports__);
13477/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addAll", function() { return addAll; });
13478/* harmony default export */ __webpack_exports__["default"] = (function(d) {
13479 var x = +this._x.call(null, d),
13480 y = +this._y.call(null, d);
13481 return add(this.cover(x, y), x, y, d);
13482});
13483
13484function add(tree, x, y, d) {
13485 if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
13486
13487 var parent,
13488 node = tree._root,
13489 leaf = {data: d},
13490 x0 = tree._x0,
13491 y0 = tree._y0,
13492 x1 = tree._x1,
13493 y1 = tree._y1,
13494 xm,
13495 ym,
13496 xp,
13497 yp,
13498 right,
13499 bottom,
13500 i,
13501 j;
13502
13503 // If the tree is empty, initialize the root as a leaf.
13504 if (!node) return tree._root = leaf, tree;
13505
13506 // Find the existing leaf for the new point, or add it.
13507 while (node.length) {
13508 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
13509 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
13510 if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
13511 }
13512
13513 // Is the new point is exactly coincident with the existing point?
13514 xp = +tree._x.call(null, node.data);
13515 yp = +tree._y.call(null, node.data);
13516 if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;
13517
13518 // Otherwise, split the leaf node until the old and new point are separated.
13519 do {
13520 parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
13521 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
13522 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
13523 } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
13524 return parent[j] = node, parent[i] = leaf, tree;
13525}
13526
13527function addAll(data) {
13528 var d, i, n = data.length,
13529 x,
13530 y,
13531 xz = new Array(n),
13532 yz = new Array(n),
13533 x0 = Infinity,
13534 y0 = Infinity,
13535 x1 = -Infinity,
13536 y1 = -Infinity;
13537
13538 // Compute the points and their extent.
13539 for (i = 0; i < n; ++i) {
13540 if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
13541 xz[i] = x;
13542 yz[i] = y;
13543 if (x < x0) x0 = x;
13544 if (x > x1) x1 = x;
13545 if (y < y0) y0 = y;
13546 if (y > y1) y1 = y;
13547 }
13548
13549 // If there were no (valid) points, inherit the existing extent.
13550 if (x1 < x0) x0 = this._x0, x1 = this._x1;
13551 if (y1 < y0) y0 = this._y0, y1 = this._y1;
13552
13553 // Expand the tree to cover the new points.
13554 this.cover(x0, y0).cover(x1, y1);
13555
13556 // Add the new points.
13557 for (i = 0; i < n; ++i) {
13558 add(this, xz[i], yz[i], data[i]);
13559 }
13560
13561 return this;
13562}
13563
13564
13565/***/ }),
13566
13567/***/ "./node_modules/d3-quadtree/src/cover.js":
13568/*!***********************************************!*\
13569 !*** ./node_modules/d3-quadtree/src/cover.js ***!
13570 \***********************************************/
13571/*! exports provided: default */
13572/***/ (function(module, __webpack_exports__, __webpack_require__) {
13573
13574"use strict";
13575__webpack_require__.r(__webpack_exports__);
13576/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
13577 if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
13578
13579 var x0 = this._x0,
13580 y0 = this._y0,
13581 x1 = this._x1,
13582 y1 = this._y1;
13583
13584 // If the quadtree has no extent, initialize them.
13585 // Integer extent are necessary so that if we later double the extent,
13586 // the existing quadrant boundaries don’t change due to floating point error!
13587 if (isNaN(x0)) {
13588 x1 = (x0 = Math.floor(x)) + 1;
13589 y1 = (y0 = Math.floor(y)) + 1;
13590 }
13591
13592 // Otherwise, double repeatedly to cover.
13593 else if (x0 > x || x > x1 || y0 > y || y > y1) {
13594 var z = x1 - x0,
13595 node = this._root,
13596 parent,
13597 i;
13598
13599 switch (i = (y < (y0 + y1) / 2) << 1 | (x < (x0 + x1) / 2)) {
13600 case 0: {
13601 do parent = new Array(4), parent[i] = node, node = parent;
13602 while (z *= 2, x1 = x0 + z, y1 = y0 + z, x > x1 || y > y1);
13603 break;
13604 }
13605 case 1: {
13606 do parent = new Array(4), parent[i] = node, node = parent;
13607 while (z *= 2, x0 = x1 - z, y1 = y0 + z, x0 > x || y > y1);
13608 break;
13609 }
13610 case 2: {
13611 do parent = new Array(4), parent[i] = node, node = parent;
13612 while (z *= 2, x1 = x0 + z, y0 = y1 - z, x > x1 || y0 > y);
13613 break;
13614 }
13615 case 3: {
13616 do parent = new Array(4), parent[i] = node, node = parent;
13617 while (z *= 2, x0 = x1 - z, y0 = y1 - z, x0 > x || y0 > y);
13618 break;
13619 }
13620 }
13621
13622 if (this._root && this._root.length) this._root = node;
13623 }
13624
13625 // If the quadtree covers the point already, just return.
13626 else return this;
13627
13628 this._x0 = x0;
13629 this._y0 = y0;
13630 this._x1 = x1;
13631 this._y1 = y1;
13632 return this;
13633});
13634
13635
13636/***/ }),
13637
13638/***/ "./node_modules/d3-quadtree/src/data.js":
13639/*!**********************************************!*\
13640 !*** ./node_modules/d3-quadtree/src/data.js ***!
13641 \**********************************************/
13642/*! exports provided: default */
13643/***/ (function(module, __webpack_exports__, __webpack_require__) {
13644
13645"use strict";
13646__webpack_require__.r(__webpack_exports__);
13647/* harmony default export */ __webpack_exports__["default"] = (function() {
13648 var data = [];
13649 this.visit(function(node) {
13650 if (!node.length) do data.push(node.data); while (node = node.next)
13651 });
13652 return data;
13653});
13654
13655
13656/***/ }),
13657
13658/***/ "./node_modules/d3-quadtree/src/extent.js":
13659/*!************************************************!*\
13660 !*** ./node_modules/d3-quadtree/src/extent.js ***!
13661 \************************************************/
13662/*! exports provided: default */
13663/***/ (function(module, __webpack_exports__, __webpack_require__) {
13664
13665"use strict";
13666__webpack_require__.r(__webpack_exports__);
13667/* harmony default export */ __webpack_exports__["default"] = (function(_) {
13668 return arguments.length
13669 ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
13670 : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
13671});
13672
13673
13674/***/ }),
13675
13676/***/ "./node_modules/d3-quadtree/src/find.js":
13677/*!**********************************************!*\
13678 !*** ./node_modules/d3-quadtree/src/find.js ***!
13679 \**********************************************/
13680/*! exports provided: default */
13681/***/ (function(module, __webpack_exports__, __webpack_require__) {
13682
13683"use strict";
13684__webpack_require__.r(__webpack_exports__);
13685/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad */ "./node_modules/d3-quadtree/src/quad.js");
13686
13687
13688/* harmony default export */ __webpack_exports__["default"] = (function(x, y, radius) {
13689 var data,
13690 x0 = this._x0,
13691 y0 = this._y0,
13692 x1,
13693 y1,
13694 x2,
13695 y2,
13696 x3 = this._x1,
13697 y3 = this._y1,
13698 quads = [],
13699 node = this._root,
13700 q,
13701 i;
13702
13703 if (node) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node, x0, y0, x3, y3));
13704 if (radius == null) radius = Infinity;
13705 else {
13706 x0 = x - radius, y0 = y - radius;
13707 x3 = x + radius, y3 = y + radius;
13708 radius *= radius;
13709 }
13710
13711 while (q = quads.pop()) {
13712
13713 // Stop searching if this quadrant can’t contain a closer node.
13714 if (!(node = q.node)
13715 || (x1 = q.x0) > x3
13716 || (y1 = q.y0) > y3
13717 || (x2 = q.x1) < x0
13718 || (y2 = q.y1) < y0) continue;
13719
13720 // Bisect the current quadrant.
13721 if (node.length) {
13722 var xm = (x1 + x2) / 2,
13723 ym = (y1 + y2) / 2;
13724
13725 quads.push(
13726 new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node[3], xm, ym, x2, y2),
13727 new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node[2], x1, ym, xm, y2),
13728 new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node[1], xm, y1, x2, ym),
13729 new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node[0], x1, y1, xm, ym)
13730 );
13731
13732 // Visit the closest quadrant first.
13733 if (i = (y >= ym) << 1 | (x >= xm)) {
13734 q = quads[quads.length - 1];
13735 quads[quads.length - 1] = quads[quads.length - 1 - i];
13736 quads[quads.length - 1 - i] = q;
13737 }
13738 }
13739
13740 // Visit this point. (Visiting coincident points isn’t necessary!)
13741 else {
13742 var dx = x - +this._x.call(null, node.data),
13743 dy = y - +this._y.call(null, node.data),
13744 d2 = dx * dx + dy * dy;
13745 if (d2 < radius) {
13746 var d = Math.sqrt(radius = d2);
13747 x0 = x - d, y0 = y - d;
13748 x3 = x + d, y3 = y + d;
13749 data = node.data;
13750 }
13751 }
13752 }
13753
13754 return data;
13755});
13756
13757
13758/***/ }),
13759
13760/***/ "./node_modules/d3-quadtree/src/quad.js":
13761/*!**********************************************!*\
13762 !*** ./node_modules/d3-quadtree/src/quad.js ***!
13763 \**********************************************/
13764/*! exports provided: default */
13765/***/ (function(module, __webpack_exports__, __webpack_require__) {
13766
13767"use strict";
13768__webpack_require__.r(__webpack_exports__);
13769/* harmony default export */ __webpack_exports__["default"] = (function(node, x0, y0, x1, y1) {
13770 this.node = node;
13771 this.x0 = x0;
13772 this.y0 = y0;
13773 this.x1 = x1;
13774 this.y1 = y1;
13775});
13776
13777
13778/***/ }),
13779
13780/***/ "./node_modules/d3-quadtree/src/quadtree.js":
13781/*!**************************************************!*\
13782 !*** ./node_modules/d3-quadtree/src/quadtree.js ***!
13783 \**************************************************/
13784/*! exports provided: default */
13785/***/ (function(module, __webpack_exports__, __webpack_require__) {
13786
13787"use strict";
13788__webpack_require__.r(__webpack_exports__);
13789/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quadtree; });
13790/* harmony import */ var _add__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add */ "./node_modules/d3-quadtree/src/add.js");
13791/* harmony import */ var _cover__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cover */ "./node_modules/d3-quadtree/src/cover.js");
13792/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data */ "./node_modules/d3-quadtree/src/data.js");
13793/* harmony import */ var _extent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extent */ "./node_modules/d3-quadtree/src/extent.js");
13794/* harmony import */ var _find__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./find */ "./node_modules/d3-quadtree/src/find.js");
13795/* harmony import */ var _remove__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remove */ "./node_modules/d3-quadtree/src/remove.js");
13796/* harmony import */ var _root__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./root */ "./node_modules/d3-quadtree/src/root.js");
13797/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./size */ "./node_modules/d3-quadtree/src/size.js");
13798/* harmony import */ var _visit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./visit */ "./node_modules/d3-quadtree/src/visit.js");
13799/* harmony import */ var _visitAfter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./visitAfter */ "./node_modules/d3-quadtree/src/visitAfter.js");
13800/* harmony import */ var _x__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./x */ "./node_modules/d3-quadtree/src/x.js");
13801/* harmony import */ var _y__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./y */ "./node_modules/d3-quadtree/src/y.js");
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815function quadtree(nodes, x, y) {
13816 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);
13817 return nodes == null ? tree : tree.addAll(nodes);
13818}
13819
13820function Quadtree(x, y, x0, y0, x1, y1) {
13821 this._x = x;
13822 this._y = y;
13823 this._x0 = x0;
13824 this._y0 = y0;
13825 this._x1 = x1;
13826 this._y1 = y1;
13827 this._root = undefined;
13828}
13829
13830function leaf_copy(leaf) {
13831 var copy = {data: leaf.data}, next = copy;
13832 while (leaf = leaf.next) next = next.next = {data: leaf.data};
13833 return copy;
13834}
13835
13836var treeProto = quadtree.prototype = Quadtree.prototype;
13837
13838treeProto.copy = function() {
13839 var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
13840 node = this._root,
13841 nodes,
13842 child;
13843
13844 if (!node) return copy;
13845
13846 if (!node.length) return copy._root = leaf_copy(node), copy;
13847
13848 nodes = [{source: node, target: copy._root = new Array(4)}];
13849 while (node = nodes.pop()) {
13850 for (var i = 0; i < 4; ++i) {
13851 if (child = node.source[i]) {
13852 if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
13853 else node.target[i] = leaf_copy(child);
13854 }
13855 }
13856 }
13857
13858 return copy;
13859};
13860
13861treeProto.add = _add__WEBPACK_IMPORTED_MODULE_0__["default"];
13862treeProto.addAll = _add__WEBPACK_IMPORTED_MODULE_0__["addAll"];
13863treeProto.cover = _cover__WEBPACK_IMPORTED_MODULE_1__["default"];
13864treeProto.data = _data__WEBPACK_IMPORTED_MODULE_2__["default"];
13865treeProto.extent = _extent__WEBPACK_IMPORTED_MODULE_3__["default"];
13866treeProto.find = _find__WEBPACK_IMPORTED_MODULE_4__["default"];
13867treeProto.remove = _remove__WEBPACK_IMPORTED_MODULE_5__["default"];
13868treeProto.removeAll = _remove__WEBPACK_IMPORTED_MODULE_5__["removeAll"];
13869treeProto.root = _root__WEBPACK_IMPORTED_MODULE_6__["default"];
13870treeProto.size = _size__WEBPACK_IMPORTED_MODULE_7__["default"];
13871treeProto.visit = _visit__WEBPACK_IMPORTED_MODULE_8__["default"];
13872treeProto.visitAfter = _visitAfter__WEBPACK_IMPORTED_MODULE_9__["default"];
13873treeProto.x = _x__WEBPACK_IMPORTED_MODULE_10__["default"];
13874treeProto.y = _y__WEBPACK_IMPORTED_MODULE_11__["default"];
13875
13876
13877/***/ }),
13878
13879/***/ "./node_modules/d3-quadtree/src/remove.js":
13880/*!************************************************!*\
13881 !*** ./node_modules/d3-quadtree/src/remove.js ***!
13882 \************************************************/
13883/*! exports provided: default, removeAll */
13884/***/ (function(module, __webpack_exports__, __webpack_require__) {
13885
13886"use strict";
13887__webpack_require__.r(__webpack_exports__);
13888/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAll", function() { return removeAll; });
13889/* harmony default export */ __webpack_exports__["default"] = (function(d) {
13890 if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
13891
13892 var parent,
13893 node = this._root,
13894 retainer,
13895 previous,
13896 next,
13897 x0 = this._x0,
13898 y0 = this._y0,
13899 x1 = this._x1,
13900 y1 = this._y1,
13901 x,
13902 y,
13903 xm,
13904 ym,
13905 right,
13906 bottom,
13907 i,
13908 j;
13909
13910 // If the tree is empty, initialize the root as a leaf.
13911 if (!node) return this;
13912
13913 // Find the leaf node for the point.
13914 // While descending, also retain the deepest parent with a non-removed sibling.
13915 if (node.length) while (true) {
13916 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
13917 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
13918 if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
13919 if (!node.length) break;
13920 if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
13921 }
13922
13923 // Find the point to remove.
13924 while (node.data !== d) if (!(previous = node, node = node.next)) return this;
13925 if (next = node.next) delete node.next;
13926
13927 // If there are multiple coincident points, remove just the point.
13928 if (previous) return (next ? previous.next = next : delete previous.next), this;
13929
13930 // If this is the root point, remove it.
13931 if (!parent) return this._root = next, this;
13932
13933 // Remove this leaf.
13934 next ? parent[i] = next : delete parent[i];
13935
13936 // If the parent now contains exactly one leaf, collapse superfluous parents.
13937 if ((node = parent[0] || parent[1] || parent[2] || parent[3])
13938 && node === (parent[3] || parent[2] || parent[1] || parent[0])
13939 && !node.length) {
13940 if (retainer) retainer[j] = node;
13941 else this._root = node;
13942 }
13943
13944 return this;
13945});
13946
13947function removeAll(data) {
13948 for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
13949 return this;
13950}
13951
13952
13953/***/ }),
13954
13955/***/ "./node_modules/d3-quadtree/src/root.js":
13956/*!**********************************************!*\
13957 !*** ./node_modules/d3-quadtree/src/root.js ***!
13958 \**********************************************/
13959/*! exports provided: default */
13960/***/ (function(module, __webpack_exports__, __webpack_require__) {
13961
13962"use strict";
13963__webpack_require__.r(__webpack_exports__);
13964/* harmony default export */ __webpack_exports__["default"] = (function() {
13965 return this._root;
13966});
13967
13968
13969/***/ }),
13970
13971/***/ "./node_modules/d3-quadtree/src/size.js":
13972/*!**********************************************!*\
13973 !*** ./node_modules/d3-quadtree/src/size.js ***!
13974 \**********************************************/
13975/*! exports provided: default */
13976/***/ (function(module, __webpack_exports__, __webpack_require__) {
13977
13978"use strict";
13979__webpack_require__.r(__webpack_exports__);
13980/* harmony default export */ __webpack_exports__["default"] = (function() {
13981 var size = 0;
13982 this.visit(function(node) {
13983 if (!node.length) do ++size; while (node = node.next)
13984 });
13985 return size;
13986});
13987
13988
13989/***/ }),
13990
13991/***/ "./node_modules/d3-quadtree/src/visit.js":
13992/*!***********************************************!*\
13993 !*** ./node_modules/d3-quadtree/src/visit.js ***!
13994 \***********************************************/
13995/*! exports provided: default */
13996/***/ (function(module, __webpack_exports__, __webpack_require__) {
13997
13998"use strict";
13999__webpack_require__.r(__webpack_exports__);
14000/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad */ "./node_modules/d3-quadtree/src/quad.js");
14001
14002
14003/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
14004 var quads = [], q, node = this._root, child, x0, y0, x1, y1;
14005 if (node) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](node, this._x0, this._y0, this._x1, this._y1));
14006 while (q = quads.pop()) {
14007 if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
14008 var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
14009 if (child = node[3]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, ym, x1, y1));
14010 if (child = node[2]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, ym, xm, y1));
14011 if (child = node[1]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, y0, x1, ym));
14012 if (child = node[0]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, y0, xm, ym));
14013 }
14014 }
14015 return this;
14016});
14017
14018
14019/***/ }),
14020
14021/***/ "./node_modules/d3-quadtree/src/visitAfter.js":
14022/*!****************************************************!*\
14023 !*** ./node_modules/d3-quadtree/src/visitAfter.js ***!
14024 \****************************************************/
14025/*! exports provided: default */
14026/***/ (function(module, __webpack_exports__, __webpack_require__) {
14027
14028"use strict";
14029__webpack_require__.r(__webpack_exports__);
14030/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad */ "./node_modules/d3-quadtree/src/quad.js");
14031
14032
14033/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
14034 var quads = [], next = [], q;
14035 if (this._root) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](this._root, this._x0, this._y0, this._x1, this._y1));
14036 while (q = quads.pop()) {
14037 var node = q.node;
14038 if (node.length) {
14039 var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
14040 if (child = node[0]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, y0, xm, ym));
14041 if (child = node[1]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, y0, x1, ym));
14042 if (child = node[2]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, ym, xm, y1));
14043 if (child = node[3]) quads.push(new _quad__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, ym, x1, y1));
14044 }
14045 next.push(q);
14046 }
14047 while (q = next.pop()) {
14048 callback(q.node, q.x0, q.y0, q.x1, q.y1);
14049 }
14050 return this;
14051});
14052
14053
14054/***/ }),
14055
14056/***/ "./node_modules/d3-quadtree/src/x.js":
14057/*!*******************************************!*\
14058 !*** ./node_modules/d3-quadtree/src/x.js ***!
14059 \*******************************************/
14060/*! exports provided: defaultX, default */
14061/***/ (function(module, __webpack_exports__, __webpack_require__) {
14062
14063"use strict";
14064__webpack_require__.r(__webpack_exports__);
14065/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultX", function() { return defaultX; });
14066function defaultX(d) {
14067 return d[0];
14068}
14069
14070/* harmony default export */ __webpack_exports__["default"] = (function(_) {
14071 return arguments.length ? (this._x = _, this) : this._x;
14072});
14073
14074
14075/***/ }),
14076
14077/***/ "./node_modules/d3-quadtree/src/y.js":
14078/*!*******************************************!*\
14079 !*** ./node_modules/d3-quadtree/src/y.js ***!
14080 \*******************************************/
14081/*! exports provided: defaultY, default */
14082/***/ (function(module, __webpack_exports__, __webpack_require__) {
14083
14084"use strict";
14085__webpack_require__.r(__webpack_exports__);
14086/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultY", function() { return defaultY; });
14087function defaultY(d) {
14088 return d[1];
14089}
14090
14091/* harmony default export */ __webpack_exports__["default"] = (function(_) {
14092 return arguments.length ? (this._y = _, this) : this._y;
14093});
14094
14095
14096/***/ }),
14097
14098/***/ "./node_modules/d3-queue/index.js":
14099/*!****************************************!*\
14100 !*** ./node_modules/d3-queue/index.js ***!
14101 \****************************************/
14102/*! exports provided: queue */
14103/***/ (function(module, __webpack_exports__, __webpack_require__) {
14104
14105"use strict";
14106__webpack_require__.r(__webpack_exports__);
14107/* harmony import */ var _src_queue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/queue */ "./node_modules/d3-queue/src/queue.js");
14108/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queue", function() { return _src_queue__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14109
14110
14111
14112
14113/***/ }),
14114
14115/***/ "./node_modules/d3-queue/src/array.js":
14116/*!********************************************!*\
14117 !*** ./node_modules/d3-queue/src/array.js ***!
14118 \********************************************/
14119/*! exports provided: slice */
14120/***/ (function(module, __webpack_exports__, __webpack_require__) {
14121
14122"use strict";
14123__webpack_require__.r(__webpack_exports__);
14124/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
14125var slice = [].slice;
14126
14127
14128/***/ }),
14129
14130/***/ "./node_modules/d3-queue/src/queue.js":
14131/*!********************************************!*\
14132 !*** ./node_modules/d3-queue/src/queue.js ***!
14133 \********************************************/
14134/*! exports provided: default */
14135/***/ (function(module, __webpack_exports__, __webpack_require__) {
14136
14137"use strict";
14138__webpack_require__.r(__webpack_exports__);
14139/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return queue; });
14140/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-queue/src/array.js");
14141
14142
14143var noabort = {};
14144
14145function Queue(size) {
14146 this._size = size;
14147 this._call =
14148 this._error = null;
14149 this._tasks = [];
14150 this._data = [];
14151 this._waiting =
14152 this._active =
14153 this._ended =
14154 this._start = 0; // inside a synchronous task callback?
14155}
14156
14157Queue.prototype = queue.prototype = {
14158 constructor: Queue,
14159 defer: function(callback) {
14160 if (typeof callback !== "function") throw new Error("invalid callback");
14161 if (this._call) throw new Error("defer after await");
14162 if (this._error != null) return this;
14163 var t = _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(arguments, 1);
14164 t.push(callback);
14165 ++this._waiting, this._tasks.push(t);
14166 poke(this);
14167 return this;
14168 },
14169 abort: function() {
14170 if (this._error == null) abort(this, new Error("abort"));
14171 return this;
14172 },
14173 await: function(callback) {
14174 if (typeof callback !== "function") throw new Error("invalid callback");
14175 if (this._call) throw new Error("multiple await");
14176 this._call = function(error, results) { callback.apply(null, [error].concat(results)); };
14177 maybeNotify(this);
14178 return this;
14179 },
14180 awaitAll: function(callback) {
14181 if (typeof callback !== "function") throw new Error("invalid callback");
14182 if (this._call) throw new Error("multiple await");
14183 this._call = callback;
14184 maybeNotify(this);
14185 return this;
14186 }
14187};
14188
14189function poke(q) {
14190 if (!q._start) {
14191 try { start(q); } // let the current task complete
14192 catch (e) {
14193 if (q._tasks[q._ended + q._active - 1]) abort(q, e); // task errored synchronously
14194 else if (!q._data) throw e; // await callback errored synchronously
14195 }
14196 }
14197}
14198
14199function start(q) {
14200 while (q._start = q._waiting && q._active < q._size) {
14201 var i = q._ended + q._active,
14202 t = q._tasks[i],
14203 j = t.length - 1,
14204 c = t[j];
14205 t[j] = end(q, i);
14206 --q._waiting, ++q._active;
14207 t = c.apply(null, t);
14208 if (!q._tasks[i]) continue; // task finished synchronously
14209 q._tasks[i] = t || noabort;
14210 }
14211}
14212
14213function end(q, i) {
14214 return function(e, r) {
14215 if (!q._tasks[i]) return; // ignore multiple callbacks
14216 --q._active, ++q._ended;
14217 q._tasks[i] = null;
14218 if (q._error != null) return; // ignore secondary errors
14219 if (e != null) {
14220 abort(q, e);
14221 } else {
14222 q._data[i] = r;
14223 if (q._waiting) poke(q);
14224 else maybeNotify(q);
14225 }
14226 };
14227}
14228
14229function abort(q, e) {
14230 var i = q._tasks.length, t;
14231 q._error = e; // ignore active callbacks
14232 q._data = undefined; // allow gc
14233 q._waiting = NaN; // prevent starting
14234
14235 while (--i >= 0) {
14236 if (t = q._tasks[i]) {
14237 q._tasks[i] = null;
14238 if (t.abort) {
14239 try { t.abort(); }
14240 catch (e) { /* ignore */ }
14241 }
14242 }
14243 }
14244
14245 q._active = NaN; // allow notification
14246 maybeNotify(q);
14247}
14248
14249function maybeNotify(q) {
14250 if (!q._active && q._call) {
14251 var d = q._data;
14252 q._data = undefined; // allow gc
14253 q._call(q._error, d);
14254 }
14255}
14256
14257function queue(concurrency) {
14258 if (concurrency == null) concurrency = Infinity;
14259 else if (!((concurrency = +concurrency) >= 1)) throw new Error("invalid concurrency");
14260 return new Queue(concurrency);
14261}
14262
14263
14264/***/ }),
14265
14266/***/ "./node_modules/d3-random/index.js":
14267/*!*****************************************!*\
14268 !*** ./node_modules/d3-random/index.js ***!
14269 \*****************************************/
14270/*! exports provided: randomUniform, randomNormal, randomLogNormal, randomBates, randomIrwinHall, randomExponential */
14271/***/ (function(module, __webpack_exports__, __webpack_require__) {
14272
14273"use strict";
14274__webpack_require__.r(__webpack_exports__);
14275/* harmony import */ var _src_uniform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/uniform */ "./node_modules/d3-random/src/uniform.js");
14276/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomUniform", function() { return _src_uniform__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14277
14278/* harmony import */ var _src_normal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/normal */ "./node_modules/d3-random/src/normal.js");
14279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomNormal", function() { return _src_normal__WEBPACK_IMPORTED_MODULE_1__["default"]; });
14280
14281/* harmony import */ var _src_logNormal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/logNormal */ "./node_modules/d3-random/src/logNormal.js");
14282/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomLogNormal", function() { return _src_logNormal__WEBPACK_IMPORTED_MODULE_2__["default"]; });
14283
14284/* harmony import */ var _src_bates__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/bates */ "./node_modules/d3-random/src/bates.js");
14285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomBates", function() { return _src_bates__WEBPACK_IMPORTED_MODULE_3__["default"]; });
14286
14287/* harmony import */ var _src_irwinHall__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/irwinHall */ "./node_modules/d3-random/src/irwinHall.js");
14288/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomIrwinHall", function() { return _src_irwinHall__WEBPACK_IMPORTED_MODULE_4__["default"]; });
14289
14290/* harmony import */ var _src_exponential__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/exponential */ "./node_modules/d3-random/src/exponential.js");
14291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomExponential", function() { return _src_exponential__WEBPACK_IMPORTED_MODULE_5__["default"]; });
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301/***/ }),
14302
14303/***/ "./node_modules/d3-random/src/bates.js":
14304/*!*********************************************!*\
14305 !*** ./node_modules/d3-random/src/bates.js ***!
14306 \*********************************************/
14307/*! exports provided: default */
14308/***/ (function(module, __webpack_exports__, __webpack_require__) {
14309
14310"use strict";
14311__webpack_require__.r(__webpack_exports__);
14312/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
14313/* harmony import */ var _irwinHall__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./irwinHall */ "./node_modules/d3-random/src/irwinHall.js");
14314
14315
14316
14317/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomBates(source) {
14318 function randomBates(n) {
14319 var randomIrwinHall = _irwinHall__WEBPACK_IMPORTED_MODULE_1__["default"].source(source)(n);
14320 return function() {
14321 return randomIrwinHall() / n;
14322 };
14323 }
14324
14325 randomBates.source = sourceRandomBates;
14326
14327 return randomBates;
14328})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
14329
14330
14331/***/ }),
14332
14333/***/ "./node_modules/d3-random/src/defaultSource.js":
14334/*!*****************************************************!*\
14335 !*** ./node_modules/d3-random/src/defaultSource.js ***!
14336 \*****************************************************/
14337/*! exports provided: default */
14338/***/ (function(module, __webpack_exports__, __webpack_require__) {
14339
14340"use strict";
14341__webpack_require__.r(__webpack_exports__);
14342/* harmony default export */ __webpack_exports__["default"] = (function() {
14343 return Math.random();
14344});
14345
14346
14347/***/ }),
14348
14349/***/ "./node_modules/d3-random/src/exponential.js":
14350/*!***************************************************!*\
14351 !*** ./node_modules/d3-random/src/exponential.js ***!
14352 \***************************************************/
14353/*! exports provided: default */
14354/***/ (function(module, __webpack_exports__, __webpack_require__) {
14355
14356"use strict";
14357__webpack_require__.r(__webpack_exports__);
14358/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
14359
14360
14361/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomExponential(source) {
14362 function randomExponential(lambda) {
14363 return function() {
14364 return -Math.log(1 - source()) / lambda;
14365 };
14366 }
14367
14368 randomExponential.source = sourceRandomExponential;
14369
14370 return randomExponential;
14371})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
14372
14373
14374/***/ }),
14375
14376/***/ "./node_modules/d3-random/src/irwinHall.js":
14377/*!*************************************************!*\
14378 !*** ./node_modules/d3-random/src/irwinHall.js ***!
14379 \*************************************************/
14380/*! exports provided: default */
14381/***/ (function(module, __webpack_exports__, __webpack_require__) {
14382
14383"use strict";
14384__webpack_require__.r(__webpack_exports__);
14385/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
14386
14387
14388/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomIrwinHall(source) {
14389 function randomIrwinHall(n) {
14390 return function() {
14391 for (var sum = 0, i = 0; i < n; ++i) sum += source();
14392 return sum;
14393 };
14394 }
14395
14396 randomIrwinHall.source = sourceRandomIrwinHall;
14397
14398 return randomIrwinHall;
14399})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
14400
14401
14402/***/ }),
14403
14404/***/ "./node_modules/d3-random/src/logNormal.js":
14405/*!*************************************************!*\
14406 !*** ./node_modules/d3-random/src/logNormal.js ***!
14407 \*************************************************/
14408/*! exports provided: default */
14409/***/ (function(module, __webpack_exports__, __webpack_require__) {
14410
14411"use strict";
14412__webpack_require__.r(__webpack_exports__);
14413/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
14414/* harmony import */ var _normal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normal */ "./node_modules/d3-random/src/normal.js");
14415
14416
14417
14418/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomLogNormal(source) {
14419 function randomLogNormal() {
14420 var randomNormal = _normal__WEBPACK_IMPORTED_MODULE_1__["default"].source(source).apply(this, arguments);
14421 return function() {
14422 return Math.exp(randomNormal());
14423 };
14424 }
14425
14426 randomLogNormal.source = sourceRandomLogNormal;
14427
14428 return randomLogNormal;
14429})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
14430
14431
14432/***/ }),
14433
14434/***/ "./node_modules/d3-random/src/normal.js":
14435/*!**********************************************!*\
14436 !*** ./node_modules/d3-random/src/normal.js ***!
14437 \**********************************************/
14438/*! exports provided: default */
14439/***/ (function(module, __webpack_exports__, __webpack_require__) {
14440
14441"use strict";
14442__webpack_require__.r(__webpack_exports__);
14443/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
14444
14445
14446/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomNormal(source) {
14447 function randomNormal(mu, sigma) {
14448 var x, r;
14449 mu = mu == null ? 0 : +mu;
14450 sigma = sigma == null ? 1 : +sigma;
14451 return function() {
14452 var y;
14453
14454 // If available, use the second previously-generated uniform random.
14455 if (x != null) y = x, x = null;
14456
14457 // Otherwise, generate a new x and y.
14458 else do {
14459 x = source() * 2 - 1;
14460 y = source() * 2 - 1;
14461 r = x * x + y * y;
14462 } while (!r || r > 1);
14463
14464 return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
14465 };
14466 }
14467
14468 randomNormal.source = sourceRandomNormal;
14469
14470 return randomNormal;
14471})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
14472
14473
14474/***/ }),
14475
14476/***/ "./node_modules/d3-random/src/uniform.js":
14477/*!***********************************************!*\
14478 !*** ./node_modules/d3-random/src/uniform.js ***!
14479 \***********************************************/
14480/*! exports provided: default */
14481/***/ (function(module, __webpack_exports__, __webpack_require__) {
14482
14483"use strict";
14484__webpack_require__.r(__webpack_exports__);
14485/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
14486
14487
14488/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomUniform(source) {
14489 function randomUniform(min, max) {
14490 min = min == null ? 0 : +min;
14491 max = max == null ? 1 : +max;
14492 if (arguments.length === 1) max = min, min = 0;
14493 else max -= min;
14494 return function() {
14495 return source() * max + min;
14496 };
14497 }
14498
14499 randomUniform.source = sourceRandomUniform;
14500
14501 return randomUniform;
14502})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
14503
14504
14505/***/ }),
14506
14507/***/ "./node_modules/d3-request/index.js":
14508/*!******************************************!*\
14509 !*** ./node_modules/d3-request/index.js ***!
14510 \******************************************/
14511/*! exports provided: request, html, json, text, xml, csv, tsv */
14512/***/ (function(module, __webpack_exports__, __webpack_require__) {
14513
14514"use strict";
14515__webpack_require__.r(__webpack_exports__);
14516/* harmony import */ var _src_request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/request */ "./node_modules/d3-request/src/request.js");
14517/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "request", function() { return _src_request__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14518
14519/* harmony import */ var _src_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/html */ "./node_modules/d3-request/src/html.js");
14520/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "html", function() { return _src_html__WEBPACK_IMPORTED_MODULE_1__["default"]; });
14521
14522/* harmony import */ var _src_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/json */ "./node_modules/d3-request/src/json.js");
14523/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "json", function() { return _src_json__WEBPACK_IMPORTED_MODULE_2__["default"]; });
14524
14525/* harmony import */ var _src_text__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/text */ "./node_modules/d3-request/src/text.js");
14526/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "text", function() { return _src_text__WEBPACK_IMPORTED_MODULE_3__["default"]; });
14527
14528/* harmony import */ var _src_xml__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/xml */ "./node_modules/d3-request/src/xml.js");
14529/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "xml", function() { return _src_xml__WEBPACK_IMPORTED_MODULE_4__["default"]; });
14530
14531/* harmony import */ var _src_csv__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/csv */ "./node_modules/d3-request/src/csv.js");
14532/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csv", function() { return _src_csv__WEBPACK_IMPORTED_MODULE_5__["default"]; });
14533
14534/* harmony import */ var _src_tsv__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/tsv */ "./node_modules/d3-request/src/tsv.js");
14535/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsv", function() { return _src_tsv__WEBPACK_IMPORTED_MODULE_6__["default"]; });
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546/***/ }),
14547
14548/***/ "./node_modules/d3-request/src/csv.js":
14549/*!********************************************!*\
14550 !*** ./node_modules/d3-request/src/csv.js ***!
14551 \********************************************/
14552/*! exports provided: default */
14553/***/ (function(module, __webpack_exports__, __webpack_require__) {
14554
14555"use strict";
14556__webpack_require__.r(__webpack_exports__);
14557/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/index.js");
14558/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-request/src/dsv.js");
14559
14560
14561
14562/* harmony default export */ __webpack_exports__["default"] = (Object(_dsv__WEBPACK_IMPORTED_MODULE_1__["default"])("text/csv", d3_dsv__WEBPACK_IMPORTED_MODULE_0__["csvParse"]));
14563
14564
14565/***/ }),
14566
14567/***/ "./node_modules/d3-request/src/dsv.js":
14568/*!********************************************!*\
14569 !*** ./node_modules/d3-request/src/dsv.js ***!
14570 \********************************************/
14571/*! exports provided: default */
14572/***/ (function(module, __webpack_exports__, __webpack_require__) {
14573
14574"use strict";
14575__webpack_require__.r(__webpack_exports__);
14576/* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./request */ "./node_modules/d3-request/src/request.js");
14577
14578
14579/* harmony default export */ __webpack_exports__["default"] = (function(defaultMimeType, parse) {
14580 return function(url, row, callback) {
14581 if (arguments.length < 3) callback = row, row = null;
14582 var r = Object(_request__WEBPACK_IMPORTED_MODULE_0__["default"])(url).mimeType(defaultMimeType);
14583 r.row = function(_) { return arguments.length ? r.response(responseOf(parse, row = _)) : row; };
14584 r.row(row);
14585 return callback ? r.get(callback) : r;
14586 };
14587});
14588
14589function responseOf(parse, row) {
14590 return function(request) {
14591 return parse(request.responseText, row);
14592 };
14593}
14594
14595
14596/***/ }),
14597
14598/***/ "./node_modules/d3-request/src/html.js":
14599/*!*********************************************!*\
14600 !*** ./node_modules/d3-request/src/html.js ***!
14601 \*********************************************/
14602/*! exports provided: default */
14603/***/ (function(module, __webpack_exports__, __webpack_require__) {
14604
14605"use strict";
14606__webpack_require__.r(__webpack_exports__);
14607/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ "./node_modules/d3-request/src/type.js");
14608
14609
14610/* harmony default export */ __webpack_exports__["default"] = (Object(_type__WEBPACK_IMPORTED_MODULE_0__["default"])("text/html", function(xhr) {
14611 return document.createRange().createContextualFragment(xhr.responseText);
14612}));
14613
14614
14615/***/ }),
14616
14617/***/ "./node_modules/d3-request/src/json.js":
14618/*!*********************************************!*\
14619 !*** ./node_modules/d3-request/src/json.js ***!
14620 \*********************************************/
14621/*! exports provided: default */
14622/***/ (function(module, __webpack_exports__, __webpack_require__) {
14623
14624"use strict";
14625__webpack_require__.r(__webpack_exports__);
14626/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ "./node_modules/d3-request/src/type.js");
14627
14628
14629/* harmony default export */ __webpack_exports__["default"] = (Object(_type__WEBPACK_IMPORTED_MODULE_0__["default"])("application/json", function(xhr) {
14630 return JSON.parse(xhr.responseText);
14631}));
14632
14633
14634/***/ }),
14635
14636/***/ "./node_modules/d3-request/src/request.js":
14637/*!************************************************!*\
14638 !*** ./node_modules/d3-request/src/request.js ***!
14639 \************************************************/
14640/*! exports provided: default */
14641/***/ (function(module, __webpack_exports__, __webpack_require__) {
14642
14643"use strict";
14644__webpack_require__.r(__webpack_exports__);
14645/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/index.js");
14646/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/index.js");
14647
14648
14649
14650/* harmony default export */ __webpack_exports__["default"] = (function(url, callback) {
14651 var request,
14652 event = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_1__["dispatch"])("beforesend", "progress", "load", "error"),
14653 mimeType,
14654 headers = Object(d3_collection__WEBPACK_IMPORTED_MODULE_0__["map"])(),
14655 xhr = new XMLHttpRequest,
14656 user = null,
14657 password = null,
14658 response,
14659 responseType,
14660 timeout = 0;
14661
14662 // If IE does not support CORS, use XDomainRequest.
14663 if (typeof XDomainRequest !== "undefined"
14664 && !("withCredentials" in xhr)
14665 && /^(http(s)?:)?\/\//.test(url)) xhr = new XDomainRequest;
14666
14667 "onload" in xhr
14668 ? xhr.onload = xhr.onerror = xhr.ontimeout = respond
14669 : xhr.onreadystatechange = function(o) { xhr.readyState > 3 && respond(o); };
14670
14671 function respond(o) {
14672 var status = xhr.status, result;
14673 if (!status && hasResponse(xhr)
14674 || status >= 200 && status < 300
14675 || status === 304) {
14676 if (response) {
14677 try {
14678 result = response.call(request, xhr);
14679 } catch (e) {
14680 event.call("error", request, e);
14681 return;
14682 }
14683 } else {
14684 result = xhr;
14685 }
14686 event.call("load", request, result);
14687 } else {
14688 event.call("error", request, o);
14689 }
14690 }
14691
14692 xhr.onprogress = function(e) {
14693 event.call("progress", request, e);
14694 };
14695
14696 request = {
14697 header: function(name, value) {
14698 name = (name + "").toLowerCase();
14699 if (arguments.length < 2) return headers.get(name);
14700 if (value == null) headers.remove(name);
14701 else headers.set(name, value + "");
14702 return request;
14703 },
14704
14705 // If mimeType is non-null and no Accept header is set, a default is used.
14706 mimeType: function(value) {
14707 if (!arguments.length) return mimeType;
14708 mimeType = value == null ? null : value + "";
14709 return request;
14710 },
14711
14712 // Specifies what type the response value should take;
14713 // for instance, arraybuffer, blob, document, or text.
14714 responseType: function(value) {
14715 if (!arguments.length) return responseType;
14716 responseType = value;
14717 return request;
14718 },
14719
14720 timeout: function(value) {
14721 if (!arguments.length) return timeout;
14722 timeout = +value;
14723 return request;
14724 },
14725
14726 user: function(value) {
14727 return arguments.length < 1 ? user : (user = value == null ? null : value + "", request);
14728 },
14729
14730 password: function(value) {
14731 return arguments.length < 1 ? password : (password = value == null ? null : value + "", request);
14732 },
14733
14734 // Specify how to convert the response content to a specific type;
14735 // changes the callback value on "load" events.
14736 response: function(value) {
14737 response = value;
14738 return request;
14739 },
14740
14741 // Alias for send("GET", …).
14742 get: function(data, callback) {
14743 return request.send("GET", data, callback);
14744 },
14745
14746 // Alias for send("POST", …).
14747 post: function(data, callback) {
14748 return request.send("POST", data, callback);
14749 },
14750
14751 // If callback is non-null, it will be used for error and load events.
14752 send: function(method, data, callback) {
14753 xhr.open(method, url, true, user, password);
14754 if (mimeType != null && !headers.has("accept")) headers.set("accept", mimeType + ",*/*");
14755 if (xhr.setRequestHeader) headers.each(function(value, name) { xhr.setRequestHeader(name, value); });
14756 if (mimeType != null && xhr.overrideMimeType) xhr.overrideMimeType(mimeType);
14757 if (responseType != null) xhr.responseType = responseType;
14758 if (timeout > 0) xhr.timeout = timeout;
14759 if (callback == null && typeof data === "function") callback = data, data = null;
14760 if (callback != null && callback.length === 1) callback = fixCallback(callback);
14761 if (callback != null) request.on("error", callback).on("load", function(xhr) { callback(null, xhr); });
14762 event.call("beforesend", request, xhr);
14763 xhr.send(data == null ? null : data);
14764 return request;
14765 },
14766
14767 abort: function() {
14768 xhr.abort();
14769 return request;
14770 },
14771
14772 on: function() {
14773 var value = event.on.apply(event, arguments);
14774 return value === event ? request : value;
14775 }
14776 };
14777
14778 if (callback != null) {
14779 if (typeof callback !== "function") throw new Error("invalid callback: " + callback);
14780 return request.get(callback);
14781 }
14782
14783 return request;
14784});
14785
14786function fixCallback(callback) {
14787 return function(error, xhr) {
14788 callback(error == null ? xhr : null);
14789 };
14790}
14791
14792function hasResponse(xhr) {
14793 var type = xhr.responseType;
14794 return type && type !== "text"
14795 ? xhr.response // null on error
14796 : xhr.responseText; // "" on error
14797}
14798
14799
14800/***/ }),
14801
14802/***/ "./node_modules/d3-request/src/text.js":
14803/*!*********************************************!*\
14804 !*** ./node_modules/d3-request/src/text.js ***!
14805 \*********************************************/
14806/*! exports provided: default */
14807/***/ (function(module, __webpack_exports__, __webpack_require__) {
14808
14809"use strict";
14810__webpack_require__.r(__webpack_exports__);
14811/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ "./node_modules/d3-request/src/type.js");
14812
14813
14814/* harmony default export */ __webpack_exports__["default"] = (Object(_type__WEBPACK_IMPORTED_MODULE_0__["default"])("text/plain", function(xhr) {
14815 return xhr.responseText;
14816}));
14817
14818
14819/***/ }),
14820
14821/***/ "./node_modules/d3-request/src/tsv.js":
14822/*!********************************************!*\
14823 !*** ./node_modules/d3-request/src/tsv.js ***!
14824 \********************************************/
14825/*! exports provided: default */
14826/***/ (function(module, __webpack_exports__, __webpack_require__) {
14827
14828"use strict";
14829__webpack_require__.r(__webpack_exports__);
14830/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/index.js");
14831/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-request/src/dsv.js");
14832
14833
14834
14835/* harmony default export */ __webpack_exports__["default"] = (Object(_dsv__WEBPACK_IMPORTED_MODULE_1__["default"])("text/tab-separated-values", d3_dsv__WEBPACK_IMPORTED_MODULE_0__["tsvParse"]));
14836
14837
14838/***/ }),
14839
14840/***/ "./node_modules/d3-request/src/type.js":
14841/*!*********************************************!*\
14842 !*** ./node_modules/d3-request/src/type.js ***!
14843 \*********************************************/
14844/*! exports provided: default */
14845/***/ (function(module, __webpack_exports__, __webpack_require__) {
14846
14847"use strict";
14848__webpack_require__.r(__webpack_exports__);
14849/* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./request */ "./node_modules/d3-request/src/request.js");
14850
14851
14852/* harmony default export */ __webpack_exports__["default"] = (function(defaultMimeType, response) {
14853 return function(url, callback) {
14854 var r = Object(_request__WEBPACK_IMPORTED_MODULE_0__["default"])(url).mimeType(defaultMimeType).response(response);
14855 if (callback != null) {
14856 if (typeof callback !== "function") throw new Error("invalid callback: " + callback);
14857 return r.get(callback);
14858 }
14859 return r;
14860 };
14861});
14862
14863
14864/***/ }),
14865
14866/***/ "./node_modules/d3-request/src/xml.js":
14867/*!********************************************!*\
14868 !*** ./node_modules/d3-request/src/xml.js ***!
14869 \********************************************/
14870/*! exports provided: default */
14871/***/ (function(module, __webpack_exports__, __webpack_require__) {
14872
14873"use strict";
14874__webpack_require__.r(__webpack_exports__);
14875/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ "./node_modules/d3-request/src/type.js");
14876
14877
14878/* harmony default export */ __webpack_exports__["default"] = (Object(_type__WEBPACK_IMPORTED_MODULE_0__["default"])("application/xml", function(xhr) {
14879 var xml = xhr.responseXML;
14880 if (!xml) throw new Error("parse error");
14881 return xml;
14882}));
14883
14884
14885/***/ }),
14886
14887/***/ "./node_modules/d3-scale/index.js":
14888/*!****************************************!*\
14889 !*** ./node_modules/d3-scale/index.js ***!
14890 \****************************************/
14891/*! exports provided: scaleBand, scalePoint, scaleIdentity, scaleLinear, scaleLog, scaleOrdinal, scaleImplicit, scalePow, scaleSqrt, scaleQuantile, scaleQuantize, scaleThreshold, scaleTime, scaleUtc, schemeCategory10, schemeCategory20b, schemeCategory20c, schemeCategory20, interpolateCubehelixDefault, interpolateRainbow, interpolateWarm, interpolateCool, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma, scaleSequential */
14892/***/ (function(module, __webpack_exports__, __webpack_require__) {
14893
14894"use strict";
14895__webpack_require__.r(__webpack_exports__);
14896/* harmony import */ var _src_band__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/band */ "./node_modules/d3-scale/src/band.js");
14897/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleBand", function() { return _src_band__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14898
14899/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePoint", function() { return _src_band__WEBPACK_IMPORTED_MODULE_0__["point"]; });
14900
14901/* harmony import */ var _src_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/identity */ "./node_modules/d3-scale/src/identity.js");
14902/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return _src_identity__WEBPACK_IMPORTED_MODULE_1__["default"]; });
14903
14904/* harmony import */ var _src_linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/linear */ "./node_modules/d3-scale/src/linear.js");
14905/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return _src_linear__WEBPACK_IMPORTED_MODULE_2__["default"]; });
14906
14907/* harmony import */ var _src_log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/log */ "./node_modules/d3-scale/src/log.js");
14908/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLog", function() { return _src_log__WEBPACK_IMPORTED_MODULE_3__["default"]; });
14909
14910/* harmony import */ var _src_ordinal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/ordinal */ "./node_modules/d3-scale/src/ordinal.js");
14911/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return _src_ordinal__WEBPACK_IMPORTED_MODULE_4__["default"]; });
14912
14913/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return _src_ordinal__WEBPACK_IMPORTED_MODULE_4__["implicit"]; });
14914
14915/* harmony import */ var _src_pow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/pow */ "./node_modules/d3-scale/src/pow.js");
14916/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePow", function() { return _src_pow__WEBPACK_IMPORTED_MODULE_5__["default"]; });
14917
14918/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return _src_pow__WEBPACK_IMPORTED_MODULE_5__["sqrt"]; });
14919
14920/* harmony import */ var _src_quantile__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/quantile */ "./node_modules/d3-scale/src/quantile.js");
14921/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return _src_quantile__WEBPACK_IMPORTED_MODULE_6__["default"]; });
14922
14923/* harmony import */ var _src_quantize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/quantize */ "./node_modules/d3-scale/src/quantize.js");
14924/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return _src_quantize__WEBPACK_IMPORTED_MODULE_7__["default"]; });
14925
14926/* harmony import */ var _src_threshold__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/threshold */ "./node_modules/d3-scale/src/threshold.js");
14927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return _src_threshold__WEBPACK_IMPORTED_MODULE_8__["default"]; });
14928
14929/* harmony import */ var _src_time__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/time */ "./node_modules/d3-scale/src/time.js");
14930/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleTime", function() { return _src_time__WEBPACK_IMPORTED_MODULE_9__["default"]; });
14931
14932/* harmony import */ var _src_utcTime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/utcTime */ "./node_modules/d3-scale/src/utcTime.js");
14933/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return _src_utcTime__WEBPACK_IMPORTED_MODULE_10__["default"]; });
14934
14935/* harmony import */ var _src_category10__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/category10 */ "./node_modules/d3-scale/src/category10.js");
14936/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory10", function() { return _src_category10__WEBPACK_IMPORTED_MODULE_11__["default"]; });
14937
14938/* harmony import */ var _src_category20b__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/category20b */ "./node_modules/d3-scale/src/category20b.js");
14939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory20b", function() { return _src_category20b__WEBPACK_IMPORTED_MODULE_12__["default"]; });
14940
14941/* harmony import */ var _src_category20c__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/category20c */ "./node_modules/d3-scale/src/category20c.js");
14942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory20c", function() { return _src_category20c__WEBPACK_IMPORTED_MODULE_13__["default"]; });
14943
14944/* harmony import */ var _src_category20__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/category20 */ "./node_modules/d3-scale/src/category20.js");
14945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory20", function() { return _src_category20__WEBPACK_IMPORTED_MODULE_14__["default"]; });
14946
14947/* harmony import */ var _src_cubehelix__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/cubehelix */ "./node_modules/d3-scale/src/cubehelix.js");
14948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixDefault", function() { return _src_cubehelix__WEBPACK_IMPORTED_MODULE_15__["default"]; });
14949
14950/* harmony import */ var _src_rainbow__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./src/rainbow */ "./node_modules/d3-scale/src/rainbow.js");
14951/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRainbow", function() { return _src_rainbow__WEBPACK_IMPORTED_MODULE_16__["default"]; });
14952
14953/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateWarm", function() { return _src_rainbow__WEBPACK_IMPORTED_MODULE_16__["warm"]; });
14954
14955/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCool", function() { return _src_rainbow__WEBPACK_IMPORTED_MODULE_16__["cool"]; });
14956
14957/* harmony import */ var _src_viridis__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./src/viridis */ "./node_modules/d3-scale/src/viridis.js");
14958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateViridis", function() { return _src_viridis__WEBPACK_IMPORTED_MODULE_17__["default"]; });
14959
14960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateMagma", function() { return _src_viridis__WEBPACK_IMPORTED_MODULE_17__["magma"]; });
14961
14962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateInferno", function() { return _src_viridis__WEBPACK_IMPORTED_MODULE_17__["inferno"]; });
14963
14964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePlasma", function() { return _src_viridis__WEBPACK_IMPORTED_MODULE_17__["plasma"]; });
14965
14966/* harmony import */ var _src_sequential__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./src/sequential */ "./node_modules/d3-scale/src/sequential.js");
14967/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return _src_sequential__WEBPACK_IMPORTED_MODULE_18__["default"]; });
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
14987
14988
14989
14990
14991
14992
14993
14994
14995
14996
14997
14998
14999
15000
15001
15002
15003
15004
15005
15006
15007
15008/***/ }),
15009
15010/***/ "./node_modules/d3-scale/src/array.js":
15011/*!********************************************!*\
15012 !*** ./node_modules/d3-scale/src/array.js ***!
15013 \********************************************/
15014/*! exports provided: map, slice */
15015/***/ (function(module, __webpack_exports__, __webpack_require__) {
15016
15017"use strict";
15018__webpack_require__.r(__webpack_exports__);
15019/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
15020/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
15021var array = Array.prototype;
15022
15023var map = array.map;
15024var slice = array.slice;
15025
15026
15027/***/ }),
15028
15029/***/ "./node_modules/d3-scale/src/band.js":
15030/*!*******************************************!*\
15031 !*** ./node_modules/d3-scale/src/band.js ***!
15032 \*******************************************/
15033/*! exports provided: default, point */
15034/***/ (function(module, __webpack_exports__, __webpack_require__) {
15035
15036"use strict";
15037__webpack_require__.r(__webpack_exports__);
15038/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return band; });
15039/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
15040/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
15041/* harmony import */ var _ordinal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ordinal */ "./node_modules/d3-scale/src/ordinal.js");
15042
15043
15044
15045function band() {
15046 var scale = Object(_ordinal__WEBPACK_IMPORTED_MODULE_1__["default"])().unknown(undefined),
15047 domain = scale.domain,
15048 ordinalRange = scale.range,
15049 range = [0, 1],
15050 step,
15051 bandwidth,
15052 round = false,
15053 paddingInner = 0,
15054 paddingOuter = 0,
15055 align = 0.5;
15056
15057 delete scale.unknown;
15058
15059 function rescale() {
15060 var n = domain().length,
15061 reverse = range[1] < range[0],
15062 start = range[reverse - 0],
15063 stop = range[1 - reverse];
15064 step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
15065 if (round) step = Math.floor(step);
15066 start += (stop - start - step * (n - paddingInner)) * align;
15067 bandwidth = step * (1 - paddingInner);
15068 if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
15069 var values = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n).map(function(i) { return start + step * i; });
15070 return ordinalRange(reverse ? values.reverse() : values);
15071 }
15072
15073 scale.domain = function(_) {
15074 return arguments.length ? (domain(_), rescale()) : domain();
15075 };
15076
15077 scale.range = function(_) {
15078 return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();
15079 };
15080
15081 scale.rangeRound = function(_) {
15082 return range = [+_[0], +_[1]], round = true, rescale();
15083 };
15084
15085 scale.bandwidth = function() {
15086 return bandwidth;
15087 };
15088
15089 scale.step = function() {
15090 return step;
15091 };
15092
15093 scale.round = function(_) {
15094 return arguments.length ? (round = !!_, rescale()) : round;
15095 };
15096
15097 scale.padding = function(_) {
15098 return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;
15099 };
15100
15101 scale.paddingInner = function(_) {
15102 return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;
15103 };
15104
15105 scale.paddingOuter = function(_) {
15106 return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;
15107 };
15108
15109 scale.align = function(_) {
15110 return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
15111 };
15112
15113 scale.copy = function() {
15114 return band()
15115 .domain(domain())
15116 .range(range)
15117 .round(round)
15118 .paddingInner(paddingInner)
15119 .paddingOuter(paddingOuter)
15120 .align(align);
15121 };
15122
15123 return rescale();
15124}
15125
15126function pointish(scale) {
15127 var copy = scale.copy;
15128
15129 scale.padding = scale.paddingOuter;
15130 delete scale.paddingInner;
15131 delete scale.paddingOuter;
15132
15133 scale.copy = function() {
15134 return pointish(copy());
15135 };
15136
15137 return scale;
15138}
15139
15140function point() {
15141 return pointish(band().paddingInner(1));
15142}
15143
15144
15145/***/ }),
15146
15147/***/ "./node_modules/d3-scale/src/category10.js":
15148/*!*************************************************!*\
15149 !*** ./node_modules/d3-scale/src/category10.js ***!
15150 \*************************************************/
15151/*! exports provided: default */
15152/***/ (function(module, __webpack_exports__, __webpack_require__) {
15153
15154"use strict";
15155__webpack_require__.r(__webpack_exports__);
15156/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colors */ "./node_modules/d3-scale/src/colors.js");
15157
15158
15159/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"));
15160
15161
15162/***/ }),
15163
15164/***/ "./node_modules/d3-scale/src/category20.js":
15165/*!*************************************************!*\
15166 !*** ./node_modules/d3-scale/src/category20.js ***!
15167 \*************************************************/
15168/*! exports provided: default */
15169/***/ (function(module, __webpack_exports__, __webpack_require__) {
15170
15171"use strict";
15172__webpack_require__.r(__webpack_exports__);
15173/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colors */ "./node_modules/d3-scale/src/colors.js");
15174
15175
15176/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"));
15177
15178
15179/***/ }),
15180
15181/***/ "./node_modules/d3-scale/src/category20b.js":
15182/*!**************************************************!*\
15183 !*** ./node_modules/d3-scale/src/category20b.js ***!
15184 \**************************************************/
15185/*! exports provided: default */
15186/***/ (function(module, __webpack_exports__, __webpack_require__) {
15187
15188"use strict";
15189__webpack_require__.r(__webpack_exports__);
15190/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colors */ "./node_modules/d3-scale/src/colors.js");
15191
15192
15193/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"));
15194
15195
15196/***/ }),
15197
15198/***/ "./node_modules/d3-scale/src/category20c.js":
15199/*!**************************************************!*\
15200 !*** ./node_modules/d3-scale/src/category20c.js ***!
15201 \**************************************************/
15202/*! exports provided: default */
15203/***/ (function(module, __webpack_exports__, __webpack_require__) {
15204
15205"use strict";
15206__webpack_require__.r(__webpack_exports__);
15207/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colors */ "./node_modules/d3-scale/src/colors.js");
15208
15209
15210/* harmony default export */ __webpack_exports__["default"] = (Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"));
15211
15212
15213/***/ }),
15214
15215/***/ "./node_modules/d3-scale/src/colors.js":
15216/*!*********************************************!*\
15217 !*** ./node_modules/d3-scale/src/colors.js ***!
15218 \*********************************************/
15219/*! exports provided: default */
15220/***/ (function(module, __webpack_exports__, __webpack_require__) {
15221
15222"use strict";
15223__webpack_require__.r(__webpack_exports__);
15224/* harmony default export */ __webpack_exports__["default"] = (function(s) {
15225 return s.match(/.{6}/g).map(function(x) {
15226 return "#" + x;
15227 });
15228});
15229
15230
15231/***/ }),
15232
15233/***/ "./node_modules/d3-scale/src/constant.js":
15234/*!***********************************************!*\
15235 !*** ./node_modules/d3-scale/src/constant.js ***!
15236 \***********************************************/
15237/*! exports provided: default */
15238/***/ (function(module, __webpack_exports__, __webpack_require__) {
15239
15240"use strict";
15241__webpack_require__.r(__webpack_exports__);
15242/* harmony default export */ __webpack_exports__["default"] = (function(x) {
15243 return function() {
15244 return x;
15245 };
15246});
15247
15248
15249/***/ }),
15250
15251/***/ "./node_modules/d3-scale/src/continuous.js":
15252/*!*************************************************!*\
15253 !*** ./node_modules/d3-scale/src/continuous.js ***!
15254 \*************************************************/
15255/*! exports provided: deinterpolateLinear, copy, default */
15256/***/ (function(module, __webpack_exports__, __webpack_require__) {
15257
15258"use strict";
15259__webpack_require__.r(__webpack_exports__);
15260/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deinterpolateLinear", function() { return deinterpolateLinear; });
15261/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copy", function() { return copy; });
15262/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return continuous; });
15263/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
15264/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
15265/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
15266/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-scale/src/constant.js");
15267/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number */ "./node_modules/d3-scale/src/number.js");
15268
15269
15270
15271
15272
15273
15274var unit = [0, 1];
15275
15276function deinterpolateLinear(a, b) {
15277 return (b -= (a = +a))
15278 ? function(x) { return (x - a) / b; }
15279 : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(b);
15280}
15281
15282function deinterpolateClamp(deinterpolate) {
15283 return function(a, b) {
15284 var d = deinterpolate(a = +a, b = +b);
15285 return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };
15286 };
15287}
15288
15289function reinterpolateClamp(reinterpolate) {
15290 return function(a, b) {
15291 var r = reinterpolate(a = +a, b = +b);
15292 return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };
15293 };
15294}
15295
15296function bimap(domain, range, deinterpolate, reinterpolate) {
15297 var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
15298 if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);
15299 else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);
15300 return function(x) { return r0(d0(x)); };
15301}
15302
15303function polymap(domain, range, deinterpolate, reinterpolate) {
15304 var j = Math.min(domain.length, range.length) - 1,
15305 d = new Array(j),
15306 r = new Array(j),
15307 i = -1;
15308
15309 // Reverse descending domains.
15310 if (domain[j] < domain[0]) {
15311 domain = domain.slice().reverse();
15312 range = range.slice().reverse();
15313 }
15314
15315 while (++i < j) {
15316 d[i] = deinterpolate(domain[i], domain[i + 1]);
15317 r[i] = reinterpolate(range[i], range[i + 1]);
15318 }
15319
15320 return function(x) {
15321 var i = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 1, j) - 1;
15322 return r[i](d[i](x));
15323 };
15324}
15325
15326function copy(source, target) {
15327 return target
15328 .domain(source.domain())
15329 .range(source.range())
15330 .interpolate(source.interpolate())
15331 .clamp(source.clamp());
15332}
15333
15334// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
15335// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].
15336function continuous(deinterpolate, reinterpolate) {
15337 var domain = unit,
15338 range = unit,
15339 interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolate"],
15340 clamp = false,
15341 piecewise,
15342 output,
15343 input;
15344
15345 function rescale() {
15346 piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;
15347 output = input = null;
15348 return scale;
15349 }
15350
15351 function scale(x) {
15352 return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);
15353 }
15354
15355 scale.invert = function(y) {
15356 return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);
15357 };
15358
15359 scale.domain = function(_) {
15360 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_2__["map"].call(_, _number__WEBPACK_IMPORTED_MODULE_4__["default"]), rescale()) : domain.slice();
15361 };
15362
15363 scale.range = function(_) {
15364 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_2__["slice"].call(_), rescale()) : range.slice();
15365 };
15366
15367 scale.rangeRound = function(_) {
15368 return range = _array__WEBPACK_IMPORTED_MODULE_2__["slice"].call(_), interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRound"], rescale();
15369 };
15370
15371 scale.clamp = function(_) {
15372 return arguments.length ? (clamp = !!_, rescale()) : clamp;
15373 };
15374
15375 scale.interpolate = function(_) {
15376 return arguments.length ? (interpolate = _, rescale()) : interpolate;
15377 };
15378
15379 return rescale();
15380}
15381
15382
15383/***/ }),
15384
15385/***/ "./node_modules/d3-scale/src/cubehelix.js":
15386/*!************************************************!*\
15387 !*** ./node_modules/d3-scale/src/cubehelix.js ***!
15388 \************************************************/
15389/*! exports provided: default */
15390/***/ (function(module, __webpack_exports__, __webpack_require__) {
15391
15392"use strict";
15393__webpack_require__.r(__webpack_exports__);
15394/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
15395/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
15396
15397
15398
15399/* 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)));
15400
15401
15402/***/ }),
15403
15404/***/ "./node_modules/d3-scale/src/identity.js":
15405/*!***********************************************!*\
15406 !*** ./node_modules/d3-scale/src/identity.js ***!
15407 \***********************************************/
15408/*! exports provided: default */
15409/***/ (function(module, __webpack_exports__, __webpack_require__) {
15410
15411"use strict";
15412__webpack_require__.r(__webpack_exports__);
15413/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return identity; });
15414/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
15415/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
15416/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./number */ "./node_modules/d3-scale/src/number.js");
15417
15418
15419
15420
15421function identity() {
15422 var domain = [0, 1];
15423
15424 function scale(x) {
15425 return +x;
15426 }
15427
15428 scale.invert = scale;
15429
15430 scale.domain = scale.range = function(_) {
15431 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_0__["map"].call(_, _number__WEBPACK_IMPORTED_MODULE_2__["default"]), scale) : domain.slice();
15432 };
15433
15434 scale.copy = function() {
15435 return identity().domain(domain);
15436 };
15437
15438 return Object(_linear__WEBPACK_IMPORTED_MODULE_1__["linearish"])(scale);
15439}
15440
15441
15442/***/ }),
15443
15444/***/ "./node_modules/d3-scale/src/linear.js":
15445/*!*********************************************!*\
15446 !*** ./node_modules/d3-scale/src/linear.js ***!
15447 \*********************************************/
15448/*! exports provided: linearish, default */
15449/***/ (function(module, __webpack_exports__, __webpack_require__) {
15450
15451"use strict";
15452__webpack_require__.r(__webpack_exports__);
15453/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linearish", function() { return linearish; });
15454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return linear; });
15455/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
15456/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
15457/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
15458/* harmony import */ var _tickFormat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tickFormat */ "./node_modules/d3-scale/src/tickFormat.js");
15459
15460
15461
15462
15463
15464function linearish(scale) {
15465 var domain = scale.domain;
15466
15467 scale.ticks = function(count) {
15468 var d = domain();
15469 return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["ticks"])(d[0], d[d.length - 1], count == null ? 10 : count);
15470 };
15471
15472 scale.tickFormat = function(count, specifier) {
15473 return Object(_tickFormat__WEBPACK_IMPORTED_MODULE_3__["default"])(domain(), count, specifier);
15474 };
15475
15476 scale.nice = function(count) {
15477 if (count == null) count = 10;
15478
15479 var d = domain(),
15480 i0 = 0,
15481 i1 = d.length - 1,
15482 start = d[i0],
15483 stop = d[i1],
15484 step;
15485
15486 if (stop < start) {
15487 step = start, start = stop, stop = step;
15488 step = i0, i0 = i1, i1 = step;
15489 }
15490
15491 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
15492
15493 if (step > 0) {
15494 start = Math.floor(start / step) * step;
15495 stop = Math.ceil(stop / step) * step;
15496 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
15497 } else if (step < 0) {
15498 start = Math.ceil(start * step) / step;
15499 stop = Math.floor(stop * step) / step;
15500 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
15501 }
15502
15503 if (step > 0) {
15504 d[i0] = Math.floor(start / step) * step;
15505 d[i1] = Math.ceil(stop / step) * step;
15506 domain(d);
15507 } else if (step < 0) {
15508 d[i0] = Math.ceil(start * step) / step;
15509 d[i1] = Math.floor(stop * step) / step;
15510 domain(d);
15511 }
15512
15513 return scale;
15514 };
15515
15516 return scale;
15517}
15518
15519function linear() {
15520 var scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_2__["default"])(_continuous__WEBPACK_IMPORTED_MODULE_2__["deinterpolateLinear"], d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateNumber"]);
15521
15522 scale.copy = function() {
15523 return Object(_continuous__WEBPACK_IMPORTED_MODULE_2__["copy"])(scale, linear());
15524 };
15525
15526 return linearish(scale);
15527}
15528
15529
15530/***/ }),
15531
15532/***/ "./node_modules/d3-scale/src/log.js":
15533/*!******************************************!*\
15534 !*** ./node_modules/d3-scale/src/log.js ***!
15535 \******************************************/
15536/*! exports provided: default */
15537/***/ (function(module, __webpack_exports__, __webpack_require__) {
15538
15539"use strict";
15540__webpack_require__.r(__webpack_exports__);
15541/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return log; });
15542/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
15543/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/index.js");
15544/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-scale/src/constant.js");
15545/* harmony import */ var _nice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nice */ "./node_modules/d3-scale/src/nice.js");
15546/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
15547
15548
15549
15550
15551
15552
15553function deinterpolate(a, b) {
15554 return (b = Math.log(b / a))
15555 ? function(x) { return Math.log(x / a) / b; }
15556 : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(b);
15557}
15558
15559function reinterpolate(a, b) {
15560 return a < 0
15561 ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }
15562 : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };
15563}
15564
15565function pow10(x) {
15566 return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
15567}
15568
15569function powp(base) {
15570 return base === 10 ? pow10
15571 : base === Math.E ? Math.exp
15572 : function(x) { return Math.pow(base, x); };
15573}
15574
15575function logp(base) {
15576 return base === Math.E ? Math.log
15577 : base === 10 && Math.log10
15578 || base === 2 && Math.log2
15579 || (base = Math.log(base), function(x) { return Math.log(x) / base; });
15580}
15581
15582function reflect(f) {
15583 return function(x) {
15584 return -f(-x);
15585 };
15586}
15587
15588function log() {
15589 var scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_4__["default"])(deinterpolate, reinterpolate).domain([1, 10]),
15590 domain = scale.domain,
15591 base = 10,
15592 logs = logp(10),
15593 pows = powp(10);
15594
15595 function rescale() {
15596 logs = logp(base), pows = powp(base);
15597 if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);
15598 return scale;
15599 }
15600
15601 scale.base = function(_) {
15602 return arguments.length ? (base = +_, rescale()) : base;
15603 };
15604
15605 scale.domain = function(_) {
15606 return arguments.length ? (domain(_), rescale()) : domain();
15607 };
15608
15609 scale.ticks = function(count) {
15610 var d = domain(),
15611 u = d[0],
15612 v = d[d.length - 1],
15613 r;
15614
15615 if (r = v < u) i = u, u = v, v = i;
15616
15617 var i = logs(u),
15618 j = logs(v),
15619 p,
15620 k,
15621 t,
15622 n = count == null ? 10 : +count,
15623 z = [];
15624
15625 if (!(base % 1) && j - i < n) {
15626 i = Math.round(i) - 1, j = Math.round(j) + 1;
15627 if (u > 0) for (; i < j; ++i) {
15628 for (k = 1, p = pows(i); k < base; ++k) {
15629 t = p * k;
15630 if (t < u) continue;
15631 if (t > v) break;
15632 z.push(t);
15633 }
15634 } else for (; i < j; ++i) {
15635 for (k = base - 1, p = pows(i); k >= 1; --k) {
15636 t = p * k;
15637 if (t < u) continue;
15638 if (t > v) break;
15639 z.push(t);
15640 }
15641 }
15642 } else {
15643 z = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["ticks"])(i, j, Math.min(j - i, n)).map(pows);
15644 }
15645
15646 return r ? z.reverse() : z;
15647 };
15648
15649 scale.tickFormat = function(count, specifier) {
15650 if (specifier == null) specifier = base === 10 ? ".0e" : ",";
15651 if (typeof specifier !== "function") specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["format"])(specifier);
15652 if (count === Infinity) return specifier;
15653 if (count == null) count = 10;
15654 var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
15655 return function(d) {
15656 var i = d / pows(Math.round(logs(d)));
15657 if (i * base < base - 0.5) i *= base;
15658 return i <= k ? specifier(d) : "";
15659 };
15660 };
15661
15662 scale.nice = function() {
15663 return domain(Object(_nice__WEBPACK_IMPORTED_MODULE_3__["default"])(domain(), {
15664 floor: function(x) { return pows(Math.floor(logs(x))); },
15665 ceil: function(x) { return pows(Math.ceil(logs(x))); }
15666 }));
15667 };
15668
15669 scale.copy = function() {
15670 return Object(_continuous__WEBPACK_IMPORTED_MODULE_4__["copy"])(scale, log().base(base));
15671 };
15672
15673 return scale;
15674}
15675
15676
15677/***/ }),
15678
15679/***/ "./node_modules/d3-scale/src/nice.js":
15680/*!*******************************************!*\
15681 !*** ./node_modules/d3-scale/src/nice.js ***!
15682 \*******************************************/
15683/*! exports provided: default */
15684/***/ (function(module, __webpack_exports__, __webpack_require__) {
15685
15686"use strict";
15687__webpack_require__.r(__webpack_exports__);
15688/* harmony default export */ __webpack_exports__["default"] = (function(domain, interval) {
15689 domain = domain.slice();
15690
15691 var i0 = 0,
15692 i1 = domain.length - 1,
15693 x0 = domain[i0],
15694 x1 = domain[i1],
15695 t;
15696
15697 if (x1 < x0) {
15698 t = i0, i0 = i1, i1 = t;
15699 t = x0, x0 = x1, x1 = t;
15700 }
15701
15702 domain[i0] = interval.floor(x0);
15703 domain[i1] = interval.ceil(x1);
15704 return domain;
15705});
15706
15707
15708/***/ }),
15709
15710/***/ "./node_modules/d3-scale/src/number.js":
15711/*!*********************************************!*\
15712 !*** ./node_modules/d3-scale/src/number.js ***!
15713 \*********************************************/
15714/*! exports provided: default */
15715/***/ (function(module, __webpack_exports__, __webpack_require__) {
15716
15717"use strict";
15718__webpack_require__.r(__webpack_exports__);
15719/* harmony default export */ __webpack_exports__["default"] = (function(x) {
15720 return +x;
15721});
15722
15723
15724/***/ }),
15725
15726/***/ "./node_modules/d3-scale/src/ordinal.js":
15727/*!**********************************************!*\
15728 !*** ./node_modules/d3-scale/src/ordinal.js ***!
15729 \**********************************************/
15730/*! exports provided: implicit, default */
15731/***/ (function(module, __webpack_exports__, __webpack_require__) {
15732
15733"use strict";
15734__webpack_require__.r(__webpack_exports__);
15735/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "implicit", function() { return implicit; });
15736/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ordinal; });
15737/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/index.js");
15738/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
15739
15740
15741
15742var implicit = {name: "implicit"};
15743
15744function ordinal(range) {
15745 var index = Object(d3_collection__WEBPACK_IMPORTED_MODULE_0__["map"])(),
15746 domain = [],
15747 unknown = implicit;
15748
15749 range = range == null ? [] : _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(range);
15750
15751 function scale(d) {
15752 var key = d + "", i = index.get(key);
15753 if (!i) {
15754 if (unknown !== implicit) return unknown;
15755 index.set(key, i = domain.push(d));
15756 }
15757 return range[(i - 1) % range.length];
15758 }
15759
15760 scale.domain = function(_) {
15761 if (!arguments.length) return domain.slice();
15762 domain = [], index = Object(d3_collection__WEBPACK_IMPORTED_MODULE_0__["map"])();
15763 var i = -1, n = _.length, d, key;
15764 while (++i < n) if (!index.has(key = (d = _[i]) + "")) index.set(key, domain.push(d));
15765 return scale;
15766 };
15767
15768 scale.range = function(_) {
15769 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), scale) : range.slice();
15770 };
15771
15772 scale.unknown = function(_) {
15773 return arguments.length ? (unknown = _, scale) : unknown;
15774 };
15775
15776 scale.copy = function() {
15777 return ordinal()
15778 .domain(domain)
15779 .range(range)
15780 .unknown(unknown);
15781 };
15782
15783 return scale;
15784}
15785
15786
15787/***/ }),
15788
15789/***/ "./node_modules/d3-scale/src/pow.js":
15790/*!******************************************!*\
15791 !*** ./node_modules/d3-scale/src/pow.js ***!
15792 \******************************************/
15793/*! exports provided: default, sqrt */
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__, "default", function() { return pow; });
15799/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
15800/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-scale/src/constant.js");
15801/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
15802/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
15803
15804
15805
15806
15807function raise(x, exponent) {
15808 return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
15809}
15810
15811function pow() {
15812 var exponent = 1,
15813 scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_2__["default"])(deinterpolate, reinterpolate),
15814 domain = scale.domain;
15815
15816 function deinterpolate(a, b) {
15817 return (b = raise(b, exponent) - (a = raise(a, exponent)))
15818 ? function(x) { return (raise(x, exponent) - a) / b; }
15819 : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(b);
15820 }
15821
15822 function reinterpolate(a, b) {
15823 b = raise(b, exponent) - (a = raise(a, exponent));
15824 return function(t) { return raise(a + b * t, 1 / exponent); };
15825 }
15826
15827 scale.exponent = function(_) {
15828 return arguments.length ? (exponent = +_, domain(domain())) : exponent;
15829 };
15830
15831 scale.copy = function() {
15832 return Object(_continuous__WEBPACK_IMPORTED_MODULE_2__["copy"])(scale, pow().exponent(exponent));
15833 };
15834
15835 return Object(_linear__WEBPACK_IMPORTED_MODULE_1__["linearish"])(scale);
15836}
15837
15838function sqrt() {
15839 return pow().exponent(0.5);
15840}
15841
15842
15843/***/ }),
15844
15845/***/ "./node_modules/d3-scale/src/quantile.js":
15846/*!***********************************************!*\
15847 !*** ./node_modules/d3-scale/src/quantile.js ***!
15848 \***********************************************/
15849/*! exports provided: default */
15850/***/ (function(module, __webpack_exports__, __webpack_require__) {
15851
15852"use strict";
15853__webpack_require__.r(__webpack_exports__);
15854/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quantile; });
15855/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
15856/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
15857
15858
15859
15860function quantile() {
15861 var domain = [],
15862 range = [],
15863 thresholds = [];
15864
15865 function rescale() {
15866 var i = 0, n = Math.max(1, range.length);
15867 thresholds = new Array(n - 1);
15868 while (++i < n) thresholds[i - 1] = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["quantile"])(domain, i / n);
15869 return scale;
15870 }
15871
15872 function scale(x) {
15873 if (!isNaN(x = +x)) return range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(thresholds, x)];
15874 }
15875
15876 scale.invertExtent = function(y) {
15877 var i = range.indexOf(y);
15878 return i < 0 ? [NaN, NaN] : [
15879 i > 0 ? thresholds[i - 1] : domain[0],
15880 i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
15881 ];
15882 };
15883
15884 scale.domain = function(_) {
15885 if (!arguments.length) return domain.slice();
15886 domain = [];
15887 for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);
15888 domain.sort(d3_array__WEBPACK_IMPORTED_MODULE_0__["ascending"]);
15889 return rescale();
15890 };
15891
15892 scale.range = function(_) {
15893 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), rescale()) : range.slice();
15894 };
15895
15896 scale.quantiles = function() {
15897 return thresholds.slice();
15898 };
15899
15900 scale.copy = function() {
15901 return quantile()
15902 .domain(domain)
15903 .range(range);
15904 };
15905
15906 return scale;
15907}
15908
15909
15910/***/ }),
15911
15912/***/ "./node_modules/d3-scale/src/quantize.js":
15913/*!***********************************************!*\
15914 !*** ./node_modules/d3-scale/src/quantize.js ***!
15915 \***********************************************/
15916/*! exports provided: default */
15917/***/ (function(module, __webpack_exports__, __webpack_require__) {
15918
15919"use strict";
15920__webpack_require__.r(__webpack_exports__);
15921/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quantize; });
15922/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
15923/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
15924/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
15925
15926
15927
15928
15929function quantize() {
15930 var x0 = 0,
15931 x1 = 1,
15932 n = 1,
15933 domain = [0.5],
15934 range = [0, 1];
15935
15936 function scale(x) {
15937 if (x <= x) return range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 0, n)];
15938 }
15939
15940 function rescale() {
15941 var i = -1;
15942 domain = new Array(n);
15943 while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
15944 return scale;
15945 }
15946
15947 scale.domain = function(_) {
15948 return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];
15949 };
15950
15951 scale.range = function(_) {
15952 return arguments.length ? (n = (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_)).length - 1, rescale()) : range.slice();
15953 };
15954
15955 scale.invertExtent = function(y) {
15956 var i = range.indexOf(y);
15957 return i < 0 ? [NaN, NaN]
15958 : i < 1 ? [x0, domain[0]]
15959 : i >= n ? [domain[n - 1], x1]
15960 : [domain[i - 1], domain[i]];
15961 };
15962
15963 scale.copy = function() {
15964 return quantize()
15965 .domain([x0, x1])
15966 .range(range);
15967 };
15968
15969 return Object(_linear__WEBPACK_IMPORTED_MODULE_2__["linearish"])(scale);
15970}
15971
15972
15973/***/ }),
15974
15975/***/ "./node_modules/d3-scale/src/rainbow.js":
15976/*!**********************************************!*\
15977 !*** ./node_modules/d3-scale/src/rainbow.js ***!
15978 \**********************************************/
15979/*! exports provided: warm, cool, default */
15980/***/ (function(module, __webpack_exports__, __webpack_require__) {
15981
15982"use strict";
15983__webpack_require__.r(__webpack_exports__);
15984/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warm", function() { return warm; });
15985/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cool", function() { return cool; });
15986/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
15987/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
15988
15989
15990
15991var 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));
15992
15993var 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));
15994
15995var rainbow = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])();
15996
15997/* harmony default export */ __webpack_exports__["default"] = (function(t) {
15998 if (t < 0 || t > 1) t -= Math.floor(t);
15999 var ts = Math.abs(t - 0.5);
16000 rainbow.h = 360 * t - 100;
16001 rainbow.s = 1.5 - 1.5 * ts;
16002 rainbow.l = 0.8 - 0.9 * ts;
16003 return rainbow + "";
16004});
16005
16006
16007/***/ }),
16008
16009/***/ "./node_modules/d3-scale/src/sequential.js":
16010/*!*************************************************!*\
16011 !*** ./node_modules/d3-scale/src/sequential.js ***!
16012 \*************************************************/
16013/*! exports provided: default */
16014/***/ (function(module, __webpack_exports__, __webpack_require__) {
16015
16016"use strict";
16017__webpack_require__.r(__webpack_exports__);
16018/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return sequential; });
16019/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
16020
16021
16022function sequential(interpolator) {
16023 var x0 = 0,
16024 x1 = 1,
16025 clamp = false;
16026
16027 function scale(x) {
16028 var t = (x - x0) / (x1 - x0);
16029 return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);
16030 }
16031
16032 scale.domain = function(_) {
16033 return arguments.length ? (x0 = +_[0], x1 = +_[1], scale) : [x0, x1];
16034 };
16035
16036 scale.clamp = function(_) {
16037 return arguments.length ? (clamp = !!_, scale) : clamp;
16038 };
16039
16040 scale.interpolator = function(_) {
16041 return arguments.length ? (interpolator = _, scale) : interpolator;
16042 };
16043
16044 scale.copy = function() {
16045 return sequential(interpolator).domain([x0, x1]).clamp(clamp);
16046 };
16047
16048 return Object(_linear__WEBPACK_IMPORTED_MODULE_0__["linearish"])(scale);
16049}
16050
16051
16052/***/ }),
16053
16054/***/ "./node_modules/d3-scale/src/threshold.js":
16055/*!************************************************!*\
16056 !*** ./node_modules/d3-scale/src/threshold.js ***!
16057 \************************************************/
16058/*! exports provided: default */
16059/***/ (function(module, __webpack_exports__, __webpack_require__) {
16060
16061"use strict";
16062__webpack_require__.r(__webpack_exports__);
16063/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return threshold; });
16064/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
16065/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
16066
16067
16068
16069function threshold() {
16070 var domain = [0.5],
16071 range = [0, 1],
16072 n = 1;
16073
16074 function scale(x) {
16075 if (x <= x) return range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 0, n)];
16076 }
16077
16078 scale.domain = function(_) {
16079 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
16080 };
16081
16082 scale.range = function(_) {
16083 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
16084 };
16085
16086 scale.invertExtent = function(y) {
16087 var i = range.indexOf(y);
16088 return [domain[i - 1], domain[i]];
16089 };
16090
16091 scale.copy = function() {
16092 return threshold()
16093 .domain(domain)
16094 .range(range);
16095 };
16096
16097 return scale;
16098}
16099
16100
16101/***/ }),
16102
16103/***/ "./node_modules/d3-scale/src/tickFormat.js":
16104/*!*************************************************!*\
16105 !*** ./node_modules/d3-scale/src/tickFormat.js ***!
16106 \*************************************************/
16107/*! exports provided: default */
16108/***/ (function(module, __webpack_exports__, __webpack_require__) {
16109
16110"use strict";
16111__webpack_require__.r(__webpack_exports__);
16112/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
16113/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/index.js");
16114
16115
16116
16117/* harmony default export */ __webpack_exports__["default"] = (function(domain, count, specifier) {
16118 var start = domain[0],
16119 stop = domain[domain.length - 1],
16120 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start, stop, count == null ? 10 : count),
16121 precision;
16122 specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["formatSpecifier"])(specifier == null ? ",f" : specifier);
16123 switch (specifier.type) {
16124 case "s": {
16125 var value = Math.max(Math.abs(start), Math.abs(stop));
16126 if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["precisionPrefix"])(step, value))) specifier.precision = precision;
16127 return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["formatPrefix"])(specifier, value);
16128 }
16129 case "":
16130 case "e":
16131 case "g":
16132 case "p":
16133 case "r": {
16134 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");
16135 break;
16136 }
16137 case "f":
16138 case "%": {
16139 if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["precisionFixed"])(step))) specifier.precision = precision - (specifier.type === "%") * 2;
16140 break;
16141 }
16142 }
16143 return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["format"])(specifier);
16144});
16145
16146
16147/***/ }),
16148
16149/***/ "./node_modules/d3-scale/src/time.js":
16150/*!*******************************************!*\
16151 !*** ./node_modules/d3-scale/src/time.js ***!
16152 \*******************************************/
16153/*! exports provided: calendar, default */
16154/***/ (function(module, __webpack_exports__, __webpack_require__) {
16155
16156"use strict";
16157__webpack_require__.r(__webpack_exports__);
16158/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calendar", function() { return calendar; });
16159/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
16160/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
16161/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/index.js");
16162/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/index.js");
16163/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
16164/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
16165/* harmony import */ var _nice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./nice */ "./node_modules/d3-scale/src/nice.js");
16166
16167
16168
16169
16170
16171
16172
16173
16174var durationSecond = 1000,
16175 durationMinute = durationSecond * 60,
16176 durationHour = durationMinute * 60,
16177 durationDay = durationHour * 24,
16178 durationWeek = durationDay * 7,
16179 durationMonth = durationDay * 30,
16180 durationYear = durationDay * 365;
16181
16182function date(t) {
16183 return new Date(t);
16184}
16185
16186function number(t) {
16187 return t instanceof Date ? +t : +new Date(+t);
16188}
16189
16190function calendar(year, month, week, day, hour, minute, second, millisecond, format) {
16191 var scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_5__["default"])(_continuous__WEBPACK_IMPORTED_MODULE_5__["deinterpolateLinear"], d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateNumber"]),
16192 invert = scale.invert,
16193 domain = scale.domain;
16194
16195 var formatMillisecond = format(".%L"),
16196 formatSecond = format(":%S"),
16197 formatMinute = format("%I:%M"),
16198 formatHour = format("%I %p"),
16199 formatDay = format("%a %d"),
16200 formatWeek = format("%b %d"),
16201 formatMonth = format("%B"),
16202 formatYear = format("%Y");
16203
16204 var tickIntervals = [
16205 [second, 1, durationSecond],
16206 [second, 5, 5 * durationSecond],
16207 [second, 15, 15 * durationSecond],
16208 [second, 30, 30 * durationSecond],
16209 [minute, 1, durationMinute],
16210 [minute, 5, 5 * durationMinute],
16211 [minute, 15, 15 * durationMinute],
16212 [minute, 30, 30 * durationMinute],
16213 [ hour, 1, durationHour ],
16214 [ hour, 3, 3 * durationHour ],
16215 [ hour, 6, 6 * durationHour ],
16216 [ hour, 12, 12 * durationHour ],
16217 [ day, 1, durationDay ],
16218 [ day, 2, 2 * durationDay ],
16219 [ week, 1, durationWeek ],
16220 [ month, 1, durationMonth ],
16221 [ month, 3, 3 * durationMonth ],
16222 [ year, 1, durationYear ]
16223 ];
16224
16225 function tickFormat(date) {
16226 return (second(date) < date ? formatMillisecond
16227 : minute(date) < date ? formatSecond
16228 : hour(date) < date ? formatMinute
16229 : day(date) < date ? formatHour
16230 : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
16231 : year(date) < date ? formatMonth
16232 : formatYear)(date);
16233 }
16234
16235 function tickInterval(interval, start, stop, step) {
16236 if (interval == null) interval = 10;
16237
16238 // If a desired tick count is specified, pick a reasonable tick interval
16239 // based on the extent of the domain and a rough estimate of tick size.
16240 // Otherwise, assume interval is already a time interval and use it.
16241 if (typeof interval === "number") {
16242 var target = Math.abs(stop - start) / interval,
16243 i = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisector"])(function(i) { return i[2]; }).right(tickIntervals, target);
16244 if (i === tickIntervals.length) {
16245 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start / durationYear, stop / durationYear, interval);
16246 interval = year;
16247 } else if (i) {
16248 i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
16249 step = i[1];
16250 interval = i[0];
16251 } else {
16252 step = Math.max(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start, stop, interval), 1);
16253 interval = millisecond;
16254 }
16255 }
16256
16257 return step == null ? interval : interval.every(step);
16258 }
16259
16260 scale.invert = function(y) {
16261 return new Date(invert(y));
16262 };
16263
16264 scale.domain = function(_) {
16265 return arguments.length ? domain(_array__WEBPACK_IMPORTED_MODULE_4__["map"].call(_, number)) : domain().map(date);
16266 };
16267
16268 scale.ticks = function(interval, step) {
16269 var d = domain(),
16270 t0 = d[0],
16271 t1 = d[d.length - 1],
16272 r = t1 < t0,
16273 t;
16274 if (r) t = t0, t0 = t1, t1 = t;
16275 t = tickInterval(interval, t0, t1, step);
16276 t = t ? t.range(t0, t1 + 1) : []; // inclusive stop
16277 return r ? t.reverse() : t;
16278 };
16279
16280 scale.tickFormat = function(count, specifier) {
16281 return specifier == null ? tickFormat : format(specifier);
16282 };
16283
16284 scale.nice = function(interval, step) {
16285 var d = domain();
16286 return (interval = tickInterval(interval, d[0], d[d.length - 1], step))
16287 ? domain(Object(_nice__WEBPACK_IMPORTED_MODULE_6__["default"])(d, interval))
16288 : scale;
16289 };
16290
16291 scale.copy = function() {
16292 return Object(_continuous__WEBPACK_IMPORTED_MODULE_5__["copy"])(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));
16293 };
16294
16295 return scale;
16296}
16297
16298/* harmony default export */ __webpack_exports__["default"] = (function() {
16299 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)]);
16300});
16301
16302
16303/***/ }),
16304
16305/***/ "./node_modules/d3-scale/src/utcTime.js":
16306/*!**********************************************!*\
16307 !*** ./node_modules/d3-scale/src/utcTime.js ***!
16308 \**********************************************/
16309/*! exports provided: default */
16310/***/ (function(module, __webpack_exports__, __webpack_require__) {
16311
16312"use strict";
16313__webpack_require__.r(__webpack_exports__);
16314/* harmony import */ var _time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./time */ "./node_modules/d3-scale/src/time.js");
16315/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/index.js");
16316/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/index.js");
16317
16318
16319
16320
16321/* harmony default export */ __webpack_exports__["default"] = (function() {
16322 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)]);
16323});
16324
16325
16326/***/ }),
16327
16328/***/ "./node_modules/d3-scale/src/viridis.js":
16329/*!**********************************************!*\
16330 !*** ./node_modules/d3-scale/src/viridis.js ***!
16331 \**********************************************/
16332/*! exports provided: default, magma, inferno, plasma */
16333/***/ (function(module, __webpack_exports__, __webpack_require__) {
16334
16335"use strict";
16336__webpack_require__.r(__webpack_exports__);
16337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "magma", function() { return magma; });
16338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inferno", function() { return inferno; });
16339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "plasma", function() { return plasma; });
16340/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colors */ "./node_modules/d3-scale/src/colors.js");
16341
16342
16343function ramp(range) {
16344 var n = range.length;
16345 return function(t) {
16346 return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
16347 };
16348}
16349
16350/* harmony default export */ __webpack_exports__["default"] = (ramp(Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")));
16351
16352var magma = ramp(Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));
16353
16354var inferno = ramp(Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));
16355
16356var plasma = ramp(Object(_colors__WEBPACK_IMPORTED_MODULE_0__["default"])("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));
16357
16358
16359/***/ }),
16360
16361/***/ "./node_modules/d3-selection/index.js":
16362/*!********************************************!*\
16363 !*** ./node_modules/d3-selection/index.js ***!
16364 \********************************************/
16365/*! exports provided: create, creator, local, matcher, mouse, namespace, namespaces, clientPoint, select, selectAll, selection, selector, selectorAll, style, touch, touches, window, event, customEvent */
16366/***/ (function(module, __webpack_exports__, __webpack_require__) {
16367
16368"use strict";
16369__webpack_require__.r(__webpack_exports__);
16370/* harmony import */ var _src_create__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/create */ "./node_modules/d3-selection/src/create.js");
16371/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "create", function() { return _src_create__WEBPACK_IMPORTED_MODULE_0__["default"]; });
16372
16373/* harmony import */ var _src_creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/creator */ "./node_modules/d3-selection/src/creator.js");
16374/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "creator", function() { return _src_creator__WEBPACK_IMPORTED_MODULE_1__["default"]; });
16375
16376/* harmony import */ var _src_local__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/local */ "./node_modules/d3-selection/src/local.js");
16377/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "local", function() { return _src_local__WEBPACK_IMPORTED_MODULE_2__["default"]; });
16378
16379/* harmony import */ var _src_matcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/matcher */ "./node_modules/d3-selection/src/matcher.js");
16380/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return _src_matcher__WEBPACK_IMPORTED_MODULE_3__["default"]; });
16381
16382/* harmony import */ var _src_mouse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/mouse */ "./node_modules/d3-selection/src/mouse.js");
16383/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mouse", function() { return _src_mouse__WEBPACK_IMPORTED_MODULE_4__["default"]; });
16384
16385/* harmony import */ var _src_namespace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/namespace */ "./node_modules/d3-selection/src/namespace.js");
16386/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return _src_namespace__WEBPACK_IMPORTED_MODULE_5__["default"]; });
16387
16388/* harmony import */ var _src_namespaces__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/namespaces */ "./node_modules/d3-selection/src/namespaces.js");
16389/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespaces", function() { return _src_namespaces__WEBPACK_IMPORTED_MODULE_6__["default"]; });
16390
16391/* harmony import */ var _src_point__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/point */ "./node_modules/d3-selection/src/point.js");
16392/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clientPoint", function() { return _src_point__WEBPACK_IMPORTED_MODULE_7__["default"]; });
16393
16394/* harmony import */ var _src_select__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/select */ "./node_modules/d3-selection/src/select.js");
16395/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "select", function() { return _src_select__WEBPACK_IMPORTED_MODULE_8__["default"]; });
16396
16397/* harmony import */ var _src_selectAll__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/selectAll */ "./node_modules/d3-selection/src/selectAll.js");
16398/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectAll", function() { return _src_selectAll__WEBPACK_IMPORTED_MODULE_9__["default"]; });
16399
16400/* harmony import */ var _src_selection_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/selection/index */ "./node_modules/d3-selection/src/selection/index.js");
16401/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selection", function() { return _src_selection_index__WEBPACK_IMPORTED_MODULE_10__["default"]; });
16402
16403/* harmony import */ var _src_selector__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/selector */ "./node_modules/d3-selection/src/selector.js");
16404/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selector", function() { return _src_selector__WEBPACK_IMPORTED_MODULE_11__["default"]; });
16405
16406/* harmony import */ var _src_selectorAll__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/selectorAll */ "./node_modules/d3-selection/src/selectorAll.js");
16407/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectorAll", function() { return _src_selectorAll__WEBPACK_IMPORTED_MODULE_12__["default"]; });
16408
16409/* harmony import */ var _src_selection_style__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/selection/style */ "./node_modules/d3-selection/src/selection/style.js");
16410/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "style", function() { return _src_selection_style__WEBPACK_IMPORTED_MODULE_13__["styleValue"]; });
16411
16412/* harmony import */ var _src_touch__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/touch */ "./node_modules/d3-selection/src/touch.js");
16413/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touch", function() { return _src_touch__WEBPACK_IMPORTED_MODULE_14__["default"]; });
16414
16415/* harmony import */ var _src_touches__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/touches */ "./node_modules/d3-selection/src/touches.js");
16416/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touches", function() { return _src_touches__WEBPACK_IMPORTED_MODULE_15__["default"]; });
16417
16418/* harmony import */ var _src_window__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./src/window */ "./node_modules/d3-selection/src/window.js");
16419/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _src_window__WEBPACK_IMPORTED_MODULE_16__["default"]; });
16420
16421/* harmony import */ var _src_selection_on__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./src/selection/on */ "./node_modules/d3-selection/src/selection/on.js");
16422/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "event", function() { return _src_selection_on__WEBPACK_IMPORTED_MODULE_17__["event"]; });
16423
16424/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return _src_selection_on__WEBPACK_IMPORTED_MODULE_17__["customEvent"]; });
16425
16426
16427
16428
16429
16430
16431
16432
16433
16434
16435
16436
16437
16438
16439
16440
16441
16442
16443
16444
16445
16446/***/ }),
16447
16448/***/ "./node_modules/d3-selection/src/constant.js":
16449/*!***************************************************!*\
16450 !*** ./node_modules/d3-selection/src/constant.js ***!
16451 \***************************************************/
16452/*! exports provided: default */
16453/***/ (function(module, __webpack_exports__, __webpack_require__) {
16454
16455"use strict";
16456__webpack_require__.r(__webpack_exports__);
16457/* harmony default export */ __webpack_exports__["default"] = (function(x) {
16458 return function() {
16459 return x;
16460 };
16461});
16462
16463
16464/***/ }),
16465
16466/***/ "./node_modules/d3-selection/src/create.js":
16467/*!*************************************************!*\
16468 !*** ./node_modules/d3-selection/src/create.js ***!
16469 \*************************************************/
16470/*! exports provided: default */
16471/***/ (function(module, __webpack_exports__, __webpack_require__) {
16472
16473"use strict";
16474__webpack_require__.r(__webpack_exports__);
16475/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./creator */ "./node_modules/d3-selection/src/creator.js");
16476/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select */ "./node_modules/d3-selection/src/select.js");
16477
16478
16479
16480/* harmony default export */ __webpack_exports__["default"] = (function(name) {
16481 return Object(_select__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name).call(document.documentElement));
16482});
16483
16484
16485/***/ }),
16486
16487/***/ "./node_modules/d3-selection/src/creator.js":
16488/*!**************************************************!*\
16489 !*** ./node_modules/d3-selection/src/creator.js ***!
16490 \**************************************************/
16491/*! exports provided: default */
16492/***/ (function(module, __webpack_exports__, __webpack_require__) {
16493
16494"use strict";
16495__webpack_require__.r(__webpack_exports__);
16496/* harmony import */ var _namespace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespace */ "./node_modules/d3-selection/src/namespace.js");
16497/* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./namespaces */ "./node_modules/d3-selection/src/namespaces.js");
16498
16499
16500
16501function creatorInherit(name) {
16502 return function() {
16503 var document = this.ownerDocument,
16504 uri = this.namespaceURI;
16505 return uri === _namespaces__WEBPACK_IMPORTED_MODULE_1__["xhtml"] && document.documentElement.namespaceURI === _namespaces__WEBPACK_IMPORTED_MODULE_1__["xhtml"]
16506 ? document.createElement(name)
16507 : document.createElementNS(uri, name);
16508 };
16509}
16510
16511function creatorFixed(fullname) {
16512 return function() {
16513 return this.ownerDocument.createElementNS(fullname.space, fullname.local);
16514 };
16515}
16516
16517/* harmony default export */ __webpack_exports__["default"] = (function(name) {
16518 var fullname = Object(_namespace__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
16519 return (fullname.local
16520 ? creatorFixed
16521 : creatorInherit)(fullname);
16522});
16523
16524
16525/***/ }),
16526
16527/***/ "./node_modules/d3-selection/src/local.js":
16528/*!************************************************!*\
16529 !*** ./node_modules/d3-selection/src/local.js ***!
16530 \************************************************/
16531/*! exports provided: default */
16532/***/ (function(module, __webpack_exports__, __webpack_require__) {
16533
16534"use strict";
16535__webpack_require__.r(__webpack_exports__);
16536/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return local; });
16537var nextId = 0;
16538
16539function local() {
16540 return new Local;
16541}
16542
16543function Local() {
16544 this._ = "@" + (++nextId).toString(36);
16545}
16546
16547Local.prototype = local.prototype = {
16548 constructor: Local,
16549 get: function(node) {
16550 var id = this._;
16551 while (!(id in node)) if (!(node = node.parentNode)) return;
16552 return node[id];
16553 },
16554 set: function(node, value) {
16555 return node[this._] = value;
16556 },
16557 remove: function(node) {
16558 return this._ in node && delete node[this._];
16559 },
16560 toString: function() {
16561 return this._;
16562 }
16563};
16564
16565
16566/***/ }),
16567
16568/***/ "./node_modules/d3-selection/src/matcher.js":
16569/*!**************************************************!*\
16570 !*** ./node_modules/d3-selection/src/matcher.js ***!
16571 \**************************************************/
16572/*! exports provided: default */
16573/***/ (function(module, __webpack_exports__, __webpack_require__) {
16574
16575"use strict";
16576__webpack_require__.r(__webpack_exports__);
16577var matcher = function(selector) {
16578 return function() {
16579 return this.matches(selector);
16580 };
16581};
16582
16583if (typeof document !== "undefined") {
16584 var element = document.documentElement;
16585 if (!element.matches) {
16586 var vendorMatches = element.webkitMatchesSelector
16587 || element.msMatchesSelector
16588 || element.mozMatchesSelector
16589 || element.oMatchesSelector;
16590 matcher = function(selector) {
16591 return function() {
16592 return vendorMatches.call(this, selector);
16593 };
16594 };
16595 }
16596}
16597
16598/* harmony default export */ __webpack_exports__["default"] = (matcher);
16599
16600
16601/***/ }),
16602
16603/***/ "./node_modules/d3-selection/src/mouse.js":
16604/*!************************************************!*\
16605 !*** ./node_modules/d3-selection/src/mouse.js ***!
16606 \************************************************/
16607/*! exports provided: default */
16608/***/ (function(module, __webpack_exports__, __webpack_require__) {
16609
16610"use strict";
16611__webpack_require__.r(__webpack_exports__);
16612/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
16613/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
16614
16615
16616
16617/* harmony default export */ __webpack_exports__["default"] = (function(node) {
16618 var event = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])();
16619 if (event.changedTouches) event = event.changedTouches[0];
16620 return Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, event);
16621});
16622
16623
16624/***/ }),
16625
16626/***/ "./node_modules/d3-selection/src/namespace.js":
16627/*!****************************************************!*\
16628 !*** ./node_modules/d3-selection/src/namespace.js ***!
16629 \****************************************************/
16630/*! exports provided: default */
16631/***/ (function(module, __webpack_exports__, __webpack_require__) {
16632
16633"use strict";
16634__webpack_require__.r(__webpack_exports__);
16635/* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespaces */ "./node_modules/d3-selection/src/namespaces.js");
16636
16637
16638/* harmony default export */ __webpack_exports__["default"] = (function(name) {
16639 var prefix = name += "", i = prefix.indexOf(":");
16640 if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
16641 return _namespaces__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProperty(prefix) ? {space: _namespaces__WEBPACK_IMPORTED_MODULE_0__["default"][prefix], local: name} : name;
16642});
16643
16644
16645/***/ }),
16646
16647/***/ "./node_modules/d3-selection/src/namespaces.js":
16648/*!*****************************************************!*\
16649 !*** ./node_modules/d3-selection/src/namespaces.js ***!
16650 \*****************************************************/
16651/*! exports provided: xhtml, default */
16652/***/ (function(module, __webpack_exports__, __webpack_require__) {
16653
16654"use strict";
16655__webpack_require__.r(__webpack_exports__);
16656/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "xhtml", function() { return xhtml; });
16657var xhtml = "http://www.w3.org/1999/xhtml";
16658
16659/* harmony default export */ __webpack_exports__["default"] = ({
16660 svg: "http://www.w3.org/2000/svg",
16661 xhtml: xhtml,
16662 xlink: "http://www.w3.org/1999/xlink",
16663 xml: "http://www.w3.org/XML/1998/namespace",
16664 xmlns: "http://www.w3.org/2000/xmlns/"
16665});
16666
16667
16668/***/ }),
16669
16670/***/ "./node_modules/d3-selection/src/point.js":
16671/*!************************************************!*\
16672 !*** ./node_modules/d3-selection/src/point.js ***!
16673 \************************************************/
16674/*! exports provided: default */
16675/***/ (function(module, __webpack_exports__, __webpack_require__) {
16676
16677"use strict";
16678__webpack_require__.r(__webpack_exports__);
16679/* harmony default export */ __webpack_exports__["default"] = (function(node, event) {
16680 var svg = node.ownerSVGElement || node;
16681
16682 if (svg.createSVGPoint) {
16683 var point = svg.createSVGPoint();
16684 point.x = event.clientX, point.y = event.clientY;
16685 point = point.matrixTransform(node.getScreenCTM().inverse());
16686 return [point.x, point.y];
16687 }
16688
16689 var rect = node.getBoundingClientRect();
16690 return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
16691});
16692
16693
16694/***/ }),
16695
16696/***/ "./node_modules/d3-selection/src/select.js":
16697/*!*************************************************!*\
16698 !*** ./node_modules/d3-selection/src/select.js ***!
16699 \*************************************************/
16700/*! exports provided: default */
16701/***/ (function(module, __webpack_exports__, __webpack_require__) {
16702
16703"use strict";
16704__webpack_require__.r(__webpack_exports__);
16705/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-selection/src/selection/index.js");
16706
16707
16708/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
16709 return typeof selector === "string"
16710 ? new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([[document.querySelector(selector)]], [document.documentElement])
16711 : new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([[selector]], _selection_index__WEBPACK_IMPORTED_MODULE_0__["root"]);
16712});
16713
16714
16715/***/ }),
16716
16717/***/ "./node_modules/d3-selection/src/selectAll.js":
16718/*!****************************************************!*\
16719 !*** ./node_modules/d3-selection/src/selectAll.js ***!
16720 \****************************************************/
16721/*! exports provided: default */
16722/***/ (function(module, __webpack_exports__, __webpack_require__) {
16723
16724"use strict";
16725__webpack_require__.r(__webpack_exports__);
16726/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-selection/src/selection/index.js");
16727
16728
16729/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
16730 return typeof selector === "string"
16731 ? new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([document.querySelectorAll(selector)], [document.documentElement])
16732 : new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([selector == null ? [] : selector], _selection_index__WEBPACK_IMPORTED_MODULE_0__["root"]);
16733});
16734
16735
16736/***/ }),
16737
16738/***/ "./node_modules/d3-selection/src/selection/append.js":
16739/*!***********************************************************!*\
16740 !*** ./node_modules/d3-selection/src/selection/append.js ***!
16741 \***********************************************************/
16742/*! exports provided: default */
16743/***/ (function(module, __webpack_exports__, __webpack_require__) {
16744
16745"use strict";
16746__webpack_require__.r(__webpack_exports__);
16747/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator */ "./node_modules/d3-selection/src/creator.js");
16748
16749
16750/* harmony default export */ __webpack_exports__["default"] = (function(name) {
16751 var create = typeof name === "function" ? name : Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
16752 return this.select(function() {
16753 return this.appendChild(create.apply(this, arguments));
16754 });
16755});
16756
16757
16758/***/ }),
16759
16760/***/ "./node_modules/d3-selection/src/selection/attr.js":
16761/*!*********************************************************!*\
16762 !*** ./node_modules/d3-selection/src/selection/attr.js ***!
16763 \*********************************************************/
16764/*! exports provided: default */
16765/***/ (function(module, __webpack_exports__, __webpack_require__) {
16766
16767"use strict";
16768__webpack_require__.r(__webpack_exports__);
16769/* harmony import */ var _namespace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../namespace */ "./node_modules/d3-selection/src/namespace.js");
16770
16771
16772function attrRemove(name) {
16773 return function() {
16774 this.removeAttribute(name);
16775 };
16776}
16777
16778function attrRemoveNS(fullname) {
16779 return function() {
16780 this.removeAttributeNS(fullname.space, fullname.local);
16781 };
16782}
16783
16784function attrConstant(name, value) {
16785 return function() {
16786 this.setAttribute(name, value);
16787 };
16788}
16789
16790function attrConstantNS(fullname, value) {
16791 return function() {
16792 this.setAttributeNS(fullname.space, fullname.local, value);
16793 };
16794}
16795
16796function attrFunction(name, value) {
16797 return function() {
16798 var v = value.apply(this, arguments);
16799 if (v == null) this.removeAttribute(name);
16800 else this.setAttribute(name, v);
16801 };
16802}
16803
16804function attrFunctionNS(fullname, value) {
16805 return function() {
16806 var v = value.apply(this, arguments);
16807 if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
16808 else this.setAttributeNS(fullname.space, fullname.local, v);
16809 };
16810}
16811
16812/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
16813 var fullname = Object(_namespace__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
16814
16815 if (arguments.length < 2) {
16816 var node = this.node();
16817 return fullname.local
16818 ? node.getAttributeNS(fullname.space, fullname.local)
16819 : node.getAttribute(fullname);
16820 }
16821
16822 return this.each((value == null
16823 ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
16824 ? (fullname.local ? attrFunctionNS : attrFunction)
16825 : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
16826});
16827
16828
16829/***/ }),
16830
16831/***/ "./node_modules/d3-selection/src/selection/call.js":
16832/*!*********************************************************!*\
16833 !*** ./node_modules/d3-selection/src/selection/call.js ***!
16834 \*********************************************************/
16835/*! exports provided: default */
16836/***/ (function(module, __webpack_exports__, __webpack_require__) {
16837
16838"use strict";
16839__webpack_require__.r(__webpack_exports__);
16840/* harmony default export */ __webpack_exports__["default"] = (function() {
16841 var callback = arguments[0];
16842 arguments[0] = this;
16843 callback.apply(null, arguments);
16844 return this;
16845});
16846
16847
16848/***/ }),
16849
16850/***/ "./node_modules/d3-selection/src/selection/classed.js":
16851/*!************************************************************!*\
16852 !*** ./node_modules/d3-selection/src/selection/classed.js ***!
16853 \************************************************************/
16854/*! exports provided: default */
16855/***/ (function(module, __webpack_exports__, __webpack_require__) {
16856
16857"use strict";
16858__webpack_require__.r(__webpack_exports__);
16859function classArray(string) {
16860 return string.trim().split(/^|\s+/);
16861}
16862
16863function classList(node) {
16864 return node.classList || new ClassList(node);
16865}
16866
16867function ClassList(node) {
16868 this._node = node;
16869 this._names = classArray(node.getAttribute("class") || "");
16870}
16871
16872ClassList.prototype = {
16873 add: function(name) {
16874 var i = this._names.indexOf(name);
16875 if (i < 0) {
16876 this._names.push(name);
16877 this._node.setAttribute("class", this._names.join(" "));
16878 }
16879 },
16880 remove: function(name) {
16881 var i = this._names.indexOf(name);
16882 if (i >= 0) {
16883 this._names.splice(i, 1);
16884 this._node.setAttribute("class", this._names.join(" "));
16885 }
16886 },
16887 contains: function(name) {
16888 return this._names.indexOf(name) >= 0;
16889 }
16890};
16891
16892function classedAdd(node, names) {
16893 var list = classList(node), i = -1, n = names.length;
16894 while (++i < n) list.add(names[i]);
16895}
16896
16897function classedRemove(node, names) {
16898 var list = classList(node), i = -1, n = names.length;
16899 while (++i < n) list.remove(names[i]);
16900}
16901
16902function classedTrue(names) {
16903 return function() {
16904 classedAdd(this, names);
16905 };
16906}
16907
16908function classedFalse(names) {
16909 return function() {
16910 classedRemove(this, names);
16911 };
16912}
16913
16914function classedFunction(names, value) {
16915 return function() {
16916 (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
16917 };
16918}
16919
16920/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
16921 var names = classArray(name + "");
16922
16923 if (arguments.length < 2) {
16924 var list = classList(this.node()), i = -1, n = names.length;
16925 while (++i < n) if (!list.contains(names[i])) return false;
16926 return true;
16927 }
16928
16929 return this.each((typeof value === "function"
16930 ? classedFunction : value
16931 ? classedTrue
16932 : classedFalse)(names, value));
16933});
16934
16935
16936/***/ }),
16937
16938/***/ "./node_modules/d3-selection/src/selection/clone.js":
16939/*!**********************************************************!*\
16940 !*** ./node_modules/d3-selection/src/selection/clone.js ***!
16941 \**********************************************************/
16942/*! exports provided: default */
16943/***/ (function(module, __webpack_exports__, __webpack_require__) {
16944
16945"use strict";
16946__webpack_require__.r(__webpack_exports__);
16947function selection_cloneShallow() {
16948 return this.parentNode.insertBefore(this.cloneNode(false), this.nextSibling);
16949}
16950
16951function selection_cloneDeep() {
16952 return this.parentNode.insertBefore(this.cloneNode(true), this.nextSibling);
16953}
16954
16955/* harmony default export */ __webpack_exports__["default"] = (function(deep) {
16956 return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
16957});
16958
16959
16960/***/ }),
16961
16962/***/ "./node_modules/d3-selection/src/selection/data.js":
16963/*!*********************************************************!*\
16964 !*** ./node_modules/d3-selection/src/selection/data.js ***!
16965 \*********************************************************/
16966/*! exports provided: default */
16967/***/ (function(module, __webpack_exports__, __webpack_require__) {
16968
16969"use strict";
16970__webpack_require__.r(__webpack_exports__);
16971/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
16972/* harmony import */ var _enter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enter */ "./node_modules/d3-selection/src/selection/enter.js");
16973/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-selection/src/constant.js");
16974
16975
16976
16977
16978var keyPrefix = "$"; // Protect against keys like “__proto__”.
16979
16980function bindIndex(parent, group, enter, update, exit, data) {
16981 var i = 0,
16982 node,
16983 groupLength = group.length,
16984 dataLength = data.length;
16985
16986 // Put any non-null nodes that fit into update.
16987 // Put any null nodes into enter.
16988 // Put any remaining data into enter.
16989 for (; i < dataLength; ++i) {
16990 if (node = group[i]) {
16991 node.__data__ = data[i];
16992 update[i] = node;
16993 } else {
16994 enter[i] = new _enter__WEBPACK_IMPORTED_MODULE_1__["EnterNode"](parent, data[i]);
16995 }
16996 }
16997
16998 // Put any non-null nodes that don’t fit into exit.
16999 for (; i < groupLength; ++i) {
17000 if (node = group[i]) {
17001 exit[i] = node;
17002 }
17003 }
17004}
17005
17006function bindKey(parent, group, enter, update, exit, data, key) {
17007 var i,
17008 node,
17009 nodeByKeyValue = {},
17010 groupLength = group.length,
17011 dataLength = data.length,
17012 keyValues = new Array(groupLength),
17013 keyValue;
17014
17015 // Compute the key for each node.
17016 // If multiple nodes have the same key, the duplicates are added to exit.
17017 for (i = 0; i < groupLength; ++i) {
17018 if (node = group[i]) {
17019 keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);
17020 if (keyValue in nodeByKeyValue) {
17021 exit[i] = node;
17022 } else {
17023 nodeByKeyValue[keyValue] = node;
17024 }
17025 }
17026 }
17027
17028 // Compute the key for each datum.
17029 // If there a node associated with this key, join and add it to update.
17030 // If there is not (or the key is a duplicate), add it to enter.
17031 for (i = 0; i < dataLength; ++i) {
17032 keyValue = keyPrefix + key.call(parent, data[i], i, data);
17033 if (node = nodeByKeyValue[keyValue]) {
17034 update[i] = node;
17035 node.__data__ = data[i];
17036 nodeByKeyValue[keyValue] = null;
17037 } else {
17038 enter[i] = new _enter__WEBPACK_IMPORTED_MODULE_1__["EnterNode"](parent, data[i]);
17039 }
17040 }
17041
17042 // Add any remaining nodes that were not bound to data to exit.
17043 for (i = 0; i < groupLength; ++i) {
17044 if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {
17045 exit[i] = node;
17046 }
17047 }
17048}
17049
17050/* harmony default export */ __webpack_exports__["default"] = (function(value, key) {
17051 if (!value) {
17052 data = new Array(this.size()), j = -1;
17053 this.each(function(d) { data[++j] = d; });
17054 return data;
17055 }
17056
17057 var bind = key ? bindKey : bindIndex,
17058 parents = this._parents,
17059 groups = this._groups;
17060
17061 if (typeof value !== "function") value = Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(value);
17062
17063 for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
17064 var parent = parents[j],
17065 group = groups[j],
17066 groupLength = group.length,
17067 data = value.call(parent, parent && parent.__data__, j, parents),
17068 dataLength = data.length,
17069 enterGroup = enter[j] = new Array(dataLength),
17070 updateGroup = update[j] = new Array(dataLength),
17071 exitGroup = exit[j] = new Array(groupLength);
17072
17073 bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
17074
17075 // Now connect the enter nodes to their following update node, such that
17076 // appendChild can insert the materialized enter node before this node,
17077 // rather than at the end of the parent node.
17078 for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
17079 if (previous = enterGroup[i0]) {
17080 if (i0 >= i1) i1 = i0 + 1;
17081 while (!(next = updateGroup[i1]) && ++i1 < dataLength);
17082 previous._next = next || null;
17083 }
17084 }
17085 }
17086
17087 update = new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](update, parents);
17088 update._enter = enter;
17089 update._exit = exit;
17090 return update;
17091});
17092
17093
17094/***/ }),
17095
17096/***/ "./node_modules/d3-selection/src/selection/datum.js":
17097/*!**********************************************************!*\
17098 !*** ./node_modules/d3-selection/src/selection/datum.js ***!
17099 \**********************************************************/
17100/*! exports provided: default */
17101/***/ (function(module, __webpack_exports__, __webpack_require__) {
17102
17103"use strict";
17104__webpack_require__.r(__webpack_exports__);
17105/* harmony default export */ __webpack_exports__["default"] = (function(value) {
17106 return arguments.length
17107 ? this.property("__data__", value)
17108 : this.node().__data__;
17109});
17110
17111
17112/***/ }),
17113
17114/***/ "./node_modules/d3-selection/src/selection/dispatch.js":
17115/*!*************************************************************!*\
17116 !*** ./node_modules/d3-selection/src/selection/dispatch.js ***!
17117 \*************************************************************/
17118/*! exports provided: default */
17119/***/ (function(module, __webpack_exports__, __webpack_require__) {
17120
17121"use strict";
17122__webpack_require__.r(__webpack_exports__);
17123/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window */ "./node_modules/d3-selection/src/window.js");
17124
17125
17126function dispatchEvent(node, type, params) {
17127 var window = Object(_window__WEBPACK_IMPORTED_MODULE_0__["default"])(node),
17128 event = window.CustomEvent;
17129
17130 if (typeof event === "function") {
17131 event = new event(type, params);
17132 } else {
17133 event = window.document.createEvent("Event");
17134 if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
17135 else event.initEvent(type, false, false);
17136 }
17137
17138 node.dispatchEvent(event);
17139}
17140
17141function dispatchConstant(type, params) {
17142 return function() {
17143 return dispatchEvent(this, type, params);
17144 };
17145}
17146
17147function dispatchFunction(type, params) {
17148 return function() {
17149 return dispatchEvent(this, type, params.apply(this, arguments));
17150 };
17151}
17152
17153/* harmony default export */ __webpack_exports__["default"] = (function(type, params) {
17154 return this.each((typeof params === "function"
17155 ? dispatchFunction
17156 : dispatchConstant)(type, params));
17157});
17158
17159
17160/***/ }),
17161
17162/***/ "./node_modules/d3-selection/src/selection/each.js":
17163/*!*********************************************************!*\
17164 !*** ./node_modules/d3-selection/src/selection/each.js ***!
17165 \*********************************************************/
17166/*! exports provided: default */
17167/***/ (function(module, __webpack_exports__, __webpack_require__) {
17168
17169"use strict";
17170__webpack_require__.r(__webpack_exports__);
17171/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
17172
17173 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
17174 for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
17175 if (node = group[i]) callback.call(node, node.__data__, i, group);
17176 }
17177 }
17178
17179 return this;
17180});
17181
17182
17183/***/ }),
17184
17185/***/ "./node_modules/d3-selection/src/selection/empty.js":
17186/*!**********************************************************!*\
17187 !*** ./node_modules/d3-selection/src/selection/empty.js ***!
17188 \**********************************************************/
17189/*! exports provided: default */
17190/***/ (function(module, __webpack_exports__, __webpack_require__) {
17191
17192"use strict";
17193__webpack_require__.r(__webpack_exports__);
17194/* harmony default export */ __webpack_exports__["default"] = (function() {
17195 return !this.node();
17196});
17197
17198
17199/***/ }),
17200
17201/***/ "./node_modules/d3-selection/src/selection/enter.js":
17202/*!**********************************************************!*\
17203 !*** ./node_modules/d3-selection/src/selection/enter.js ***!
17204 \**********************************************************/
17205/*! exports provided: default, EnterNode */
17206/***/ (function(module, __webpack_exports__, __webpack_require__) {
17207
17208"use strict";
17209__webpack_require__.r(__webpack_exports__);
17210/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EnterNode", function() { return EnterNode; });
17211/* harmony import */ var _sparse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sparse */ "./node_modules/d3-selection/src/selection/sparse.js");
17212/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
17213
17214
17215
17216/* harmony default export */ __webpack_exports__["default"] = (function() {
17217 return new _index__WEBPACK_IMPORTED_MODULE_1__["Selection"](this._enter || this._groups.map(_sparse__WEBPACK_IMPORTED_MODULE_0__["default"]), this._parents);
17218});
17219
17220function EnterNode(parent, datum) {
17221 this.ownerDocument = parent.ownerDocument;
17222 this.namespaceURI = parent.namespaceURI;
17223 this._next = null;
17224 this._parent = parent;
17225 this.__data__ = datum;
17226}
17227
17228EnterNode.prototype = {
17229 constructor: EnterNode,
17230 appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
17231 insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
17232 querySelector: function(selector) { return this._parent.querySelector(selector); },
17233 querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
17234};
17235
17236
17237/***/ }),
17238
17239/***/ "./node_modules/d3-selection/src/selection/exit.js":
17240/*!*********************************************************!*\
17241 !*** ./node_modules/d3-selection/src/selection/exit.js ***!
17242 \*********************************************************/
17243/*! exports provided: default */
17244/***/ (function(module, __webpack_exports__, __webpack_require__) {
17245
17246"use strict";
17247__webpack_require__.r(__webpack_exports__);
17248/* harmony import */ var _sparse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sparse */ "./node_modules/d3-selection/src/selection/sparse.js");
17249/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
17250
17251
17252
17253/* harmony default export */ __webpack_exports__["default"] = (function() {
17254 return new _index__WEBPACK_IMPORTED_MODULE_1__["Selection"](this._exit || this._groups.map(_sparse__WEBPACK_IMPORTED_MODULE_0__["default"]), this._parents);
17255});
17256
17257
17258/***/ }),
17259
17260/***/ "./node_modules/d3-selection/src/selection/filter.js":
17261/*!***********************************************************!*\
17262 !*** ./node_modules/d3-selection/src/selection/filter.js ***!
17263 \***********************************************************/
17264/*! exports provided: default */
17265/***/ (function(module, __webpack_exports__, __webpack_require__) {
17266
17267"use strict";
17268__webpack_require__.r(__webpack_exports__);
17269/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
17270/* harmony import */ var _matcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../matcher */ "./node_modules/d3-selection/src/matcher.js");
17271
17272
17273
17274/* harmony default export */ __webpack_exports__["default"] = (function(match) {
17275 if (typeof match !== "function") match = Object(_matcher__WEBPACK_IMPORTED_MODULE_1__["default"])(match);
17276
17277 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
17278 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
17279 if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
17280 subgroup.push(node);
17281 }
17282 }
17283 }
17284
17285 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, this._parents);
17286});
17287
17288
17289/***/ }),
17290
17291/***/ "./node_modules/d3-selection/src/selection/html.js":
17292/*!*********************************************************!*\
17293 !*** ./node_modules/d3-selection/src/selection/html.js ***!
17294 \*********************************************************/
17295/*! exports provided: default */
17296/***/ (function(module, __webpack_exports__, __webpack_require__) {
17297
17298"use strict";
17299__webpack_require__.r(__webpack_exports__);
17300function htmlRemove() {
17301 this.innerHTML = "";
17302}
17303
17304function htmlConstant(value) {
17305 return function() {
17306 this.innerHTML = value;
17307 };
17308}
17309
17310function htmlFunction(value) {
17311 return function() {
17312 var v = value.apply(this, arguments);
17313 this.innerHTML = v == null ? "" : v;
17314 };
17315}
17316
17317/* harmony default export */ __webpack_exports__["default"] = (function(value) {
17318 return arguments.length
17319 ? this.each(value == null
17320 ? htmlRemove : (typeof value === "function"
17321 ? htmlFunction
17322 : htmlConstant)(value))
17323 : this.node().innerHTML;
17324});
17325
17326
17327/***/ }),
17328
17329/***/ "./node_modules/d3-selection/src/selection/index.js":
17330/*!**********************************************************!*\
17331 !*** ./node_modules/d3-selection/src/selection/index.js ***!
17332 \**********************************************************/
17333/*! exports provided: root, Selection, default */
17334/***/ (function(module, __webpack_exports__, __webpack_require__) {
17335
17336"use strict";
17337__webpack_require__.r(__webpack_exports__);
17338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "root", function() { return root; });
17339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return Selection; });
17340/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select */ "./node_modules/d3-selection/src/selection/select.js");
17341/* harmony import */ var _selectAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectAll */ "./node_modules/d3-selection/src/selection/selectAll.js");
17342/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter */ "./node_modules/d3-selection/src/selection/filter.js");
17343/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data */ "./node_modules/d3-selection/src/selection/data.js");
17344/* harmony import */ var _enter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./enter */ "./node_modules/d3-selection/src/selection/enter.js");
17345/* harmony import */ var _exit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exit */ "./node_modules/d3-selection/src/selection/exit.js");
17346/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./merge */ "./node_modules/d3-selection/src/selection/merge.js");
17347/* harmony import */ var _order__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./order */ "./node_modules/d3-selection/src/selection/order.js");
17348/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./sort */ "./node_modules/d3-selection/src/selection/sort.js");
17349/* harmony import */ var _call__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./call */ "./node_modules/d3-selection/src/selection/call.js");
17350/* harmony import */ var _nodes__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./nodes */ "./node_modules/d3-selection/src/selection/nodes.js");
17351/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./node */ "./node_modules/d3-selection/src/selection/node.js");
17352/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./size */ "./node_modules/d3-selection/src/selection/size.js");
17353/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./empty */ "./node_modules/d3-selection/src/selection/empty.js");
17354/* harmony import */ var _each__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./each */ "./node_modules/d3-selection/src/selection/each.js");
17355/* harmony import */ var _attr__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./attr */ "./node_modules/d3-selection/src/selection/attr.js");
17356/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./style */ "./node_modules/d3-selection/src/selection/style.js");
17357/* harmony import */ var _property__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./property */ "./node_modules/d3-selection/src/selection/property.js");
17358/* harmony import */ var _classed__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./classed */ "./node_modules/d3-selection/src/selection/classed.js");
17359/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./text */ "./node_modules/d3-selection/src/selection/text.js");
17360/* harmony import */ var _html__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./html */ "./node_modules/d3-selection/src/selection/html.js");
17361/* harmony import */ var _raise__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./raise */ "./node_modules/d3-selection/src/selection/raise.js");
17362/* harmony import */ var _lower__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./lower */ "./node_modules/d3-selection/src/selection/lower.js");
17363/* harmony import */ var _append__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./append */ "./node_modules/d3-selection/src/selection/append.js");
17364/* harmony import */ var _insert__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./insert */ "./node_modules/d3-selection/src/selection/insert.js");
17365/* harmony import */ var _remove__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./remove */ "./node_modules/d3-selection/src/selection/remove.js");
17366/* harmony import */ var _clone__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./clone */ "./node_modules/d3-selection/src/selection/clone.js");
17367/* harmony import */ var _datum__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./datum */ "./node_modules/d3-selection/src/selection/datum.js");
17368/* harmony import */ var _on__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./on */ "./node_modules/d3-selection/src/selection/on.js");
17369/* harmony import */ var _dispatch__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./dispatch */ "./node_modules/d3-selection/src/selection/dispatch.js");
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
17390
17391
17392
17393
17394
17395
17396
17397
17398
17399
17400
17401var root = [null];
17402
17403function Selection(groups, parents) {
17404 this._groups = groups;
17405 this._parents = parents;
17406}
17407
17408function selection() {
17409 return new Selection([[document.documentElement]], root);
17410}
17411
17412Selection.prototype = selection.prototype = {
17413 constructor: Selection,
17414 select: _select__WEBPACK_IMPORTED_MODULE_0__["default"],
17415 selectAll: _selectAll__WEBPACK_IMPORTED_MODULE_1__["default"],
17416 filter: _filter__WEBPACK_IMPORTED_MODULE_2__["default"],
17417 data: _data__WEBPACK_IMPORTED_MODULE_3__["default"],
17418 enter: _enter__WEBPACK_IMPORTED_MODULE_4__["default"],
17419 exit: _exit__WEBPACK_IMPORTED_MODULE_5__["default"],
17420 merge: _merge__WEBPACK_IMPORTED_MODULE_6__["default"],
17421 order: _order__WEBPACK_IMPORTED_MODULE_7__["default"],
17422 sort: _sort__WEBPACK_IMPORTED_MODULE_8__["default"],
17423 call: _call__WEBPACK_IMPORTED_MODULE_9__["default"],
17424 nodes: _nodes__WEBPACK_IMPORTED_MODULE_10__["default"],
17425 node: _node__WEBPACK_IMPORTED_MODULE_11__["default"],
17426 size: _size__WEBPACK_IMPORTED_MODULE_12__["default"],
17427 empty: _empty__WEBPACK_IMPORTED_MODULE_13__["default"],
17428 each: _each__WEBPACK_IMPORTED_MODULE_14__["default"],
17429 attr: _attr__WEBPACK_IMPORTED_MODULE_15__["default"],
17430 style: _style__WEBPACK_IMPORTED_MODULE_16__["default"],
17431 property: _property__WEBPACK_IMPORTED_MODULE_17__["default"],
17432 classed: _classed__WEBPACK_IMPORTED_MODULE_18__["default"],
17433 text: _text__WEBPACK_IMPORTED_MODULE_19__["default"],
17434 html: _html__WEBPACK_IMPORTED_MODULE_20__["default"],
17435 raise: _raise__WEBPACK_IMPORTED_MODULE_21__["default"],
17436 lower: _lower__WEBPACK_IMPORTED_MODULE_22__["default"],
17437 append: _append__WEBPACK_IMPORTED_MODULE_23__["default"],
17438 insert: _insert__WEBPACK_IMPORTED_MODULE_24__["default"],
17439 remove: _remove__WEBPACK_IMPORTED_MODULE_25__["default"],
17440 clone: _clone__WEBPACK_IMPORTED_MODULE_26__["default"],
17441 datum: _datum__WEBPACK_IMPORTED_MODULE_27__["default"],
17442 on: _on__WEBPACK_IMPORTED_MODULE_28__["default"],
17443 dispatch: _dispatch__WEBPACK_IMPORTED_MODULE_29__["default"]
17444};
17445
17446/* harmony default export */ __webpack_exports__["default"] = (selection);
17447
17448
17449/***/ }),
17450
17451/***/ "./node_modules/d3-selection/src/selection/insert.js":
17452/*!***********************************************************!*\
17453 !*** ./node_modules/d3-selection/src/selection/insert.js ***!
17454 \***********************************************************/
17455/*! exports provided: default */
17456/***/ (function(module, __webpack_exports__, __webpack_require__) {
17457
17458"use strict";
17459__webpack_require__.r(__webpack_exports__);
17460/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator */ "./node_modules/d3-selection/src/creator.js");
17461/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector */ "./node_modules/d3-selection/src/selector.js");
17462
17463
17464
17465function constantNull() {
17466 return null;
17467}
17468
17469/* harmony default export */ __webpack_exports__["default"] = (function(name, before) {
17470 var create = typeof name === "function" ? name : Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name),
17471 select = before == null ? constantNull : typeof before === "function" ? before : Object(_selector__WEBPACK_IMPORTED_MODULE_1__["default"])(before);
17472 return this.select(function() {
17473 return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
17474 });
17475});
17476
17477
17478/***/ }),
17479
17480/***/ "./node_modules/d3-selection/src/selection/lower.js":
17481/*!**********************************************************!*\
17482 !*** ./node_modules/d3-selection/src/selection/lower.js ***!
17483 \**********************************************************/
17484/*! exports provided: default */
17485/***/ (function(module, __webpack_exports__, __webpack_require__) {
17486
17487"use strict";
17488__webpack_require__.r(__webpack_exports__);
17489function lower() {
17490 if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
17491}
17492
17493/* harmony default export */ __webpack_exports__["default"] = (function() {
17494 return this.each(lower);
17495});
17496
17497
17498/***/ }),
17499
17500/***/ "./node_modules/d3-selection/src/selection/merge.js":
17501/*!**********************************************************!*\
17502 !*** ./node_modules/d3-selection/src/selection/merge.js ***!
17503 \**********************************************************/
17504/*! exports provided: default */
17505/***/ (function(module, __webpack_exports__, __webpack_require__) {
17506
17507"use strict";
17508__webpack_require__.r(__webpack_exports__);
17509/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
17510
17511
17512/* harmony default export */ __webpack_exports__["default"] = (function(selection) {
17513
17514 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) {
17515 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
17516 if (node = group0[i] || group1[i]) {
17517 merge[i] = node;
17518 }
17519 }
17520 }
17521
17522 for (; j < m0; ++j) {
17523 merges[j] = groups0[j];
17524 }
17525
17526 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](merges, this._parents);
17527});
17528
17529
17530/***/ }),
17531
17532/***/ "./node_modules/d3-selection/src/selection/node.js":
17533/*!*********************************************************!*\
17534 !*** ./node_modules/d3-selection/src/selection/node.js ***!
17535 \*********************************************************/
17536/*! exports provided: default */
17537/***/ (function(module, __webpack_exports__, __webpack_require__) {
17538
17539"use strict";
17540__webpack_require__.r(__webpack_exports__);
17541/* harmony default export */ __webpack_exports__["default"] = (function() {
17542
17543 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
17544 for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
17545 var node = group[i];
17546 if (node) return node;
17547 }
17548 }
17549
17550 return null;
17551});
17552
17553
17554/***/ }),
17555
17556/***/ "./node_modules/d3-selection/src/selection/nodes.js":
17557/*!**********************************************************!*\
17558 !*** ./node_modules/d3-selection/src/selection/nodes.js ***!
17559 \**********************************************************/
17560/*! exports provided: default */
17561/***/ (function(module, __webpack_exports__, __webpack_require__) {
17562
17563"use strict";
17564__webpack_require__.r(__webpack_exports__);
17565/* harmony default export */ __webpack_exports__["default"] = (function() {
17566 var nodes = new Array(this.size()), i = -1;
17567 this.each(function() { nodes[++i] = this; });
17568 return nodes;
17569});
17570
17571
17572/***/ }),
17573
17574/***/ "./node_modules/d3-selection/src/selection/on.js":
17575/*!*******************************************************!*\
17576 !*** ./node_modules/d3-selection/src/selection/on.js ***!
17577 \*******************************************************/
17578/*! exports provided: event, default, customEvent */
17579/***/ (function(module, __webpack_exports__, __webpack_require__) {
17580
17581"use strict";
17582__webpack_require__.r(__webpack_exports__);
17583/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "event", function() { return event; });
17584/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return customEvent; });
17585var filterEvents = {};
17586
17587var event = null;
17588
17589if (typeof document !== "undefined") {
17590 var element = document.documentElement;
17591 if (!("onmouseenter" in element)) {
17592 filterEvents = {mouseenter: "mouseover", mouseleave: "mouseout"};
17593 }
17594}
17595
17596function filterContextListener(listener, index, group) {
17597 listener = contextListener(listener, index, group);
17598 return function(event) {
17599 var related = event.relatedTarget;
17600 if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {
17601 listener.call(this, event);
17602 }
17603 };
17604}
17605
17606function contextListener(listener, index, group) {
17607 return function(event1) {
17608 var event0 = event; // Events can be reentrant (e.g., focus).
17609 event = event1;
17610 try {
17611 listener.call(this, this.__data__, index, group);
17612 } finally {
17613 event = event0;
17614 }
17615 };
17616}
17617
17618function parseTypenames(typenames) {
17619 return typenames.trim().split(/^|\s+/).map(function(t) {
17620 var name = "", i = t.indexOf(".");
17621 if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
17622 return {type: t, name: name};
17623 });
17624}
17625
17626function onRemove(typename) {
17627 return function() {
17628 var on = this.__on;
17629 if (!on) return;
17630 for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
17631 if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
17632 this.removeEventListener(o.type, o.listener, o.capture);
17633 } else {
17634 on[++i] = o;
17635 }
17636 }
17637 if (++i) on.length = i;
17638 else delete this.__on;
17639 };
17640}
17641
17642function onAdd(typename, value, capture) {
17643 var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;
17644 return function(d, i, group) {
17645 var on = this.__on, o, listener = wrap(value, i, group);
17646 if (on) for (var j = 0, m = on.length; j < m; ++j) {
17647 if ((o = on[j]).type === typename.type && o.name === typename.name) {
17648 this.removeEventListener(o.type, o.listener, o.capture);
17649 this.addEventListener(o.type, o.listener = listener, o.capture = capture);
17650 o.value = value;
17651 return;
17652 }
17653 }
17654 this.addEventListener(typename.type, listener, capture);
17655 o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};
17656 if (!on) this.__on = [o];
17657 else on.push(o);
17658 };
17659}
17660
17661/* harmony default export */ __webpack_exports__["default"] = (function(typename, value, capture) {
17662 var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
17663
17664 if (arguments.length < 2) {
17665 var on = this.node().__on;
17666 if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
17667 for (i = 0, o = on[j]; i < n; ++i) {
17668 if ((t = typenames[i]).type === o.type && t.name === o.name) {
17669 return o.value;
17670 }
17671 }
17672 }
17673 return;
17674 }
17675
17676 on = value ? onAdd : onRemove;
17677 if (capture == null) capture = false;
17678 for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));
17679 return this;
17680});
17681
17682function customEvent(event1, listener, that, args) {
17683 var event0 = event;
17684 event1.sourceEvent = event;
17685 event = event1;
17686 try {
17687 return listener.apply(that, args);
17688 } finally {
17689 event = event0;
17690 }
17691}
17692
17693
17694/***/ }),
17695
17696/***/ "./node_modules/d3-selection/src/selection/order.js":
17697/*!**********************************************************!*\
17698 !*** ./node_modules/d3-selection/src/selection/order.js ***!
17699 \**********************************************************/
17700/*! exports provided: default */
17701/***/ (function(module, __webpack_exports__, __webpack_require__) {
17702
17703"use strict";
17704__webpack_require__.r(__webpack_exports__);
17705/* harmony default export */ __webpack_exports__["default"] = (function() {
17706
17707 for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
17708 for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
17709 if (node = group[i]) {
17710 if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
17711 next = node;
17712 }
17713 }
17714 }
17715
17716 return this;
17717});
17718
17719
17720/***/ }),
17721
17722/***/ "./node_modules/d3-selection/src/selection/property.js":
17723/*!*************************************************************!*\
17724 !*** ./node_modules/d3-selection/src/selection/property.js ***!
17725 \*************************************************************/
17726/*! exports provided: default */
17727/***/ (function(module, __webpack_exports__, __webpack_require__) {
17728
17729"use strict";
17730__webpack_require__.r(__webpack_exports__);
17731function propertyRemove(name) {
17732 return function() {
17733 delete this[name];
17734 };
17735}
17736
17737function propertyConstant(name, value) {
17738 return function() {
17739 this[name] = value;
17740 };
17741}
17742
17743function propertyFunction(name, value) {
17744 return function() {
17745 var v = value.apply(this, arguments);
17746 if (v == null) delete this[name];
17747 else this[name] = v;
17748 };
17749}
17750
17751/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
17752 return arguments.length > 1
17753 ? this.each((value == null
17754 ? propertyRemove : typeof value === "function"
17755 ? propertyFunction
17756 : propertyConstant)(name, value))
17757 : this.node()[name];
17758});
17759
17760
17761/***/ }),
17762
17763/***/ "./node_modules/d3-selection/src/selection/raise.js":
17764/*!**********************************************************!*\
17765 !*** ./node_modules/d3-selection/src/selection/raise.js ***!
17766 \**********************************************************/
17767/*! exports provided: default */
17768/***/ (function(module, __webpack_exports__, __webpack_require__) {
17769
17770"use strict";
17771__webpack_require__.r(__webpack_exports__);
17772function raise() {
17773 if (this.nextSibling) this.parentNode.appendChild(this);
17774}
17775
17776/* harmony default export */ __webpack_exports__["default"] = (function() {
17777 return this.each(raise);
17778});
17779
17780
17781/***/ }),
17782
17783/***/ "./node_modules/d3-selection/src/selection/remove.js":
17784/*!***********************************************************!*\
17785 !*** ./node_modules/d3-selection/src/selection/remove.js ***!
17786 \***********************************************************/
17787/*! exports provided: default */
17788/***/ (function(module, __webpack_exports__, __webpack_require__) {
17789
17790"use strict";
17791__webpack_require__.r(__webpack_exports__);
17792function remove() {
17793 var parent = this.parentNode;
17794 if (parent) parent.removeChild(this);
17795}
17796
17797/* harmony default export */ __webpack_exports__["default"] = (function() {
17798 return this.each(remove);
17799});
17800
17801
17802/***/ }),
17803
17804/***/ "./node_modules/d3-selection/src/selection/select.js":
17805/*!***********************************************************!*\
17806 !*** ./node_modules/d3-selection/src/selection/select.js ***!
17807 \***********************************************************/
17808/*! exports provided: default */
17809/***/ (function(module, __webpack_exports__, __webpack_require__) {
17810
17811"use strict";
17812__webpack_require__.r(__webpack_exports__);
17813/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
17814/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector */ "./node_modules/d3-selection/src/selector.js");
17815
17816
17817
17818/* harmony default export */ __webpack_exports__["default"] = (function(select) {
17819 if (typeof select !== "function") select = Object(_selector__WEBPACK_IMPORTED_MODULE_1__["default"])(select);
17820
17821 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
17822 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
17823 if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
17824 if ("__data__" in node) subnode.__data__ = node.__data__;
17825 subgroup[i] = subnode;
17826 }
17827 }
17828 }
17829
17830 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, this._parents);
17831});
17832
17833
17834/***/ }),
17835
17836/***/ "./node_modules/d3-selection/src/selection/selectAll.js":
17837/*!**************************************************************!*\
17838 !*** ./node_modules/d3-selection/src/selection/selectAll.js ***!
17839 \**************************************************************/
17840/*! exports provided: default */
17841/***/ (function(module, __webpack_exports__, __webpack_require__) {
17842
17843"use strict";
17844__webpack_require__.r(__webpack_exports__);
17845/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
17846/* harmony import */ var _selectorAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selectorAll */ "./node_modules/d3-selection/src/selectorAll.js");
17847
17848
17849
17850/* harmony default export */ __webpack_exports__["default"] = (function(select) {
17851 if (typeof select !== "function") select = Object(_selectorAll__WEBPACK_IMPORTED_MODULE_1__["default"])(select);
17852
17853 for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
17854 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
17855 if (node = group[i]) {
17856 subgroups.push(select.call(node, node.__data__, i, group));
17857 parents.push(node);
17858 }
17859 }
17860 }
17861
17862 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, parents);
17863});
17864
17865
17866/***/ }),
17867
17868/***/ "./node_modules/d3-selection/src/selection/size.js":
17869/*!*********************************************************!*\
17870 !*** ./node_modules/d3-selection/src/selection/size.js ***!
17871 \*********************************************************/
17872/*! exports provided: default */
17873/***/ (function(module, __webpack_exports__, __webpack_require__) {
17874
17875"use strict";
17876__webpack_require__.r(__webpack_exports__);
17877/* harmony default export */ __webpack_exports__["default"] = (function() {
17878 var size = 0;
17879 this.each(function() { ++size; });
17880 return size;
17881});
17882
17883
17884/***/ }),
17885
17886/***/ "./node_modules/d3-selection/src/selection/sort.js":
17887/*!*********************************************************!*\
17888 !*** ./node_modules/d3-selection/src/selection/sort.js ***!
17889 \*********************************************************/
17890/*! exports provided: default */
17891/***/ (function(module, __webpack_exports__, __webpack_require__) {
17892
17893"use strict";
17894__webpack_require__.r(__webpack_exports__);
17895/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
17896
17897
17898/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
17899 if (!compare) compare = ascending;
17900
17901 function compareNode(a, b) {
17902 return a && b ? compare(a.__data__, b.__data__) : !a - !b;
17903 }
17904
17905 for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
17906 for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
17907 if (node = group[i]) {
17908 sortgroup[i] = node;
17909 }
17910 }
17911 sortgroup.sort(compareNode);
17912 }
17913
17914 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](sortgroups, this._parents).order();
17915});
17916
17917function ascending(a, b) {
17918 return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
17919}
17920
17921
17922/***/ }),
17923
17924/***/ "./node_modules/d3-selection/src/selection/sparse.js":
17925/*!***********************************************************!*\
17926 !*** ./node_modules/d3-selection/src/selection/sparse.js ***!
17927 \***********************************************************/
17928/*! exports provided: default */
17929/***/ (function(module, __webpack_exports__, __webpack_require__) {
17930
17931"use strict";
17932__webpack_require__.r(__webpack_exports__);
17933/* harmony default export */ __webpack_exports__["default"] = (function(update) {
17934 return new Array(update.length);
17935});
17936
17937
17938/***/ }),
17939
17940/***/ "./node_modules/d3-selection/src/selection/style.js":
17941/*!**********************************************************!*\
17942 !*** ./node_modules/d3-selection/src/selection/style.js ***!
17943 \**********************************************************/
17944/*! exports provided: default, styleValue */
17945/***/ (function(module, __webpack_exports__, __webpack_require__) {
17946
17947"use strict";
17948__webpack_require__.r(__webpack_exports__);
17949/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styleValue", function() { return styleValue; });
17950/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window */ "./node_modules/d3-selection/src/window.js");
17951
17952
17953function styleRemove(name) {
17954 return function() {
17955 this.style.removeProperty(name);
17956 };
17957}
17958
17959function styleConstant(name, value, priority) {
17960 return function() {
17961 this.style.setProperty(name, value, priority);
17962 };
17963}
17964
17965function styleFunction(name, value, priority) {
17966 return function() {
17967 var v = value.apply(this, arguments);
17968 if (v == null) this.style.removeProperty(name);
17969 else this.style.setProperty(name, v, priority);
17970 };
17971}
17972
17973/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
17974 return arguments.length > 1
17975 ? this.each((value == null
17976 ? styleRemove : typeof value === "function"
17977 ? styleFunction
17978 : styleConstant)(name, value, priority == null ? "" : priority))
17979 : styleValue(this.node(), name);
17980});
17981
17982function styleValue(node, name) {
17983 return node.style.getPropertyValue(name)
17984 || Object(_window__WEBPACK_IMPORTED_MODULE_0__["default"])(node).getComputedStyle(node, null).getPropertyValue(name);
17985}
17986
17987
17988/***/ }),
17989
17990/***/ "./node_modules/d3-selection/src/selection/text.js":
17991/*!*********************************************************!*\
17992 !*** ./node_modules/d3-selection/src/selection/text.js ***!
17993 \*********************************************************/
17994/*! exports provided: default */
17995/***/ (function(module, __webpack_exports__, __webpack_require__) {
17996
17997"use strict";
17998__webpack_require__.r(__webpack_exports__);
17999function textRemove() {
18000 this.textContent = "";
18001}
18002
18003function textConstant(value) {
18004 return function() {
18005 this.textContent = value;
18006 };
18007}
18008
18009function textFunction(value) {
18010 return function() {
18011 var v = value.apply(this, arguments);
18012 this.textContent = v == null ? "" : v;
18013 };
18014}
18015
18016/* harmony default export */ __webpack_exports__["default"] = (function(value) {
18017 return arguments.length
18018 ? this.each(value == null
18019 ? textRemove : (typeof value === "function"
18020 ? textFunction
18021 : textConstant)(value))
18022 : this.node().textContent;
18023});
18024
18025
18026/***/ }),
18027
18028/***/ "./node_modules/d3-selection/src/selector.js":
18029/*!***************************************************!*\
18030 !*** ./node_modules/d3-selection/src/selector.js ***!
18031 \***************************************************/
18032/*! exports provided: default */
18033/***/ (function(module, __webpack_exports__, __webpack_require__) {
18034
18035"use strict";
18036__webpack_require__.r(__webpack_exports__);
18037function none() {}
18038
18039/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
18040 return selector == null ? none : function() {
18041 return this.querySelector(selector);
18042 };
18043});
18044
18045
18046/***/ }),
18047
18048/***/ "./node_modules/d3-selection/src/selectorAll.js":
18049/*!******************************************************!*\
18050 !*** ./node_modules/d3-selection/src/selectorAll.js ***!
18051 \******************************************************/
18052/*! exports provided: default */
18053/***/ (function(module, __webpack_exports__, __webpack_require__) {
18054
18055"use strict";
18056__webpack_require__.r(__webpack_exports__);
18057function empty() {
18058 return [];
18059}
18060
18061/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
18062 return selector == null ? empty : function() {
18063 return this.querySelectorAll(selector);
18064 };
18065});
18066
18067
18068/***/ }),
18069
18070/***/ "./node_modules/d3-selection/src/sourceEvent.js":
18071/*!******************************************************!*\
18072 !*** ./node_modules/d3-selection/src/sourceEvent.js ***!
18073 \******************************************************/
18074/*! exports provided: default */
18075/***/ (function(module, __webpack_exports__, __webpack_require__) {
18076
18077"use strict";
18078__webpack_require__.r(__webpack_exports__);
18079/* harmony import */ var _selection_on__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/on */ "./node_modules/d3-selection/src/selection/on.js");
18080
18081
18082/* harmony default export */ __webpack_exports__["default"] = (function() {
18083 var current = _selection_on__WEBPACK_IMPORTED_MODULE_0__["event"], source;
18084 while (source = current.sourceEvent) current = source;
18085 return current;
18086});
18087
18088
18089/***/ }),
18090
18091/***/ "./node_modules/d3-selection/src/touch.js":
18092/*!************************************************!*\
18093 !*** ./node_modules/d3-selection/src/touch.js ***!
18094 \************************************************/
18095/*! exports provided: default */
18096/***/ (function(module, __webpack_exports__, __webpack_require__) {
18097
18098"use strict";
18099__webpack_require__.r(__webpack_exports__);
18100/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
18101/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
18102
18103
18104
18105/* harmony default export */ __webpack_exports__["default"] = (function(node, touches, identifier) {
18106 if (arguments.length < 3) identifier = touches, touches = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])().changedTouches;
18107
18108 for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {
18109 if ((touch = touches[i]).identifier === identifier) {
18110 return Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, touch);
18111 }
18112 }
18113
18114 return null;
18115});
18116
18117
18118/***/ }),
18119
18120/***/ "./node_modules/d3-selection/src/touches.js":
18121/*!**************************************************!*\
18122 !*** ./node_modules/d3-selection/src/touches.js ***!
18123 \**************************************************/
18124/*! exports provided: default */
18125/***/ (function(module, __webpack_exports__, __webpack_require__) {
18126
18127"use strict";
18128__webpack_require__.r(__webpack_exports__);
18129/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
18130/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
18131
18132
18133
18134/* harmony default export */ __webpack_exports__["default"] = (function(node, touches) {
18135 if (touches == null) touches = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])().touches;
18136
18137 for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {
18138 points[i] = Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, touches[i]);
18139 }
18140
18141 return points;
18142});
18143
18144
18145/***/ }),
18146
18147/***/ "./node_modules/d3-selection/src/window.js":
18148/*!*************************************************!*\
18149 !*** ./node_modules/d3-selection/src/window.js ***!
18150 \*************************************************/
18151/*! exports provided: default */
18152/***/ (function(module, __webpack_exports__, __webpack_require__) {
18153
18154"use strict";
18155__webpack_require__.r(__webpack_exports__);
18156/* harmony default export */ __webpack_exports__["default"] = (function(node) {
18157 return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
18158 || (node.document && node) // node is a Window
18159 || node.defaultView; // node is a Document
18160});
18161
18162
18163/***/ }),
18164
18165/***/ "./node_modules/d3-shape/index.js":
18166/*!****************************************!*\
18167 !*** ./node_modules/d3-shape/index.js ***!
18168 \****************************************/
18169/*! 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 */
18170/***/ (function(module, __webpack_exports__, __webpack_require__) {
18171
18172"use strict";
18173__webpack_require__.r(__webpack_exports__);
18174/* harmony import */ var _src_arc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/arc */ "./node_modules/d3-shape/src/arc.js");
18175/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arc", function() { return _src_arc__WEBPACK_IMPORTED_MODULE_0__["default"]; });
18176
18177/* harmony import */ var _src_area__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/area */ "./node_modules/d3-shape/src/area.js");
18178/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "area", function() { return _src_area__WEBPACK_IMPORTED_MODULE_1__["default"]; });
18179
18180/* harmony import */ var _src_line__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/line */ "./node_modules/d3-shape/src/line.js");
18181/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "line", function() { return _src_line__WEBPACK_IMPORTED_MODULE_2__["default"]; });
18182
18183/* harmony import */ var _src_pie__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/pie */ "./node_modules/d3-shape/src/pie.js");
18184/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pie", function() { return _src_pie__WEBPACK_IMPORTED_MODULE_3__["default"]; });
18185
18186/* harmony import */ var _src_areaRadial__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/areaRadial */ "./node_modules/d3-shape/src/areaRadial.js");
18187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "areaRadial", function() { return _src_areaRadial__WEBPACK_IMPORTED_MODULE_4__["default"]; });
18188
18189/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialArea", function() { return _src_areaRadial__WEBPACK_IMPORTED_MODULE_4__["default"]; });
18190
18191/* harmony import */ var _src_lineRadial__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/lineRadial */ "./node_modules/d3-shape/src/lineRadial.js");
18192/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return _src_lineRadial__WEBPACK_IMPORTED_MODULE_5__["default"]; });
18193
18194/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialLine", function() { return _src_lineRadial__WEBPACK_IMPORTED_MODULE_5__["default"]; });
18195
18196/* harmony import */ var _src_pointRadial__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/pointRadial */ "./node_modules/d3-shape/src/pointRadial.js");
18197/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pointRadial", function() { return _src_pointRadial__WEBPACK_IMPORTED_MODULE_6__["default"]; });
18198
18199/* harmony import */ var _src_link_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/link/index */ "./node_modules/d3-shape/src/link/index.js");
18200/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return _src_link_index__WEBPACK_IMPORTED_MODULE_7__["linkHorizontal"]; });
18201
18202/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return _src_link_index__WEBPACK_IMPORTED_MODULE_7__["linkVertical"]; });
18203
18204/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return _src_link_index__WEBPACK_IMPORTED_MODULE_7__["linkRadial"]; });
18205
18206/* harmony import */ var _src_symbol__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/symbol */ "./node_modules/d3-shape/src/symbol.js");
18207/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbol", function() { return _src_symbol__WEBPACK_IMPORTED_MODULE_8__["default"]; });
18208
18209/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return _src_symbol__WEBPACK_IMPORTED_MODULE_8__["symbols"]; });
18210
18211/* harmony import */ var _src_symbol_circle__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/symbol/circle */ "./node_modules/d3-shape/src/symbol/circle.js");
18212/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCircle", function() { return _src_symbol_circle__WEBPACK_IMPORTED_MODULE_9__["default"]; });
18213
18214/* harmony import */ var _src_symbol_cross__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/symbol/cross */ "./node_modules/d3-shape/src/symbol/cross.js");
18215/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCross", function() { return _src_symbol_cross__WEBPACK_IMPORTED_MODULE_10__["default"]; });
18216
18217/* harmony import */ var _src_symbol_diamond__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/symbol/diamond */ "./node_modules/d3-shape/src/symbol/diamond.js");
18218/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolDiamond", function() { return _src_symbol_diamond__WEBPACK_IMPORTED_MODULE_11__["default"]; });
18219
18220/* harmony import */ var _src_symbol_square__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/symbol/square */ "./node_modules/d3-shape/src/symbol/square.js");
18221/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolSquare", function() { return _src_symbol_square__WEBPACK_IMPORTED_MODULE_12__["default"]; });
18222
18223/* harmony import */ var _src_symbol_star__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/symbol/star */ "./node_modules/d3-shape/src/symbol/star.js");
18224/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolStar", function() { return _src_symbol_star__WEBPACK_IMPORTED_MODULE_13__["default"]; });
18225
18226/* harmony import */ var _src_symbol_triangle__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/symbol/triangle */ "./node_modules/d3-shape/src/symbol/triangle.js");
18227/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolTriangle", function() { return _src_symbol_triangle__WEBPACK_IMPORTED_MODULE_14__["default"]; });
18228
18229/* harmony import */ var _src_symbol_wye__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/symbol/wye */ "./node_modules/d3-shape/src/symbol/wye.js");
18230/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolWye", function() { return _src_symbol_wye__WEBPACK_IMPORTED_MODULE_15__["default"]; });
18231
18232/* harmony import */ var _src_curve_basisClosed__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./src/curve/basisClosed */ "./node_modules/d3-shape/src/curve/basisClosed.js");
18233/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisClosed", function() { return _src_curve_basisClosed__WEBPACK_IMPORTED_MODULE_16__["default"]; });
18234
18235/* harmony import */ var _src_curve_basisOpen__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./src/curve/basisOpen */ "./node_modules/d3-shape/src/curve/basisOpen.js");
18236/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisOpen", function() { return _src_curve_basisOpen__WEBPACK_IMPORTED_MODULE_17__["default"]; });
18237
18238/* harmony import */ var _src_curve_basis__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./src/curve/basis */ "./node_modules/d3-shape/src/curve/basis.js");
18239/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasis", function() { return _src_curve_basis__WEBPACK_IMPORTED_MODULE_18__["default"]; });
18240
18241/* harmony import */ var _src_curve_bundle__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./src/curve/bundle */ "./node_modules/d3-shape/src/curve/bundle.js");
18242/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBundle", function() { return _src_curve_bundle__WEBPACK_IMPORTED_MODULE_19__["default"]; });
18243
18244/* harmony import */ var _src_curve_cardinalClosed__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./src/curve/cardinalClosed */ "./node_modules/d3-shape/src/curve/cardinalClosed.js");
18245/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalClosed", function() { return _src_curve_cardinalClosed__WEBPACK_IMPORTED_MODULE_20__["default"]; });
18246
18247/* harmony import */ var _src_curve_cardinalOpen__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./src/curve/cardinalOpen */ "./node_modules/d3-shape/src/curve/cardinalOpen.js");
18248/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalOpen", function() { return _src_curve_cardinalOpen__WEBPACK_IMPORTED_MODULE_21__["default"]; });
18249
18250/* harmony import */ var _src_curve_cardinal__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./src/curve/cardinal */ "./node_modules/d3-shape/src/curve/cardinal.js");
18251/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinal", function() { return _src_curve_cardinal__WEBPACK_IMPORTED_MODULE_22__["default"]; });
18252
18253/* harmony import */ var _src_curve_catmullRomClosed__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./src/curve/catmullRomClosed */ "./node_modules/d3-shape/src/curve/catmullRomClosed.js");
18254/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomClosed", function() { return _src_curve_catmullRomClosed__WEBPACK_IMPORTED_MODULE_23__["default"]; });
18255
18256/* harmony import */ var _src_curve_catmullRomOpen__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./src/curve/catmullRomOpen */ "./node_modules/d3-shape/src/curve/catmullRomOpen.js");
18257/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomOpen", function() { return _src_curve_catmullRomOpen__WEBPACK_IMPORTED_MODULE_24__["default"]; });
18258
18259/* harmony import */ var _src_curve_catmullRom__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./src/curve/catmullRom */ "./node_modules/d3-shape/src/curve/catmullRom.js");
18260/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRom", function() { return _src_curve_catmullRom__WEBPACK_IMPORTED_MODULE_25__["default"]; });
18261
18262/* harmony import */ var _src_curve_linearClosed__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./src/curve/linearClosed */ "./node_modules/d3-shape/src/curve/linearClosed.js");
18263/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinearClosed", function() { return _src_curve_linearClosed__WEBPACK_IMPORTED_MODULE_26__["default"]; });
18264
18265/* harmony import */ var _src_curve_linear__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./src/curve/linear */ "./node_modules/d3-shape/src/curve/linear.js");
18266/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinear", function() { return _src_curve_linear__WEBPACK_IMPORTED_MODULE_27__["default"]; });
18267
18268/* harmony import */ var _src_curve_monotone__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./src/curve/monotone */ "./node_modules/d3-shape/src/curve/monotone.js");
18269/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneX", function() { return _src_curve_monotone__WEBPACK_IMPORTED_MODULE_28__["monotoneX"]; });
18270
18271/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneY", function() { return _src_curve_monotone__WEBPACK_IMPORTED_MODULE_28__["monotoneY"]; });
18272
18273/* harmony import */ var _src_curve_natural__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./src/curve/natural */ "./node_modules/d3-shape/src/curve/natural.js");
18274/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveNatural", function() { return _src_curve_natural__WEBPACK_IMPORTED_MODULE_29__["default"]; });
18275
18276/* harmony import */ var _src_curve_step__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./src/curve/step */ "./node_modules/d3-shape/src/curve/step.js");
18277/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStep", function() { return _src_curve_step__WEBPACK_IMPORTED_MODULE_30__["default"]; });
18278
18279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepAfter", function() { return _src_curve_step__WEBPACK_IMPORTED_MODULE_30__["stepAfter"]; });
18280
18281/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepBefore", function() { return _src_curve_step__WEBPACK_IMPORTED_MODULE_30__["stepBefore"]; });
18282
18283/* harmony import */ var _src_stack__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./src/stack */ "./node_modules/d3-shape/src/stack.js");
18284/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stack", function() { return _src_stack__WEBPACK_IMPORTED_MODULE_31__["default"]; });
18285
18286/* harmony import */ var _src_offset_expand__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./src/offset/expand */ "./node_modules/d3-shape/src/offset/expand.js");
18287/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetExpand", function() { return _src_offset_expand__WEBPACK_IMPORTED_MODULE_32__["default"]; });
18288
18289/* harmony import */ var _src_offset_diverging__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./src/offset/diverging */ "./node_modules/d3-shape/src/offset/diverging.js");
18290/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetDiverging", function() { return _src_offset_diverging__WEBPACK_IMPORTED_MODULE_33__["default"]; });
18291
18292/* harmony import */ var _src_offset_none__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./src/offset/none */ "./node_modules/d3-shape/src/offset/none.js");
18293/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetNone", function() { return _src_offset_none__WEBPACK_IMPORTED_MODULE_34__["default"]; });
18294
18295/* harmony import */ var _src_offset_silhouette__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./src/offset/silhouette */ "./node_modules/d3-shape/src/offset/silhouette.js");
18296/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetSilhouette", function() { return _src_offset_silhouette__WEBPACK_IMPORTED_MODULE_35__["default"]; });
18297
18298/* harmony import */ var _src_offset_wiggle__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./src/offset/wiggle */ "./node_modules/d3-shape/src/offset/wiggle.js");
18299/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetWiggle", function() { return _src_offset_wiggle__WEBPACK_IMPORTED_MODULE_36__["default"]; });
18300
18301/* harmony import */ var _src_order_ascending__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./src/order/ascending */ "./node_modules/d3-shape/src/order/ascending.js");
18302/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderAscending", function() { return _src_order_ascending__WEBPACK_IMPORTED_MODULE_37__["default"]; });
18303
18304/* harmony import */ var _src_order_descending__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./src/order/descending */ "./node_modules/d3-shape/src/order/descending.js");
18305/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderDescending", function() { return _src_order_descending__WEBPACK_IMPORTED_MODULE_38__["default"]; });
18306
18307/* harmony import */ var _src_order_insideOut__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./src/order/insideOut */ "./node_modules/d3-shape/src/order/insideOut.js");
18308/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderInsideOut", function() { return _src_order_insideOut__WEBPACK_IMPORTED_MODULE_39__["default"]; });
18309
18310/* harmony import */ var _src_order_none__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./src/order/none */ "./node_modules/d3-shape/src/order/none.js");
18311/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderNone", function() { return _src_order_none__WEBPACK_IMPORTED_MODULE_40__["default"]; });
18312
18313/* harmony import */ var _src_order_reverse__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./src/order/reverse */ "./node_modules/d3-shape/src/order/reverse.js");
18314/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderReverse", function() { return _src_order_reverse__WEBPACK_IMPORTED_MODULE_41__["default"]; });
18315
18316
18317
18318
18319
18320 // Note: radialArea is deprecated!
18321 // Note: radialLine is deprecated!
18322
18323
18324
18325
18326
18327
18328
18329
18330
18331
18332
18333
18334
18335
18336
18337
18338
18339
18340
18341
18342
18343
18344
18345
18346
18347
18348
18349
18350
18351
18352
18353
18354
18355
18356
18357
18358
18359
18360
18361
18362
18363/***/ }),
18364
18365/***/ "./node_modules/d3-shape/src/arc.js":
18366/*!******************************************!*\
18367 !*** ./node_modules/d3-shape/src/arc.js ***!
18368 \******************************************/
18369/*! exports provided: default */
18370/***/ (function(module, __webpack_exports__, __webpack_require__) {
18371
18372"use strict";
18373__webpack_require__.r(__webpack_exports__);
18374/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/index.js");
18375/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
18376/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-shape/src/math.js");
18377
18378
18379
18380
18381function arcInnerRadius(d) {
18382 return d.innerRadius;
18383}
18384
18385function arcOuterRadius(d) {
18386 return d.outerRadius;
18387}
18388
18389function arcStartAngle(d) {
18390 return d.startAngle;
18391}
18392
18393function arcEndAngle(d) {
18394 return d.endAngle;
18395}
18396
18397function arcPadAngle(d) {
18398 return d && d.padAngle; // Note: optional!
18399}
18400
18401function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
18402 var x10 = x1 - x0, y10 = y1 - y0,
18403 x32 = x3 - x2, y32 = y3 - y2,
18404 t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / (y32 * x10 - x32 * y10);
18405 return [x0 + t * x10, y0 + t * y10];
18406}
18407
18408// Compute perpendicular offset line of length rc.
18409// http://mathworld.wolfram.com/Circle-LineIntersection.html
18410function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
18411 var x01 = x0 - x1,
18412 y01 = y0 - y1,
18413 lo = (cw ? rc : -rc) / Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(x01 * x01 + y01 * y01),
18414 ox = lo * y01,
18415 oy = -lo * x01,
18416 x11 = x0 + ox,
18417 y11 = y0 + oy,
18418 x10 = x1 + ox,
18419 y10 = y1 + oy,
18420 x00 = (x11 + x10) / 2,
18421 y00 = (y11 + y10) / 2,
18422 dx = x10 - x11,
18423 dy = y10 - y11,
18424 d2 = dx * dx + dy * dy,
18425 r = r1 - rc,
18426 D = x11 * y10 - x10 * y11,
18427 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)),
18428 cx0 = (D * dy - dx * d) / d2,
18429 cy0 = (-D * dx - dy * d) / d2,
18430 cx1 = (D * dy + dx * d) / d2,
18431 cy1 = (-D * dx + dy * d) / d2,
18432 dx0 = cx0 - x00,
18433 dy0 = cy0 - y00,
18434 dx1 = cx1 - x00,
18435 dy1 = cy1 - y00;
18436
18437 // Pick the closer of the two intersection points.
18438 // TODO Is there a faster way to determine which intersection to use?
18439 if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
18440
18441 return {
18442 cx: cx0,
18443 cy: cy0,
18444 x01: -ox,
18445 y01: -oy,
18446 x11: cx0 * (r1 / r - 1),
18447 y11: cy0 * (r1 / r - 1)
18448 };
18449}
18450
18451/* harmony default export */ __webpack_exports__["default"] = (function() {
18452 var innerRadius = arcInnerRadius,
18453 outerRadius = arcOuterRadius,
18454 cornerRadius = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(0),
18455 padRadius = null,
18456 startAngle = arcStartAngle,
18457 endAngle = arcEndAngle,
18458 padAngle = arcPadAngle,
18459 context = null;
18460
18461 function arc() {
18462 var buffer,
18463 r,
18464 r0 = +innerRadius.apply(this, arguments),
18465 r1 = +outerRadius.apply(this, arguments),
18466 a0 = startAngle.apply(this, arguments) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
18467 a1 = endAngle.apply(this, arguments) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
18468 da = Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(a1 - a0),
18469 cw = a1 > a0;
18470
18471 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
18472
18473 // Ensure that the outer radius is always larger than the inner radius.
18474 if (r1 < r0) r = r1, r1 = r0, r0 = r;
18475
18476 // Is it a point?
18477 if (!(r1 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.moveTo(0, 0);
18478
18479 // Or is it a circle or annulus?
18480 else if (da > _math__WEBPACK_IMPORTED_MODULE_2__["tau"] - _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
18481 context.moveTo(r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a0), r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a0));
18482 context.arc(0, 0, r1, a0, a1, !cw);
18483 if (r0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
18484 context.moveTo(r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a1), r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a1));
18485 context.arc(0, 0, r0, a1, a0, cw);
18486 }
18487 }
18488
18489 // Or is it a circular or annular sector?
18490 else {
18491 var a01 = a0,
18492 a11 = a1,
18493 a00 = a0,
18494 a10 = a1,
18495 da0 = da,
18496 da1 = da,
18497 ap = padAngle.apply(this, arguments) / 2,
18498 rp = (ap > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) && (padRadius ? +padRadius.apply(this, arguments) : Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(r0 * r0 + r1 * r1)),
18499 rc = Object(_math__WEBPACK_IMPORTED_MODULE_2__["min"])(Object(_math__WEBPACK_IMPORTED_MODULE_2__["abs"])(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
18500 rc0 = rc,
18501 rc1 = rc,
18502 t0,
18503 t1;
18504
18505 // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
18506 if (rp > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
18507 var p0 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["asin"])(rp / r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(ap)),
18508 p1 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["asin"])(rp / r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(ap));
18509 if ((da0 -= p0 * 2) > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
18510 else da0 = 0, a00 = a10 = (a0 + a1) / 2;
18511 if ((da1 -= p1 * 2) > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
18512 else da1 = 0, a01 = a11 = (a0 + a1) / 2;
18513 }
18514
18515 var x01 = r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a01),
18516 y01 = r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a01),
18517 x10 = r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a10),
18518 y10 = r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a10);
18519
18520 // Apply rounded corners?
18521 if (rc > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
18522 var x11 = r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a11),
18523 y11 = r1 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a11),
18524 x00 = r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a00),
18525 y00 = r0 * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a00);
18526
18527 // Restrict the corner radius according to the sector angle.
18528 if (da < _math__WEBPACK_IMPORTED_MODULE_2__["pi"]) {
18529 var oc = da0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"] ? intersect(x01, y01, x00, y00, x11, y11, x10, y10) : [x10, y10],
18530 ax = x01 - oc[0],
18531 ay = y01 - oc[1],
18532 bx = x11 - oc[0],
18533 by = y11 - oc[1],
18534 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),
18535 lc = Object(_math__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(oc[0] * oc[0] + oc[1] * oc[1]);
18536 rc0 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["min"])(rc, (r0 - lc) / (kc - 1));
18537 rc1 = Object(_math__WEBPACK_IMPORTED_MODULE_2__["min"])(rc, (r1 - lc) / (kc + 1));
18538 }
18539 }
18540
18541 // Is the sector collapsed to a line?
18542 if (!(da1 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.moveTo(x01, y01);
18543
18544 // Does the sector’s outer ring have rounded corners?
18545 else if (rc1 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
18546 t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
18547 t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
18548
18549 context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
18550
18551 // Have the corners merged?
18552 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);
18553
18554 // Otherwise, draw the two corners and the ring.
18555 else {
18556 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);
18557 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);
18558 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);
18559 }
18560 }
18561
18562 // Or is the outer ring just a circular arc?
18563 else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
18564
18565 // Is there no inner ring, and it’s a circular sector?
18566 // Or perhaps it’s an annular sector collapsed due to padding?
18567 if (!(r0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) || !(da0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.lineTo(x10, y10);
18568
18569 // Does the sector’s inner ring (or point) have rounded corners?
18570 else if (rc0 > _math__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
18571 t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
18572 t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
18573
18574 context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
18575
18576 // Have the corners merged?
18577 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);
18578
18579 // Otherwise, draw the two corners and the ring.
18580 else {
18581 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);
18582 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);
18583 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);
18584 }
18585 }
18586
18587 // Or is the inner ring just a circular arc?
18588 else context.arc(0, 0, r0, a10, a00, cw);
18589 }
18590
18591 context.closePath();
18592
18593 if (buffer) return context = null, buffer + "" || null;
18594 }
18595
18596 arc.centroid = function() {
18597 var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
18598 a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - _math__WEBPACK_IMPORTED_MODULE_2__["pi"] / 2;
18599 return [Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(a) * r, Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(a) * r];
18600 };
18601
18602 arc.innerRadius = function(_) {
18603 return arguments.length ? (innerRadius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : innerRadius;
18604 };
18605
18606 arc.outerRadius = function(_) {
18607 return arguments.length ? (outerRadius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : outerRadius;
18608 };
18609
18610 arc.cornerRadius = function(_) {
18611 return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : cornerRadius;
18612 };
18613
18614 arc.padRadius = function(_) {
18615 return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : padRadius;
18616 };
18617
18618 arc.startAngle = function(_) {
18619 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : startAngle;
18620 };
18621
18622 arc.endAngle = function(_) {
18623 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : endAngle;
18624 };
18625
18626 arc.padAngle = function(_) {
18627 return arguments.length ? (padAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : padAngle;
18628 };
18629
18630 arc.context = function(_) {
18631 return arguments.length ? ((context = _ == null ? null : _), arc) : context;
18632 };
18633
18634 return arc;
18635});
18636
18637
18638/***/ }),
18639
18640/***/ "./node_modules/d3-shape/src/area.js":
18641/*!*******************************************!*\
18642 !*** ./node_modules/d3-shape/src/area.js ***!
18643 \*******************************************/
18644/*! exports provided: default */
18645/***/ (function(module, __webpack_exports__, __webpack_require__) {
18646
18647"use strict";
18648__webpack_require__.r(__webpack_exports__);
18649/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/index.js");
18650/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
18651/* harmony import */ var _curve_linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curve/linear */ "./node_modules/d3-shape/src/curve/linear.js");
18652/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./line */ "./node_modules/d3-shape/src/line.js");
18653/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./point */ "./node_modules/d3-shape/src/point.js");
18654
18655
18656
18657
18658
18659
18660/* harmony default export */ __webpack_exports__["default"] = (function() {
18661 var x0 = _point__WEBPACK_IMPORTED_MODULE_4__["x"],
18662 x1 = null,
18663 y0 = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(0),
18664 y1 = _point__WEBPACK_IMPORTED_MODULE_4__["y"],
18665 defined = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(true),
18666 context = null,
18667 curve = _curve_linear__WEBPACK_IMPORTED_MODULE_2__["default"],
18668 output = null;
18669
18670 function area(data) {
18671 var i,
18672 j,
18673 k,
18674 n = data.length,
18675 d,
18676 defined0 = false,
18677 buffer,
18678 x0z = new Array(n),
18679 y0z = new Array(n);
18680
18681 if (context == null) output = curve(buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])());
18682
18683 for (i = 0; i <= n; ++i) {
18684 if (!(i < n && defined(d = data[i], i, data)) === defined0) {
18685 if (defined0 = !defined0) {
18686 j = i;
18687 output.areaStart();
18688 output.lineStart();
18689 } else {
18690 output.lineEnd();
18691 output.lineStart();
18692 for (k = i - 1; k >= j; --k) {
18693 output.point(x0z[k], y0z[k]);
18694 }
18695 output.lineEnd();
18696 output.areaEnd();
18697 }
18698 }
18699 if (defined0) {
18700 x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
18701 output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
18702 }
18703 }
18704
18705 if (buffer) return output = null, buffer + "" || null;
18706 }
18707
18708 function arealine() {
18709 return Object(_line__WEBPACK_IMPORTED_MODULE_3__["default"])().defined(defined).curve(curve).context(context);
18710 }
18711
18712 area.x = function(_) {
18713 return arguments.length ? (x0 = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), x1 = null, area) : x0;
18714 };
18715
18716 area.x0 = function(_) {
18717 return arguments.length ? (x0 = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : x0;
18718 };
18719
18720 area.x1 = function(_) {
18721 return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : x1;
18722 };
18723
18724 area.y = function(_) {
18725 return arguments.length ? (y0 = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), y1 = null, area) : y0;
18726 };
18727
18728 area.y0 = function(_) {
18729 return arguments.length ? (y0 = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : y0;
18730 };
18731
18732 area.y1 = function(_) {
18733 return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : y1;
18734 };
18735
18736 area.lineX0 =
18737 area.lineY0 = function() {
18738 return arealine().x(x0).y(y0);
18739 };
18740
18741 area.lineY1 = function() {
18742 return arealine().x(x0).y(y1);
18743 };
18744
18745 area.lineX1 = function() {
18746 return arealine().x(x1).y(y0);
18747 };
18748
18749 area.defined = function(_) {
18750 return arguments.length ? (defined = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), area) : defined;
18751 };
18752
18753 area.curve = function(_) {
18754 return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
18755 };
18756
18757 area.context = function(_) {
18758 return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
18759 };
18760
18761 return area;
18762});
18763
18764
18765/***/ }),
18766
18767/***/ "./node_modules/d3-shape/src/areaRadial.js":
18768/*!*************************************************!*\
18769 !*** ./node_modules/d3-shape/src/areaRadial.js ***!
18770 \*************************************************/
18771/*! exports provided: default */
18772/***/ (function(module, __webpack_exports__, __webpack_require__) {
18773
18774"use strict";
18775__webpack_require__.r(__webpack_exports__);
18776/* harmony import */ var _curve_radial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial */ "./node_modules/d3-shape/src/curve/radial.js");
18777/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area */ "./node_modules/d3-shape/src/area.js");
18778/* harmony import */ var _lineRadial__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lineRadial */ "./node_modules/d3-shape/src/lineRadial.js");
18779
18780
18781
18782
18783/* harmony default export */ __webpack_exports__["default"] = (function() {
18784 var a = Object(_area__WEBPACK_IMPORTED_MODULE_1__["default"])().curve(_curve_radial__WEBPACK_IMPORTED_MODULE_0__["curveRadialLinear"]),
18785 c = a.curve,
18786 x0 = a.lineX0,
18787 x1 = a.lineX1,
18788 y0 = a.lineY0,
18789 y1 = a.lineY1;
18790
18791 a.angle = a.x, delete a.x;
18792 a.startAngle = a.x0, delete a.x0;
18793 a.endAngle = a.x1, delete a.x1;
18794 a.radius = a.y, delete a.y;
18795 a.innerRadius = a.y0, delete a.y0;
18796 a.outerRadius = a.y1, delete a.y1;
18797 a.lineStartAngle = function() { return Object(_lineRadial__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(x0()); }, delete a.lineX0;
18798 a.lineEndAngle = function() { return Object(_lineRadial__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(x1()); }, delete a.lineX1;
18799 a.lineInnerRadius = function() { return Object(_lineRadial__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(y0()); }, delete a.lineY0;
18800 a.lineOuterRadius = function() { return Object(_lineRadial__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(y1()); }, delete a.lineY1;
18801
18802 a.curve = function(_) {
18803 return arguments.length ? c(Object(_curve_radial__WEBPACK_IMPORTED_MODULE_0__["default"])(_)) : c()._curve;
18804 };
18805
18806 return a;
18807});
18808
18809
18810/***/ }),
18811
18812/***/ "./node_modules/d3-shape/src/array.js":
18813/*!********************************************!*\
18814 !*** ./node_modules/d3-shape/src/array.js ***!
18815 \********************************************/
18816/*! exports provided: slice */
18817/***/ (function(module, __webpack_exports__, __webpack_require__) {
18818
18819"use strict";
18820__webpack_require__.r(__webpack_exports__);
18821/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
18822var slice = Array.prototype.slice;
18823
18824
18825/***/ }),
18826
18827/***/ "./node_modules/d3-shape/src/constant.js":
18828/*!***********************************************!*\
18829 !*** ./node_modules/d3-shape/src/constant.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 default export */ __webpack_exports__["default"] = (function(x) {
18837 return function constant() {
18838 return x;
18839 };
18840});
18841
18842
18843/***/ }),
18844
18845/***/ "./node_modules/d3-shape/src/curve/basis.js":
18846/*!**************************************************!*\
18847 !*** ./node_modules/d3-shape/src/curve/basis.js ***!
18848 \**************************************************/
18849/*! exports provided: point, Basis, default */
18850/***/ (function(module, __webpack_exports__, __webpack_require__) {
18851
18852"use strict";
18853__webpack_require__.r(__webpack_exports__);
18854/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
18855/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Basis", function() { return Basis; });
18856function point(that, x, y) {
18857 that._context.bezierCurveTo(
18858 (2 * that._x0 + that._x1) / 3,
18859 (2 * that._y0 + that._y1) / 3,
18860 (that._x0 + 2 * that._x1) / 3,
18861 (that._y0 + 2 * that._y1) / 3,
18862 (that._x0 + 4 * that._x1 + x) / 6,
18863 (that._y0 + 4 * that._y1 + y) / 6
18864 );
18865}
18866
18867function Basis(context) {
18868 this._context = context;
18869}
18870
18871Basis.prototype = {
18872 areaStart: function() {
18873 this._line = 0;
18874 },
18875 areaEnd: function() {
18876 this._line = NaN;
18877 },
18878 lineStart: function() {
18879 this._x0 = this._x1 =
18880 this._y0 = this._y1 = NaN;
18881 this._point = 0;
18882 },
18883 lineEnd: function() {
18884 switch (this._point) {
18885 case 3: point(this, this._x1, this._y1); // proceed
18886 case 2: this._context.lineTo(this._x1, this._y1); break;
18887 }
18888 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
18889 this._line = 1 - this._line;
18890 },
18891 point: function(x, y) {
18892 x = +x, y = +y;
18893 switch (this._point) {
18894 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
18895 case 1: this._point = 2; break;
18896 case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed
18897 default: point(this, x, y); break;
18898 }
18899 this._x0 = this._x1, this._x1 = x;
18900 this._y0 = this._y1, this._y1 = y;
18901 }
18902};
18903
18904/* harmony default export */ __webpack_exports__["default"] = (function(context) {
18905 return new Basis(context);
18906});
18907
18908
18909/***/ }),
18910
18911/***/ "./node_modules/d3-shape/src/curve/basisClosed.js":
18912/*!********************************************************!*\
18913 !*** ./node_modules/d3-shape/src/curve/basisClosed.js ***!
18914 \********************************************************/
18915/*! exports provided: default */
18916/***/ (function(module, __webpack_exports__, __webpack_require__) {
18917
18918"use strict";
18919__webpack_require__.r(__webpack_exports__);
18920/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-shape/src/noop.js");
18921/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-shape/src/curve/basis.js");
18922
18923
18924
18925function BasisClosed(context) {
18926 this._context = context;
18927}
18928
18929BasisClosed.prototype = {
18930 areaStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
18931 areaEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
18932 lineStart: function() {
18933 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
18934 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
18935 this._point = 0;
18936 },
18937 lineEnd: function() {
18938 switch (this._point) {
18939 case 1: {
18940 this._context.moveTo(this._x2, this._y2);
18941 this._context.closePath();
18942 break;
18943 }
18944 case 2: {
18945 this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
18946 this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
18947 this._context.closePath();
18948 break;
18949 }
18950 case 3: {
18951 this.point(this._x2, this._y2);
18952 this.point(this._x3, this._y3);
18953 this.point(this._x4, this._y4);
18954 break;
18955 }
18956 }
18957 },
18958 point: function(x, y) {
18959 x = +x, y = +y;
18960 switch (this._point) {
18961 case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
18962 case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
18963 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;
18964 default: Object(_basis__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
18965 }
18966 this._x0 = this._x1, this._x1 = x;
18967 this._y0 = this._y1, this._y1 = y;
18968 }
18969};
18970
18971/* harmony default export */ __webpack_exports__["default"] = (function(context) {
18972 return new BasisClosed(context);
18973});
18974
18975
18976/***/ }),
18977
18978/***/ "./node_modules/d3-shape/src/curve/basisOpen.js":
18979/*!******************************************************!*\
18980 !*** ./node_modules/d3-shape/src/curve/basisOpen.js ***!
18981 \******************************************************/
18982/*! exports provided: default */
18983/***/ (function(module, __webpack_exports__, __webpack_require__) {
18984
18985"use strict";
18986__webpack_require__.r(__webpack_exports__);
18987/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-shape/src/curve/basis.js");
18988
18989
18990function BasisOpen(context) {
18991 this._context = context;
18992}
18993
18994BasisOpen.prototype = {
18995 areaStart: function() {
18996 this._line = 0;
18997 },
18998 areaEnd: function() {
18999 this._line = NaN;
19000 },
19001 lineStart: function() {
19002 this._x0 = this._x1 =
19003 this._y0 = this._y1 = NaN;
19004 this._point = 0;
19005 },
19006 lineEnd: function() {
19007 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
19008 this._line = 1 - this._line;
19009 },
19010 point: function(x, y) {
19011 x = +x, y = +y;
19012 switch (this._point) {
19013 case 0: this._point = 1; break;
19014 case 1: this._point = 2; break;
19015 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;
19016 case 3: this._point = 4; // proceed
19017 default: Object(_basis__WEBPACK_IMPORTED_MODULE_0__["point"])(this, x, y); break;
19018 }
19019 this._x0 = this._x1, this._x1 = x;
19020 this._y0 = this._y1, this._y1 = y;
19021 }
19022};
19023
19024/* harmony default export */ __webpack_exports__["default"] = (function(context) {
19025 return new BasisOpen(context);
19026});
19027
19028
19029/***/ }),
19030
19031/***/ "./node_modules/d3-shape/src/curve/bundle.js":
19032/*!***************************************************!*\
19033 !*** ./node_modules/d3-shape/src/curve/bundle.js ***!
19034 \***************************************************/
19035/*! exports provided: default */
19036/***/ (function(module, __webpack_exports__, __webpack_require__) {
19037
19038"use strict";
19039__webpack_require__.r(__webpack_exports__);
19040/* harmony import */ var _basis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis */ "./node_modules/d3-shape/src/curve/basis.js");
19041
19042
19043function Bundle(context, beta) {
19044 this._basis = new _basis__WEBPACK_IMPORTED_MODULE_0__["Basis"](context);
19045 this._beta = beta;
19046}
19047
19048Bundle.prototype = {
19049 lineStart: function() {
19050 this._x = [];
19051 this._y = [];
19052 this._basis.lineStart();
19053 },
19054 lineEnd: function() {
19055 var x = this._x,
19056 y = this._y,
19057 j = x.length - 1;
19058
19059 if (j > 0) {
19060 var x0 = x[0],
19061 y0 = y[0],
19062 dx = x[j] - x0,
19063 dy = y[j] - y0,
19064 i = -1,
19065 t;
19066
19067 while (++i <= j) {
19068 t = i / j;
19069 this._basis.point(
19070 this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
19071 this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
19072 );
19073 }
19074 }
19075
19076 this._x = this._y = null;
19077 this._basis.lineEnd();
19078 },
19079 point: function(x, y) {
19080 this._x.push(+x);
19081 this._y.push(+y);
19082 }
19083};
19084
19085/* harmony default export */ __webpack_exports__["default"] = ((function custom(beta) {
19086
19087 function bundle(context) {
19088 return beta === 1 ? new _basis__WEBPACK_IMPORTED_MODULE_0__["Basis"](context) : new Bundle(context, beta);
19089 }
19090
19091 bundle.beta = function(beta) {
19092 return custom(+beta);
19093 };
19094
19095 return bundle;
19096})(0.85));
19097
19098
19099/***/ }),
19100
19101/***/ "./node_modules/d3-shape/src/curve/cardinal.js":
19102/*!*****************************************************!*\
19103 !*** ./node_modules/d3-shape/src/curve/cardinal.js ***!
19104 \*****************************************************/
19105/*! exports provided: point, Cardinal, default */
19106/***/ (function(module, __webpack_exports__, __webpack_require__) {
19107
19108"use strict";
19109__webpack_require__.r(__webpack_exports__);
19110/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
19111/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Cardinal", function() { return Cardinal; });
19112function point(that, x, y) {
19113 that._context.bezierCurveTo(
19114 that._x1 + that._k * (that._x2 - that._x0),
19115 that._y1 + that._k * (that._y2 - that._y0),
19116 that._x2 + that._k * (that._x1 - x),
19117 that._y2 + that._k * (that._y1 - y),
19118 that._x2,
19119 that._y2
19120 );
19121}
19122
19123function Cardinal(context, tension) {
19124 this._context = context;
19125 this._k = (1 - tension) / 6;
19126}
19127
19128Cardinal.prototype = {
19129 areaStart: function() {
19130 this._line = 0;
19131 },
19132 areaEnd: function() {
19133 this._line = NaN;
19134 },
19135 lineStart: function() {
19136 this._x0 = this._x1 = this._x2 =
19137 this._y0 = this._y1 = this._y2 = NaN;
19138 this._point = 0;
19139 },
19140 lineEnd: function() {
19141 switch (this._point) {
19142 case 2: this._context.lineTo(this._x2, this._y2); break;
19143 case 3: point(this, this._x1, this._y1); break;
19144 }
19145 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
19146 this._line = 1 - this._line;
19147 },
19148 point: function(x, y) {
19149 x = +x, y = +y;
19150 switch (this._point) {
19151 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
19152 case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
19153 case 2: this._point = 3; // proceed
19154 default: point(this, x, y); break;
19155 }
19156 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
19157 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
19158 }
19159};
19160
19161/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
19162
19163 function cardinal(context) {
19164 return new Cardinal(context, tension);
19165 }
19166
19167 cardinal.tension = function(tension) {
19168 return custom(+tension);
19169 };
19170
19171 return cardinal;
19172})(0));
19173
19174
19175/***/ }),
19176
19177/***/ "./node_modules/d3-shape/src/curve/cardinalClosed.js":
19178/*!***********************************************************!*\
19179 !*** ./node_modules/d3-shape/src/curve/cardinalClosed.js ***!
19180 \***********************************************************/
19181/*! exports provided: CardinalClosed, default */
19182/***/ (function(module, __webpack_exports__, __webpack_require__) {
19183
19184"use strict";
19185__webpack_require__.r(__webpack_exports__);
19186/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardinalClosed", function() { return CardinalClosed; });
19187/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-shape/src/noop.js");
19188/* harmony import */ var _cardinal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal */ "./node_modules/d3-shape/src/curve/cardinal.js");
19189
19190
19191
19192function CardinalClosed(context, tension) {
19193 this._context = context;
19194 this._k = (1 - tension) / 6;
19195}
19196
19197CardinalClosed.prototype = {
19198 areaStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
19199 areaEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
19200 lineStart: function() {
19201 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
19202 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
19203 this._point = 0;
19204 },
19205 lineEnd: function() {
19206 switch (this._point) {
19207 case 1: {
19208 this._context.moveTo(this._x3, this._y3);
19209 this._context.closePath();
19210 break;
19211 }
19212 case 2: {
19213 this._context.lineTo(this._x3, this._y3);
19214 this._context.closePath();
19215 break;
19216 }
19217 case 3: {
19218 this.point(this._x3, this._y3);
19219 this.point(this._x4, this._y4);
19220 this.point(this._x5, this._y5);
19221 break;
19222 }
19223 }
19224 },
19225 point: function(x, y) {
19226 x = +x, y = +y;
19227 switch (this._point) {
19228 case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
19229 case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
19230 case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
19231 default: Object(_cardinal__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
19232 }
19233 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
19234 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
19235 }
19236};
19237
19238/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
19239
19240 function cardinal(context) {
19241 return new CardinalClosed(context, tension);
19242 }
19243
19244 cardinal.tension = function(tension) {
19245 return custom(+tension);
19246 };
19247
19248 return cardinal;
19249})(0));
19250
19251
19252/***/ }),
19253
19254/***/ "./node_modules/d3-shape/src/curve/cardinalOpen.js":
19255/*!*********************************************************!*\
19256 !*** ./node_modules/d3-shape/src/curve/cardinalOpen.js ***!
19257 \*********************************************************/
19258/*! exports provided: CardinalOpen, default */
19259/***/ (function(module, __webpack_exports__, __webpack_require__) {
19260
19261"use strict";
19262__webpack_require__.r(__webpack_exports__);
19263/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardinalOpen", function() { return CardinalOpen; });
19264/* harmony import */ var _cardinal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinal */ "./node_modules/d3-shape/src/curve/cardinal.js");
19265
19266
19267function CardinalOpen(context, tension) {
19268 this._context = context;
19269 this._k = (1 - tension) / 6;
19270}
19271
19272CardinalOpen.prototype = {
19273 areaStart: function() {
19274 this._line = 0;
19275 },
19276 areaEnd: function() {
19277 this._line = NaN;
19278 },
19279 lineStart: function() {
19280 this._x0 = this._x1 = this._x2 =
19281 this._y0 = this._y1 = this._y2 = NaN;
19282 this._point = 0;
19283 },
19284 lineEnd: function() {
19285 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
19286 this._line = 1 - this._line;
19287 },
19288 point: function(x, y) {
19289 x = +x, y = +y;
19290 switch (this._point) {
19291 case 0: this._point = 1; break;
19292 case 1: this._point = 2; break;
19293 case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
19294 case 3: this._point = 4; // proceed
19295 default: Object(_cardinal__WEBPACK_IMPORTED_MODULE_0__["point"])(this, x, y); break;
19296 }
19297 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
19298 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
19299 }
19300};
19301
19302/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
19303
19304 function cardinal(context) {
19305 return new CardinalOpen(context, tension);
19306 }
19307
19308 cardinal.tension = function(tension) {
19309 return custom(+tension);
19310 };
19311
19312 return cardinal;
19313})(0));
19314
19315
19316/***/ }),
19317
19318/***/ "./node_modules/d3-shape/src/curve/catmullRom.js":
19319/*!*******************************************************!*\
19320 !*** ./node_modules/d3-shape/src/curve/catmullRom.js ***!
19321 \*******************************************************/
19322/*! exports provided: point, default */
19323/***/ (function(module, __webpack_exports__, __webpack_require__) {
19324
19325"use strict";
19326__webpack_require__.r(__webpack_exports__);
19327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
19328/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-shape/src/math.js");
19329/* harmony import */ var _cardinal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal */ "./node_modules/d3-shape/src/curve/cardinal.js");
19330
19331
19332
19333function point(that, x, y) {
19334 var x1 = that._x1,
19335 y1 = that._y1,
19336 x2 = that._x2,
19337 y2 = that._y2;
19338
19339 if (that._l01_a > _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) {
19340 var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
19341 n = 3 * that._l01_a * (that._l01_a + that._l12_a);
19342 x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
19343 y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
19344 }
19345
19346 if (that._l23_a > _math__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) {
19347 var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
19348 m = 3 * that._l23_a * (that._l23_a + that._l12_a);
19349 x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
19350 y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
19351 }
19352
19353 that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
19354}
19355
19356function CatmullRom(context, alpha) {
19357 this._context = context;
19358 this._alpha = alpha;
19359}
19360
19361CatmullRom.prototype = {
19362 areaStart: function() {
19363 this._line = 0;
19364 },
19365 areaEnd: function() {
19366 this._line = NaN;
19367 },
19368 lineStart: function() {
19369 this._x0 = this._x1 = this._x2 =
19370 this._y0 = this._y1 = this._y2 = NaN;
19371 this._l01_a = this._l12_a = this._l23_a =
19372 this._l01_2a = this._l12_2a = this._l23_2a =
19373 this._point = 0;
19374 },
19375 lineEnd: function() {
19376 switch (this._point) {
19377 case 2: this._context.lineTo(this._x2, this._y2); break;
19378 case 3: this.point(this._x2, this._y2); break;
19379 }
19380 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
19381 this._line = 1 - this._line;
19382 },
19383 point: function(x, y) {
19384 x = +x, y = +y;
19385
19386 if (this._point) {
19387 var x23 = this._x2 - x,
19388 y23 = this._y2 - y;
19389 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
19390 }
19391
19392 switch (this._point) {
19393 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
19394 case 1: this._point = 2; break;
19395 case 2: this._point = 3; // proceed
19396 default: point(this, x, y); break;
19397 }
19398
19399 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
19400 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
19401 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
19402 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
19403 }
19404};
19405
19406/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
19407
19408 function catmullRom(context) {
19409 return alpha ? new CatmullRom(context, alpha) : new _cardinal__WEBPACK_IMPORTED_MODULE_1__["Cardinal"](context, 0);
19410 }
19411
19412 catmullRom.alpha = function(alpha) {
19413 return custom(+alpha);
19414 };
19415
19416 return catmullRom;
19417})(0.5));
19418
19419
19420/***/ }),
19421
19422/***/ "./node_modules/d3-shape/src/curve/catmullRomClosed.js":
19423/*!*************************************************************!*\
19424 !*** ./node_modules/d3-shape/src/curve/catmullRomClosed.js ***!
19425 \*************************************************************/
19426/*! exports provided: default */
19427/***/ (function(module, __webpack_exports__, __webpack_require__) {
19428
19429"use strict";
19430__webpack_require__.r(__webpack_exports__);
19431/* harmony import */ var _cardinalClosed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinalClosed */ "./node_modules/d3-shape/src/curve/cardinalClosed.js");
19432/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-shape/src/noop.js");
19433/* harmony import */ var _catmullRom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./catmullRom */ "./node_modules/d3-shape/src/curve/catmullRom.js");
19434
19435
19436
19437
19438function CatmullRomClosed(context, alpha) {
19439 this._context = context;
19440 this._alpha = alpha;
19441}
19442
19443CatmullRomClosed.prototype = {
19444 areaStart: _noop__WEBPACK_IMPORTED_MODULE_1__["default"],
19445 areaEnd: _noop__WEBPACK_IMPORTED_MODULE_1__["default"],
19446 lineStart: function() {
19447 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
19448 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
19449 this._l01_a = this._l12_a = this._l23_a =
19450 this._l01_2a = this._l12_2a = this._l23_2a =
19451 this._point = 0;
19452 },
19453 lineEnd: function() {
19454 switch (this._point) {
19455 case 1: {
19456 this._context.moveTo(this._x3, this._y3);
19457 this._context.closePath();
19458 break;
19459 }
19460 case 2: {
19461 this._context.lineTo(this._x3, this._y3);
19462 this._context.closePath();
19463 break;
19464 }
19465 case 3: {
19466 this.point(this._x3, this._y3);
19467 this.point(this._x4, this._y4);
19468 this.point(this._x5, this._y5);
19469 break;
19470 }
19471 }
19472 },
19473 point: function(x, y) {
19474 x = +x, y = +y;
19475
19476 if (this._point) {
19477 var x23 = this._x2 - x,
19478 y23 = this._y2 - y;
19479 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
19480 }
19481
19482 switch (this._point) {
19483 case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
19484 case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
19485 case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
19486 default: Object(_catmullRom__WEBPACK_IMPORTED_MODULE_2__["point"])(this, x, y); break;
19487 }
19488
19489 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
19490 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
19491 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
19492 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
19493 }
19494};
19495
19496/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
19497
19498 function catmullRom(context) {
19499 return alpha ? new CatmullRomClosed(context, alpha) : new _cardinalClosed__WEBPACK_IMPORTED_MODULE_0__["CardinalClosed"](context, 0);
19500 }
19501
19502 catmullRom.alpha = function(alpha) {
19503 return custom(+alpha);
19504 };
19505
19506 return catmullRom;
19507})(0.5));
19508
19509
19510/***/ }),
19511
19512/***/ "./node_modules/d3-shape/src/curve/catmullRomOpen.js":
19513/*!***********************************************************!*\
19514 !*** ./node_modules/d3-shape/src/curve/catmullRomOpen.js ***!
19515 \***********************************************************/
19516/*! exports provided: default */
19517/***/ (function(module, __webpack_exports__, __webpack_require__) {
19518
19519"use strict";
19520__webpack_require__.r(__webpack_exports__);
19521/* harmony import */ var _cardinalOpen__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinalOpen */ "./node_modules/d3-shape/src/curve/cardinalOpen.js");
19522/* harmony import */ var _catmullRom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./catmullRom */ "./node_modules/d3-shape/src/curve/catmullRom.js");
19523
19524
19525
19526function CatmullRomOpen(context, alpha) {
19527 this._context = context;
19528 this._alpha = alpha;
19529}
19530
19531CatmullRomOpen.prototype = {
19532 areaStart: function() {
19533 this._line = 0;
19534 },
19535 areaEnd: function() {
19536 this._line = NaN;
19537 },
19538 lineStart: function() {
19539 this._x0 = this._x1 = this._x2 =
19540 this._y0 = this._y1 = this._y2 = NaN;
19541 this._l01_a = this._l12_a = this._l23_a =
19542 this._l01_2a = this._l12_2a = this._l23_2a =
19543 this._point = 0;
19544 },
19545 lineEnd: function() {
19546 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
19547 this._line = 1 - this._line;
19548 },
19549 point: function(x, y) {
19550 x = +x, y = +y;
19551
19552 if (this._point) {
19553 var x23 = this._x2 - x,
19554 y23 = this._y2 - y;
19555 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
19556 }
19557
19558 switch (this._point) {
19559 case 0: this._point = 1; break;
19560 case 1: this._point = 2; break;
19561 case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
19562 case 3: this._point = 4; // proceed
19563 default: Object(_catmullRom__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
19564 }
19565
19566 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
19567 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
19568 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
19569 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
19570 }
19571};
19572
19573/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
19574
19575 function catmullRom(context) {
19576 return alpha ? new CatmullRomOpen(context, alpha) : new _cardinalOpen__WEBPACK_IMPORTED_MODULE_0__["CardinalOpen"](context, 0);
19577 }
19578
19579 catmullRom.alpha = function(alpha) {
19580 return custom(+alpha);
19581 };
19582
19583 return catmullRom;
19584})(0.5));
19585
19586
19587/***/ }),
19588
19589/***/ "./node_modules/d3-shape/src/curve/linear.js":
19590/*!***************************************************!*\
19591 !*** ./node_modules/d3-shape/src/curve/linear.js ***!
19592 \***************************************************/
19593/*! exports provided: default */
19594/***/ (function(module, __webpack_exports__, __webpack_require__) {
19595
19596"use strict";
19597__webpack_require__.r(__webpack_exports__);
19598function Linear(context) {
19599 this._context = context;
19600}
19601
19602Linear.prototype = {
19603 areaStart: function() {
19604 this._line = 0;
19605 },
19606 areaEnd: function() {
19607 this._line = NaN;
19608 },
19609 lineStart: function() {
19610 this._point = 0;
19611 },
19612 lineEnd: function() {
19613 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
19614 this._line = 1 - this._line;
19615 },
19616 point: function(x, y) {
19617 x = +x, y = +y;
19618 switch (this._point) {
19619 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
19620 case 1: this._point = 2; // proceed
19621 default: this._context.lineTo(x, y); break;
19622 }
19623 }
19624};
19625
19626/* harmony default export */ __webpack_exports__["default"] = (function(context) {
19627 return new Linear(context);
19628});
19629
19630
19631/***/ }),
19632
19633/***/ "./node_modules/d3-shape/src/curve/linearClosed.js":
19634/*!*********************************************************!*\
19635 !*** ./node_modules/d3-shape/src/curve/linearClosed.js ***!
19636 \*********************************************************/
19637/*! exports provided: default */
19638/***/ (function(module, __webpack_exports__, __webpack_require__) {
19639
19640"use strict";
19641__webpack_require__.r(__webpack_exports__);
19642/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop */ "./node_modules/d3-shape/src/noop.js");
19643
19644
19645function LinearClosed(context) {
19646 this._context = context;
19647}
19648
19649LinearClosed.prototype = {
19650 areaStart: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
19651 areaEnd: _noop__WEBPACK_IMPORTED_MODULE_0__["default"],
19652 lineStart: function() {
19653 this._point = 0;
19654 },
19655 lineEnd: function() {
19656 if (this._point) this._context.closePath();
19657 },
19658 point: function(x, y) {
19659 x = +x, y = +y;
19660 if (this._point) this._context.lineTo(x, y);
19661 else this._point = 1, this._context.moveTo(x, y);
19662 }
19663};
19664
19665/* harmony default export */ __webpack_exports__["default"] = (function(context) {
19666 return new LinearClosed(context);
19667});
19668
19669
19670/***/ }),
19671
19672/***/ "./node_modules/d3-shape/src/curve/monotone.js":
19673/*!*****************************************************!*\
19674 !*** ./node_modules/d3-shape/src/curve/monotone.js ***!
19675 \*****************************************************/
19676/*! exports provided: monotoneX, monotoneY */
19677/***/ (function(module, __webpack_exports__, __webpack_require__) {
19678
19679"use strict";
19680__webpack_require__.r(__webpack_exports__);
19681/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monotoneX", function() { return monotoneX; });
19682/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monotoneY", function() { return monotoneY; });
19683function sign(x) {
19684 return x < 0 ? -1 : 1;
19685}
19686
19687// Calculate the slopes of the tangents (Hermite-type interpolation) based on
19688// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
19689// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
19690// NOV(II), P. 443, 1990.
19691function slope3(that, x2, y2) {
19692 var h0 = that._x1 - that._x0,
19693 h1 = x2 - that._x1,
19694 s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
19695 s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
19696 p = (s0 * h1 + s1 * h0) / (h0 + h1);
19697 return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
19698}
19699
19700// Calculate a one-sided slope.
19701function slope2(that, t) {
19702 var h = that._x1 - that._x0;
19703 return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
19704}
19705
19706// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
19707// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
19708// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
19709function point(that, t0, t1) {
19710 var x0 = that._x0,
19711 y0 = that._y0,
19712 x1 = that._x1,
19713 y1 = that._y1,
19714 dx = (x1 - x0) / 3;
19715 that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
19716}
19717
19718function MonotoneX(context) {
19719 this._context = context;
19720}
19721
19722MonotoneX.prototype = {
19723 areaStart: function() {
19724 this._line = 0;
19725 },
19726 areaEnd: function() {
19727 this._line = NaN;
19728 },
19729 lineStart: function() {
19730 this._x0 = this._x1 =
19731 this._y0 = this._y1 =
19732 this._t0 = NaN;
19733 this._point = 0;
19734 },
19735 lineEnd: function() {
19736 switch (this._point) {
19737 case 2: this._context.lineTo(this._x1, this._y1); break;
19738 case 3: point(this, this._t0, slope2(this, this._t0)); break;
19739 }
19740 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
19741 this._line = 1 - this._line;
19742 },
19743 point: function(x, y) {
19744 var t1 = NaN;
19745
19746 x = +x, y = +y;
19747 if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
19748 switch (this._point) {
19749 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
19750 case 1: this._point = 2; break;
19751 case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
19752 default: point(this, this._t0, t1 = slope3(this, x, y)); break;
19753 }
19754
19755 this._x0 = this._x1, this._x1 = x;
19756 this._y0 = this._y1, this._y1 = y;
19757 this._t0 = t1;
19758 }
19759}
19760
19761function MonotoneY(context) {
19762 this._context = new ReflectContext(context);
19763}
19764
19765(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
19766 MonotoneX.prototype.point.call(this, y, x);
19767};
19768
19769function ReflectContext(context) {
19770 this._context = context;
19771}
19772
19773ReflectContext.prototype = {
19774 moveTo: function(x, y) { this._context.moveTo(y, x); },
19775 closePath: function() { this._context.closePath(); },
19776 lineTo: function(x, y) { this._context.lineTo(y, x); },
19777 bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
19778};
19779
19780function monotoneX(context) {
19781 return new MonotoneX(context);
19782}
19783
19784function monotoneY(context) {
19785 return new MonotoneY(context);
19786}
19787
19788
19789/***/ }),
19790
19791/***/ "./node_modules/d3-shape/src/curve/natural.js":
19792/*!****************************************************!*\
19793 !*** ./node_modules/d3-shape/src/curve/natural.js ***!
19794 \****************************************************/
19795/*! exports provided: default */
19796/***/ (function(module, __webpack_exports__, __webpack_require__) {
19797
19798"use strict";
19799__webpack_require__.r(__webpack_exports__);
19800function Natural(context) {
19801 this._context = context;
19802}
19803
19804Natural.prototype = {
19805 areaStart: function() {
19806 this._line = 0;
19807 },
19808 areaEnd: function() {
19809 this._line = NaN;
19810 },
19811 lineStart: function() {
19812 this._x = [];
19813 this._y = [];
19814 },
19815 lineEnd: function() {
19816 var x = this._x,
19817 y = this._y,
19818 n = x.length;
19819
19820 if (n) {
19821 this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
19822 if (n === 2) {
19823 this._context.lineTo(x[1], y[1]);
19824 } else {
19825 var px = controlPoints(x),
19826 py = controlPoints(y);
19827 for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
19828 this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
19829 }
19830 }
19831 }
19832
19833 if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
19834 this._line = 1 - this._line;
19835 this._x = this._y = null;
19836 },
19837 point: function(x, y) {
19838 this._x.push(+x);
19839 this._y.push(+y);
19840 }
19841};
19842
19843// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
19844function controlPoints(x) {
19845 var i,
19846 n = x.length - 1,
19847 m,
19848 a = new Array(n),
19849 b = new Array(n),
19850 r = new Array(n);
19851 a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
19852 for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
19853 a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
19854 for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
19855 a[n - 1] = r[n - 1] / b[n - 1];
19856 for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
19857 b[n - 1] = (x[n] + a[n - 1]) / 2;
19858 for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
19859 return [a, b];
19860}
19861
19862/* harmony default export */ __webpack_exports__["default"] = (function(context) {
19863 return new Natural(context);
19864});
19865
19866
19867/***/ }),
19868
19869/***/ "./node_modules/d3-shape/src/curve/radial.js":
19870/*!***************************************************!*\
19871 !*** ./node_modules/d3-shape/src/curve/radial.js ***!
19872 \***************************************************/
19873/*! exports provided: curveRadialLinear, default */
19874/***/ (function(module, __webpack_exports__, __webpack_require__) {
19875
19876"use strict";
19877__webpack_require__.r(__webpack_exports__);
19878/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "curveRadialLinear", function() { return curveRadialLinear; });
19879/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return curveRadial; });
19880/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-shape/src/curve/linear.js");
19881
19882
19883var curveRadialLinear = curveRadial(_linear__WEBPACK_IMPORTED_MODULE_0__["default"]);
19884
19885function Radial(curve) {
19886 this._curve = curve;
19887}
19888
19889Radial.prototype = {
19890 areaStart: function() {
19891 this._curve.areaStart();
19892 },
19893 areaEnd: function() {
19894 this._curve.areaEnd();
19895 },
19896 lineStart: function() {
19897 this._curve.lineStart();
19898 },
19899 lineEnd: function() {
19900 this._curve.lineEnd();
19901 },
19902 point: function(a, r) {
19903 this._curve.point(r * Math.sin(a), r * -Math.cos(a));
19904 }
19905};
19906
19907function curveRadial(curve) {
19908
19909 function radial(context) {
19910 return new Radial(curve(context));
19911 }
19912
19913 radial._curve = curve;
19914
19915 return radial;
19916}
19917
19918
19919/***/ }),
19920
19921/***/ "./node_modules/d3-shape/src/curve/step.js":
19922/*!*************************************************!*\
19923 !*** ./node_modules/d3-shape/src/curve/step.js ***!
19924 \*************************************************/
19925/*! exports provided: default, stepBefore, stepAfter */
19926/***/ (function(module, __webpack_exports__, __webpack_require__) {
19927
19928"use strict";
19929__webpack_require__.r(__webpack_exports__);
19930/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stepBefore", function() { return stepBefore; });
19931/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stepAfter", function() { return stepAfter; });
19932function Step(context, t) {
19933 this._context = context;
19934 this._t = t;
19935}
19936
19937Step.prototype = {
19938 areaStart: function() {
19939 this._line = 0;
19940 },
19941 areaEnd: function() {
19942 this._line = NaN;
19943 },
19944 lineStart: function() {
19945 this._x = this._y = NaN;
19946 this._point = 0;
19947 },
19948 lineEnd: function() {
19949 if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
19950 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
19951 if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
19952 },
19953 point: function(x, y) {
19954 x = +x, y = +y;
19955 switch (this._point) {
19956 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
19957 case 1: this._point = 2; // proceed
19958 default: {
19959 if (this._t <= 0) {
19960 this._context.lineTo(this._x, y);
19961 this._context.lineTo(x, y);
19962 } else {
19963 var x1 = this._x * (1 - this._t) + x * this._t;
19964 this._context.lineTo(x1, this._y);
19965 this._context.lineTo(x1, y);
19966 }
19967 break;
19968 }
19969 }
19970 this._x = x, this._y = y;
19971 }
19972};
19973
19974/* harmony default export */ __webpack_exports__["default"] = (function(context) {
19975 return new Step(context, 0.5);
19976});
19977
19978function stepBefore(context) {
19979 return new Step(context, 0);
19980}
19981
19982function stepAfter(context) {
19983 return new Step(context, 1);
19984}
19985
19986
19987/***/ }),
19988
19989/***/ "./node_modules/d3-shape/src/descending.js":
19990/*!*************************************************!*\
19991 !*** ./node_modules/d3-shape/src/descending.js ***!
19992 \*************************************************/
19993/*! exports provided: default */
19994/***/ (function(module, __webpack_exports__, __webpack_require__) {
19995
19996"use strict";
19997__webpack_require__.r(__webpack_exports__);
19998/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
19999 return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
20000});
20001
20002
20003/***/ }),
20004
20005/***/ "./node_modules/d3-shape/src/identity.js":
20006/*!***********************************************!*\
20007 !*** ./node_modules/d3-shape/src/identity.js ***!
20008 \***********************************************/
20009/*! exports provided: default */
20010/***/ (function(module, __webpack_exports__, __webpack_require__) {
20011
20012"use strict";
20013__webpack_require__.r(__webpack_exports__);
20014/* harmony default export */ __webpack_exports__["default"] = (function(d) {
20015 return d;
20016});
20017
20018
20019/***/ }),
20020
20021/***/ "./node_modules/d3-shape/src/line.js":
20022/*!*******************************************!*\
20023 !*** ./node_modules/d3-shape/src/line.js ***!
20024 \*******************************************/
20025/*! exports provided: default */
20026/***/ (function(module, __webpack_exports__, __webpack_require__) {
20027
20028"use strict";
20029__webpack_require__.r(__webpack_exports__);
20030/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/index.js");
20031/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
20032/* harmony import */ var _curve_linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curve/linear */ "./node_modules/d3-shape/src/curve/linear.js");
20033/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./point */ "./node_modules/d3-shape/src/point.js");
20034
20035
20036
20037
20038
20039/* harmony default export */ __webpack_exports__["default"] = (function() {
20040 var x = _point__WEBPACK_IMPORTED_MODULE_3__["x"],
20041 y = _point__WEBPACK_IMPORTED_MODULE_3__["y"],
20042 defined = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(true),
20043 context = null,
20044 curve = _curve_linear__WEBPACK_IMPORTED_MODULE_2__["default"],
20045 output = null;
20046
20047 function line(data) {
20048 var i,
20049 n = data.length,
20050 d,
20051 defined0 = false,
20052 buffer;
20053
20054 if (context == null) output = curve(buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])());
20055
20056 for (i = 0; i <= n; ++i) {
20057 if (!(i < n && defined(d = data[i], i, data)) === defined0) {
20058 if (defined0 = !defined0) output.lineStart();
20059 else output.lineEnd();
20060 }
20061 if (defined0) output.point(+x(d, i, data), +y(d, i, data));
20062 }
20063
20064 if (buffer) return output = null, buffer + "" || null;
20065 }
20066
20067 line.x = function(_) {
20068 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), line) : x;
20069 };
20070
20071 line.y = function(_) {
20072 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), line) : y;
20073 };
20074
20075 line.defined = function(_) {
20076 return arguments.length ? (defined = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), line) : defined;
20077 };
20078
20079 line.curve = function(_) {
20080 return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
20081 };
20082
20083 line.context = function(_) {
20084 return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
20085 };
20086
20087 return line;
20088});
20089
20090
20091/***/ }),
20092
20093/***/ "./node_modules/d3-shape/src/lineRadial.js":
20094/*!*************************************************!*\
20095 !*** ./node_modules/d3-shape/src/lineRadial.js ***!
20096 \*************************************************/
20097/*! exports provided: lineRadial, default */
20098/***/ (function(module, __webpack_exports__, __webpack_require__) {
20099
20100"use strict";
20101__webpack_require__.r(__webpack_exports__);
20102/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return lineRadial; });
20103/* harmony import */ var _curve_radial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial */ "./node_modules/d3-shape/src/curve/radial.js");
20104/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./line */ "./node_modules/d3-shape/src/line.js");
20105
20106
20107
20108function lineRadial(l) {
20109 var c = l.curve;
20110
20111 l.angle = l.x, delete l.x;
20112 l.radius = l.y, delete l.y;
20113
20114 l.curve = function(_) {
20115 return arguments.length ? c(Object(_curve_radial__WEBPACK_IMPORTED_MODULE_0__["default"])(_)) : c()._curve;
20116 };
20117
20118 return l;
20119}
20120
20121/* harmony default export */ __webpack_exports__["default"] = (function() {
20122 return lineRadial(Object(_line__WEBPACK_IMPORTED_MODULE_1__["default"])().curve(_curve_radial__WEBPACK_IMPORTED_MODULE_0__["curveRadialLinear"]));
20123});
20124
20125
20126/***/ }),
20127
20128/***/ "./node_modules/d3-shape/src/link/index.js":
20129/*!*************************************************!*\
20130 !*** ./node_modules/d3-shape/src/link/index.js ***!
20131 \*************************************************/
20132/*! exports provided: linkHorizontal, linkVertical, linkRadial */
20133/***/ (function(module, __webpack_exports__, __webpack_require__) {
20134
20135"use strict";
20136__webpack_require__.r(__webpack_exports__);
20137/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return linkHorizontal; });
20138/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return linkVertical; });
20139/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return linkRadial; });
20140/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/index.js");
20141/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../array */ "./node_modules/d3-shape/src/array.js");
20142/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-shape/src/constant.js");
20143/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../point */ "./node_modules/d3-shape/src/point.js");
20144/* harmony import */ var _pointRadial__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../pointRadial */ "./node_modules/d3-shape/src/pointRadial.js");
20145
20146
20147
20148
20149
20150
20151function linkSource(d) {
20152 return d.source;
20153}
20154
20155function linkTarget(d) {
20156 return d.target;
20157}
20158
20159function link(curve) {
20160 var source = linkSource,
20161 target = linkTarget,
20162 x = _point__WEBPACK_IMPORTED_MODULE_3__["x"],
20163 y = _point__WEBPACK_IMPORTED_MODULE_3__["y"],
20164 context = null;
20165
20166 function link() {
20167 var buffer, argv = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);
20168 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
20169 curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));
20170 if (buffer) return context = null, buffer + "" || null;
20171 }
20172
20173 link.source = function(_) {
20174 return arguments.length ? (source = _, link) : source;
20175 };
20176
20177 link.target = function(_) {
20178 return arguments.length ? (target = _, link) : target;
20179 };
20180
20181 link.x = function(_) {
20182 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), link) : x;
20183 };
20184
20185 link.y = function(_) {
20186 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), link) : y;
20187 };
20188
20189 link.context = function(_) {
20190 return arguments.length ? ((context = _ == null ? null : _), link) : context;
20191 };
20192
20193 return link;
20194}
20195
20196function curveHorizontal(context, x0, y0, x1, y1) {
20197 context.moveTo(x0, y0);
20198 context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);
20199}
20200
20201function curveVertical(context, x0, y0, x1, y1) {
20202 context.moveTo(x0, y0);
20203 context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);
20204}
20205
20206function curveRadial(context, x0, y0, x1, y1) {
20207 var p0 = Object(_pointRadial__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, y0),
20208 p1 = Object(_pointRadial__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, y0 = (y0 + y1) / 2),
20209 p2 = Object(_pointRadial__WEBPACK_IMPORTED_MODULE_4__["default"])(x1, y0),
20210 p3 = Object(_pointRadial__WEBPACK_IMPORTED_MODULE_4__["default"])(x1, y1);
20211 context.moveTo(p0[0], p0[1]);
20212 context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);
20213}
20214
20215function linkHorizontal() {
20216 return link(curveHorizontal);
20217}
20218
20219function linkVertical() {
20220 return link(curveVertical);
20221}
20222
20223function linkRadial() {
20224 var l = link(curveRadial);
20225 l.angle = l.x, delete l.x;
20226 l.radius = l.y, delete l.y;
20227 return l;
20228}
20229
20230
20231/***/ }),
20232
20233/***/ "./node_modules/d3-shape/src/math.js":
20234/*!*******************************************!*\
20235 !*** ./node_modules/d3-shape/src/math.js ***!
20236 \*******************************************/
20237/*! exports provided: abs, atan2, cos, max, min, sin, sqrt, epsilon, pi, halfPi, tau, acos, asin */
20238/***/ (function(module, __webpack_exports__, __webpack_require__) {
20239
20240"use strict";
20241__webpack_require__.r(__webpack_exports__);
20242/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "abs", function() { return abs; });
20243/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan2", function() { return atan2; });
20244/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
20245/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; });
20246/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; });
20247/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
20248/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
20249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
20250/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
20251/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
20252/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
20253/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "acos", function() { return acos; });
20254/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asin", function() { return asin; });
20255var abs = Math.abs;
20256var atan2 = Math.atan2;
20257var cos = Math.cos;
20258var max = Math.max;
20259var min = Math.min;
20260var sin = Math.sin;
20261var sqrt = Math.sqrt;
20262
20263var epsilon = 1e-12;
20264var pi = Math.PI;
20265var halfPi = pi / 2;
20266var tau = 2 * pi;
20267
20268function acos(x) {
20269 return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
20270}
20271
20272function asin(x) {
20273 return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
20274}
20275
20276
20277/***/ }),
20278
20279/***/ "./node_modules/d3-shape/src/noop.js":
20280/*!*******************************************!*\
20281 !*** ./node_modules/d3-shape/src/noop.js ***!
20282 \*******************************************/
20283/*! exports provided: default */
20284/***/ (function(module, __webpack_exports__, __webpack_require__) {
20285
20286"use strict";
20287__webpack_require__.r(__webpack_exports__);
20288/* harmony default export */ __webpack_exports__["default"] = (function() {});
20289
20290
20291/***/ }),
20292
20293/***/ "./node_modules/d3-shape/src/offset/diverging.js":
20294/*!*******************************************************!*\
20295 !*** ./node_modules/d3-shape/src/offset/diverging.js ***!
20296 \*******************************************************/
20297/*! exports provided: default */
20298/***/ (function(module, __webpack_exports__, __webpack_require__) {
20299
20300"use strict";
20301__webpack_require__.r(__webpack_exports__);
20302/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
20303 if (!((n = series.length) > 1)) return;
20304 for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
20305 for (yp = yn = 0, i = 0; i < n; ++i) {
20306 if ((dy = (d = series[order[i]][j])[1] - d[0]) >= 0) {
20307 d[0] = yp, d[1] = yp += dy;
20308 } else if (dy < 0) {
20309 d[1] = yn, d[0] = yn += dy;
20310 } else {
20311 d[0] = yp;
20312 }
20313 }
20314 }
20315});
20316
20317
20318/***/ }),
20319
20320/***/ "./node_modules/d3-shape/src/offset/expand.js":
20321/*!****************************************************!*\
20322 !*** ./node_modules/d3-shape/src/offset/expand.js ***!
20323 \****************************************************/
20324/*! exports provided: default */
20325/***/ (function(module, __webpack_exports__, __webpack_require__) {
20326
20327"use strict";
20328__webpack_require__.r(__webpack_exports__);
20329/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/offset/none.js");
20330
20331
20332/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
20333 if (!((n = series.length) > 0)) return;
20334 for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
20335 for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
20336 if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
20337 }
20338 Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
20339});
20340
20341
20342/***/ }),
20343
20344/***/ "./node_modules/d3-shape/src/offset/none.js":
20345/*!**************************************************!*\
20346 !*** ./node_modules/d3-shape/src/offset/none.js ***!
20347 \**************************************************/
20348/*! exports provided: default */
20349/***/ (function(module, __webpack_exports__, __webpack_require__) {
20350
20351"use strict";
20352__webpack_require__.r(__webpack_exports__);
20353/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
20354 if (!((n = series.length) > 1)) return;
20355 for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
20356 s0 = s1, s1 = series[order[i]];
20357 for (j = 0; j < m; ++j) {
20358 s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
20359 }
20360 }
20361});
20362
20363
20364/***/ }),
20365
20366/***/ "./node_modules/d3-shape/src/offset/silhouette.js":
20367/*!********************************************************!*\
20368 !*** ./node_modules/d3-shape/src/offset/silhouette.js ***!
20369 \********************************************************/
20370/*! exports provided: default */
20371/***/ (function(module, __webpack_exports__, __webpack_require__) {
20372
20373"use strict";
20374__webpack_require__.r(__webpack_exports__);
20375/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/offset/none.js");
20376
20377
20378/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
20379 if (!((n = series.length) > 0)) return;
20380 for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
20381 for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
20382 s0[j][1] += s0[j][0] = -y / 2;
20383 }
20384 Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
20385});
20386
20387
20388/***/ }),
20389
20390/***/ "./node_modules/d3-shape/src/offset/wiggle.js":
20391/*!****************************************************!*\
20392 !*** ./node_modules/d3-shape/src/offset/wiggle.js ***!
20393 \****************************************************/
20394/*! exports provided: default */
20395/***/ (function(module, __webpack_exports__, __webpack_require__) {
20396
20397"use strict";
20398__webpack_require__.r(__webpack_exports__);
20399/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/offset/none.js");
20400
20401
20402/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
20403 if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
20404 for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
20405 for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
20406 var si = series[order[i]],
20407 sij0 = si[j][1] || 0,
20408 sij1 = si[j - 1][1] || 0,
20409 s3 = (sij0 - sij1) / 2;
20410 for (var k = 0; k < i; ++k) {
20411 var sk = series[order[k]],
20412 skj0 = sk[j][1] || 0,
20413 skj1 = sk[j - 1][1] || 0;
20414 s3 += skj0 - skj1;
20415 }
20416 s1 += sij0, s2 += s3 * sij0;
20417 }
20418 s0[j - 1][1] += s0[j - 1][0] = y;
20419 if (s1) y -= s2 / s1;
20420 }
20421 s0[j - 1][1] += s0[j - 1][0] = y;
20422 Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
20423});
20424
20425
20426/***/ }),
20427
20428/***/ "./node_modules/d3-shape/src/order/ascending.js":
20429/*!******************************************************!*\
20430 !*** ./node_modules/d3-shape/src/order/ascending.js ***!
20431 \******************************************************/
20432/*! exports provided: default, sum */
20433/***/ (function(module, __webpack_exports__, __webpack_require__) {
20434
20435"use strict";
20436__webpack_require__.r(__webpack_exports__);
20437/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return sum; });
20438/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/order/none.js");
20439
20440
20441/* harmony default export */ __webpack_exports__["default"] = (function(series) {
20442 var sums = series.map(sum);
20443 return Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series).sort(function(a, b) { return sums[a] - sums[b]; });
20444});
20445
20446function sum(series) {
20447 var s = 0, i = -1, n = series.length, v;
20448 while (++i < n) if (v = +series[i][1]) s += v;
20449 return s;
20450}
20451
20452
20453/***/ }),
20454
20455/***/ "./node_modules/d3-shape/src/order/descending.js":
20456/*!*******************************************************!*\
20457 !*** ./node_modules/d3-shape/src/order/descending.js ***!
20458 \*******************************************************/
20459/*! exports provided: default */
20460/***/ (function(module, __webpack_exports__, __webpack_require__) {
20461
20462"use strict";
20463__webpack_require__.r(__webpack_exports__);
20464/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-shape/src/order/ascending.js");
20465
20466
20467/* harmony default export */ __webpack_exports__["default"] = (function(series) {
20468 return Object(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"])(series).reverse();
20469});
20470
20471
20472/***/ }),
20473
20474/***/ "./node_modules/d3-shape/src/order/insideOut.js":
20475/*!******************************************************!*\
20476 !*** ./node_modules/d3-shape/src/order/insideOut.js ***!
20477 \******************************************************/
20478/*! exports provided: default */
20479/***/ (function(module, __webpack_exports__, __webpack_require__) {
20480
20481"use strict";
20482__webpack_require__.r(__webpack_exports__);
20483/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/order/none.js");
20484/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-shape/src/order/ascending.js");
20485
20486
20487
20488/* harmony default export */ __webpack_exports__["default"] = (function(series) {
20489 var n = series.length,
20490 i,
20491 j,
20492 sums = series.map(_ascending__WEBPACK_IMPORTED_MODULE_1__["sum"]),
20493 order = Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series).sort(function(a, b) { return sums[b] - sums[a]; }),
20494 top = 0,
20495 bottom = 0,
20496 tops = [],
20497 bottoms = [];
20498
20499 for (i = 0; i < n; ++i) {
20500 j = order[i];
20501 if (top < bottom) {
20502 top += sums[j];
20503 tops.push(j);
20504 } else {
20505 bottom += sums[j];
20506 bottoms.push(j);
20507 }
20508 }
20509
20510 return bottoms.reverse().concat(tops);
20511});
20512
20513
20514/***/ }),
20515
20516/***/ "./node_modules/d3-shape/src/order/none.js":
20517/*!*************************************************!*\
20518 !*** ./node_modules/d3-shape/src/order/none.js ***!
20519 \*************************************************/
20520/*! exports provided: default */
20521/***/ (function(module, __webpack_exports__, __webpack_require__) {
20522
20523"use strict";
20524__webpack_require__.r(__webpack_exports__);
20525/* harmony default export */ __webpack_exports__["default"] = (function(series) {
20526 var n = series.length, o = new Array(n);
20527 while (--n >= 0) o[n] = n;
20528 return o;
20529});
20530
20531
20532/***/ }),
20533
20534/***/ "./node_modules/d3-shape/src/order/reverse.js":
20535/*!****************************************************!*\
20536 !*** ./node_modules/d3-shape/src/order/reverse.js ***!
20537 \****************************************************/
20538/*! exports provided: default */
20539/***/ (function(module, __webpack_exports__, __webpack_require__) {
20540
20541"use strict";
20542__webpack_require__.r(__webpack_exports__);
20543/* harmony import */ var _none__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none */ "./node_modules/d3-shape/src/order/none.js");
20544
20545
20546/* harmony default export */ __webpack_exports__["default"] = (function(series) {
20547 return Object(_none__WEBPACK_IMPORTED_MODULE_0__["default"])(series).reverse();
20548});
20549
20550
20551/***/ }),
20552
20553/***/ "./node_modules/d3-shape/src/pie.js":
20554/*!******************************************!*\
20555 !*** ./node_modules/d3-shape/src/pie.js ***!
20556 \******************************************/
20557/*! exports provided: default */
20558/***/ (function(module, __webpack_exports__, __webpack_require__) {
20559
20560"use strict";
20561__webpack_require__.r(__webpack_exports__);
20562/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
20563/* harmony import */ var _descending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./descending */ "./node_modules/d3-shape/src/descending.js");
20564/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-shape/src/identity.js");
20565/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./math */ "./node_modules/d3-shape/src/math.js");
20566
20567
20568
20569
20570
20571/* harmony default export */ __webpack_exports__["default"] = (function() {
20572 var value = _identity__WEBPACK_IMPORTED_MODULE_2__["default"],
20573 sortValues = _descending__WEBPACK_IMPORTED_MODULE_1__["default"],
20574 sort = null,
20575 startAngle = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0),
20576 endAngle = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(_math__WEBPACK_IMPORTED_MODULE_3__["tau"]),
20577 padAngle = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0);
20578
20579 function pie(data) {
20580 var i,
20581 n = data.length,
20582 j,
20583 k,
20584 sum = 0,
20585 index = new Array(n),
20586 arcs = new Array(n),
20587 a0 = +startAngle.apply(this, arguments),
20588 da = Math.min(_math__WEBPACK_IMPORTED_MODULE_3__["tau"], Math.max(-_math__WEBPACK_IMPORTED_MODULE_3__["tau"], endAngle.apply(this, arguments) - a0)),
20589 a1,
20590 p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
20591 pa = p * (da < 0 ? -1 : 1),
20592 v;
20593
20594 for (i = 0; i < n; ++i) {
20595 if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
20596 sum += v;
20597 }
20598 }
20599
20600 // Optionally sort the arcs by previously-computed values or by data.
20601 if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
20602 else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
20603
20604 // Compute the arcs! They are stored in the original data's order.
20605 for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
20606 j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
20607 data: data[j],
20608 index: i,
20609 value: v,
20610 startAngle: a0,
20611 endAngle: a1,
20612 padAngle: p
20613 };
20614 }
20615
20616 return arcs;
20617 }
20618
20619 pie.value = function(_) {
20620 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : value;
20621 };
20622
20623 pie.sortValues = function(_) {
20624 return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
20625 };
20626
20627 pie.sort = function(_) {
20628 return arguments.length ? (sort = _, sortValues = null, pie) : sort;
20629 };
20630
20631 pie.startAngle = function(_) {
20632 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : startAngle;
20633 };
20634
20635 pie.endAngle = function(_) {
20636 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : endAngle;
20637 };
20638
20639 pie.padAngle = function(_) {
20640 return arguments.length ? (padAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : padAngle;
20641 };
20642
20643 return pie;
20644});
20645
20646
20647/***/ }),
20648
20649/***/ "./node_modules/d3-shape/src/point.js":
20650/*!********************************************!*\
20651 !*** ./node_modules/d3-shape/src/point.js ***!
20652 \********************************************/
20653/*! exports provided: x, y */
20654/***/ (function(module, __webpack_exports__, __webpack_require__) {
20655
20656"use strict";
20657__webpack_require__.r(__webpack_exports__);
20658/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
20659/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
20660function x(p) {
20661 return p[0];
20662}
20663
20664function y(p) {
20665 return p[1];
20666}
20667
20668
20669/***/ }),
20670
20671/***/ "./node_modules/d3-shape/src/pointRadial.js":
20672/*!**************************************************!*\
20673 !*** ./node_modules/d3-shape/src/pointRadial.js ***!
20674 \**************************************************/
20675/*! exports provided: default */
20676/***/ (function(module, __webpack_exports__, __webpack_require__) {
20677
20678"use strict";
20679__webpack_require__.r(__webpack_exports__);
20680/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
20681 return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
20682});
20683
20684
20685/***/ }),
20686
20687/***/ "./node_modules/d3-shape/src/stack.js":
20688/*!********************************************!*\
20689 !*** ./node_modules/d3-shape/src/stack.js ***!
20690 \********************************************/
20691/*! exports provided: default */
20692/***/ (function(module, __webpack_exports__, __webpack_require__) {
20693
20694"use strict";
20695__webpack_require__.r(__webpack_exports__);
20696/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-shape/src/array.js");
20697/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
20698/* harmony import */ var _offset_none__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset/none */ "./node_modules/d3-shape/src/offset/none.js");
20699/* harmony import */ var _order_none__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./order/none */ "./node_modules/d3-shape/src/order/none.js");
20700
20701
20702
20703
20704
20705function stackValue(d, key) {
20706 return d[key];
20707}
20708
20709/* harmony default export */ __webpack_exports__["default"] = (function() {
20710 var keys = Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])([]),
20711 order = _order_none__WEBPACK_IMPORTED_MODULE_3__["default"],
20712 offset = _offset_none__WEBPACK_IMPORTED_MODULE_2__["default"],
20713 value = stackValue;
20714
20715 function stack(data) {
20716 var kz = keys.apply(this, arguments),
20717 i,
20718 m = data.length,
20719 n = kz.length,
20720 sz = new Array(n),
20721 oz;
20722
20723 for (i = 0; i < n; ++i) {
20724 for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {
20725 si[j] = sij = [0, +value(data[j], ki, j, data)];
20726 sij.data = data[j];
20727 }
20728 si.key = ki;
20729 }
20730
20731 for (i = 0, oz = order(sz); i < n; ++i) {
20732 sz[oz[i]].index = i;
20733 }
20734
20735 offset(sz, oz);
20736 return sz;
20737 }
20738
20739 stack.keys = function(_) {
20740 return arguments.length ? (keys = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(_array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_)), stack) : keys;
20741 };
20742
20743 stack.value = function(_) {
20744 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), stack) : value;
20745 };
20746
20747 stack.order = function(_) {
20748 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;
20749 };
20750
20751 stack.offset = function(_) {
20752 return arguments.length ? (offset = _ == null ? _offset_none__WEBPACK_IMPORTED_MODULE_2__["default"] : _, stack) : offset;
20753 };
20754
20755 return stack;
20756});
20757
20758
20759/***/ }),
20760
20761/***/ "./node_modules/d3-shape/src/symbol.js":
20762/*!*********************************************!*\
20763 !*** ./node_modules/d3-shape/src/symbol.js ***!
20764 \*********************************************/
20765/*! exports provided: symbols, default */
20766/***/ (function(module, __webpack_exports__, __webpack_require__) {
20767
20768"use strict";
20769__webpack_require__.r(__webpack_exports__);
20770/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return symbols; });
20771/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/index.js");
20772/* harmony import */ var _symbol_circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./symbol/circle */ "./node_modules/d3-shape/src/symbol/circle.js");
20773/* harmony import */ var _symbol_cross__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./symbol/cross */ "./node_modules/d3-shape/src/symbol/cross.js");
20774/* harmony import */ var _symbol_diamond__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./symbol/diamond */ "./node_modules/d3-shape/src/symbol/diamond.js");
20775/* harmony import */ var _symbol_star__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symbol/star */ "./node_modules/d3-shape/src/symbol/star.js");
20776/* harmony import */ var _symbol_square__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./symbol/square */ "./node_modules/d3-shape/src/symbol/square.js");
20777/* harmony import */ var _symbol_triangle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./symbol/triangle */ "./node_modules/d3-shape/src/symbol/triangle.js");
20778/* harmony import */ var _symbol_wye__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./symbol/wye */ "./node_modules/d3-shape/src/symbol/wye.js");
20779/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-shape/src/constant.js");
20780
20781
20782
20783
20784
20785
20786
20787
20788
20789
20790var symbols = [
20791 _symbol_circle__WEBPACK_IMPORTED_MODULE_1__["default"],
20792 _symbol_cross__WEBPACK_IMPORTED_MODULE_2__["default"],
20793 _symbol_diamond__WEBPACK_IMPORTED_MODULE_3__["default"],
20794 _symbol_square__WEBPACK_IMPORTED_MODULE_5__["default"],
20795 _symbol_star__WEBPACK_IMPORTED_MODULE_4__["default"],
20796 _symbol_triangle__WEBPACK_IMPORTED_MODULE_6__["default"],
20797 _symbol_wye__WEBPACK_IMPORTED_MODULE_7__["default"]
20798];
20799
20800/* harmony default export */ __webpack_exports__["default"] = (function() {
20801 var type = Object(_constant__WEBPACK_IMPORTED_MODULE_8__["default"])(_symbol_circle__WEBPACK_IMPORTED_MODULE_1__["default"]),
20802 size = Object(_constant__WEBPACK_IMPORTED_MODULE_8__["default"])(64),
20803 context = null;
20804
20805 function symbol() {
20806 var buffer;
20807 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
20808 type.apply(this, arguments).draw(context, +size.apply(this, arguments));
20809 if (buffer) return context = null, buffer + "" || null;
20810 }
20811
20812 symbol.type = function(_) {
20813 return arguments.length ? (type = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_8__["default"])(_), symbol) : type;
20814 };
20815
20816 symbol.size = function(_) {
20817 return arguments.length ? (size = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_8__["default"])(+_), symbol) : size;
20818 };
20819
20820 symbol.context = function(_) {
20821 return arguments.length ? (context = _ == null ? null : _, symbol) : context;
20822 };
20823
20824 return symbol;
20825});
20826
20827
20828/***/ }),
20829
20830/***/ "./node_modules/d3-shape/src/symbol/circle.js":
20831/*!****************************************************!*\
20832 !*** ./node_modules/d3-shape/src/symbol/circle.js ***!
20833 \****************************************************/
20834/*! exports provided: default */
20835/***/ (function(module, __webpack_exports__, __webpack_require__) {
20836
20837"use strict";
20838__webpack_require__.r(__webpack_exports__);
20839/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-shape/src/math.js");
20840
20841
20842/* harmony default export */ __webpack_exports__["default"] = ({
20843 draw: function(context, size) {
20844 var r = Math.sqrt(size / _math__WEBPACK_IMPORTED_MODULE_0__["pi"]);
20845 context.moveTo(r, 0);
20846 context.arc(0, 0, r, 0, _math__WEBPACK_IMPORTED_MODULE_0__["tau"]);
20847 }
20848});
20849
20850
20851/***/ }),
20852
20853/***/ "./node_modules/d3-shape/src/symbol/cross.js":
20854/*!***************************************************!*\
20855 !*** ./node_modules/d3-shape/src/symbol/cross.js ***!
20856 \***************************************************/
20857/*! exports provided: default */
20858/***/ (function(module, __webpack_exports__, __webpack_require__) {
20859
20860"use strict";
20861__webpack_require__.r(__webpack_exports__);
20862/* harmony default export */ __webpack_exports__["default"] = ({
20863 draw: function(context, size) {
20864 var r = Math.sqrt(size / 5) / 2;
20865 context.moveTo(-3 * r, -r);
20866 context.lineTo(-r, -r);
20867 context.lineTo(-r, -3 * r);
20868 context.lineTo(r, -3 * r);
20869 context.lineTo(r, -r);
20870 context.lineTo(3 * r, -r);
20871 context.lineTo(3 * r, r);
20872 context.lineTo(r, r);
20873 context.lineTo(r, 3 * r);
20874 context.lineTo(-r, 3 * r);
20875 context.lineTo(-r, r);
20876 context.lineTo(-3 * r, r);
20877 context.closePath();
20878 }
20879});
20880
20881
20882/***/ }),
20883
20884/***/ "./node_modules/d3-shape/src/symbol/diamond.js":
20885/*!*****************************************************!*\
20886 !*** ./node_modules/d3-shape/src/symbol/diamond.js ***!
20887 \*****************************************************/
20888/*! exports provided: default */
20889/***/ (function(module, __webpack_exports__, __webpack_require__) {
20890
20891"use strict";
20892__webpack_require__.r(__webpack_exports__);
20893var tan30 = Math.sqrt(1 / 3),
20894 tan30_2 = tan30 * 2;
20895
20896/* harmony default export */ __webpack_exports__["default"] = ({
20897 draw: function(context, size) {
20898 var y = Math.sqrt(size / tan30_2),
20899 x = y * tan30;
20900 context.moveTo(0, -y);
20901 context.lineTo(x, 0);
20902 context.lineTo(0, y);
20903 context.lineTo(-x, 0);
20904 context.closePath();
20905 }
20906});
20907
20908
20909/***/ }),
20910
20911/***/ "./node_modules/d3-shape/src/symbol/square.js":
20912/*!****************************************************!*\
20913 !*** ./node_modules/d3-shape/src/symbol/square.js ***!
20914 \****************************************************/
20915/*! exports provided: default */
20916/***/ (function(module, __webpack_exports__, __webpack_require__) {
20917
20918"use strict";
20919__webpack_require__.r(__webpack_exports__);
20920/* harmony default export */ __webpack_exports__["default"] = ({
20921 draw: function(context, size) {
20922 var w = Math.sqrt(size),
20923 x = -w / 2;
20924 context.rect(x, x, w, w);
20925 }
20926});
20927
20928
20929/***/ }),
20930
20931/***/ "./node_modules/d3-shape/src/symbol/star.js":
20932/*!**************************************************!*\
20933 !*** ./node_modules/d3-shape/src/symbol/star.js ***!
20934 \**************************************************/
20935/*! exports provided: default */
20936/***/ (function(module, __webpack_exports__, __webpack_require__) {
20937
20938"use strict";
20939__webpack_require__.r(__webpack_exports__);
20940/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ "./node_modules/d3-shape/src/math.js");
20941
20942
20943var ka = 0.89081309152928522810,
20944 kr = Math.sin(_math__WEBPACK_IMPORTED_MODULE_0__["pi"] / 10) / Math.sin(7 * _math__WEBPACK_IMPORTED_MODULE_0__["pi"] / 10),
20945 kx = Math.sin(_math__WEBPACK_IMPORTED_MODULE_0__["tau"] / 10) * kr,
20946 ky = -Math.cos(_math__WEBPACK_IMPORTED_MODULE_0__["tau"] / 10) * kr;
20947
20948/* harmony default export */ __webpack_exports__["default"] = ({
20949 draw: function(context, size) {
20950 var r = Math.sqrt(size * ka),
20951 x = kx * r,
20952 y = ky * r;
20953 context.moveTo(0, -r);
20954 context.lineTo(x, y);
20955 for (var i = 1; i < 5; ++i) {
20956 var a = _math__WEBPACK_IMPORTED_MODULE_0__["tau"] * i / 5,
20957 c = Math.cos(a),
20958 s = Math.sin(a);
20959 context.lineTo(s * r, -c * r);
20960 context.lineTo(c * x - s * y, s * x + c * y);
20961 }
20962 context.closePath();
20963 }
20964});
20965
20966
20967/***/ }),
20968
20969/***/ "./node_modules/d3-shape/src/symbol/triangle.js":
20970/*!******************************************************!*\
20971 !*** ./node_modules/d3-shape/src/symbol/triangle.js ***!
20972 \******************************************************/
20973/*! exports provided: default */
20974/***/ (function(module, __webpack_exports__, __webpack_require__) {
20975
20976"use strict";
20977__webpack_require__.r(__webpack_exports__);
20978var sqrt3 = Math.sqrt(3);
20979
20980/* harmony default export */ __webpack_exports__["default"] = ({
20981 draw: function(context, size) {
20982 var y = -Math.sqrt(size / (sqrt3 * 3));
20983 context.moveTo(0, y * 2);
20984 context.lineTo(-sqrt3 * y, -y);
20985 context.lineTo(sqrt3 * y, -y);
20986 context.closePath();
20987 }
20988});
20989
20990
20991/***/ }),
20992
20993/***/ "./node_modules/d3-shape/src/symbol/wye.js":
20994/*!*************************************************!*\
20995 !*** ./node_modules/d3-shape/src/symbol/wye.js ***!
20996 \*************************************************/
20997/*! exports provided: default */
20998/***/ (function(module, __webpack_exports__, __webpack_require__) {
20999
21000"use strict";
21001__webpack_require__.r(__webpack_exports__);
21002var c = -0.5,
21003 s = Math.sqrt(3) / 2,
21004 k = 1 / Math.sqrt(12),
21005 a = (k / 2 + 1) * 3;
21006
21007/* harmony default export */ __webpack_exports__["default"] = ({
21008 draw: function(context, size) {
21009 var r = Math.sqrt(size / a),
21010 x0 = r / 2,
21011 y0 = r * k,
21012 x1 = x0,
21013 y1 = r * k + r,
21014 x2 = -x1,
21015 y2 = y1;
21016 context.moveTo(x0, y0);
21017 context.lineTo(x1, y1);
21018 context.lineTo(x2, y2);
21019 context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
21020 context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
21021 context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
21022 context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
21023 context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
21024 context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
21025 context.closePath();
21026 }
21027});
21028
21029
21030/***/ }),
21031
21032/***/ "./node_modules/d3-time-format/index.js":
21033/*!**********************************************!*\
21034 !*** ./node_modules/d3-time-format/index.js ***!
21035 \**********************************************/
21036/*! exports provided: timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse, timeFormatLocale, isoFormat, isoParse */
21037/***/ (function(module, __webpack_exports__, __webpack_require__) {
21038
21039"use strict";
21040__webpack_require__.r(__webpack_exports__);
21041/* harmony import */ var _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/defaultLocale */ "./node_modules/d3-time-format/src/defaultLocale.js");
21042/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatDefaultLocale", function() { return _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["default"]; });
21043
21044/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["timeFormat"]; });
21045
21046/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["timeParse"]; });
21047
21048/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["utcFormat"]; });
21049
21050/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return _src_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["utcParse"]; });
21051
21052/* harmony import */ var _src_locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/locale */ "./node_modules/d3-time-format/src/locale.js");
21053/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatLocale", function() { return _src_locale__WEBPACK_IMPORTED_MODULE_1__["default"]; });
21054
21055/* harmony import */ var _src_isoFormat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/isoFormat */ "./node_modules/d3-time-format/src/isoFormat.js");
21056/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoFormat", function() { return _src_isoFormat__WEBPACK_IMPORTED_MODULE_2__["default"]; });
21057
21058/* harmony import */ var _src_isoParse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/isoParse */ "./node_modules/d3-time-format/src/isoParse.js");
21059/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoParse", function() { return _src_isoParse__WEBPACK_IMPORTED_MODULE_3__["default"]; });
21060
21061
21062
21063
21064
21065
21066
21067/***/ }),
21068
21069/***/ "./node_modules/d3-time-format/src/defaultLocale.js":
21070/*!**********************************************************!*\
21071 !*** ./node_modules/d3-time-format/src/defaultLocale.js ***!
21072 \**********************************************************/
21073/*! exports provided: timeFormat, timeParse, utcFormat, utcParse, default */
21074/***/ (function(module, __webpack_exports__, __webpack_require__) {
21075
21076"use strict";
21077__webpack_require__.r(__webpack_exports__);
21078/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return timeFormat; });
21079/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return timeParse; });
21080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return utcFormat; });
21081/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return utcParse; });
21082/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return defaultLocale; });
21083/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale */ "./node_modules/d3-time-format/src/locale.js");
21084
21085
21086var locale;
21087var timeFormat;
21088var timeParse;
21089var utcFormat;
21090var utcParse;
21091
21092defaultLocale({
21093 dateTime: "%x, %X",
21094 date: "%-m/%-d/%Y",
21095 time: "%-I:%M:%S %p",
21096 periods: ["AM", "PM"],
21097 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
21098 shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
21099 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
21100 shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
21101});
21102
21103function defaultLocale(definition) {
21104 locale = Object(_locale__WEBPACK_IMPORTED_MODULE_0__["default"])(definition);
21105 timeFormat = locale.format;
21106 timeParse = locale.parse;
21107 utcFormat = locale.utcFormat;
21108 utcParse = locale.utcParse;
21109 return locale;
21110}
21111
21112
21113/***/ }),
21114
21115/***/ "./node_modules/d3-time-format/src/isoFormat.js":
21116/*!******************************************************!*\
21117 !*** ./node_modules/d3-time-format/src/isoFormat.js ***!
21118 \******************************************************/
21119/*! exports provided: isoSpecifier, default */
21120/***/ (function(module, __webpack_exports__, __webpack_require__) {
21121
21122"use strict";
21123__webpack_require__.r(__webpack_exports__);
21124/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isoSpecifier", function() { return isoSpecifier; });
21125/* harmony import */ var _defaultLocale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale */ "./node_modules/d3-time-format/src/defaultLocale.js");
21126
21127
21128var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
21129
21130function formatIsoNative(date) {
21131 return date.toISOString();
21132}
21133
21134var formatIso = Date.prototype.toISOString
21135 ? formatIsoNative
21136 : Object(_defaultLocale__WEBPACK_IMPORTED_MODULE_0__["utcFormat"])(isoSpecifier);
21137
21138/* harmony default export */ __webpack_exports__["default"] = (formatIso);
21139
21140
21141/***/ }),
21142
21143/***/ "./node_modules/d3-time-format/src/isoParse.js":
21144/*!*****************************************************!*\
21145 !*** ./node_modules/d3-time-format/src/isoParse.js ***!
21146 \*****************************************************/
21147/*! exports provided: default */
21148/***/ (function(module, __webpack_exports__, __webpack_require__) {
21149
21150"use strict";
21151__webpack_require__.r(__webpack_exports__);
21152/* harmony import */ var _isoFormat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isoFormat */ "./node_modules/d3-time-format/src/isoFormat.js");
21153/* harmony import */ var _defaultLocale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultLocale */ "./node_modules/d3-time-format/src/defaultLocale.js");
21154
21155
21156
21157function parseIsoNative(string) {
21158 var date = new Date(string);
21159 return isNaN(date) ? null : date;
21160}
21161
21162var parseIso = +new Date("2000-01-01T00:00:00.000Z")
21163 ? parseIsoNative
21164 : Object(_defaultLocale__WEBPACK_IMPORTED_MODULE_1__["utcParse"])(_isoFormat__WEBPACK_IMPORTED_MODULE_0__["isoSpecifier"]);
21165
21166/* harmony default export */ __webpack_exports__["default"] = (parseIso);
21167
21168
21169/***/ }),
21170
21171/***/ "./node_modules/d3-time-format/src/locale.js":
21172/*!***************************************************!*\
21173 !*** ./node_modules/d3-time-format/src/locale.js ***!
21174 \***************************************************/
21175/*! exports provided: default */
21176/***/ (function(module, __webpack_exports__, __webpack_require__) {
21177
21178"use strict";
21179__webpack_require__.r(__webpack_exports__);
21180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLocale; });
21181/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/index.js");
21182
21183
21184function localDate(d) {
21185 if (0 <= d.y && d.y < 100) {
21186 var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
21187 date.setFullYear(d.y);
21188 return date;
21189 }
21190 return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
21191}
21192
21193function utcDate(d) {
21194 if (0 <= d.y && d.y < 100) {
21195 var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
21196 date.setUTCFullYear(d.y);
21197 return date;
21198 }
21199 return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
21200}
21201
21202function newYear(y) {
21203 return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};
21204}
21205
21206function formatLocale(locale) {
21207 var locale_dateTime = locale.dateTime,
21208 locale_date = locale.date,
21209 locale_time = locale.time,
21210 locale_periods = locale.periods,
21211 locale_weekdays = locale.days,
21212 locale_shortWeekdays = locale.shortDays,
21213 locale_months = locale.months,
21214 locale_shortMonths = locale.shortMonths;
21215
21216 var periodRe = formatRe(locale_periods),
21217 periodLookup = formatLookup(locale_periods),
21218 weekdayRe = formatRe(locale_weekdays),
21219 weekdayLookup = formatLookup(locale_weekdays),
21220 shortWeekdayRe = formatRe(locale_shortWeekdays),
21221 shortWeekdayLookup = formatLookup(locale_shortWeekdays),
21222 monthRe = formatRe(locale_months),
21223 monthLookup = formatLookup(locale_months),
21224 shortMonthRe = formatRe(locale_shortMonths),
21225 shortMonthLookup = formatLookup(locale_shortMonths);
21226
21227 var formats = {
21228 "a": formatShortWeekday,
21229 "A": formatWeekday,
21230 "b": formatShortMonth,
21231 "B": formatMonth,
21232 "c": null,
21233 "d": formatDayOfMonth,
21234 "e": formatDayOfMonth,
21235 "f": formatMicroseconds,
21236 "H": formatHour24,
21237 "I": formatHour12,
21238 "j": formatDayOfYear,
21239 "L": formatMilliseconds,
21240 "m": formatMonthNumber,
21241 "M": formatMinutes,
21242 "p": formatPeriod,
21243 "Q": formatUnixTimestamp,
21244 "s": formatUnixTimestampSeconds,
21245 "S": formatSeconds,
21246 "u": formatWeekdayNumberMonday,
21247 "U": formatWeekNumberSunday,
21248 "V": formatWeekNumberISO,
21249 "w": formatWeekdayNumberSunday,
21250 "W": formatWeekNumberMonday,
21251 "x": null,
21252 "X": null,
21253 "y": formatYear,
21254 "Y": formatFullYear,
21255 "Z": formatZone,
21256 "%": formatLiteralPercent
21257 };
21258
21259 var utcFormats = {
21260 "a": formatUTCShortWeekday,
21261 "A": formatUTCWeekday,
21262 "b": formatUTCShortMonth,
21263 "B": formatUTCMonth,
21264 "c": null,
21265 "d": formatUTCDayOfMonth,
21266 "e": formatUTCDayOfMonth,
21267 "f": formatUTCMicroseconds,
21268 "H": formatUTCHour24,
21269 "I": formatUTCHour12,
21270 "j": formatUTCDayOfYear,
21271 "L": formatUTCMilliseconds,
21272 "m": formatUTCMonthNumber,
21273 "M": formatUTCMinutes,
21274 "p": formatUTCPeriod,
21275 "Q": formatUnixTimestamp,
21276 "s": formatUnixTimestampSeconds,
21277 "S": formatUTCSeconds,
21278 "u": formatUTCWeekdayNumberMonday,
21279 "U": formatUTCWeekNumberSunday,
21280 "V": formatUTCWeekNumberISO,
21281 "w": formatUTCWeekdayNumberSunday,
21282 "W": formatUTCWeekNumberMonday,
21283 "x": null,
21284 "X": null,
21285 "y": formatUTCYear,
21286 "Y": formatUTCFullYear,
21287 "Z": formatUTCZone,
21288 "%": formatLiteralPercent
21289 };
21290
21291 var parses = {
21292 "a": parseShortWeekday,
21293 "A": parseWeekday,
21294 "b": parseShortMonth,
21295 "B": parseMonth,
21296 "c": parseLocaleDateTime,
21297 "d": parseDayOfMonth,
21298 "e": parseDayOfMonth,
21299 "f": parseMicroseconds,
21300 "H": parseHour24,
21301 "I": parseHour24,
21302 "j": parseDayOfYear,
21303 "L": parseMilliseconds,
21304 "m": parseMonthNumber,
21305 "M": parseMinutes,
21306 "p": parsePeriod,
21307 "Q": parseUnixTimestamp,
21308 "s": parseUnixTimestampSeconds,
21309 "S": parseSeconds,
21310 "u": parseWeekdayNumberMonday,
21311 "U": parseWeekNumberSunday,
21312 "V": parseWeekNumberISO,
21313 "w": parseWeekdayNumberSunday,
21314 "W": parseWeekNumberMonday,
21315 "x": parseLocaleDate,
21316 "X": parseLocaleTime,
21317 "y": parseYear,
21318 "Y": parseFullYear,
21319 "Z": parseZone,
21320 "%": parseLiteralPercent
21321 };
21322
21323 // These recursive directive definitions must be deferred.
21324 formats.x = newFormat(locale_date, formats);
21325 formats.X = newFormat(locale_time, formats);
21326 formats.c = newFormat(locale_dateTime, formats);
21327 utcFormats.x = newFormat(locale_date, utcFormats);
21328 utcFormats.X = newFormat(locale_time, utcFormats);
21329 utcFormats.c = newFormat(locale_dateTime, utcFormats);
21330
21331 function newFormat(specifier, formats) {
21332 return function(date) {
21333 var string = [],
21334 i = -1,
21335 j = 0,
21336 n = specifier.length,
21337 c,
21338 pad,
21339 format;
21340
21341 if (!(date instanceof Date)) date = new Date(+date);
21342
21343 while (++i < n) {
21344 if (specifier.charCodeAt(i) === 37) {
21345 string.push(specifier.slice(j, i));
21346 if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
21347 else pad = c === "e" ? " " : "0";
21348 if (format = formats[c]) c = format(date, pad);
21349 string.push(c);
21350 j = i + 1;
21351 }
21352 }
21353
21354 string.push(specifier.slice(j, i));
21355 return string.join("");
21356 };
21357 }
21358
21359 function newParse(specifier, newDate) {
21360 return function(string) {
21361 var d = newYear(1900),
21362 i = parseSpecifier(d, specifier, string += "", 0),
21363 week, day;
21364 if (i != string.length) return null;
21365
21366 // If a UNIX timestamp is specified, return it.
21367 if ("Q" in d) return new Date(d.Q);
21368
21369 // The am-pm flag is 0 for AM, and 1 for PM.
21370 if ("p" in d) d.H = d.H % 12 + d.p * 12;
21371
21372 // Convert day-of-week and week-of-year to day-of-year.
21373 if ("V" in d) {
21374 if (d.V < 1 || d.V > 53) return null;
21375 if (!("w" in d)) d.w = 1;
21376 if ("Z" in d) {
21377 week = utcDate(newYear(d.y)), day = week.getUTCDay();
21378 week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"])(week);
21379 week = d3_time__WEBPACK_IMPORTED_MODULE_0__["utcDay"].offset(week, (d.V - 1) * 7);
21380 d.y = week.getUTCFullYear();
21381 d.m = week.getUTCMonth();
21382 d.d = week.getUTCDate() + (d.w + 6) % 7;
21383 } else {
21384 week = newDate(newYear(d.y)), day = week.getDay();
21385 week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"])(week);
21386 week = d3_time__WEBPACK_IMPORTED_MODULE_0__["timeDay"].offset(week, (d.V - 1) * 7);
21387 d.y = week.getFullYear();
21388 d.m = week.getMonth();
21389 d.d = week.getDate() + (d.w + 6) % 7;
21390 }
21391 } else if ("W" in d || "U" in d) {
21392 if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
21393 day = "Z" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();
21394 d.m = 0;
21395 d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
21396 }
21397
21398 // If a time zone is specified, all fields are interpreted as UTC and then
21399 // offset according to the specified time zone.
21400 if ("Z" in d) {
21401 d.H += d.Z / 100 | 0;
21402 d.M += d.Z % 100;
21403 return utcDate(d);
21404 }
21405
21406 // Otherwise, all fields are in local time.
21407 return newDate(d);
21408 };
21409 }
21410
21411 function parseSpecifier(d, specifier, string, j) {
21412 var i = 0,
21413 n = specifier.length,
21414 m = string.length,
21415 c,
21416 parse;
21417
21418 while (i < n) {
21419 if (j >= m) return -1;
21420 c = specifier.charCodeAt(i++);
21421 if (c === 37) {
21422 c = specifier.charAt(i++);
21423 parse = parses[c in pads ? specifier.charAt(i++) : c];
21424 if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
21425 } else if (c != string.charCodeAt(j++)) {
21426 return -1;
21427 }
21428 }
21429
21430 return j;
21431 }
21432
21433 function parsePeriod(d, string, i) {
21434 var n = periodRe.exec(string.slice(i));
21435 return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;
21436 }
21437
21438 function parseShortWeekday(d, string, i) {
21439 var n = shortWeekdayRe.exec(string.slice(i));
21440 return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
21441 }
21442
21443 function parseWeekday(d, string, i) {
21444 var n = weekdayRe.exec(string.slice(i));
21445 return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
21446 }
21447
21448 function parseShortMonth(d, string, i) {
21449 var n = shortMonthRe.exec(string.slice(i));
21450 return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
21451 }
21452
21453 function parseMonth(d, string, i) {
21454 var n = monthRe.exec(string.slice(i));
21455 return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
21456 }
21457
21458 function parseLocaleDateTime(d, string, i) {
21459 return parseSpecifier(d, locale_dateTime, string, i);
21460 }
21461
21462 function parseLocaleDate(d, string, i) {
21463 return parseSpecifier(d, locale_date, string, i);
21464 }
21465
21466 function parseLocaleTime(d, string, i) {
21467 return parseSpecifier(d, locale_time, string, i);
21468 }
21469
21470 function formatShortWeekday(d) {
21471 return locale_shortWeekdays[d.getDay()];
21472 }
21473
21474 function formatWeekday(d) {
21475 return locale_weekdays[d.getDay()];
21476 }
21477
21478 function formatShortMonth(d) {
21479 return locale_shortMonths[d.getMonth()];
21480 }
21481
21482 function formatMonth(d) {
21483 return locale_months[d.getMonth()];
21484 }
21485
21486 function formatPeriod(d) {
21487 return locale_periods[+(d.getHours() >= 12)];
21488 }
21489
21490 function formatUTCShortWeekday(d) {
21491 return locale_shortWeekdays[d.getUTCDay()];
21492 }
21493
21494 function formatUTCWeekday(d) {
21495 return locale_weekdays[d.getUTCDay()];
21496 }
21497
21498 function formatUTCShortMonth(d) {
21499 return locale_shortMonths[d.getUTCMonth()];
21500 }
21501
21502 function formatUTCMonth(d) {
21503 return locale_months[d.getUTCMonth()];
21504 }
21505
21506 function formatUTCPeriod(d) {
21507 return locale_periods[+(d.getUTCHours() >= 12)];
21508 }
21509
21510 return {
21511 format: function(specifier) {
21512 var f = newFormat(specifier += "", formats);
21513 f.toString = function() { return specifier; };
21514 return f;
21515 },
21516 parse: function(specifier) {
21517 var p = newParse(specifier += "", localDate);
21518 p.toString = function() { return specifier; };
21519 return p;
21520 },
21521 utcFormat: function(specifier) {
21522 var f = newFormat(specifier += "", utcFormats);
21523 f.toString = function() { return specifier; };
21524 return f;
21525 },
21526 utcParse: function(specifier) {
21527 var p = newParse(specifier, utcDate);
21528 p.toString = function() { return specifier; };
21529 return p;
21530 }
21531 };
21532}
21533
21534var pads = {"-": "", "_": " ", "0": "0"},
21535 numberRe = /^\s*\d+/, // note: ignores next directive
21536 percentRe = /^%/,
21537 requoteRe = /[\\^$*+?|[\]().{}]/g;
21538
21539function pad(value, fill, width) {
21540 var sign = value < 0 ? "-" : "",
21541 string = (sign ? -value : value) + "",
21542 length = string.length;
21543 return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
21544}
21545
21546function requote(s) {
21547 return s.replace(requoteRe, "\\$&");
21548}
21549
21550function formatRe(names) {
21551 return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
21552}
21553
21554function formatLookup(names) {
21555 var map = {}, i = -1, n = names.length;
21556 while (++i < n) map[names[i].toLowerCase()] = i;
21557 return map;
21558}
21559
21560function parseWeekdayNumberSunday(d, string, i) {
21561 var n = numberRe.exec(string.slice(i, i + 1));
21562 return n ? (d.w = +n[0], i + n[0].length) : -1;
21563}
21564
21565function parseWeekdayNumberMonday(d, string, i) {
21566 var n = numberRe.exec(string.slice(i, i + 1));
21567 return n ? (d.u = +n[0], i + n[0].length) : -1;
21568}
21569
21570function parseWeekNumberSunday(d, string, i) {
21571 var n = numberRe.exec(string.slice(i, i + 2));
21572 return n ? (d.U = +n[0], i + n[0].length) : -1;
21573}
21574
21575function parseWeekNumberISO(d, string, i) {
21576 var n = numberRe.exec(string.slice(i, i + 2));
21577 return n ? (d.V = +n[0], i + n[0].length) : -1;
21578}
21579
21580function parseWeekNumberMonday(d, string, i) {
21581 var n = numberRe.exec(string.slice(i, i + 2));
21582 return n ? (d.W = +n[0], i + n[0].length) : -1;
21583}
21584
21585function parseFullYear(d, string, i) {
21586 var n = numberRe.exec(string.slice(i, i + 4));
21587 return n ? (d.y = +n[0], i + n[0].length) : -1;
21588}
21589
21590function parseYear(d, string, i) {
21591 var n = numberRe.exec(string.slice(i, i + 2));
21592 return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
21593}
21594
21595function parseZone(d, string, i) {
21596 var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
21597 return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
21598}
21599
21600function parseMonthNumber(d, string, i) {
21601 var n = numberRe.exec(string.slice(i, i + 2));
21602 return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
21603}
21604
21605function parseDayOfMonth(d, string, i) {
21606 var n = numberRe.exec(string.slice(i, i + 2));
21607 return n ? (d.d = +n[0], i + n[0].length) : -1;
21608}
21609
21610function parseDayOfYear(d, string, i) {
21611 var n = numberRe.exec(string.slice(i, i + 3));
21612 return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
21613}
21614
21615function parseHour24(d, string, i) {
21616 var n = numberRe.exec(string.slice(i, i + 2));
21617 return n ? (d.H = +n[0], i + n[0].length) : -1;
21618}
21619
21620function parseMinutes(d, string, i) {
21621 var n = numberRe.exec(string.slice(i, i + 2));
21622 return n ? (d.M = +n[0], i + n[0].length) : -1;
21623}
21624
21625function parseSeconds(d, string, i) {
21626 var n = numberRe.exec(string.slice(i, i + 2));
21627 return n ? (d.S = +n[0], i + n[0].length) : -1;
21628}
21629
21630function parseMilliseconds(d, string, i) {
21631 var n = numberRe.exec(string.slice(i, i + 3));
21632 return n ? (d.L = +n[0], i + n[0].length) : -1;
21633}
21634
21635function parseMicroseconds(d, string, i) {
21636 var n = numberRe.exec(string.slice(i, i + 6));
21637 return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
21638}
21639
21640function parseLiteralPercent(d, string, i) {
21641 var n = percentRe.exec(string.slice(i, i + 1));
21642 return n ? i + n[0].length : -1;
21643}
21644
21645function parseUnixTimestamp(d, string, i) {
21646 var n = numberRe.exec(string.slice(i));
21647 return n ? (d.Q = +n[0], i + n[0].length) : -1;
21648}
21649
21650function parseUnixTimestampSeconds(d, string, i) {
21651 var n = numberRe.exec(string.slice(i));
21652 return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;
21653}
21654
21655function formatDayOfMonth(d, p) {
21656 return pad(d.getDate(), p, 2);
21657}
21658
21659function formatHour24(d, p) {
21660 return pad(d.getHours(), p, 2);
21661}
21662
21663function formatHour12(d, p) {
21664 return pad(d.getHours() % 12 || 12, p, 2);
21665}
21666
21667function formatDayOfYear(d, p) {
21668 return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__["timeDay"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d), d), p, 3);
21669}
21670
21671function formatMilliseconds(d, p) {
21672 return pad(d.getMilliseconds(), p, 3);
21673}
21674
21675function formatMicroseconds(d, p) {
21676 return formatMilliseconds(d, p) + "000";
21677}
21678
21679function formatMonthNumber(d, p) {
21680 return pad(d.getMonth() + 1, p, 2);
21681}
21682
21683function formatMinutes(d, p) {
21684 return pad(d.getMinutes(), p, 2);
21685}
21686
21687function formatSeconds(d, p) {
21688 return pad(d.getSeconds(), p, 2);
21689}
21690
21691function formatWeekdayNumberMonday(d) {
21692 var day = d.getDay();
21693 return day === 0 ? 7 : day;
21694}
21695
21696function formatWeekNumberSunday(d, p) {
21697 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeSunday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d), d), p, 2);
21698}
21699
21700function formatWeekNumberISO(d, p) {
21701 var day = d.getDay();
21702 d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeThursday"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__["timeThursday"].ceil(d);
21703 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);
21704}
21705
21706function formatWeekdayNumberSunday(d) {
21707 return d.getDay();
21708}
21709
21710function formatWeekNumberMonday(d, p) {
21711 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d), d), p, 2);
21712}
21713
21714function formatYear(d, p) {
21715 return pad(d.getFullYear() % 100, p, 2);
21716}
21717
21718function formatFullYear(d, p) {
21719 return pad(d.getFullYear() % 10000, p, 4);
21720}
21721
21722function formatZone(d) {
21723 var z = d.getTimezoneOffset();
21724 return (z > 0 ? "-" : (z *= -1, "+"))
21725 + pad(z / 60 | 0, "0", 2)
21726 + pad(z % 60, "0", 2);
21727}
21728
21729function formatUTCDayOfMonth(d, p) {
21730 return pad(d.getUTCDate(), p, 2);
21731}
21732
21733function formatUTCHour24(d, p) {
21734 return pad(d.getUTCHours(), p, 2);
21735}
21736
21737function formatUTCHour12(d, p) {
21738 return pad(d.getUTCHours() % 12 || 12, p, 2);
21739}
21740
21741function formatUTCDayOfYear(d, p) {
21742 return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__["utcDay"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d), d), p, 3);
21743}
21744
21745function formatUTCMilliseconds(d, p) {
21746 return pad(d.getUTCMilliseconds(), p, 3);
21747}
21748
21749function formatUTCMicroseconds(d, p) {
21750 return formatUTCMilliseconds(d, p) + "000";
21751}
21752
21753function formatUTCMonthNumber(d, p) {
21754 return pad(d.getUTCMonth() + 1, p, 2);
21755}
21756
21757function formatUTCMinutes(d, p) {
21758 return pad(d.getUTCMinutes(), p, 2);
21759}
21760
21761function formatUTCSeconds(d, p) {
21762 return pad(d.getUTCSeconds(), p, 2);
21763}
21764
21765function formatUTCWeekdayNumberMonday(d) {
21766 var dow = d.getUTCDay();
21767 return dow === 0 ? 7 : dow;
21768}
21769
21770function formatUTCWeekNumberSunday(d, p) {
21771 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcSunday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d), d), p, 2);
21772}
21773
21774function formatUTCWeekNumberISO(d, p) {
21775 var day = d.getUTCDay();
21776 d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcThursday"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__["utcThursday"].ceil(d);
21777 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);
21778}
21779
21780function formatUTCWeekdayNumberSunday(d) {
21781 return d.getUTCDay();
21782}
21783
21784function formatUTCWeekNumberMonday(d, p) {
21785 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d), d), p, 2);
21786}
21787
21788function formatUTCYear(d, p) {
21789 return pad(d.getUTCFullYear() % 100, p, 2);
21790}
21791
21792function formatUTCFullYear(d, p) {
21793 return pad(d.getUTCFullYear() % 10000, p, 4);
21794}
21795
21796function formatUTCZone() {
21797 return "+0000";
21798}
21799
21800function formatLiteralPercent() {
21801 return "%";
21802}
21803
21804function formatUnixTimestamp(d) {
21805 return +d;
21806}
21807
21808function formatUnixTimestampSeconds(d) {
21809 return Math.floor(+d / 1000);
21810}
21811
21812
21813/***/ }),
21814
21815/***/ "./node_modules/d3-time/index.js":
21816/*!***************************************!*\
21817 !*** ./node_modules/d3-time/index.js ***!
21818 \***************************************/
21819/*! 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 */
21820/***/ (function(module, __webpack_exports__, __webpack_require__) {
21821
21822"use strict";
21823__webpack_require__.r(__webpack_exports__);
21824/* harmony import */ var _src_interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/interval */ "./node_modules/d3-time/src/interval.js");
21825/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _src_interval__WEBPACK_IMPORTED_MODULE_0__["default"]; });
21826
21827/* harmony import */ var _src_millisecond__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/millisecond */ "./node_modules/d3-time/src/millisecond.js");
21828/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMillisecond", function() { return _src_millisecond__WEBPACK_IMPORTED_MODULE_1__["default"]; });
21829
21830/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMilliseconds", function() { return _src_millisecond__WEBPACK_IMPORTED_MODULE_1__["milliseconds"]; });
21831
21832/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMillisecond", function() { return _src_millisecond__WEBPACK_IMPORTED_MODULE_1__["default"]; });
21833
21834/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMilliseconds", function() { return _src_millisecond__WEBPACK_IMPORTED_MODULE_1__["milliseconds"]; });
21835
21836/* harmony import */ var _src_second__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/second */ "./node_modules/d3-time/src/second.js");
21837/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSecond", function() { return _src_second__WEBPACK_IMPORTED_MODULE_2__["default"]; });
21838
21839/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSeconds", function() { return _src_second__WEBPACK_IMPORTED_MODULE_2__["seconds"]; });
21840
21841/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSecond", function() { return _src_second__WEBPACK_IMPORTED_MODULE_2__["default"]; });
21842
21843/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSeconds", function() { return _src_second__WEBPACK_IMPORTED_MODULE_2__["seconds"]; });
21844
21845/* harmony import */ var _src_minute__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/minute */ "./node_modules/d3-time/src/minute.js");
21846/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinute", function() { return _src_minute__WEBPACK_IMPORTED_MODULE_3__["default"]; });
21847
21848/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinutes", function() { return _src_minute__WEBPACK_IMPORTED_MODULE_3__["minutes"]; });
21849
21850/* harmony import */ var _src_hour__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/hour */ "./node_modules/d3-time/src/hour.js");
21851/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHour", function() { return _src_hour__WEBPACK_IMPORTED_MODULE_4__["default"]; });
21852
21853/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHours", function() { return _src_hour__WEBPACK_IMPORTED_MODULE_4__["hours"]; });
21854
21855/* harmony import */ var _src_day__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/day */ "./node_modules/d3-time/src/day.js");
21856/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDay", function() { return _src_day__WEBPACK_IMPORTED_MODULE_5__["default"]; });
21857
21858/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDays", function() { return _src_day__WEBPACK_IMPORTED_MODULE_5__["days"]; });
21859
21860/* harmony import */ var _src_week__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/week */ "./node_modules/d3-time/src/week.js");
21861/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeek", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["sunday"]; });
21862
21863/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeeks", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["sundays"]; });
21864
21865/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSunday", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["sunday"]; });
21866
21867/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSundays", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["sundays"]; });
21868
21869/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonday", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["monday"]; });
21870
21871/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMondays", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["mondays"]; });
21872
21873/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesday", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["tuesday"]; });
21874
21875/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesdays", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["tuesdays"]; });
21876
21877/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesday", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["wednesday"]; });
21878
21879/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesdays", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["wednesdays"]; });
21880
21881/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursday", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["thursday"]; });
21882
21883/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursdays", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["thursdays"]; });
21884
21885/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFriday", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["friday"]; });
21886
21887/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFridays", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["fridays"]; });
21888
21889/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturday", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["saturday"]; });
21890
21891/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturdays", function() { return _src_week__WEBPACK_IMPORTED_MODULE_6__["saturdays"]; });
21892
21893/* harmony import */ var _src_month__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/month */ "./node_modules/d3-time/src/month.js");
21894/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonth", function() { return _src_month__WEBPACK_IMPORTED_MODULE_7__["default"]; });
21895
21896/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonths", function() { return _src_month__WEBPACK_IMPORTED_MODULE_7__["months"]; });
21897
21898/* harmony import */ var _src_year__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/year */ "./node_modules/d3-time/src/year.js");
21899/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYear", function() { return _src_year__WEBPACK_IMPORTED_MODULE_8__["default"]; });
21900
21901/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYears", function() { return _src_year__WEBPACK_IMPORTED_MODULE_8__["years"]; });
21902
21903/* harmony import */ var _src_utcMinute__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/utcMinute */ "./node_modules/d3-time/src/utcMinute.js");
21904/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinute", function() { return _src_utcMinute__WEBPACK_IMPORTED_MODULE_9__["default"]; });
21905
21906/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return _src_utcMinute__WEBPACK_IMPORTED_MODULE_9__["utcMinutes"]; });
21907
21908/* harmony import */ var _src_utcHour__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/utcHour */ "./node_modules/d3-time/src/utcHour.js");
21909/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHour", function() { return _src_utcHour__WEBPACK_IMPORTED_MODULE_10__["default"]; });
21910
21911/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return _src_utcHour__WEBPACK_IMPORTED_MODULE_10__["utcHours"]; });
21912
21913/* harmony import */ var _src_utcDay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/utcDay */ "./node_modules/d3-time/src/utcDay.js");
21914/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDay", function() { return _src_utcDay__WEBPACK_IMPORTED_MODULE_11__["default"]; });
21915
21916/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return _src_utcDay__WEBPACK_IMPORTED_MODULE_11__["utcDays"]; });
21917
21918/* harmony import */ var _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/utcWeek */ "./node_modules/d3-time/src/utcWeek.js");
21919/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeek", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSunday"]; });
21920
21921/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeeks", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSundays"]; });
21922
21923/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSunday"]; });
21924
21925/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSundays"]; });
21926
21927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcMonday"]; });
21928
21929/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcMondays"]; });
21930
21931/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcTuesday"]; });
21932
21933/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcTuesdays"]; });
21934
21935/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcWednesday"]; });
21936
21937/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcWednesdays"]; });
21938
21939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcThursday"]; });
21940
21941/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcThursdays"]; });
21942
21943/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcFriday"]; });
21944
21945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcFridays"]; });
21946
21947/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSaturday"]; });
21948
21949/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return _src_utcWeek__WEBPACK_IMPORTED_MODULE_12__["utcSaturdays"]; });
21950
21951/* harmony import */ var _src_utcMonth__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/utcMonth */ "./node_modules/d3-time/src/utcMonth.js");
21952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonth", function() { return _src_utcMonth__WEBPACK_IMPORTED_MODULE_13__["default"]; });
21953
21954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return _src_utcMonth__WEBPACK_IMPORTED_MODULE_13__["utcMonths"]; });
21955
21956/* harmony import */ var _src_utcYear__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/utcYear */ "./node_modules/d3-time/src/utcYear.js");
21957/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYear", function() { return _src_utcYear__WEBPACK_IMPORTED_MODULE_14__["default"]; });
21958
21959/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return _src_utcYear__WEBPACK_IMPORTED_MODULE_14__["utcYears"]; });
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
21981
21982
21983
21984
21985
21986
21987
21988
21989
21990
21991
21992/***/ }),
21993
21994/***/ "./node_modules/d3-time/src/day.js":
21995/*!*****************************************!*\
21996 !*** ./node_modules/d3-time/src/day.js ***!
21997 \*****************************************/
21998/*! exports provided: default, days */
21999/***/ (function(module, __webpack_exports__, __webpack_require__) {
22000
22001"use strict";
22002__webpack_require__.r(__webpack_exports__);
22003/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "days", function() { return days; });
22004/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22005/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22006
22007
22008
22009var day = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22010 date.setHours(0, 0, 0, 0);
22011}, function(date, step) {
22012 date.setDate(date.getDate() + step);
22013}, function(start, end) {
22014 return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationDay"];
22015}, function(date) {
22016 return date.getDate() - 1;
22017});
22018
22019/* harmony default export */ __webpack_exports__["default"] = (day);
22020var days = day.range;
22021
22022
22023/***/ }),
22024
22025/***/ "./node_modules/d3-time/src/duration.js":
22026/*!**********************************************!*\
22027 !*** ./node_modules/d3-time/src/duration.js ***!
22028 \**********************************************/
22029/*! exports provided: durationSecond, durationMinute, durationHour, durationDay, durationWeek */
22030/***/ (function(module, __webpack_exports__, __webpack_require__) {
22031
22032"use strict";
22033__webpack_require__.r(__webpack_exports__);
22034/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationSecond", function() { return durationSecond; });
22035/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationMinute", function() { return durationMinute; });
22036/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationHour", function() { return durationHour; });
22037/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationDay", function() { return durationDay; });
22038/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationWeek", function() { return durationWeek; });
22039var durationSecond = 1e3;
22040var durationMinute = 6e4;
22041var durationHour = 36e5;
22042var durationDay = 864e5;
22043var durationWeek = 6048e5;
22044
22045
22046/***/ }),
22047
22048/***/ "./node_modules/d3-time/src/hour.js":
22049/*!******************************************!*\
22050 !*** ./node_modules/d3-time/src/hour.js ***!
22051 \******************************************/
22052/*! exports provided: default, hours */
22053/***/ (function(module, __webpack_exports__, __webpack_require__) {
22054
22055"use strict";
22056__webpack_require__.r(__webpack_exports__);
22057/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hours", function() { return hours; });
22058/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22059/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22060
22061
22062
22063var hour = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22064 var offset = date.getTimezoneOffset() * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"] % _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
22065 if (offset < 0) offset += _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
22066 date.setTime(Math.floor((+date - offset) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"]) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"] + offset);
22067}, function(date, step) {
22068 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"]);
22069}, function(start, end) {
22070 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
22071}, function(date) {
22072 return date.getHours();
22073});
22074
22075/* harmony default export */ __webpack_exports__["default"] = (hour);
22076var hours = hour.range;
22077
22078
22079/***/ }),
22080
22081/***/ "./node_modules/d3-time/src/interval.js":
22082/*!**********************************************!*\
22083 !*** ./node_modules/d3-time/src/interval.js ***!
22084 \**********************************************/
22085/*! exports provided: default */
22086/***/ (function(module, __webpack_exports__, __webpack_require__) {
22087
22088"use strict";
22089__webpack_require__.r(__webpack_exports__);
22090/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return newInterval; });
22091var t0 = new Date,
22092 t1 = new Date;
22093
22094function newInterval(floori, offseti, count, field) {
22095
22096 function interval(date) {
22097 return floori(date = new Date(+date)), date;
22098 }
22099
22100 interval.floor = interval;
22101
22102 interval.ceil = function(date) {
22103 return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
22104 };
22105
22106 interval.round = function(date) {
22107 var d0 = interval(date),
22108 d1 = interval.ceil(date);
22109 return date - d0 < d1 - date ? d0 : d1;
22110 };
22111
22112 interval.offset = function(date, step) {
22113 return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
22114 };
22115
22116 interval.range = function(start, stop, step) {
22117 var range = [], previous;
22118 start = interval.ceil(start);
22119 step = step == null ? 1 : Math.floor(step);
22120 if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
22121 do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
22122 while (previous < start && start < stop);
22123 return range;
22124 };
22125
22126 interval.filter = function(test) {
22127 return newInterval(function(date) {
22128 if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
22129 }, function(date, step) {
22130 if (date >= date) {
22131 if (step < 0) while (++step <= 0) {
22132 while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
22133 } else while (--step >= 0) {
22134 while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
22135 }
22136 }
22137 });
22138 };
22139
22140 if (count) {
22141 interval.count = function(start, end) {
22142 t0.setTime(+start), t1.setTime(+end);
22143 floori(t0), floori(t1);
22144 return Math.floor(count(t0, t1));
22145 };
22146
22147 interval.every = function(step) {
22148 step = Math.floor(step);
22149 return !isFinite(step) || !(step > 0) ? null
22150 : !(step > 1) ? interval
22151 : interval.filter(field
22152 ? function(d) { return field(d) % step === 0; }
22153 : function(d) { return interval.count(0, d) % step === 0; });
22154 };
22155 }
22156
22157 return interval;
22158}
22159
22160
22161/***/ }),
22162
22163/***/ "./node_modules/d3-time/src/millisecond.js":
22164/*!*************************************************!*\
22165 !*** ./node_modules/d3-time/src/millisecond.js ***!
22166 \*************************************************/
22167/*! exports provided: default, milliseconds */
22168/***/ (function(module, __webpack_exports__, __webpack_require__) {
22169
22170"use strict";
22171__webpack_require__.r(__webpack_exports__);
22172/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "milliseconds", function() { return milliseconds; });
22173/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22174
22175
22176var millisecond = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function() {
22177 // noop
22178}, function(date, step) {
22179 date.setTime(+date + step);
22180}, function(start, end) {
22181 return end - start;
22182});
22183
22184// An optimized implementation for this simple case.
22185millisecond.every = function(k) {
22186 k = Math.floor(k);
22187 if (!isFinite(k) || !(k > 0)) return null;
22188 if (!(k > 1)) return millisecond;
22189 return Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22190 date.setTime(Math.floor(date / k) * k);
22191 }, function(date, step) {
22192 date.setTime(+date + step * k);
22193 }, function(start, end) {
22194 return (end - start) / k;
22195 });
22196};
22197
22198/* harmony default export */ __webpack_exports__["default"] = (millisecond);
22199var milliseconds = millisecond.range;
22200
22201
22202/***/ }),
22203
22204/***/ "./node_modules/d3-time/src/minute.js":
22205/*!********************************************!*\
22206 !*** ./node_modules/d3-time/src/minute.js ***!
22207 \********************************************/
22208/*! exports provided: default, minutes */
22209/***/ (function(module, __webpack_exports__, __webpack_require__) {
22210
22211"use strict";
22212__webpack_require__.r(__webpack_exports__);
22213/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "minutes", function() { return minutes; });
22214/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22215/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22216
22217
22218
22219var minute = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22220 date.setTime(Math.floor(date / _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
22221}, function(date, step) {
22222 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
22223}, function(start, end) {
22224 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"];
22225}, function(date) {
22226 return date.getMinutes();
22227});
22228
22229/* harmony default export */ __webpack_exports__["default"] = (minute);
22230var minutes = minute.range;
22231
22232
22233/***/ }),
22234
22235/***/ "./node_modules/d3-time/src/month.js":
22236/*!*******************************************!*\
22237 !*** ./node_modules/d3-time/src/month.js ***!
22238 \*******************************************/
22239/*! exports provided: default, months */
22240/***/ (function(module, __webpack_exports__, __webpack_require__) {
22241
22242"use strict";
22243__webpack_require__.r(__webpack_exports__);
22244/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "months", function() { return months; });
22245/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22246
22247
22248var month = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22249 date.setDate(1);
22250 date.setHours(0, 0, 0, 0);
22251}, function(date, step) {
22252 date.setMonth(date.getMonth() + step);
22253}, function(start, end) {
22254 return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
22255}, function(date) {
22256 return date.getMonth();
22257});
22258
22259/* harmony default export */ __webpack_exports__["default"] = (month);
22260var months = month.range;
22261
22262
22263/***/ }),
22264
22265/***/ "./node_modules/d3-time/src/second.js":
22266/*!********************************************!*\
22267 !*** ./node_modules/d3-time/src/second.js ***!
22268 \********************************************/
22269/*! exports provided: default, seconds */
22270/***/ (function(module, __webpack_exports__, __webpack_require__) {
22271
22272"use strict";
22273__webpack_require__.r(__webpack_exports__);
22274/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "seconds", function() { return seconds; });
22275/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22276/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22277
22278
22279
22280var second = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22281 date.setTime(Math.floor(date / _duration__WEBPACK_IMPORTED_MODULE_1__["durationSecond"]) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationSecond"]);
22282}, function(date, step) {
22283 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationSecond"]);
22284}, function(start, end) {
22285 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationSecond"];
22286}, function(date) {
22287 return date.getUTCSeconds();
22288});
22289
22290/* harmony default export */ __webpack_exports__["default"] = (second);
22291var seconds = second.range;
22292
22293
22294/***/ }),
22295
22296/***/ "./node_modules/d3-time/src/utcDay.js":
22297/*!********************************************!*\
22298 !*** ./node_modules/d3-time/src/utcDay.js ***!
22299 \********************************************/
22300/*! exports provided: default, utcDays */
22301/***/ (function(module, __webpack_exports__, __webpack_require__) {
22302
22303"use strict";
22304__webpack_require__.r(__webpack_exports__);
22305/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return utcDays; });
22306/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22307/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22308
22309
22310
22311var utcDay = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22312 date.setUTCHours(0, 0, 0, 0);
22313}, function(date, step) {
22314 date.setUTCDate(date.getUTCDate() + step);
22315}, function(start, end) {
22316 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationDay"];
22317}, function(date) {
22318 return date.getUTCDate() - 1;
22319});
22320
22321/* harmony default export */ __webpack_exports__["default"] = (utcDay);
22322var utcDays = utcDay.range;
22323
22324
22325/***/ }),
22326
22327/***/ "./node_modules/d3-time/src/utcHour.js":
22328/*!*********************************************!*\
22329 !*** ./node_modules/d3-time/src/utcHour.js ***!
22330 \*********************************************/
22331/*! exports provided: default, utcHours */
22332/***/ (function(module, __webpack_exports__, __webpack_require__) {
22333
22334"use strict";
22335__webpack_require__.r(__webpack_exports__);
22336/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return utcHours; });
22337/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22338/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22339
22340
22341
22342var utcHour = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22343 date.setUTCMinutes(0, 0, 0);
22344}, function(date, step) {
22345 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"]);
22346}, function(start, end) {
22347 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
22348}, function(date) {
22349 return date.getUTCHours();
22350});
22351
22352/* harmony default export */ __webpack_exports__["default"] = (utcHour);
22353var utcHours = utcHour.range;
22354
22355
22356/***/ }),
22357
22358/***/ "./node_modules/d3-time/src/utcMinute.js":
22359/*!***********************************************!*\
22360 !*** ./node_modules/d3-time/src/utcMinute.js ***!
22361 \***********************************************/
22362/*! exports provided: default, utcMinutes */
22363/***/ (function(module, __webpack_exports__, __webpack_require__) {
22364
22365"use strict";
22366__webpack_require__.r(__webpack_exports__);
22367/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return utcMinutes; });
22368/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22369/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22370
22371
22372
22373var utcMinute = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22374 date.setUTCSeconds(0, 0);
22375}, function(date, step) {
22376 date.setTime(+date + step * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
22377}, function(start, end) {
22378 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"];
22379}, function(date) {
22380 return date.getUTCMinutes();
22381});
22382
22383/* harmony default export */ __webpack_exports__["default"] = (utcMinute);
22384var utcMinutes = utcMinute.range;
22385
22386
22387/***/ }),
22388
22389/***/ "./node_modules/d3-time/src/utcMonth.js":
22390/*!**********************************************!*\
22391 !*** ./node_modules/d3-time/src/utcMonth.js ***!
22392 \**********************************************/
22393/*! exports provided: default, utcMonths */
22394/***/ (function(module, __webpack_exports__, __webpack_require__) {
22395
22396"use strict";
22397__webpack_require__.r(__webpack_exports__);
22398/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return utcMonths; });
22399/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22400
22401
22402var utcMonth = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22403 date.setUTCDate(1);
22404 date.setUTCHours(0, 0, 0, 0);
22405}, function(date, step) {
22406 date.setUTCMonth(date.getUTCMonth() + step);
22407}, function(start, end) {
22408 return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
22409}, function(date) {
22410 return date.getUTCMonth();
22411});
22412
22413/* harmony default export */ __webpack_exports__["default"] = (utcMonth);
22414var utcMonths = utcMonth.range;
22415
22416
22417/***/ }),
22418
22419/***/ "./node_modules/d3-time/src/utcWeek.js":
22420/*!*********************************************!*\
22421 !*** ./node_modules/d3-time/src/utcWeek.js ***!
22422 \*********************************************/
22423/*! exports provided: utcSunday, utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSundays, utcMondays, utcTuesdays, utcWednesdays, utcThursdays, utcFridays, utcSaturdays */
22424/***/ (function(module, __webpack_exports__, __webpack_require__) {
22425
22426"use strict";
22427__webpack_require__.r(__webpack_exports__);
22428/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return utcSunday; });
22429/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return utcMonday; });
22430/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return utcTuesday; });
22431/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return utcWednesday; });
22432/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return utcThursday; });
22433/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return utcFriday; });
22434/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return utcSaturday; });
22435/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return utcSundays; });
22436/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return utcMondays; });
22437/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return utcTuesdays; });
22438/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return utcWednesdays; });
22439/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return utcThursdays; });
22440/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return utcFridays; });
22441/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return utcSaturdays; });
22442/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22443/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22444
22445
22446
22447function utcWeekday(i) {
22448 return Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22449 date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
22450 date.setUTCHours(0, 0, 0, 0);
22451 }, function(date, step) {
22452 date.setUTCDate(date.getUTCDate() + step * 7);
22453 }, function(start, end) {
22454 return (end - start) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationWeek"];
22455 });
22456}
22457
22458var utcSunday = utcWeekday(0);
22459var utcMonday = utcWeekday(1);
22460var utcTuesday = utcWeekday(2);
22461var utcWednesday = utcWeekday(3);
22462var utcThursday = utcWeekday(4);
22463var utcFriday = utcWeekday(5);
22464var utcSaturday = utcWeekday(6);
22465
22466var utcSundays = utcSunday.range;
22467var utcMondays = utcMonday.range;
22468var utcTuesdays = utcTuesday.range;
22469var utcWednesdays = utcWednesday.range;
22470var utcThursdays = utcThursday.range;
22471var utcFridays = utcFriday.range;
22472var utcSaturdays = utcSaturday.range;
22473
22474
22475/***/ }),
22476
22477/***/ "./node_modules/d3-time/src/utcYear.js":
22478/*!*********************************************!*\
22479 !*** ./node_modules/d3-time/src/utcYear.js ***!
22480 \*********************************************/
22481/*! exports provided: default, utcYears */
22482/***/ (function(module, __webpack_exports__, __webpack_require__) {
22483
22484"use strict";
22485__webpack_require__.r(__webpack_exports__);
22486/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return utcYears; });
22487/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22488
22489
22490var utcYear = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22491 date.setUTCMonth(0, 1);
22492 date.setUTCHours(0, 0, 0, 0);
22493}, function(date, step) {
22494 date.setUTCFullYear(date.getUTCFullYear() + step);
22495}, function(start, end) {
22496 return end.getUTCFullYear() - start.getUTCFullYear();
22497}, function(date) {
22498 return date.getUTCFullYear();
22499});
22500
22501// An optimized implementation for this simple case.
22502utcYear.every = function(k) {
22503 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22504 date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
22505 date.setUTCMonth(0, 1);
22506 date.setUTCHours(0, 0, 0, 0);
22507 }, function(date, step) {
22508 date.setUTCFullYear(date.getUTCFullYear() + step * k);
22509 });
22510};
22511
22512/* harmony default export */ __webpack_exports__["default"] = (utcYear);
22513var utcYears = utcYear.range;
22514
22515
22516/***/ }),
22517
22518/***/ "./node_modules/d3-time/src/week.js":
22519/*!******************************************!*\
22520 !*** ./node_modules/d3-time/src/week.js ***!
22521 \******************************************/
22522/*! exports provided: sunday, monday, tuesday, wednesday, thursday, friday, saturday, sundays, mondays, tuesdays, wednesdays, thursdays, fridays, saturdays */
22523/***/ (function(module, __webpack_exports__, __webpack_require__) {
22524
22525"use strict";
22526__webpack_require__.r(__webpack_exports__);
22527/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sunday", function() { return sunday; });
22528/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monday", function() { return monday; });
22529/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tuesday", function() { return tuesday; });
22530/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wednesday", function() { return wednesday; });
22531/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "thursday", function() { return thursday; });
22532/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "friday", function() { return friday; });
22533/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "saturday", function() { return saturday; });
22534/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sundays", function() { return sundays; });
22535/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mondays", function() { return mondays; });
22536/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tuesdays", function() { return tuesdays; });
22537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wednesdays", function() { return wednesdays; });
22538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "thursdays", function() { return thursdays; });
22539/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fridays", function() { return fridays; });
22540/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "saturdays", function() { return saturdays; });
22541/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22542/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-time/src/duration.js");
22543
22544
22545
22546function weekday(i) {
22547 return Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22548 date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
22549 date.setHours(0, 0, 0, 0);
22550 }, function(date, step) {
22551 date.setDate(date.getDate() + step * 7);
22552 }, function(start, end) {
22553 return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]) / _duration__WEBPACK_IMPORTED_MODULE_1__["durationWeek"];
22554 });
22555}
22556
22557var sunday = weekday(0);
22558var monday = weekday(1);
22559var tuesday = weekday(2);
22560var wednesday = weekday(3);
22561var thursday = weekday(4);
22562var friday = weekday(5);
22563var saturday = weekday(6);
22564
22565var sundays = sunday.range;
22566var mondays = monday.range;
22567var tuesdays = tuesday.range;
22568var wednesdays = wednesday.range;
22569var thursdays = thursday.range;
22570var fridays = friday.range;
22571var saturdays = saturday.range;
22572
22573
22574/***/ }),
22575
22576/***/ "./node_modules/d3-time/src/year.js":
22577/*!******************************************!*\
22578 !*** ./node_modules/d3-time/src/year.js ***!
22579 \******************************************/
22580/*! exports provided: default, years */
22581/***/ (function(module, __webpack_exports__, __webpack_require__) {
22582
22583"use strict";
22584__webpack_require__.r(__webpack_exports__);
22585/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "years", function() { return years; });
22586/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ "./node_modules/d3-time/src/interval.js");
22587
22588
22589var year = Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22590 date.setMonth(0, 1);
22591 date.setHours(0, 0, 0, 0);
22592}, function(date, step) {
22593 date.setFullYear(date.getFullYear() + step);
22594}, function(start, end) {
22595 return end.getFullYear() - start.getFullYear();
22596}, function(date) {
22597 return date.getFullYear();
22598});
22599
22600// An optimized implementation for this simple case.
22601year.every = function(k) {
22602 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
22603 date.setFullYear(Math.floor(date.getFullYear() / k) * k);
22604 date.setMonth(0, 1);
22605 date.setHours(0, 0, 0, 0);
22606 }, function(date, step) {
22607 date.setFullYear(date.getFullYear() + step * k);
22608 });
22609};
22610
22611/* harmony default export */ __webpack_exports__["default"] = (year);
22612var years = year.range;
22613
22614
22615/***/ }),
22616
22617/***/ "./node_modules/d3-timer/index.js":
22618/*!****************************************!*\
22619 !*** ./node_modules/d3-timer/index.js ***!
22620 \****************************************/
22621/*! exports provided: now, timer, timerFlush, timeout, interval */
22622/***/ (function(module, __webpack_exports__, __webpack_require__) {
22623
22624"use strict";
22625__webpack_require__.r(__webpack_exports__);
22626/* harmony import */ var _src_timer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/timer */ "./node_modules/d3-timer/src/timer.js");
22627/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "now", function() { return _src_timer__WEBPACK_IMPORTED_MODULE_0__["now"]; });
22628
22629/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return _src_timer__WEBPACK_IMPORTED_MODULE_0__["timer"]; });
22630
22631/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return _src_timer__WEBPACK_IMPORTED_MODULE_0__["timerFlush"]; });
22632
22633/* harmony import */ var _src_timeout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/timeout */ "./node_modules/d3-timer/src/timeout.js");
22634/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _src_timeout__WEBPACK_IMPORTED_MODULE_1__["default"]; });
22635
22636/* harmony import */ var _src_interval__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/interval */ "./node_modules/d3-timer/src/interval.js");
22637/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return _src_interval__WEBPACK_IMPORTED_MODULE_2__["default"]; });
22638
22639
22640
22641
22642
22643
22644
22645
22646/***/ }),
22647
22648/***/ "./node_modules/d3-timer/src/interval.js":
22649/*!***********************************************!*\
22650 !*** ./node_modules/d3-timer/src/interval.js ***!
22651 \***********************************************/
22652/*! exports provided: default */
22653/***/ (function(module, __webpack_exports__, __webpack_require__) {
22654
22655"use strict";
22656__webpack_require__.r(__webpack_exports__);
22657/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer */ "./node_modules/d3-timer/src/timer.js");
22658
22659
22660/* harmony default export */ __webpack_exports__["default"] = (function(callback, delay, time) {
22661 var t = new _timer__WEBPACK_IMPORTED_MODULE_0__["Timer"], total = delay;
22662 if (delay == null) return t.restart(callback, delay, time), t;
22663 delay = +delay, time = time == null ? Object(_timer__WEBPACK_IMPORTED_MODULE_0__["now"])() : +time;
22664 t.restart(function tick(elapsed) {
22665 elapsed += total;
22666 t.restart(tick, total += delay, time);
22667 callback(elapsed);
22668 }, delay, time);
22669 return t;
22670});
22671
22672
22673/***/ }),
22674
22675/***/ "./node_modules/d3-timer/src/timeout.js":
22676/*!**********************************************!*\
22677 !*** ./node_modules/d3-timer/src/timeout.js ***!
22678 \**********************************************/
22679/*! exports provided: default */
22680/***/ (function(module, __webpack_exports__, __webpack_require__) {
22681
22682"use strict";
22683__webpack_require__.r(__webpack_exports__);
22684/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer */ "./node_modules/d3-timer/src/timer.js");
22685
22686
22687/* harmony default export */ __webpack_exports__["default"] = (function(callback, delay, time) {
22688 var t = new _timer__WEBPACK_IMPORTED_MODULE_0__["Timer"];
22689 delay = delay == null ? 0 : +delay;
22690 t.restart(function(elapsed) {
22691 t.stop();
22692 callback(elapsed + delay);
22693 }, delay, time);
22694 return t;
22695});
22696
22697
22698/***/ }),
22699
22700/***/ "./node_modules/d3-timer/src/timer.js":
22701/*!********************************************!*\
22702 !*** ./node_modules/d3-timer/src/timer.js ***!
22703 \********************************************/
22704/*! exports provided: now, Timer, timer, timerFlush */
22705/***/ (function(module, __webpack_exports__, __webpack_require__) {
22706
22707"use strict";
22708__webpack_require__.r(__webpack_exports__);
22709/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "now", function() { return now; });
22710/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return Timer; });
22711/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return timer; });
22712/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return timerFlush; });
22713var frame = 0, // is an animation frame pending?
22714 timeout = 0, // is a timeout pending?
22715 interval = 0, // are any timers active?
22716 pokeDelay = 1000, // how frequently we check for clock skew
22717 taskHead,
22718 taskTail,
22719 clockLast = 0,
22720 clockNow = 0,
22721 clockSkew = 0,
22722 clock = typeof performance === "object" && performance.now ? performance : Date,
22723 setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };
22724
22725function now() {
22726 return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
22727}
22728
22729function clearNow() {
22730 clockNow = 0;
22731}
22732
22733function Timer() {
22734 this._call =
22735 this._time =
22736 this._next = null;
22737}
22738
22739Timer.prototype = timer.prototype = {
22740 constructor: Timer,
22741 restart: function(callback, delay, time) {
22742 if (typeof callback !== "function") throw new TypeError("callback is not a function");
22743 time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
22744 if (!this._next && taskTail !== this) {
22745 if (taskTail) taskTail._next = this;
22746 else taskHead = this;
22747 taskTail = this;
22748 }
22749 this._call = callback;
22750 this._time = time;
22751 sleep();
22752 },
22753 stop: function() {
22754 if (this._call) {
22755 this._call = null;
22756 this._time = Infinity;
22757 sleep();
22758 }
22759 }
22760};
22761
22762function timer(callback, delay, time) {
22763 var t = new Timer;
22764 t.restart(callback, delay, time);
22765 return t;
22766}
22767
22768function timerFlush() {
22769 now(); // Get the current time, if not already set.
22770 ++frame; // Pretend we’ve set an alarm, if we haven’t already.
22771 var t = taskHead, e;
22772 while (t) {
22773 if ((e = clockNow - t._time) >= 0) t._call.call(null, e);
22774 t = t._next;
22775 }
22776 --frame;
22777}
22778
22779function wake() {
22780 clockNow = (clockLast = clock.now()) + clockSkew;
22781 frame = timeout = 0;
22782 try {
22783 timerFlush();
22784 } finally {
22785 frame = 0;
22786 nap();
22787 clockNow = 0;
22788 }
22789}
22790
22791function poke() {
22792 var now = clock.now(), delay = now - clockLast;
22793 if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
22794}
22795
22796function nap() {
22797 var t0, t1 = taskHead, t2, time = Infinity;
22798 while (t1) {
22799 if (t1._call) {
22800 if (time > t1._time) time = t1._time;
22801 t0 = t1, t1 = t1._next;
22802 } else {
22803 t2 = t1._next, t1._next = null;
22804 t1 = t0 ? t0._next = t2 : taskHead = t2;
22805 }
22806 }
22807 taskTail = t0;
22808 sleep(time);
22809}
22810
22811function sleep(time) {
22812 if (frame) return; // Soonest alarm already set, or will be.
22813 if (timeout) timeout = clearTimeout(timeout);
22814 var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
22815 if (delay > 24) {
22816 if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
22817 if (interval) interval = clearInterval(interval);
22818 } else {
22819 if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
22820 frame = 1, setFrame(wake);
22821 }
22822}
22823
22824
22825/***/ }),
22826
22827/***/ "./node_modules/d3-transition/index.js":
22828/*!*********************************************!*\
22829 !*** ./node_modules/d3-transition/index.js ***!
22830 \*********************************************/
22831/*! exports provided: transition, active, interrupt */
22832/***/ (function(module, __webpack_exports__, __webpack_require__) {
22833
22834"use strict";
22835__webpack_require__.r(__webpack_exports__);
22836/* harmony import */ var _src_selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/selection/index */ "./node_modules/d3-transition/src/selection/index.js");
22837/* harmony import */ var _src_transition_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/transition/index */ "./node_modules/d3-transition/src/transition/index.js");
22838/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return _src_transition_index__WEBPACK_IMPORTED_MODULE_1__["default"]; });
22839
22840/* harmony import */ var _src_active__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/active */ "./node_modules/d3-transition/src/active.js");
22841/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "active", function() { return _src_active__WEBPACK_IMPORTED_MODULE_2__["default"]; });
22842
22843/* harmony import */ var _src_interrupt__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/interrupt */ "./node_modules/d3-transition/src/interrupt.js");
22844/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interrupt", function() { return _src_interrupt__WEBPACK_IMPORTED_MODULE_3__["default"]; });
22845
22846
22847
22848
22849
22850
22851
22852/***/ }),
22853
22854/***/ "./node_modules/d3-transition/src/active.js":
22855/*!**************************************************!*\
22856 !*** ./node_modules/d3-transition/src/active.js ***!
22857 \**************************************************/
22858/*! exports provided: default */
22859/***/ (function(module, __webpack_exports__, __webpack_require__) {
22860
22861"use strict";
22862__webpack_require__.r(__webpack_exports__);
22863/* harmony import */ var _transition_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transition/index */ "./node_modules/d3-transition/src/transition/index.js");
22864/* harmony import */ var _transition_schedule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transition/schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
22865
22866
22867
22868var root = [null];
22869
22870/* harmony default export */ __webpack_exports__["default"] = (function(node, name) {
22871 var schedules = node.__transition,
22872 schedule,
22873 i;
22874
22875 if (schedules) {
22876 name = name == null ? null : name + "";
22877 for (i in schedules) {
22878 if ((schedule = schedules[i]).state > _transition_schedule__WEBPACK_IMPORTED_MODULE_1__["SCHEDULED"] && schedule.name === name) {
22879 return new _transition_index__WEBPACK_IMPORTED_MODULE_0__["Transition"]([[node]], root, name, +i);
22880 }
22881 }
22882 }
22883
22884 return null;
22885});
22886
22887
22888/***/ }),
22889
22890/***/ "./node_modules/d3-transition/src/interrupt.js":
22891/*!*****************************************************!*\
22892 !*** ./node_modules/d3-transition/src/interrupt.js ***!
22893 \*****************************************************/
22894/*! exports provided: default */
22895/***/ (function(module, __webpack_exports__, __webpack_require__) {
22896
22897"use strict";
22898__webpack_require__.r(__webpack_exports__);
22899/* harmony import */ var _transition_schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transition/schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
22900
22901
22902/* harmony default export */ __webpack_exports__["default"] = (function(node, name) {
22903 var schedules = node.__transition,
22904 schedule,
22905 active,
22906 empty = true,
22907 i;
22908
22909 if (!schedules) return;
22910
22911 name = name == null ? null : name + "";
22912
22913 for (i in schedules) {
22914 if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
22915 active = schedule.state > _transition_schedule__WEBPACK_IMPORTED_MODULE_0__["STARTING"] && schedule.state < _transition_schedule__WEBPACK_IMPORTED_MODULE_0__["ENDING"];
22916 schedule.state = _transition_schedule__WEBPACK_IMPORTED_MODULE_0__["ENDED"];
22917 schedule.timer.stop();
22918 if (active) schedule.on.call("interrupt", node, node.__data__, schedule.index, schedule.group);
22919 delete schedules[i];
22920 }
22921
22922 if (empty) delete node.__transition;
22923});
22924
22925
22926/***/ }),
22927
22928/***/ "./node_modules/d3-transition/src/selection/index.js":
22929/*!***********************************************************!*\
22930 !*** ./node_modules/d3-transition/src/selection/index.js ***!
22931 \***********************************************************/
22932/*! no exports provided */
22933/***/ (function(module, __webpack_exports__, __webpack_require__) {
22934
22935"use strict";
22936__webpack_require__.r(__webpack_exports__);
22937/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
22938/* harmony import */ var _interrupt__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./interrupt */ "./node_modules/d3-transition/src/selection/interrupt.js");
22939/* harmony import */ var _transition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transition */ "./node_modules/d3-transition/src/selection/transition.js");
22940
22941
22942
22943
22944d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.interrupt = _interrupt__WEBPACK_IMPORTED_MODULE_1__["default"];
22945d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.transition = _transition__WEBPACK_IMPORTED_MODULE_2__["default"];
22946
22947
22948/***/ }),
22949
22950/***/ "./node_modules/d3-transition/src/selection/interrupt.js":
22951/*!***************************************************************!*\
22952 !*** ./node_modules/d3-transition/src/selection/interrupt.js ***!
22953 \***************************************************************/
22954/*! exports provided: default */
22955/***/ (function(module, __webpack_exports__, __webpack_require__) {
22956
22957"use strict";
22958__webpack_require__.r(__webpack_exports__);
22959/* harmony import */ var _interrupt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interrupt */ "./node_modules/d3-transition/src/interrupt.js");
22960
22961
22962/* harmony default export */ __webpack_exports__["default"] = (function(name) {
22963 return this.each(function() {
22964 Object(_interrupt__WEBPACK_IMPORTED_MODULE_0__["default"])(this, name);
22965 });
22966});
22967
22968
22969/***/ }),
22970
22971/***/ "./node_modules/d3-transition/src/selection/transition.js":
22972/*!****************************************************************!*\
22973 !*** ./node_modules/d3-transition/src/selection/transition.js ***!
22974 \****************************************************************/
22975/*! exports provided: default */
22976/***/ (function(module, __webpack_exports__, __webpack_require__) {
22977
22978"use strict";
22979__webpack_require__.r(__webpack_exports__);
22980/* harmony import */ var _transition_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transition/index */ "./node_modules/d3-transition/src/transition/index.js");
22981/* harmony import */ var _transition_schedule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transition/schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
22982/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-ease */ "./node_modules/d3-ease/index.js");
22983/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/index.js");
22984
22985
22986
22987
22988
22989var defaultTiming = {
22990 time: null, // Set on use.
22991 delay: 0,
22992 duration: 250,
22993 ease: d3_ease__WEBPACK_IMPORTED_MODULE_2__["easeCubicInOut"]
22994};
22995
22996function inherit(node, id) {
22997 var timing;
22998 while (!(timing = node.__transition) || !(timing = timing[id])) {
22999 if (!(node = node.parentNode)) {
23000 return defaultTiming.time = Object(d3_timer__WEBPACK_IMPORTED_MODULE_3__["now"])(), defaultTiming;
23001 }
23002 }
23003 return timing;
23004}
23005
23006/* harmony default export */ __webpack_exports__["default"] = (function(name) {
23007 var id,
23008 timing;
23009
23010 if (name instanceof _transition_index__WEBPACK_IMPORTED_MODULE_0__["Transition"]) {
23011 id = name._id, name = name._name;
23012 } else {
23013 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 + "";
23014 }
23015
23016 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
23017 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
23018 if (node = group[i]) {
23019 Object(_transition_schedule__WEBPACK_IMPORTED_MODULE_1__["default"])(node, name, id, i, group, timing || inherit(node, id));
23020 }
23021 }
23022 }
23023
23024 return new _transition_index__WEBPACK_IMPORTED_MODULE_0__["Transition"](groups, this._parents, name, id);
23025});
23026
23027
23028/***/ }),
23029
23030/***/ "./node_modules/d3-transition/src/transition/attr.js":
23031/*!***********************************************************!*\
23032 !*** ./node_modules/d3-transition/src/transition/attr.js ***!
23033 \***********************************************************/
23034/*! exports provided: default */
23035/***/ (function(module, __webpack_exports__, __webpack_require__) {
23036
23037"use strict";
23038__webpack_require__.r(__webpack_exports__);
23039/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
23040/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
23041/* harmony import */ var _tween__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tween */ "./node_modules/d3-transition/src/transition/tween.js");
23042/* harmony import */ var _interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interpolate */ "./node_modules/d3-transition/src/transition/interpolate.js");
23043
23044
23045
23046
23047
23048function attrRemove(name) {
23049 return function() {
23050 this.removeAttribute(name);
23051 };
23052}
23053
23054function attrRemoveNS(fullname) {
23055 return function() {
23056 this.removeAttributeNS(fullname.space, fullname.local);
23057 };
23058}
23059
23060function attrConstant(name, interpolate, value1) {
23061 var value00,
23062 interpolate0;
23063 return function() {
23064 var value0 = this.getAttribute(name);
23065 return value0 === value1 ? null
23066 : value0 === value00 ? interpolate0
23067 : interpolate0 = interpolate(value00 = value0, value1);
23068 };
23069}
23070
23071function attrConstantNS(fullname, interpolate, value1) {
23072 var value00,
23073 interpolate0;
23074 return function() {
23075 var value0 = this.getAttributeNS(fullname.space, fullname.local);
23076 return value0 === value1 ? null
23077 : value0 === value00 ? interpolate0
23078 : interpolate0 = interpolate(value00 = value0, value1);
23079 };
23080}
23081
23082function attrFunction(name, interpolate, value) {
23083 var value00,
23084 value10,
23085 interpolate0;
23086 return function() {
23087 var value0, value1 = value(this);
23088 if (value1 == null) return void this.removeAttribute(name);
23089 value0 = this.getAttribute(name);
23090 return value0 === value1 ? null
23091 : value0 === value00 && value1 === value10 ? interpolate0
23092 : interpolate0 = interpolate(value00 = value0, value10 = value1);
23093 };
23094}
23095
23096function attrFunctionNS(fullname, interpolate, value) {
23097 var value00,
23098 value10,
23099 interpolate0;
23100 return function() {
23101 var value0, value1 = value(this);
23102 if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
23103 value0 = this.getAttributeNS(fullname.space, fullname.local);
23104 return value0 === value1 ? null
23105 : value0 === value00 && value1 === value10 ? interpolate0
23106 : interpolate0 = interpolate(value00 = value0, value10 = value1);
23107 };
23108}
23109
23110/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
23111 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"];
23112 return this.attrTween(name, typeof value === "function"
23113 ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, Object(_tween__WEBPACK_IMPORTED_MODULE_2__["tweenValue"])(this, "attr." + name, value))
23114 : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)
23115 : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + ""));
23116});
23117
23118
23119/***/ }),
23120
23121/***/ "./node_modules/d3-transition/src/transition/attrTween.js":
23122/*!****************************************************************!*\
23123 !*** ./node_modules/d3-transition/src/transition/attrTween.js ***!
23124 \****************************************************************/
23125/*! exports provided: default */
23126/***/ (function(module, __webpack_exports__, __webpack_require__) {
23127
23128"use strict";
23129__webpack_require__.r(__webpack_exports__);
23130/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
23131
23132
23133function attrTweenNS(fullname, value) {
23134 function tween() {
23135 var node = this, i = value.apply(node, arguments);
23136 return i && function(t) {
23137 node.setAttributeNS(fullname.space, fullname.local, i(t));
23138 };
23139 }
23140 tween._value = value;
23141 return tween;
23142}
23143
23144function attrTween(name, value) {
23145 function tween() {
23146 var node = this, i = value.apply(node, arguments);
23147 return i && function(t) {
23148 node.setAttribute(name, i(t));
23149 };
23150 }
23151 tween._value = value;
23152 return tween;
23153}
23154
23155/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
23156 var key = "attr." + name;
23157 if (arguments.length < 2) return (key = this.tween(key)) && key._value;
23158 if (value == null) return this.tween(key, null);
23159 if (typeof value !== "function") throw new Error;
23160 var fullname = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["namespace"])(name);
23161 return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
23162});
23163
23164
23165/***/ }),
23166
23167/***/ "./node_modules/d3-transition/src/transition/delay.js":
23168/*!************************************************************!*\
23169 !*** ./node_modules/d3-transition/src/transition/delay.js ***!
23170 \************************************************************/
23171/*! exports provided: default */
23172/***/ (function(module, __webpack_exports__, __webpack_require__) {
23173
23174"use strict";
23175__webpack_require__.r(__webpack_exports__);
23176/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
23177
23178
23179function delayFunction(id, value) {
23180 return function() {
23181 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["init"])(this, id).delay = +value.apply(this, arguments);
23182 };
23183}
23184
23185function delayConstant(id, value) {
23186 return value = +value, function() {
23187 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["init"])(this, id).delay = value;
23188 };
23189}
23190
23191/* harmony default export */ __webpack_exports__["default"] = (function(value) {
23192 var id = this._id;
23193
23194 return arguments.length
23195 ? this.each((typeof value === "function"
23196 ? delayFunction
23197 : delayConstant)(id, value))
23198 : Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).delay;
23199});
23200
23201
23202/***/ }),
23203
23204/***/ "./node_modules/d3-transition/src/transition/duration.js":
23205/*!***************************************************************!*\
23206 !*** ./node_modules/d3-transition/src/transition/duration.js ***!
23207 \***************************************************************/
23208/*! exports provided: default */
23209/***/ (function(module, __webpack_exports__, __webpack_require__) {
23210
23211"use strict";
23212__webpack_require__.r(__webpack_exports__);
23213/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
23214
23215
23216function durationFunction(id, value) {
23217 return function() {
23218 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).duration = +value.apply(this, arguments);
23219 };
23220}
23221
23222function durationConstant(id, value) {
23223 return value = +value, function() {
23224 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).duration = value;
23225 };
23226}
23227
23228/* harmony default export */ __webpack_exports__["default"] = (function(value) {
23229 var id = this._id;
23230
23231 return arguments.length
23232 ? this.each((typeof value === "function"
23233 ? durationFunction
23234 : durationConstant)(id, value))
23235 : Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).duration;
23236});
23237
23238
23239/***/ }),
23240
23241/***/ "./node_modules/d3-transition/src/transition/ease.js":
23242/*!***********************************************************!*\
23243 !*** ./node_modules/d3-transition/src/transition/ease.js ***!
23244 \***********************************************************/
23245/*! exports provided: default */
23246/***/ (function(module, __webpack_exports__, __webpack_require__) {
23247
23248"use strict";
23249__webpack_require__.r(__webpack_exports__);
23250/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
23251
23252
23253function easeConstant(id, value) {
23254 if (typeof value !== "function") throw new Error;
23255 return function() {
23256 Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).ease = value;
23257 };
23258}
23259
23260/* harmony default export */ __webpack_exports__["default"] = (function(value) {
23261 var id = this._id;
23262
23263 return arguments.length
23264 ? this.each(easeConstant(id, value))
23265 : Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).ease;
23266});
23267
23268
23269/***/ }),
23270
23271/***/ "./node_modules/d3-transition/src/transition/filter.js":
23272/*!*************************************************************!*\
23273 !*** ./node_modules/d3-transition/src/transition/filter.js ***!
23274 \*************************************************************/
23275/*! exports provided: default */
23276/***/ (function(module, __webpack_exports__, __webpack_require__) {
23277
23278"use strict";
23279__webpack_require__.r(__webpack_exports__);
23280/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
23281/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
23282
23283
23284
23285/* harmony default export */ __webpack_exports__["default"] = (function(match) {
23286 if (typeof match !== "function") match = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["matcher"])(match);
23287
23288 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
23289 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
23290 if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
23291 subgroup.push(node);
23292 }
23293 }
23294 }
23295
23296 return new _index__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, this._parents, this._name, this._id);
23297});
23298
23299
23300/***/ }),
23301
23302/***/ "./node_modules/d3-transition/src/transition/index.js":
23303/*!************************************************************!*\
23304 !*** ./node_modules/d3-transition/src/transition/index.js ***!
23305 \************************************************************/
23306/*! exports provided: Transition, default, newId */
23307/***/ (function(module, __webpack_exports__, __webpack_require__) {
23308
23309"use strict";
23310__webpack_require__.r(__webpack_exports__);
23311/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transition", function() { return Transition; });
23312/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return transition; });
23313/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "newId", function() { return newId; });
23314/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
23315/* harmony import */ var _attr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./attr */ "./node_modules/d3-transition/src/transition/attr.js");
23316/* harmony import */ var _attrTween__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./attrTween */ "./node_modules/d3-transition/src/transition/attrTween.js");
23317/* harmony import */ var _delay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delay */ "./node_modules/d3-transition/src/transition/delay.js");
23318/* harmony import */ var _duration__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./duration */ "./node_modules/d3-transition/src/transition/duration.js");
23319/* harmony import */ var _ease__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ease */ "./node_modules/d3-transition/src/transition/ease.js");
23320/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter */ "./node_modules/d3-transition/src/transition/filter.js");
23321/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./merge */ "./node_modules/d3-transition/src/transition/merge.js");
23322/* harmony import */ var _on__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./on */ "./node_modules/d3-transition/src/transition/on.js");
23323/* harmony import */ var _remove__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./remove */ "./node_modules/d3-transition/src/transition/remove.js");
23324/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./select */ "./node_modules/d3-transition/src/transition/select.js");
23325/* harmony import */ var _selectAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./selectAll */ "./node_modules/d3-transition/src/transition/selectAll.js");
23326/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./selection */ "./node_modules/d3-transition/src/transition/selection.js");
23327/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./style */ "./node_modules/d3-transition/src/transition/style.js");
23328/* harmony import */ var _styleTween__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./styleTween */ "./node_modules/d3-transition/src/transition/styleTween.js");
23329/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./text */ "./node_modules/d3-transition/src/transition/text.js");
23330/* harmony import */ var _transition__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./transition */ "./node_modules/d3-transition/src/transition/transition.js");
23331/* harmony import */ var _tween__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tween */ "./node_modules/d3-transition/src/transition/tween.js");
23332
23333
23334
23335
23336
23337
23338
23339
23340
23341
23342
23343
23344
23345
23346
23347
23348
23349
23350
23351var id = 0;
23352
23353function Transition(groups, parents, name, id) {
23354 this._groups = groups;
23355 this._parents = parents;
23356 this._name = name;
23357 this._id = id;
23358}
23359
23360function transition(name) {
23361 return Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"])().transition(name);
23362}
23363
23364function newId() {
23365 return ++id;
23366}
23367
23368var selection_prototype = d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype;
23369
23370Transition.prototype = transition.prototype = {
23371 constructor: Transition,
23372 select: _select__WEBPACK_IMPORTED_MODULE_10__["default"],
23373 selectAll: _selectAll__WEBPACK_IMPORTED_MODULE_11__["default"],
23374 filter: _filter__WEBPACK_IMPORTED_MODULE_6__["default"],
23375 merge: _merge__WEBPACK_IMPORTED_MODULE_7__["default"],
23376 selection: _selection__WEBPACK_IMPORTED_MODULE_12__["default"],
23377 transition: _transition__WEBPACK_IMPORTED_MODULE_16__["default"],
23378 call: selection_prototype.call,
23379 nodes: selection_prototype.nodes,
23380 node: selection_prototype.node,
23381 size: selection_prototype.size,
23382 empty: selection_prototype.empty,
23383 each: selection_prototype.each,
23384 on: _on__WEBPACK_IMPORTED_MODULE_8__["default"],
23385 attr: _attr__WEBPACK_IMPORTED_MODULE_1__["default"],
23386 attrTween: _attrTween__WEBPACK_IMPORTED_MODULE_2__["default"],
23387 style: _style__WEBPACK_IMPORTED_MODULE_13__["default"],
23388 styleTween: _styleTween__WEBPACK_IMPORTED_MODULE_14__["default"],
23389 text: _text__WEBPACK_IMPORTED_MODULE_15__["default"],
23390 remove: _remove__WEBPACK_IMPORTED_MODULE_9__["default"],
23391 tween: _tween__WEBPACK_IMPORTED_MODULE_17__["default"],
23392 delay: _delay__WEBPACK_IMPORTED_MODULE_3__["default"],
23393 duration: _duration__WEBPACK_IMPORTED_MODULE_4__["default"],
23394 ease: _ease__WEBPACK_IMPORTED_MODULE_5__["default"]
23395};
23396
23397
23398/***/ }),
23399
23400/***/ "./node_modules/d3-transition/src/transition/interpolate.js":
23401/*!******************************************************************!*\
23402 !*** ./node_modules/d3-transition/src/transition/interpolate.js ***!
23403 \******************************************************************/
23404/*! exports provided: default */
23405/***/ (function(module, __webpack_exports__, __webpack_require__) {
23406
23407"use strict";
23408__webpack_require__.r(__webpack_exports__);
23409/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
23410/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
23411
23412
23413
23414/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
23415 var c;
23416 return (typeof b === "number" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateNumber"]
23417 : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_0__["color"] ? d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRgb"]
23418 : (c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["color"])(b)) ? (b = c, d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRgb"])
23419 : d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateString"])(a, b);
23420});
23421
23422
23423/***/ }),
23424
23425/***/ "./node_modules/d3-transition/src/transition/merge.js":
23426/*!************************************************************!*\
23427 !*** ./node_modules/d3-transition/src/transition/merge.js ***!
23428 \************************************************************/
23429/*! exports provided: default */
23430/***/ (function(module, __webpack_exports__, __webpack_require__) {
23431
23432"use strict";
23433__webpack_require__.r(__webpack_exports__);
23434/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
23435
23436
23437/* harmony default export */ __webpack_exports__["default"] = (function(transition) {
23438 if (transition._id !== this._id) throw new Error;
23439
23440 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) {
23441 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
23442 if (node = group0[i] || group1[i]) {
23443 merge[i] = node;
23444 }
23445 }
23446 }
23447
23448 for (; j < m0; ++j) {
23449 merges[j] = groups0[j];
23450 }
23451
23452 return new _index__WEBPACK_IMPORTED_MODULE_0__["Transition"](merges, this._parents, this._name, this._id);
23453});
23454
23455
23456/***/ }),
23457
23458/***/ "./node_modules/d3-transition/src/transition/on.js":
23459/*!*********************************************************!*\
23460 !*** ./node_modules/d3-transition/src/transition/on.js ***!
23461 \*********************************************************/
23462/*! exports provided: default */
23463/***/ (function(module, __webpack_exports__, __webpack_require__) {
23464
23465"use strict";
23466__webpack_require__.r(__webpack_exports__);
23467/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
23468
23469
23470function start(name) {
23471 return (name + "").trim().split(/^|\s+/).every(function(t) {
23472 var i = t.indexOf(".");
23473 if (i >= 0) t = t.slice(0, i);
23474 return !t || t === "start";
23475 });
23476}
23477
23478function onFunction(id, name, listener) {
23479 var on0, on1, sit = start(name) ? _schedule__WEBPACK_IMPORTED_MODULE_0__["init"] : _schedule__WEBPACK_IMPORTED_MODULE_0__["set"];
23480 return function() {
23481 var schedule = sit(this, id),
23482 on = schedule.on;
23483
23484 // If this node shared a dispatch with the previous node,
23485 // just assign the updated shared dispatch and we’re done!
23486 // Otherwise, copy-on-write.
23487 if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
23488
23489 schedule.on = on1;
23490 };
23491}
23492
23493/* harmony default export */ __webpack_exports__["default"] = (function(name, listener) {
23494 var id = this._id;
23495
23496 return arguments.length < 2
23497 ? Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).on.on(name)
23498 : this.each(onFunction(id, name, listener));
23499});
23500
23501
23502/***/ }),
23503
23504/***/ "./node_modules/d3-transition/src/transition/remove.js":
23505/*!*************************************************************!*\
23506 !*** ./node_modules/d3-transition/src/transition/remove.js ***!
23507 \*************************************************************/
23508/*! exports provided: default */
23509/***/ (function(module, __webpack_exports__, __webpack_require__) {
23510
23511"use strict";
23512__webpack_require__.r(__webpack_exports__);
23513function removeFunction(id) {
23514 return function() {
23515 var parent = this.parentNode;
23516 for (var i in this.__transition) if (+i !== id) return;
23517 if (parent) parent.removeChild(this);
23518 };
23519}
23520
23521/* harmony default export */ __webpack_exports__["default"] = (function() {
23522 return this.on("end.remove", removeFunction(this._id));
23523});
23524
23525
23526/***/ }),
23527
23528/***/ "./node_modules/d3-transition/src/transition/schedule.js":
23529/*!***************************************************************!*\
23530 !*** ./node_modules/d3-transition/src/transition/schedule.js ***!
23531 \***************************************************************/
23532/*! exports provided: CREATED, SCHEDULED, STARTING, STARTED, RUNNING, ENDING, ENDED, default, init, set, get */
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__, "CREATED", function() { return CREATED; });
23538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCHEDULED", function() { return SCHEDULED; });
23539/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "STARTING", function() { return STARTING; });
23540/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "STARTED", function() { return STARTED; });
23541/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RUNNING", function() { return RUNNING; });
23542/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ENDING", function() { return ENDING; });
23543/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ENDED", function() { return ENDED; });
23544/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "init", function() { return init; });
23545/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
23546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
23547/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/index.js");
23548/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/index.js");
23549
23550
23551
23552var emptyOn = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "end", "interrupt");
23553var emptyTween = [];
23554
23555var CREATED = 0;
23556var SCHEDULED = 1;
23557var STARTING = 2;
23558var STARTED = 3;
23559var RUNNING = 4;
23560var ENDING = 5;
23561var ENDED = 6;
23562
23563/* harmony default export */ __webpack_exports__["default"] = (function(node, name, id, index, group, timing) {
23564 var schedules = node.__transition;
23565 if (!schedules) node.__transition = {};
23566 else if (id in schedules) return;
23567 create(node, id, {
23568 name: name,
23569 index: index, // For context during callback.
23570 group: group, // For context during callback.
23571 on: emptyOn,
23572 tween: emptyTween,
23573 time: timing.time,
23574 delay: timing.delay,
23575 duration: timing.duration,
23576 ease: timing.ease,
23577 timer: null,
23578 state: CREATED
23579 });
23580});
23581
23582function init(node, id) {
23583 var schedule = get(node, id);
23584 if (schedule.state > CREATED) throw new Error("too late; already scheduled");
23585 return schedule;
23586}
23587
23588function set(node, id) {
23589 var schedule = get(node, id);
23590 if (schedule.state > STARTING) throw new Error("too late; already started");
23591 return schedule;
23592}
23593
23594function get(node, id) {
23595 var schedule = node.__transition;
23596 if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
23597 return schedule;
23598}
23599
23600function create(node, id, self) {
23601 var schedules = node.__transition,
23602 tween;
23603
23604 // Initialize the self timer when the transition is created.
23605 // Note the actual delay is not known until the first callback!
23606 schedules[id] = self;
23607 self.timer = Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timer"])(schedule, 0, self.time);
23608
23609 function schedule(elapsed) {
23610 self.state = SCHEDULED;
23611 self.timer.restart(start, self.delay, self.time);
23612
23613 // If the elapsed delay is less than our first sleep, start immediately.
23614 if (self.delay <= elapsed) start(elapsed - self.delay);
23615 }
23616
23617 function start(elapsed) {
23618 var i, j, n, o;
23619
23620 // If the state is not SCHEDULED, then we previously errored on start.
23621 if (self.state !== SCHEDULED) return stop();
23622
23623 for (i in schedules) {
23624 o = schedules[i];
23625 if (o.name !== self.name) continue;
23626
23627 // While this element already has a starting transition during this frame,
23628 // defer starting an interrupting transition until that transition has a
23629 // chance to tick (and possibly end); see d3/d3-transition#54!
23630 if (o.state === STARTED) return Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timeout"])(start);
23631
23632 // Interrupt the active transition, if any.
23633 // Dispatch the interrupt event.
23634 if (o.state === RUNNING) {
23635 o.state = ENDED;
23636 o.timer.stop();
23637 o.on.call("interrupt", node, node.__data__, o.index, o.group);
23638 delete schedules[i];
23639 }
23640
23641 // Cancel any pre-empted transitions. No interrupt event is dispatched
23642 // because the cancelled transitions never started. Note that this also
23643 // removes this transition from the pending list!
23644 else if (+i < id) {
23645 o.state = ENDED;
23646 o.timer.stop();
23647 delete schedules[i];
23648 }
23649 }
23650
23651 // Defer the first tick to end of the current frame; see d3/d3#1576.
23652 // Note the transition may be canceled after start and before the first tick!
23653 // Note this must be scheduled before the start event; see d3/d3-transition#16!
23654 // Assuming this is successful, subsequent callbacks go straight to tick.
23655 Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timeout"])(function() {
23656 if (self.state === STARTED) {
23657 self.state = RUNNING;
23658 self.timer.restart(tick, self.delay, self.time);
23659 tick(elapsed);
23660 }
23661 });
23662
23663 // Dispatch the start event.
23664 // Note this must be done before the tween are initialized.
23665 self.state = STARTING;
23666 self.on.call("start", node, node.__data__, self.index, self.group);
23667 if (self.state !== STARTING) return; // interrupted
23668 self.state = STARTED;
23669
23670 // Initialize the tween, deleting null tween.
23671 tween = new Array(n = self.tween.length);
23672 for (i = 0, j = -1; i < n; ++i) {
23673 if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
23674 tween[++j] = o;
23675 }
23676 }
23677 tween.length = j + 1;
23678 }
23679
23680 function tick(elapsed) {
23681 var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
23682 i = -1,
23683 n = tween.length;
23684
23685 while (++i < n) {
23686 tween[i].call(null, t);
23687 }
23688
23689 // Dispatch the end event.
23690 if (self.state === ENDING) {
23691 self.on.call("end", node, node.__data__, self.index, self.group);
23692 stop();
23693 }
23694 }
23695
23696 function stop() {
23697 self.state = ENDED;
23698 self.timer.stop();
23699 delete schedules[id];
23700 for (var i in schedules) return; // eslint-disable-line no-unused-vars
23701 delete node.__transition;
23702 }
23703}
23704
23705
23706/***/ }),
23707
23708/***/ "./node_modules/d3-transition/src/transition/select.js":
23709/*!*************************************************************!*\
23710 !*** ./node_modules/d3-transition/src/transition/select.js ***!
23711 \*************************************************************/
23712/*! exports provided: default */
23713/***/ (function(module, __webpack_exports__, __webpack_require__) {
23714
23715"use strict";
23716__webpack_require__.r(__webpack_exports__);
23717/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
23718/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
23719/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
23720
23721
23722
23723
23724/* harmony default export */ __webpack_exports__["default"] = (function(select) {
23725 var name = this._name,
23726 id = this._id;
23727
23728 if (typeof select !== "function") select = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selector"])(select);
23729
23730 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
23731 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
23732 if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
23733 if ("__data__" in node) subnode.__data__ = node.__data__;
23734 subgroup[i] = subnode;
23735 Object(_schedule__WEBPACK_IMPORTED_MODULE_2__["default"])(subgroup[i], name, id, i, subgroup, Object(_schedule__WEBPACK_IMPORTED_MODULE_2__["get"])(node, id));
23736 }
23737 }
23738 }
23739
23740 return new _index__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, this._parents, name, id);
23741});
23742
23743
23744/***/ }),
23745
23746/***/ "./node_modules/d3-transition/src/transition/selectAll.js":
23747/*!****************************************************************!*\
23748 !*** ./node_modules/d3-transition/src/transition/selectAll.js ***!
23749 \****************************************************************/
23750/*! exports provided: default */
23751/***/ (function(module, __webpack_exports__, __webpack_require__) {
23752
23753"use strict";
23754__webpack_require__.r(__webpack_exports__);
23755/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
23756/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
23757/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
23758
23759
23760
23761
23762/* harmony default export */ __webpack_exports__["default"] = (function(select) {
23763 var name = this._name,
23764 id = this._id;
23765
23766 if (typeof select !== "function") select = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selectorAll"])(select);
23767
23768 for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
23769 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
23770 if (node = group[i]) {
23771 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) {
23772 if (child = children[k]) {
23773 Object(_schedule__WEBPACK_IMPORTED_MODULE_2__["default"])(child, name, id, k, children, inherit);
23774 }
23775 }
23776 subgroups.push(children);
23777 parents.push(node);
23778 }
23779 }
23780 }
23781
23782 return new _index__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, parents, name, id);
23783});
23784
23785
23786/***/ }),
23787
23788/***/ "./node_modules/d3-transition/src/transition/selection.js":
23789/*!****************************************************************!*\
23790 !*** ./node_modules/d3-transition/src/transition/selection.js ***!
23791 \****************************************************************/
23792/*! exports provided: default */
23793/***/ (function(module, __webpack_exports__, __webpack_require__) {
23794
23795"use strict";
23796__webpack_require__.r(__webpack_exports__);
23797/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
23798
23799
23800var Selection = d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.constructor;
23801
23802/* harmony default export */ __webpack_exports__["default"] = (function() {
23803 return new Selection(this._groups, this._parents);
23804});
23805
23806
23807/***/ }),
23808
23809/***/ "./node_modules/d3-transition/src/transition/style.js":
23810/*!************************************************************!*\
23811 !*** ./node_modules/d3-transition/src/transition/style.js ***!
23812 \************************************************************/
23813/*! exports provided: default */
23814/***/ (function(module, __webpack_exports__, __webpack_require__) {
23815
23816"use strict";
23817__webpack_require__.r(__webpack_exports__);
23818/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
23819/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
23820/* harmony import */ var _tween__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tween */ "./node_modules/d3-transition/src/transition/tween.js");
23821/* harmony import */ var _interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interpolate */ "./node_modules/d3-transition/src/transition/interpolate.js");
23822
23823
23824
23825
23826
23827function styleRemove(name, interpolate) {
23828 var value00,
23829 value10,
23830 interpolate0;
23831 return function() {
23832 var value0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name),
23833 value1 = (this.style.removeProperty(name), Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name));
23834 return value0 === value1 ? null
23835 : value0 === value00 && value1 === value10 ? interpolate0
23836 : interpolate0 = interpolate(value00 = value0, value10 = value1);
23837 };
23838}
23839
23840function styleRemoveEnd(name) {
23841 return function() {
23842 this.style.removeProperty(name);
23843 };
23844}
23845
23846function styleConstant(name, interpolate, value1) {
23847 var value00,
23848 interpolate0;
23849 return function() {
23850 var value0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name);
23851 return value0 === value1 ? null
23852 : value0 === value00 ? interpolate0
23853 : interpolate0 = interpolate(value00 = value0, value1);
23854 };
23855}
23856
23857function styleFunction(name, interpolate, value) {
23858 var value00,
23859 value10,
23860 interpolate0;
23861 return function() {
23862 var value0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name),
23863 value1 = value(this);
23864 if (value1 == null) value1 = (this.style.removeProperty(name), Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name));
23865 return value0 === value1 ? null
23866 : value0 === value00 && value1 === value10 ? interpolate0
23867 : interpolate0 = interpolate(value00 = value0, value10 = value1);
23868 };
23869}
23870
23871/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
23872 var i = (name += "") === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["interpolateTransformCss"] : _interpolate__WEBPACK_IMPORTED_MODULE_3__["default"];
23873 return value == null ? this
23874 .styleTween(name, styleRemove(name, i))
23875 .on("end.style." + name, styleRemoveEnd(name))
23876 : this.styleTween(name, typeof value === "function"
23877 ? styleFunction(name, i, Object(_tween__WEBPACK_IMPORTED_MODULE_2__["tweenValue"])(this, "style." + name, value))
23878 : styleConstant(name, i, value + ""), priority);
23879});
23880
23881
23882/***/ }),
23883
23884/***/ "./node_modules/d3-transition/src/transition/styleTween.js":
23885/*!*****************************************************************!*\
23886 !*** ./node_modules/d3-transition/src/transition/styleTween.js ***!
23887 \*****************************************************************/
23888/*! exports provided: default */
23889/***/ (function(module, __webpack_exports__, __webpack_require__) {
23890
23891"use strict";
23892__webpack_require__.r(__webpack_exports__);
23893function styleTween(name, value, priority) {
23894 function tween() {
23895 var node = this, i = value.apply(node, arguments);
23896 return i && function(t) {
23897 node.style.setProperty(name, i(t), priority);
23898 };
23899 }
23900 tween._value = value;
23901 return tween;
23902}
23903
23904/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
23905 var key = "style." + (name += "");
23906 if (arguments.length < 2) return (key = this.tween(key)) && key._value;
23907 if (value == null) return this.tween(key, null);
23908 if (typeof value !== "function") throw new Error;
23909 return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
23910});
23911
23912
23913/***/ }),
23914
23915/***/ "./node_modules/d3-transition/src/transition/text.js":
23916/*!***********************************************************!*\
23917 !*** ./node_modules/d3-transition/src/transition/text.js ***!
23918 \***********************************************************/
23919/*! exports provided: default */
23920/***/ (function(module, __webpack_exports__, __webpack_require__) {
23921
23922"use strict";
23923__webpack_require__.r(__webpack_exports__);
23924/* harmony import */ var _tween__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tween */ "./node_modules/d3-transition/src/transition/tween.js");
23925
23926
23927function textConstant(value) {
23928 return function() {
23929 this.textContent = value;
23930 };
23931}
23932
23933function textFunction(value) {
23934 return function() {
23935 var value1 = value(this);
23936 this.textContent = value1 == null ? "" : value1;
23937 };
23938}
23939
23940/* harmony default export */ __webpack_exports__["default"] = (function(value) {
23941 return this.tween("text", typeof value === "function"
23942 ? textFunction(Object(_tween__WEBPACK_IMPORTED_MODULE_0__["tweenValue"])(this, "text", value))
23943 : textConstant(value == null ? "" : value + ""));
23944});
23945
23946
23947/***/ }),
23948
23949/***/ "./node_modules/d3-transition/src/transition/transition.js":
23950/*!*****************************************************************!*\
23951 !*** ./node_modules/d3-transition/src/transition/transition.js ***!
23952 \*****************************************************************/
23953/*! exports provided: default */
23954/***/ (function(module, __webpack_exports__, __webpack_require__) {
23955
23956"use strict";
23957__webpack_require__.r(__webpack_exports__);
23958/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-transition/src/transition/index.js");
23959/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
23960
23961
23962
23963/* harmony default export */ __webpack_exports__["default"] = (function() {
23964 var name = this._name,
23965 id0 = this._id,
23966 id1 = Object(_index__WEBPACK_IMPORTED_MODULE_0__["newId"])();
23967
23968 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
23969 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
23970 if (node = group[i]) {
23971 var inherit = Object(_schedule__WEBPACK_IMPORTED_MODULE_1__["get"])(node, id0);
23972 Object(_schedule__WEBPACK_IMPORTED_MODULE_1__["default"])(node, name, id1, i, group, {
23973 time: inherit.time + inherit.delay + inherit.duration,
23974 delay: 0,
23975 duration: inherit.duration,
23976 ease: inherit.ease
23977 });
23978 }
23979 }
23980 }
23981
23982 return new _index__WEBPACK_IMPORTED_MODULE_0__["Transition"](groups, this._parents, name, id1);
23983});
23984
23985
23986/***/ }),
23987
23988/***/ "./node_modules/d3-transition/src/transition/tween.js":
23989/*!************************************************************!*\
23990 !*** ./node_modules/d3-transition/src/transition/tween.js ***!
23991 \************************************************************/
23992/*! exports provided: default, tweenValue */
23993/***/ (function(module, __webpack_exports__, __webpack_require__) {
23994
23995"use strict";
23996__webpack_require__.r(__webpack_exports__);
23997/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tweenValue", function() { return tweenValue; });
23998/* harmony import */ var _schedule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule */ "./node_modules/d3-transition/src/transition/schedule.js");
23999
24000
24001function tweenRemove(id, name) {
24002 var tween0, tween1;
24003 return function() {
24004 var schedule = Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id),
24005 tween = schedule.tween;
24006
24007 // If this node shared tween with the previous node,
24008 // just assign the updated shared tween and we’re done!
24009 // Otherwise, copy-on-write.
24010 if (tween !== tween0) {
24011 tween1 = tween0 = tween;
24012 for (var i = 0, n = tween1.length; i < n; ++i) {
24013 if (tween1[i].name === name) {
24014 tween1 = tween1.slice();
24015 tween1.splice(i, 1);
24016 break;
24017 }
24018 }
24019 }
24020
24021 schedule.tween = tween1;
24022 };
24023}
24024
24025function tweenFunction(id, name, value) {
24026 var tween0, tween1;
24027 if (typeof value !== "function") throw new Error;
24028 return function() {
24029 var schedule = Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id),
24030 tween = schedule.tween;
24031
24032 // If this node shared tween with the previous node,
24033 // just assign the updated shared tween and we’re done!
24034 // Otherwise, copy-on-write.
24035 if (tween !== tween0) {
24036 tween1 = (tween0 = tween).slice();
24037 for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
24038 if (tween1[i].name === name) {
24039 tween1[i] = t;
24040 break;
24041 }
24042 }
24043 if (i === n) tween1.push(t);
24044 }
24045
24046 schedule.tween = tween1;
24047 };
24048}
24049
24050/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
24051 var id = this._id;
24052
24053 name += "";
24054
24055 if (arguments.length < 2) {
24056 var tween = Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).tween;
24057 for (var i = 0, n = tween.length, t; i < n; ++i) {
24058 if ((t = tween[i]).name === name) {
24059 return t.value;
24060 }
24061 }
24062 return null;
24063 }
24064
24065 return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
24066});
24067
24068function tweenValue(transition, name, value) {
24069 var id = transition._id;
24070
24071 transition.each(function() {
24072 var schedule = Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id);
24073 (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
24074 });
24075
24076 return function(node) {
24077 return Object(_schedule__WEBPACK_IMPORTED_MODULE_0__["get"])(node, id).value[name];
24078 };
24079}
24080
24081
24082/***/ }),
24083
24084/***/ "./node_modules/d3-voronoi/index.js":
24085/*!******************************************!*\
24086 !*** ./node_modules/d3-voronoi/index.js ***!
24087 \******************************************/
24088/*! exports provided: voronoi */
24089/***/ (function(module, __webpack_exports__, __webpack_require__) {
24090
24091"use strict";
24092__webpack_require__.r(__webpack_exports__);
24093/* harmony import */ var _src_voronoi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/voronoi */ "./node_modules/d3-voronoi/src/voronoi.js");
24094/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "voronoi", function() { return _src_voronoi__WEBPACK_IMPORTED_MODULE_0__["default"]; });
24095
24096
24097
24098
24099/***/ }),
24100
24101/***/ "./node_modules/d3-voronoi/src/Beach.js":
24102/*!**********************************************!*\
24103 !*** ./node_modules/d3-voronoi/src/Beach.js ***!
24104 \**********************************************/
24105/*! exports provided: removeBeach, addBeach */
24106/***/ (function(module, __webpack_exports__, __webpack_require__) {
24107
24108"use strict";
24109__webpack_require__.r(__webpack_exports__);
24110/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeBeach", function() { return removeBeach; });
24111/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addBeach", function() { return addBeach; });
24112/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
24113/* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Cell */ "./node_modules/d3-voronoi/src/Cell.js");
24114/* harmony import */ var _Circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Circle */ "./node_modules/d3-voronoi/src/Circle.js");
24115/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
24116/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
24117
24118
24119
24120
24121
24122
24123var beachPool = [];
24124
24125function Beach() {
24126 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(this);
24127 this.edge =
24128 this.site =
24129 this.circle = null;
24130}
24131
24132function createBeach(site) {
24133 var beach = beachPool.pop() || new Beach;
24134 beach.site = site;
24135 return beach;
24136}
24137
24138function detachBeach(beach) {
24139 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(beach);
24140 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].remove(beach);
24141 beachPool.push(beach);
24142 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(beach);
24143}
24144
24145function removeBeach(beach) {
24146 var circle = beach.circle,
24147 x = circle.x,
24148 y = circle.cy,
24149 vertex = [x, y],
24150 previous = beach.P,
24151 next = beach.N,
24152 disappearing = [beach];
24153
24154 detachBeach(beach);
24155
24156 var lArc = previous;
24157 while (lArc.circle
24158 && Math.abs(x - lArc.circle.x) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]
24159 && Math.abs(y - lArc.circle.cy) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
24160 previous = lArc.P;
24161 disappearing.unshift(lArc);
24162 detachBeach(lArc);
24163 lArc = previous;
24164 }
24165
24166 disappearing.unshift(lArc);
24167 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
24168
24169 var rArc = next;
24170 while (rArc.circle
24171 && Math.abs(x - rArc.circle.x) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]
24172 && Math.abs(y - rArc.circle.cy) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
24173 next = rArc.N;
24174 disappearing.push(rArc);
24175 detachBeach(rArc);
24176 rArc = next;
24177 }
24178
24179 disappearing.push(rArc);
24180 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(rArc);
24181
24182 var nArcs = disappearing.length,
24183 iArc;
24184 for (iArc = 1; iArc < nArcs; ++iArc) {
24185 rArc = disappearing[iArc];
24186 lArc = disappearing[iArc - 1];
24187 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["setEdgeEnd"])(rArc.edge, lArc.site, rArc.site, vertex);
24188 }
24189
24190 lArc = disappearing[0];
24191 rArc = disappearing[nArcs - 1];
24192 rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, rArc.site, null, vertex);
24193
24194 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
24195 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
24196}
24197
24198function addBeach(site) {
24199 var x = site[0],
24200 directrix = site[1],
24201 lArc,
24202 rArc,
24203 dxl,
24204 dxr,
24205 node = _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"]._;
24206
24207 while (node) {
24208 dxl = leftBreakPoint(node, directrix) - x;
24209 if (dxl > _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) node = node.L; else {
24210 dxr = x - rightBreakPoint(node, directrix);
24211 if (dxr > _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
24212 if (!node.R) {
24213 lArc = node;
24214 break;
24215 }
24216 node = node.R;
24217 } else {
24218 if (dxl > -_Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
24219 lArc = node.P;
24220 rArc = node;
24221 } else if (dxr > -_Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
24222 lArc = node;
24223 rArc = node.N;
24224 } else {
24225 lArc = rArc = node;
24226 }
24227 break;
24228 }
24229 }
24230 }
24231
24232 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["createCell"])(site);
24233 var newArc = createBeach(site);
24234 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].insert(lArc, newArc);
24235
24236 if (!lArc && !rArc) return;
24237
24238 if (lArc === rArc) {
24239 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
24240 rArc = createBeach(lArc.site);
24241 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].insert(newArc, rArc);
24242 newArc.edge = rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, newArc.site);
24243 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
24244 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
24245 return;
24246 }
24247
24248 if (!rArc) { // && lArc
24249 newArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, newArc.site);
24250 return;
24251 }
24252
24253 // else lArc !== rArc
24254 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
24255 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(rArc);
24256
24257 var lSite = lArc.site,
24258 ax = lSite[0],
24259 ay = lSite[1],
24260 bx = site[0] - ax,
24261 by = site[1] - ay,
24262 rSite = rArc.site,
24263 cx = rSite[0] - ax,
24264 cy = rSite[1] - ay,
24265 d = 2 * (bx * cy - by * cx),
24266 hb = bx * bx + by * by,
24267 hc = cx * cx + cy * cy,
24268 vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];
24269
24270 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["setEdgeEnd"])(rArc.edge, lSite, rSite, vertex);
24271 newArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lSite, site, null, vertex);
24272 rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(site, rSite, null, vertex);
24273 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
24274 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
24275}
24276
24277function leftBreakPoint(arc, directrix) {
24278 var site = arc.site,
24279 rfocx = site[0],
24280 rfocy = site[1],
24281 pby2 = rfocy - directrix;
24282
24283 if (!pby2) return rfocx;
24284
24285 var lArc = arc.P;
24286 if (!lArc) return -Infinity;
24287
24288 site = lArc.site;
24289 var lfocx = site[0],
24290 lfocy = site[1],
24291 plby2 = lfocy - directrix;
24292
24293 if (!plby2) return lfocx;
24294
24295 var hl = lfocx - rfocx,
24296 aby2 = 1 / pby2 - 1 / plby2,
24297 b = hl / plby2;
24298
24299 if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;
24300
24301 return (rfocx + lfocx) / 2;
24302}
24303
24304function rightBreakPoint(arc, directrix) {
24305 var rArc = arc.N;
24306 if (rArc) return leftBreakPoint(rArc, directrix);
24307 var site = arc.site;
24308 return site[1] === directrix ? site[0] : Infinity;
24309}
24310
24311
24312/***/ }),
24313
24314/***/ "./node_modules/d3-voronoi/src/Cell.js":
24315/*!*********************************************!*\
24316 !*** ./node_modules/d3-voronoi/src/Cell.js ***!
24317 \*********************************************/
24318/*! exports provided: createCell, cellHalfedgeStart, cellHalfedgeEnd, sortCellHalfedges, clipCells */
24319/***/ (function(module, __webpack_exports__, __webpack_require__) {
24320
24321"use strict";
24322__webpack_require__.r(__webpack_exports__);
24323/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCell", function() { return createCell; });
24324/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cellHalfedgeStart", function() { return cellHalfedgeStart; });
24325/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cellHalfedgeEnd", function() { return cellHalfedgeEnd; });
24326/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortCellHalfedges", function() { return sortCellHalfedges; });
24327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clipCells", function() { return clipCells; });
24328/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
24329/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
24330
24331
24332
24333function createCell(site) {
24334 return _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][site.index] = {
24335 site: site,
24336 halfedges: []
24337 };
24338}
24339
24340function cellHalfedgeAngle(cell, edge) {
24341 var site = cell.site,
24342 va = edge.left,
24343 vb = edge.right;
24344 if (site === vb) vb = va, va = site;
24345 if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);
24346 if (site === va) va = edge[1], vb = edge[0];
24347 else va = edge[0], vb = edge[1];
24348 return Math.atan2(va[0] - vb[0], vb[1] - va[1]);
24349}
24350
24351function cellHalfedgeStart(cell, edge) {
24352 return edge[+(edge.left !== cell.site)];
24353}
24354
24355function cellHalfedgeEnd(cell, edge) {
24356 return edge[+(edge.left === cell.site)];
24357}
24358
24359function sortCellHalfedges() {
24360 for (var i = 0, n = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"].length, cell, halfedges, j, m; i < n; ++i) {
24361 if ((cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][i]) && (m = (halfedges = cell.halfedges).length)) {
24362 var index = new Array(m),
24363 array = new Array(m);
24364 for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[j]]);
24365 index.sort(function(i, j) { return array[j] - array[i]; });
24366 for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];
24367 for (j = 0; j < m; ++j) halfedges[j] = array[j];
24368 }
24369 }
24370}
24371
24372function clipCells(x0, y0, x1, y1) {
24373 var nCells = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"].length,
24374 iCell,
24375 cell,
24376 site,
24377 iHalfedge,
24378 halfedges,
24379 nHalfedges,
24380 start,
24381 startX,
24382 startY,
24383 end,
24384 endX,
24385 endY,
24386 cover = true;
24387
24388 for (iCell = 0; iCell < nCells; ++iCell) {
24389 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
24390 site = cell.site;
24391 halfedges = cell.halfedges;
24392 iHalfedge = halfedges.length;
24393
24394 // Remove any dangling clipped edges.
24395 while (iHalfedge--) {
24396 if (!_Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[iHalfedge]]) {
24397 halfedges.splice(iHalfedge, 1);
24398 }
24399 }
24400
24401 // Insert any border edges as necessary.
24402 iHalfedge = 0, nHalfedges = halfedges.length;
24403 while (iHalfedge < nHalfedges) {
24404 end = cellHalfedgeEnd(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[iHalfedge]]), endX = end[0], endY = end[1];
24405 start = cellHalfedgeStart(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];
24406 if (Math.abs(endX - startX) > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] || Math.abs(endY - startY) > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) {
24407 halfedges.splice(iHalfedge, 0, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, end,
24408 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]
24409 : 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]
24410 : 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]
24411 : 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]
24412 : null)) - 1);
24413 ++nHalfedges;
24414 }
24415 }
24416
24417 if (nHalfedges) cover = false;
24418 }
24419 }
24420
24421 // If there weren’t any edges, have the closest site cover the extent.
24422 // It doesn’t matter which corner of the extent we measure!
24423 if (cover) {
24424 var dx, dy, d2, dc = Infinity;
24425
24426 for (iCell = 0, cover = null; iCell < nCells; ++iCell) {
24427 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
24428 site = cell.site;
24429 dx = site[0] - x0;
24430 dy = site[1] - y0;
24431 d2 = dx * dx + dy * dy;
24432 if (d2 < dc) dc = d2, cover = cell;
24433 }
24434 }
24435
24436 if (cover) {
24437 var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];
24438 cover.halfedges.push(
24439 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site = cover.site, v00, v01)) - 1,
24440 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v01, v11)) - 1,
24441 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v11, v10)) - 1,
24442 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v10, v00)) - 1
24443 );
24444 }
24445 }
24446
24447 // Lastly delete any cells with no edges; these were entirely clipped.
24448 for (iCell = 0; iCell < nCells; ++iCell) {
24449 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
24450 if (!cell.halfedges.length) {
24451 delete _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell];
24452 }
24453 }
24454 }
24455}
24456
24457
24458/***/ }),
24459
24460/***/ "./node_modules/d3-voronoi/src/Circle.js":
24461/*!***********************************************!*\
24462 !*** ./node_modules/d3-voronoi/src/Circle.js ***!
24463 \***********************************************/
24464/*! exports provided: firstCircle, attachCircle, detachCircle */
24465/***/ (function(module, __webpack_exports__, __webpack_require__) {
24466
24467"use strict";
24468__webpack_require__.r(__webpack_exports__);
24469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstCircle", function() { return firstCircle; });
24470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attachCircle", function() { return attachCircle; });
24471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detachCircle", function() { return detachCircle; });
24472/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
24473/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
24474
24475
24476
24477var circlePool = [];
24478
24479var firstCircle;
24480
24481function Circle() {
24482 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(this);
24483 this.x =
24484 this.y =
24485 this.arc =
24486 this.site =
24487 this.cy = null;
24488}
24489
24490function attachCircle(arc) {
24491 var lArc = arc.P,
24492 rArc = arc.N;
24493
24494 if (!lArc || !rArc) return;
24495
24496 var lSite = lArc.site,
24497 cSite = arc.site,
24498 rSite = rArc.site;
24499
24500 if (lSite === rSite) return;
24501
24502 var bx = cSite[0],
24503 by = cSite[1],
24504 ax = lSite[0] - bx,
24505 ay = lSite[1] - by,
24506 cx = rSite[0] - bx,
24507 cy = rSite[1] - by;
24508
24509 var d = 2 * (ax * cy - ay * cx);
24510 if (d >= -_Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon2"]) return;
24511
24512 var ha = ax * ax + ay * ay,
24513 hc = cx * cx + cy * cy,
24514 x = (cy * ha - ay * hc) / d,
24515 y = (ax * hc - cx * ha) / d;
24516
24517 var circle = circlePool.pop() || new Circle;
24518 circle.arc = arc;
24519 circle.site = cSite;
24520 circle.x = x + bx;
24521 circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom
24522
24523 arc.circle = circle;
24524
24525 var before = null,
24526 node = _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"]._;
24527
24528 while (node) {
24529 if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {
24530 if (node.L) node = node.L;
24531 else { before = node.P; break; }
24532 } else {
24533 if (node.R) node = node.R;
24534 else { before = node; break; }
24535 }
24536 }
24537
24538 _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"].insert(before, circle);
24539 if (!before) firstCircle = circle;
24540}
24541
24542function detachCircle(arc) {
24543 var circle = arc.circle;
24544 if (circle) {
24545 if (!circle.P) firstCircle = circle.N;
24546 _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"].remove(circle);
24547 circlePool.push(circle);
24548 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(circle);
24549 arc.circle = null;
24550 }
24551}
24552
24553
24554/***/ }),
24555
24556/***/ "./node_modules/d3-voronoi/src/Diagram.js":
24557/*!************************************************!*\
24558 !*** ./node_modules/d3-voronoi/src/Diagram.js ***!
24559 \************************************************/
24560/*! exports provided: epsilon, epsilon2, beaches, cells, circles, edges, default */
24561/***/ (function(module, __webpack_exports__, __webpack_require__) {
24562
24563"use strict";
24564__webpack_require__.r(__webpack_exports__);
24565/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
24566/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon2", function() { return epsilon2; });
24567/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "beaches", function() { return beaches; });
24568/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cells", function() { return cells; });
24569/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circles", function() { return circles; });
24570/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "edges", function() { return edges; });
24571/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Diagram; });
24572/* harmony import */ var _Beach__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Beach */ "./node_modules/d3-voronoi/src/Beach.js");
24573/* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Cell */ "./node_modules/d3-voronoi/src/Cell.js");
24574/* harmony import */ var _Circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Circle */ "./node_modules/d3-voronoi/src/Circle.js");
24575/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
24576/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
24577
24578
24579
24580
24581
24582
24583var epsilon = 1e-6;
24584var epsilon2 = 1e-12;
24585var beaches;
24586var cells;
24587var circles;
24588var edges;
24589
24590function triangleArea(a, b, c) {
24591 return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);
24592}
24593
24594function lexicographic(a, b) {
24595 return b[1] - a[1]
24596 || b[0] - a[0];
24597}
24598
24599function Diagram(sites, extent) {
24600 var site = sites.sort(lexicographic).pop(),
24601 x,
24602 y,
24603 circle;
24604
24605 edges = [];
24606 cells = new Array(sites.length);
24607 beaches = new _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__["default"];
24608 circles = new _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__["default"];
24609
24610 while (true) {
24611 circle = _Circle__WEBPACK_IMPORTED_MODULE_2__["firstCircle"];
24612 if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {
24613 if (site[0] !== x || site[1] !== y) {
24614 Object(_Beach__WEBPACK_IMPORTED_MODULE_0__["addBeach"])(site);
24615 x = site[0], y = site[1];
24616 }
24617 site = sites.pop();
24618 } else if (circle) {
24619 Object(_Beach__WEBPACK_IMPORTED_MODULE_0__["removeBeach"])(circle.arc);
24620 } else {
24621 break;
24622 }
24623 }
24624
24625 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["sortCellHalfedges"])();
24626
24627 if (extent) {
24628 var x0 = +extent[0][0],
24629 y0 = +extent[0][1],
24630 x1 = +extent[1][0],
24631 y1 = +extent[1][1];
24632 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["clipEdges"])(x0, y0, x1, y1);
24633 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["clipCells"])(x0, y0, x1, y1);
24634 }
24635
24636 this.edges = edges;
24637 this.cells = cells;
24638
24639 beaches =
24640 circles =
24641 edges =
24642 cells = null;
24643}
24644
24645Diagram.prototype = {
24646 constructor: Diagram,
24647
24648 polygons: function() {
24649 var edges = this.edges;
24650
24651 return this.cells.map(function(cell) {
24652 var polygon = cell.halfedges.map(function(i) { return Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["cellHalfedgeStart"])(cell, edges[i]); });
24653 polygon.data = cell.site.data;
24654 return polygon;
24655 });
24656 },
24657
24658 triangles: function() {
24659 var triangles = [],
24660 edges = this.edges;
24661
24662 this.cells.forEach(function(cell, i) {
24663 if (!(m = (halfedges = cell.halfedges).length)) return;
24664 var site = cell.site,
24665 halfedges,
24666 j = -1,
24667 m,
24668 s0,
24669 e1 = edges[halfedges[m - 1]],
24670 s1 = e1.left === site ? e1.right : e1.left;
24671
24672 while (++j < m) {
24673 s0 = s1;
24674 e1 = edges[halfedges[j]];
24675 s1 = e1.left === site ? e1.right : e1.left;
24676 if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {
24677 triangles.push([site.data, s0.data, s1.data]);
24678 }
24679 }
24680 });
24681
24682 return triangles;
24683 },
24684
24685 links: function() {
24686 return this.edges.filter(function(edge) {
24687 return edge.right;
24688 }).map(function(edge) {
24689 return {
24690 source: edge.left.data,
24691 target: edge.right.data
24692 };
24693 });
24694 },
24695
24696 find: function(x, y, radius) {
24697 var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;
24698
24699 // Use the previously-found cell, or start with an arbitrary one.
24700 while (!(cell = that.cells[i1])) if (++i1 >= n) return null;
24701 var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;
24702
24703 // Traverse the half-edges to find a closer cell, if any.
24704 do {
24705 cell = that.cells[i0 = i1], i1 = null;
24706 cell.halfedges.forEach(function(e) {
24707 var edge = that.edges[e], v = edge.left;
24708 if ((v === cell.site || !v) && !(v = edge.right)) return;
24709 var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;
24710 if (v2 < d2) d2 = v2, i1 = v.index;
24711 });
24712 } while (i1 !== null);
24713
24714 that._found = i0;
24715
24716 return radius == null || d2 <= radius * radius ? cell.site : null;
24717 }
24718}
24719
24720
24721/***/ }),
24722
24723/***/ "./node_modules/d3-voronoi/src/Edge.js":
24724/*!*********************************************!*\
24725 !*** ./node_modules/d3-voronoi/src/Edge.js ***!
24726 \*********************************************/
24727/*! exports provided: createEdge, createBorderEdge, setEdgeEnd, clipEdges */
24728/***/ (function(module, __webpack_exports__, __webpack_require__) {
24729
24730"use strict";
24731__webpack_require__.r(__webpack_exports__);
24732/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createEdge", function() { return createEdge; });
24733/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createBorderEdge", function() { return createBorderEdge; });
24734/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setEdgeEnd", function() { return setEdgeEnd; });
24735/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clipEdges", function() { return clipEdges; });
24736/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
24737
24738
24739function createEdge(left, right, v0, v1) {
24740 var edge = [null, null],
24741 index = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"].push(edge) - 1;
24742 edge.left = left;
24743 edge.right = right;
24744 if (v0) setEdgeEnd(edge, left, right, v0);
24745 if (v1) setEdgeEnd(edge, right, left, v1);
24746 _Diagram__WEBPACK_IMPORTED_MODULE_0__["cells"][left.index].halfedges.push(index);
24747 _Diagram__WEBPACK_IMPORTED_MODULE_0__["cells"][right.index].halfedges.push(index);
24748 return edge;
24749}
24750
24751function createBorderEdge(left, v0, v1) {
24752 var edge = [v0, v1];
24753 edge.left = left;
24754 return edge;
24755}
24756
24757function setEdgeEnd(edge, left, right, vertex) {
24758 if (!edge[0] && !edge[1]) {
24759 edge[0] = vertex;
24760 edge.left = left;
24761 edge.right = right;
24762 } else if (edge.left === right) {
24763 edge[1] = vertex;
24764 } else {
24765 edge[0] = vertex;
24766 }
24767}
24768
24769// Liang–Barsky line clipping.
24770function clipEdge(edge, x0, y0, x1, y1) {
24771 var a = edge[0],
24772 b = edge[1],
24773 ax = a[0],
24774 ay = a[1],
24775 bx = b[0],
24776 by = b[1],
24777 t0 = 0,
24778 t1 = 1,
24779 dx = bx - ax,
24780 dy = by - ay,
24781 r;
24782
24783 r = x0 - ax;
24784 if (!dx && r > 0) return;
24785 r /= dx;
24786 if (dx < 0) {
24787 if (r < t0) return;
24788 if (r < t1) t1 = r;
24789 } else if (dx > 0) {
24790 if (r > t1) return;
24791 if (r > t0) t0 = r;
24792 }
24793
24794 r = x1 - ax;
24795 if (!dx && r < 0) return;
24796 r /= dx;
24797 if (dx < 0) {
24798 if (r > t1) return;
24799 if (r > t0) t0 = r;
24800 } else if (dx > 0) {
24801 if (r < t0) return;
24802 if (r < t1) t1 = r;
24803 }
24804
24805 r = y0 - ay;
24806 if (!dy && r > 0) return;
24807 r /= dy;
24808 if (dy < 0) {
24809 if (r < t0) return;
24810 if (r < t1) t1 = r;
24811 } else if (dy > 0) {
24812 if (r > t1) return;
24813 if (r > t0) t0 = r;
24814 }
24815
24816 r = y1 - ay;
24817 if (!dy && r < 0) return;
24818 r /= dy;
24819 if (dy < 0) {
24820 if (r > t1) return;
24821 if (r > t0) t0 = r;
24822 } else if (dy > 0) {
24823 if (r < t0) return;
24824 if (r < t1) t1 = r;
24825 }
24826
24827 if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?
24828
24829 if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];
24830 if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];
24831 return true;
24832}
24833
24834function connectEdge(edge, x0, y0, x1, y1) {
24835 var v1 = edge[1];
24836 if (v1) return true;
24837
24838 var v0 = edge[0],
24839 left = edge.left,
24840 right = edge.right,
24841 lx = left[0],
24842 ly = left[1],
24843 rx = right[0],
24844 ry = right[1],
24845 fx = (lx + rx) / 2,
24846 fy = (ly + ry) / 2,
24847 fm,
24848 fb;
24849
24850 if (ry === ly) {
24851 if (fx < x0 || fx >= x1) return;
24852 if (lx > rx) {
24853 if (!v0) v0 = [fx, y0];
24854 else if (v0[1] >= y1) return;
24855 v1 = [fx, y1];
24856 } else {
24857 if (!v0) v0 = [fx, y1];
24858 else if (v0[1] < y0) return;
24859 v1 = [fx, y0];
24860 }
24861 } else {
24862 fm = (lx - rx) / (ry - ly);
24863 fb = fy - fm * fx;
24864 if (fm < -1 || fm > 1) {
24865 if (lx > rx) {
24866 if (!v0) v0 = [(y0 - fb) / fm, y0];
24867 else if (v0[1] >= y1) return;
24868 v1 = [(y1 - fb) / fm, y1];
24869 } else {
24870 if (!v0) v0 = [(y1 - fb) / fm, y1];
24871 else if (v0[1] < y0) return;
24872 v1 = [(y0 - fb) / fm, y0];
24873 }
24874 } else {
24875 if (ly < ry) {
24876 if (!v0) v0 = [x0, fm * x0 + fb];
24877 else if (v0[0] >= x1) return;
24878 v1 = [x1, fm * x1 + fb];
24879 } else {
24880 if (!v0) v0 = [x1, fm * x1 + fb];
24881 else if (v0[0] < x0) return;
24882 v1 = [x0, fm * x0 + fb];
24883 }
24884 }
24885 }
24886
24887 edge[0] = v0;
24888 edge[1] = v1;
24889 return true;
24890}
24891
24892function clipEdges(x0, y0, x1, y1) {
24893 var i = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"].length,
24894 edge;
24895
24896 while (i--) {
24897 if (!connectEdge(edge = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"][i], x0, y0, x1, y1)
24898 || !clipEdge(edge, x0, y0, x1, y1)
24899 || !(Math.abs(edge[0][0] - edge[1][0]) > _Diagram__WEBPACK_IMPORTED_MODULE_0__["epsilon"]
24900 || Math.abs(edge[0][1] - edge[1][1]) > _Diagram__WEBPACK_IMPORTED_MODULE_0__["epsilon"])) {
24901 delete _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"][i];
24902 }
24903 }
24904}
24905
24906
24907/***/ }),
24908
24909/***/ "./node_modules/d3-voronoi/src/RedBlackTree.js":
24910/*!*****************************************************!*\
24911 !*** ./node_modules/d3-voronoi/src/RedBlackTree.js ***!
24912 \*****************************************************/
24913/*! exports provided: RedBlackNode, default */
24914/***/ (function(module, __webpack_exports__, __webpack_require__) {
24915
24916"use strict";
24917__webpack_require__.r(__webpack_exports__);
24918/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedBlackNode", function() { return RedBlackNode; });
24919function RedBlackTree() {
24920 this._ = null; // root node
24921}
24922
24923function RedBlackNode(node) {
24924 node.U = // parent node
24925 node.C = // color - true for red, false for black
24926 node.L = // left node
24927 node.R = // right node
24928 node.P = // previous node
24929 node.N = null; // next node
24930}
24931
24932RedBlackTree.prototype = {
24933 constructor: RedBlackTree,
24934
24935 insert: function(after, node) {
24936 var parent, grandpa, uncle;
24937
24938 if (after) {
24939 node.P = after;
24940 node.N = after.N;
24941 if (after.N) after.N.P = node;
24942 after.N = node;
24943 if (after.R) {
24944 after = after.R;
24945 while (after.L) after = after.L;
24946 after.L = node;
24947 } else {
24948 after.R = node;
24949 }
24950 parent = after;
24951 } else if (this._) {
24952 after = RedBlackFirst(this._);
24953 node.P = null;
24954 node.N = after;
24955 after.P = after.L = node;
24956 parent = after;
24957 } else {
24958 node.P = node.N = null;
24959 this._ = node;
24960 parent = null;
24961 }
24962 node.L = node.R = null;
24963 node.U = parent;
24964 node.C = true;
24965
24966 after = node;
24967 while (parent && parent.C) {
24968 grandpa = parent.U;
24969 if (parent === grandpa.L) {
24970 uncle = grandpa.R;
24971 if (uncle && uncle.C) {
24972 parent.C = uncle.C = false;
24973 grandpa.C = true;
24974 after = grandpa;
24975 } else {
24976 if (after === parent.R) {
24977 RedBlackRotateLeft(this, parent);
24978 after = parent;
24979 parent = after.U;
24980 }
24981 parent.C = false;
24982 grandpa.C = true;
24983 RedBlackRotateRight(this, grandpa);
24984 }
24985 } else {
24986 uncle = grandpa.L;
24987 if (uncle && uncle.C) {
24988 parent.C = uncle.C = false;
24989 grandpa.C = true;
24990 after = grandpa;
24991 } else {
24992 if (after === parent.L) {
24993 RedBlackRotateRight(this, parent);
24994 after = parent;
24995 parent = after.U;
24996 }
24997 parent.C = false;
24998 grandpa.C = true;
24999 RedBlackRotateLeft(this, grandpa);
25000 }
25001 }
25002 parent = after.U;
25003 }
25004 this._.C = false;
25005 },
25006
25007 remove: function(node) {
25008 if (node.N) node.N.P = node.P;
25009 if (node.P) node.P.N = node.N;
25010 node.N = node.P = null;
25011
25012 var parent = node.U,
25013 sibling,
25014 left = node.L,
25015 right = node.R,
25016 next,
25017 red;
25018
25019 if (!left) next = right;
25020 else if (!right) next = left;
25021 else next = RedBlackFirst(right);
25022
25023 if (parent) {
25024 if (parent.L === node) parent.L = next;
25025 else parent.R = next;
25026 } else {
25027 this._ = next;
25028 }
25029
25030 if (left && right) {
25031 red = next.C;
25032 next.C = node.C;
25033 next.L = left;
25034 left.U = next;
25035 if (next !== right) {
25036 parent = next.U;
25037 next.U = node.U;
25038 node = next.R;
25039 parent.L = node;
25040 next.R = right;
25041 right.U = next;
25042 } else {
25043 next.U = parent;
25044 parent = next;
25045 node = next.R;
25046 }
25047 } else {
25048 red = node.C;
25049 node = next;
25050 }
25051
25052 if (node) node.U = parent;
25053 if (red) return;
25054 if (node && node.C) { node.C = false; return; }
25055
25056 do {
25057 if (node === this._) break;
25058 if (node === parent.L) {
25059 sibling = parent.R;
25060 if (sibling.C) {
25061 sibling.C = false;
25062 parent.C = true;
25063 RedBlackRotateLeft(this, parent);
25064 sibling = parent.R;
25065 }
25066 if ((sibling.L && sibling.L.C)
25067 || (sibling.R && sibling.R.C)) {
25068 if (!sibling.R || !sibling.R.C) {
25069 sibling.L.C = false;
25070 sibling.C = true;
25071 RedBlackRotateRight(this, sibling);
25072 sibling = parent.R;
25073 }
25074 sibling.C = parent.C;
25075 parent.C = sibling.R.C = false;
25076 RedBlackRotateLeft(this, parent);
25077 node = this._;
25078 break;
25079 }
25080 } else {
25081 sibling = parent.L;
25082 if (sibling.C) {
25083 sibling.C = false;
25084 parent.C = true;
25085 RedBlackRotateRight(this, parent);
25086 sibling = parent.L;
25087 }
25088 if ((sibling.L && sibling.L.C)
25089 || (sibling.R && sibling.R.C)) {
25090 if (!sibling.L || !sibling.L.C) {
25091 sibling.R.C = false;
25092 sibling.C = true;
25093 RedBlackRotateLeft(this, sibling);
25094 sibling = parent.L;
25095 }
25096 sibling.C = parent.C;
25097 parent.C = sibling.L.C = false;
25098 RedBlackRotateRight(this, parent);
25099 node = this._;
25100 break;
25101 }
25102 }
25103 sibling.C = true;
25104 node = parent;
25105 parent = parent.U;
25106 } while (!node.C);
25107
25108 if (node) node.C = false;
25109 }
25110};
25111
25112function RedBlackRotateLeft(tree, node) {
25113 var p = node,
25114 q = node.R,
25115 parent = p.U;
25116
25117 if (parent) {
25118 if (parent.L === p) parent.L = q;
25119 else parent.R = q;
25120 } else {
25121 tree._ = q;
25122 }
25123
25124 q.U = parent;
25125 p.U = q;
25126 p.R = q.L;
25127 if (p.R) p.R.U = p;
25128 q.L = p;
25129}
25130
25131function RedBlackRotateRight(tree, node) {
25132 var p = node,
25133 q = node.L,
25134 parent = p.U;
25135
25136 if (parent) {
25137 if (parent.L === p) parent.L = q;
25138 else parent.R = q;
25139 } else {
25140 tree._ = q;
25141 }
25142
25143 q.U = parent;
25144 p.U = q;
25145 p.L = q.R;
25146 if (p.L) p.L.U = p;
25147 q.R = p;
25148}
25149
25150function RedBlackFirst(node) {
25151 while (node.L) node = node.L;
25152 return node;
25153}
25154
25155/* harmony default export */ __webpack_exports__["default"] = (RedBlackTree);
25156
25157
25158/***/ }),
25159
25160/***/ "./node_modules/d3-voronoi/src/constant.js":
25161/*!*************************************************!*\
25162 !*** ./node_modules/d3-voronoi/src/constant.js ***!
25163 \*************************************************/
25164/*! exports provided: default */
25165/***/ (function(module, __webpack_exports__, __webpack_require__) {
25166
25167"use strict";
25168__webpack_require__.r(__webpack_exports__);
25169/* harmony default export */ __webpack_exports__["default"] = (function(x) {
25170 return function() {
25171 return x;
25172 };
25173});
25174
25175
25176/***/ }),
25177
25178/***/ "./node_modules/d3-voronoi/src/point.js":
25179/*!**********************************************!*\
25180 !*** ./node_modules/d3-voronoi/src/point.js ***!
25181 \**********************************************/
25182/*! exports provided: x, y */
25183/***/ (function(module, __webpack_exports__, __webpack_require__) {
25184
25185"use strict";
25186__webpack_require__.r(__webpack_exports__);
25187/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
25188/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
25189function x(d) {
25190 return d[0];
25191}
25192
25193function y(d) {
25194 return d[1];
25195}
25196
25197
25198/***/ }),
25199
25200/***/ "./node_modules/d3-voronoi/src/voronoi.js":
25201/*!************************************************!*\
25202 !*** ./node_modules/d3-voronoi/src/voronoi.js ***!
25203 \************************************************/
25204/*! exports provided: default */
25205/***/ (function(module, __webpack_exports__, __webpack_require__) {
25206
25207"use strict";
25208__webpack_require__.r(__webpack_exports__);
25209/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-voronoi/src/constant.js");
25210/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-voronoi/src/point.js");
25211/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
25212
25213
25214
25215
25216/* harmony default export */ __webpack_exports__["default"] = (function() {
25217 var x = _point__WEBPACK_IMPORTED_MODULE_1__["x"],
25218 y = _point__WEBPACK_IMPORTED_MODULE_1__["y"],
25219 extent = null;
25220
25221 function voronoi(data) {
25222 return new _Diagram__WEBPACK_IMPORTED_MODULE_2__["default"](data.map(function(d, i) {
25223 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"]];
25224 s.index = i;
25225 s.data = d;
25226 return s;
25227 }), extent);
25228 }
25229
25230 voronoi.polygons = function(data) {
25231 return voronoi(data).polygons();
25232 };
25233
25234 voronoi.links = function(data) {
25235 return voronoi(data).links();
25236 };
25237
25238 voronoi.triangles = function(data) {
25239 return voronoi(data).triangles();
25240 };
25241
25242 voronoi.x = function(_) {
25243 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), voronoi) : x;
25244 };
25245
25246 voronoi.y = function(_) {
25247 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), voronoi) : y;
25248 };
25249
25250 voronoi.extent = function(_) {
25251 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]]];
25252 };
25253
25254 voronoi.size = function(_) {
25255 return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];
25256 };
25257
25258 return voronoi;
25259});
25260
25261
25262/***/ }),
25263
25264/***/ "./node_modules/d3-zoom/index.js":
25265/*!***************************************!*\
25266 !*** ./node_modules/d3-zoom/index.js ***!
25267 \***************************************/
25268/*! exports provided: zoom, zoomTransform, zoomIdentity */
25269/***/ (function(module, __webpack_exports__, __webpack_require__) {
25270
25271"use strict";
25272__webpack_require__.r(__webpack_exports__);
25273/* harmony import */ var _src_zoom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/zoom */ "./node_modules/d3-zoom/src/zoom.js");
25274/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoom", function() { return _src_zoom__WEBPACK_IMPORTED_MODULE_0__["default"]; });
25275
25276/* harmony import */ var _src_transform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/transform */ "./node_modules/d3-zoom/src/transform.js");
25277/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomTransform", function() { return _src_transform__WEBPACK_IMPORTED_MODULE_1__["default"]; });
25278
25279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomIdentity", function() { return _src_transform__WEBPACK_IMPORTED_MODULE_1__["identity"]; });
25280
25281
25282
25283
25284
25285/***/ }),
25286
25287/***/ "./node_modules/d3-zoom/src/constant.js":
25288/*!**********************************************!*\
25289 !*** ./node_modules/d3-zoom/src/constant.js ***!
25290 \**********************************************/
25291/*! exports provided: default */
25292/***/ (function(module, __webpack_exports__, __webpack_require__) {
25293
25294"use strict";
25295__webpack_require__.r(__webpack_exports__);
25296/* harmony default export */ __webpack_exports__["default"] = (function(x) {
25297 return function() {
25298 return x;
25299 };
25300});
25301
25302
25303/***/ }),
25304
25305/***/ "./node_modules/d3-zoom/src/event.js":
25306/*!*******************************************!*\
25307 !*** ./node_modules/d3-zoom/src/event.js ***!
25308 \*******************************************/
25309/*! exports provided: default */
25310/***/ (function(module, __webpack_exports__, __webpack_require__) {
25311
25312"use strict";
25313__webpack_require__.r(__webpack_exports__);
25314/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ZoomEvent; });
25315function ZoomEvent(target, type, transform) {
25316 this.target = target;
25317 this.type = type;
25318 this.transform = transform;
25319}
25320
25321
25322/***/ }),
25323
25324/***/ "./node_modules/d3-zoom/src/noevent.js":
25325/*!*********************************************!*\
25326 !*** ./node_modules/d3-zoom/src/noevent.js ***!
25327 \*********************************************/
25328/*! exports provided: nopropagation, default */
25329/***/ (function(module, __webpack_exports__, __webpack_require__) {
25330
25331"use strict";
25332__webpack_require__.r(__webpack_exports__);
25333/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
25334/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
25335
25336
25337function nopropagation() {
25338 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
25339}
25340
25341/* harmony default export */ __webpack_exports__["default"] = (function() {
25342 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
25343 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
25344});
25345
25346
25347/***/ }),
25348
25349/***/ "./node_modules/d3-zoom/src/transform.js":
25350/*!***********************************************!*\
25351 !*** ./node_modules/d3-zoom/src/transform.js ***!
25352 \***********************************************/
25353/*! exports provided: Transform, identity, default */
25354/***/ (function(module, __webpack_exports__, __webpack_require__) {
25355
25356"use strict";
25357__webpack_require__.r(__webpack_exports__);
25358/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transform", function() { return Transform; });
25359/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
25360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return transform; });
25361function Transform(k, x, y) {
25362 this.k = k;
25363 this.x = x;
25364 this.y = y;
25365}
25366
25367Transform.prototype = {
25368 constructor: Transform,
25369 scale: function(k) {
25370 return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
25371 },
25372 translate: function(x, y) {
25373 return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
25374 },
25375 apply: function(point) {
25376 return [point[0] * this.k + this.x, point[1] * this.k + this.y];
25377 },
25378 applyX: function(x) {
25379 return x * this.k + this.x;
25380 },
25381 applyY: function(y) {
25382 return y * this.k + this.y;
25383 },
25384 invert: function(location) {
25385 return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
25386 },
25387 invertX: function(x) {
25388 return (x - this.x) / this.k;
25389 },
25390 invertY: function(y) {
25391 return (y - this.y) / this.k;
25392 },
25393 rescaleX: function(x) {
25394 return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
25395 },
25396 rescaleY: function(y) {
25397 return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
25398 },
25399 toString: function() {
25400 return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
25401 }
25402};
25403
25404var identity = new Transform(1, 0, 0);
25405
25406transform.prototype = Transform.prototype;
25407
25408function transform(node) {
25409 return node.__zoom || identity;
25410}
25411
25412
25413/***/ }),
25414
25415/***/ "./node_modules/d3-zoom/src/zoom.js":
25416/*!******************************************!*\
25417 !*** ./node_modules/d3-zoom/src/zoom.js ***!
25418 \******************************************/
25419/*! exports provided: default */
25420/***/ (function(module, __webpack_exports__, __webpack_require__) {
25421
25422"use strict";
25423__webpack_require__.r(__webpack_exports__);
25424/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/index.js");
25425/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/index.js");
25426/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
25427/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
25428/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/index.js");
25429/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-zoom/src/constant.js");
25430/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./event */ "./node_modules/d3-zoom/src/event.js");
25431/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./transform */ "./node_modules/d3-zoom/src/transform.js");
25432/* harmony import */ var _noevent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./noevent */ "./node_modules/d3-zoom/src/noevent.js");
25433
25434
25435
25436
25437
25438
25439
25440
25441
25442
25443// Ignore right-click, since that should open the context menu.
25444function defaultFilter() {
25445 return !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].button;
25446}
25447
25448function defaultExtent() {
25449 var e = this, w, h;
25450 if (e instanceof SVGElement) {
25451 e = e.ownerSVGElement || e;
25452 w = e.width.baseVal.value;
25453 h = e.height.baseVal.value;
25454 } else {
25455 w = e.clientWidth;
25456 h = e.clientHeight;
25457 }
25458 return [[0, 0], [w, h]];
25459}
25460
25461function defaultTransform() {
25462 return this.__zoom || _transform__WEBPACK_IMPORTED_MODULE_7__["identity"];
25463}
25464
25465function defaultWheelDelta() {
25466 return -d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].deltaY * (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].deltaMode ? 120 : 1) / 500;
25467}
25468
25469function defaultTouchable() {
25470 return "ontouchstart" in this;
25471}
25472
25473function defaultConstrain(transform, extent, translateExtent) {
25474 var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
25475 dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
25476 dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
25477 dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
25478 return transform.translate(
25479 dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
25480 dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
25481 );
25482}
25483
25484/* harmony default export */ __webpack_exports__["default"] = (function() {
25485 var filter = defaultFilter,
25486 extent = defaultExtent,
25487 constrain = defaultConstrain,
25488 wheelDelta = defaultWheelDelta,
25489 touchable = defaultTouchable,
25490 scaleExtent = [0, Infinity],
25491 translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
25492 duration = 250,
25493 interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["interpolateZoom"],
25494 gestures = [],
25495 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "zoom", "end"),
25496 touchstarting,
25497 touchending,
25498 touchDelay = 500,
25499 wheelDelay = 150,
25500 clickDistance2 = 0;
25501
25502 function zoom(selection) {
25503 selection
25504 .property("__zoom", defaultTransform)
25505 .on("wheel.zoom", wheeled)
25506 .on("mousedown.zoom", mousedowned)
25507 .on("dblclick.zoom", dblclicked)
25508 .filter(touchable)
25509 .on("touchstart.zoom", touchstarted)
25510 .on("touchmove.zoom", touchmoved)
25511 .on("touchend.zoom touchcancel.zoom", touchended)
25512 .style("touch-action", "none")
25513 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
25514 }
25515
25516 zoom.transform = function(collection, transform) {
25517 var selection = collection.selection ? collection.selection() : collection;
25518 selection.property("__zoom", defaultTransform);
25519 if (collection !== selection) {
25520 schedule(collection, transform);
25521 } else {
25522 selection.interrupt().each(function() {
25523 gesture(this, arguments)
25524 .start()
25525 .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
25526 .end();
25527 });
25528 }
25529 };
25530
25531 zoom.scaleBy = function(selection, k) {
25532 zoom.scaleTo(selection, function() {
25533 var k0 = this.__zoom.k,
25534 k1 = typeof k === "function" ? k.apply(this, arguments) : k;
25535 return k0 * k1;
25536 });
25537 };
25538
25539 zoom.scaleTo = function(selection, k) {
25540 zoom.transform(selection, function() {
25541 var e = extent.apply(this, arguments),
25542 t0 = this.__zoom,
25543 p0 = centroid(e),
25544 p1 = t0.invert(p0),
25545 k1 = typeof k === "function" ? k.apply(this, arguments) : k;
25546 return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
25547 });
25548 };
25549
25550 zoom.translateBy = function(selection, x, y) {
25551 zoom.transform(selection, function() {
25552 return constrain(this.__zoom.translate(
25553 typeof x === "function" ? x.apply(this, arguments) : x,
25554 typeof y === "function" ? y.apply(this, arguments) : y
25555 ), extent.apply(this, arguments), translateExtent);
25556 });
25557 };
25558
25559 zoom.translateTo = function(selection, x, y) {
25560 zoom.transform(selection, function() {
25561 var e = extent.apply(this, arguments),
25562 t = this.__zoom,
25563 p = centroid(e);
25564 return constrain(_transform__WEBPACK_IMPORTED_MODULE_7__["identity"].translate(p[0], p[1]).scale(t.k).translate(
25565 typeof x === "function" ? -x.apply(this, arguments) : -x,
25566 typeof y === "function" ? -y.apply(this, arguments) : -y
25567 ), e, translateExtent);
25568 });
25569 };
25570
25571 function scale(transform, k) {
25572 k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
25573 return k === transform.k ? transform : new _transform__WEBPACK_IMPORTED_MODULE_7__["Transform"](k, transform.x, transform.y);
25574 }
25575
25576 function translate(transform, p0, p1) {
25577 var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
25578 return x === transform.x && y === transform.y ? transform : new _transform__WEBPACK_IMPORTED_MODULE_7__["Transform"](transform.k, x, y);
25579 }
25580
25581 function centroid(extent) {
25582 return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
25583 }
25584
25585 function schedule(transition, transform, center) {
25586 transition
25587 .on("start.zoom", function() { gesture(this, arguments).start(); })
25588 .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).end(); })
25589 .tween("zoom", function() {
25590 var that = this,
25591 args = arguments,
25592 g = gesture(that, args),
25593 e = extent.apply(that, args),
25594 p = center || centroid(e),
25595 w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
25596 a = that.__zoom,
25597 b = typeof transform === "function" ? transform.apply(that, args) : transform,
25598 i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
25599 return function(t) {
25600 if (t === 1) t = b; // Avoid rounding error on end.
25601 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); }
25602 g.zoom(null, t);
25603 };
25604 });
25605 }
25606
25607 function gesture(that, args) {
25608 for (var i = 0, n = gestures.length, g; i < n; ++i) {
25609 if ((g = gestures[i]).that === that) {
25610 return g;
25611 }
25612 }
25613 return new Gesture(that, args);
25614 }
25615
25616 function Gesture(that, args) {
25617 this.that = that;
25618 this.args = args;
25619 this.index = -1;
25620 this.active = 0;
25621 this.extent = extent.apply(that, args);
25622 }
25623
25624 Gesture.prototype = {
25625 start: function() {
25626 if (++this.active === 1) {
25627 this.index = gestures.push(this) - 1;
25628 this.emit("start");
25629 }
25630 return this;
25631 },
25632 zoom: function(key, transform) {
25633 if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
25634 if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
25635 if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
25636 this.that.__zoom = transform;
25637 this.emit("zoom");
25638 return this;
25639 },
25640 end: function() {
25641 if (--this.active === 0) {
25642 gestures.splice(this.index, 1);
25643 this.index = -1;
25644 this.emit("end");
25645 }
25646 return this;
25647 },
25648 emit: function(type) {
25649 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]);
25650 }
25651 };
25652
25653 function wheeled() {
25654 if (!filter.apply(this, arguments)) return;
25655 var g = gesture(this, arguments),
25656 t = this.__zoom,
25657 k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
25658 p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this);
25659
25660 // If the mouse is in the same location as before, reuse it.
25661 // If there were recent wheel events, reset the wheel idle timeout.
25662 if (g.wheel) {
25663 if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
25664 g.mouse[1] = t.invert(g.mouse[0] = p);
25665 }
25666 clearTimeout(g.wheel);
25667 }
25668
25669 // If this wheel event won’t trigger a transform change, ignore it.
25670 else if (t.k === k) return;
25671
25672 // Otherwise, capture the mouse point and location at the start.
25673 else {
25674 g.mouse = [p, t.invert(p)];
25675 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
25676 g.start();
25677 }
25678
25679 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
25680 g.wheel = setTimeout(wheelidled, wheelDelay);
25681 g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
25682
25683 function wheelidled() {
25684 g.wheel = null;
25685 g.end();
25686 }
25687 }
25688
25689 function mousedowned() {
25690 if (touchending || !filter.apply(this, arguments)) return;
25691 var g = gesture(this, arguments),
25692 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),
25693 p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this),
25694 x0 = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientX,
25695 y0 = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientY;
25696
25697 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragDisable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view);
25698 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
25699 g.mouse = [p, this.__zoom.invert(p)];
25700 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
25701 g.start();
25702
25703 function mousemoved() {
25704 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
25705 if (!g.moved) {
25706 var dx = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientX - x0, dy = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientY - y0;
25707 g.moved = dx * dx + dy * dy > clickDistance2;
25708 }
25709 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));
25710 }
25711
25712 function mouseupped() {
25713 v.on("mousemove.zoom mouseup.zoom", null);
25714 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragEnable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view, g.moved);
25715 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
25716 g.end();
25717 }
25718 }
25719
25720 function dblclicked() {
25721 if (!filter.apply(this, arguments)) return;
25722 var t0 = this.__zoom,
25723 p0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this),
25724 p1 = t0.invert(p0),
25725 k1 = t0.k * (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].shiftKey ? 0.5 : 2),
25726 t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);
25727
25728 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
25729 if (duration > 0) Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).transition().duration(duration).call(schedule, t1, p0);
25730 else Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).call(zoom.transform, t1);
25731 }
25732
25733 function touchstarted() {
25734 if (!filter.apply(this, arguments)) return;
25735 var g = gesture(this, arguments),
25736 touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches,
25737 started,
25738 n = touches.length, i, t, p;
25739
25740 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
25741 for (i = 0; i < n; ++i) {
25742 t = touches[i], p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["touch"])(this, touches, t.identifier);
25743 p = [p, this.__zoom.invert(p), t.identifier];
25744 if (!g.touch0) g.touch0 = p, started = true;
25745 else if (!g.touch1) g.touch1 = p;
25746 }
25747
25748 // If this is a dbltap, reroute to the (optional) dblclick.zoom handler.
25749 if (touchstarting) {
25750 touchstarting = clearTimeout(touchstarting);
25751 if (!g.touch1) {
25752 g.end();
25753 p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).on("dblclick.zoom");
25754 if (p) p.apply(this, arguments);
25755 return;
25756 }
25757 }
25758
25759 if (started) {
25760 touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
25761 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
25762 g.start();
25763 }
25764 }
25765
25766 function touchmoved() {
25767 var g = gesture(this, arguments),
25768 touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches,
25769 n = touches.length, i, t, p, l;
25770
25771 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["default"])();
25772 if (touchstarting) touchstarting = clearTimeout(touchstarting);
25773 for (i = 0; i < n; ++i) {
25774 t = touches[i], p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["touch"])(this, touches, t.identifier);
25775 if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
25776 else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
25777 }
25778 t = g.that.__zoom;
25779 if (g.touch1) {
25780 var p0 = g.touch0[0], l0 = g.touch0[1],
25781 p1 = g.touch1[0], l1 = g.touch1[1],
25782 dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
25783 dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
25784 t = scale(t, Math.sqrt(dp / dl));
25785 p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
25786 l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
25787 }
25788 else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
25789 else return;
25790 g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
25791 }
25792
25793 function touchended() {
25794 var g = gesture(this, arguments),
25795 touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches,
25796 n = touches.length, i, t;
25797
25798 Object(_noevent__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
25799 if (touchending) clearTimeout(touchending);
25800 touchending = setTimeout(function() { touchending = null; }, touchDelay);
25801 for (i = 0; i < n; ++i) {
25802 t = touches[i];
25803 if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
25804 else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
25805 }
25806 if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
25807 if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
25808 else g.end();
25809 }
25810
25811 zoom.wheelDelta = function(_) {
25812 return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])(+_), zoom) : wheelDelta;
25813 };
25814
25815 zoom.filter = function(_) {
25816 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), zoom) : filter;
25817 };
25818
25819 zoom.touchable = function(_) {
25820 return arguments.length ? (touchable = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), zoom) : touchable;
25821 };
25822
25823 zoom.extent = function(_) {
25824 return arguments.length ? (extent = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_5__["default"])([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
25825 };
25826
25827 zoom.scaleExtent = function(_) {
25828 return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
25829 };
25830
25831 zoom.translateExtent = function(_) {
25832 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]]];
25833 };
25834
25835 zoom.constrain = function(_) {
25836 return arguments.length ? (constrain = _, zoom) : constrain;
25837 };
25838
25839 zoom.duration = function(_) {
25840 return arguments.length ? (duration = +_, zoom) : duration;
25841 };
25842
25843 zoom.interpolate = function(_) {
25844 return arguments.length ? (interpolate = _, zoom) : interpolate;
25845 };
25846
25847 zoom.on = function() {
25848 var value = listeners.on.apply(listeners, arguments);
25849 return value === listeners ? zoom : value;
25850 };
25851
25852 zoom.clickDistance = function(_) {
25853 return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
25854 };
25855
25856 return zoom;
25857});
25858
25859
25860/***/ }),
25861
25862/***/ "./node_modules/d3/build/package.js":
25863/*!******************************************!*\
25864 !*** ./node_modules/d3/build/package.js ***!
25865 \******************************************/
25866/*! exports provided: name, version, description, keywords, homepage, license, author, main, unpkg, jsdelivr, module, repository, scripts, devDependencies, dependencies */
25867/***/ (function(module, __webpack_exports__, __webpack_require__) {
25868
25869"use strict";
25870__webpack_require__.r(__webpack_exports__);
25871/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "name", function() { return name; });
25872/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; });
25873/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "description", function() { return description; });
25874/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keywords", function() { return keywords; });
25875/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "homepage", function() { return homepage; });
25876/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "license", function() { return license; });
25877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "author", function() { return author; });
25878/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "main", function() { return main; });
25879/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unpkg", function() { return unpkg; });
25880/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jsdelivr", function() { return jsdelivr; });
25881/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "module", function() { return module; });
25882/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repository", function() { return repository; });
25883/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scripts", function() { return scripts; });
25884/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "devDependencies", function() { return devDependencies; });
25885/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dependencies", function() { return dependencies; });
25886var name = "d3";
25887var version = "4.13.0";
25888var description = "Data-Driven Documents";
25889var keywords = ["dom","visualization","svg","animation","canvas"];
25890var homepage = "https://d3js.org";
25891var license = "BSD-3-Clause";
25892var author = {"name":"Mike Bostock","url":"https://bost.ocks.org/mike"};
25893var main = "build/d3.node.js";
25894var unpkg = "build/d3.min.js";
25895var jsdelivr = "build/d3.min.js";
25896var module = "index";
25897var repository = {"type":"git","url":"https://github.com/d3/d3.git"};
25898var scripts = {"pretest":"rimraf build && mkdir build && json2module package.json > build/package.js && node rollup.node","test":"tape 'test/**/*-test.js'","prepublishOnly":"npm run test && rollup -c --banner \"$(preamble)\" && uglifyjs -b beautify=false,preamble=\"'$(preamble)'\" build/d3.js -c negate_iife=false -m -o build/d3.min.js","postpublish":"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/build/d3.js d3.v4.js && cp ../d3/build/d3.min.js d3.v4.min.js && git add d3.v4.js d3.v4.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/build/d3.js ../d3/build/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 build/d3.zip -- LICENSE README.md API.md CHANGES.md build/d3.js build/d3.min.js"};
25899var devDependencies = {"json2module":"0.0","package-preamble":"0.1","rimraf":"2","rollup":"0.53","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"3","tape":"4","uglify-js":"3.2"};
25900var dependencies = {"d3-array":"1.2.1","d3-axis":"1.0.8","d3-brush":"1.0.4","d3-chord":"1.0.4","d3-collection":"1.0.4","d3-color":"1.0.3","d3-dispatch":"1.0.3","d3-drag":"1.2.1","d3-dsv":"1.0.8","d3-ease":"1.0.3","d3-force":"1.1.0","d3-format":"1.2.2","d3-geo":"1.9.1","d3-hierarchy":"1.1.5","d3-interpolate":"1.1.6","d3-path":"1.0.5","d3-polygon":"1.0.3","d3-quadtree":"1.0.3","d3-queue":"3.0.7","d3-random":"1.1.0","d3-request":"1.0.6","d3-scale":"1.0.7","d3-selection":"1.3.0","d3-shape":"1.2.0","d3-time":"1.0.8","d3-time-format":"2.1.1","d3-timer":"1.0.7","d3-transition":"1.1.1","d3-voronoi":"1.1.2","d3-zoom":"1.7.1"};
25901
25902
25903/***/ }),
25904
25905/***/ "./node_modules/d3/index.js":
25906/*!**********************************!*\
25907 !*** ./node_modules/d3/index.js ***!
25908 \**********************************/
25909/*! 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, cubehelix, 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, 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, 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, interpolateNumber, interpolateObject, interpolateRound, interpolateString, interpolateTransformCss, interpolateTransformSvg, interpolateZoom, interpolateRgb, interpolateRgbBasis, interpolateRgbBasisClosed, interpolateHsl, interpolateHslLong, interpolateLab, interpolateHcl, interpolateHclLong, interpolateCubehelix, interpolateCubehelixLong, quantize, path, polygonArea, polygonCentroid, polygonHull, polygonContains, polygonLength, quadtree, queue, randomUniform, randomNormal, randomLogNormal, randomBates, randomIrwinHall, randomExponential, request, html, json, text, xml, csv, tsv, scaleBand, scalePoint, scaleIdentity, scaleLinear, scaleLog, scaleOrdinal, scaleImplicit, scalePow, scaleSqrt, scaleQuantile, scaleQuantize, scaleThreshold, scaleTime, scaleUtc, schemeCategory10, schemeCategory20b, schemeCategory20c, schemeCategory20, interpolateCubehelixDefault, interpolateRainbow, interpolateWarm, interpolateCool, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma, scaleSequential, 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 */
25910/***/ (function(module, __webpack_exports__, __webpack_require__) {
25911
25912"use strict";
25913__webpack_require__.r(__webpack_exports__);
25914/* harmony import */ var _build_package__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./build/package */ "./node_modules/d3/build/package.js");
25915/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "version", function() { return _build_package__WEBPACK_IMPORTED_MODULE_0__["version"]; });
25916
25917/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/index.js");
25918/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisect", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisect"]; });
25919
25920/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisectRight"]; });
25921
25922/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisectLeft"]; });
25923
25924/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ascending", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["ascending"]; });
25925
25926/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisector", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisector"]; });
25927
25928/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cross", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["cross"]; });
25929
25930/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "descending", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["descending"]; });
25931
25932/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deviation", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["deviation"]; });
25933
25934/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extent", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["extent"]; });
25935
25936/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "histogram", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["histogram"]; });
25937
25938/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdFreedmanDiaconis", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdFreedmanDiaconis"]; });
25939
25940/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdScott", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdScott"]; });
25941
25942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdSturges", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdSturges"]; });
25943
25944/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["max"]; });
25945
25946/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mean", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["mean"]; });
25947
25948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "median", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["median"]; });
25949
25950/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["merge"]; });
25951
25952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["min"]; });
25953
25954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["pairs"]; });
25955
25956/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "permute", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["permute"]; });
25957
25958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantile", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["quantile"]; });
25959
25960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["range"]; });
25961
25962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["scan"]; });
25963
25964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["shuffle"]; });
25965
25966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["sum"]; });
25967
25968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ticks", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["ticks"]; });
25969
25970/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["tickIncrement"]; });
25971
25972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["tickStep"]; });
25973
25974/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transpose", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["transpose"]; });
25975
25976/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "variance", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["variance"]; });
25977
25978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["zip"]; });
25979
25980/* harmony import */ var d3_axis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-axis */ "./node_modules/d3-axis/index.js");
25981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisTop"]; });
25982
25983/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisRight"]; });
25984
25985/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisBottom"]; });
25986
25987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisLeft"]; });
25988
25989/* harmony import */ var d3_brush__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-brush */ "./node_modules/d3-brush/index.js");
25990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brush", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brush"]; });
25991
25992/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushX"]; });
25993
25994/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushY"]; });
25995
25996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushSelection"]; });
25997
25998/* harmony import */ var d3_chord__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-chord */ "./node_modules/d3-chord/index.js");
25999/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chord", function() { return d3_chord__WEBPACK_IMPORTED_MODULE_4__["chord"]; });
26000
26001/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ribbon", function() { return d3_chord__WEBPACK_IMPORTED_MODULE_4__["ribbon"]; });
26002
26003/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/index.js");
26004/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nest", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["nest"]; });
26005
26006/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "set", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["set"]; });
26007
26008/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["map"]; });
26009
26010/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["keys"]; });
26011
26012/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["values"]; });
26013
26014/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "entries", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["entries"]; });
26015
26016/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/index.js");
26017/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "color", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["color"]; });
26018
26019/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["rgb"]; });
26020
26021/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["hsl"]; });
26022
26023/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lab", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["lab"]; });
26024
26025/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["hcl"]; });
26026
26027/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cubehelix", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["cubehelix"]; });
26028
26029/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/index.js");
26030/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return d3_dispatch__WEBPACK_IMPORTED_MODULE_7__["dispatch"]; });
26031
26032/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/index.js");
26033/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "drag", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_8__["drag"]; });
26034
26035/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragDisable", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_8__["dragDisable"]; });
26036
26037/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragEnable", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_8__["dragEnable"]; });
26038
26039/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/index.js");
26040/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["dsvFormat"]; });
26041
26042/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["csvParse"]; });
26043
26044/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["csvParseRows"]; });
26045
26046/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["csvFormat"]; });
26047
26048/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["csvFormatRows"]; });
26049
26050/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["tsvParse"]; });
26051
26052/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["tsvParseRows"]; });
26053
26054/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["tsvFormat"]; });
26055
26056/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_9__["tsvFormatRows"]; });
26057
26058/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! d3-ease */ "./node_modules/d3-ease/index.js");
26059/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeLinear", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeLinear"]; });
26060
26061/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuad", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeQuad"]; });
26062
26063/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeQuadIn"]; });
26064
26065/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeQuadOut"]; });
26066
26067/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeQuadInOut"]; });
26068
26069/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubic", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeCubic"]; });
26070
26071/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeCubicIn"]; });
26072
26073/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeCubicOut"]; });
26074
26075/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeCubicInOut"]; });
26076
26077/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePoly", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easePoly"]; });
26078
26079/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easePolyIn"]; });
26080
26081/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easePolyOut"]; });
26082
26083/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easePolyInOut"]; });
26084
26085/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSin", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeSin"]; });
26086
26087/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeSinIn"]; });
26088
26089/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeSinOut"]; });
26090
26091/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeSinInOut"]; });
26092
26093/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExp", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeExp"]; });
26094
26095/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeExpIn"]; });
26096
26097/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeExpOut"]; });
26098
26099/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeExpInOut"]; });
26100
26101/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircle", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeCircle"]; });
26102
26103/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeCircleIn"]; });
26104
26105/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeCircleOut"]; });
26106
26107/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeCircleInOut"]; });
26108
26109/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounce", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeBounce"]; });
26110
26111/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeBounceIn"]; });
26112
26113/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeBounceOut"]; });
26114
26115/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeBounceInOut"]; });
26116
26117/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBack", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeBack"]; });
26118
26119/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeBackIn"]; });
26120
26121/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeBackOut"]; });
26122
26123/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeBackInOut"]; });
26124
26125/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElastic", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeElastic"]; });
26126
26127/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeElasticIn"]; });
26128
26129/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeElasticOut"]; });
26130
26131/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_10__["easeElasticInOut"]; });
26132
26133/* harmony import */ var d3_force__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! d3-force */ "./node_modules/d3-force/index.js");
26134/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCenter", function() { return d3_force__WEBPACK_IMPORTED_MODULE_11__["forceCenter"]; });
26135
26136/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCollide", function() { return d3_force__WEBPACK_IMPORTED_MODULE_11__["forceCollide"]; });
26137
26138/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceLink", function() { return d3_force__WEBPACK_IMPORTED_MODULE_11__["forceLink"]; });
26139
26140/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceManyBody", function() { return d3_force__WEBPACK_IMPORTED_MODULE_11__["forceManyBody"]; });
26141
26142/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceRadial", function() { return d3_force__WEBPACK_IMPORTED_MODULE_11__["forceRadial"]; });
26143
26144/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceSimulation", function() { return d3_force__WEBPACK_IMPORTED_MODULE_11__["forceSimulation"]; });
26145
26146/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceX", function() { return d3_force__WEBPACK_IMPORTED_MODULE_11__["forceX"]; });
26147
26148/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceY", function() { return d3_force__WEBPACK_IMPORTED_MODULE_11__["forceY"]; });
26149
26150/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/index.js");
26151/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatDefaultLocale", function() { return d3_format__WEBPACK_IMPORTED_MODULE_12__["formatDefaultLocale"]; });
26152
26153/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return d3_format__WEBPACK_IMPORTED_MODULE_12__["format"]; });
26154
26155/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return d3_format__WEBPACK_IMPORTED_MODULE_12__["formatPrefix"]; });
26156
26157/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatLocale", function() { return d3_format__WEBPACK_IMPORTED_MODULE_12__["formatLocale"]; });
26158
26159/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatSpecifier", function() { return d3_format__WEBPACK_IMPORTED_MODULE_12__["formatSpecifier"]; });
26160
26161/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionFixed", function() { return d3_format__WEBPACK_IMPORTED_MODULE_12__["precisionFixed"]; });
26162
26163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionPrefix", function() { return d3_format__WEBPACK_IMPORTED_MODULE_12__["precisionPrefix"]; });
26164
26165/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return d3_format__WEBPACK_IMPORTED_MODULE_12__["precisionRound"]; });
26166
26167/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! d3-geo */ "./node_modules/d3-geo/index.js");
26168/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoArea"]; });
26169
26170/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoBounds", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoBounds"]; });
26171
26172/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCentroid", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoCentroid"]; });
26173
26174/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCircle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoCircle"]; });
26175
26176/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipAntimeridian", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoClipAntimeridian"]; });
26177
26178/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipCircle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoClipCircle"]; });
26179
26180/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipExtent", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoClipExtent"]; });
26181
26182/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipRectangle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoClipRectangle"]; });
26183
26184/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoContains", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoContains"]; });
26185
26186/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoDistance", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoDistance"]; });
26187
26188/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoGraticule"]; });
26189
26190/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule10", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoGraticule10"]; });
26191
26192/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoInterpolate", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoInterpolate"]; });
26193
26194/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoLength", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoLength"]; });
26195
26196/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoPath", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoPath"]; });
26197
26198/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbers", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoAlbers"]; });
26199
26200/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbersUsa", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoAlbersUsa"]; });
26201
26202/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoAzimuthalEqualArea"]; });
26203
26204/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualAreaRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoAzimuthalEqualAreaRaw"]; });
26205
26206/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistant", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoAzimuthalEquidistant"]; });
26207
26208/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistantRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoAzimuthalEquidistantRaw"]; });
26209
26210/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformal", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoConicConformal"]; });
26211
26212/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformalRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoConicConformalRaw"]; });
26213
26214/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoConicEqualArea"]; });
26215
26216/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualAreaRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoConicEqualAreaRaw"]; });
26217
26218/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistant", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoConicEquidistant"]; });
26219
26220/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistantRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoConicEquidistantRaw"]; });
26221
26222/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangular", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoEquirectangular"]; });
26223
26224/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangularRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoEquirectangularRaw"]; });
26225
26226/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoGnomonic"]; });
26227
26228/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoGnomonicRaw"]; });
26229
26230/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoIdentity", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoIdentity"]; });
26231
26232/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjection", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoProjection"]; });
26233
26234/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjectionMutator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoProjectionMutator"]; });
26235
26236/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoMercator"]; });
26237
26238/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercatorRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoMercatorRaw"]; });
26239
26240/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoNaturalEarth1"]; });
26241
26242/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1Raw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoNaturalEarth1Raw"]; });
26243
26244/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoOrthographic"]; });
26245
26246/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoOrthographicRaw"]; });
26247
26248/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoStereographic"]; });
26249
26250/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoStereographicRaw"]; });
26251
26252/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoTransverseMercator"]; });
26253
26254/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercatorRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoTransverseMercatorRaw"]; });
26255
26256/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoRotation", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoRotation"]; });
26257
26258/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStream", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoStream"]; });
26259
26260/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransform", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_13__["geoTransform"]; });
26261
26262/* harmony import */ var d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! d3-hierarchy */ "./node_modules/d3-hierarchy/index.js");
26263/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cluster", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["cluster"]; });
26264
26265/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hierarchy", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["hierarchy"]; });
26266
26267/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pack", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["pack"]; });
26268
26269/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packSiblings", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["packSiblings"]; });
26270
26271/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["packEnclose"]; });
26272
26273/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["partition"]; });
26274
26275/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stratify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["stratify"]; });
26276
26277/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tree", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["tree"]; });
26278
26279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemap", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["treemap"]; });
26280
26281/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapBinary", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["treemapBinary"]; });
26282
26283/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapDice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["treemapDice"]; });
26284
26285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSlice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["treemapSlice"]; });
26286
26287/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSliceDice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["treemapSliceDice"]; });
26288
26289/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSquarify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["treemapSquarify"]; });
26290
26291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapResquarify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_14__["treemapResquarify"]; });
26292
26293/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/index.js");
26294/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolate", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolate"]; });
26295
26296/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateArray", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateArray"]; });
26297
26298/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasis", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateBasis"]; });
26299
26300/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasisClosed", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateBasisClosed"]; });
26301
26302/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDate", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateDate"]; });
26303
26304/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateNumber", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateNumber"]; });
26305
26306/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateObject", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateObject"]; });
26307
26308/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRound", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateRound"]; });
26309
26310/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateString", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateString"]; });
26311
26312/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateTransformCss"]; });
26313
26314/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateTransformSvg"]; });
26315
26316/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateZoom", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateZoom"]; });
26317
26318/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgb", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateRgb"]; });
26319
26320/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasis", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateRgbBasis"]; });
26321
26322/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasisClosed", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateRgbBasisClosed"]; });
26323
26324/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHsl", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateHsl"]; });
26325
26326/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHslLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateHslLong"]; });
26327
26328/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateLab", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateLab"]; });
26329
26330/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHcl", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateHcl"]; });
26331
26332/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHclLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateHclLong"]; });
26333
26334/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelix", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateCubehelix"]; });
26335
26336/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["interpolateCubehelixLong"]; });
26337
26338/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantize", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_15__["quantize"]; });
26339
26340/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/index.js");
26341/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "path", function() { return d3_path__WEBPACK_IMPORTED_MODULE_16__["path"]; });
26342
26343/* harmony import */ var d3_polygon__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! d3-polygon */ "./node_modules/d3-polygon/index.js");
26344/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonArea", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_17__["polygonArea"]; });
26345
26346/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonCentroid", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_17__["polygonCentroid"]; });
26347
26348/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonHull", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_17__["polygonHull"]; });
26349
26350/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonContains", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_17__["polygonContains"]; });
26351
26352/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonLength", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_17__["polygonLength"]; });
26353
26354/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/index.js");
26355/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quadtree", function() { return d3_quadtree__WEBPACK_IMPORTED_MODULE_18__["quadtree"]; });
26356
26357/* harmony import */ var d3_queue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! d3-queue */ "./node_modules/d3-queue/index.js");
26358/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queue", function() { return d3_queue__WEBPACK_IMPORTED_MODULE_19__["queue"]; });
26359
26360/* harmony import */ var d3_random__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! d3-random */ "./node_modules/d3-random/index.js");
26361/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomUniform", function() { return d3_random__WEBPACK_IMPORTED_MODULE_20__["randomUniform"]; });
26362
26363/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomNormal", function() { return d3_random__WEBPACK_IMPORTED_MODULE_20__["randomNormal"]; });
26364
26365/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomLogNormal", function() { return d3_random__WEBPACK_IMPORTED_MODULE_20__["randomLogNormal"]; });
26366
26367/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomBates", function() { return d3_random__WEBPACK_IMPORTED_MODULE_20__["randomBates"]; });
26368
26369/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomIrwinHall", function() { return d3_random__WEBPACK_IMPORTED_MODULE_20__["randomIrwinHall"]; });
26370
26371/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomExponential", function() { return d3_random__WEBPACK_IMPORTED_MODULE_20__["randomExponential"]; });
26372
26373/* harmony import */ var d3_request__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! d3-request */ "./node_modules/d3-request/index.js");
26374/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "request", function() { return d3_request__WEBPACK_IMPORTED_MODULE_21__["request"]; });
26375
26376/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "html", function() { return d3_request__WEBPACK_IMPORTED_MODULE_21__["html"]; });
26377
26378/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "json", function() { return d3_request__WEBPACK_IMPORTED_MODULE_21__["json"]; });
26379
26380/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "text", function() { return d3_request__WEBPACK_IMPORTED_MODULE_21__["text"]; });
26381
26382/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "xml", function() { return d3_request__WEBPACK_IMPORTED_MODULE_21__["xml"]; });
26383
26384/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csv", function() { return d3_request__WEBPACK_IMPORTED_MODULE_21__["csv"]; });
26385
26386/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsv", function() { return d3_request__WEBPACK_IMPORTED_MODULE_21__["tsv"]; });
26387
26388/* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! d3-scale */ "./node_modules/d3-scale/index.js");
26389/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleBand", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleBand"]; });
26390
26391/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePoint", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scalePoint"]; });
26392
26393/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleIdentity"]; });
26394
26395/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleLinear"]; });
26396
26397/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLog", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleLog"]; });
26398
26399/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleOrdinal"]; });
26400
26401/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleImplicit"]; });
26402
26403/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePow", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scalePow"]; });
26404
26405/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSqrt"]; });
26406
26407/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleQuantile"]; });
26408
26409/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleQuantize"]; });
26410
26411/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleThreshold"]; });
26412
26413/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleTime", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleTime"]; });
26414
26415/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleUtc"]; });
26416
26417/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory10", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["schemeCategory10"]; });
26418
26419/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory20b", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["schemeCategory20b"]; });
26420
26421/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory20c", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["schemeCategory20c"]; });
26422
26423/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory20", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["schemeCategory20"]; });
26424
26425/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixDefault", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["interpolateCubehelixDefault"]; });
26426
26427/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRainbow", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["interpolateRainbow"]; });
26428
26429/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateWarm", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["interpolateWarm"]; });
26430
26431/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCool", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["interpolateCool"]; });
26432
26433/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateViridis", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["interpolateViridis"]; });
26434
26435/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateMagma", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["interpolateMagma"]; });
26436
26437/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateInferno", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["interpolateInferno"]; });
26438
26439/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePlasma", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["interpolatePlasma"]; });
26440
26441/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSequential"]; });
26442
26443/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/index.js");
26444/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "create", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["create"]; });
26445
26446/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "creator", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["creator"]; });
26447
26448/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "local", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["local"]; });
26449
26450/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["matcher"]; });
26451
26452/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mouse", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["mouse"]; });
26453
26454/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["namespace"]; });
26455
26456/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespaces", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["namespaces"]; });
26457
26458/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clientPoint", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["clientPoint"]; });
26459
26460/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "select", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["select"]; });
26461
26462/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectAll", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["selectAll"]; });
26463
26464/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selection", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["selection"]; });
26465
26466/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selector", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["selector"]; });
26467
26468/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectorAll", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["selectorAll"]; });
26469
26470/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "style", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["style"]; });
26471
26472/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touch", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["touch"]; });
26473
26474/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touches", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["touches"]; });
26475
26476/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["window"]; });
26477
26478/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "event", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["event"]; });
26479
26480/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_23__["customEvent"]; });
26481
26482/* harmony import */ var d3_shape__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! d3-shape */ "./node_modules/d3-shape/index.js");
26483/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arc", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["arc"]; });
26484
26485/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "area", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["area"]; });
26486
26487/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "line", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["line"]; });
26488
26489/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pie", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["pie"]; });
26490
26491/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "areaRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["areaRadial"]; });
26492
26493/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialArea", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["radialArea"]; });
26494
26495/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["lineRadial"]; });
26496
26497/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialLine", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["radialLine"]; });
26498
26499/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pointRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["pointRadial"]; });
26500
26501/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["linkHorizontal"]; });
26502
26503/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["linkVertical"]; });
26504
26505/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["linkRadial"]; });
26506
26507/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbol", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbol"]; });
26508
26509/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbols"]; });
26510
26511/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCircle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbolCircle"]; });
26512
26513/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCross", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbolCross"]; });
26514
26515/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolDiamond", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbolDiamond"]; });
26516
26517/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolSquare", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbolSquare"]; });
26518
26519/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolStar", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbolStar"]; });
26520
26521/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolTriangle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbolTriangle"]; });
26522
26523/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolWye", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["symbolWye"]; });
26524
26525/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveBasisClosed"]; });
26526
26527/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveBasisOpen"]; });
26528
26529/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasis", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveBasis"]; });
26530
26531/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBundle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveBundle"]; });
26532
26533/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveCardinalClosed"]; });
26534
26535/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveCardinalOpen"]; });
26536
26537/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinal", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveCardinal"]; });
26538
26539/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveCatmullRomClosed"]; });
26540
26541/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveCatmullRomOpen"]; });
26542
26543/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRom", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveCatmullRom"]; });
26544
26545/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinearClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveLinearClosed"]; });
26546
26547/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinear", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveLinear"]; });
26548
26549/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneX", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveMonotoneX"]; });
26550
26551/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneY", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveMonotoneY"]; });
26552
26553/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveNatural", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveNatural"]; });
26554
26555/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStep", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveStep"]; });
26556
26557/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepAfter", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveStepAfter"]; });
26558
26559/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepBefore", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["curveStepBefore"]; });
26560
26561/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stack", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stack"]; });
26562
26563/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetExpand", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOffsetExpand"]; });
26564
26565/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetDiverging", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOffsetDiverging"]; });
26566
26567/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetNone", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOffsetNone"]; });
26568
26569/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetSilhouette", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOffsetSilhouette"]; });
26570
26571/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetWiggle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOffsetWiggle"]; });
26572
26573/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderAscending", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOrderAscending"]; });
26574
26575/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderDescending", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOrderDescending"]; });
26576
26577/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderInsideOut", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOrderInsideOut"]; });
26578
26579/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderNone", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOrderNone"]; });
26580
26581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderReverse", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_24__["stackOrderReverse"]; });
26582
26583/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/index.js");
26584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeInterval"]; });
26585
26586/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMillisecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeMillisecond"]; });
26587
26588/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMilliseconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeMilliseconds"]; });
26589
26590/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMillisecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcMillisecond"]; });
26591
26592/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMilliseconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcMilliseconds"]; });
26593
26594/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeSecond"]; });
26595
26596/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSeconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeSeconds"]; });
26597
26598/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcSecond"]; });
26599
26600/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSeconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcSeconds"]; });
26601
26602/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinute", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeMinute"]; });
26603
26604/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinutes", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeMinutes"]; });
26605
26606/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHour", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeHour"]; });
26607
26608/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHours", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeHours"]; });
26609
26610/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDay", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeDay"]; });
26611
26612/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeDays"]; });
26613
26614/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeek", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeWeek"]; });
26615
26616/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeeks", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeWeeks"]; });
26617
26618/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSunday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeSunday"]; });
26619
26620/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSundays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeSundays"]; });
26621
26622/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeMonday"]; });
26623
26624/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMondays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeMondays"]; });
26625
26626/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeTuesday"]; });
26627
26628/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeTuesdays"]; });
26629
26630/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeWednesday"]; });
26631
26632/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeWednesdays"]; });
26633
26634/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeThursday"]; });
26635
26636/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeThursdays"]; });
26637
26638/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFriday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeFriday"]; });
26639
26640/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFridays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeFridays"]; });
26641
26642/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeSaturday"]; });
26643
26644/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeSaturdays"]; });
26645
26646/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonth", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeMonth"]; });
26647
26648/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonths", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeMonths"]; });
26649
26650/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYear", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeYear"]; });
26651
26652/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYears", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["timeYears"]; });
26653
26654/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinute", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcMinute"]; });
26655
26656/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcMinutes"]; });
26657
26658/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHour", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcHour"]; });
26659
26660/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcHours"]; });
26661
26662/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDay", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcDay"]; });
26663
26664/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcDays"]; });
26665
26666/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeek", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcWeek"]; });
26667
26668/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeeks", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcWeeks"]; });
26669
26670/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcSunday"]; });
26671
26672/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcSundays"]; });
26673
26674/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcMonday"]; });
26675
26676/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcMondays"]; });
26677
26678/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcTuesday"]; });
26679
26680/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcTuesdays"]; });
26681
26682/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcWednesday"]; });
26683
26684/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcWednesdays"]; });
26685
26686/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcThursday"]; });
26687
26688/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcThursdays"]; });
26689
26690/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcFriday"]; });
26691
26692/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcFridays"]; });
26693
26694/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcSaturday"]; });
26695
26696/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcSaturdays"]; });
26697
26698/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonth", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcMonth"]; });
26699
26700/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcMonths"]; });
26701
26702/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYear", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcYear"]; });
26703
26704/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return d3_time__WEBPACK_IMPORTED_MODULE_25__["utcYears"]; });
26705
26706/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/index.js");
26707/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatDefaultLocale", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_26__["timeFormatDefaultLocale"]; });
26708
26709/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_26__["timeFormat"]; });
26710
26711/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_26__["timeParse"]; });
26712
26713/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_26__["utcFormat"]; });
26714
26715/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_26__["utcParse"]; });
26716
26717/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatLocale", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_26__["timeFormatLocale"]; });
26718
26719/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_26__["isoFormat"]; });
26720
26721/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_26__["isoParse"]; });
26722
26723/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/index.js");
26724/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "now", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_27__["now"]; });
26725
26726/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_27__["timer"]; });
26727
26728/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_27__["timerFlush"]; });
26729
26730/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_27__["timeout"]; });
26731
26732/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_27__["interval"]; });
26733
26734/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/index.js");
26735/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_28__["transition"]; });
26736
26737/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "active", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_28__["active"]; });
26738
26739/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interrupt", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_28__["interrupt"]; });
26740
26741/* harmony import */ var d3_voronoi__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! d3-voronoi */ "./node_modules/d3-voronoi/index.js");
26742/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "voronoi", function() { return d3_voronoi__WEBPACK_IMPORTED_MODULE_29__["voronoi"]; });
26743
26744/* harmony import */ var d3_zoom__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! d3-zoom */ "./node_modules/d3-zoom/index.js");
26745/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoom", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_30__["zoom"]; });
26746
26747/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomTransform", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_30__["zoomTransform"]; });
26748
26749/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomIdentity", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_30__["zoomIdentity"]; });
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784/***/ }),
26785
26786/***/ "./node_modules/dagre-d3-renderer/dist/dagre-d3.core.js":
26787/*!**************************************************************!*\
26788 !*** ./node_modules/dagre-d3-renderer/dist/dagre-d3.core.js ***!
26789 \**************************************************************/
26790/*! no static exports found */
26791/***/ (function(module, exports, __webpack_require__) {
26792
26793module.exports=function(t){var e={};function r(a){if(e[a])return e[a].exports;var n=e[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=t,r.c=e,r.d=function(t,e,a){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},r.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r.w={},r(r.s=25)}([function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,n=r(2),l=(a=n)&&a.__esModule?a:{default:a};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,r){e&&t.attr("class",e).attr("class",r+" "+t.attr("class"))},applyTransition:function(t,e){var r=e.graph();if(l.default.isPlainObject(r)){var a=r.transition;if(l.default.isFunction(a))return a(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,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=u(r(16)),n=u(r(15)),l=u(r(14));function u(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e,r){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,a.default)(i,e);var d=i.node().getBBox(),o=void 0;switch(r){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,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,r,a){var n=t.x,l=t.y,u=n-a.x,i=l-a.y,d=Math.sqrt(e*e*i*i+r*r*u*u),o=Math.abs(e*r*u/d);a.x<n&&(o=-o);var s=Math.abs(e*r*i/d);return a.y<l&&(s=-s),{x:n+o,y:l+s}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var r=t.x,a=t.y,n=e.x-r,l=e.y-a,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:r+d,y:a+o}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,n=r(23),l=(a=n)&&a.__esModule?a:{default:a};e.default=function(t,e,r){var a=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=a-t.width/2-i,s=n-t.height/2-d,f=0;f<e.length;f+=1){var c=e[f],p=e[f<e.length-1?f+1:0],h=(0,l.default)(t,r,{x:o+c.x,y:s+c.y},{x:o+p.x,y:s+p.y});h&&u.push(h)}return u.length?(u.length>1&&u.sort(function(t,e){var a=t.x-r.x,n=t.y-r.y,l=Math.sqrt(a*a+n*n),u=e.x-r.x,i=e.y-r.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,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,n=r(4),l=(a=n)&&a.__esModule?a:{default:a};e.default=function(t,e,r){return(0,l.default)(t,e,e,r)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){return t.intersect(e)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,n=r(0),l=(a=n)&&a.__esModule?a:{default:a};function u(t,e,r,a){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,r[a+"Style"]),r[a+"Class"]&&n.attr("class",r[a+"Class"])}e.default={normal:u,vee:function(t,e,r,a){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,r[a+"Style"]),r[a+"Class"]&&n.attr("class",r[a+"Class"])},undirected:function(t,e,r,a){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,r[a+"Style"]),r[a+"Class"]&&n.attr("class",r[a+"Class"])},default:u}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=i(r(5)),n=i(r(4)),l=i(r(7)),u=i(r(6));function i(t){return t&&t.__esModule?t:{default:t}}e.default={rect:function(t,e,r){var n=t.insert("rect",":first-child").attr("rx",r.rx).attr("ry",r.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return r.intersect=function(t){return(0,a.default)(r,t)},n},ellipse:function(t,e,r){var a=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",a).attr("ry",l);return r.intersect=function(t){return(0,n.default)(r,a,l,t)},u},circle:function(t,e,r){var a=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",a);return r.intersect=function(t){return(0,l.default)(r,a,t)},n},diamond:function(t,e,r){var a=e.width*Math.SQRT2/2,n=e.height*Math.SQRT2/2,l=[{x:0,y:-n},{x:-a,y:0},{x:0,y:n},{x:a,y:0}],i=t.insert("polygon",":first-child").attr("points",l.map(function(t){return t.x+","+t.y}).join(" "));return r.intersect=function(t){return(0,u.default)(r,l,t)},i}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(r(1)),n=i(r(2)),l=i(r(8)),u=i(r(0));function i(t){return t&&t.__esModule?t:{default:t}}function d(t,e){var r=a.line().x(function(t){return t.x}).y(function(t){return t.y});return r.curve(t.curve),r(e)}e.default=function(t,e,r){var i=t.selectAll("g.edgePath").data(e.edges(),function(t){return u.default.edgeToId(t)}).classed("update",!0);return function(t,e){var r=t.enter().append("g").attr("class","edgePath").style("opacity",0);r.append("path").attr("class","path").attr("d",function(t){var r=e.edge(t),a=e.node(t.v).elem,l=n.default.range(r.points.length).map(function(){return e=(t=a).getBBox(),{x:(r=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2)).e,y:r.f};var t,e,r});return d(r,l)}),r.append("defs")}(i,e),function(t,e){var r=t.exit();u.default.applyTransition(r,e).style("opacity",0).remove(),u.default.applyTransition(r.select("path.path"),e).attr("d",function(t){var r=e.node(t.v);if(r){var l=n.default.range(this.getTotalLength()).map(function(){return r});return d({},l)}return a.select(this).attr("d")})}(i,e),i=t.selectAll("g.edgePath"),u.default.applyTransition(i,e).style("opacity",1),i.each(function(t){var r=a.select(this),n=e.edge(t);n.elem=this,n.id&&r.attr("id",n.id),u.default.applyClass(r,n.class,(r.classed("update")?"update ":"")+"edgePath")}),i.selectAll("path.path").each(function(t){var r=e.edge(t);r.arrowheadId=n.default.uniqueId("arrowhead");var i=a.select(this).attr("marker-end",function(){return"url(#"+r.arrowheadId+")"}).style("fill","none");u.default.applyTransition(i,e).attr("d",function(t){return function(t,e){var r=t.edge(e),a=t.node(e.v),n=t.node(e.w),u=r.points.slice(1,r.points.length-1);return u.unshift((0,l.default)(a,u[0])),u.push((0,l.default)(n,u[u.length-1])),d(r,u)}(e,t)}),u.default.applyStyle(i,r.style)}),i.selectAll("defs *").remove(),i.selectAll("defs").each(function(t){var n=e.edge(t);(0,r[n.arrowhead])(a.select(this),n.arrowheadId,n,"arrowhead")}),i}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(r(1)),n=i(r(2)),l=i(r(3)),u=i(r(0));function i(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){var r=t.selectAll("g.edgeLabel").data(e.edges(),function(t){return u.default.edgeToId(t)}).classed("update",!0);return r.selectAll("*").remove(),r.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(r=t.selectAll("g.edgeLabel")).each(function(t){var r=e.edge(t),u=(0,l.default)(a.select(this),e.edge(t),0,0).classed("label",!0),i=u.node().getBBox();r.labelId&&u.attr("id",r.labelId),n.default.has(r,"width")||(r.width=i.width),n.default.has(r,"height")||(r.height=i.height)}),u.default.applyTransition(r.exit(),e).style("opacity",0).remove(),r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(r(1)),n=u(r(0)),l=u(r(3));function u(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){var r=e.nodes().filter(function(t){return n.default.isSubgraph(e,t)}),u=t.selectAll("g.cluster").data(r,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 r=e.node(t),n=a.select(this);a.select(this).append("rect");var u=n.append("g").attr("class","label");(0,l.default)(u,r,r.clusterLabelPos)}),u.selectAll("rect").each(function(t){var r=e.node(t),l=a.select(this);n.default.applyStyle(l,r.style)}),n.default.applyTransition(u.exit(),e).style("opacity",0).remove(),u}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,n=r(0),l=(a=n)&&a.__esModule?a:{default:a};e.default=function(t,e){var r=t;return r.node().appendChild(e.label),l.default.applyStyle(r,e.labelStyle),r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,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=r(0),u=(a=l)&&a.__esModule?a:{default:a};e.default=function(t,e){var r=t.append("foreignObject").attr("width","100000"),a=r.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var l=e.label;switch(void 0===l?"undefined":n(l)){case"function":a.insert(l);break;case"object":a.insert(function(){return l});break;default:a.html(l)}u.default.applyStyle(a,e.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var i=a.node().getBoundingClientRect();return r.attr("width",i.width).attr("height",i.height),r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,n=r(0),l=(a=n)&&a.__esModule?a:{default:a};e.default=function(t,e){for(var r=t.append("text"),a=function(t){for(var e="",r=!1,a=null,n=0;n<t.length;n+=1)if(a=t[n],r){switch(a){case"n":e+="\n";break;default:e+=a}r=!1}else"\\"===a?r=!0:e+=a;return e}(e.label).split("\n"),n=0;n<a.length;n+=1)r.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(a[n]);return l.default.applyStyle(r,e.labelStyle),r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=i(r(2)),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(r(1)),l=i(r(3)),u=i(r(0));function i(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e,r){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=r[i.shape],c=a.default.pick(s.node().getBBox(),"width","height");i.elem=this,i.id&&d.attr("id",i.id),i.labelId&&o.attr("id",i.labelId),a.default.has(i,"width")&&(c.width=i.width),a.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 p=f(n.select(this),c,i);u.default.applyStyle(p,i.style);var h=p.node().getBBox();i.width=h.width,i.height=h.height}),u.default.applyTransition(d.exit(),e).style("opacity",0).remove(),d}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(r(1)),l=r(0),u=(a=l)&&a.__esModule?a:{default:a};e.default=function(t,e){var r=t.filter(function(){return!n.select(this).classed("update")});function a(t){var r=e.node(t);return"translate("+r.x+","+r.y+")"}r.attr("transform",a),u.default.applyTransition(t,e).style("opacity",1).attr("transform",a),u.default.applyTransition(r.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,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(r(1)),n=u(r(2)),l=u(r(0));function u(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){function r(t){var r=e.edge(t);return n.default.has(r,"x")?"translate("+r.x+","+r.y+")":""}t.filter(function(){return!a.select(this).classed("update")}).attr("transform",r),l.default.applyTransition(t,e).style("opacity",1).attr("transform",r)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(r(1)),l=r(0),u=(a=l)&&a.__esModule?a:{default:a};e.default=function(t,e){function r(t){var r=e.node(t);return"translate("+r.x+","+r.y+")"}t.filter(function(){return!n.select(this).classed("update")}).attr("transform",r),u.default.applyTransition(t,e).style("opacity",1).attr("transform",r)}},function(t,e){t.exports=__webpack_require__(/*! dagre-layout */ "./node_modules/dagre-layout/dist/dagre-layout.core.js")},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=y(r(2)),n=y(r(21)),l=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(r(1)),u=y(r(20)),i=y(r(19)),d=y(r(18)),o=y(r(17)),s=y(r(13)),f=y(r(12)),c=y(r(11)),p=y(r(10)),h=y(r(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 r=t.select("g."+e);return r.empty()&&(r=t.append("g").attr("class",e)),r}e.default=function(){var t=o.default,e=s.default,r=f.default,l=c.default,y=p.default,b=h.default,x=function(o,s){!function(t){t.nodes().forEach(function(e){var r=t.node(e);a.default.has(r,"label")||t.children(e).length||(r.label=e),a.default.has(r,"paddingX")&&a.default.defaults(r,{paddingLeft:r.paddingX,paddingRight:r.paddingX}),a.default.has(r,"paddingY")&&a.default.defaults(r,{paddingTop:r.paddingY,paddingBottom:r.paddingY}),a.default.has(r,"padding")&&a.default.defaults(r,{paddingLeft:r.padding,paddingRight:r.padding,paddingTop:r.padding,paddingBottom:r.padding}),a.default.defaults(r,g),a.default.each(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(t){r[t]=Number(r[t])}),a.default.has(r,"width")&&(r._prevWidth=r.width),a.default.has(r,"height")&&(r._prevHeight=r.height)}),t.edges().forEach(function(e){var r=t.edge(e);a.default.has(r,"label")||(r.label=""),a.default.defaults(r,v)})}(s),o.selectAll("*").remove();var f=_(o,"output"),c=_(f,"clusters"),p=_(f,"edgePaths"),h=r(_(f,"edgeLabels"),s),x=t(_(f,"nodes"),s,y);n.default.layout(s),(0,u.default)(x,s),(0,i.default)(h,s),l(p,s,b);var m=e(c,s);(0,d.default)(m,s),function(t){a.default.each(t.nodes(),function(e){var r=t.node(e);a.default.has(r,"_prevWidth")?r.width=r._prevWidth:delete r.width,a.default.has(r,"_prevHeight")?r.height=r._prevHeight:delete r.height,delete r._prevWidth,delete r._prevHeight})}(s)};return x.createNodes=function(e){return arguments.length?(t=e,x):t},x.createClusters=function(t){return arguments.length?(e=t,x):e},x.createEdgeLabels=function(t){return arguments.length?(r=t,x):r},x.createEdgePaths=function(t){return arguments.length?(l=t,x):l},x.shapes=function(t){return arguments.length?(y=t,x):y},x.arrows=function(t){return arguments.length?(b=t,x):b},x}},function(t,e,r){"use strict";function a(t,e){return t*e>0}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,r,n){var l=e.y-t.y,u=t.x-e.x,i=e.x*t.y-t.x*e.y,d=l*r.x+u*r.y+i,o=l*n.x+u*n.y+i;if(0===d||0===o||!a(d,o)){var s=n.y-r.y,f=r.x-n.x,c=n.x*r.y-r.x*n.y,p=s*t.x+f*t.y+c,h=s*e.x+f*e.y+c;if(0===p||0===h||!a(p,h)){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,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=d(r(8)),n=d(r(7)),l=d(r(4)),u=d(r(6)),i=d(r(5));function d(t){return t&&t.__esModule?t:{default:t}}e.default={node:a.default,circle:n.default,ellipse:l.default,polygon:u.default,rect:i.default}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=u(r(24)),n=u(r(22)),l=u(r(0));function u(t){return t&&t.__esModule?t:{default:t}}e.default={intersect:a.default,render:n.default,util:l.default}}]);
26794//# sourceMappingURL=dagre-d3.core.js.map
26795
26796/***/ }),
26797
26798/***/ "./node_modules/dagre-layout/dist/dagre-layout.core.js":
26799/*!*************************************************************!*\
26800 !*** ./node_modules/dagre-layout/dist/dagre-layout.core.js ***!
26801 \*************************************************************/
26802/*! no static exports found */
26803/***/ (function(module, exports, __webpack_require__) {
26804
26805module.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}}]);
26806//# sourceMappingURL=dagre-layout.core.js.map
26807
26808/***/ }),
26809
26810/***/ "./node_modules/graphlibrary/index.js":
26811/*!********************************************!*\
26812 !*** ./node_modules/graphlibrary/index.js ***!
26813 \********************************************/
26814/*! no static exports found */
26815/***/ (function(module, exports, __webpack_require__) {
26816
26817module.exports = {
26818 Graph: __webpack_require__(/*! ./lib/graph */ "./node_modules/graphlibrary/lib/graph.js"),
26819 json: __webpack_require__(/*! ./lib/json */ "./node_modules/graphlibrary/lib/json.js"),
26820 alg: __webpack_require__(/*! ./lib/alg */ "./node_modules/graphlibrary/lib/alg/index.js")
26821}
26822
26823
26824/***/ }),
26825
26826/***/ "./node_modules/graphlibrary/lib/alg/components.js":
26827/*!*********************************************************!*\
26828 !*** ./node_modules/graphlibrary/lib/alg/components.js ***!
26829 \*********************************************************/
26830/*! no static exports found */
26831/***/ (function(module, exports, __webpack_require__) {
26832
26833var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
26834
26835module.exports = components
26836
26837function components (g) {
26838 const visited = {}
26839 const cmpts = []
26840 let cmpt
26841
26842 function dfs (v) {
26843 if (_.has(visited, v)) return
26844 visited[v] = true
26845 cmpt.push(v)
26846 _.each(g.successors(v), dfs)
26847 _.each(g.predecessors(v), dfs)
26848 }
26849
26850 _.each(g.nodes(), function (v) {
26851 cmpt = []
26852 dfs(v)
26853 if (cmpt.length) {
26854 cmpts.push(cmpt)
26855 }
26856 })
26857
26858 return cmpts
26859}
26860
26861
26862/***/ }),
26863
26864/***/ "./node_modules/graphlibrary/lib/alg/dfs.js":
26865/*!**************************************************!*\
26866 !*** ./node_modules/graphlibrary/lib/alg/dfs.js ***!
26867 \**************************************************/
26868/*! no static exports found */
26869/***/ (function(module, exports, __webpack_require__) {
26870
26871var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
26872
26873module.exports = dfs
26874
26875/*
26876 * A helper that preforms a pre- or post-order traversal on the input graph
26877 * and returns the nodes in the order they were visited. If the graph is
26878 * undirected then this algorithm will navigate using neighbors. If the graph
26879 * is directed then this algorithm will navigate using successors.
26880 *
26881 * Order must be one of "pre" or "post".
26882 */
26883function dfs (g, vs, order) {
26884 if (!_.isArray(vs)) {
26885 vs = [vs]
26886 }
26887
26888 var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g)
26889
26890 const acc = []
26891 const visited = {}
26892 _.each(vs, function (v) {
26893 if (!g.hasNode(v)) {
26894 throw new Error('Graph does not have node: ' + v)
26895 }
26896
26897 doDfs(g, v, order === 'post', visited, navigation, acc)
26898 })
26899 return acc
26900}
26901
26902function doDfs (g, v, postorder, visited, navigation, acc) {
26903 if (!_.has(visited, v)) {
26904 visited[v] = true
26905
26906 if (!postorder) { acc.push(v) }
26907 _.each(navigation(v), function (w) {
26908 doDfs(g, w, postorder, visited, navigation, acc)
26909 })
26910 if (postorder) { acc.push(v) }
26911 }
26912}
26913
26914
26915/***/ }),
26916
26917/***/ "./node_modules/graphlibrary/lib/alg/dijkstra-all.js":
26918/*!***********************************************************!*\
26919 !*** ./node_modules/graphlibrary/lib/alg/dijkstra-all.js ***!
26920 \***********************************************************/
26921/*! no static exports found */
26922/***/ (function(module, exports, __webpack_require__) {
26923
26924const dijkstra = __webpack_require__(/*! ./dijkstra */ "./node_modules/graphlibrary/lib/alg/dijkstra.js")
26925const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
26926
26927module.exports = dijkstraAll
26928
26929function dijkstraAll (g, weightFunc, edgeFunc) {
26930 return _.transform(g.nodes(), function (acc, v) {
26931 acc[v] = dijkstra(g, v, weightFunc, edgeFunc)
26932 }, {})
26933}
26934
26935
26936/***/ }),
26937
26938/***/ "./node_modules/graphlibrary/lib/alg/dijkstra.js":
26939/*!*******************************************************!*\
26940 !*** ./node_modules/graphlibrary/lib/alg/dijkstra.js ***!
26941 \*******************************************************/
26942/*! no static exports found */
26943/***/ (function(module, exports, __webpack_require__) {
26944
26945const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
26946const PriorityQueue = __webpack_require__(/*! ../data/priority-queue */ "./node_modules/graphlibrary/lib/data/priority-queue.js")
26947
26948module.exports = dijkstra
26949
26950var DEFAULT_WEIGHT_FUNC = _.constant(1)
26951
26952function dijkstra (g, source, weightFn, edgeFn) {
26953 return runDijkstra(g, String(source),
26954 weightFn || DEFAULT_WEIGHT_FUNC,
26955 edgeFn || function (v) { return g.outEdges(v) })
26956}
26957
26958function runDijkstra (g, source, weightFn, edgeFn) {
26959 const results = {}
26960 const pq = new PriorityQueue()
26961 let v, vEntry
26962
26963 var updateNeighbors = function (edge) {
26964 const w = edge.v !== v ? edge.v : edge.w
26965 const wEntry = results[w]
26966 const weight = weightFn(edge)
26967 const distance = vEntry.distance + weight
26968
26969 if (weight < 0) {
26970 throw new Error('dijkstra does not allow negative edge weights. ' +
26971 'Bad edge: ' + edge + ' Weight: ' + weight)
26972 }
26973
26974 if (distance < wEntry.distance) {
26975 wEntry.distance = distance
26976 wEntry.predecessor = v
26977 pq.decrease(w, distance)
26978 }
26979 }
26980
26981 g.nodes().forEach(function (v) {
26982 var distance = v === source ? 0 : Number.POSITIVE_INFINITY
26983 results[v] = { distance: distance }
26984 pq.add(v, distance)
26985 })
26986
26987 while (pq.size() > 0) {
26988 v = pq.removeMin()
26989 vEntry = results[v]
26990 if (vEntry.distance === Number.POSITIVE_INFINITY) {
26991 break
26992 }
26993
26994 edgeFn(v).forEach(updateNeighbors)
26995 }
26996
26997 return results
26998}
26999
27000
27001/***/ }),
27002
27003/***/ "./node_modules/graphlibrary/lib/alg/find-cycles.js":
27004/*!**********************************************************!*\
27005 !*** ./node_modules/graphlibrary/lib/alg/find-cycles.js ***!
27006 \**********************************************************/
27007/*! no static exports found */
27008/***/ (function(module, exports, __webpack_require__) {
27009
27010const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
27011const tarjan = __webpack_require__(/*! ./tarjan */ "./node_modules/graphlibrary/lib/alg/tarjan.js")
27012
27013module.exports = findCycles
27014
27015function findCycles (g) {
27016 return _.filter(tarjan(g), function (cmpt) {
27017 return cmpt.length > 1 || (cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]))
27018 })
27019}
27020
27021
27022/***/ }),
27023
27024/***/ "./node_modules/graphlibrary/lib/alg/floyd-warshall.js":
27025/*!*************************************************************!*\
27026 !*** ./node_modules/graphlibrary/lib/alg/floyd-warshall.js ***!
27027 \*************************************************************/
27028/*! no static exports found */
27029/***/ (function(module, exports, __webpack_require__) {
27030
27031var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
27032
27033module.exports = floydWarshall
27034
27035var DEFAULT_WEIGHT_FUNC = _.constant(1)
27036
27037function floydWarshall (g, weightFn, edgeFn) {
27038 return runFloydWarshall(g,
27039 weightFn || DEFAULT_WEIGHT_FUNC,
27040 edgeFn || function (v) { return g.outEdges(v) })
27041}
27042
27043function runFloydWarshall (g, weightFn, edgeFn) {
27044 const results = {}
27045 const nodes = g.nodes()
27046
27047 nodes.forEach(function (v) {
27048 results[v] = {}
27049 results[v][v] = { distance: 0 }
27050 nodes.forEach(function (w) {
27051 if (v !== w) {
27052 results[v][w] = { distance: Number.POSITIVE_INFINITY }
27053 }
27054 })
27055 edgeFn(v).forEach(function (edge) {
27056 const w = edge.v === v ? edge.w : edge.v
27057 const d = weightFn(edge)
27058 results[v][w] = { distance: d, predecessor: v }
27059 })
27060 })
27061
27062 nodes.forEach(function (k) {
27063 var rowK = results[k]
27064 nodes.forEach(function (i) {
27065 var rowI = results[i]
27066 nodes.forEach(function (j) {
27067 var ik = rowI[k]
27068 var kj = rowK[j]
27069 var ij = rowI[j]
27070 var altDistance = ik.distance + kj.distance
27071 if (altDistance < ij.distance) {
27072 ij.distance = altDistance
27073 ij.predecessor = kj.predecessor
27074 }
27075 })
27076 })
27077 })
27078
27079 return results
27080}
27081
27082
27083/***/ }),
27084
27085/***/ "./node_modules/graphlibrary/lib/alg/index.js":
27086/*!****************************************************!*\
27087 !*** ./node_modules/graphlibrary/lib/alg/index.js ***!
27088 \****************************************************/
27089/*! no static exports found */
27090/***/ (function(module, exports, __webpack_require__) {
27091
27092module.exports = {
27093 components: __webpack_require__(/*! ./components */ "./node_modules/graphlibrary/lib/alg/components.js"),
27094 dijkstra: __webpack_require__(/*! ./dijkstra */ "./node_modules/graphlibrary/lib/alg/dijkstra.js"),
27095 dijkstraAll: __webpack_require__(/*! ./dijkstra-all */ "./node_modules/graphlibrary/lib/alg/dijkstra-all.js"),
27096 findCycles: __webpack_require__(/*! ./find-cycles */ "./node_modules/graphlibrary/lib/alg/find-cycles.js"),
27097 floydWarshall: __webpack_require__(/*! ./floyd-warshall */ "./node_modules/graphlibrary/lib/alg/floyd-warshall.js"),
27098 isAcyclic: __webpack_require__(/*! ./is-acyclic */ "./node_modules/graphlibrary/lib/alg/is-acyclic.js"),
27099 postorder: __webpack_require__(/*! ./postorder */ "./node_modules/graphlibrary/lib/alg/postorder.js"),
27100 preorder: __webpack_require__(/*! ./preorder */ "./node_modules/graphlibrary/lib/alg/preorder.js"),
27101 prim: __webpack_require__(/*! ./prim */ "./node_modules/graphlibrary/lib/alg/prim.js"),
27102 tarjan: __webpack_require__(/*! ./tarjan */ "./node_modules/graphlibrary/lib/alg/tarjan.js"),
27103 topsort: __webpack_require__(/*! ./topsort */ "./node_modules/graphlibrary/lib/alg/topsort.js")
27104}
27105
27106
27107/***/ }),
27108
27109/***/ "./node_modules/graphlibrary/lib/alg/is-acyclic.js":
27110/*!*********************************************************!*\
27111 !*** ./node_modules/graphlibrary/lib/alg/is-acyclic.js ***!
27112 \*********************************************************/
27113/*! no static exports found */
27114/***/ (function(module, exports, __webpack_require__) {
27115
27116var topsort = __webpack_require__(/*! ./topsort */ "./node_modules/graphlibrary/lib/alg/topsort.js")
27117
27118module.exports = isAcyclic
27119
27120function isAcyclic (g) {
27121 try {
27122 topsort(g)
27123 } catch (e) {
27124 if (e instanceof topsort.CycleException) {
27125 return false
27126 }
27127 throw e
27128 }
27129 return true
27130}
27131
27132
27133/***/ }),
27134
27135/***/ "./node_modules/graphlibrary/lib/alg/postorder.js":
27136/*!********************************************************!*\
27137 !*** ./node_modules/graphlibrary/lib/alg/postorder.js ***!
27138 \********************************************************/
27139/*! no static exports found */
27140/***/ (function(module, exports, __webpack_require__) {
27141
27142var dfs = __webpack_require__(/*! ./dfs */ "./node_modules/graphlibrary/lib/alg/dfs.js")
27143
27144module.exports = postorder
27145
27146function postorder (g, vs) {
27147 return dfs(g, vs, 'post')
27148}
27149
27150
27151/***/ }),
27152
27153/***/ "./node_modules/graphlibrary/lib/alg/preorder.js":
27154/*!*******************************************************!*\
27155 !*** ./node_modules/graphlibrary/lib/alg/preorder.js ***!
27156 \*******************************************************/
27157/*! no static exports found */
27158/***/ (function(module, exports, __webpack_require__) {
27159
27160var dfs = __webpack_require__(/*! ./dfs */ "./node_modules/graphlibrary/lib/alg/dfs.js")
27161
27162module.exports = preorder
27163
27164function preorder (g, vs) {
27165 return dfs(g, vs, 'pre')
27166}
27167
27168
27169/***/ }),
27170
27171/***/ "./node_modules/graphlibrary/lib/alg/prim.js":
27172/*!***************************************************!*\
27173 !*** ./node_modules/graphlibrary/lib/alg/prim.js ***!
27174 \***************************************************/
27175/*! no static exports found */
27176/***/ (function(module, exports, __webpack_require__) {
27177
27178const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
27179const Graph = __webpack_require__(/*! ../graph */ "./node_modules/graphlibrary/lib/graph.js")
27180const PriorityQueue = __webpack_require__(/*! ../data/priority-queue */ "./node_modules/graphlibrary/lib/data/priority-queue.js")
27181
27182module.exports = prim
27183
27184function prim (g, weightFunc) {
27185 const result = new Graph()
27186 const parents = {}
27187 const pq = new PriorityQueue()
27188 let v
27189
27190 function updateNeighbors (edge) {
27191 const w = edge.v === v ? edge.w : edge.v
27192 const pri = pq.priority(w)
27193 if (pri !== undefined) {
27194 var edgeWeight = weightFunc(edge)
27195 if (edgeWeight < pri) {
27196 parents[w] = v
27197 pq.decrease(w, edgeWeight)
27198 }
27199 }
27200 }
27201
27202 if (g.nodeCount() === 0) {
27203 return result
27204 }
27205
27206 _.each(g.nodes(), function (v) {
27207 pq.add(v, Number.POSITIVE_INFINITY)
27208 result.setNode(v)
27209 })
27210
27211 // Start from an arbitrary node
27212 pq.decrease(g.nodes()[0], 0)
27213
27214 var init = false
27215 while (pq.size() > 0) {
27216 v = pq.removeMin()
27217 if (_.has(parents, v)) {
27218 result.setEdge(v, parents[v])
27219 } else if (init) {
27220 throw new Error('Input graph is not connected: ' + g)
27221 } else {
27222 init = true
27223 }
27224
27225 g.nodeEdges(v).forEach(updateNeighbors)
27226 }
27227
27228 return result
27229}
27230
27231
27232/***/ }),
27233
27234/***/ "./node_modules/graphlibrary/lib/alg/tarjan.js":
27235/*!*****************************************************!*\
27236 !*** ./node_modules/graphlibrary/lib/alg/tarjan.js ***!
27237 \*****************************************************/
27238/*! no static exports found */
27239/***/ (function(module, exports, __webpack_require__) {
27240
27241var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
27242
27243module.exports = tarjan
27244
27245function tarjan (g) {
27246 let index = 0
27247 const stack = []
27248 const visited = {} // node id -> { onStack, lowlink, index }
27249 const results = []
27250
27251 function dfs (v) {
27252 var entry = visited[v] = {
27253 onStack: true,
27254 lowlink: index,
27255 index: index++
27256 }
27257 stack.push(v)
27258
27259 g.successors(v).forEach(function (w) {
27260 if (!_.has(visited, w)) {
27261 dfs(w)
27262 entry.lowlink = Math.min(entry.lowlink, visited[w].lowlink)
27263 } else if (visited[w].onStack) {
27264 entry.lowlink = Math.min(entry.lowlink, visited[w].index)
27265 }
27266 })
27267
27268 if (entry.lowlink === entry.index) {
27269 const cmpt = []
27270 let w
27271 do {
27272 w = stack.pop()
27273 visited[w].onStack = false
27274 cmpt.push(w)
27275 } while (v !== w)
27276 results.push(cmpt)
27277 }
27278 }
27279
27280 g.nodes().forEach(function (v) {
27281 if (!_.has(visited, v)) {
27282 dfs(v)
27283 }
27284 })
27285
27286 return results
27287}
27288
27289
27290/***/ }),
27291
27292/***/ "./node_modules/graphlibrary/lib/alg/topsort.js":
27293/*!******************************************************!*\
27294 !*** ./node_modules/graphlibrary/lib/alg/topsort.js ***!
27295 \******************************************************/
27296/*! no static exports found */
27297/***/ (function(module, exports, __webpack_require__) {
27298
27299const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
27300
27301module.exports = topsort
27302topsort.CycleException = CycleException
27303
27304function topsort (g) {
27305 const visited = {}
27306 const stack = {}
27307 const results = []
27308
27309 function visit (node) {
27310 if (_.has(stack, node)) {
27311 throw new CycleException()
27312 }
27313
27314 if (!_.has(visited, node)) {
27315 stack[node] = true
27316 visited[node] = true
27317 _.each(g.predecessors(node), visit)
27318 delete stack[node]
27319 results.push(node)
27320 }
27321 }
27322
27323 _.each(g.sinks(), visit)
27324
27325 if (_.size(visited) !== g.nodeCount()) {
27326 throw new CycleException()
27327 }
27328
27329 return results
27330}
27331
27332function CycleException () {}
27333CycleException.prototype = new Error() // must be an instance of Error to pass testing
27334
27335
27336/***/ }),
27337
27338/***/ "./node_modules/graphlibrary/lib/data/priority-queue.js":
27339/*!**************************************************************!*\
27340 !*** ./node_modules/graphlibrary/lib/data/priority-queue.js ***!
27341 \**************************************************************/
27342/*! no static exports found */
27343/***/ (function(module, exports, __webpack_require__) {
27344
27345const _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlibrary/lib/lodash.js")
27346
27347module.exports = PriorityQueue
27348
27349/**
27350 * A min-priority queue data structure. This algorithm is derived from Cormen,
27351 * et al., "Introduction to Algorithms". The basic idea of a min-priority
27352 * queue is that you can efficiently (in O(1) time) get the smallest key in
27353 * the queue. Adding and removing elements takes O(log n) time. A key can
27354 * have its priority decreased in O(log n) time.
27355 */
27356function PriorityQueue () {
27357 this._arr = []
27358 this._keyIndices = {}
27359}
27360
27361/**
27362 * Returns the number of elements in the queue. Takes `O(1)` time.
27363 */
27364PriorityQueue.prototype.size = function () {
27365 return this._arr.length
27366}
27367
27368/**
27369 * Returns the keys that are in the queue. Takes `O(n)` time.
27370 */
27371PriorityQueue.prototype.keys = function () {
27372 return this._arr.map(function (x) { return x.key })
27373}
27374
27375/**
27376 * Returns `true` if **key** is in the queue and `false` if not.
27377 */
27378PriorityQueue.prototype.has = function (key) {
27379 return _.has(this._keyIndices, key)
27380}
27381
27382/**
27383 * Returns the priority for **key**. If **key** is not present in the queue
27384 * then this function returns `undefined`. Takes `O(1)` time.
27385 *
27386 * @param {Object} key
27387 */
27388PriorityQueue.prototype.priority = function (key) {
27389 var index = this._keyIndices[key]
27390 if (index !== undefined) {
27391 return this._arr[index].priority
27392 }
27393}
27394
27395/**
27396 * Returns the key for the minimum element in this queue. If the queue is
27397 * empty this function throws an Error. Takes `O(1)` time.
27398 */
27399PriorityQueue.prototype.min = function () {
27400 if (this.size() === 0) {
27401 throw new Error('Queue underflow')
27402 }
27403 return this._arr[0].key
27404}
27405
27406/**
27407 * Inserts a new key into the priority queue. If the key already exists in
27408 * the queue this function returns `false`; otherwise it will return `true`.
27409 * Takes `O(n)` time.
27410 *
27411 * @param {Object} key the key to add
27412 * @param {Number} priority the initial priority for the key
27413 */
27414PriorityQueue.prototype.add = function (key, priority) {
27415 var keyIndices = this._keyIndices
27416 key = String(key)
27417 if (!_.has(keyIndices, key)) {
27418 var arr = this._arr
27419 var index = arr.length
27420 keyIndices[key] = index
27421 arr.push({key: key, priority: priority})
27422 this._decrease(index)
27423 return true
27424 }
27425 return false
27426}
27427
27428/**
27429 * Removes and returns the smallest key in the queue. Takes `O(log n)` time.
27430 */
27431PriorityQueue.prototype.removeMin = function () {
27432 this._swap(0, this._arr.length - 1)
27433 var min = this._arr.pop()
27434 delete this._keyIndices[min.key]
27435 this._heapify(0)
27436 return min.key
27437}
27438
27439/**
27440 * Decreases the priority for **key** to **priority**. If the new priority is
27441 * greater than the previous priority, this function will throw an Error.
27442 *
27443 * @param {Object} key the key for which to raise priority
27444 * @param {Number} priority the new priority for the key
27445 */
27446PriorityQueue.prototype.decrease = function (key, priority) {
27447 var index = this._keyIndices[key]
27448 if (priority > this._arr[index].priority) {
27449 throw new Error('New priority is greater than current priority. ' +
27450 'Key: ' + key + ' Old: ' + this._arr[index].priority + ' New: ' + priority)
27451 }
27452 this._arr[index].priority = priority
27453 this._decrease(index)
27454}
27455
27456PriorityQueue.prototype._heapify = function (i) {
27457 const arr = this._arr
27458 const l = 2 * i
27459 const r = l + 1
27460 let largest = i
27461 if (l < arr.length) {
27462 largest = arr[l].priority < arr[largest].priority ? l : largest
27463 if (r < arr.length) {
27464 largest = arr[r].priority < arr[largest].priority ? r : largest
27465 }
27466 if (largest !== i) {
27467 this._swap(i, largest)
27468 this._heapify(largest)
27469 }
27470 }
27471}
27472
27473PriorityQueue.prototype._decrease = function (index) {
27474 var arr = this._arr
27475 var priority = arr[index].priority
27476 var parent
27477 while (index !== 0) {
27478 parent = index >> 1
27479 if (arr[parent].priority < priority) {
27480 break
27481 }
27482 this._swap(index, parent)
27483 index = parent
27484 }
27485}
27486
27487PriorityQueue.prototype._swap = function (i, j) {
27488 var arr = this._arr
27489 var keyIndices = this._keyIndices
27490 var origArrI = arr[i]
27491 var origArrJ = arr[j]
27492 arr[i] = origArrJ
27493 arr[j] = origArrI
27494 keyIndices[origArrJ.key] = i
27495 keyIndices[origArrI.key] = j
27496}
27497
27498
27499/***/ }),
27500
27501/***/ "./node_modules/graphlibrary/lib/graph.js":
27502/*!************************************************!*\
27503 !*** ./node_modules/graphlibrary/lib/graph.js ***!
27504 \************************************************/
27505/*! no static exports found */
27506/***/ (function(module, exports, __webpack_require__) {
27507
27508const _ = __webpack_require__(/*! ./lodash */ "./node_modules/graphlibrary/lib/lodash.js")
27509
27510module.exports = Graph
27511
27512const DEFAULT_EDGE_NAME = '\x00'
27513const GRAPH_NODE = '\x00'
27514const EDGE_KEY_DELIM = '\x01'
27515
27516// Implementation notes:
27517//
27518// * Node id query functions should return string ids for the nodes
27519// * Edge id query functions should return an "edgeObj", edge object, that is
27520// composed of enough information to uniquely identify an edge: {v, w, name}.
27521// * Internally we use an "edgeId", a stringified form of the edgeObj, to
27522// reference edges. This is because we need a performant way to look these
27523// edges up and, object properties, which have string keys, are the closest
27524// we're going to get to a performant hashtable in JavaScript.
27525
27526function Graph (opts) {
27527 this._isDirected = _.has(opts, 'directed') ? opts.directed : true
27528 this._isMultigraph = _.has(opts, 'multigraph') ? opts.multigraph : false
27529 this._isCompound = _.has(opts, 'compound') ? opts.compound : false
27530
27531 // Label for the graph itself
27532 this._label = undefined
27533
27534 // Defaults to be set when creating a new node
27535 this._defaultNodeLabelFn = _.constant(undefined)
27536
27537 // Defaults to be set when creating a new edge
27538 this._defaultEdgeLabelFn = _.constant(undefined)
27539
27540 // v -> label
27541 this._nodes = {}
27542
27543 if (this._isCompound) {
27544 // v -> parent
27545 this._parent = {}
27546
27547 // v -> children
27548 this._children = {}
27549 this._children[GRAPH_NODE] = {}
27550 }
27551
27552 // v -> edgeObj
27553 this._in = {}
27554
27555 // u -> v -> Number
27556 this._preds = {}
27557
27558 // v -> edgeObj
27559 this._out = {}
27560
27561 // v -> w -> Number
27562 this._sucs = {}
27563
27564 // e -> edgeObj
27565 this._edgeObjs = {}
27566
27567 // e -> label
27568 this._edgeLabels = {}
27569}
27570
27571/* Number of nodes in the graph. Should only be changed by the implementation. */
27572Graph.prototype._nodeCount = 0
27573
27574/* Number of edges in the graph. Should only be changed by the implementation. */
27575Graph.prototype._edgeCount = 0
27576
27577/* === Graph functions ========= */
27578
27579Graph.prototype.isDirected = function () {
27580 return this._isDirected
27581}
27582
27583Graph.prototype.isMultigraph = function () {
27584 return this._isMultigraph
27585}
27586
27587Graph.prototype.isCompound = function () {
27588 return this._isCompound
27589}
27590
27591Graph.prototype.setGraph = function (label) {
27592 this._label = label
27593 return this
27594}
27595
27596Graph.prototype.graph = function () {
27597 return this._label
27598}
27599
27600/* === Node functions ========== */
27601
27602Graph.prototype.setDefaultNodeLabel = function (newDefault) {
27603 if (!_.isFunction(newDefault)) {
27604 newDefault = _.constant(newDefault)
27605 }
27606 this._defaultNodeLabelFn = newDefault
27607 return this
27608}
27609
27610Graph.prototype.nodeCount = function () {
27611 return this._nodeCount
27612}
27613
27614Graph.prototype.nodes = function () {
27615 return _.keys(this._nodes)
27616}
27617
27618Graph.prototype.sources = function () {
27619 var self = this
27620 return _.filter(this.nodes(), function (v) {
27621 return _.isEmpty(self._in[v])
27622 })
27623}
27624
27625Graph.prototype.sinks = function () {
27626 var self = this
27627 return _.filter(this.nodes(), function (v) {
27628 return _.isEmpty(self._out[v])
27629 })
27630}
27631
27632Graph.prototype.setNodes = function (vs, value) {
27633 var args = arguments
27634 var self = this
27635 _.each(vs, function (v) {
27636 if (args.length > 1) {
27637 self.setNode(v, value)
27638 } else {
27639 self.setNode(v)
27640 }
27641 })
27642 return this
27643}
27644
27645Graph.prototype.setNode = function (v, value) {
27646 if (_.has(this._nodes, v)) {
27647 if (arguments.length > 1) {
27648 this._nodes[v] = value
27649 }
27650 return this
27651 }
27652
27653 this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v)
27654 if (this._isCompound) {
27655 this._parent[v] = GRAPH_NODE
27656 this._children[v] = {}
27657 this._children[GRAPH_NODE][v] = true
27658 }
27659 this._in[v] = {}
27660 this._preds[v] = {}
27661 this._out[v] = {}
27662 this._sucs[v] = {}
27663 ++this._nodeCount
27664 return this
27665}
27666
27667Graph.prototype.node = function (v) {
27668 return this._nodes[v]
27669}
27670
27671Graph.prototype.hasNode = function (v) {
27672 return _.has(this._nodes, v)
27673}
27674
27675Graph.prototype.removeNode = function (v) {
27676 var self = this
27677 if (_.has(this._nodes, v)) {
27678 var removeEdge = function (e) { self.removeEdge(self._edgeObjs[e]) }
27679 delete this._nodes[v]
27680 if (this._isCompound) {
27681 this._removeFromParentsChildList(v)
27682 delete this._parent[v]
27683 _.each(this.children(v), function (child) {
27684 self.setParent(child)
27685 })
27686 delete this._children[v]
27687 }
27688 _.each(_.keys(this._in[v]), removeEdge)
27689 delete this._in[v]
27690 delete this._preds[v]
27691 _.each(_.keys(this._out[v]), removeEdge)
27692 delete this._out[v]
27693 delete this._sucs[v]
27694 --this._nodeCount
27695 }
27696 return this
27697}
27698
27699Graph.prototype.setParent = function (v, parent) {
27700 if (!this._isCompound) {
27701 throw new Error('Cannot set parent in a non-compound graph')
27702 }
27703
27704 if (_.isUndefined(parent)) {
27705 parent = GRAPH_NODE
27706 } else {
27707 // Coerce parent to string
27708 parent += ''
27709 for (var ancestor = parent;
27710 !_.isUndefined(ancestor);
27711 ancestor = this.parent(ancestor)) {
27712 if (ancestor === v) {
27713 throw new Error('Setting ' + parent + ' as parent of ' + v +
27714 ' would create a cycle')
27715 }
27716 }
27717
27718 this.setNode(parent)
27719 }
27720
27721 this.setNode(v)
27722 this._removeFromParentsChildList(v)
27723 this._parent[v] = parent
27724 this._children[parent][v] = true
27725 return this
27726}
27727
27728Graph.prototype._removeFromParentsChildList = function (v) {
27729 delete this._children[this._parent[v]][v]
27730}
27731
27732Graph.prototype.parent = function (v) {
27733 if (this._isCompound) {
27734 var parent = this._parent[v]
27735 if (parent !== GRAPH_NODE) {
27736 return parent
27737 }
27738 }
27739}
27740
27741Graph.prototype.children = function (v) {
27742 if (_.isUndefined(v)) {
27743 v = GRAPH_NODE
27744 }
27745
27746 if (this._isCompound) {
27747 var children = this._children[v]
27748 if (children) {
27749 return _.keys(children)
27750 }
27751 } else if (v === GRAPH_NODE) {
27752 return this.nodes()
27753 } else if (this.hasNode(v)) {
27754 return []
27755 }
27756}
27757
27758Graph.prototype.predecessors = function (v) {
27759 var predsV = this._preds[v]
27760 if (predsV) {
27761 return _.keys(predsV)
27762 }
27763}
27764
27765Graph.prototype.successors = function (v) {
27766 var sucsV = this._sucs[v]
27767 if (sucsV) {
27768 return _.keys(sucsV)
27769 }
27770}
27771
27772Graph.prototype.neighbors = function (v) {
27773 var preds = this.predecessors(v)
27774 if (preds) {
27775 return _.union(preds, this.successors(v))
27776 }
27777}
27778
27779Graph.prototype.isLeaf = function (v) {
27780 var neighbors
27781 if (this.isDirected()) {
27782 neighbors = this.successors(v)
27783 } else {
27784 neighbors = this.neighbors(v)
27785 }
27786 return neighbors.length === 0
27787}
27788
27789Graph.prototype.filterNodes = function (filter) {
27790 var copy = new this.constructor({
27791 directed: this._isDirected,
27792 multigraph: this._isMultigraph,
27793 compound: this._isCompound
27794 })
27795
27796 copy.setGraph(this.graph())
27797
27798 var self = this
27799 _.each(this._nodes, function (value, v) {
27800 if (filter(v)) {
27801 copy.setNode(v, value)
27802 }
27803 })
27804
27805 _.each(this._edgeObjs, function (e) {
27806 if (copy.hasNode(e.v) && copy.hasNode(e.w)) {
27807 copy.setEdge(e, self.edge(e))
27808 }
27809 })
27810
27811 var parents = {}
27812 function findParent (v) {
27813 var parent = self.parent(v)
27814 if (parent === undefined || copy.hasNode(parent)) {
27815 parents[v] = parent
27816 return parent
27817 } else if (parent in parents) {
27818 return parents[parent]
27819 } else {
27820 return findParent(parent)
27821 }
27822 }
27823
27824 if (this._isCompound) {
27825 _.each(copy.nodes(), function (v) {
27826 copy.setParent(v, findParent(v))
27827 })
27828 }
27829
27830 return copy
27831}
27832
27833/* === Edge functions ========== */
27834
27835Graph.prototype.setDefaultEdgeLabel = function (newDefault) {
27836 if (!_.isFunction(newDefault)) {
27837 newDefault = _.constant(newDefault)
27838 }
27839 this._defaultEdgeLabelFn = newDefault
27840 return this
27841}
27842
27843Graph.prototype.edgeCount = function () {
27844 return this._edgeCount
27845}
27846
27847Graph.prototype.edges = function () {
27848 return _.values(this._edgeObjs)
27849}
27850
27851Graph.prototype.setPath = function (vs, value) {
27852 const self = this
27853 const args = arguments
27854 _.reduce(vs, function (v, w) {
27855 if (args.length > 1) {
27856 self.setEdge(v, w, value)
27857 } else {
27858 self.setEdge(v, w)
27859 }
27860 return w
27861 })
27862 return this
27863}
27864
27865/*
27866 * setEdge(v, w, [value, [name]])
27867 * setEdge({ v, w, [name] }, [value])
27868 */
27869Graph.prototype.setEdge = function () {
27870 let v, w, name, value
27871 let valueSpecified = false
27872 const arg0 = arguments[0]
27873
27874 if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {
27875 v = arg0.v
27876 w = arg0.w
27877 name = arg0.name
27878 if (arguments.length === 2) {
27879 value = arguments[1]
27880 valueSpecified = true
27881 }
27882 } else {
27883 v = arg0
27884 w = arguments[1]
27885 name = arguments[3]
27886 if (arguments.length > 2) {
27887 value = arguments[2]
27888 valueSpecified = true
27889 }
27890 }
27891
27892 v = '' + v
27893 w = '' + w
27894 if (!_.isUndefined(name)) {
27895 name = '' + name
27896 }
27897
27898 var e = edgeArgsToId(this._isDirected, v, w, name)
27899 if (_.has(this._edgeLabels, e)) {
27900 if (valueSpecified) {
27901 this._edgeLabels[e] = value
27902 }
27903 return this
27904 }
27905
27906 if (!_.isUndefined(name) && !this._isMultigraph) {
27907 throw new Error('Cannot set a named edge when isMultigraph = false')
27908 }
27909
27910 // It didn't exist, so we need to create it.
27911 // First ensure the nodes exist.
27912 this.setNode(v)
27913 this.setNode(w)
27914
27915 this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name)
27916
27917 var edgeObj = edgeArgsToObj(this._isDirected, v, w, name)
27918 // Ensure we add undirected edges in a consistent way.
27919 v = edgeObj.v
27920 w = edgeObj.w
27921
27922 Object.freeze(edgeObj)
27923 this._edgeObjs[e] = edgeObj
27924 incrementOrInitEntry(this._preds[w], v)
27925 incrementOrInitEntry(this._sucs[v], w)
27926 this._in[w][e] = edgeObj
27927 this._out[v][e] = edgeObj
27928 this._edgeCount++
27929 return this
27930}
27931
27932Graph.prototype.edge = function (v, w, name) {
27933 var e = (arguments.length === 1
27934 ? edgeObjToId(this._isDirected, arguments[0])
27935 : edgeArgsToId(this._isDirected, v, w, name))
27936 return this._edgeLabels[e]
27937}
27938
27939Graph.prototype.hasEdge = function (v, w, name) {
27940 var e = (arguments.length === 1
27941 ? edgeObjToId(this._isDirected, arguments[0])
27942 : edgeArgsToId(this._isDirected, v, w, name))
27943 return _.has(this._edgeLabels, e)
27944}
27945
27946Graph.prototype.removeEdge = function (v, w, name) {
27947 const e = (arguments.length === 1
27948 ? edgeObjToId(this._isDirected, arguments[0])
27949 : edgeArgsToId(this._isDirected, v, w, name))
27950 const edge = this._edgeObjs[e]
27951 if (edge) {
27952 v = edge.v
27953 w = edge.w
27954 delete this._edgeLabels[e]
27955 delete this._edgeObjs[e]
27956 decrementOrRemoveEntry(this._preds[w], v)
27957 decrementOrRemoveEntry(this._sucs[v], w)
27958 delete this._in[w][e]
27959 delete this._out[v][e]
27960 this._edgeCount--
27961 }
27962 return this
27963}
27964
27965Graph.prototype.inEdges = function (v, u) {
27966 var inV = this._in[v]
27967 if (inV) {
27968 var edges = _.values(inV)
27969 if (!u) {
27970 return edges
27971 }
27972 return _.filter(edges, function (edge) { return edge.v === u })
27973 }
27974}
27975
27976Graph.prototype.outEdges = function (v, w) {
27977 var outV = this._out[v]
27978 if (outV) {
27979 var edges = _.values(outV)
27980 if (!w) {
27981 return edges
27982 }
27983 return _.filter(edges, function (edge) { return edge.w === w })
27984 }
27985}
27986
27987Graph.prototype.nodeEdges = function (v, w) {
27988 var inEdges = this.inEdges(v, w)
27989 if (inEdges) {
27990 return inEdges.concat(this.outEdges(v, w))
27991 }
27992}
27993
27994function incrementOrInitEntry (map, k) {
27995 if (map[k]) {
27996 map[k]++
27997 } else {
27998 map[k] = 1
27999 }
28000}
28001
28002function decrementOrRemoveEntry (map, k) {
28003 if (!--map[k]) { delete map[k] }
28004}
28005
28006function edgeArgsToId (isDirected, v_, w_, name) {
28007 var v = '' + v_
28008 var w = '' + w_
28009 if (!isDirected && v > w) {
28010 var tmp = v
28011 v = w
28012 w = tmp
28013 }
28014 return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM +
28015 (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name)
28016}
28017
28018function edgeArgsToObj (isDirected, v_, w_, name) {
28019 var v = '' + v_
28020 var w = '' + w_
28021 if (!isDirected && v > w) {
28022 var tmp = v
28023 v = w
28024 w = tmp
28025 }
28026 var edgeObj = { v: v, w: w }
28027 if (name) {
28028 edgeObj.name = name
28029 }
28030 return edgeObj
28031}
28032
28033function edgeObjToId (isDirected, edgeObj) {
28034 return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name)
28035}
28036
28037
28038/***/ }),
28039
28040/***/ "./node_modules/graphlibrary/lib/json.js":
28041/*!***********************************************!*\
28042 !*** ./node_modules/graphlibrary/lib/json.js ***!
28043 \***********************************************/
28044/*! no static exports found */
28045/***/ (function(module, exports, __webpack_require__) {
28046
28047const _ = __webpack_require__(/*! ./lodash */ "./node_modules/graphlibrary/lib/lodash.js")
28048const Graph = __webpack_require__(/*! ./graph */ "./node_modules/graphlibrary/lib/graph.js")
28049
28050module.exports = {
28051 write: write,
28052 read: read
28053}
28054
28055function write (g) {
28056 var json = {
28057 options: {
28058 directed: g.isDirected(),
28059 multigraph: g.isMultigraph(),
28060 compound: g.isCompound()
28061 },
28062 nodes: writeNodes(g),
28063 edges: writeEdges(g)
28064 }
28065 if (!_.isUndefined(g.graph())) {
28066 json.value = _.clone(g.graph())
28067 }
28068 return json
28069}
28070
28071function writeNodes (g) {
28072 return _.map(g.nodes(), function (v) {
28073 const nodeValue = g.node(v)
28074 const parent = g.parent(v)
28075 const node = { v: v }
28076 if (!_.isUndefined(nodeValue)) {
28077 node.value = nodeValue
28078 }
28079 if (!_.isUndefined(parent)) {
28080 node.parent = parent
28081 }
28082 return node
28083 })
28084}
28085
28086function writeEdges (g) {
28087 return _.map(g.edges(), function (e) {
28088 const edgeValue = g.edge(e)
28089 const edge = { v: e.v, w: e.w }
28090 if (!_.isUndefined(e.name)) {
28091 edge.name = e.name
28092 }
28093 if (!_.isUndefined(edgeValue)) {
28094 edge.value = edgeValue
28095 }
28096 return edge
28097 })
28098}
28099
28100function read (json) {
28101 var g = new Graph(json.options).setGraph(json.value)
28102 _.each(json.nodes, function (entry) {
28103 g.setNode(entry.v, entry.value)
28104 if (entry.parent) {
28105 g.setParent(entry.v, entry.parent)
28106 }
28107 })
28108 _.each(json.edges, function (entry) {
28109 g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value)
28110 })
28111 return g
28112}
28113
28114
28115/***/ }),
28116
28117/***/ "./node_modules/graphlibrary/lib/lodash.js":
28118/*!*************************************************!*\
28119 !*** ./node_modules/graphlibrary/lib/lodash.js ***!
28120 \*************************************************/
28121/*! no static exports found */
28122/***/ (function(module, exports, __webpack_require__) {
28123
28124/* global window */
28125
28126var lodash
28127
28128if (true) {
28129 try {
28130 lodash = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js")
28131 } catch (e) {}
28132}
28133
28134if (!lodash) {
28135 lodash = window._
28136}
28137
28138module.exports = lodash
28139
28140
28141/***/ }),
28142
28143/***/ "./node_modules/he/he.js":
28144/*!*******************************!*\
28145 !*** ./node_modules/he/he.js ***!
28146 \*******************************/
28147/*! no static exports found */
28148/***/ (function(module, exports, __webpack_require__) {
28149
28150/* WEBPACK VAR INJECTION */(function(module, global) {/*! https://mths.be/he v1.1.1 by @mathias | MIT license */
28151;(function(root) {
28152
28153 // Detect free variables `exports`.
28154 var freeExports = typeof exports == 'object' && exports;
28155
28156 // Detect free variable `module`.
28157 var freeModule = typeof module == 'object' && module &&
28158 module.exports == freeExports && module;
28159
28160 // Detect free variable `global`, from Node.js or Browserified code,
28161 // and use it as `root`.
28162 var freeGlobal = typeof global == 'object' && global;
28163 if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
28164 root = freeGlobal;
28165 }
28166
28167 /*--------------------------------------------------------------------------*/
28168
28169 // All astral symbols.
28170 var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
28171 // All ASCII symbols (not just printable ASCII) except those listed in the
28172 // first column of the overrides table.
28173 // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides
28174 var regexAsciiWhitelist = /[\x01-\x7F]/g;
28175 // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
28176 // code points listed in the first column of the overrides table on
28177 // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.
28178 var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
28179
28180 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;
28181 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'};
28182
28183 var regexEscape = /["&'<>`]/g;
28184 var escapeMap = {
28185 '"': '&quot;',
28186 '&': '&amp;',
28187 '\'': '&#x27;',
28188 '<': '&lt;',
28189 // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
28190 // following is not strictly necessary unless it’s part of a tag or an
28191 // unquoted attribute value. We’re only escaping it to support those
28192 // situations, and for XML support.
28193 '>': '&gt;',
28194 // In Internet Explorer ≤ 8, the backtick character can be used
28195 // to break out of (un)quoted attribute values or HTML comments.
28196 // See http://html5sec.org/#102, http://html5sec.org/#108, and
28197 // http://html5sec.org/#133.
28198 '`': '&#x60;'
28199 };
28200
28201 var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
28202 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]/;
28203 var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(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])?/g;
28204 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'};
28205 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'};
28206 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'};
28207 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];
28208
28209 /*--------------------------------------------------------------------------*/
28210
28211 var stringFromCharCode = String.fromCharCode;
28212
28213 var object = {};
28214 var hasOwnProperty = object.hasOwnProperty;
28215 var has = function(object, propertyName) {
28216 return hasOwnProperty.call(object, propertyName);
28217 };
28218
28219 var contains = function(array, value) {
28220 var index = -1;
28221 var length = array.length;
28222 while (++index < length) {
28223 if (array[index] == value) {
28224 return true;
28225 }
28226 }
28227 return false;
28228 };
28229
28230 var merge = function(options, defaults) {
28231 if (!options) {
28232 return defaults;
28233 }
28234 var result = {};
28235 var key;
28236 for (key in defaults) {
28237 // A `hasOwnProperty` check is not needed here, since only recognized
28238 // option names are used anyway. Any others are ignored.
28239 result[key] = has(options, key) ? options[key] : defaults[key];
28240 }
28241 return result;
28242 };
28243
28244 // Modified version of `ucs2encode`; see https://mths.be/punycode.
28245 var codePointToSymbol = function(codePoint, strict) {
28246 var output = '';
28247 if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
28248 // See issue #4:
28249 // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
28250 // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
28251 // REPLACEMENT CHARACTER.”
28252 if (strict) {
28253 parseError('character reference outside the permissible Unicode range');
28254 }
28255 return '\uFFFD';
28256 }
28257 if (has(decodeMapNumeric, codePoint)) {
28258 if (strict) {
28259 parseError('disallowed character reference');
28260 }
28261 return decodeMapNumeric[codePoint];
28262 }
28263 if (strict && contains(invalidReferenceCodePoints, codePoint)) {
28264 parseError('disallowed character reference');
28265 }
28266 if (codePoint > 0xFFFF) {
28267 codePoint -= 0x10000;
28268 output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);
28269 codePoint = 0xDC00 | codePoint & 0x3FF;
28270 }
28271 output += stringFromCharCode(codePoint);
28272 return output;
28273 };
28274
28275 var hexEscape = function(codePoint) {
28276 return '&#x' + codePoint.toString(16).toUpperCase() + ';';
28277 };
28278
28279 var decEscape = function(codePoint) {
28280 return '&#' + codePoint + ';';
28281 };
28282
28283 var parseError = function(message) {
28284 throw Error('Parse error: ' + message);
28285 };
28286
28287 /*--------------------------------------------------------------------------*/
28288
28289 var encode = function(string, options) {
28290 options = merge(options, encode.options);
28291 var strict = options.strict;
28292 if (strict && regexInvalidRawCodePoint.test(string)) {
28293 parseError('forbidden code point');
28294 }
28295 var encodeEverything = options.encodeEverything;
28296 var useNamedReferences = options.useNamedReferences;
28297 var allowUnsafeSymbols = options.allowUnsafeSymbols;
28298 var escapeCodePoint = options.decimal ? decEscape : hexEscape;
28299
28300 var escapeBmpSymbol = function(symbol) {
28301 return escapeCodePoint(symbol.charCodeAt(0));
28302 };
28303
28304 if (encodeEverything) {
28305 // Encode ASCII symbols.
28306 string = string.replace(regexAsciiWhitelist, function(symbol) {
28307 // Use named references if requested & possible.
28308 if (useNamedReferences && has(encodeMap, symbol)) {
28309 return '&' + encodeMap[symbol] + ';';
28310 }
28311 return escapeBmpSymbol(symbol);
28312 });
28313 // Shorten a few escapes that represent two symbols, of which at least one
28314 // is within the ASCII range.
28315 if (useNamedReferences) {
28316 string = string
28317 .replace(/&gt;\u20D2/g, '&nvgt;')
28318 .replace(/&lt;\u20D2/g, '&nvlt;')
28319 .replace(/&#x66;&#x6A;/g, '&fjlig;');
28320 }
28321 // Encode non-ASCII symbols.
28322 if (useNamedReferences) {
28323 // Encode non-ASCII symbols that can be replaced with a named reference.
28324 string = string.replace(regexEncodeNonAscii, function(string) {
28325 // Note: there is no need to check `has(encodeMap, string)` here.
28326 return '&' + encodeMap[string] + ';';
28327 });
28328 }
28329 // Note: any remaining non-ASCII symbols are handled outside of the `if`.
28330 } else if (useNamedReferences) {
28331 // Apply named character references.
28332 // Encode `<>"'&` using named character references.
28333 if (!allowUnsafeSymbols) {
28334 string = string.replace(regexEscape, function(string) {
28335 return '&' + encodeMap[string] + ';'; // no need to check `has()` here
28336 });
28337 }
28338 // Shorten escapes that represent two symbols, of which at least one is
28339 // `<>"'&`.
28340 string = string
28341 .replace(/&gt;\u20D2/g, '&nvgt;')
28342 .replace(/&lt;\u20D2/g, '&nvlt;');
28343 // Encode non-ASCII symbols that can be replaced with a named reference.
28344 string = string.replace(regexEncodeNonAscii, function(string) {
28345 // Note: there is no need to check `has(encodeMap, string)` here.
28346 return '&' + encodeMap[string] + ';';
28347 });
28348 } else if (!allowUnsafeSymbols) {
28349 // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
28350 // using named character references.
28351 string = string.replace(regexEscape, escapeBmpSymbol);
28352 }
28353 return string
28354 // Encode astral symbols.
28355 .replace(regexAstralSymbols, function($0) {
28356 // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
28357 var high = $0.charCodeAt(0);
28358 var low = $0.charCodeAt(1);
28359 var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
28360 return escapeCodePoint(codePoint);
28361 })
28362 // Encode any remaining BMP symbols that are not printable ASCII symbols
28363 // using a hexadecimal escape.
28364 .replace(regexBmpWhitelist, escapeBmpSymbol);
28365 };
28366 // Expose default options (so they can be overridden globally).
28367 encode.options = {
28368 'allowUnsafeSymbols': false,
28369 'encodeEverything': false,
28370 'strict': false,
28371 'useNamedReferences': false,
28372 'decimal' : false
28373 };
28374
28375 var decode = function(html, options) {
28376 options = merge(options, decode.options);
28377 var strict = options.strict;
28378 if (strict && regexInvalidEntity.test(html)) {
28379 parseError('malformed character reference');
28380 }
28381 return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) {
28382 var codePoint;
28383 var semicolon;
28384 var decDigits;
28385 var hexDigits;
28386 var reference;
28387 var next;
28388 if ($1) {
28389 // Decode decimal escapes, e.g. `&#119558;`.
28390 decDigits = $1;
28391 semicolon = $2;
28392 if (strict && !semicolon) {
28393 parseError('character reference was not terminated by a semicolon');
28394 }
28395 codePoint = parseInt(decDigits, 10);
28396 return codePointToSymbol(codePoint, strict);
28397 }
28398 if ($3) {
28399 // Decode hexadecimal escapes, e.g. `&#x1D306;`.
28400 hexDigits = $3;
28401 semicolon = $4;
28402 if (strict && !semicolon) {
28403 parseError('character reference was not terminated by a semicolon');
28404 }
28405 codePoint = parseInt(hexDigits, 16);
28406 return codePointToSymbol(codePoint, strict);
28407 }
28408 if ($5) {
28409 // Decode named character references with trailing `;`, e.g. `&copy;`.
28410 reference = $5;
28411 if (has(decodeMap, reference)) {
28412 return decodeMap[reference];
28413 } else {
28414 // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands
28415 if (strict) {
28416 parseError(
28417 'named character reference was not terminated by a semicolon'
28418 );
28419 }
28420 return $0;
28421 }
28422 }
28423 // If we’re still here, it’s a legacy reference for sure. No need for an
28424 // extra `if` check.
28425 // Decode named character references without trailing `;`, e.g. `&amp`
28426 // This is only a parse error if it gets converted to `&`, or if it is
28427 // followed by `=` in an attribute context.
28428 reference = $6;
28429 next = $7;
28430 if (next && options.isAttributeValue) {
28431 if (strict && next == '=') {
28432 parseError('`&` did not start a character reference');
28433 }
28434 return $0;
28435 } else {
28436 if (strict) {
28437 parseError(
28438 'named character reference was not terminated by a semicolon'
28439 );
28440 }
28441 // Note: there is no need to check `has(decodeMapLegacy, reference)`.
28442 return decodeMapLegacy[reference] + (next || '');
28443 }
28444 });
28445 };
28446 // Expose default options (so they can be overridden globally).
28447 decode.options = {
28448 'isAttributeValue': false,
28449 'strict': false
28450 };
28451
28452 var escape = function(string) {
28453 return string.replace(regexEscape, function($0) {
28454 // Note: there is no need to check `has(escapeMap, $0)` here.
28455 return escapeMap[$0];
28456 });
28457 };
28458
28459 /*--------------------------------------------------------------------------*/
28460
28461 var he = {
28462 'version': '1.1.1',
28463 'encode': encode,
28464 'decode': decode,
28465 'escape': escape,
28466 'unescape': decode
28467 };
28468
28469 // Some AMD build optimizers, like r.js, check for specific condition patterns
28470 // like the following:
28471 if (
28472 typeof define == 'function' &&
28473 typeof define.amd == 'object' &&
28474 define.amd
28475 ) {
28476 define(function() {
28477 return he;
28478 });
28479 } else if (freeExports && !freeExports.nodeType) {
28480 if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+
28481 freeModule.exports = he;
28482 } else { // in Narwhal or RingoJS v0.7.0-
28483 for (var key in he) {
28484 has(he, key) && (freeExports[key] = he[key]);
28485 }
28486 }
28487 } else { // in Rhino or a web browser
28488 root.he = he;
28489 }
28490
28491}(this));
28492
28493/* 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")))
28494
28495/***/ }),
28496
28497/***/ "./node_modules/lodash/lodash.js":
28498/*!***************************************!*\
28499 !*** ./node_modules/lodash/lodash.js ***!
28500 \***************************************/
28501/*! no static exports found */
28502/***/ (function(module, exports, __webpack_require__) {
28503
28504/* WEBPACK VAR INJECTION */(function(global, module) {/**
28505 * @license
28506 * Lodash <https://lodash.com/>
28507 * Copyright JS Foundation and other contributors <https://js.foundation/>
28508 * Released under MIT license <https://lodash.com/license>
28509 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
28510 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
28511 */
28512;(function() {
28513
28514 /** Used as a safe reference for `undefined` in pre-ES5 environments. */
28515 var undefined;
28516
28517 /** Used as the semantic version number. */
28518 var VERSION = '4.17.5';
28519
28520 /** Used as the size to enable large array optimizations. */
28521 var LARGE_ARRAY_SIZE = 200;
28522
28523 /** Error message constants. */
28524 var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',
28525 FUNC_ERROR_TEXT = 'Expected a function';
28526
28527 /** Used to stand-in for `undefined` hash values. */
28528 var HASH_UNDEFINED = '__lodash_hash_undefined__';
28529
28530 /** Used as the maximum memoize cache size. */
28531 var MAX_MEMOIZE_SIZE = 500;
28532
28533 /** Used as the internal argument placeholder. */
28534 var PLACEHOLDER = '__lodash_placeholder__';
28535
28536 /** Used to compose bitmasks for cloning. */
28537 var CLONE_DEEP_FLAG = 1,
28538 CLONE_FLAT_FLAG = 2,
28539 CLONE_SYMBOLS_FLAG = 4;
28540
28541 /** Used to compose bitmasks for value comparisons. */
28542 var COMPARE_PARTIAL_FLAG = 1,
28543 COMPARE_UNORDERED_FLAG = 2;
28544
28545 /** Used to compose bitmasks for function metadata. */
28546 var WRAP_BIND_FLAG = 1,
28547 WRAP_BIND_KEY_FLAG = 2,
28548 WRAP_CURRY_BOUND_FLAG = 4,
28549 WRAP_CURRY_FLAG = 8,
28550 WRAP_CURRY_RIGHT_FLAG = 16,
28551 WRAP_PARTIAL_FLAG = 32,
28552 WRAP_PARTIAL_RIGHT_FLAG = 64,
28553 WRAP_ARY_FLAG = 128,
28554 WRAP_REARG_FLAG = 256,
28555 WRAP_FLIP_FLAG = 512;
28556
28557 /** Used as default options for `_.truncate`. */
28558 var DEFAULT_TRUNC_LENGTH = 30,
28559 DEFAULT_TRUNC_OMISSION = '...';
28560
28561 /** Used to detect hot functions by number of calls within a span of milliseconds. */
28562 var HOT_COUNT = 800,
28563 HOT_SPAN = 16;
28564
28565 /** Used to indicate the type of lazy iteratees. */
28566 var LAZY_FILTER_FLAG = 1,
28567 LAZY_MAP_FLAG = 2,
28568 LAZY_WHILE_FLAG = 3;
28569
28570 /** Used as references for various `Number` constants. */
28571 var INFINITY = 1 / 0,
28572 MAX_SAFE_INTEGER = 9007199254740991,
28573 MAX_INTEGER = 1.7976931348623157e+308,
28574 NAN = 0 / 0;
28575
28576 /** Used as references for the maximum length and index of an array. */
28577 var MAX_ARRAY_LENGTH = 4294967295,
28578 MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,
28579 HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
28580
28581 /** Used to associate wrap methods with their bit flags. */
28582 var wrapFlags = [
28583 ['ary', WRAP_ARY_FLAG],
28584 ['bind', WRAP_BIND_FLAG],
28585 ['bindKey', WRAP_BIND_KEY_FLAG],
28586 ['curry', WRAP_CURRY_FLAG],
28587 ['curryRight', WRAP_CURRY_RIGHT_FLAG],
28588 ['flip', WRAP_FLIP_FLAG],
28589 ['partial', WRAP_PARTIAL_FLAG],
28590 ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],
28591 ['rearg', WRAP_REARG_FLAG]
28592 ];
28593
28594 /** `Object#toString` result references. */
28595 var argsTag = '[object Arguments]',
28596 arrayTag = '[object Array]',
28597 asyncTag = '[object AsyncFunction]',
28598 boolTag = '[object Boolean]',
28599 dateTag = '[object Date]',
28600 domExcTag = '[object DOMException]',
28601 errorTag = '[object Error]',
28602 funcTag = '[object Function]',
28603 genTag = '[object GeneratorFunction]',
28604 mapTag = '[object Map]',
28605 numberTag = '[object Number]',
28606 nullTag = '[object Null]',
28607 objectTag = '[object Object]',
28608 promiseTag = '[object Promise]',
28609 proxyTag = '[object Proxy]',
28610 regexpTag = '[object RegExp]',
28611 setTag = '[object Set]',
28612 stringTag = '[object String]',
28613 symbolTag = '[object Symbol]',
28614 undefinedTag = '[object Undefined]',
28615 weakMapTag = '[object WeakMap]',
28616 weakSetTag = '[object WeakSet]';
28617
28618 var arrayBufferTag = '[object ArrayBuffer]',
28619 dataViewTag = '[object DataView]',
28620 float32Tag = '[object Float32Array]',
28621 float64Tag = '[object Float64Array]',
28622 int8Tag = '[object Int8Array]',
28623 int16Tag = '[object Int16Array]',
28624 int32Tag = '[object Int32Array]',
28625 uint8Tag = '[object Uint8Array]',
28626 uint8ClampedTag = '[object Uint8ClampedArray]',
28627 uint16Tag = '[object Uint16Array]',
28628 uint32Tag = '[object Uint32Array]';
28629
28630 /** Used to match empty string literals in compiled template source. */
28631 var reEmptyStringLeading = /\b__p \+= '';/g,
28632 reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
28633 reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
28634
28635 /** Used to match HTML entities and HTML characters. */
28636 var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,
28637 reUnescapedHtml = /[&<>"']/g,
28638 reHasEscapedHtml = RegExp(reEscapedHtml.source),
28639 reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
28640
28641 /** Used to match template delimiters. */
28642 var reEscape = /<%-([\s\S]+?)%>/g,
28643 reEvaluate = /<%([\s\S]+?)%>/g,
28644 reInterpolate = /<%=([\s\S]+?)%>/g;
28645
28646 /** Used to match property names within property paths. */
28647 var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
28648 reIsPlainProp = /^\w*$/,
28649 rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
28650
28651 /**
28652 * Used to match `RegExp`
28653 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
28654 */
28655 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
28656 reHasRegExpChar = RegExp(reRegExpChar.source);
28657
28658 /** Used to match leading and trailing whitespace. */
28659 var reTrim = /^\s+|\s+$/g,
28660 reTrimStart = /^\s+/,
28661 reTrimEnd = /\s+$/;
28662
28663 /** Used to match wrap detail comments. */
28664 var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,
28665 reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/,
28666 reSplitDetails = /,? & /;
28667
28668 /** Used to match words composed of alphanumeric characters. */
28669 var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
28670
28671 /** Used to match backslashes in property paths. */
28672 var reEscapeChar = /\\(\\)?/g;
28673
28674 /**
28675 * Used to match
28676 * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
28677 */
28678 var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
28679
28680 /** Used to match `RegExp` flags from their coerced string values. */
28681 var reFlags = /\w*$/;
28682
28683 /** Used to detect bad signed hexadecimal string values. */
28684 var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
28685
28686 /** Used to detect binary string values. */
28687 var reIsBinary = /^0b[01]+$/i;
28688
28689 /** Used to detect host constructors (Safari). */
28690 var reIsHostCtor = /^\[object .+?Constructor\]$/;
28691
28692 /** Used to detect octal string values. */
28693 var reIsOctal = /^0o[0-7]+$/i;
28694
28695 /** Used to detect unsigned integer values. */
28696 var reIsUint = /^(?:0|[1-9]\d*)$/;
28697
28698 /** Used to match Latin Unicode letters (excluding mathematical operators). */
28699 var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
28700
28701 /** Used to ensure capturing order of template delimiters. */
28702 var reNoMatch = /($^)/;
28703
28704 /** Used to match unescaped characters in compiled string literals. */
28705 var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
28706
28707 /** Used to compose unicode character classes. */
28708 var rsAstralRange = '\\ud800-\\udfff',
28709 rsComboMarksRange = '\\u0300-\\u036f',
28710 reComboHalfMarksRange = '\\ufe20-\\ufe2f',
28711 rsComboSymbolsRange = '\\u20d0-\\u20ff',
28712 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
28713 rsDingbatRange = '\\u2700-\\u27bf',
28714 rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
28715 rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
28716 rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf',
28717 rsPunctuationRange = '\\u2000-\\u206f',
28718 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',
28719 rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde',
28720 rsVarRange = '\\ufe0e\\ufe0f',
28721 rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
28722
28723 /** Used to compose unicode capture groups. */
28724 var rsApos = "['\u2019]",
28725 rsAstral = '[' + rsAstralRange + ']',
28726 rsBreak = '[' + rsBreakRange + ']',
28727 rsCombo = '[' + rsComboRange + ']',
28728 rsDigits = '\\d+',
28729 rsDingbat = '[' + rsDingbatRange + ']',
28730 rsLower = '[' + rsLowerRange + ']',
28731 rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',
28732 rsFitz = '\\ud83c[\\udffb-\\udfff]',
28733 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
28734 rsNonAstral = '[^' + rsAstralRange + ']',
28735 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
28736 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
28737 rsUpper = '[' + rsUpperRange + ']',
28738 rsZWJ = '\\u200d';
28739
28740 /** Used to compose unicode regexes. */
28741 var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',
28742 rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',
28743 rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
28744 rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
28745 reOptMod = rsModifier + '?',
28746 rsOptVar = '[' + rsVarRange + ']?',
28747 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
28748 rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])',
28749 rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])',
28750 rsSeq = rsOptVar + reOptMod + rsOptJoin,
28751 rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
28752 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
28753
28754 /** Used to match apostrophes. */
28755 var reApos = RegExp(rsApos, 'g');
28756
28757 /**
28758 * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
28759 * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
28760 */
28761 var reComboMark = RegExp(rsCombo, 'g');
28762
28763 /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
28764 var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
28765
28766 /** Used to match complex or compound words. */
28767 var reUnicodeWord = RegExp([
28768 rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
28769 rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',
28770 rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,
28771 rsUpper + '+' + rsOptContrUpper,
28772 rsOrdUpper,
28773 rsOrdLower,
28774 rsDigits,
28775 rsEmoji
28776 ].join('|'), 'g');
28777
28778 /** 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/). */
28779 var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
28780
28781 /** Used to detect strings that need a more robust regexp to match words. */
28782 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 ]/;
28783
28784 /** Used to assign default `context` object properties. */
28785 var contextProps = [
28786 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',
28787 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',
28788 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',
28789 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
28790 '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'
28791 ];
28792
28793 /** Used to make template sourceURLs easier to identify. */
28794 var templateCounter = -1;
28795
28796 /** Used to identify `toStringTag` values of typed arrays. */
28797 var typedArrayTags = {};
28798 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
28799 typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
28800 typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
28801 typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
28802 typedArrayTags[uint32Tag] = true;
28803 typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
28804 typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
28805 typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
28806 typedArrayTags[errorTag] = typedArrayTags[funcTag] =
28807 typedArrayTags[mapTag] = typedArrayTags[numberTag] =
28808 typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
28809 typedArrayTags[setTag] = typedArrayTags[stringTag] =
28810 typedArrayTags[weakMapTag] = false;
28811
28812 /** Used to identify `toStringTag` values supported by `_.clone`. */
28813 var cloneableTags = {};
28814 cloneableTags[argsTag] = cloneableTags[arrayTag] =
28815 cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
28816 cloneableTags[boolTag] = cloneableTags[dateTag] =
28817 cloneableTags[float32Tag] = cloneableTags[float64Tag] =
28818 cloneableTags[int8Tag] = cloneableTags[int16Tag] =
28819 cloneableTags[int32Tag] = cloneableTags[mapTag] =
28820 cloneableTags[numberTag] = cloneableTags[objectTag] =
28821 cloneableTags[regexpTag] = cloneableTags[setTag] =
28822 cloneableTags[stringTag] = cloneableTags[symbolTag] =
28823 cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
28824 cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
28825 cloneableTags[errorTag] = cloneableTags[funcTag] =
28826 cloneableTags[weakMapTag] = false;
28827
28828 /** Used to map Latin Unicode letters to basic Latin letters. */
28829 var deburredLetters = {
28830 // Latin-1 Supplement block.
28831 '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A',
28832 '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a',
28833 '\xc7': 'C', '\xe7': 'c',
28834 '\xd0': 'D', '\xf0': 'd',
28835 '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E',
28836 '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e',
28837 '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I',
28838 '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i',
28839 '\xd1': 'N', '\xf1': 'n',
28840 '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O',
28841 '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o',
28842 '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U',
28843 '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u',
28844 '\xdd': 'Y', '\xfd': 'y', '\xff': 'y',
28845 '\xc6': 'Ae', '\xe6': 'ae',
28846 '\xde': 'Th', '\xfe': 'th',
28847 '\xdf': 'ss',
28848 // Latin Extended-A block.
28849 '\u0100': 'A', '\u0102': 'A', '\u0104': 'A',
28850 '\u0101': 'a', '\u0103': 'a', '\u0105': 'a',
28851 '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C',
28852 '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c',
28853 '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd',
28854 '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E',
28855 '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e',
28856 '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G',
28857 '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g',
28858 '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h',
28859 '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I',
28860 '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i',
28861 '\u0134': 'J', '\u0135': 'j',
28862 '\u0136': 'K', '\u0137': 'k', '\u0138': 'k',
28863 '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L',
28864 '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l',
28865 '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N',
28866 '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n',
28867 '\u014c': 'O', '\u014e': 'O', '\u0150': 'O',
28868 '\u014d': 'o', '\u014f': 'o', '\u0151': 'o',
28869 '\u0154': 'R', '\u0156': 'R', '\u0158': 'R',
28870 '\u0155': 'r', '\u0157': 'r', '\u0159': 'r',
28871 '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S',
28872 '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's',
28873 '\u0162': 'T', '\u0164': 'T', '\u0166': 'T',
28874 '\u0163': 't', '\u0165': 't', '\u0167': 't',
28875 '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U',
28876 '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u',
28877 '\u0174': 'W', '\u0175': 'w',
28878 '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y',
28879 '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z',
28880 '\u017a': 'z', '\u017c': 'z', '\u017e': 'z',
28881 '\u0132': 'IJ', '\u0133': 'ij',
28882 '\u0152': 'Oe', '\u0153': 'oe',
28883 '\u0149': "'n", '\u017f': 's'
28884 };
28885
28886 /** Used to map characters to HTML entities. */
28887 var htmlEscapes = {
28888 '&': '&amp;',
28889 '<': '&lt;',
28890 '>': '&gt;',
28891 '"': '&quot;',
28892 "'": '&#39;'
28893 };
28894
28895 /** Used to map HTML entities to characters. */
28896 var htmlUnescapes = {
28897 '&amp;': '&',
28898 '&lt;': '<',
28899 '&gt;': '>',
28900 '&quot;': '"',
28901 '&#39;': "'"
28902 };
28903
28904 /** Used to escape characters for inclusion in compiled string literals. */
28905 var stringEscapes = {
28906 '\\': '\\',
28907 "'": "'",
28908 '\n': 'n',
28909 '\r': 'r',
28910 '\u2028': 'u2028',
28911 '\u2029': 'u2029'
28912 };
28913
28914 /** Built-in method references without a dependency on `root`. */
28915 var freeParseFloat = parseFloat,
28916 freeParseInt = parseInt;
28917
28918 /** Detect free variable `global` from Node.js. */
28919 var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
28920
28921 /** Detect free variable `self`. */
28922 var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
28923
28924 /** Used as a reference to the global object. */
28925 var root = freeGlobal || freeSelf || Function('return this')();
28926
28927 /** Detect free variable `exports`. */
28928 var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
28929
28930 /** Detect free variable `module`. */
28931 var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
28932
28933 /** Detect the popular CommonJS extension `module.exports`. */
28934 var moduleExports = freeModule && freeModule.exports === freeExports;
28935
28936 /** Detect free variable `process` from Node.js. */
28937 var freeProcess = moduleExports && freeGlobal.process;
28938
28939 /** Used to access faster Node.js helpers. */
28940 var nodeUtil = (function() {
28941 try {
28942 return freeProcess && freeProcess.binding && freeProcess.binding('util');
28943 } catch (e) {}
28944 }());
28945
28946 /* Node.js helper references. */
28947 var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,
28948 nodeIsDate = nodeUtil && nodeUtil.isDate,
28949 nodeIsMap = nodeUtil && nodeUtil.isMap,
28950 nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,
28951 nodeIsSet = nodeUtil && nodeUtil.isSet,
28952 nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
28953
28954 /*--------------------------------------------------------------------------*/
28955
28956 /**
28957 * A faster alternative to `Function#apply`, this function invokes `func`
28958 * with the `this` binding of `thisArg` and the arguments of `args`.
28959 *
28960 * @private
28961 * @param {Function} func The function to invoke.
28962 * @param {*} thisArg The `this` binding of `func`.
28963 * @param {Array} args The arguments to invoke `func` with.
28964 * @returns {*} Returns the result of `func`.
28965 */
28966 function apply(func, thisArg, args) {
28967 switch (args.length) {
28968 case 0: return func.call(thisArg);
28969 case 1: return func.call(thisArg, args[0]);
28970 case 2: return func.call(thisArg, args[0], args[1]);
28971 case 3: return func.call(thisArg, args[0], args[1], args[2]);
28972 }
28973 return func.apply(thisArg, args);
28974 }
28975
28976 /**
28977 * A specialized version of `baseAggregator` for arrays.
28978 *
28979 * @private
28980 * @param {Array} [array] The array to iterate over.
28981 * @param {Function} setter The function to set `accumulator` values.
28982 * @param {Function} iteratee The iteratee to transform keys.
28983 * @param {Object} accumulator The initial aggregated object.
28984 * @returns {Function} Returns `accumulator`.
28985 */
28986 function arrayAggregator(array, setter, iteratee, accumulator) {
28987 var index = -1,
28988 length = array == null ? 0 : array.length;
28989
28990 while (++index < length) {
28991 var value = array[index];
28992 setter(accumulator, value, iteratee(value), array);
28993 }
28994 return accumulator;
28995 }
28996
28997 /**
28998 * A specialized version of `_.forEach` for arrays without support for
28999 * iteratee shorthands.
29000 *
29001 * @private
29002 * @param {Array} [array] The array to iterate over.
29003 * @param {Function} iteratee The function invoked per iteration.
29004 * @returns {Array} Returns `array`.
29005 */
29006 function arrayEach(array, iteratee) {
29007 var index = -1,
29008 length = array == null ? 0 : array.length;
29009
29010 while (++index < length) {
29011 if (iteratee(array[index], index, array) === false) {
29012 break;
29013 }
29014 }
29015 return array;
29016 }
29017
29018 /**
29019 * A specialized version of `_.forEachRight` for arrays without support for
29020 * iteratee shorthands.
29021 *
29022 * @private
29023 * @param {Array} [array] The array to iterate over.
29024 * @param {Function} iteratee The function invoked per iteration.
29025 * @returns {Array} Returns `array`.
29026 */
29027 function arrayEachRight(array, iteratee) {
29028 var length = array == null ? 0 : array.length;
29029
29030 while (length--) {
29031 if (iteratee(array[length], length, array) === false) {
29032 break;
29033 }
29034 }
29035 return array;
29036 }
29037
29038 /**
29039 * A specialized version of `_.every` for arrays without support for
29040 * iteratee shorthands.
29041 *
29042 * @private
29043 * @param {Array} [array] The array to iterate over.
29044 * @param {Function} predicate The function invoked per iteration.
29045 * @returns {boolean} Returns `true` if all elements pass the predicate check,
29046 * else `false`.
29047 */
29048 function arrayEvery(array, predicate) {
29049 var index = -1,
29050 length = array == null ? 0 : array.length;
29051
29052 while (++index < length) {
29053 if (!predicate(array[index], index, array)) {
29054 return false;
29055 }
29056 }
29057 return true;
29058 }
29059
29060 /**
29061 * A specialized version of `_.filter` for arrays without support for
29062 * iteratee shorthands.
29063 *
29064 * @private
29065 * @param {Array} [array] The array to iterate over.
29066 * @param {Function} predicate The function invoked per iteration.
29067 * @returns {Array} Returns the new filtered array.
29068 */
29069 function arrayFilter(array, predicate) {
29070 var index = -1,
29071 length = array == null ? 0 : array.length,
29072 resIndex = 0,
29073 result = [];
29074
29075 while (++index < length) {
29076 var value = array[index];
29077 if (predicate(value, index, array)) {
29078 result[resIndex++] = value;
29079 }
29080 }
29081 return result;
29082 }
29083
29084 /**
29085 * A specialized version of `_.includes` for arrays without support for
29086 * specifying an index to search from.
29087 *
29088 * @private
29089 * @param {Array} [array] The array to inspect.
29090 * @param {*} target The value to search for.
29091 * @returns {boolean} Returns `true` if `target` is found, else `false`.
29092 */
29093 function arrayIncludes(array, value) {
29094 var length = array == null ? 0 : array.length;
29095 return !!length && baseIndexOf(array, value, 0) > -1;
29096 }
29097
29098 /**
29099 * This function is like `arrayIncludes` except that it accepts a comparator.
29100 *
29101 * @private
29102 * @param {Array} [array] The array to inspect.
29103 * @param {*} target The value to search for.
29104 * @param {Function} comparator The comparator invoked per element.
29105 * @returns {boolean} Returns `true` if `target` is found, else `false`.
29106 */
29107 function arrayIncludesWith(array, value, comparator) {
29108 var index = -1,
29109 length = array == null ? 0 : array.length;
29110
29111 while (++index < length) {
29112 if (comparator(value, array[index])) {
29113 return true;
29114 }
29115 }
29116 return false;
29117 }
29118
29119 /**
29120 * A specialized version of `_.map` for arrays without support for iteratee
29121 * shorthands.
29122 *
29123 * @private
29124 * @param {Array} [array] The array to iterate over.
29125 * @param {Function} iteratee The function invoked per iteration.
29126 * @returns {Array} Returns the new mapped array.
29127 */
29128 function arrayMap(array, iteratee) {
29129 var index = -1,
29130 length = array == null ? 0 : array.length,
29131 result = Array(length);
29132
29133 while (++index < length) {
29134 result[index] = iteratee(array[index], index, array);
29135 }
29136 return result;
29137 }
29138
29139 /**
29140 * Appends the elements of `values` to `array`.
29141 *
29142 * @private
29143 * @param {Array} array The array to modify.
29144 * @param {Array} values The values to append.
29145 * @returns {Array} Returns `array`.
29146 */
29147 function arrayPush(array, values) {
29148 var index = -1,
29149 length = values.length,
29150 offset = array.length;
29151
29152 while (++index < length) {
29153 array[offset + index] = values[index];
29154 }
29155 return array;
29156 }
29157
29158 /**
29159 * A specialized version of `_.reduce` for arrays without support for
29160 * iteratee shorthands.
29161 *
29162 * @private
29163 * @param {Array} [array] The array to iterate over.
29164 * @param {Function} iteratee The function invoked per iteration.
29165 * @param {*} [accumulator] The initial value.
29166 * @param {boolean} [initAccum] Specify using the first element of `array` as
29167 * the initial value.
29168 * @returns {*} Returns the accumulated value.
29169 */
29170 function arrayReduce(array, iteratee, accumulator, initAccum) {
29171 var index = -1,
29172 length = array == null ? 0 : array.length;
29173
29174 if (initAccum && length) {
29175 accumulator = array[++index];
29176 }
29177 while (++index < length) {
29178 accumulator = iteratee(accumulator, array[index], index, array);
29179 }
29180 return accumulator;
29181 }
29182
29183 /**
29184 * A specialized version of `_.reduceRight` for arrays without support for
29185 * iteratee shorthands.
29186 *
29187 * @private
29188 * @param {Array} [array] The array to iterate over.
29189 * @param {Function} iteratee The function invoked per iteration.
29190 * @param {*} [accumulator] The initial value.
29191 * @param {boolean} [initAccum] Specify using the last element of `array` as
29192 * the initial value.
29193 * @returns {*} Returns the accumulated value.
29194 */
29195 function arrayReduceRight(array, iteratee, accumulator, initAccum) {
29196 var length = array == null ? 0 : array.length;
29197 if (initAccum && length) {
29198 accumulator = array[--length];
29199 }
29200 while (length--) {
29201 accumulator = iteratee(accumulator, array[length], length, array);
29202 }
29203 return accumulator;
29204 }
29205
29206 /**
29207 * A specialized version of `_.some` for arrays without support for iteratee
29208 * shorthands.
29209 *
29210 * @private
29211 * @param {Array} [array] The array to iterate over.
29212 * @param {Function} predicate The function invoked per iteration.
29213 * @returns {boolean} Returns `true` if any element passes the predicate check,
29214 * else `false`.
29215 */
29216 function arraySome(array, predicate) {
29217 var index = -1,
29218 length = array == null ? 0 : array.length;
29219
29220 while (++index < length) {
29221 if (predicate(array[index], index, array)) {
29222 return true;
29223 }
29224 }
29225 return false;
29226 }
29227
29228 /**
29229 * Gets the size of an ASCII `string`.
29230 *
29231 * @private
29232 * @param {string} string The string inspect.
29233 * @returns {number} Returns the string size.
29234 */
29235 var asciiSize = baseProperty('length');
29236
29237 /**
29238 * Converts an ASCII `string` to an array.
29239 *
29240 * @private
29241 * @param {string} string The string to convert.
29242 * @returns {Array} Returns the converted array.
29243 */
29244 function asciiToArray(string) {
29245 return string.split('');
29246 }
29247
29248 /**
29249 * Splits an ASCII `string` into an array of its words.
29250 *
29251 * @private
29252 * @param {string} The string to inspect.
29253 * @returns {Array} Returns the words of `string`.
29254 */
29255 function asciiWords(string) {
29256 return string.match(reAsciiWord) || [];
29257 }
29258
29259 /**
29260 * The base implementation of methods like `_.findKey` and `_.findLastKey`,
29261 * without support for iteratee shorthands, which iterates over `collection`
29262 * using `eachFunc`.
29263 *
29264 * @private
29265 * @param {Array|Object} collection The collection to inspect.
29266 * @param {Function} predicate The function invoked per iteration.
29267 * @param {Function} eachFunc The function to iterate over `collection`.
29268 * @returns {*} Returns the found element or its key, else `undefined`.
29269 */
29270 function baseFindKey(collection, predicate, eachFunc) {
29271 var result;
29272 eachFunc(collection, function(value, key, collection) {
29273 if (predicate(value, key, collection)) {
29274 result = key;
29275 return false;
29276 }
29277 });
29278 return result;
29279 }
29280
29281 /**
29282 * The base implementation of `_.findIndex` and `_.findLastIndex` without
29283 * support for iteratee shorthands.
29284 *
29285 * @private
29286 * @param {Array} array The array to inspect.
29287 * @param {Function} predicate The function invoked per iteration.
29288 * @param {number} fromIndex The index to search from.
29289 * @param {boolean} [fromRight] Specify iterating from right to left.
29290 * @returns {number} Returns the index of the matched value, else `-1`.
29291 */
29292 function baseFindIndex(array, predicate, fromIndex, fromRight) {
29293 var length = array.length,
29294 index = fromIndex + (fromRight ? 1 : -1);
29295
29296 while ((fromRight ? index-- : ++index < length)) {
29297 if (predicate(array[index], index, array)) {
29298 return index;
29299 }
29300 }
29301 return -1;
29302 }
29303
29304 /**
29305 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
29306 *
29307 * @private
29308 * @param {Array} array The array to inspect.
29309 * @param {*} value The value to search for.
29310 * @param {number} fromIndex The index to search from.
29311 * @returns {number} Returns the index of the matched value, else `-1`.
29312 */
29313 function baseIndexOf(array, value, fromIndex) {
29314 return value === value
29315 ? strictIndexOf(array, value, fromIndex)
29316 : baseFindIndex(array, baseIsNaN, fromIndex);
29317 }
29318
29319 /**
29320 * This function is like `baseIndexOf` except that it accepts a comparator.
29321 *
29322 * @private
29323 * @param {Array} array The array to inspect.
29324 * @param {*} value The value to search for.
29325 * @param {number} fromIndex The index to search from.
29326 * @param {Function} comparator The comparator invoked per element.
29327 * @returns {number} Returns the index of the matched value, else `-1`.
29328 */
29329 function baseIndexOfWith(array, value, fromIndex, comparator) {
29330 var index = fromIndex - 1,
29331 length = array.length;
29332
29333 while (++index < length) {
29334 if (comparator(array[index], value)) {
29335 return index;
29336 }
29337 }
29338 return -1;
29339 }
29340
29341 /**
29342 * The base implementation of `_.isNaN` without support for number objects.
29343 *
29344 * @private
29345 * @param {*} value The value to check.
29346 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
29347 */
29348 function baseIsNaN(value) {
29349 return value !== value;
29350 }
29351
29352 /**
29353 * The base implementation of `_.mean` and `_.meanBy` without support for
29354 * iteratee shorthands.
29355 *
29356 * @private
29357 * @param {Array} array The array to iterate over.
29358 * @param {Function} iteratee The function invoked per iteration.
29359 * @returns {number} Returns the mean.
29360 */
29361 function baseMean(array, iteratee) {
29362 var length = array == null ? 0 : array.length;
29363 return length ? (baseSum(array, iteratee) / length) : NAN;
29364 }
29365
29366 /**
29367 * The base implementation of `_.property` without support for deep paths.
29368 *
29369 * @private
29370 * @param {string} key The key of the property to get.
29371 * @returns {Function} Returns the new accessor function.
29372 */
29373 function baseProperty(key) {
29374 return function(object) {
29375 return object == null ? undefined : object[key];
29376 };
29377 }
29378
29379 /**
29380 * The base implementation of `_.propertyOf` without support for deep paths.
29381 *
29382 * @private
29383 * @param {Object} object The object to query.
29384 * @returns {Function} Returns the new accessor function.
29385 */
29386 function basePropertyOf(object) {
29387 return function(key) {
29388 return object == null ? undefined : object[key];
29389 };
29390 }
29391
29392 /**
29393 * The base implementation of `_.reduce` and `_.reduceRight`, without support
29394 * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
29395 *
29396 * @private
29397 * @param {Array|Object} collection The collection to iterate over.
29398 * @param {Function} iteratee The function invoked per iteration.
29399 * @param {*} accumulator The initial value.
29400 * @param {boolean} initAccum Specify using the first or last element of
29401 * `collection` as the initial value.
29402 * @param {Function} eachFunc The function to iterate over `collection`.
29403 * @returns {*} Returns the accumulated value.
29404 */
29405 function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
29406 eachFunc(collection, function(value, index, collection) {
29407 accumulator = initAccum
29408 ? (initAccum = false, value)
29409 : iteratee(accumulator, value, index, collection);
29410 });
29411 return accumulator;
29412 }
29413
29414 /**
29415 * The base implementation of `_.sortBy` which uses `comparer` to define the
29416 * sort order of `array` and replaces criteria objects with their corresponding
29417 * values.
29418 *
29419 * @private
29420 * @param {Array} array The array to sort.
29421 * @param {Function} comparer The function to define sort order.
29422 * @returns {Array} Returns `array`.
29423 */
29424 function baseSortBy(array, comparer) {
29425 var length = array.length;
29426
29427 array.sort(comparer);
29428 while (length--) {
29429 array[length] = array[length].value;
29430 }
29431 return array;
29432 }
29433
29434 /**
29435 * The base implementation of `_.sum` and `_.sumBy` without support for
29436 * iteratee shorthands.
29437 *
29438 * @private
29439 * @param {Array} array The array to iterate over.
29440 * @param {Function} iteratee The function invoked per iteration.
29441 * @returns {number} Returns the sum.
29442 */
29443 function baseSum(array, iteratee) {
29444 var result,
29445 index = -1,
29446 length = array.length;
29447
29448 while (++index < length) {
29449 var current = iteratee(array[index]);
29450 if (current !== undefined) {
29451 result = result === undefined ? current : (result + current);
29452 }
29453 }
29454 return result;
29455 }
29456
29457 /**
29458 * The base implementation of `_.times` without support for iteratee shorthands
29459 * or max array length checks.
29460 *
29461 * @private
29462 * @param {number} n The number of times to invoke `iteratee`.
29463 * @param {Function} iteratee The function invoked per iteration.
29464 * @returns {Array} Returns the array of results.
29465 */
29466 function baseTimes(n, iteratee) {
29467 var index = -1,
29468 result = Array(n);
29469
29470 while (++index < n) {
29471 result[index] = iteratee(index);
29472 }
29473 return result;
29474 }
29475
29476 /**
29477 * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
29478 * of key-value pairs for `object` corresponding to the property names of `props`.
29479 *
29480 * @private
29481 * @param {Object} object The object to query.
29482 * @param {Array} props The property names to get values for.
29483 * @returns {Object} Returns the key-value pairs.
29484 */
29485 function baseToPairs(object, props) {
29486 return arrayMap(props, function(key) {
29487 return [key, object[key]];
29488 });
29489 }
29490
29491 /**
29492 * The base implementation of `_.unary` without support for storing metadata.
29493 *
29494 * @private
29495 * @param {Function} func The function to cap arguments for.
29496 * @returns {Function} Returns the new capped function.
29497 */
29498 function baseUnary(func) {
29499 return function(value) {
29500 return func(value);
29501 };
29502 }
29503
29504 /**
29505 * The base implementation of `_.values` and `_.valuesIn` which creates an
29506 * array of `object` property values corresponding to the property names
29507 * of `props`.
29508 *
29509 * @private
29510 * @param {Object} object The object to query.
29511 * @param {Array} props The property names to get values for.
29512 * @returns {Object} Returns the array of property values.
29513 */
29514 function baseValues(object, props) {
29515 return arrayMap(props, function(key) {
29516 return object[key];
29517 });
29518 }
29519
29520 /**
29521 * Checks if a `cache` value for `key` exists.
29522 *
29523 * @private
29524 * @param {Object} cache The cache to query.
29525 * @param {string} key The key of the entry to check.
29526 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
29527 */
29528 function cacheHas(cache, key) {
29529 return cache.has(key);
29530 }
29531
29532 /**
29533 * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol
29534 * that is not found in the character symbols.
29535 *
29536 * @private
29537 * @param {Array} strSymbols The string symbols to inspect.
29538 * @param {Array} chrSymbols The character symbols to find.
29539 * @returns {number} Returns the index of the first unmatched string symbol.
29540 */
29541 function charsStartIndex(strSymbols, chrSymbols) {
29542 var index = -1,
29543 length = strSymbols.length;
29544
29545 while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
29546 return index;
29547 }
29548
29549 /**
29550 * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol
29551 * that is not found in the character symbols.
29552 *
29553 * @private
29554 * @param {Array} strSymbols The string symbols to inspect.
29555 * @param {Array} chrSymbols The character symbols to find.
29556 * @returns {number} Returns the index of the last unmatched string symbol.
29557 */
29558 function charsEndIndex(strSymbols, chrSymbols) {
29559 var index = strSymbols.length;
29560
29561 while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
29562 return index;
29563 }
29564
29565 /**
29566 * Gets the number of `placeholder` occurrences in `array`.
29567 *
29568 * @private
29569 * @param {Array} array The array to inspect.
29570 * @param {*} placeholder The placeholder to search for.
29571 * @returns {number} Returns the placeholder count.
29572 */
29573 function countHolders(array, placeholder) {
29574 var length = array.length,
29575 result = 0;
29576
29577 while (length--) {
29578 if (array[length] === placeholder) {
29579 ++result;
29580 }
29581 }
29582 return result;
29583 }
29584
29585 /**
29586 * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A
29587 * letters to basic Latin letters.
29588 *
29589 * @private
29590 * @param {string} letter The matched letter to deburr.
29591 * @returns {string} Returns the deburred letter.
29592 */
29593 var deburrLetter = basePropertyOf(deburredLetters);
29594
29595 /**
29596 * Used by `_.escape` to convert characters to HTML entities.
29597 *
29598 * @private
29599 * @param {string} chr The matched character to escape.
29600 * @returns {string} Returns the escaped character.
29601 */
29602 var escapeHtmlChar = basePropertyOf(htmlEscapes);
29603
29604 /**
29605 * Used by `_.template` to escape characters for inclusion in compiled string literals.
29606 *
29607 * @private
29608 * @param {string} chr The matched character to escape.
29609 * @returns {string} Returns the escaped character.
29610 */
29611 function escapeStringChar(chr) {
29612 return '\\' + stringEscapes[chr];
29613 }
29614
29615 /**
29616 * Gets the value at `key` of `object`.
29617 *
29618 * @private
29619 * @param {Object} [object] The object to query.
29620 * @param {string} key The key of the property to get.
29621 * @returns {*} Returns the property value.
29622 */
29623 function getValue(object, key) {
29624 return object == null ? undefined : object[key];
29625 }
29626
29627 /**
29628 * Checks if `string` contains Unicode symbols.
29629 *
29630 * @private
29631 * @param {string} string The string to inspect.
29632 * @returns {boolean} Returns `true` if a symbol is found, else `false`.
29633 */
29634 function hasUnicode(string) {
29635 return reHasUnicode.test(string);
29636 }
29637
29638 /**
29639 * Checks if `string` contains a word composed of Unicode symbols.
29640 *
29641 * @private
29642 * @param {string} string The string to inspect.
29643 * @returns {boolean} Returns `true` if a word is found, else `false`.
29644 */
29645 function hasUnicodeWord(string) {
29646 return reHasUnicodeWord.test(string);
29647 }
29648
29649 /**
29650 * Converts `iterator` to an array.
29651 *
29652 * @private
29653 * @param {Object} iterator The iterator to convert.
29654 * @returns {Array} Returns the converted array.
29655 */
29656 function iteratorToArray(iterator) {
29657 var data,
29658 result = [];
29659
29660 while (!(data = iterator.next()).done) {
29661 result.push(data.value);
29662 }
29663 return result;
29664 }
29665
29666 /**
29667 * Converts `map` to its key-value pairs.
29668 *
29669 * @private
29670 * @param {Object} map The map to convert.
29671 * @returns {Array} Returns the key-value pairs.
29672 */
29673 function mapToArray(map) {
29674 var index = -1,
29675 result = Array(map.size);
29676
29677 map.forEach(function(value, key) {
29678 result[++index] = [key, value];
29679 });
29680 return result;
29681 }
29682
29683 /**
29684 * Creates a unary function that invokes `func` with its argument transformed.
29685 *
29686 * @private
29687 * @param {Function} func The function to wrap.
29688 * @param {Function} transform The argument transform.
29689 * @returns {Function} Returns the new function.
29690 */
29691 function overArg(func, transform) {
29692 return function(arg) {
29693 return func(transform(arg));
29694 };
29695 }
29696
29697 /**
29698 * Replaces all `placeholder` elements in `array` with an internal placeholder
29699 * and returns an array of their indexes.
29700 *
29701 * @private
29702 * @param {Array} array The array to modify.
29703 * @param {*} placeholder The placeholder to replace.
29704 * @returns {Array} Returns the new array of placeholder indexes.
29705 */
29706 function replaceHolders(array, placeholder) {
29707 var index = -1,
29708 length = array.length,
29709 resIndex = 0,
29710 result = [];
29711
29712 while (++index < length) {
29713 var value = array[index];
29714 if (value === placeholder || value === PLACEHOLDER) {
29715 array[index] = PLACEHOLDER;
29716 result[resIndex++] = index;
29717 }
29718 }
29719 return result;
29720 }
29721
29722 /**
29723 * Gets the value at `key`, unless `key` is "__proto__".
29724 *
29725 * @private
29726 * @param {Object} object The object to query.
29727 * @param {string} key The key of the property to get.
29728 * @returns {*} Returns the property value.
29729 */
29730 function safeGet(object, key) {
29731 return key == '__proto__'
29732 ? undefined
29733 : object[key];
29734 }
29735
29736 /**
29737 * Converts `set` to an array of its values.
29738 *
29739 * @private
29740 * @param {Object} set The set to convert.
29741 * @returns {Array} Returns the values.
29742 */
29743 function setToArray(set) {
29744 var index = -1,
29745 result = Array(set.size);
29746
29747 set.forEach(function(value) {
29748 result[++index] = value;
29749 });
29750 return result;
29751 }
29752
29753 /**
29754 * Converts `set` to its value-value pairs.
29755 *
29756 * @private
29757 * @param {Object} set The set to convert.
29758 * @returns {Array} Returns the value-value pairs.
29759 */
29760 function setToPairs(set) {
29761 var index = -1,
29762 result = Array(set.size);
29763
29764 set.forEach(function(value) {
29765 result[++index] = [value, value];
29766 });
29767 return result;
29768 }
29769
29770 /**
29771 * A specialized version of `_.indexOf` which performs strict equality
29772 * comparisons of values, i.e. `===`.
29773 *
29774 * @private
29775 * @param {Array} array The array to inspect.
29776 * @param {*} value The value to search for.
29777 * @param {number} fromIndex The index to search from.
29778 * @returns {number} Returns the index of the matched value, else `-1`.
29779 */
29780 function strictIndexOf(array, value, fromIndex) {
29781 var index = fromIndex - 1,
29782 length = array.length;
29783
29784 while (++index < length) {
29785 if (array[index] === value) {
29786 return index;
29787 }
29788 }
29789 return -1;
29790 }
29791
29792 /**
29793 * A specialized version of `_.lastIndexOf` which performs strict equality
29794 * comparisons of values, i.e. `===`.
29795 *
29796 * @private
29797 * @param {Array} array The array to inspect.
29798 * @param {*} value The value to search for.
29799 * @param {number} fromIndex The index to search from.
29800 * @returns {number} Returns the index of the matched value, else `-1`.
29801 */
29802 function strictLastIndexOf(array, value, fromIndex) {
29803 var index = fromIndex + 1;
29804 while (index--) {
29805 if (array[index] === value) {
29806 return index;
29807 }
29808 }
29809 return index;
29810 }
29811
29812 /**
29813 * Gets the number of symbols in `string`.
29814 *
29815 * @private
29816 * @param {string} string The string to inspect.
29817 * @returns {number} Returns the string size.
29818 */
29819 function stringSize(string) {
29820 return hasUnicode(string)
29821 ? unicodeSize(string)
29822 : asciiSize(string);
29823 }
29824
29825 /**
29826 * Converts `string` to an array.
29827 *
29828 * @private
29829 * @param {string} string The string to convert.
29830 * @returns {Array} Returns the converted array.
29831 */
29832 function stringToArray(string) {
29833 return hasUnicode(string)
29834 ? unicodeToArray(string)
29835 : asciiToArray(string);
29836 }
29837
29838 /**
29839 * Used by `_.unescape` to convert HTML entities to characters.
29840 *
29841 * @private
29842 * @param {string} chr The matched character to unescape.
29843 * @returns {string} Returns the unescaped character.
29844 */
29845 var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
29846
29847 /**
29848 * Gets the size of a Unicode `string`.
29849 *
29850 * @private
29851 * @param {string} string The string inspect.
29852 * @returns {number} Returns the string size.
29853 */
29854 function unicodeSize(string) {
29855 var result = reUnicode.lastIndex = 0;
29856 while (reUnicode.test(string)) {
29857 ++result;
29858 }
29859 return result;
29860 }
29861
29862 /**
29863 * Converts a Unicode `string` to an array.
29864 *
29865 * @private
29866 * @param {string} string The string to convert.
29867 * @returns {Array} Returns the converted array.
29868 */
29869 function unicodeToArray(string) {
29870 return string.match(reUnicode) || [];
29871 }
29872
29873 /**
29874 * Splits a Unicode `string` into an array of its words.
29875 *
29876 * @private
29877 * @param {string} The string to inspect.
29878 * @returns {Array} Returns the words of `string`.
29879 */
29880 function unicodeWords(string) {
29881 return string.match(reUnicodeWord) || [];
29882 }
29883
29884 /*--------------------------------------------------------------------------*/
29885
29886 /**
29887 * Create a new pristine `lodash` function using the `context` object.
29888 *
29889 * @static
29890 * @memberOf _
29891 * @since 1.1.0
29892 * @category Util
29893 * @param {Object} [context=root] The context object.
29894 * @returns {Function} Returns a new `lodash` function.
29895 * @example
29896 *
29897 * _.mixin({ 'foo': _.constant('foo') });
29898 *
29899 * var lodash = _.runInContext();
29900 * lodash.mixin({ 'bar': lodash.constant('bar') });
29901 *
29902 * _.isFunction(_.foo);
29903 * // => true
29904 * _.isFunction(_.bar);
29905 * // => false
29906 *
29907 * lodash.isFunction(lodash.foo);
29908 * // => false
29909 * lodash.isFunction(lodash.bar);
29910 * // => true
29911 *
29912 * // Create a suped-up `defer` in Node.js.
29913 * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
29914 */
29915 var runInContext = (function runInContext(context) {
29916 context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
29917
29918 /** Built-in constructor references. */
29919 var Array = context.Array,
29920 Date = context.Date,
29921 Error = context.Error,
29922 Function = context.Function,
29923 Math = context.Math,
29924 Object = context.Object,
29925 RegExp = context.RegExp,
29926 String = context.String,
29927 TypeError = context.TypeError;
29928
29929 /** Used for built-in method references. */
29930 var arrayProto = Array.prototype,
29931 funcProto = Function.prototype,
29932 objectProto = Object.prototype;
29933
29934 /** Used to detect overreaching core-js shims. */
29935 var coreJsData = context['__core-js_shared__'];
29936
29937 /** Used to resolve the decompiled source of functions. */
29938 var funcToString = funcProto.toString;
29939
29940 /** Used to check objects for own properties. */
29941 var hasOwnProperty = objectProto.hasOwnProperty;
29942
29943 /** Used to generate unique IDs. */
29944 var idCounter = 0;
29945
29946 /** Used to detect methods masquerading as native. */
29947 var maskSrcKey = (function() {
29948 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
29949 return uid ? ('Symbol(src)_1.' + uid) : '';
29950 }());
29951
29952 /**
29953 * Used to resolve the
29954 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
29955 * of values.
29956 */
29957 var nativeObjectToString = objectProto.toString;
29958
29959 /** Used to infer the `Object` constructor. */
29960 var objectCtorString = funcToString.call(Object);
29961
29962 /** Used to restore the original `_` reference in `_.noConflict`. */
29963 var oldDash = root._;
29964
29965 /** Used to detect if a method is native. */
29966 var reIsNative = RegExp('^' +
29967 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
29968 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
29969 );
29970
29971 /** Built-in value references. */
29972 var Buffer = moduleExports ? context.Buffer : undefined,
29973 Symbol = context.Symbol,
29974 Uint8Array = context.Uint8Array,
29975 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
29976 getPrototype = overArg(Object.getPrototypeOf, Object),
29977 objectCreate = Object.create,
29978 propertyIsEnumerable = objectProto.propertyIsEnumerable,
29979 splice = arrayProto.splice,
29980 spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,
29981 symIterator = Symbol ? Symbol.iterator : undefined,
29982 symToStringTag = Symbol ? Symbol.toStringTag : undefined;
29983
29984 var defineProperty = (function() {
29985 try {
29986 var func = getNative(Object, 'defineProperty');
29987 func({}, '', {});
29988 return func;
29989 } catch (e) {}
29990 }());
29991
29992 /** Mocked built-ins. */
29993 var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,
29994 ctxNow = Date && Date.now !== root.Date.now && Date.now,
29995 ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
29996
29997 /* Built-in method references for those with the same name as other `lodash` methods. */
29998 var nativeCeil = Math.ceil,
29999 nativeFloor = Math.floor,
30000 nativeGetSymbols = Object.getOwnPropertySymbols,
30001 nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
30002 nativeIsFinite = context.isFinite,
30003 nativeJoin = arrayProto.join,
30004 nativeKeys = overArg(Object.keys, Object),
30005 nativeMax = Math.max,
30006 nativeMin = Math.min,
30007 nativeNow = Date.now,
30008 nativeParseInt = context.parseInt,
30009 nativeRandom = Math.random,
30010 nativeReverse = arrayProto.reverse;
30011
30012 /* Built-in method references that are verified to be native. */
30013 var DataView = getNative(context, 'DataView'),
30014 Map = getNative(context, 'Map'),
30015 Promise = getNative(context, 'Promise'),
30016 Set = getNative(context, 'Set'),
30017 WeakMap = getNative(context, 'WeakMap'),
30018 nativeCreate = getNative(Object, 'create');
30019
30020 /** Used to store function metadata. */
30021 var metaMap = WeakMap && new WeakMap;
30022
30023 /** Used to lookup unminified function names. */
30024 var realNames = {};
30025
30026 /** Used to detect maps, sets, and weakmaps. */
30027 var dataViewCtorString = toSource(DataView),
30028 mapCtorString = toSource(Map),
30029 promiseCtorString = toSource(Promise),
30030 setCtorString = toSource(Set),
30031 weakMapCtorString = toSource(WeakMap);
30032
30033 /** Used to convert symbols to primitives and strings. */
30034 var symbolProto = Symbol ? Symbol.prototype : undefined,
30035 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
30036 symbolToString = symbolProto ? symbolProto.toString : undefined;
30037
30038 /*------------------------------------------------------------------------*/
30039
30040 /**
30041 * Creates a `lodash` object which wraps `value` to enable implicit method
30042 * chain sequences. Methods that operate on and return arrays, collections,
30043 * and functions can be chained together. Methods that retrieve a single value
30044 * or may return a primitive value will automatically end the chain sequence
30045 * and return the unwrapped value. Otherwise, the value must be unwrapped
30046 * with `_#value`.
30047 *
30048 * Explicit chain sequences, which must be unwrapped with `_#value`, may be
30049 * enabled using `_.chain`.
30050 *
30051 * The execution of chained methods is lazy, that is, it's deferred until
30052 * `_#value` is implicitly or explicitly called.
30053 *
30054 * Lazy evaluation allows several methods to support shortcut fusion.
30055 * Shortcut fusion is an optimization to merge iteratee calls; this avoids
30056 * the creation of intermediate arrays and can greatly reduce the number of
30057 * iteratee executions. Sections of a chain sequence qualify for shortcut
30058 * fusion if the section is applied to an array and iteratees accept only
30059 * one argument. The heuristic for whether a section qualifies for shortcut
30060 * fusion is subject to change.
30061 *
30062 * Chaining is supported in custom builds as long as the `_#value` method is
30063 * directly or indirectly included in the build.
30064 *
30065 * In addition to lodash methods, wrappers have `Array` and `String` methods.
30066 *
30067 * The wrapper `Array` methods are:
30068 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`
30069 *
30070 * The wrapper `String` methods are:
30071 * `replace` and `split`
30072 *
30073 * The wrapper methods that support shortcut fusion are:
30074 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,
30075 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,
30076 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`
30077 *
30078 * The chainable wrapper methods are:
30079 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
30080 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
30081 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
30082 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
30083 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
30084 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
30085 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,
30086 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,
30087 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,
30088 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,
30089 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,
30090 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,
30091 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,
30092 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,
30093 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,
30094 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,
30095 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,
30096 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,
30097 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,
30098 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,
30099 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,
30100 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,
30101 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,
30102 * `zipObject`, `zipObjectDeep`, and `zipWith`
30103 *
30104 * The wrapper methods that are **not** chainable by default are:
30105 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
30106 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,
30107 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,
30108 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
30109 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,
30110 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,
30111 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,
30112 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,
30113 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,
30114 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,
30115 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,
30116 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,
30117 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,
30118 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,
30119 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,
30120 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,
30121 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
30122 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
30123 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
30124 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,
30125 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,
30126 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,
30127 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,
30128 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,
30129 * `upperFirst`, `value`, and `words`
30130 *
30131 * @name _
30132 * @constructor
30133 * @category Seq
30134 * @param {*} value The value to wrap in a `lodash` instance.
30135 * @returns {Object} Returns the new `lodash` wrapper instance.
30136 * @example
30137 *
30138 * function square(n) {
30139 * return n * n;
30140 * }
30141 *
30142 * var wrapped = _([1, 2, 3]);
30143 *
30144 * // Returns an unwrapped value.
30145 * wrapped.reduce(_.add);
30146 * // => 6
30147 *
30148 * // Returns a wrapped value.
30149 * var squares = wrapped.map(square);
30150 *
30151 * _.isArray(squares);
30152 * // => false
30153 *
30154 * _.isArray(squares.value());
30155 * // => true
30156 */
30157 function lodash(value) {
30158 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
30159 if (value instanceof LodashWrapper) {
30160 return value;
30161 }
30162 if (hasOwnProperty.call(value, '__wrapped__')) {
30163 return wrapperClone(value);
30164 }
30165 }
30166 return new LodashWrapper(value);
30167 }
30168
30169 /**
30170 * The base implementation of `_.create` without support for assigning
30171 * properties to the created object.
30172 *
30173 * @private
30174 * @param {Object} proto The object to inherit from.
30175 * @returns {Object} Returns the new object.
30176 */
30177 var baseCreate = (function() {
30178 function object() {}
30179 return function(proto) {
30180 if (!isObject(proto)) {
30181 return {};
30182 }
30183 if (objectCreate) {
30184 return objectCreate(proto);
30185 }
30186 object.prototype = proto;
30187 var result = new object;
30188 object.prototype = undefined;
30189 return result;
30190 };
30191 }());
30192
30193 /**
30194 * The function whose prototype chain sequence wrappers inherit from.
30195 *
30196 * @private
30197 */
30198 function baseLodash() {
30199 // No operation performed.
30200 }
30201
30202 /**
30203 * The base constructor for creating `lodash` wrapper objects.
30204 *
30205 * @private
30206 * @param {*} value The value to wrap.
30207 * @param {boolean} [chainAll] Enable explicit method chain sequences.
30208 */
30209 function LodashWrapper(value, chainAll) {
30210 this.__wrapped__ = value;
30211 this.__actions__ = [];
30212 this.__chain__ = !!chainAll;
30213 this.__index__ = 0;
30214 this.__values__ = undefined;
30215 }
30216
30217 /**
30218 * By default, the template delimiters used by lodash are like those in
30219 * embedded Ruby (ERB) as well as ES2015 template strings. Change the
30220 * following template settings to use alternative delimiters.
30221 *
30222 * @static
30223 * @memberOf _
30224 * @type {Object}
30225 */
30226 lodash.templateSettings = {
30227
30228 /**
30229 * Used to detect `data` property values to be HTML-escaped.
30230 *
30231 * @memberOf _.templateSettings
30232 * @type {RegExp}
30233 */
30234 'escape': reEscape,
30235
30236 /**
30237 * Used to detect code to be evaluated.
30238 *
30239 * @memberOf _.templateSettings
30240 * @type {RegExp}
30241 */
30242 'evaluate': reEvaluate,
30243
30244 /**
30245 * Used to detect `data` property values to inject.
30246 *
30247 * @memberOf _.templateSettings
30248 * @type {RegExp}
30249 */
30250 'interpolate': reInterpolate,
30251
30252 /**
30253 * Used to reference the data object in the template text.
30254 *
30255 * @memberOf _.templateSettings
30256 * @type {string}
30257 */
30258 'variable': '',
30259
30260 /**
30261 * Used to import variables into the compiled template.
30262 *
30263 * @memberOf _.templateSettings
30264 * @type {Object}
30265 */
30266 'imports': {
30267
30268 /**
30269 * A reference to the `lodash` function.
30270 *
30271 * @memberOf _.templateSettings.imports
30272 * @type {Function}
30273 */
30274 '_': lodash
30275 }
30276 };
30277
30278 // Ensure wrappers are instances of `baseLodash`.
30279 lodash.prototype = baseLodash.prototype;
30280 lodash.prototype.constructor = lodash;
30281
30282 LodashWrapper.prototype = baseCreate(baseLodash.prototype);
30283 LodashWrapper.prototype.constructor = LodashWrapper;
30284
30285 /*------------------------------------------------------------------------*/
30286
30287 /**
30288 * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.
30289 *
30290 * @private
30291 * @constructor
30292 * @param {*} value The value to wrap.
30293 */
30294 function LazyWrapper(value) {
30295 this.__wrapped__ = value;
30296 this.__actions__ = [];
30297 this.__dir__ = 1;
30298 this.__filtered__ = false;
30299 this.__iteratees__ = [];
30300 this.__takeCount__ = MAX_ARRAY_LENGTH;
30301 this.__views__ = [];
30302 }
30303
30304 /**
30305 * Creates a clone of the lazy wrapper object.
30306 *
30307 * @private
30308 * @name clone
30309 * @memberOf LazyWrapper
30310 * @returns {Object} Returns the cloned `LazyWrapper` object.
30311 */
30312 function lazyClone() {
30313 var result = new LazyWrapper(this.__wrapped__);
30314 result.__actions__ = copyArray(this.__actions__);
30315 result.__dir__ = this.__dir__;
30316 result.__filtered__ = this.__filtered__;
30317 result.__iteratees__ = copyArray(this.__iteratees__);
30318 result.__takeCount__ = this.__takeCount__;
30319 result.__views__ = copyArray(this.__views__);
30320 return result;
30321 }
30322
30323 /**
30324 * Reverses the direction of lazy iteration.
30325 *
30326 * @private
30327 * @name reverse
30328 * @memberOf LazyWrapper
30329 * @returns {Object} Returns the new reversed `LazyWrapper` object.
30330 */
30331 function lazyReverse() {
30332 if (this.__filtered__) {
30333 var result = new LazyWrapper(this);
30334 result.__dir__ = -1;
30335 result.__filtered__ = true;
30336 } else {
30337 result = this.clone();
30338 result.__dir__ *= -1;
30339 }
30340 return result;
30341 }
30342
30343 /**
30344 * Extracts the unwrapped value from its lazy wrapper.
30345 *
30346 * @private
30347 * @name value
30348 * @memberOf LazyWrapper
30349 * @returns {*} Returns the unwrapped value.
30350 */
30351 function lazyValue() {
30352 var array = this.__wrapped__.value(),
30353 dir = this.__dir__,
30354 isArr = isArray(array),
30355 isRight = dir < 0,
30356 arrLength = isArr ? array.length : 0,
30357 view = getView(0, arrLength, this.__views__),
30358 start = view.start,
30359 end = view.end,
30360 length = end - start,
30361 index = isRight ? end : (start - 1),
30362 iteratees = this.__iteratees__,
30363 iterLength = iteratees.length,
30364 resIndex = 0,
30365 takeCount = nativeMin(length, this.__takeCount__);
30366
30367 if (!isArr || (!isRight && arrLength == length && takeCount == length)) {
30368 return baseWrapperValue(array, this.__actions__);
30369 }
30370 var result = [];
30371
30372 outer:
30373 while (length-- && resIndex < takeCount) {
30374 index += dir;
30375
30376 var iterIndex = -1,
30377 value = array[index];
30378
30379 while (++iterIndex < iterLength) {
30380 var data = iteratees[iterIndex],
30381 iteratee = data.iteratee,
30382 type = data.type,
30383 computed = iteratee(value);
30384
30385 if (type == LAZY_MAP_FLAG) {
30386 value = computed;
30387 } else if (!computed) {
30388 if (type == LAZY_FILTER_FLAG) {
30389 continue outer;
30390 } else {
30391 break outer;
30392 }
30393 }
30394 }
30395 result[resIndex++] = value;
30396 }
30397 return result;
30398 }
30399
30400 // Ensure `LazyWrapper` is an instance of `baseLodash`.
30401 LazyWrapper.prototype = baseCreate(baseLodash.prototype);
30402 LazyWrapper.prototype.constructor = LazyWrapper;
30403
30404 /*------------------------------------------------------------------------*/
30405
30406 /**
30407 * Creates a hash object.
30408 *
30409 * @private
30410 * @constructor
30411 * @param {Array} [entries] The key-value pairs to cache.
30412 */
30413 function Hash(entries) {
30414 var index = -1,
30415 length = entries == null ? 0 : entries.length;
30416
30417 this.clear();
30418 while (++index < length) {
30419 var entry = entries[index];
30420 this.set(entry[0], entry[1]);
30421 }
30422 }
30423
30424 /**
30425 * Removes all key-value entries from the hash.
30426 *
30427 * @private
30428 * @name clear
30429 * @memberOf Hash
30430 */
30431 function hashClear() {
30432 this.__data__ = nativeCreate ? nativeCreate(null) : {};
30433 this.size = 0;
30434 }
30435
30436 /**
30437 * Removes `key` and its value from the hash.
30438 *
30439 * @private
30440 * @name delete
30441 * @memberOf Hash
30442 * @param {Object} hash The hash to modify.
30443 * @param {string} key The key of the value to remove.
30444 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
30445 */
30446 function hashDelete(key) {
30447 var result = this.has(key) && delete this.__data__[key];
30448 this.size -= result ? 1 : 0;
30449 return result;
30450 }
30451
30452 /**
30453 * Gets the hash value for `key`.
30454 *
30455 * @private
30456 * @name get
30457 * @memberOf Hash
30458 * @param {string} key The key of the value to get.
30459 * @returns {*} Returns the entry value.
30460 */
30461 function hashGet(key) {
30462 var data = this.__data__;
30463 if (nativeCreate) {
30464 var result = data[key];
30465 return result === HASH_UNDEFINED ? undefined : result;
30466 }
30467 return hasOwnProperty.call(data, key) ? data[key] : undefined;
30468 }
30469
30470 /**
30471 * Checks if a hash value for `key` exists.
30472 *
30473 * @private
30474 * @name has
30475 * @memberOf Hash
30476 * @param {string} key The key of the entry to check.
30477 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
30478 */
30479 function hashHas(key) {
30480 var data = this.__data__;
30481 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
30482 }
30483
30484 /**
30485 * Sets the hash `key` to `value`.
30486 *
30487 * @private
30488 * @name set
30489 * @memberOf Hash
30490 * @param {string} key The key of the value to set.
30491 * @param {*} value The value to set.
30492 * @returns {Object} Returns the hash instance.
30493 */
30494 function hashSet(key, value) {
30495 var data = this.__data__;
30496 this.size += this.has(key) ? 0 : 1;
30497 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
30498 return this;
30499 }
30500
30501 // Add methods to `Hash`.
30502 Hash.prototype.clear = hashClear;
30503 Hash.prototype['delete'] = hashDelete;
30504 Hash.prototype.get = hashGet;
30505 Hash.prototype.has = hashHas;
30506 Hash.prototype.set = hashSet;
30507
30508 /*------------------------------------------------------------------------*/
30509
30510 /**
30511 * Creates an list cache object.
30512 *
30513 * @private
30514 * @constructor
30515 * @param {Array} [entries] The key-value pairs to cache.
30516 */
30517 function ListCache(entries) {
30518 var index = -1,
30519 length = entries == null ? 0 : entries.length;
30520
30521 this.clear();
30522 while (++index < length) {
30523 var entry = entries[index];
30524 this.set(entry[0], entry[1]);
30525 }
30526 }
30527
30528 /**
30529 * Removes all key-value entries from the list cache.
30530 *
30531 * @private
30532 * @name clear
30533 * @memberOf ListCache
30534 */
30535 function listCacheClear() {
30536 this.__data__ = [];
30537 this.size = 0;
30538 }
30539
30540 /**
30541 * Removes `key` and its value from the list cache.
30542 *
30543 * @private
30544 * @name delete
30545 * @memberOf ListCache
30546 * @param {string} key The key of the value to remove.
30547 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
30548 */
30549 function listCacheDelete(key) {
30550 var data = this.__data__,
30551 index = assocIndexOf(data, key);
30552
30553 if (index < 0) {
30554 return false;
30555 }
30556 var lastIndex = data.length - 1;
30557 if (index == lastIndex) {
30558 data.pop();
30559 } else {
30560 splice.call(data, index, 1);
30561 }
30562 --this.size;
30563 return true;
30564 }
30565
30566 /**
30567 * Gets the list cache value for `key`.
30568 *
30569 * @private
30570 * @name get
30571 * @memberOf ListCache
30572 * @param {string} key The key of the value to get.
30573 * @returns {*} Returns the entry value.
30574 */
30575 function listCacheGet(key) {
30576 var data = this.__data__,
30577 index = assocIndexOf(data, key);
30578
30579 return index < 0 ? undefined : data[index][1];
30580 }
30581
30582 /**
30583 * Checks if a list cache value for `key` exists.
30584 *
30585 * @private
30586 * @name has
30587 * @memberOf ListCache
30588 * @param {string} key The key of the entry to check.
30589 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
30590 */
30591 function listCacheHas(key) {
30592 return assocIndexOf(this.__data__, key) > -1;
30593 }
30594
30595 /**
30596 * Sets the list cache `key` to `value`.
30597 *
30598 * @private
30599 * @name set
30600 * @memberOf ListCache
30601 * @param {string} key The key of the value to set.
30602 * @param {*} value The value to set.
30603 * @returns {Object} Returns the list cache instance.
30604 */
30605 function listCacheSet(key, value) {
30606 var data = this.__data__,
30607 index = assocIndexOf(data, key);
30608
30609 if (index < 0) {
30610 ++this.size;
30611 data.push([key, value]);
30612 } else {
30613 data[index][1] = value;
30614 }
30615 return this;
30616 }
30617
30618 // Add methods to `ListCache`.
30619 ListCache.prototype.clear = listCacheClear;
30620 ListCache.prototype['delete'] = listCacheDelete;
30621 ListCache.prototype.get = listCacheGet;
30622 ListCache.prototype.has = listCacheHas;
30623 ListCache.prototype.set = listCacheSet;
30624
30625 /*------------------------------------------------------------------------*/
30626
30627 /**
30628 * Creates a map cache object to store key-value pairs.
30629 *
30630 * @private
30631 * @constructor
30632 * @param {Array} [entries] The key-value pairs to cache.
30633 */
30634 function MapCache(entries) {
30635 var index = -1,
30636 length = entries == null ? 0 : entries.length;
30637
30638 this.clear();
30639 while (++index < length) {
30640 var entry = entries[index];
30641 this.set(entry[0], entry[1]);
30642 }
30643 }
30644
30645 /**
30646 * Removes all key-value entries from the map.
30647 *
30648 * @private
30649 * @name clear
30650 * @memberOf MapCache
30651 */
30652 function mapCacheClear() {
30653 this.size = 0;
30654 this.__data__ = {
30655 'hash': new Hash,
30656 'map': new (Map || ListCache),
30657 'string': new Hash
30658 };
30659 }
30660
30661 /**
30662 * Removes `key` and its value from the map.
30663 *
30664 * @private
30665 * @name delete
30666 * @memberOf MapCache
30667 * @param {string} key The key of the value to remove.
30668 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
30669 */
30670 function mapCacheDelete(key) {
30671 var result = getMapData(this, key)['delete'](key);
30672 this.size -= result ? 1 : 0;
30673 return result;
30674 }
30675
30676 /**
30677 * Gets the map value for `key`.
30678 *
30679 * @private
30680 * @name get
30681 * @memberOf MapCache
30682 * @param {string} key The key of the value to get.
30683 * @returns {*} Returns the entry value.
30684 */
30685 function mapCacheGet(key) {
30686 return getMapData(this, key).get(key);
30687 }
30688
30689 /**
30690 * Checks if a map value for `key` exists.
30691 *
30692 * @private
30693 * @name has
30694 * @memberOf MapCache
30695 * @param {string} key The key of the entry to check.
30696 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
30697 */
30698 function mapCacheHas(key) {
30699 return getMapData(this, key).has(key);
30700 }
30701
30702 /**
30703 * Sets the map `key` to `value`.
30704 *
30705 * @private
30706 * @name set
30707 * @memberOf MapCache
30708 * @param {string} key The key of the value to set.
30709 * @param {*} value The value to set.
30710 * @returns {Object} Returns the map cache instance.
30711 */
30712 function mapCacheSet(key, value) {
30713 var data = getMapData(this, key),
30714 size = data.size;
30715
30716 data.set(key, value);
30717 this.size += data.size == size ? 0 : 1;
30718 return this;
30719 }
30720
30721 // Add methods to `MapCache`.
30722 MapCache.prototype.clear = mapCacheClear;
30723 MapCache.prototype['delete'] = mapCacheDelete;
30724 MapCache.prototype.get = mapCacheGet;
30725 MapCache.prototype.has = mapCacheHas;
30726 MapCache.prototype.set = mapCacheSet;
30727
30728 /*------------------------------------------------------------------------*/
30729
30730 /**
30731 *
30732 * Creates an array cache object to store unique values.
30733 *
30734 * @private
30735 * @constructor
30736 * @param {Array} [values] The values to cache.
30737 */
30738 function SetCache(values) {
30739 var index = -1,
30740 length = values == null ? 0 : values.length;
30741
30742 this.__data__ = new MapCache;
30743 while (++index < length) {
30744 this.add(values[index]);
30745 }
30746 }
30747
30748 /**
30749 * Adds `value` to the array cache.
30750 *
30751 * @private
30752 * @name add
30753 * @memberOf SetCache
30754 * @alias push
30755 * @param {*} value The value to cache.
30756 * @returns {Object} Returns the cache instance.
30757 */
30758 function setCacheAdd(value) {
30759 this.__data__.set(value, HASH_UNDEFINED);
30760 return this;
30761 }
30762
30763 /**
30764 * Checks if `value` is in the array cache.
30765 *
30766 * @private
30767 * @name has
30768 * @memberOf SetCache
30769 * @param {*} value The value to search for.
30770 * @returns {number} Returns `true` if `value` is found, else `false`.
30771 */
30772 function setCacheHas(value) {
30773 return this.__data__.has(value);
30774 }
30775
30776 // Add methods to `SetCache`.
30777 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
30778 SetCache.prototype.has = setCacheHas;
30779
30780 /*------------------------------------------------------------------------*/
30781
30782 /**
30783 * Creates a stack cache object to store key-value pairs.
30784 *
30785 * @private
30786 * @constructor
30787 * @param {Array} [entries] The key-value pairs to cache.
30788 */
30789 function Stack(entries) {
30790 var data = this.__data__ = new ListCache(entries);
30791 this.size = data.size;
30792 }
30793
30794 /**
30795 * Removes all key-value entries from the stack.
30796 *
30797 * @private
30798 * @name clear
30799 * @memberOf Stack
30800 */
30801 function stackClear() {
30802 this.__data__ = new ListCache;
30803 this.size = 0;
30804 }
30805
30806 /**
30807 * Removes `key` and its value from the stack.
30808 *
30809 * @private
30810 * @name delete
30811 * @memberOf Stack
30812 * @param {string} key The key of the value to remove.
30813 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
30814 */
30815 function stackDelete(key) {
30816 var data = this.__data__,
30817 result = data['delete'](key);
30818
30819 this.size = data.size;
30820 return result;
30821 }
30822
30823 /**
30824 * Gets the stack value for `key`.
30825 *
30826 * @private
30827 * @name get
30828 * @memberOf Stack
30829 * @param {string} key The key of the value to get.
30830 * @returns {*} Returns the entry value.
30831 */
30832 function stackGet(key) {
30833 return this.__data__.get(key);
30834 }
30835
30836 /**
30837 * Checks if a stack value for `key` exists.
30838 *
30839 * @private
30840 * @name has
30841 * @memberOf Stack
30842 * @param {string} key The key of the entry to check.
30843 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
30844 */
30845 function stackHas(key) {
30846 return this.__data__.has(key);
30847 }
30848
30849 /**
30850 * Sets the stack `key` to `value`.
30851 *
30852 * @private
30853 * @name set
30854 * @memberOf Stack
30855 * @param {string} key The key of the value to set.
30856 * @param {*} value The value to set.
30857 * @returns {Object} Returns the stack cache instance.
30858 */
30859 function stackSet(key, value) {
30860 var data = this.__data__;
30861 if (data instanceof ListCache) {
30862 var pairs = data.__data__;
30863 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
30864 pairs.push([key, value]);
30865 this.size = ++data.size;
30866 return this;
30867 }
30868 data = this.__data__ = new MapCache(pairs);
30869 }
30870 data.set(key, value);
30871 this.size = data.size;
30872 return this;
30873 }
30874
30875 // Add methods to `Stack`.
30876 Stack.prototype.clear = stackClear;
30877 Stack.prototype['delete'] = stackDelete;
30878 Stack.prototype.get = stackGet;
30879 Stack.prototype.has = stackHas;
30880 Stack.prototype.set = stackSet;
30881
30882 /*------------------------------------------------------------------------*/
30883
30884 /**
30885 * Creates an array of the enumerable property names of the array-like `value`.
30886 *
30887 * @private
30888 * @param {*} value The value to query.
30889 * @param {boolean} inherited Specify returning inherited property names.
30890 * @returns {Array} Returns the array of property names.
30891 */
30892 function arrayLikeKeys(value, inherited) {
30893 var isArr = isArray(value),
30894 isArg = !isArr && isArguments(value),
30895 isBuff = !isArr && !isArg && isBuffer(value),
30896 isType = !isArr && !isArg && !isBuff && isTypedArray(value),
30897 skipIndexes = isArr || isArg || isBuff || isType,
30898 result = skipIndexes ? baseTimes(value.length, String) : [],
30899 length = result.length;
30900
30901 for (var key in value) {
30902 if ((inherited || hasOwnProperty.call(value, key)) &&
30903 !(skipIndexes && (
30904 // Safari 9 has enumerable `arguments.length` in strict mode.
30905 key == 'length' ||
30906 // Node.js 0.10 has enumerable non-index properties on buffers.
30907 (isBuff && (key == 'offset' || key == 'parent')) ||
30908 // PhantomJS 2 has enumerable non-index properties on typed arrays.
30909 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
30910 // Skip index properties.
30911 isIndex(key, length)
30912 ))) {
30913 result.push(key);
30914 }
30915 }
30916 return result;
30917 }
30918
30919 /**
30920 * A specialized version of `_.sample` for arrays.
30921 *
30922 * @private
30923 * @param {Array} array The array to sample.
30924 * @returns {*} Returns the random element.
30925 */
30926 function arraySample(array) {
30927 var length = array.length;
30928 return length ? array[baseRandom(0, length - 1)] : undefined;
30929 }
30930
30931 /**
30932 * A specialized version of `_.sampleSize` for arrays.
30933 *
30934 * @private
30935 * @param {Array} array The array to sample.
30936 * @param {number} n The number of elements to sample.
30937 * @returns {Array} Returns the random elements.
30938 */
30939 function arraySampleSize(array, n) {
30940 return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));
30941 }
30942
30943 /**
30944 * A specialized version of `_.shuffle` for arrays.
30945 *
30946 * @private
30947 * @param {Array} array The array to shuffle.
30948 * @returns {Array} Returns the new shuffled array.
30949 */
30950 function arrayShuffle(array) {
30951 return shuffleSelf(copyArray(array));
30952 }
30953
30954 /**
30955 * This function is like `assignValue` except that it doesn't assign
30956 * `undefined` values.
30957 *
30958 * @private
30959 * @param {Object} object The object to modify.
30960 * @param {string} key The key of the property to assign.
30961 * @param {*} value The value to assign.
30962 */
30963 function assignMergeValue(object, key, value) {
30964 if ((value !== undefined && !eq(object[key], value)) ||
30965 (value === undefined && !(key in object))) {
30966 baseAssignValue(object, key, value);
30967 }
30968 }
30969
30970 /**
30971 * Assigns `value` to `key` of `object` if the existing value is not equivalent
30972 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
30973 * for equality comparisons.
30974 *
30975 * @private
30976 * @param {Object} object The object to modify.
30977 * @param {string} key The key of the property to assign.
30978 * @param {*} value The value to assign.
30979 */
30980 function assignValue(object, key, value) {
30981 var objValue = object[key];
30982 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
30983 (value === undefined && !(key in object))) {
30984 baseAssignValue(object, key, value);
30985 }
30986 }
30987
30988 /**
30989 * Gets the index at which the `key` is found in `array` of key-value pairs.
30990 *
30991 * @private
30992 * @param {Array} array The array to inspect.
30993 * @param {*} key The key to search for.
30994 * @returns {number} Returns the index of the matched value, else `-1`.
30995 */
30996 function assocIndexOf(array, key) {
30997 var length = array.length;
30998 while (length--) {
30999 if (eq(array[length][0], key)) {
31000 return length;
31001 }
31002 }
31003 return -1;
31004 }
31005
31006 /**
31007 * Aggregates elements of `collection` on `accumulator` with keys transformed
31008 * by `iteratee` and values set by `setter`.
31009 *
31010 * @private
31011 * @param {Array|Object} collection The collection to iterate over.
31012 * @param {Function} setter The function to set `accumulator` values.
31013 * @param {Function} iteratee The iteratee to transform keys.
31014 * @param {Object} accumulator The initial aggregated object.
31015 * @returns {Function} Returns `accumulator`.
31016 */
31017 function baseAggregator(collection, setter, iteratee, accumulator) {
31018 baseEach(collection, function(value, key, collection) {
31019 setter(accumulator, value, iteratee(value), collection);
31020 });
31021 return accumulator;
31022 }
31023
31024 /**
31025 * The base implementation of `_.assign` without support for multiple sources
31026 * or `customizer` functions.
31027 *
31028 * @private
31029 * @param {Object} object The destination object.
31030 * @param {Object} source The source object.
31031 * @returns {Object} Returns `object`.
31032 */
31033 function baseAssign(object, source) {
31034 return object && copyObject(source, keys(source), object);
31035 }
31036
31037 /**
31038 * The base implementation of `_.assignIn` without support for multiple sources
31039 * or `customizer` functions.
31040 *
31041 * @private
31042 * @param {Object} object The destination object.
31043 * @param {Object} source The source object.
31044 * @returns {Object} Returns `object`.
31045 */
31046 function baseAssignIn(object, source) {
31047 return object && copyObject(source, keysIn(source), object);
31048 }
31049
31050 /**
31051 * The base implementation of `assignValue` and `assignMergeValue` without
31052 * value checks.
31053 *
31054 * @private
31055 * @param {Object} object The object to modify.
31056 * @param {string} key The key of the property to assign.
31057 * @param {*} value The value to assign.
31058 */
31059 function baseAssignValue(object, key, value) {
31060 if (key == '__proto__' && defineProperty) {
31061 defineProperty(object, key, {
31062 'configurable': true,
31063 'enumerable': true,
31064 'value': value,
31065 'writable': true
31066 });
31067 } else {
31068 object[key] = value;
31069 }
31070 }
31071
31072 /**
31073 * The base implementation of `_.at` without support for individual paths.
31074 *
31075 * @private
31076 * @param {Object} object The object to iterate over.
31077 * @param {string[]} paths The property paths to pick.
31078 * @returns {Array} Returns the picked elements.
31079 */
31080 function baseAt(object, paths) {
31081 var index = -1,
31082 length = paths.length,
31083 result = Array(length),
31084 skip = object == null;
31085
31086 while (++index < length) {
31087 result[index] = skip ? undefined : get(object, paths[index]);
31088 }
31089 return result;
31090 }
31091
31092 /**
31093 * The base implementation of `_.clamp` which doesn't coerce arguments.
31094 *
31095 * @private
31096 * @param {number} number The number to clamp.
31097 * @param {number} [lower] The lower bound.
31098 * @param {number} upper The upper bound.
31099 * @returns {number} Returns the clamped number.
31100 */
31101 function baseClamp(number, lower, upper) {
31102 if (number === number) {
31103 if (upper !== undefined) {
31104 number = number <= upper ? number : upper;
31105 }
31106 if (lower !== undefined) {
31107 number = number >= lower ? number : lower;
31108 }
31109 }
31110 return number;
31111 }
31112
31113 /**
31114 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
31115 * traversed objects.
31116 *
31117 * @private
31118 * @param {*} value The value to clone.
31119 * @param {boolean} bitmask The bitmask flags.
31120 * 1 - Deep clone
31121 * 2 - Flatten inherited properties
31122 * 4 - Clone symbols
31123 * @param {Function} [customizer] The function to customize cloning.
31124 * @param {string} [key] The key of `value`.
31125 * @param {Object} [object] The parent object of `value`.
31126 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
31127 * @returns {*} Returns the cloned value.
31128 */
31129 function baseClone(value, bitmask, customizer, key, object, stack) {
31130 var result,
31131 isDeep = bitmask & CLONE_DEEP_FLAG,
31132 isFlat = bitmask & CLONE_FLAT_FLAG,
31133 isFull = bitmask & CLONE_SYMBOLS_FLAG;
31134
31135 if (customizer) {
31136 result = object ? customizer(value, key, object, stack) : customizer(value);
31137 }
31138 if (result !== undefined) {
31139 return result;
31140 }
31141 if (!isObject(value)) {
31142 return value;
31143 }
31144 var isArr = isArray(value);
31145 if (isArr) {
31146 result = initCloneArray(value);
31147 if (!isDeep) {
31148 return copyArray(value, result);
31149 }
31150 } else {
31151 var tag = getTag(value),
31152 isFunc = tag == funcTag || tag == genTag;
31153
31154 if (isBuffer(value)) {
31155 return cloneBuffer(value, isDeep);
31156 }
31157 if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
31158 result = (isFlat || isFunc) ? {} : initCloneObject(value);
31159 if (!isDeep) {
31160 return isFlat
31161 ? copySymbolsIn(value, baseAssignIn(result, value))
31162 : copySymbols(value, baseAssign(result, value));
31163 }
31164 } else {
31165 if (!cloneableTags[tag]) {
31166 return object ? value : {};
31167 }
31168 result = initCloneByTag(value, tag, isDeep);
31169 }
31170 }
31171 // Check for circular references and return its corresponding clone.
31172 stack || (stack = new Stack);
31173 var stacked = stack.get(value);
31174 if (stacked) {
31175 return stacked;
31176 }
31177 stack.set(value, result);
31178
31179 if (isSet(value)) {
31180 value.forEach(function(subValue) {
31181 result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
31182 });
31183
31184 return result;
31185 }
31186
31187 if (isMap(value)) {
31188 value.forEach(function(subValue, key) {
31189 result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
31190 });
31191
31192 return result;
31193 }
31194
31195 var keysFunc = isFull
31196 ? (isFlat ? getAllKeysIn : getAllKeys)
31197 : (isFlat ? keysIn : keys);
31198
31199 var props = isArr ? undefined : keysFunc(value);
31200 arrayEach(props || value, function(subValue, key) {
31201 if (props) {
31202 key = subValue;
31203 subValue = value[key];
31204 }
31205 // Recursively populate clone (susceptible to call stack limits).
31206 assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
31207 });
31208 return result;
31209 }
31210
31211 /**
31212 * The base implementation of `_.conforms` which doesn't clone `source`.
31213 *
31214 * @private
31215 * @param {Object} source The object of property predicates to conform to.
31216 * @returns {Function} Returns the new spec function.
31217 */
31218 function baseConforms(source) {
31219 var props = keys(source);
31220 return function(object) {
31221 return baseConformsTo(object, source, props);
31222 };
31223 }
31224
31225 /**
31226 * The base implementation of `_.conformsTo` which accepts `props` to check.
31227 *
31228 * @private
31229 * @param {Object} object The object to inspect.
31230 * @param {Object} source The object of property predicates to conform to.
31231 * @returns {boolean} Returns `true` if `object` conforms, else `false`.
31232 */
31233 function baseConformsTo(object, source, props) {
31234 var length = props.length;
31235 if (object == null) {
31236 return !length;
31237 }
31238 object = Object(object);
31239 while (length--) {
31240 var key = props[length],
31241 predicate = source[key],
31242 value = object[key];
31243
31244 if ((value === undefined && !(key in object)) || !predicate(value)) {
31245 return false;
31246 }
31247 }
31248 return true;
31249 }
31250
31251 /**
31252 * The base implementation of `_.delay` and `_.defer` which accepts `args`
31253 * to provide to `func`.
31254 *
31255 * @private
31256 * @param {Function} func The function to delay.
31257 * @param {number} wait The number of milliseconds to delay invocation.
31258 * @param {Array} args The arguments to provide to `func`.
31259 * @returns {number|Object} Returns the timer id or timeout object.
31260 */
31261 function baseDelay(func, wait, args) {
31262 if (typeof func != 'function') {
31263 throw new TypeError(FUNC_ERROR_TEXT);
31264 }
31265 return setTimeout(function() { func.apply(undefined, args); }, wait);
31266 }
31267
31268 /**
31269 * The base implementation of methods like `_.difference` without support
31270 * for excluding multiple arrays or iteratee shorthands.
31271 *
31272 * @private
31273 * @param {Array} array The array to inspect.
31274 * @param {Array} values The values to exclude.
31275 * @param {Function} [iteratee] The iteratee invoked per element.
31276 * @param {Function} [comparator] The comparator invoked per element.
31277 * @returns {Array} Returns the new array of filtered values.
31278 */
31279 function baseDifference(array, values, iteratee, comparator) {
31280 var index = -1,
31281 includes = arrayIncludes,
31282 isCommon = true,
31283 length = array.length,
31284 result = [],
31285 valuesLength = values.length;
31286
31287 if (!length) {
31288 return result;
31289 }
31290 if (iteratee) {
31291 values = arrayMap(values, baseUnary(iteratee));
31292 }
31293 if (comparator) {
31294 includes = arrayIncludesWith;
31295 isCommon = false;
31296 }
31297 else if (values.length >= LARGE_ARRAY_SIZE) {
31298 includes = cacheHas;
31299 isCommon = false;
31300 values = new SetCache(values);
31301 }
31302 outer:
31303 while (++index < length) {
31304 var value = array[index],
31305 computed = iteratee == null ? value : iteratee(value);
31306
31307 value = (comparator || value !== 0) ? value : 0;
31308 if (isCommon && computed === computed) {
31309 var valuesIndex = valuesLength;
31310 while (valuesIndex--) {
31311 if (values[valuesIndex] === computed) {
31312 continue outer;
31313 }
31314 }
31315 result.push(value);
31316 }
31317 else if (!includes(values, computed, comparator)) {
31318 result.push(value);
31319 }
31320 }
31321 return result;
31322 }
31323
31324 /**
31325 * The base implementation of `_.forEach` without support for iteratee shorthands.
31326 *
31327 * @private
31328 * @param {Array|Object} collection The collection to iterate over.
31329 * @param {Function} iteratee The function invoked per iteration.
31330 * @returns {Array|Object} Returns `collection`.
31331 */
31332 var baseEach = createBaseEach(baseForOwn);
31333
31334 /**
31335 * The base implementation of `_.forEachRight` without support for iteratee shorthands.
31336 *
31337 * @private
31338 * @param {Array|Object} collection The collection to iterate over.
31339 * @param {Function} iteratee The function invoked per iteration.
31340 * @returns {Array|Object} Returns `collection`.
31341 */
31342 var baseEachRight = createBaseEach(baseForOwnRight, true);
31343
31344 /**
31345 * The base implementation of `_.every` without support for iteratee shorthands.
31346 *
31347 * @private
31348 * @param {Array|Object} collection The collection to iterate over.
31349 * @param {Function} predicate The function invoked per iteration.
31350 * @returns {boolean} Returns `true` if all elements pass the predicate check,
31351 * else `false`
31352 */
31353 function baseEvery(collection, predicate) {
31354 var result = true;
31355 baseEach(collection, function(value, index, collection) {
31356 result = !!predicate(value, index, collection);
31357 return result;
31358 });
31359 return result;
31360 }
31361
31362 /**
31363 * The base implementation of methods like `_.max` and `_.min` which accepts a
31364 * `comparator` to determine the extremum value.
31365 *
31366 * @private
31367 * @param {Array} array The array to iterate over.
31368 * @param {Function} iteratee The iteratee invoked per iteration.
31369 * @param {Function} comparator The comparator used to compare values.
31370 * @returns {*} Returns the extremum value.
31371 */
31372 function baseExtremum(array, iteratee, comparator) {
31373 var index = -1,
31374 length = array.length;
31375
31376 while (++index < length) {
31377 var value = array[index],
31378 current = iteratee(value);
31379
31380 if (current != null && (computed === undefined
31381 ? (current === current && !isSymbol(current))
31382 : comparator(current, computed)
31383 )) {
31384 var computed = current,
31385 result = value;
31386 }
31387 }
31388 return result;
31389 }
31390
31391 /**
31392 * The base implementation of `_.fill` without an iteratee call guard.
31393 *
31394 * @private
31395 * @param {Array} array The array to fill.
31396 * @param {*} value The value to fill `array` with.
31397 * @param {number} [start=0] The start position.
31398 * @param {number} [end=array.length] The end position.
31399 * @returns {Array} Returns `array`.
31400 */
31401 function baseFill(array, value, start, end) {
31402 var length = array.length;
31403
31404 start = toInteger(start);
31405 if (start < 0) {
31406 start = -start > length ? 0 : (length + start);
31407 }
31408 end = (end === undefined || end > length) ? length : toInteger(end);
31409 if (end < 0) {
31410 end += length;
31411 }
31412 end = start > end ? 0 : toLength(end);
31413 while (start < end) {
31414 array[start++] = value;
31415 }
31416 return array;
31417 }
31418
31419 /**
31420 * The base implementation of `_.filter` without support for iteratee shorthands.
31421 *
31422 * @private
31423 * @param {Array|Object} collection The collection to iterate over.
31424 * @param {Function} predicate The function invoked per iteration.
31425 * @returns {Array} Returns the new filtered array.
31426 */
31427 function baseFilter(collection, predicate) {
31428 var result = [];
31429 baseEach(collection, function(value, index, collection) {
31430 if (predicate(value, index, collection)) {
31431 result.push(value);
31432 }
31433 });
31434 return result;
31435 }
31436
31437 /**
31438 * The base implementation of `_.flatten` with support for restricting flattening.
31439 *
31440 * @private
31441 * @param {Array} array The array to flatten.
31442 * @param {number} depth The maximum recursion depth.
31443 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
31444 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
31445 * @param {Array} [result=[]] The initial result value.
31446 * @returns {Array} Returns the new flattened array.
31447 */
31448 function baseFlatten(array, depth, predicate, isStrict, result) {
31449 var index = -1,
31450 length = array.length;
31451
31452 predicate || (predicate = isFlattenable);
31453 result || (result = []);
31454
31455 while (++index < length) {
31456 var value = array[index];
31457 if (depth > 0 && predicate(value)) {
31458 if (depth > 1) {
31459 // Recursively flatten arrays (susceptible to call stack limits).
31460 baseFlatten(value, depth - 1, predicate, isStrict, result);
31461 } else {
31462 arrayPush(result, value);
31463 }
31464 } else if (!isStrict) {
31465 result[result.length] = value;
31466 }
31467 }
31468 return result;
31469 }
31470
31471 /**
31472 * The base implementation of `baseForOwn` which iterates over `object`
31473 * properties returned by `keysFunc` and invokes `iteratee` for each property.
31474 * Iteratee functions may exit iteration early by explicitly returning `false`.
31475 *
31476 * @private
31477 * @param {Object} object The object to iterate over.
31478 * @param {Function} iteratee The function invoked per iteration.
31479 * @param {Function} keysFunc The function to get the keys of `object`.
31480 * @returns {Object} Returns `object`.
31481 */
31482 var baseFor = createBaseFor();
31483
31484 /**
31485 * This function is like `baseFor` except that it iterates over properties
31486 * in the opposite order.
31487 *
31488 * @private
31489 * @param {Object} object The object to iterate over.
31490 * @param {Function} iteratee The function invoked per iteration.
31491 * @param {Function} keysFunc The function to get the keys of `object`.
31492 * @returns {Object} Returns `object`.
31493 */
31494 var baseForRight = createBaseFor(true);
31495
31496 /**
31497 * The base implementation of `_.forOwn` without support for iteratee shorthands.
31498 *
31499 * @private
31500 * @param {Object} object The object to iterate over.
31501 * @param {Function} iteratee The function invoked per iteration.
31502 * @returns {Object} Returns `object`.
31503 */
31504 function baseForOwn(object, iteratee) {
31505 return object && baseFor(object, iteratee, keys);
31506 }
31507
31508 /**
31509 * The base implementation of `_.forOwnRight` without support for iteratee shorthands.
31510 *
31511 * @private
31512 * @param {Object} object The object to iterate over.
31513 * @param {Function} iteratee The function invoked per iteration.
31514 * @returns {Object} Returns `object`.
31515 */
31516 function baseForOwnRight(object, iteratee) {
31517 return object && baseForRight(object, iteratee, keys);
31518 }
31519
31520 /**
31521 * The base implementation of `_.functions` which creates an array of
31522 * `object` function property names filtered from `props`.
31523 *
31524 * @private
31525 * @param {Object} object The object to inspect.
31526 * @param {Array} props The property names to filter.
31527 * @returns {Array} Returns the function names.
31528 */
31529 function baseFunctions(object, props) {
31530 return arrayFilter(props, function(key) {
31531 return isFunction(object[key]);
31532 });
31533 }
31534
31535 /**
31536 * The base implementation of `_.get` without support for default values.
31537 *
31538 * @private
31539 * @param {Object} object The object to query.
31540 * @param {Array|string} path The path of the property to get.
31541 * @returns {*} Returns the resolved value.
31542 */
31543 function baseGet(object, path) {
31544 path = castPath(path, object);
31545
31546 var index = 0,
31547 length = path.length;
31548
31549 while (object != null && index < length) {
31550 object = object[toKey(path[index++])];
31551 }
31552 return (index && index == length) ? object : undefined;
31553 }
31554
31555 /**
31556 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
31557 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
31558 * symbols of `object`.
31559 *
31560 * @private
31561 * @param {Object} object The object to query.
31562 * @param {Function} keysFunc The function to get the keys of `object`.
31563 * @param {Function} symbolsFunc The function to get the symbols of `object`.
31564 * @returns {Array} Returns the array of property names and symbols.
31565 */
31566 function baseGetAllKeys(object, keysFunc, symbolsFunc) {
31567 var result = keysFunc(object);
31568 return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
31569 }
31570
31571 /**
31572 * The base implementation of `getTag` without fallbacks for buggy environments.
31573 *
31574 * @private
31575 * @param {*} value The value to query.
31576 * @returns {string} Returns the `toStringTag`.
31577 */
31578 function baseGetTag(value) {
31579 if (value == null) {
31580 return value === undefined ? undefinedTag : nullTag;
31581 }
31582 return (symToStringTag && symToStringTag in Object(value))
31583 ? getRawTag(value)
31584 : objectToString(value);
31585 }
31586
31587 /**
31588 * The base implementation of `_.gt` which doesn't coerce arguments.
31589 *
31590 * @private
31591 * @param {*} value The value to compare.
31592 * @param {*} other The other value to compare.
31593 * @returns {boolean} Returns `true` if `value` is greater than `other`,
31594 * else `false`.
31595 */
31596 function baseGt(value, other) {
31597 return value > other;
31598 }
31599
31600 /**
31601 * The base implementation of `_.has` without support for deep paths.
31602 *
31603 * @private
31604 * @param {Object} [object] The object to query.
31605 * @param {Array|string} key The key to check.
31606 * @returns {boolean} Returns `true` if `key` exists, else `false`.
31607 */
31608 function baseHas(object, key) {
31609 return object != null && hasOwnProperty.call(object, key);
31610 }
31611
31612 /**
31613 * The base implementation of `_.hasIn` without support for deep paths.
31614 *
31615 * @private
31616 * @param {Object} [object] The object to query.
31617 * @param {Array|string} key The key to check.
31618 * @returns {boolean} Returns `true` if `key` exists, else `false`.
31619 */
31620 function baseHasIn(object, key) {
31621 return object != null && key in Object(object);
31622 }
31623
31624 /**
31625 * The base implementation of `_.inRange` which doesn't coerce arguments.
31626 *
31627 * @private
31628 * @param {number} number The number to check.
31629 * @param {number} start The start of the range.
31630 * @param {number} end The end of the range.
31631 * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
31632 */
31633 function baseInRange(number, start, end) {
31634 return number >= nativeMin(start, end) && number < nativeMax(start, end);
31635 }
31636
31637 /**
31638 * The base implementation of methods like `_.intersection`, without support
31639 * for iteratee shorthands, that accepts an array of arrays to inspect.
31640 *
31641 * @private
31642 * @param {Array} arrays The arrays to inspect.
31643 * @param {Function} [iteratee] The iteratee invoked per element.
31644 * @param {Function} [comparator] The comparator invoked per element.
31645 * @returns {Array} Returns the new array of shared values.
31646 */
31647 function baseIntersection(arrays, iteratee, comparator) {
31648 var includes = comparator ? arrayIncludesWith : arrayIncludes,
31649 length = arrays[0].length,
31650 othLength = arrays.length,
31651 othIndex = othLength,
31652 caches = Array(othLength),
31653 maxLength = Infinity,
31654 result = [];
31655
31656 while (othIndex--) {
31657 var array = arrays[othIndex];
31658 if (othIndex && iteratee) {
31659 array = arrayMap(array, baseUnary(iteratee));
31660 }
31661 maxLength = nativeMin(array.length, maxLength);
31662 caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
31663 ? new SetCache(othIndex && array)
31664 : undefined;
31665 }
31666 array = arrays[0];
31667
31668 var index = -1,
31669 seen = caches[0];
31670
31671 outer:
31672 while (++index < length && result.length < maxLength) {
31673 var value = array[index],
31674 computed = iteratee ? iteratee(value) : value;
31675
31676 value = (comparator || value !== 0) ? value : 0;
31677 if (!(seen
31678 ? cacheHas(seen, computed)
31679 : includes(result, computed, comparator)
31680 )) {
31681 othIndex = othLength;
31682 while (--othIndex) {
31683 var cache = caches[othIndex];
31684 if (!(cache
31685 ? cacheHas(cache, computed)
31686 : includes(arrays[othIndex], computed, comparator))
31687 ) {
31688 continue outer;
31689 }
31690 }
31691 if (seen) {
31692 seen.push(computed);
31693 }
31694 result.push(value);
31695 }
31696 }
31697 return result;
31698 }
31699
31700 /**
31701 * The base implementation of `_.invert` and `_.invertBy` which inverts
31702 * `object` with values transformed by `iteratee` and set by `setter`.
31703 *
31704 * @private
31705 * @param {Object} object The object to iterate over.
31706 * @param {Function} setter The function to set `accumulator` values.
31707 * @param {Function} iteratee The iteratee to transform values.
31708 * @param {Object} accumulator The initial inverted object.
31709 * @returns {Function} Returns `accumulator`.
31710 */
31711 function baseInverter(object, setter, iteratee, accumulator) {
31712 baseForOwn(object, function(value, key, object) {
31713 setter(accumulator, iteratee(value), key, object);
31714 });
31715 return accumulator;
31716 }
31717
31718 /**
31719 * The base implementation of `_.invoke` without support for individual
31720 * method arguments.
31721 *
31722 * @private
31723 * @param {Object} object The object to query.
31724 * @param {Array|string} path The path of the method to invoke.
31725 * @param {Array} args The arguments to invoke the method with.
31726 * @returns {*} Returns the result of the invoked method.
31727 */
31728 function baseInvoke(object, path, args) {
31729 path = castPath(path, object);
31730 object = parent(object, path);
31731 var func = object == null ? object : object[toKey(last(path))];
31732 return func == null ? undefined : apply(func, object, args);
31733 }
31734
31735 /**
31736 * The base implementation of `_.isArguments`.
31737 *
31738 * @private
31739 * @param {*} value The value to check.
31740 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
31741 */
31742 function baseIsArguments(value) {
31743 return isObjectLike(value) && baseGetTag(value) == argsTag;
31744 }
31745
31746 /**
31747 * The base implementation of `_.isArrayBuffer` without Node.js optimizations.
31748 *
31749 * @private
31750 * @param {*} value The value to check.
31751 * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
31752 */
31753 function baseIsArrayBuffer(value) {
31754 return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
31755 }
31756
31757 /**
31758 * The base implementation of `_.isDate` without Node.js optimizations.
31759 *
31760 * @private
31761 * @param {*} value The value to check.
31762 * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
31763 */
31764 function baseIsDate(value) {
31765 return isObjectLike(value) && baseGetTag(value) == dateTag;
31766 }
31767
31768 /**
31769 * The base implementation of `_.isEqual` which supports partial comparisons
31770 * and tracks traversed objects.
31771 *
31772 * @private
31773 * @param {*} value The value to compare.
31774 * @param {*} other The other value to compare.
31775 * @param {boolean} bitmask The bitmask flags.
31776 * 1 - Unordered comparison
31777 * 2 - Partial comparison
31778 * @param {Function} [customizer] The function to customize comparisons.
31779 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
31780 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
31781 */
31782 function baseIsEqual(value, other, bitmask, customizer, stack) {
31783 if (value === other) {
31784 return true;
31785 }
31786 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
31787 return value !== value && other !== other;
31788 }
31789 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
31790 }
31791
31792 /**
31793 * A specialized version of `baseIsEqual` for arrays and objects which performs
31794 * deep comparisons and tracks traversed objects enabling objects with circular
31795 * references to be compared.
31796 *
31797 * @private
31798 * @param {Object} object The object to compare.
31799 * @param {Object} other The other object to compare.
31800 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
31801 * @param {Function} customizer The function to customize comparisons.
31802 * @param {Function} equalFunc The function to determine equivalents of values.
31803 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
31804 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
31805 */
31806 function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
31807 var objIsArr = isArray(object),
31808 othIsArr = isArray(other),
31809 objTag = objIsArr ? arrayTag : getTag(object),
31810 othTag = othIsArr ? arrayTag : getTag(other);
31811
31812 objTag = objTag == argsTag ? objectTag : objTag;
31813 othTag = othTag == argsTag ? objectTag : othTag;
31814
31815 var objIsObj = objTag == objectTag,
31816 othIsObj = othTag == objectTag,
31817 isSameTag = objTag == othTag;
31818
31819 if (isSameTag && isBuffer(object)) {
31820 if (!isBuffer(other)) {
31821 return false;
31822 }
31823 objIsArr = true;
31824 objIsObj = false;
31825 }
31826 if (isSameTag && !objIsObj) {
31827 stack || (stack = new Stack);
31828 return (objIsArr || isTypedArray(object))
31829 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
31830 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
31831 }
31832 if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
31833 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
31834 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
31835
31836 if (objIsWrapped || othIsWrapped) {
31837 var objUnwrapped = objIsWrapped ? object.value() : object,
31838 othUnwrapped = othIsWrapped ? other.value() : other;
31839
31840 stack || (stack = new Stack);
31841 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
31842 }
31843 }
31844 if (!isSameTag) {
31845 return false;
31846 }
31847 stack || (stack = new Stack);
31848 return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
31849 }
31850
31851 /**
31852 * The base implementation of `_.isMap` without Node.js optimizations.
31853 *
31854 * @private
31855 * @param {*} value The value to check.
31856 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
31857 */
31858 function baseIsMap(value) {
31859 return isObjectLike(value) && getTag(value) == mapTag;
31860 }
31861
31862 /**
31863 * The base implementation of `_.isMatch` without support for iteratee shorthands.
31864 *
31865 * @private
31866 * @param {Object} object The object to inspect.
31867 * @param {Object} source The object of property values to match.
31868 * @param {Array} matchData The property names, values, and compare flags to match.
31869 * @param {Function} [customizer] The function to customize comparisons.
31870 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
31871 */
31872 function baseIsMatch(object, source, matchData, customizer) {
31873 var index = matchData.length,
31874 length = index,
31875 noCustomizer = !customizer;
31876
31877 if (object == null) {
31878 return !length;
31879 }
31880 object = Object(object);
31881 while (index--) {
31882 var data = matchData[index];
31883 if ((noCustomizer && data[2])
31884 ? data[1] !== object[data[0]]
31885 : !(data[0] in object)
31886 ) {
31887 return false;
31888 }
31889 }
31890 while (++index < length) {
31891 data = matchData[index];
31892 var key = data[0],
31893 objValue = object[key],
31894 srcValue = data[1];
31895
31896 if (noCustomizer && data[2]) {
31897 if (objValue === undefined && !(key in object)) {
31898 return false;
31899 }
31900 } else {
31901 var stack = new Stack;
31902 if (customizer) {
31903 var result = customizer(objValue, srcValue, key, object, source, stack);
31904 }
31905 if (!(result === undefined
31906 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
31907 : result
31908 )) {
31909 return false;
31910 }
31911 }
31912 }
31913 return true;
31914 }
31915
31916 /**
31917 * The base implementation of `_.isNative` without bad shim checks.
31918 *
31919 * @private
31920 * @param {*} value The value to check.
31921 * @returns {boolean} Returns `true` if `value` is a native function,
31922 * else `false`.
31923 */
31924 function baseIsNative(value) {
31925 if (!isObject(value) || isMasked(value)) {
31926 return false;
31927 }
31928 var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
31929 return pattern.test(toSource(value));
31930 }
31931
31932 /**
31933 * The base implementation of `_.isRegExp` without Node.js optimizations.
31934 *
31935 * @private
31936 * @param {*} value The value to check.
31937 * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
31938 */
31939 function baseIsRegExp(value) {
31940 return isObjectLike(value) && baseGetTag(value) == regexpTag;
31941 }
31942
31943 /**
31944 * The base implementation of `_.isSet` without Node.js optimizations.
31945 *
31946 * @private
31947 * @param {*} value The value to check.
31948 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
31949 */
31950 function baseIsSet(value) {
31951 return isObjectLike(value) && getTag(value) == setTag;
31952 }
31953
31954 /**
31955 * The base implementation of `_.isTypedArray` without Node.js optimizations.
31956 *
31957 * @private
31958 * @param {*} value The value to check.
31959 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
31960 */
31961 function baseIsTypedArray(value) {
31962 return isObjectLike(value) &&
31963 isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
31964 }
31965
31966 /**
31967 * The base implementation of `_.iteratee`.
31968 *
31969 * @private
31970 * @param {*} [value=_.identity] The value to convert to an iteratee.
31971 * @returns {Function} Returns the iteratee.
31972 */
31973 function baseIteratee(value) {
31974 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
31975 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
31976 if (typeof value == 'function') {
31977 return value;
31978 }
31979 if (value == null) {
31980 return identity;
31981 }
31982 if (typeof value == 'object') {
31983 return isArray(value)
31984 ? baseMatchesProperty(value[0], value[1])
31985 : baseMatches(value);
31986 }
31987 return property(value);
31988 }
31989
31990 /**
31991 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
31992 *
31993 * @private
31994 * @param {Object} object The object to query.
31995 * @returns {Array} Returns the array of property names.
31996 */
31997 function baseKeys(object) {
31998 if (!isPrototype(object)) {
31999 return nativeKeys(object);
32000 }
32001 var result = [];
32002 for (var key in Object(object)) {
32003 if (hasOwnProperty.call(object, key) && key != 'constructor') {
32004 result.push(key);
32005 }
32006 }
32007 return result;
32008 }
32009
32010 /**
32011 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
32012 *
32013 * @private
32014 * @param {Object} object The object to query.
32015 * @returns {Array} Returns the array of property names.
32016 */
32017 function baseKeysIn(object) {
32018 if (!isObject(object)) {
32019 return nativeKeysIn(object);
32020 }
32021 var isProto = isPrototype(object),
32022 result = [];
32023
32024 for (var key in object) {
32025 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
32026 result.push(key);
32027 }
32028 }
32029 return result;
32030 }
32031
32032 /**
32033 * The base implementation of `_.lt` which doesn't coerce arguments.
32034 *
32035 * @private
32036 * @param {*} value The value to compare.
32037 * @param {*} other The other value to compare.
32038 * @returns {boolean} Returns `true` if `value` is less than `other`,
32039 * else `false`.
32040 */
32041 function baseLt(value, other) {
32042 return value < other;
32043 }
32044
32045 /**
32046 * The base implementation of `_.map` without support for iteratee shorthands.
32047 *
32048 * @private
32049 * @param {Array|Object} collection The collection to iterate over.
32050 * @param {Function} iteratee The function invoked per iteration.
32051 * @returns {Array} Returns the new mapped array.
32052 */
32053 function baseMap(collection, iteratee) {
32054 var index = -1,
32055 result = isArrayLike(collection) ? Array(collection.length) : [];
32056
32057 baseEach(collection, function(value, key, collection) {
32058 result[++index] = iteratee(value, key, collection);
32059 });
32060 return result;
32061 }
32062
32063 /**
32064 * The base implementation of `_.matches` which doesn't clone `source`.
32065 *
32066 * @private
32067 * @param {Object} source The object of property values to match.
32068 * @returns {Function} Returns the new spec function.
32069 */
32070 function baseMatches(source) {
32071 var matchData = getMatchData(source);
32072 if (matchData.length == 1 && matchData[0][2]) {
32073 return matchesStrictComparable(matchData[0][0], matchData[0][1]);
32074 }
32075 return function(object) {
32076 return object === source || baseIsMatch(object, source, matchData);
32077 };
32078 }
32079
32080 /**
32081 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
32082 *
32083 * @private
32084 * @param {string} path The path of the property to get.
32085 * @param {*} srcValue The value to match.
32086 * @returns {Function} Returns the new spec function.
32087 */
32088 function baseMatchesProperty(path, srcValue) {
32089 if (isKey(path) && isStrictComparable(srcValue)) {
32090 return matchesStrictComparable(toKey(path), srcValue);
32091 }
32092 return function(object) {
32093 var objValue = get(object, path);
32094 return (objValue === undefined && objValue === srcValue)
32095 ? hasIn(object, path)
32096 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
32097 };
32098 }
32099
32100 /**
32101 * The base implementation of `_.merge` without support for multiple sources.
32102 *
32103 * @private
32104 * @param {Object} object The destination object.
32105 * @param {Object} source The source object.
32106 * @param {number} srcIndex The index of `source`.
32107 * @param {Function} [customizer] The function to customize merged values.
32108 * @param {Object} [stack] Tracks traversed source values and their merged
32109 * counterparts.
32110 */
32111 function baseMerge(object, source, srcIndex, customizer, stack) {
32112 if (object === source) {
32113 return;
32114 }
32115 baseFor(source, function(srcValue, key) {
32116 if (isObject(srcValue)) {
32117 stack || (stack = new Stack);
32118 baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
32119 }
32120 else {
32121 var newValue = customizer
32122 ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
32123 : undefined;
32124
32125 if (newValue === undefined) {
32126 newValue = srcValue;
32127 }
32128 assignMergeValue(object, key, newValue);
32129 }
32130 }, keysIn);
32131 }
32132
32133 /**
32134 * A specialized version of `baseMerge` for arrays and objects which performs
32135 * deep merges and tracks traversed objects enabling objects with circular
32136 * references to be merged.
32137 *
32138 * @private
32139 * @param {Object} object The destination object.
32140 * @param {Object} source The source object.
32141 * @param {string} key The key of the value to merge.
32142 * @param {number} srcIndex The index of `source`.
32143 * @param {Function} mergeFunc The function to merge values.
32144 * @param {Function} [customizer] The function to customize assigned values.
32145 * @param {Object} [stack] Tracks traversed source values and their merged
32146 * counterparts.
32147 */
32148 function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
32149 var objValue = safeGet(object, key),
32150 srcValue = safeGet(source, key),
32151 stacked = stack.get(srcValue);
32152
32153 if (stacked) {
32154 assignMergeValue(object, key, stacked);
32155 return;
32156 }
32157 var newValue = customizer
32158 ? customizer(objValue, srcValue, (key + ''), object, source, stack)
32159 : undefined;
32160
32161 var isCommon = newValue === undefined;
32162
32163 if (isCommon) {
32164 var isArr = isArray(srcValue),
32165 isBuff = !isArr && isBuffer(srcValue),
32166 isTyped = !isArr && !isBuff && isTypedArray(srcValue);
32167
32168 newValue = srcValue;
32169 if (isArr || isBuff || isTyped) {
32170 if (isArray(objValue)) {
32171 newValue = objValue;
32172 }
32173 else if (isArrayLikeObject(objValue)) {
32174 newValue = copyArray(objValue);
32175 }
32176 else if (isBuff) {
32177 isCommon = false;
32178 newValue = cloneBuffer(srcValue, true);
32179 }
32180 else if (isTyped) {
32181 isCommon = false;
32182 newValue = cloneTypedArray(srcValue, true);
32183 }
32184 else {
32185 newValue = [];
32186 }
32187 }
32188 else if (isPlainObject(srcValue) || isArguments(srcValue)) {
32189 newValue = objValue;
32190 if (isArguments(objValue)) {
32191 newValue = toPlainObject(objValue);
32192 }
32193 else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {
32194 newValue = initCloneObject(srcValue);
32195 }
32196 }
32197 else {
32198 isCommon = false;
32199 }
32200 }
32201 if (isCommon) {
32202 // Recursively merge objects and arrays (susceptible to call stack limits).
32203 stack.set(srcValue, newValue);
32204 mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
32205 stack['delete'](srcValue);
32206 }
32207 assignMergeValue(object, key, newValue);
32208 }
32209
32210 /**
32211 * The base implementation of `_.nth` which doesn't coerce arguments.
32212 *
32213 * @private
32214 * @param {Array} array The array to query.
32215 * @param {number} n The index of the element to return.
32216 * @returns {*} Returns the nth element of `array`.
32217 */
32218 function baseNth(array, n) {
32219 var length = array.length;
32220 if (!length) {
32221 return;
32222 }
32223 n += n < 0 ? length : 0;
32224 return isIndex(n, length) ? array[n] : undefined;
32225 }
32226
32227 /**
32228 * The base implementation of `_.orderBy` without param guards.
32229 *
32230 * @private
32231 * @param {Array|Object} collection The collection to iterate over.
32232 * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
32233 * @param {string[]} orders The sort orders of `iteratees`.
32234 * @returns {Array} Returns the new sorted array.
32235 */
32236 function baseOrderBy(collection, iteratees, orders) {
32237 var index = -1;
32238 iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee()));
32239
32240 var result = baseMap(collection, function(value, key, collection) {
32241 var criteria = arrayMap(iteratees, function(iteratee) {
32242 return iteratee(value);
32243 });
32244 return { 'criteria': criteria, 'index': ++index, 'value': value };
32245 });
32246
32247 return baseSortBy(result, function(object, other) {
32248 return compareMultiple(object, other, orders);
32249 });
32250 }
32251
32252 /**
32253 * The base implementation of `_.pick` without support for individual
32254 * property identifiers.
32255 *
32256 * @private
32257 * @param {Object} object The source object.
32258 * @param {string[]} paths The property paths to pick.
32259 * @returns {Object} Returns the new object.
32260 */
32261 function basePick(object, paths) {
32262 return basePickBy(object, paths, function(value, path) {
32263 return hasIn(object, path);
32264 });
32265 }
32266
32267 /**
32268 * The base implementation of `_.pickBy` without support for iteratee shorthands.
32269 *
32270 * @private
32271 * @param {Object} object The source object.
32272 * @param {string[]} paths The property paths to pick.
32273 * @param {Function} predicate The function invoked per property.
32274 * @returns {Object} Returns the new object.
32275 */
32276 function basePickBy(object, paths, predicate) {
32277 var index = -1,
32278 length = paths.length,
32279 result = {};
32280
32281 while (++index < length) {
32282 var path = paths[index],
32283 value = baseGet(object, path);
32284
32285 if (predicate(value, path)) {
32286 baseSet(result, castPath(path, object), value);
32287 }
32288 }
32289 return result;
32290 }
32291
32292 /**
32293 * A specialized version of `baseProperty` which supports deep paths.
32294 *
32295 * @private
32296 * @param {Array|string} path The path of the property to get.
32297 * @returns {Function} Returns the new accessor function.
32298 */
32299 function basePropertyDeep(path) {
32300 return function(object) {
32301 return baseGet(object, path);
32302 };
32303 }
32304
32305 /**
32306 * The base implementation of `_.pullAllBy` without support for iteratee
32307 * shorthands.
32308 *
32309 * @private
32310 * @param {Array} array The array to modify.
32311 * @param {Array} values The values to remove.
32312 * @param {Function} [iteratee] The iteratee invoked per element.
32313 * @param {Function} [comparator] The comparator invoked per element.
32314 * @returns {Array} Returns `array`.
32315 */
32316 function basePullAll(array, values, iteratee, comparator) {
32317 var indexOf = comparator ? baseIndexOfWith : baseIndexOf,
32318 index = -1,
32319 length = values.length,
32320 seen = array;
32321
32322 if (array === values) {
32323 values = copyArray(values);
32324 }
32325 if (iteratee) {
32326 seen = arrayMap(array, baseUnary(iteratee));
32327 }
32328 while (++index < length) {
32329 var fromIndex = 0,
32330 value = values[index],
32331 computed = iteratee ? iteratee(value) : value;
32332
32333 while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {
32334 if (seen !== array) {
32335 splice.call(seen, fromIndex, 1);
32336 }
32337 splice.call(array, fromIndex, 1);
32338 }
32339 }
32340 return array;
32341 }
32342
32343 /**
32344 * The base implementation of `_.pullAt` without support for individual
32345 * indexes or capturing the removed elements.
32346 *
32347 * @private
32348 * @param {Array} array The array to modify.
32349 * @param {number[]} indexes The indexes of elements to remove.
32350 * @returns {Array} Returns `array`.
32351 */
32352 function basePullAt(array, indexes) {
32353 var length = array ? indexes.length : 0,
32354 lastIndex = length - 1;
32355
32356 while (length--) {
32357 var index = indexes[length];
32358 if (length == lastIndex || index !== previous) {
32359 var previous = index;
32360 if (isIndex(index)) {
32361 splice.call(array, index, 1);
32362 } else {
32363 baseUnset(array, index);
32364 }
32365 }
32366 }
32367 return array;
32368 }
32369
32370 /**
32371 * The base implementation of `_.random` without support for returning
32372 * floating-point numbers.
32373 *
32374 * @private
32375 * @param {number} lower The lower bound.
32376 * @param {number} upper The upper bound.
32377 * @returns {number} Returns the random number.
32378 */
32379 function baseRandom(lower, upper) {
32380 return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
32381 }
32382
32383 /**
32384 * The base implementation of `_.range` and `_.rangeRight` which doesn't
32385 * coerce arguments.
32386 *
32387 * @private
32388 * @param {number} start The start of the range.
32389 * @param {number} end The end of the range.
32390 * @param {number} step The value to increment or decrement by.
32391 * @param {boolean} [fromRight] Specify iterating from right to left.
32392 * @returns {Array} Returns the range of numbers.
32393 */
32394 function baseRange(start, end, step, fromRight) {
32395 var index = -1,
32396 length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
32397 result = Array(length);
32398
32399 while (length--) {
32400 result[fromRight ? length : ++index] = start;
32401 start += step;
32402 }
32403 return result;
32404 }
32405
32406 /**
32407 * The base implementation of `_.repeat` which doesn't coerce arguments.
32408 *
32409 * @private
32410 * @param {string} string The string to repeat.
32411 * @param {number} n The number of times to repeat the string.
32412 * @returns {string} Returns the repeated string.
32413 */
32414 function baseRepeat(string, n) {
32415 var result = '';
32416 if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
32417 return result;
32418 }
32419 // Leverage the exponentiation by squaring algorithm for a faster repeat.
32420 // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
32421 do {
32422 if (n % 2) {
32423 result += string;
32424 }
32425 n = nativeFloor(n / 2);
32426 if (n) {
32427 string += string;
32428 }
32429 } while (n);
32430
32431 return result;
32432 }
32433
32434 /**
32435 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
32436 *
32437 * @private
32438 * @param {Function} func The function to apply a rest parameter to.
32439 * @param {number} [start=func.length-1] The start position of the rest parameter.
32440 * @returns {Function} Returns the new function.
32441 */
32442 function baseRest(func, start) {
32443 return setToString(overRest(func, start, identity), func + '');
32444 }
32445
32446 /**
32447 * The base implementation of `_.sample`.
32448 *
32449 * @private
32450 * @param {Array|Object} collection The collection to sample.
32451 * @returns {*} Returns the random element.
32452 */
32453 function baseSample(collection) {
32454 return arraySample(values(collection));
32455 }
32456
32457 /**
32458 * The base implementation of `_.sampleSize` without param guards.
32459 *
32460 * @private
32461 * @param {Array|Object} collection The collection to sample.
32462 * @param {number} n The number of elements to sample.
32463 * @returns {Array} Returns the random elements.
32464 */
32465 function baseSampleSize(collection, n) {
32466 var array = values(collection);
32467 return shuffleSelf(array, baseClamp(n, 0, array.length));
32468 }
32469
32470 /**
32471 * The base implementation of `_.set`.
32472 *
32473 * @private
32474 * @param {Object} object The object to modify.
32475 * @param {Array|string} path The path of the property to set.
32476 * @param {*} value The value to set.
32477 * @param {Function} [customizer] The function to customize path creation.
32478 * @returns {Object} Returns `object`.
32479 */
32480 function baseSet(object, path, value, customizer) {
32481 if (!isObject(object)) {
32482 return object;
32483 }
32484 path = castPath(path, object);
32485
32486 var index = -1,
32487 length = path.length,
32488 lastIndex = length - 1,
32489 nested = object;
32490
32491 while (nested != null && ++index < length) {
32492 var key = toKey(path[index]),
32493 newValue = value;
32494
32495 if (index != lastIndex) {
32496 var objValue = nested[key];
32497 newValue = customizer ? customizer(objValue, key, nested) : undefined;
32498 if (newValue === undefined) {
32499 newValue = isObject(objValue)
32500 ? objValue
32501 : (isIndex(path[index + 1]) ? [] : {});
32502 }
32503 }
32504 assignValue(nested, key, newValue);
32505 nested = nested[key];
32506 }
32507 return object;
32508 }
32509
32510 /**
32511 * The base implementation of `setData` without support for hot loop shorting.
32512 *
32513 * @private
32514 * @param {Function} func The function to associate metadata with.
32515 * @param {*} data The metadata.
32516 * @returns {Function} Returns `func`.
32517 */
32518 var baseSetData = !metaMap ? identity : function(func, data) {
32519 metaMap.set(func, data);
32520 return func;
32521 };
32522
32523 /**
32524 * The base implementation of `setToString` without support for hot loop shorting.
32525 *
32526 * @private
32527 * @param {Function} func The function to modify.
32528 * @param {Function} string The `toString` result.
32529 * @returns {Function} Returns `func`.
32530 */
32531 var baseSetToString = !defineProperty ? identity : function(func, string) {
32532 return defineProperty(func, 'toString', {
32533 'configurable': true,
32534 'enumerable': false,
32535 'value': constant(string),
32536 'writable': true
32537 });
32538 };
32539
32540 /**
32541 * The base implementation of `_.shuffle`.
32542 *
32543 * @private
32544 * @param {Array|Object} collection The collection to shuffle.
32545 * @returns {Array} Returns the new shuffled array.
32546 */
32547 function baseShuffle(collection) {
32548 return shuffleSelf(values(collection));
32549 }
32550
32551 /**
32552 * The base implementation of `_.slice` without an iteratee call guard.
32553 *
32554 * @private
32555 * @param {Array} array The array to slice.
32556 * @param {number} [start=0] The start position.
32557 * @param {number} [end=array.length] The end position.
32558 * @returns {Array} Returns the slice of `array`.
32559 */
32560 function baseSlice(array, start, end) {
32561 var index = -1,
32562 length = array.length;
32563
32564 if (start < 0) {
32565 start = -start > length ? 0 : (length + start);
32566 }
32567 end = end > length ? length : end;
32568 if (end < 0) {
32569 end += length;
32570 }
32571 length = start > end ? 0 : ((end - start) >>> 0);
32572 start >>>= 0;
32573
32574 var result = Array(length);
32575 while (++index < length) {
32576 result[index] = array[index + start];
32577 }
32578 return result;
32579 }
32580
32581 /**
32582 * The base implementation of `_.some` without support for iteratee shorthands.
32583 *
32584 * @private
32585 * @param {Array|Object} collection The collection to iterate over.
32586 * @param {Function} predicate The function invoked per iteration.
32587 * @returns {boolean} Returns `true` if any element passes the predicate check,
32588 * else `false`.
32589 */
32590 function baseSome(collection, predicate) {
32591 var result;
32592
32593 baseEach(collection, function(value, index, collection) {
32594 result = predicate(value, index, collection);
32595 return !result;
32596 });
32597 return !!result;
32598 }
32599
32600 /**
32601 * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which
32602 * performs a binary search of `array` to determine the index at which `value`
32603 * should be inserted into `array` in order to maintain its sort order.
32604 *
32605 * @private
32606 * @param {Array} array The sorted array to inspect.
32607 * @param {*} value The value to evaluate.
32608 * @param {boolean} [retHighest] Specify returning the highest qualified index.
32609 * @returns {number} Returns the index at which `value` should be inserted
32610 * into `array`.
32611 */
32612 function baseSortedIndex(array, value, retHighest) {
32613 var low = 0,
32614 high = array == null ? low : array.length;
32615
32616 if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
32617 while (low < high) {
32618 var mid = (low + high) >>> 1,
32619 computed = array[mid];
32620
32621 if (computed !== null && !isSymbol(computed) &&
32622 (retHighest ? (computed <= value) : (computed < value))) {
32623 low = mid + 1;
32624 } else {
32625 high = mid;
32626 }
32627 }
32628 return high;
32629 }
32630 return baseSortedIndexBy(array, value, identity, retHighest);
32631 }
32632
32633 /**
32634 * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`
32635 * which invokes `iteratee` for `value` and each element of `array` to compute
32636 * their sort ranking. The iteratee is invoked with one argument; (value).
32637 *
32638 * @private
32639 * @param {Array} array The sorted array to inspect.
32640 * @param {*} value The value to evaluate.
32641 * @param {Function} iteratee The iteratee invoked per element.
32642 * @param {boolean} [retHighest] Specify returning the highest qualified index.
32643 * @returns {number} Returns the index at which `value` should be inserted
32644 * into `array`.
32645 */
32646 function baseSortedIndexBy(array, value, iteratee, retHighest) {
32647 value = iteratee(value);
32648
32649 var low = 0,
32650 high = array == null ? 0 : array.length,
32651 valIsNaN = value !== value,
32652 valIsNull = value === null,
32653 valIsSymbol = isSymbol(value),
32654 valIsUndefined = value === undefined;
32655
32656 while (low < high) {
32657 var mid = nativeFloor((low + high) / 2),
32658 computed = iteratee(array[mid]),
32659 othIsDefined = computed !== undefined,
32660 othIsNull = computed === null,
32661 othIsReflexive = computed === computed,
32662 othIsSymbol = isSymbol(computed);
32663
32664 if (valIsNaN) {
32665 var setLow = retHighest || othIsReflexive;
32666 } else if (valIsUndefined) {
32667 setLow = othIsReflexive && (retHighest || othIsDefined);
32668 } else if (valIsNull) {
32669 setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
32670 } else if (valIsSymbol) {
32671 setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
32672 } else if (othIsNull || othIsSymbol) {
32673 setLow = false;
32674 } else {
32675 setLow = retHighest ? (computed <= value) : (computed < value);
32676 }
32677 if (setLow) {
32678 low = mid + 1;
32679 } else {
32680 high = mid;
32681 }
32682 }
32683 return nativeMin(high, MAX_ARRAY_INDEX);
32684 }
32685
32686 /**
32687 * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without
32688 * support for iteratee shorthands.
32689 *
32690 * @private
32691 * @param {Array} array The array to inspect.
32692 * @param {Function} [iteratee] The iteratee invoked per element.
32693 * @returns {Array} Returns the new duplicate free array.
32694 */
32695 function baseSortedUniq(array, iteratee) {
32696 var index = -1,
32697 length = array.length,
32698 resIndex = 0,
32699 result = [];
32700
32701 while (++index < length) {
32702 var value = array[index],
32703 computed = iteratee ? iteratee(value) : value;
32704
32705 if (!index || !eq(computed, seen)) {
32706 var seen = computed;
32707 result[resIndex++] = value === 0 ? 0 : value;
32708 }
32709 }
32710 return result;
32711 }
32712
32713 /**
32714 * The base implementation of `_.toNumber` which doesn't ensure correct
32715 * conversions of binary, hexadecimal, or octal string values.
32716 *
32717 * @private
32718 * @param {*} value The value to process.
32719 * @returns {number} Returns the number.
32720 */
32721 function baseToNumber(value) {
32722 if (typeof value == 'number') {
32723 return value;
32724 }
32725 if (isSymbol(value)) {
32726 return NAN;
32727 }
32728 return +value;
32729 }
32730
32731 /**
32732 * The base implementation of `_.toString` which doesn't convert nullish
32733 * values to empty strings.
32734 *
32735 * @private
32736 * @param {*} value The value to process.
32737 * @returns {string} Returns the string.
32738 */
32739 function baseToString(value) {
32740 // Exit early for strings to avoid a performance hit in some environments.
32741 if (typeof value == 'string') {
32742 return value;
32743 }
32744 if (isArray(value)) {
32745 // Recursively convert values (susceptible to call stack limits).
32746 return arrayMap(value, baseToString) + '';
32747 }
32748 if (isSymbol(value)) {
32749 return symbolToString ? symbolToString.call(value) : '';
32750 }
32751 var result = (value + '');
32752 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
32753 }
32754
32755 /**
32756 * The base implementation of `_.uniqBy` without support for iteratee shorthands.
32757 *
32758 * @private
32759 * @param {Array} array The array to inspect.
32760 * @param {Function} [iteratee] The iteratee invoked per element.
32761 * @param {Function} [comparator] The comparator invoked per element.
32762 * @returns {Array} Returns the new duplicate free array.
32763 */
32764 function baseUniq(array, iteratee, comparator) {
32765 var index = -1,
32766 includes = arrayIncludes,
32767 length = array.length,
32768 isCommon = true,
32769 result = [],
32770 seen = result;
32771
32772 if (comparator) {
32773 isCommon = false;
32774 includes = arrayIncludesWith;
32775 }
32776 else if (length >= LARGE_ARRAY_SIZE) {
32777 var set = iteratee ? null : createSet(array);
32778 if (set) {
32779 return setToArray(set);
32780 }
32781 isCommon = false;
32782 includes = cacheHas;
32783 seen = new SetCache;
32784 }
32785 else {
32786 seen = iteratee ? [] : result;
32787 }
32788 outer:
32789 while (++index < length) {
32790 var value = array[index],
32791 computed = iteratee ? iteratee(value) : value;
32792
32793 value = (comparator || value !== 0) ? value : 0;
32794 if (isCommon && computed === computed) {
32795 var seenIndex = seen.length;
32796 while (seenIndex--) {
32797 if (seen[seenIndex] === computed) {
32798 continue outer;
32799 }
32800 }
32801 if (iteratee) {
32802 seen.push(computed);
32803 }
32804 result.push(value);
32805 }
32806 else if (!includes(seen, computed, comparator)) {
32807 if (seen !== result) {
32808 seen.push(computed);
32809 }
32810 result.push(value);
32811 }
32812 }
32813 return result;
32814 }
32815
32816 /**
32817 * The base implementation of `_.unset`.
32818 *
32819 * @private
32820 * @param {Object} object The object to modify.
32821 * @param {Array|string} path The property path to unset.
32822 * @returns {boolean} Returns `true` if the property is deleted, else `false`.
32823 */
32824 function baseUnset(object, path) {
32825 path = castPath(path, object);
32826 object = parent(object, path);
32827 return object == null || delete object[toKey(last(path))];
32828 }
32829
32830 /**
32831 * The base implementation of `_.update`.
32832 *
32833 * @private
32834 * @param {Object} object The object to modify.
32835 * @param {Array|string} path The path of the property to update.
32836 * @param {Function} updater The function to produce the updated value.
32837 * @param {Function} [customizer] The function to customize path creation.
32838 * @returns {Object} Returns `object`.
32839 */
32840 function baseUpdate(object, path, updater, customizer) {
32841 return baseSet(object, path, updater(baseGet(object, path)), customizer);
32842 }
32843
32844 /**
32845 * The base implementation of methods like `_.dropWhile` and `_.takeWhile`
32846 * without support for iteratee shorthands.
32847 *
32848 * @private
32849 * @param {Array} array The array to query.
32850 * @param {Function} predicate The function invoked per iteration.
32851 * @param {boolean} [isDrop] Specify dropping elements instead of taking them.
32852 * @param {boolean} [fromRight] Specify iterating from right to left.
32853 * @returns {Array} Returns the slice of `array`.
32854 */
32855 function baseWhile(array, predicate, isDrop, fromRight) {
32856 var length = array.length,
32857 index = fromRight ? length : -1;
32858
32859 while ((fromRight ? index-- : ++index < length) &&
32860 predicate(array[index], index, array)) {}
32861
32862 return isDrop
32863 ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))
32864 : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));
32865 }
32866
32867 /**
32868 * The base implementation of `wrapperValue` which returns the result of
32869 * performing a sequence of actions on the unwrapped `value`, where each
32870 * successive action is supplied the return value of the previous.
32871 *
32872 * @private
32873 * @param {*} value The unwrapped value.
32874 * @param {Array} actions Actions to perform to resolve the unwrapped value.
32875 * @returns {*} Returns the resolved value.
32876 */
32877 function baseWrapperValue(value, actions) {
32878 var result = value;
32879 if (result instanceof LazyWrapper) {
32880 result = result.value();
32881 }
32882 return arrayReduce(actions, function(result, action) {
32883 return action.func.apply(action.thisArg, arrayPush([result], action.args));
32884 }, result);
32885 }
32886
32887 /**
32888 * The base implementation of methods like `_.xor`, without support for
32889 * iteratee shorthands, that accepts an array of arrays to inspect.
32890 *
32891 * @private
32892 * @param {Array} arrays The arrays to inspect.
32893 * @param {Function} [iteratee] The iteratee invoked per element.
32894 * @param {Function} [comparator] The comparator invoked per element.
32895 * @returns {Array} Returns the new array of values.
32896 */
32897 function baseXor(arrays, iteratee, comparator) {
32898 var length = arrays.length;
32899 if (length < 2) {
32900 return length ? baseUniq(arrays[0]) : [];
32901 }
32902 var index = -1,
32903 result = Array(length);
32904
32905 while (++index < length) {
32906 var array = arrays[index],
32907 othIndex = -1;
32908
32909 while (++othIndex < length) {
32910 if (othIndex != index) {
32911 result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
32912 }
32913 }
32914 }
32915 return baseUniq(baseFlatten(result, 1), iteratee, comparator);
32916 }
32917
32918 /**
32919 * This base implementation of `_.zipObject` which assigns values using `assignFunc`.
32920 *
32921 * @private
32922 * @param {Array} props The property identifiers.
32923 * @param {Array} values The property values.
32924 * @param {Function} assignFunc The function to assign values.
32925 * @returns {Object} Returns the new object.
32926 */
32927 function baseZipObject(props, values, assignFunc) {
32928 var index = -1,
32929 length = props.length,
32930 valsLength = values.length,
32931 result = {};
32932
32933 while (++index < length) {
32934 var value = index < valsLength ? values[index] : undefined;
32935 assignFunc(result, props[index], value);
32936 }
32937 return result;
32938 }
32939
32940 /**
32941 * Casts `value` to an empty array if it's not an array like object.
32942 *
32943 * @private
32944 * @param {*} value The value to inspect.
32945 * @returns {Array|Object} Returns the cast array-like object.
32946 */
32947 function castArrayLikeObject(value) {
32948 return isArrayLikeObject(value) ? value : [];
32949 }
32950
32951 /**
32952 * Casts `value` to `identity` if it's not a function.
32953 *
32954 * @private
32955 * @param {*} value The value to inspect.
32956 * @returns {Function} Returns cast function.
32957 */
32958 function castFunction(value) {
32959 return typeof value == 'function' ? value : identity;
32960 }
32961
32962 /**
32963 * Casts `value` to a path array if it's not one.
32964 *
32965 * @private
32966 * @param {*} value The value to inspect.
32967 * @param {Object} [object] The object to query keys on.
32968 * @returns {Array} Returns the cast property path array.
32969 */
32970 function castPath(value, object) {
32971 if (isArray(value)) {
32972 return value;
32973 }
32974 return isKey(value, object) ? [value] : stringToPath(toString(value));
32975 }
32976
32977 /**
32978 * A `baseRest` alias which can be replaced with `identity` by module
32979 * replacement plugins.
32980 *
32981 * @private
32982 * @type {Function}
32983 * @param {Function} func The function to apply a rest parameter to.
32984 * @returns {Function} Returns the new function.
32985 */
32986 var castRest = baseRest;
32987
32988 /**
32989 * Casts `array` to a slice if it's needed.
32990 *
32991 * @private
32992 * @param {Array} array The array to inspect.
32993 * @param {number} start The start position.
32994 * @param {number} [end=array.length] The end position.
32995 * @returns {Array} Returns the cast slice.
32996 */
32997 function castSlice(array, start, end) {
32998 var length = array.length;
32999 end = end === undefined ? length : end;
33000 return (!start && end >= length) ? array : baseSlice(array, start, end);
33001 }
33002
33003 /**
33004 * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).
33005 *
33006 * @private
33007 * @param {number|Object} id The timer id or timeout object of the timer to clear.
33008 */
33009 var clearTimeout = ctxClearTimeout || function(id) {
33010 return root.clearTimeout(id);
33011 };
33012
33013 /**
33014 * Creates a clone of `buffer`.
33015 *
33016 * @private
33017 * @param {Buffer} buffer The buffer to clone.
33018 * @param {boolean} [isDeep] Specify a deep clone.
33019 * @returns {Buffer} Returns the cloned buffer.
33020 */
33021 function cloneBuffer(buffer, isDeep) {
33022 if (isDeep) {
33023 return buffer.slice();
33024 }
33025 var length = buffer.length,
33026 result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
33027
33028 buffer.copy(result);
33029 return result;
33030 }
33031
33032 /**
33033 * Creates a clone of `arrayBuffer`.
33034 *
33035 * @private
33036 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
33037 * @returns {ArrayBuffer} Returns the cloned array buffer.
33038 */
33039 function cloneArrayBuffer(arrayBuffer) {
33040 var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
33041 new Uint8Array(result).set(new Uint8Array(arrayBuffer));
33042 return result;
33043 }
33044
33045 /**
33046 * Creates a clone of `dataView`.
33047 *
33048 * @private
33049 * @param {Object} dataView The data view to clone.
33050 * @param {boolean} [isDeep] Specify a deep clone.
33051 * @returns {Object} Returns the cloned data view.
33052 */
33053 function cloneDataView(dataView, isDeep) {
33054 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
33055 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
33056 }
33057
33058 /**
33059 * Creates a clone of `regexp`.
33060 *
33061 * @private
33062 * @param {Object} regexp The regexp to clone.
33063 * @returns {Object} Returns the cloned regexp.
33064 */
33065 function cloneRegExp(regexp) {
33066 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
33067 result.lastIndex = regexp.lastIndex;
33068 return result;
33069 }
33070
33071 /**
33072 * Creates a clone of the `symbol` object.
33073 *
33074 * @private
33075 * @param {Object} symbol The symbol object to clone.
33076 * @returns {Object} Returns the cloned symbol object.
33077 */
33078 function cloneSymbol(symbol) {
33079 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
33080 }
33081
33082 /**
33083 * Creates a clone of `typedArray`.
33084 *
33085 * @private
33086 * @param {Object} typedArray The typed array to clone.
33087 * @param {boolean} [isDeep] Specify a deep clone.
33088 * @returns {Object} Returns the cloned typed array.
33089 */
33090 function cloneTypedArray(typedArray, isDeep) {
33091 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
33092 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
33093 }
33094
33095 /**
33096 * Compares values to sort them in ascending order.
33097 *
33098 * @private
33099 * @param {*} value The value to compare.
33100 * @param {*} other The other value to compare.
33101 * @returns {number} Returns the sort order indicator for `value`.
33102 */
33103 function compareAscending(value, other) {
33104 if (value !== other) {
33105 var valIsDefined = value !== undefined,
33106 valIsNull = value === null,
33107 valIsReflexive = value === value,
33108 valIsSymbol = isSymbol(value);
33109
33110 var othIsDefined = other !== undefined,
33111 othIsNull = other === null,
33112 othIsReflexive = other === other,
33113 othIsSymbol = isSymbol(other);
33114
33115 if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
33116 (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
33117 (valIsNull && othIsDefined && othIsReflexive) ||
33118 (!valIsDefined && othIsReflexive) ||
33119 !valIsReflexive) {
33120 return 1;
33121 }
33122 if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
33123 (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
33124 (othIsNull && valIsDefined && valIsReflexive) ||
33125 (!othIsDefined && valIsReflexive) ||
33126 !othIsReflexive) {
33127 return -1;
33128 }
33129 }
33130 return 0;
33131 }
33132
33133 /**
33134 * Used by `_.orderBy` to compare multiple properties of a value to another
33135 * and stable sort them.
33136 *
33137 * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,
33138 * specify an order of "desc" for descending or "asc" for ascending sort order
33139 * of corresponding values.
33140 *
33141 * @private
33142 * @param {Object} object The object to compare.
33143 * @param {Object} other The other object to compare.
33144 * @param {boolean[]|string[]} orders The order to sort by for each property.
33145 * @returns {number} Returns the sort order indicator for `object`.
33146 */
33147 function compareMultiple(object, other, orders) {
33148 var index = -1,
33149 objCriteria = object.criteria,
33150 othCriteria = other.criteria,
33151 length = objCriteria.length,
33152 ordersLength = orders.length;
33153
33154 while (++index < length) {
33155 var result = compareAscending(objCriteria[index], othCriteria[index]);
33156 if (result) {
33157 if (index >= ordersLength) {
33158 return result;
33159 }
33160 var order = orders[index];
33161 return result * (order == 'desc' ? -1 : 1);
33162 }
33163 }
33164 // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
33165 // that causes it, under certain circumstances, to provide the same value for
33166 // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
33167 // for more details.
33168 //
33169 // This also ensures a stable sort in V8 and other engines.
33170 // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
33171 return object.index - other.index;
33172 }
33173
33174 /**
33175 * Creates an array that is the composition of partially applied arguments,
33176 * placeholders, and provided arguments into a single array of arguments.
33177 *
33178 * @private
33179 * @param {Array} args The provided arguments.
33180 * @param {Array} partials The arguments to prepend to those provided.
33181 * @param {Array} holders The `partials` placeholder indexes.
33182 * @params {boolean} [isCurried] Specify composing for a curried function.
33183 * @returns {Array} Returns the new array of composed arguments.
33184 */
33185 function composeArgs(args, partials, holders, isCurried) {
33186 var argsIndex = -1,
33187 argsLength = args.length,
33188 holdersLength = holders.length,
33189 leftIndex = -1,
33190 leftLength = partials.length,
33191 rangeLength = nativeMax(argsLength - holdersLength, 0),
33192 result = Array(leftLength + rangeLength),
33193 isUncurried = !isCurried;
33194
33195 while (++leftIndex < leftLength) {
33196 result[leftIndex] = partials[leftIndex];
33197 }
33198 while (++argsIndex < holdersLength) {
33199 if (isUncurried || argsIndex < argsLength) {
33200 result[holders[argsIndex]] = args[argsIndex];
33201 }
33202 }
33203 while (rangeLength--) {
33204 result[leftIndex++] = args[argsIndex++];
33205 }
33206 return result;
33207 }
33208
33209 /**
33210 * This function is like `composeArgs` except that the arguments composition
33211 * is tailored for `_.partialRight`.
33212 *
33213 * @private
33214 * @param {Array} args The provided arguments.
33215 * @param {Array} partials The arguments to append to those provided.
33216 * @param {Array} holders The `partials` placeholder indexes.
33217 * @params {boolean} [isCurried] Specify composing for a curried function.
33218 * @returns {Array} Returns the new array of composed arguments.
33219 */
33220 function composeArgsRight(args, partials, holders, isCurried) {
33221 var argsIndex = -1,
33222 argsLength = args.length,
33223 holdersIndex = -1,
33224 holdersLength = holders.length,
33225 rightIndex = -1,
33226 rightLength = partials.length,
33227 rangeLength = nativeMax(argsLength - holdersLength, 0),
33228 result = Array(rangeLength + rightLength),
33229 isUncurried = !isCurried;
33230
33231 while (++argsIndex < rangeLength) {
33232 result[argsIndex] = args[argsIndex];
33233 }
33234 var offset = argsIndex;
33235 while (++rightIndex < rightLength) {
33236 result[offset + rightIndex] = partials[rightIndex];
33237 }
33238 while (++holdersIndex < holdersLength) {
33239 if (isUncurried || argsIndex < argsLength) {
33240 result[offset + holders[holdersIndex]] = args[argsIndex++];
33241 }
33242 }
33243 return result;
33244 }
33245
33246 /**
33247 * Copies the values of `source` to `array`.
33248 *
33249 * @private
33250 * @param {Array} source The array to copy values from.
33251 * @param {Array} [array=[]] The array to copy values to.
33252 * @returns {Array} Returns `array`.
33253 */
33254 function copyArray(source, array) {
33255 var index = -1,
33256 length = source.length;
33257
33258 array || (array = Array(length));
33259 while (++index < length) {
33260 array[index] = source[index];
33261 }
33262 return array;
33263 }
33264
33265 /**
33266 * Copies properties of `source` to `object`.
33267 *
33268 * @private
33269 * @param {Object} source The object to copy properties from.
33270 * @param {Array} props The property identifiers to copy.
33271 * @param {Object} [object={}] The object to copy properties to.
33272 * @param {Function} [customizer] The function to customize copied values.
33273 * @returns {Object} Returns `object`.
33274 */
33275 function copyObject(source, props, object, customizer) {
33276 var isNew = !object;
33277 object || (object = {});
33278
33279 var index = -1,
33280 length = props.length;
33281
33282 while (++index < length) {
33283 var key = props[index];
33284
33285 var newValue = customizer
33286 ? customizer(object[key], source[key], key, object, source)
33287 : undefined;
33288
33289 if (newValue === undefined) {
33290 newValue = source[key];
33291 }
33292 if (isNew) {
33293 baseAssignValue(object, key, newValue);
33294 } else {
33295 assignValue(object, key, newValue);
33296 }
33297 }
33298 return object;
33299 }
33300
33301 /**
33302 * Copies own symbols of `source` to `object`.
33303 *
33304 * @private
33305 * @param {Object} source The object to copy symbols from.
33306 * @param {Object} [object={}] The object to copy symbols to.
33307 * @returns {Object} Returns `object`.
33308 */
33309 function copySymbols(source, object) {
33310 return copyObject(source, getSymbols(source), object);
33311 }
33312
33313 /**
33314 * Copies own and inherited symbols of `source` to `object`.
33315 *
33316 * @private
33317 * @param {Object} source The object to copy symbols from.
33318 * @param {Object} [object={}] The object to copy symbols to.
33319 * @returns {Object} Returns `object`.
33320 */
33321 function copySymbolsIn(source, object) {
33322 return copyObject(source, getSymbolsIn(source), object);
33323 }
33324
33325 /**
33326 * Creates a function like `_.groupBy`.
33327 *
33328 * @private
33329 * @param {Function} setter The function to set accumulator values.
33330 * @param {Function} [initializer] The accumulator object initializer.
33331 * @returns {Function} Returns the new aggregator function.
33332 */
33333 function createAggregator(setter, initializer) {
33334 return function(collection, iteratee) {
33335 var func = isArray(collection) ? arrayAggregator : baseAggregator,
33336 accumulator = initializer ? initializer() : {};
33337
33338 return func(collection, setter, getIteratee(iteratee, 2), accumulator);
33339 };
33340 }
33341
33342 /**
33343 * Creates a function like `_.assign`.
33344 *
33345 * @private
33346 * @param {Function} assigner The function to assign values.
33347 * @returns {Function} Returns the new assigner function.
33348 */
33349 function createAssigner(assigner) {
33350 return baseRest(function(object, sources) {
33351 var index = -1,
33352 length = sources.length,
33353 customizer = length > 1 ? sources[length - 1] : undefined,
33354 guard = length > 2 ? sources[2] : undefined;
33355
33356 customizer = (assigner.length > 3 && typeof customizer == 'function')
33357 ? (length--, customizer)
33358 : undefined;
33359
33360 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
33361 customizer = length < 3 ? undefined : customizer;
33362 length = 1;
33363 }
33364 object = Object(object);
33365 while (++index < length) {
33366 var source = sources[index];
33367 if (source) {
33368 assigner(object, source, index, customizer);
33369 }
33370 }
33371 return object;
33372 });
33373 }
33374
33375 /**
33376 * Creates a `baseEach` or `baseEachRight` function.
33377 *
33378 * @private
33379 * @param {Function} eachFunc The function to iterate over a collection.
33380 * @param {boolean} [fromRight] Specify iterating from right to left.
33381 * @returns {Function} Returns the new base function.
33382 */
33383 function createBaseEach(eachFunc, fromRight) {
33384 return function(collection, iteratee) {
33385 if (collection == null) {
33386 return collection;
33387 }
33388 if (!isArrayLike(collection)) {
33389 return eachFunc(collection, iteratee);
33390 }
33391 var length = collection.length,
33392 index = fromRight ? length : -1,
33393 iterable = Object(collection);
33394
33395 while ((fromRight ? index-- : ++index < length)) {
33396 if (iteratee(iterable[index], index, iterable) === false) {
33397 break;
33398 }
33399 }
33400 return collection;
33401 };
33402 }
33403
33404 /**
33405 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
33406 *
33407 * @private
33408 * @param {boolean} [fromRight] Specify iterating from right to left.
33409 * @returns {Function} Returns the new base function.
33410 */
33411 function createBaseFor(fromRight) {
33412 return function(object, iteratee, keysFunc) {
33413 var index = -1,
33414 iterable = Object(object),
33415 props = keysFunc(object),
33416 length = props.length;
33417
33418 while (length--) {
33419 var key = props[fromRight ? length : ++index];
33420 if (iteratee(iterable[key], key, iterable) === false) {
33421 break;
33422 }
33423 }
33424 return object;
33425 };
33426 }
33427
33428 /**
33429 * Creates a function that wraps `func` to invoke it with the optional `this`
33430 * binding of `thisArg`.
33431 *
33432 * @private
33433 * @param {Function} func The function to wrap.
33434 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
33435 * @param {*} [thisArg] The `this` binding of `func`.
33436 * @returns {Function} Returns the new wrapped function.
33437 */
33438 function createBind(func, bitmask, thisArg) {
33439 var isBind = bitmask & WRAP_BIND_FLAG,
33440 Ctor = createCtor(func);
33441
33442 function wrapper() {
33443 var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
33444 return fn.apply(isBind ? thisArg : this, arguments);
33445 }
33446 return wrapper;
33447 }
33448
33449 /**
33450 * Creates a function like `_.lowerFirst`.
33451 *
33452 * @private
33453 * @param {string} methodName The name of the `String` case method to use.
33454 * @returns {Function} Returns the new case function.
33455 */
33456 function createCaseFirst(methodName) {
33457 return function(string) {
33458 string = toString(string);
33459
33460 var strSymbols = hasUnicode(string)
33461 ? stringToArray(string)
33462 : undefined;
33463
33464 var chr = strSymbols
33465 ? strSymbols[0]
33466 : string.charAt(0);
33467
33468 var trailing = strSymbols
33469 ? castSlice(strSymbols, 1).join('')
33470 : string.slice(1);
33471
33472 return chr[methodName]() + trailing;
33473 };
33474 }
33475
33476 /**
33477 * Creates a function like `_.camelCase`.
33478 *
33479 * @private
33480 * @param {Function} callback The function to combine each word.
33481 * @returns {Function} Returns the new compounder function.
33482 */
33483 function createCompounder(callback) {
33484 return function(string) {
33485 return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');
33486 };
33487 }
33488
33489 /**
33490 * Creates a function that produces an instance of `Ctor` regardless of
33491 * whether it was invoked as part of a `new` expression or by `call` or `apply`.
33492 *
33493 * @private
33494 * @param {Function} Ctor The constructor to wrap.
33495 * @returns {Function} Returns the new wrapped function.
33496 */
33497 function createCtor(Ctor) {
33498 return function() {
33499 // Use a `switch` statement to work with class constructors. See
33500 // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
33501 // for more details.
33502 var args = arguments;
33503 switch (args.length) {
33504 case 0: return new Ctor;
33505 case 1: return new Ctor(args[0]);
33506 case 2: return new Ctor(args[0], args[1]);
33507 case 3: return new Ctor(args[0], args[1], args[2]);
33508 case 4: return new Ctor(args[0], args[1], args[2], args[3]);
33509 case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);
33510 case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
33511 case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
33512 }
33513 var thisBinding = baseCreate(Ctor.prototype),
33514 result = Ctor.apply(thisBinding, args);
33515
33516 // Mimic the constructor's `return` behavior.
33517 // See https://es5.github.io/#x13.2.2 for more details.
33518 return isObject(result) ? result : thisBinding;
33519 };
33520 }
33521
33522 /**
33523 * Creates a function that wraps `func` to enable currying.
33524 *
33525 * @private
33526 * @param {Function} func The function to wrap.
33527 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
33528 * @param {number} arity The arity of `func`.
33529 * @returns {Function} Returns the new wrapped function.
33530 */
33531 function createCurry(func, bitmask, arity) {
33532 var Ctor = createCtor(func);
33533
33534 function wrapper() {
33535 var length = arguments.length,
33536 args = Array(length),
33537 index = length,
33538 placeholder = getHolder(wrapper);
33539
33540 while (index--) {
33541 args[index] = arguments[index];
33542 }
33543 var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)
33544 ? []
33545 : replaceHolders(args, placeholder);
33546
33547 length -= holders.length;
33548 if (length < arity) {
33549 return createRecurry(
33550 func, bitmask, createHybrid, wrapper.placeholder, undefined,
33551 args, holders, undefined, undefined, arity - length);
33552 }
33553 var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
33554 return apply(fn, this, args);
33555 }
33556 return wrapper;
33557 }
33558
33559 /**
33560 * Creates a `_.find` or `_.findLast` function.
33561 *
33562 * @private
33563 * @param {Function} findIndexFunc The function to find the collection index.
33564 * @returns {Function} Returns the new find function.
33565 */
33566 function createFind(findIndexFunc) {
33567 return function(collection, predicate, fromIndex) {
33568 var iterable = Object(collection);
33569 if (!isArrayLike(collection)) {
33570 var iteratee = getIteratee(predicate, 3);
33571 collection = keys(collection);
33572 predicate = function(key) { return iteratee(iterable[key], key, iterable); };
33573 }
33574 var index = findIndexFunc(collection, predicate, fromIndex);
33575 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
33576 };
33577 }
33578
33579 /**
33580 * Creates a `_.flow` or `_.flowRight` function.
33581 *
33582 * @private
33583 * @param {boolean} [fromRight] Specify iterating from right to left.
33584 * @returns {Function} Returns the new flow function.
33585 */
33586 function createFlow(fromRight) {
33587 return flatRest(function(funcs) {
33588 var length = funcs.length,
33589 index = length,
33590 prereq = LodashWrapper.prototype.thru;
33591
33592 if (fromRight) {
33593 funcs.reverse();
33594 }
33595 while (index--) {
33596 var func = funcs[index];
33597 if (typeof func != 'function') {
33598 throw new TypeError(FUNC_ERROR_TEXT);
33599 }
33600 if (prereq && !wrapper && getFuncName(func) == 'wrapper') {
33601 var wrapper = new LodashWrapper([], true);
33602 }
33603 }
33604 index = wrapper ? index : length;
33605 while (++index < length) {
33606 func = funcs[index];
33607
33608 var funcName = getFuncName(func),
33609 data = funcName == 'wrapper' ? getData(func) : undefined;
33610
33611 if (data && isLaziable(data[0]) &&
33612 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&
33613 !data[4].length && data[9] == 1
33614 ) {
33615 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
33616 } else {
33617 wrapper = (func.length == 1 && isLaziable(func))
33618 ? wrapper[funcName]()
33619 : wrapper.thru(func);
33620 }
33621 }
33622 return function() {
33623 var args = arguments,
33624 value = args[0];
33625
33626 if (wrapper && args.length == 1 && isArray(value)) {
33627 return wrapper.plant(value).value();
33628 }
33629 var index = 0,
33630 result = length ? funcs[index].apply(this, args) : value;
33631
33632 while (++index < length) {
33633 result = funcs[index].call(this, result);
33634 }
33635 return result;
33636 };
33637 });
33638 }
33639
33640 /**
33641 * Creates a function that wraps `func` to invoke it with optional `this`
33642 * binding of `thisArg`, partial application, and currying.
33643 *
33644 * @private
33645 * @param {Function|string} func The function or method name to wrap.
33646 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
33647 * @param {*} [thisArg] The `this` binding of `func`.
33648 * @param {Array} [partials] The arguments to prepend to those provided to
33649 * the new function.
33650 * @param {Array} [holders] The `partials` placeholder indexes.
33651 * @param {Array} [partialsRight] The arguments to append to those provided
33652 * to the new function.
33653 * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.
33654 * @param {Array} [argPos] The argument positions of the new function.
33655 * @param {number} [ary] The arity cap of `func`.
33656 * @param {number} [arity] The arity of `func`.
33657 * @returns {Function} Returns the new wrapped function.
33658 */
33659 function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {
33660 var isAry = bitmask & WRAP_ARY_FLAG,
33661 isBind = bitmask & WRAP_BIND_FLAG,
33662 isBindKey = bitmask & WRAP_BIND_KEY_FLAG,
33663 isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),
33664 isFlip = bitmask & WRAP_FLIP_FLAG,
33665 Ctor = isBindKey ? undefined : createCtor(func);
33666
33667 function wrapper() {
33668 var length = arguments.length,
33669 args = Array(length),
33670 index = length;
33671
33672 while (index--) {
33673 args[index] = arguments[index];
33674 }
33675 if (isCurried) {
33676 var placeholder = getHolder(wrapper),
33677 holdersCount = countHolders(args, placeholder);
33678 }
33679 if (partials) {
33680 args = composeArgs(args, partials, holders, isCurried);
33681 }
33682 if (partialsRight) {
33683 args = composeArgsRight(args, partialsRight, holdersRight, isCurried);
33684 }
33685 length -= holdersCount;
33686 if (isCurried && length < arity) {
33687 var newHolders = replaceHolders(args, placeholder);
33688 return createRecurry(
33689 func, bitmask, createHybrid, wrapper.placeholder, thisArg,
33690 args, newHolders, argPos, ary, arity - length
33691 );
33692 }
33693 var thisBinding = isBind ? thisArg : this,
33694 fn = isBindKey ? thisBinding[func] : func;
33695
33696 length = args.length;
33697 if (argPos) {
33698 args = reorder(args, argPos);
33699 } else if (isFlip && length > 1) {
33700 args.reverse();
33701 }
33702 if (isAry && ary < length) {
33703 args.length = ary;
33704 }
33705 if (this && this !== root && this instanceof wrapper) {
33706 fn = Ctor || createCtor(fn);
33707 }
33708 return fn.apply(thisBinding, args);
33709 }
33710 return wrapper;
33711 }
33712
33713 /**
33714 * Creates a function like `_.invertBy`.
33715 *
33716 * @private
33717 * @param {Function} setter The function to set accumulator values.
33718 * @param {Function} toIteratee The function to resolve iteratees.
33719 * @returns {Function} Returns the new inverter function.
33720 */
33721 function createInverter(setter, toIteratee) {
33722 return function(object, iteratee) {
33723 return baseInverter(object, setter, toIteratee(iteratee), {});
33724 };
33725 }
33726
33727 /**
33728 * Creates a function that performs a mathematical operation on two values.
33729 *
33730 * @private
33731 * @param {Function} operator The function to perform the operation.
33732 * @param {number} [defaultValue] The value used for `undefined` arguments.
33733 * @returns {Function} Returns the new mathematical operation function.
33734 */
33735 function createMathOperation(operator, defaultValue) {
33736 return function(value, other) {
33737 var result;
33738 if (value === undefined && other === undefined) {
33739 return defaultValue;
33740 }
33741 if (value !== undefined) {
33742 result = value;
33743 }
33744 if (other !== undefined) {
33745 if (result === undefined) {
33746 return other;
33747 }
33748 if (typeof value == 'string' || typeof other == 'string') {
33749 value = baseToString(value);
33750 other = baseToString(other);
33751 } else {
33752 value = baseToNumber(value);
33753 other = baseToNumber(other);
33754 }
33755 result = operator(value, other);
33756 }
33757 return result;
33758 };
33759 }
33760
33761 /**
33762 * Creates a function like `_.over`.
33763 *
33764 * @private
33765 * @param {Function} arrayFunc The function to iterate over iteratees.
33766 * @returns {Function} Returns the new over function.
33767 */
33768 function createOver(arrayFunc) {
33769 return flatRest(function(iteratees) {
33770 iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
33771 return baseRest(function(args) {
33772 var thisArg = this;
33773 return arrayFunc(iteratees, function(iteratee) {
33774 return apply(iteratee, thisArg, args);
33775 });
33776 });
33777 });
33778 }
33779
33780 /**
33781 * Creates the padding for `string` based on `length`. The `chars` string
33782 * is truncated if the number of characters exceeds `length`.
33783 *
33784 * @private
33785 * @param {number} length The padding length.
33786 * @param {string} [chars=' '] The string used as padding.
33787 * @returns {string} Returns the padding for `string`.
33788 */
33789 function createPadding(length, chars) {
33790 chars = chars === undefined ? ' ' : baseToString(chars);
33791
33792 var charsLength = chars.length;
33793 if (charsLength < 2) {
33794 return charsLength ? baseRepeat(chars, length) : chars;
33795 }
33796 var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
33797 return hasUnicode(chars)
33798 ? castSlice(stringToArray(result), 0, length).join('')
33799 : result.slice(0, length);
33800 }
33801
33802 /**
33803 * Creates a function that wraps `func` to invoke it with the `this` binding
33804 * of `thisArg` and `partials` prepended to the arguments it receives.
33805 *
33806 * @private
33807 * @param {Function} func The function to wrap.
33808 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
33809 * @param {*} thisArg The `this` binding of `func`.
33810 * @param {Array} partials The arguments to prepend to those provided to
33811 * the new function.
33812 * @returns {Function} Returns the new wrapped function.
33813 */
33814 function createPartial(func, bitmask, thisArg, partials) {
33815 var isBind = bitmask & WRAP_BIND_FLAG,
33816 Ctor = createCtor(func);
33817
33818 function wrapper() {
33819 var argsIndex = -1,
33820 argsLength = arguments.length,
33821 leftIndex = -1,
33822 leftLength = partials.length,
33823 args = Array(leftLength + argsLength),
33824 fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
33825
33826 while (++leftIndex < leftLength) {
33827 args[leftIndex] = partials[leftIndex];
33828 }
33829 while (argsLength--) {
33830 args[leftIndex++] = arguments[++argsIndex];
33831 }
33832 return apply(fn, isBind ? thisArg : this, args);
33833 }
33834 return wrapper;
33835 }
33836
33837 /**
33838 * Creates a `_.range` or `_.rangeRight` function.
33839 *
33840 * @private
33841 * @param {boolean} [fromRight] Specify iterating from right to left.
33842 * @returns {Function} Returns the new range function.
33843 */
33844 function createRange(fromRight) {
33845 return function(start, end, step) {
33846 if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
33847 end = step = undefined;
33848 }
33849 // Ensure the sign of `-0` is preserved.
33850 start = toFinite(start);
33851 if (end === undefined) {
33852 end = start;
33853 start = 0;
33854 } else {
33855 end = toFinite(end);
33856 }
33857 step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
33858 return baseRange(start, end, step, fromRight);
33859 };
33860 }
33861
33862 /**
33863 * Creates a function that performs a relational operation on two values.
33864 *
33865 * @private
33866 * @param {Function} operator The function to perform the operation.
33867 * @returns {Function} Returns the new relational operation function.
33868 */
33869 function createRelationalOperation(operator) {
33870 return function(value, other) {
33871 if (!(typeof value == 'string' && typeof other == 'string')) {
33872 value = toNumber(value);
33873 other = toNumber(other);
33874 }
33875 return operator(value, other);
33876 };
33877 }
33878
33879 /**
33880 * Creates a function that wraps `func` to continue currying.
33881 *
33882 * @private
33883 * @param {Function} func The function to wrap.
33884 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
33885 * @param {Function} wrapFunc The function to create the `func` wrapper.
33886 * @param {*} placeholder The placeholder value.
33887 * @param {*} [thisArg] The `this` binding of `func`.
33888 * @param {Array} [partials] The arguments to prepend to those provided to
33889 * the new function.
33890 * @param {Array} [holders] The `partials` placeholder indexes.
33891 * @param {Array} [argPos] The argument positions of the new function.
33892 * @param {number} [ary] The arity cap of `func`.
33893 * @param {number} [arity] The arity of `func`.
33894 * @returns {Function} Returns the new wrapped function.
33895 */
33896 function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {
33897 var isCurry = bitmask & WRAP_CURRY_FLAG,
33898 newHolders = isCurry ? holders : undefined,
33899 newHoldersRight = isCurry ? undefined : holders,
33900 newPartials = isCurry ? partials : undefined,
33901 newPartialsRight = isCurry ? undefined : partials;
33902
33903 bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);
33904 bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
33905
33906 if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
33907 bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
33908 }
33909 var newData = [
33910 func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,
33911 newHoldersRight, argPos, ary, arity
33912 ];
33913
33914 var result = wrapFunc.apply(undefined, newData);
33915 if (isLaziable(func)) {
33916 setData(result, newData);
33917 }
33918 result.placeholder = placeholder;
33919 return setWrapToString(result, func, bitmask);
33920 }
33921
33922 /**
33923 * Creates a function like `_.round`.
33924 *
33925 * @private
33926 * @param {string} methodName The name of the `Math` method to use when rounding.
33927 * @returns {Function} Returns the new round function.
33928 */
33929 function createRound(methodName) {
33930 var func = Math[methodName];
33931 return function(number, precision) {
33932 number = toNumber(number);
33933 precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
33934 if (precision) {
33935 // Shift with exponential notation to avoid floating-point issues.
33936 // See [MDN](https://mdn.io/round#Examples) for more details.
33937 var pair = (toString(number) + 'e').split('e'),
33938 value = func(pair[0] + 'e' + (+pair[1] + precision));
33939
33940 pair = (toString(value) + 'e').split('e');
33941 return +(pair[0] + 'e' + (+pair[1] - precision));
33942 }
33943 return func(number);
33944 };
33945 }
33946
33947 /**
33948 * Creates a set object of `values`.
33949 *
33950 * @private
33951 * @param {Array} values The values to add to the set.
33952 * @returns {Object} Returns the new set.
33953 */
33954 var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
33955 return new Set(values);
33956 };
33957
33958 /**
33959 * Creates a `_.toPairs` or `_.toPairsIn` function.
33960 *
33961 * @private
33962 * @param {Function} keysFunc The function to get the keys of a given object.
33963 * @returns {Function} Returns the new pairs function.
33964 */
33965 function createToPairs(keysFunc) {
33966 return function(object) {
33967 var tag = getTag(object);
33968 if (tag == mapTag) {
33969 return mapToArray(object);
33970 }
33971 if (tag == setTag) {
33972 return setToPairs(object);
33973 }
33974 return baseToPairs(object, keysFunc(object));
33975 };
33976 }
33977
33978 /**
33979 * Creates a function that either curries or invokes `func` with optional
33980 * `this` binding and partially applied arguments.
33981 *
33982 * @private
33983 * @param {Function|string} func The function or method name to wrap.
33984 * @param {number} bitmask The bitmask flags.
33985 * 1 - `_.bind`
33986 * 2 - `_.bindKey`
33987 * 4 - `_.curry` or `_.curryRight` of a bound function
33988 * 8 - `_.curry`
33989 * 16 - `_.curryRight`
33990 * 32 - `_.partial`
33991 * 64 - `_.partialRight`
33992 * 128 - `_.rearg`
33993 * 256 - `_.ary`
33994 * 512 - `_.flip`
33995 * @param {*} [thisArg] The `this` binding of `func`.
33996 * @param {Array} [partials] The arguments to be partially applied.
33997 * @param {Array} [holders] The `partials` placeholder indexes.
33998 * @param {Array} [argPos] The argument positions of the new function.
33999 * @param {number} [ary] The arity cap of `func`.
34000 * @param {number} [arity] The arity of `func`.
34001 * @returns {Function} Returns the new wrapped function.
34002 */
34003 function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {
34004 var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
34005 if (!isBindKey && typeof func != 'function') {
34006 throw new TypeError(FUNC_ERROR_TEXT);
34007 }
34008 var length = partials ? partials.length : 0;
34009 if (!length) {
34010 bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
34011 partials = holders = undefined;
34012 }
34013 ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);
34014 arity = arity === undefined ? arity : toInteger(arity);
34015 length -= holders ? holders.length : 0;
34016
34017 if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
34018 var partialsRight = partials,
34019 holdersRight = holders;
34020
34021 partials = holders = undefined;
34022 }
34023 var data = isBindKey ? undefined : getData(func);
34024
34025 var newData = [
34026 func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,
34027 argPos, ary, arity
34028 ];
34029
34030 if (data) {
34031 mergeData(newData, data);
34032 }
34033 func = newData[0];
34034 bitmask = newData[1];
34035 thisArg = newData[2];
34036 partials = newData[3];
34037 holders = newData[4];
34038 arity = newData[9] = newData[9] === undefined
34039 ? (isBindKey ? 0 : func.length)
34040 : nativeMax(newData[9] - length, 0);
34041
34042 if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
34043 bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
34044 }
34045 if (!bitmask || bitmask == WRAP_BIND_FLAG) {
34046 var result = createBind(func, bitmask, thisArg);
34047 } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
34048 result = createCurry(func, bitmask, arity);
34049 } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
34050 result = createPartial(func, bitmask, thisArg, partials);
34051 } else {
34052 result = createHybrid.apply(undefined, newData);
34053 }
34054 var setter = data ? baseSetData : setData;
34055 return setWrapToString(setter(result, newData), func, bitmask);
34056 }
34057
34058 /**
34059 * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
34060 * of source objects to the destination object for all destination properties
34061 * that resolve to `undefined`.
34062 *
34063 * @private
34064 * @param {*} objValue The destination value.
34065 * @param {*} srcValue The source value.
34066 * @param {string} key The key of the property to assign.
34067 * @param {Object} object The parent object of `objValue`.
34068 * @returns {*} Returns the value to assign.
34069 */
34070 function customDefaultsAssignIn(objValue, srcValue, key, object) {
34071 if (objValue === undefined ||
34072 (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
34073 return srcValue;
34074 }
34075 return objValue;
34076 }
34077
34078 /**
34079 * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source
34080 * objects into destination objects that are passed thru.
34081 *
34082 * @private
34083 * @param {*} objValue The destination value.
34084 * @param {*} srcValue The source value.
34085 * @param {string} key The key of the property to merge.
34086 * @param {Object} object The parent object of `objValue`.
34087 * @param {Object} source The parent object of `srcValue`.
34088 * @param {Object} [stack] Tracks traversed source values and their merged
34089 * counterparts.
34090 * @returns {*} Returns the value to assign.
34091 */
34092 function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
34093 if (isObject(objValue) && isObject(srcValue)) {
34094 // Recursively merge objects and arrays (susceptible to call stack limits).
34095 stack.set(srcValue, objValue);
34096 baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);
34097 stack['delete'](srcValue);
34098 }
34099 return objValue;
34100 }
34101
34102 /**
34103 * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain
34104 * objects.
34105 *
34106 * @private
34107 * @param {*} value The value to inspect.
34108 * @param {string} key The key of the property to inspect.
34109 * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.
34110 */
34111 function customOmitClone(value) {
34112 return isPlainObject(value) ? undefined : value;
34113 }
34114
34115 /**
34116 * A specialized version of `baseIsEqualDeep` for arrays with support for
34117 * partial deep comparisons.
34118 *
34119 * @private
34120 * @param {Array} array The array to compare.
34121 * @param {Array} other The other array to compare.
34122 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
34123 * @param {Function} customizer The function to customize comparisons.
34124 * @param {Function} equalFunc The function to determine equivalents of values.
34125 * @param {Object} stack Tracks traversed `array` and `other` objects.
34126 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
34127 */
34128 function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
34129 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
34130 arrLength = array.length,
34131 othLength = other.length;
34132
34133 if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
34134 return false;
34135 }
34136 // Assume cyclic values are equal.
34137 var stacked = stack.get(array);
34138 if (stacked && stack.get(other)) {
34139 return stacked == other;
34140 }
34141 var index = -1,
34142 result = true,
34143 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
34144
34145 stack.set(array, other);
34146 stack.set(other, array);
34147
34148 // Ignore non-index properties.
34149 while (++index < arrLength) {
34150 var arrValue = array[index],
34151 othValue = other[index];
34152
34153 if (customizer) {
34154 var compared = isPartial
34155 ? customizer(othValue, arrValue, index, other, array, stack)
34156 : customizer(arrValue, othValue, index, array, other, stack);
34157 }
34158 if (compared !== undefined) {
34159 if (compared) {
34160 continue;
34161 }
34162 result = false;
34163 break;
34164 }
34165 // Recursively compare arrays (susceptible to call stack limits).
34166 if (seen) {
34167 if (!arraySome(other, function(othValue, othIndex) {
34168 if (!cacheHas(seen, othIndex) &&
34169 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
34170 return seen.push(othIndex);
34171 }
34172 })) {
34173 result = false;
34174 break;
34175 }
34176 } else if (!(
34177 arrValue === othValue ||
34178 equalFunc(arrValue, othValue, bitmask, customizer, stack)
34179 )) {
34180 result = false;
34181 break;
34182 }
34183 }
34184 stack['delete'](array);
34185 stack['delete'](other);
34186 return result;
34187 }
34188
34189 /**
34190 * A specialized version of `baseIsEqualDeep` for comparing objects of
34191 * the same `toStringTag`.
34192 *
34193 * **Note:** This function only supports comparing values with tags of
34194 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
34195 *
34196 * @private
34197 * @param {Object} object The object to compare.
34198 * @param {Object} other The other object to compare.
34199 * @param {string} tag The `toStringTag` of the objects to compare.
34200 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
34201 * @param {Function} customizer The function to customize comparisons.
34202 * @param {Function} equalFunc The function to determine equivalents of values.
34203 * @param {Object} stack Tracks traversed `object` and `other` objects.
34204 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
34205 */
34206 function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
34207 switch (tag) {
34208 case dataViewTag:
34209 if ((object.byteLength != other.byteLength) ||
34210 (object.byteOffset != other.byteOffset)) {
34211 return false;
34212 }
34213 object = object.buffer;
34214 other = other.buffer;
34215
34216 case arrayBufferTag:
34217 if ((object.byteLength != other.byteLength) ||
34218 !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
34219 return false;
34220 }
34221 return true;
34222
34223 case boolTag:
34224 case dateTag:
34225 case numberTag:
34226 // Coerce booleans to `1` or `0` and dates to milliseconds.
34227 // Invalid dates are coerced to `NaN`.
34228 return eq(+object, +other);
34229
34230 case errorTag:
34231 return object.name == other.name && object.message == other.message;
34232
34233 case regexpTag:
34234 case stringTag:
34235 // Coerce regexes to strings and treat strings, primitives and objects,
34236 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
34237 // for more details.
34238 return object == (other + '');
34239
34240 case mapTag:
34241 var convert = mapToArray;
34242
34243 case setTag:
34244 var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
34245 convert || (convert = setToArray);
34246
34247 if (object.size != other.size && !isPartial) {
34248 return false;
34249 }
34250 // Assume cyclic values are equal.
34251 var stacked = stack.get(object);
34252 if (stacked) {
34253 return stacked == other;
34254 }
34255 bitmask |= COMPARE_UNORDERED_FLAG;
34256
34257 // Recursively compare objects (susceptible to call stack limits).
34258 stack.set(object, other);
34259 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
34260 stack['delete'](object);
34261 return result;
34262
34263 case symbolTag:
34264 if (symbolValueOf) {
34265 return symbolValueOf.call(object) == symbolValueOf.call(other);
34266 }
34267 }
34268 return false;
34269 }
34270
34271 /**
34272 * A specialized version of `baseIsEqualDeep` for objects with support for
34273 * partial deep comparisons.
34274 *
34275 * @private
34276 * @param {Object} object The object to compare.
34277 * @param {Object} other The other object to compare.
34278 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
34279 * @param {Function} customizer The function to customize comparisons.
34280 * @param {Function} equalFunc The function to determine equivalents of values.
34281 * @param {Object} stack Tracks traversed `object` and `other` objects.
34282 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
34283 */
34284 function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
34285 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
34286 objProps = getAllKeys(object),
34287 objLength = objProps.length,
34288 othProps = getAllKeys(other),
34289 othLength = othProps.length;
34290
34291 if (objLength != othLength && !isPartial) {
34292 return false;
34293 }
34294 var index = objLength;
34295 while (index--) {
34296 var key = objProps[index];
34297 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
34298 return false;
34299 }
34300 }
34301 // Assume cyclic values are equal.
34302 var stacked = stack.get(object);
34303 if (stacked && stack.get(other)) {
34304 return stacked == other;
34305 }
34306 var result = true;
34307 stack.set(object, other);
34308 stack.set(other, object);
34309
34310 var skipCtor = isPartial;
34311 while (++index < objLength) {
34312 key = objProps[index];
34313 var objValue = object[key],
34314 othValue = other[key];
34315
34316 if (customizer) {
34317 var compared = isPartial
34318 ? customizer(othValue, objValue, key, other, object, stack)
34319 : customizer(objValue, othValue, key, object, other, stack);
34320 }
34321 // Recursively compare objects (susceptible to call stack limits).
34322 if (!(compared === undefined
34323 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
34324 : compared
34325 )) {
34326 result = false;
34327 break;
34328 }
34329 skipCtor || (skipCtor = key == 'constructor');
34330 }
34331 if (result && !skipCtor) {
34332 var objCtor = object.constructor,
34333 othCtor = other.constructor;
34334
34335 // Non `Object` object instances with different constructors are not equal.
34336 if (objCtor != othCtor &&
34337 ('constructor' in object && 'constructor' in other) &&
34338 !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
34339 typeof othCtor == 'function' && othCtor instanceof othCtor)) {
34340 result = false;
34341 }
34342 }
34343 stack['delete'](object);
34344 stack['delete'](other);
34345 return result;
34346 }
34347
34348 /**
34349 * A specialized version of `baseRest` which flattens the rest array.
34350 *
34351 * @private
34352 * @param {Function} func The function to apply a rest parameter to.
34353 * @returns {Function} Returns the new function.
34354 */
34355 function flatRest(func) {
34356 return setToString(overRest(func, undefined, flatten), func + '');
34357 }
34358
34359 /**
34360 * Creates an array of own enumerable property names and symbols of `object`.
34361 *
34362 * @private
34363 * @param {Object} object The object to query.
34364 * @returns {Array} Returns the array of property names and symbols.
34365 */
34366 function getAllKeys(object) {
34367 return baseGetAllKeys(object, keys, getSymbols);
34368 }
34369
34370 /**
34371 * Creates an array of own and inherited enumerable property names and
34372 * symbols of `object`.
34373 *
34374 * @private
34375 * @param {Object} object The object to query.
34376 * @returns {Array} Returns the array of property names and symbols.
34377 */
34378 function getAllKeysIn(object) {
34379 return baseGetAllKeys(object, keysIn, getSymbolsIn);
34380 }
34381
34382 /**
34383 * Gets metadata for `func`.
34384 *
34385 * @private
34386 * @param {Function} func The function to query.
34387 * @returns {*} Returns the metadata for `func`.
34388 */
34389 var getData = !metaMap ? noop : function(func) {
34390 return metaMap.get(func);
34391 };
34392
34393 /**
34394 * Gets the name of `func`.
34395 *
34396 * @private
34397 * @param {Function} func The function to query.
34398 * @returns {string} Returns the function name.
34399 */
34400 function getFuncName(func) {
34401 var result = (func.name + ''),
34402 array = realNames[result],
34403 length = hasOwnProperty.call(realNames, result) ? array.length : 0;
34404
34405 while (length--) {
34406 var data = array[length],
34407 otherFunc = data.func;
34408 if (otherFunc == null || otherFunc == func) {
34409 return data.name;
34410 }
34411 }
34412 return result;
34413 }
34414
34415 /**
34416 * Gets the argument placeholder value for `func`.
34417 *
34418 * @private
34419 * @param {Function} func The function to inspect.
34420 * @returns {*} Returns the placeholder value.
34421 */
34422 function getHolder(func) {
34423 var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;
34424 return object.placeholder;
34425 }
34426
34427 /**
34428 * Gets the appropriate "iteratee" function. If `_.iteratee` is customized,
34429 * this function returns the custom method, otherwise it returns `baseIteratee`.
34430 * If arguments are provided, the chosen function is invoked with them and
34431 * its result is returned.
34432 *
34433 * @private
34434 * @param {*} [value] The value to convert to an iteratee.
34435 * @param {number} [arity] The arity of the created iteratee.
34436 * @returns {Function} Returns the chosen function or its result.
34437 */
34438 function getIteratee() {
34439 var result = lodash.iteratee || iteratee;
34440 result = result === iteratee ? baseIteratee : result;
34441 return arguments.length ? result(arguments[0], arguments[1]) : result;
34442 }
34443
34444 /**
34445 * Gets the data for `map`.
34446 *
34447 * @private
34448 * @param {Object} map The map to query.
34449 * @param {string} key The reference key.
34450 * @returns {*} Returns the map data.
34451 */
34452 function getMapData(map, key) {
34453 var data = map.__data__;
34454 return isKeyable(key)
34455 ? data[typeof key == 'string' ? 'string' : 'hash']
34456 : data.map;
34457 }
34458
34459 /**
34460 * Gets the property names, values, and compare flags of `object`.
34461 *
34462 * @private
34463 * @param {Object} object The object to query.
34464 * @returns {Array} Returns the match data of `object`.
34465 */
34466 function getMatchData(object) {
34467 var result = keys(object),
34468 length = result.length;
34469
34470 while (length--) {
34471 var key = result[length],
34472 value = object[key];
34473
34474 result[length] = [key, value, isStrictComparable(value)];
34475 }
34476 return result;
34477 }
34478
34479 /**
34480 * Gets the native function at `key` of `object`.
34481 *
34482 * @private
34483 * @param {Object} object The object to query.
34484 * @param {string} key The key of the method to get.
34485 * @returns {*} Returns the function if it's native, else `undefined`.
34486 */
34487 function getNative(object, key) {
34488 var value = getValue(object, key);
34489 return baseIsNative(value) ? value : undefined;
34490 }
34491
34492 /**
34493 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
34494 *
34495 * @private
34496 * @param {*} value The value to query.
34497 * @returns {string} Returns the raw `toStringTag`.
34498 */
34499 function getRawTag(value) {
34500 var isOwn = hasOwnProperty.call(value, symToStringTag),
34501 tag = value[symToStringTag];
34502
34503 try {
34504 value[symToStringTag] = undefined;
34505 var unmasked = true;
34506 } catch (e) {}
34507
34508 var result = nativeObjectToString.call(value);
34509 if (unmasked) {
34510 if (isOwn) {
34511 value[symToStringTag] = tag;
34512 } else {
34513 delete value[symToStringTag];
34514 }
34515 }
34516 return result;
34517 }
34518
34519 /**
34520 * Creates an array of the own enumerable symbols of `object`.
34521 *
34522 * @private
34523 * @param {Object} object The object to query.
34524 * @returns {Array} Returns the array of symbols.
34525 */
34526 var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
34527 if (object == null) {
34528 return [];
34529 }
34530 object = Object(object);
34531 return arrayFilter(nativeGetSymbols(object), function(symbol) {
34532 return propertyIsEnumerable.call(object, symbol);
34533 });
34534 };
34535
34536 /**
34537 * Creates an array of the own and inherited enumerable symbols of `object`.
34538 *
34539 * @private
34540 * @param {Object} object The object to query.
34541 * @returns {Array} Returns the array of symbols.
34542 */
34543 var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
34544 var result = [];
34545 while (object) {
34546 arrayPush(result, getSymbols(object));
34547 object = getPrototype(object);
34548 }
34549 return result;
34550 };
34551
34552 /**
34553 * Gets the `toStringTag` of `value`.
34554 *
34555 * @private
34556 * @param {*} value The value to query.
34557 * @returns {string} Returns the `toStringTag`.
34558 */
34559 var getTag = baseGetTag;
34560
34561 // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
34562 if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
34563 (Map && getTag(new Map) != mapTag) ||
34564 (Promise && getTag(Promise.resolve()) != promiseTag) ||
34565 (Set && getTag(new Set) != setTag) ||
34566 (WeakMap && getTag(new WeakMap) != weakMapTag)) {
34567 getTag = function(value) {
34568 var result = baseGetTag(value),
34569 Ctor = result == objectTag ? value.constructor : undefined,
34570 ctorString = Ctor ? toSource(Ctor) : '';
34571
34572 if (ctorString) {
34573 switch (ctorString) {
34574 case dataViewCtorString: return dataViewTag;
34575 case mapCtorString: return mapTag;
34576 case promiseCtorString: return promiseTag;
34577 case setCtorString: return setTag;
34578 case weakMapCtorString: return weakMapTag;
34579 }
34580 }
34581 return result;
34582 };
34583 }
34584
34585 /**
34586 * Gets the view, applying any `transforms` to the `start` and `end` positions.
34587 *
34588 * @private
34589 * @param {number} start The start of the view.
34590 * @param {number} end The end of the view.
34591 * @param {Array} transforms The transformations to apply to the view.
34592 * @returns {Object} Returns an object containing the `start` and `end`
34593 * positions of the view.
34594 */
34595 function getView(start, end, transforms) {
34596 var index = -1,
34597 length = transforms.length;
34598
34599 while (++index < length) {
34600 var data = transforms[index],
34601 size = data.size;
34602
34603 switch (data.type) {
34604 case 'drop': start += size; break;
34605 case 'dropRight': end -= size; break;
34606 case 'take': end = nativeMin(end, start + size); break;
34607 case 'takeRight': start = nativeMax(start, end - size); break;
34608 }
34609 }
34610 return { 'start': start, 'end': end };
34611 }
34612
34613 /**
34614 * Extracts wrapper details from the `source` body comment.
34615 *
34616 * @private
34617 * @param {string} source The source to inspect.
34618 * @returns {Array} Returns the wrapper details.
34619 */
34620 function getWrapDetails(source) {
34621 var match = source.match(reWrapDetails);
34622 return match ? match[1].split(reSplitDetails) : [];
34623 }
34624
34625 /**
34626 * Checks if `path` exists on `object`.
34627 *
34628 * @private
34629 * @param {Object} object The object to query.
34630 * @param {Array|string} path The path to check.
34631 * @param {Function} hasFunc The function to check properties.
34632 * @returns {boolean} Returns `true` if `path` exists, else `false`.
34633 */
34634 function hasPath(object, path, hasFunc) {
34635 path = castPath(path, object);
34636
34637 var index = -1,
34638 length = path.length,
34639 result = false;
34640
34641 while (++index < length) {
34642 var key = toKey(path[index]);
34643 if (!(result = object != null && hasFunc(object, key))) {
34644 break;
34645 }
34646 object = object[key];
34647 }
34648 if (result || ++index != length) {
34649 return result;
34650 }
34651 length = object == null ? 0 : object.length;
34652 return !!length && isLength(length) && isIndex(key, length) &&
34653 (isArray(object) || isArguments(object));
34654 }
34655
34656 /**
34657 * Initializes an array clone.
34658 *
34659 * @private
34660 * @param {Array} array The array to clone.
34661 * @returns {Array} Returns the initialized clone.
34662 */
34663 function initCloneArray(array) {
34664 var length = array.length,
34665 result = new array.constructor(length);
34666
34667 // Add properties assigned by `RegExp#exec`.
34668 if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
34669 result.index = array.index;
34670 result.input = array.input;
34671 }
34672 return result;
34673 }
34674
34675 /**
34676 * Initializes an object clone.
34677 *
34678 * @private
34679 * @param {Object} object The object to clone.
34680 * @returns {Object} Returns the initialized clone.
34681 */
34682 function initCloneObject(object) {
34683 return (typeof object.constructor == 'function' && !isPrototype(object))
34684 ? baseCreate(getPrototype(object))
34685 : {};
34686 }
34687
34688 /**
34689 * Initializes an object clone based on its `toStringTag`.
34690 *
34691 * **Note:** This function only supports cloning values with tags of
34692 * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
34693 *
34694 * @private
34695 * @param {Object} object The object to clone.
34696 * @param {string} tag The `toStringTag` of the object to clone.
34697 * @param {boolean} [isDeep] Specify a deep clone.
34698 * @returns {Object} Returns the initialized clone.
34699 */
34700 function initCloneByTag(object, tag, isDeep) {
34701 var Ctor = object.constructor;
34702 switch (tag) {
34703 case arrayBufferTag:
34704 return cloneArrayBuffer(object);
34705
34706 case boolTag:
34707 case dateTag:
34708 return new Ctor(+object);
34709
34710 case dataViewTag:
34711 return cloneDataView(object, isDeep);
34712
34713 case float32Tag: case float64Tag:
34714 case int8Tag: case int16Tag: case int32Tag:
34715 case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
34716 return cloneTypedArray(object, isDeep);
34717
34718 case mapTag:
34719 return new Ctor;
34720
34721 case numberTag:
34722 case stringTag:
34723 return new Ctor(object);
34724
34725 case regexpTag:
34726 return cloneRegExp(object);
34727
34728 case setTag:
34729 return new Ctor;
34730
34731 case symbolTag:
34732 return cloneSymbol(object);
34733 }
34734 }
34735
34736 /**
34737 * Inserts wrapper `details` in a comment at the top of the `source` body.
34738 *
34739 * @private
34740 * @param {string} source The source to modify.
34741 * @returns {Array} details The details to insert.
34742 * @returns {string} Returns the modified source.
34743 */
34744 function insertWrapDetails(source, details) {
34745 var length = details.length;
34746 if (!length) {
34747 return source;
34748 }
34749 var lastIndex = length - 1;
34750 details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];
34751 details = details.join(length > 2 ? ', ' : ' ');
34752 return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n');
34753 }
34754
34755 /**
34756 * Checks if `value` is a flattenable `arguments` object or array.
34757 *
34758 * @private
34759 * @param {*} value The value to check.
34760 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
34761 */
34762 function isFlattenable(value) {
34763 return isArray(value) || isArguments(value) ||
34764 !!(spreadableSymbol && value && value[spreadableSymbol]);
34765 }
34766
34767 /**
34768 * Checks if `value` is a valid array-like index.
34769 *
34770 * @private
34771 * @param {*} value The value to check.
34772 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
34773 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
34774 */
34775 function isIndex(value, length) {
34776 var type = typeof value;
34777 length = length == null ? MAX_SAFE_INTEGER : length;
34778
34779 return !!length &&
34780 (type == 'number' ||
34781 (type != 'symbol' && reIsUint.test(value))) &&
34782 (value > -1 && value % 1 == 0 && value < length);
34783 }
34784
34785 /**
34786 * Checks if the given arguments are from an iteratee call.
34787 *
34788 * @private
34789 * @param {*} value The potential iteratee value argument.
34790 * @param {*} index The potential iteratee index or key argument.
34791 * @param {*} object The potential iteratee object argument.
34792 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
34793 * else `false`.
34794 */
34795 function isIterateeCall(value, index, object) {
34796 if (!isObject(object)) {
34797 return false;
34798 }
34799 var type = typeof index;
34800 if (type == 'number'
34801 ? (isArrayLike(object) && isIndex(index, object.length))
34802 : (type == 'string' && index in object)
34803 ) {
34804 return eq(object[index], value);
34805 }
34806 return false;
34807 }
34808
34809 /**
34810 * Checks if `value` is a property name and not a property path.
34811 *
34812 * @private
34813 * @param {*} value The value to check.
34814 * @param {Object} [object] The object to query keys on.
34815 * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
34816 */
34817 function isKey(value, object) {
34818 if (isArray(value)) {
34819 return false;
34820 }
34821 var type = typeof value;
34822 if (type == 'number' || type == 'symbol' || type == 'boolean' ||
34823 value == null || isSymbol(value)) {
34824 return true;
34825 }
34826 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
34827 (object != null && value in Object(object));
34828 }
34829
34830 /**
34831 * Checks if `value` is suitable for use as unique object key.
34832 *
34833 * @private
34834 * @param {*} value The value to check.
34835 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
34836 */
34837 function isKeyable(value) {
34838 var type = typeof value;
34839 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
34840 ? (value !== '__proto__')
34841 : (value === null);
34842 }
34843
34844 /**
34845 * Checks if `func` has a lazy counterpart.
34846 *
34847 * @private
34848 * @param {Function} func The function to check.
34849 * @returns {boolean} Returns `true` if `func` has a lazy counterpart,
34850 * else `false`.
34851 */
34852 function isLaziable(func) {
34853 var funcName = getFuncName(func),
34854 other = lodash[funcName];
34855
34856 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {
34857 return false;
34858 }
34859 if (func === other) {
34860 return true;
34861 }
34862 var data = getData(other);
34863 return !!data && func === data[0];
34864 }
34865
34866 /**
34867 * Checks if `func` has its source masked.
34868 *
34869 * @private
34870 * @param {Function} func The function to check.
34871 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
34872 */
34873 function isMasked(func) {
34874 return !!maskSrcKey && (maskSrcKey in func);
34875 }
34876
34877 /**
34878 * Checks if `func` is capable of being masked.
34879 *
34880 * @private
34881 * @param {*} value The value to check.
34882 * @returns {boolean} Returns `true` if `func` is maskable, else `false`.
34883 */
34884 var isMaskable = coreJsData ? isFunction : stubFalse;
34885
34886 /**
34887 * Checks if `value` is likely a prototype object.
34888 *
34889 * @private
34890 * @param {*} value The value to check.
34891 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
34892 */
34893 function isPrototype(value) {
34894 var Ctor = value && value.constructor,
34895 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
34896
34897 return value === proto;
34898 }
34899
34900 /**
34901 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
34902 *
34903 * @private
34904 * @param {*} value The value to check.
34905 * @returns {boolean} Returns `true` if `value` if suitable for strict
34906 * equality comparisons, else `false`.
34907 */
34908 function isStrictComparable(value) {
34909 return value === value && !isObject(value);
34910 }
34911
34912 /**
34913 * A specialized version of `matchesProperty` for source values suitable
34914 * for strict equality comparisons, i.e. `===`.
34915 *
34916 * @private
34917 * @param {string} key The key of the property to get.
34918 * @param {*} srcValue The value to match.
34919 * @returns {Function} Returns the new spec function.
34920 */
34921 function matchesStrictComparable(key, srcValue) {
34922 return function(object) {
34923 if (object == null) {
34924 return false;
34925 }
34926 return object[key] === srcValue &&
34927 (srcValue !== undefined || (key in Object(object)));
34928 };
34929 }
34930
34931 /**
34932 * A specialized version of `_.memoize` which clears the memoized function's
34933 * cache when it exceeds `MAX_MEMOIZE_SIZE`.
34934 *
34935 * @private
34936 * @param {Function} func The function to have its output memoized.
34937 * @returns {Function} Returns the new memoized function.
34938 */
34939 function memoizeCapped(func) {
34940 var result = memoize(func, function(key) {
34941 if (cache.size === MAX_MEMOIZE_SIZE) {
34942 cache.clear();
34943 }
34944 return key;
34945 });
34946
34947 var cache = result.cache;
34948 return result;
34949 }
34950
34951 /**
34952 * Merges the function metadata of `source` into `data`.
34953 *
34954 * Merging metadata reduces the number of wrappers used to invoke a function.
34955 * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`
34956 * may be applied regardless of execution order. Methods like `_.ary` and
34957 * `_.rearg` modify function arguments, making the order in which they are
34958 * executed important, preventing the merging of metadata. However, we make
34959 * an exception for a safe combined case where curried functions have `_.ary`
34960 * and or `_.rearg` applied.
34961 *
34962 * @private
34963 * @param {Array} data The destination metadata.
34964 * @param {Array} source The source metadata.
34965 * @returns {Array} Returns `data`.
34966 */
34967 function mergeData(data, source) {
34968 var bitmask = data[1],
34969 srcBitmask = source[1],
34970 newBitmask = bitmask | srcBitmask,
34971 isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
34972
34973 var isCombo =
34974 ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||
34975 ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||
34976 ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));
34977
34978 // Exit early if metadata can't be merged.
34979 if (!(isCommon || isCombo)) {
34980 return data;
34981 }
34982 // Use source `thisArg` if available.
34983 if (srcBitmask & WRAP_BIND_FLAG) {
34984 data[2] = source[2];
34985 // Set when currying a bound function.
34986 newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
34987 }
34988 // Compose partial arguments.
34989 var value = source[3];
34990 if (value) {
34991 var partials = data[3];
34992 data[3] = partials ? composeArgs(partials, value, source[4]) : value;
34993 data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];
34994 }
34995 // Compose partial right arguments.
34996 value = source[5];
34997 if (value) {
34998 partials = data[5];
34999 data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;
35000 data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];
35001 }
35002 // Use source `argPos` if available.
35003 value = source[7];
35004 if (value) {
35005 data[7] = value;
35006 }
35007 // Use source `ary` if it's smaller.
35008 if (srcBitmask & WRAP_ARY_FLAG) {
35009 data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
35010 }
35011 // Use source `arity` if one is not provided.
35012 if (data[9] == null) {
35013 data[9] = source[9];
35014 }
35015 // Use source `func` and merge bitmasks.
35016 data[0] = source[0];
35017 data[1] = newBitmask;
35018
35019 return data;
35020 }
35021
35022 /**
35023 * This function is like
35024 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
35025 * except that it includes inherited enumerable properties.
35026 *
35027 * @private
35028 * @param {Object} object The object to query.
35029 * @returns {Array} Returns the array of property names.
35030 */
35031 function nativeKeysIn(object) {
35032 var result = [];
35033 if (object != null) {
35034 for (var key in Object(object)) {
35035 result.push(key);
35036 }
35037 }
35038 return result;
35039 }
35040
35041 /**
35042 * Converts `value` to a string using `Object.prototype.toString`.
35043 *
35044 * @private
35045 * @param {*} value The value to convert.
35046 * @returns {string} Returns the converted string.
35047 */
35048 function objectToString(value) {
35049 return nativeObjectToString.call(value);
35050 }
35051
35052 /**
35053 * A specialized version of `baseRest` which transforms the rest array.
35054 *
35055 * @private
35056 * @param {Function} func The function to apply a rest parameter to.
35057 * @param {number} [start=func.length-1] The start position of the rest parameter.
35058 * @param {Function} transform The rest array transform.
35059 * @returns {Function} Returns the new function.
35060 */
35061 function overRest(func, start, transform) {
35062 start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
35063 return function() {
35064 var args = arguments,
35065 index = -1,
35066 length = nativeMax(args.length - start, 0),
35067 array = Array(length);
35068
35069 while (++index < length) {
35070 array[index] = args[start + index];
35071 }
35072 index = -1;
35073 var otherArgs = Array(start + 1);
35074 while (++index < start) {
35075 otherArgs[index] = args[index];
35076 }
35077 otherArgs[start] = transform(array);
35078 return apply(func, this, otherArgs);
35079 };
35080 }
35081
35082 /**
35083 * Gets the parent value at `path` of `object`.
35084 *
35085 * @private
35086 * @param {Object} object The object to query.
35087 * @param {Array} path The path to get the parent value of.
35088 * @returns {*} Returns the parent value.
35089 */
35090 function parent(object, path) {
35091 return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
35092 }
35093
35094 /**
35095 * Reorder `array` according to the specified indexes where the element at
35096 * the first index is assigned as the first element, the element at
35097 * the second index is assigned as the second element, and so on.
35098 *
35099 * @private
35100 * @param {Array} array The array to reorder.
35101 * @param {Array} indexes The arranged array indexes.
35102 * @returns {Array} Returns `array`.
35103 */
35104 function reorder(array, indexes) {
35105 var arrLength = array.length,
35106 length = nativeMin(indexes.length, arrLength),
35107 oldArray = copyArray(array);
35108
35109 while (length--) {
35110 var index = indexes[length];
35111 array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
35112 }
35113 return array;
35114 }
35115
35116 /**
35117 * Sets metadata for `func`.
35118 *
35119 * **Note:** If this function becomes hot, i.e. is invoked a lot in a short
35120 * period of time, it will trip its breaker and transition to an identity
35121 * function to avoid garbage collection pauses in V8. See
35122 * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)
35123 * for more details.
35124 *
35125 * @private
35126 * @param {Function} func The function to associate metadata with.
35127 * @param {*} data The metadata.
35128 * @returns {Function} Returns `func`.
35129 */
35130 var setData = shortOut(baseSetData);
35131
35132 /**
35133 * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).
35134 *
35135 * @private
35136 * @param {Function} func The function to delay.
35137 * @param {number} wait The number of milliseconds to delay invocation.
35138 * @returns {number|Object} Returns the timer id or timeout object.
35139 */
35140 var setTimeout = ctxSetTimeout || function(func, wait) {
35141 return root.setTimeout(func, wait);
35142 };
35143
35144 /**
35145 * Sets the `toString` method of `func` to return `string`.
35146 *
35147 * @private
35148 * @param {Function} func The function to modify.
35149 * @param {Function} string The `toString` result.
35150 * @returns {Function} Returns `func`.
35151 */
35152 var setToString = shortOut(baseSetToString);
35153
35154 /**
35155 * Sets the `toString` method of `wrapper` to mimic the source of `reference`
35156 * with wrapper details in a comment at the top of the source body.
35157 *
35158 * @private
35159 * @param {Function} wrapper The function to modify.
35160 * @param {Function} reference The reference function.
35161 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
35162 * @returns {Function} Returns `wrapper`.
35163 */
35164 function setWrapToString(wrapper, reference, bitmask) {
35165 var source = (reference + '');
35166 return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));
35167 }
35168
35169 /**
35170 * Creates a function that'll short out and invoke `identity` instead
35171 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
35172 * milliseconds.
35173 *
35174 * @private
35175 * @param {Function} func The function to restrict.
35176 * @returns {Function} Returns the new shortable function.
35177 */
35178 function shortOut(func) {
35179 var count = 0,
35180 lastCalled = 0;
35181
35182 return function() {
35183 var stamp = nativeNow(),
35184 remaining = HOT_SPAN - (stamp - lastCalled);
35185
35186 lastCalled = stamp;
35187 if (remaining > 0) {
35188 if (++count >= HOT_COUNT) {
35189 return arguments[0];
35190 }
35191 } else {
35192 count = 0;
35193 }
35194 return func.apply(undefined, arguments);
35195 };
35196 }
35197
35198 /**
35199 * A specialized version of `_.shuffle` which mutates and sets the size of `array`.
35200 *
35201 * @private
35202 * @param {Array} array The array to shuffle.
35203 * @param {number} [size=array.length] The size of `array`.
35204 * @returns {Array} Returns `array`.
35205 */
35206 function shuffleSelf(array, size) {
35207 var index = -1,
35208 length = array.length,
35209 lastIndex = length - 1;
35210
35211 size = size === undefined ? length : size;
35212 while (++index < size) {
35213 var rand = baseRandom(index, lastIndex),
35214 value = array[rand];
35215
35216 array[rand] = array[index];
35217 array[index] = value;
35218 }
35219 array.length = size;
35220 return array;
35221 }
35222
35223 /**
35224 * Converts `string` to a property path array.
35225 *
35226 * @private
35227 * @param {string} string The string to convert.
35228 * @returns {Array} Returns the property path array.
35229 */
35230 var stringToPath = memoizeCapped(function(string) {
35231 var result = [];
35232 if (string.charCodeAt(0) === 46 /* . */) {
35233 result.push('');
35234 }
35235 string.replace(rePropName, function(match, number, quote, subString) {
35236 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
35237 });
35238 return result;
35239 });
35240
35241 /**
35242 * Converts `value` to a string key if it's not a string or symbol.
35243 *
35244 * @private
35245 * @param {*} value The value to inspect.
35246 * @returns {string|symbol} Returns the key.
35247 */
35248 function toKey(value) {
35249 if (typeof value == 'string' || isSymbol(value)) {
35250 return value;
35251 }
35252 var result = (value + '');
35253 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
35254 }
35255
35256 /**
35257 * Converts `func` to its source code.
35258 *
35259 * @private
35260 * @param {Function} func The function to convert.
35261 * @returns {string} Returns the source code.
35262 */
35263 function toSource(func) {
35264 if (func != null) {
35265 try {
35266 return funcToString.call(func);
35267 } catch (e) {}
35268 try {
35269 return (func + '');
35270 } catch (e) {}
35271 }
35272 return '';
35273 }
35274
35275 /**
35276 * Updates wrapper `details` based on `bitmask` flags.
35277 *
35278 * @private
35279 * @returns {Array} details The details to modify.
35280 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
35281 * @returns {Array} Returns `details`.
35282 */
35283 function updateWrapDetails(details, bitmask) {
35284 arrayEach(wrapFlags, function(pair) {
35285 var value = '_.' + pair[0];
35286 if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {
35287 details.push(value);
35288 }
35289 });
35290 return details.sort();
35291 }
35292
35293 /**
35294 * Creates a clone of `wrapper`.
35295 *
35296 * @private
35297 * @param {Object} wrapper The wrapper to clone.
35298 * @returns {Object} Returns the cloned wrapper.
35299 */
35300 function wrapperClone(wrapper) {
35301 if (wrapper instanceof LazyWrapper) {
35302 return wrapper.clone();
35303 }
35304 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);
35305 result.__actions__ = copyArray(wrapper.__actions__);
35306 result.__index__ = wrapper.__index__;
35307 result.__values__ = wrapper.__values__;
35308 return result;
35309 }
35310
35311 /*------------------------------------------------------------------------*/
35312
35313 /**
35314 * Creates an array of elements split into groups the length of `size`.
35315 * If `array` can't be split evenly, the final chunk will be the remaining
35316 * elements.
35317 *
35318 * @static
35319 * @memberOf _
35320 * @since 3.0.0
35321 * @category Array
35322 * @param {Array} array The array to process.
35323 * @param {number} [size=1] The length of each chunk
35324 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
35325 * @returns {Array} Returns the new array of chunks.
35326 * @example
35327 *
35328 * _.chunk(['a', 'b', 'c', 'd'], 2);
35329 * // => [['a', 'b'], ['c', 'd']]
35330 *
35331 * _.chunk(['a', 'b', 'c', 'd'], 3);
35332 * // => [['a', 'b', 'c'], ['d']]
35333 */
35334 function chunk(array, size, guard) {
35335 if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {
35336 size = 1;
35337 } else {
35338 size = nativeMax(toInteger(size), 0);
35339 }
35340 var length = array == null ? 0 : array.length;
35341 if (!length || size < 1) {
35342 return [];
35343 }
35344 var index = 0,
35345 resIndex = 0,
35346 result = Array(nativeCeil(length / size));
35347
35348 while (index < length) {
35349 result[resIndex++] = baseSlice(array, index, (index += size));
35350 }
35351 return result;
35352 }
35353
35354 /**
35355 * Creates an array with all falsey values removed. The values `false`, `null`,
35356 * `0`, `""`, `undefined`, and `NaN` are falsey.
35357 *
35358 * @static
35359 * @memberOf _
35360 * @since 0.1.0
35361 * @category Array
35362 * @param {Array} array The array to compact.
35363 * @returns {Array} Returns the new array of filtered values.
35364 * @example
35365 *
35366 * _.compact([0, 1, false, 2, '', 3]);
35367 * // => [1, 2, 3]
35368 */
35369 function compact(array) {
35370 var index = -1,
35371 length = array == null ? 0 : array.length,
35372 resIndex = 0,
35373 result = [];
35374
35375 while (++index < length) {
35376 var value = array[index];
35377 if (value) {
35378 result[resIndex++] = value;
35379 }
35380 }
35381 return result;
35382 }
35383
35384 /**
35385 * Creates a new array concatenating `array` with any additional arrays
35386 * and/or values.
35387 *
35388 * @static
35389 * @memberOf _
35390 * @since 4.0.0
35391 * @category Array
35392 * @param {Array} array The array to concatenate.
35393 * @param {...*} [values] The values to concatenate.
35394 * @returns {Array} Returns the new concatenated array.
35395 * @example
35396 *
35397 * var array = [1];
35398 * var other = _.concat(array, 2, [3], [[4]]);
35399 *
35400 * console.log(other);
35401 * // => [1, 2, 3, [4]]
35402 *
35403 * console.log(array);
35404 * // => [1]
35405 */
35406 function concat() {
35407 var length = arguments.length;
35408 if (!length) {
35409 return [];
35410 }
35411 var args = Array(length - 1),
35412 array = arguments[0],
35413 index = length;
35414
35415 while (index--) {
35416 args[index - 1] = arguments[index];
35417 }
35418 return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));
35419 }
35420
35421 /**
35422 * Creates an array of `array` values not included in the other given arrays
35423 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
35424 * for equality comparisons. The order and references of result values are
35425 * determined by the first array.
35426 *
35427 * **Note:** Unlike `_.pullAll`, this method returns a new array.
35428 *
35429 * @static
35430 * @memberOf _
35431 * @since 0.1.0
35432 * @category Array
35433 * @param {Array} array The array to inspect.
35434 * @param {...Array} [values] The values to exclude.
35435 * @returns {Array} Returns the new array of filtered values.
35436 * @see _.without, _.xor
35437 * @example
35438 *
35439 * _.difference([2, 1], [2, 3]);
35440 * // => [1]
35441 */
35442 var difference = baseRest(function(array, values) {
35443 return isArrayLikeObject(array)
35444 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))
35445 : [];
35446 });
35447
35448 /**
35449 * This method is like `_.difference` except that it accepts `iteratee` which
35450 * is invoked for each element of `array` and `values` to generate the criterion
35451 * by which they're compared. The order and references of result values are
35452 * determined by the first array. The iteratee is invoked with one argument:
35453 * (value).
35454 *
35455 * **Note:** Unlike `_.pullAllBy`, this method returns a new array.
35456 *
35457 * @static
35458 * @memberOf _
35459 * @since 4.0.0
35460 * @category Array
35461 * @param {Array} array The array to inspect.
35462 * @param {...Array} [values] The values to exclude.
35463 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
35464 * @returns {Array} Returns the new array of filtered values.
35465 * @example
35466 *
35467 * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
35468 * // => [1.2]
35469 *
35470 * // The `_.property` iteratee shorthand.
35471 * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
35472 * // => [{ 'x': 2 }]
35473 */
35474 var differenceBy = baseRest(function(array, values) {
35475 var iteratee = last(values);
35476 if (isArrayLikeObject(iteratee)) {
35477 iteratee = undefined;
35478 }
35479 return isArrayLikeObject(array)
35480 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))
35481 : [];
35482 });
35483
35484 /**
35485 * This method is like `_.difference` except that it accepts `comparator`
35486 * which is invoked to compare elements of `array` to `values`. The order and
35487 * references of result values are determined by the first array. The comparator
35488 * is invoked with two arguments: (arrVal, othVal).
35489 *
35490 * **Note:** Unlike `_.pullAllWith`, this method returns a new array.
35491 *
35492 * @static
35493 * @memberOf _
35494 * @since 4.0.0
35495 * @category Array
35496 * @param {Array} array The array to inspect.
35497 * @param {...Array} [values] The values to exclude.
35498 * @param {Function} [comparator] The comparator invoked per element.
35499 * @returns {Array} Returns the new array of filtered values.
35500 * @example
35501 *
35502 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
35503 *
35504 * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
35505 * // => [{ 'x': 2, 'y': 1 }]
35506 */
35507 var differenceWith = baseRest(function(array, values) {
35508 var comparator = last(values);
35509 if (isArrayLikeObject(comparator)) {
35510 comparator = undefined;
35511 }
35512 return isArrayLikeObject(array)
35513 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)
35514 : [];
35515 });
35516
35517 /**
35518 * Creates a slice of `array` with `n` elements dropped from the beginning.
35519 *
35520 * @static
35521 * @memberOf _
35522 * @since 0.5.0
35523 * @category Array
35524 * @param {Array} array The array to query.
35525 * @param {number} [n=1] The number of elements to drop.
35526 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
35527 * @returns {Array} Returns the slice of `array`.
35528 * @example
35529 *
35530 * _.drop([1, 2, 3]);
35531 * // => [2, 3]
35532 *
35533 * _.drop([1, 2, 3], 2);
35534 * // => [3]
35535 *
35536 * _.drop([1, 2, 3], 5);
35537 * // => []
35538 *
35539 * _.drop([1, 2, 3], 0);
35540 * // => [1, 2, 3]
35541 */
35542 function drop(array, n, guard) {
35543 var length = array == null ? 0 : array.length;
35544 if (!length) {
35545 return [];
35546 }
35547 n = (guard || n === undefined) ? 1 : toInteger(n);
35548 return baseSlice(array, n < 0 ? 0 : n, length);
35549 }
35550
35551 /**
35552 * Creates a slice of `array` with `n` elements dropped from the end.
35553 *
35554 * @static
35555 * @memberOf _
35556 * @since 3.0.0
35557 * @category Array
35558 * @param {Array} array The array to query.
35559 * @param {number} [n=1] The number of elements to drop.
35560 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
35561 * @returns {Array} Returns the slice of `array`.
35562 * @example
35563 *
35564 * _.dropRight([1, 2, 3]);
35565 * // => [1, 2]
35566 *
35567 * _.dropRight([1, 2, 3], 2);
35568 * // => [1]
35569 *
35570 * _.dropRight([1, 2, 3], 5);
35571 * // => []
35572 *
35573 * _.dropRight([1, 2, 3], 0);
35574 * // => [1, 2, 3]
35575 */
35576 function dropRight(array, n, guard) {
35577 var length = array == null ? 0 : array.length;
35578 if (!length) {
35579 return [];
35580 }
35581 n = (guard || n === undefined) ? 1 : toInteger(n);
35582 n = length - n;
35583 return baseSlice(array, 0, n < 0 ? 0 : n);
35584 }
35585
35586 /**
35587 * Creates a slice of `array` excluding elements dropped from the end.
35588 * Elements are dropped until `predicate` returns falsey. The predicate is
35589 * invoked with three arguments: (value, index, array).
35590 *
35591 * @static
35592 * @memberOf _
35593 * @since 3.0.0
35594 * @category Array
35595 * @param {Array} array The array to query.
35596 * @param {Function} [predicate=_.identity] The function invoked per iteration.
35597 * @returns {Array} Returns the slice of `array`.
35598 * @example
35599 *
35600 * var users = [
35601 * { 'user': 'barney', 'active': true },
35602 * { 'user': 'fred', 'active': false },
35603 * { 'user': 'pebbles', 'active': false }
35604 * ];
35605 *
35606 * _.dropRightWhile(users, function(o) { return !o.active; });
35607 * // => objects for ['barney']
35608 *
35609 * // The `_.matches` iteratee shorthand.
35610 * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
35611 * // => objects for ['barney', 'fred']
35612 *
35613 * // The `_.matchesProperty` iteratee shorthand.
35614 * _.dropRightWhile(users, ['active', false]);
35615 * // => objects for ['barney']
35616 *
35617 * // The `_.property` iteratee shorthand.
35618 * _.dropRightWhile(users, 'active');
35619 * // => objects for ['barney', 'fred', 'pebbles']
35620 */
35621 function dropRightWhile(array, predicate) {
35622 return (array && array.length)
35623 ? baseWhile(array, getIteratee(predicate, 3), true, true)
35624 : [];
35625 }
35626
35627 /**
35628 * Creates a slice of `array` excluding elements dropped from the beginning.
35629 * Elements are dropped until `predicate` returns falsey. The predicate is
35630 * invoked with three arguments: (value, index, array).
35631 *
35632 * @static
35633 * @memberOf _
35634 * @since 3.0.0
35635 * @category Array
35636 * @param {Array} array The array to query.
35637 * @param {Function} [predicate=_.identity] The function invoked per iteration.
35638 * @returns {Array} Returns the slice of `array`.
35639 * @example
35640 *
35641 * var users = [
35642 * { 'user': 'barney', 'active': false },
35643 * { 'user': 'fred', 'active': false },
35644 * { 'user': 'pebbles', 'active': true }
35645 * ];
35646 *
35647 * _.dropWhile(users, function(o) { return !o.active; });
35648 * // => objects for ['pebbles']
35649 *
35650 * // The `_.matches` iteratee shorthand.
35651 * _.dropWhile(users, { 'user': 'barney', 'active': false });
35652 * // => objects for ['fred', 'pebbles']
35653 *
35654 * // The `_.matchesProperty` iteratee shorthand.
35655 * _.dropWhile(users, ['active', false]);
35656 * // => objects for ['pebbles']
35657 *
35658 * // The `_.property` iteratee shorthand.
35659 * _.dropWhile(users, 'active');
35660 * // => objects for ['barney', 'fred', 'pebbles']
35661 */
35662 function dropWhile(array, predicate) {
35663 return (array && array.length)
35664 ? baseWhile(array, getIteratee(predicate, 3), true)
35665 : [];
35666 }
35667
35668 /**
35669 * Fills elements of `array` with `value` from `start` up to, but not
35670 * including, `end`.
35671 *
35672 * **Note:** This method mutates `array`.
35673 *
35674 * @static
35675 * @memberOf _
35676 * @since 3.2.0
35677 * @category Array
35678 * @param {Array} array The array to fill.
35679 * @param {*} value The value to fill `array` with.
35680 * @param {number} [start=0] The start position.
35681 * @param {number} [end=array.length] The end position.
35682 * @returns {Array} Returns `array`.
35683 * @example
35684 *
35685 * var array = [1, 2, 3];
35686 *
35687 * _.fill(array, 'a');
35688 * console.log(array);
35689 * // => ['a', 'a', 'a']
35690 *
35691 * _.fill(Array(3), 2);
35692 * // => [2, 2, 2]
35693 *
35694 * _.fill([4, 6, 8, 10], '*', 1, 3);
35695 * // => [4, '*', '*', 10]
35696 */
35697 function fill(array, value, start, end) {
35698 var length = array == null ? 0 : array.length;
35699 if (!length) {
35700 return [];
35701 }
35702 if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {
35703 start = 0;
35704 end = length;
35705 }
35706 return baseFill(array, value, start, end);
35707 }
35708
35709 /**
35710 * This method is like `_.find` except that it returns the index of the first
35711 * element `predicate` returns truthy for instead of the element itself.
35712 *
35713 * @static
35714 * @memberOf _
35715 * @since 1.1.0
35716 * @category Array
35717 * @param {Array} array The array to inspect.
35718 * @param {Function} [predicate=_.identity] The function invoked per iteration.
35719 * @param {number} [fromIndex=0] The index to search from.
35720 * @returns {number} Returns the index of the found element, else `-1`.
35721 * @example
35722 *
35723 * var users = [
35724 * { 'user': 'barney', 'active': false },
35725 * { 'user': 'fred', 'active': false },
35726 * { 'user': 'pebbles', 'active': true }
35727 * ];
35728 *
35729 * _.findIndex(users, function(o) { return o.user == 'barney'; });
35730 * // => 0
35731 *
35732 * // The `_.matches` iteratee shorthand.
35733 * _.findIndex(users, { 'user': 'fred', 'active': false });
35734 * // => 1
35735 *
35736 * // The `_.matchesProperty` iteratee shorthand.
35737 * _.findIndex(users, ['active', false]);
35738 * // => 0
35739 *
35740 * // The `_.property` iteratee shorthand.
35741 * _.findIndex(users, 'active');
35742 * // => 2
35743 */
35744 function findIndex(array, predicate, fromIndex) {
35745 var length = array == null ? 0 : array.length;
35746 if (!length) {
35747 return -1;
35748 }
35749 var index = fromIndex == null ? 0 : toInteger(fromIndex);
35750 if (index < 0) {
35751 index = nativeMax(length + index, 0);
35752 }
35753 return baseFindIndex(array, getIteratee(predicate, 3), index);
35754 }
35755
35756 /**
35757 * This method is like `_.findIndex` except that it iterates over elements
35758 * of `collection` from right to left.
35759 *
35760 * @static
35761 * @memberOf _
35762 * @since 2.0.0
35763 * @category Array
35764 * @param {Array} array The array to inspect.
35765 * @param {Function} [predicate=_.identity] The function invoked per iteration.
35766 * @param {number} [fromIndex=array.length-1] The index to search from.
35767 * @returns {number} Returns the index of the found element, else `-1`.
35768 * @example
35769 *
35770 * var users = [
35771 * { 'user': 'barney', 'active': true },
35772 * { 'user': 'fred', 'active': false },
35773 * { 'user': 'pebbles', 'active': false }
35774 * ];
35775 *
35776 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });
35777 * // => 2
35778 *
35779 * // The `_.matches` iteratee shorthand.
35780 * _.findLastIndex(users, { 'user': 'barney', 'active': true });
35781 * // => 0
35782 *
35783 * // The `_.matchesProperty` iteratee shorthand.
35784 * _.findLastIndex(users, ['active', false]);
35785 * // => 2
35786 *
35787 * // The `_.property` iteratee shorthand.
35788 * _.findLastIndex(users, 'active');
35789 * // => 0
35790 */
35791 function findLastIndex(array, predicate, fromIndex) {
35792 var length = array == null ? 0 : array.length;
35793 if (!length) {
35794 return -1;
35795 }
35796 var index = length - 1;
35797 if (fromIndex !== undefined) {
35798 index = toInteger(fromIndex);
35799 index = fromIndex < 0
35800 ? nativeMax(length + index, 0)
35801 : nativeMin(index, length - 1);
35802 }
35803 return baseFindIndex(array, getIteratee(predicate, 3), index, true);
35804 }
35805
35806 /**
35807 * Flattens `array` a single level deep.
35808 *
35809 * @static
35810 * @memberOf _
35811 * @since 0.1.0
35812 * @category Array
35813 * @param {Array} array The array to flatten.
35814 * @returns {Array} Returns the new flattened array.
35815 * @example
35816 *
35817 * _.flatten([1, [2, [3, [4]], 5]]);
35818 * // => [1, 2, [3, [4]], 5]
35819 */
35820 function flatten(array) {
35821 var length = array == null ? 0 : array.length;
35822 return length ? baseFlatten(array, 1) : [];
35823 }
35824
35825 /**
35826 * Recursively flattens `array`.
35827 *
35828 * @static
35829 * @memberOf _
35830 * @since 3.0.0
35831 * @category Array
35832 * @param {Array} array The array to flatten.
35833 * @returns {Array} Returns the new flattened array.
35834 * @example
35835 *
35836 * _.flattenDeep([1, [2, [3, [4]], 5]]);
35837 * // => [1, 2, 3, 4, 5]
35838 */
35839 function flattenDeep(array) {
35840 var length = array == null ? 0 : array.length;
35841 return length ? baseFlatten(array, INFINITY) : [];
35842 }
35843
35844 /**
35845 * Recursively flatten `array` up to `depth` times.
35846 *
35847 * @static
35848 * @memberOf _
35849 * @since 4.4.0
35850 * @category Array
35851 * @param {Array} array The array to flatten.
35852 * @param {number} [depth=1] The maximum recursion depth.
35853 * @returns {Array} Returns the new flattened array.
35854 * @example
35855 *
35856 * var array = [1, [2, [3, [4]], 5]];
35857 *
35858 * _.flattenDepth(array, 1);
35859 * // => [1, 2, [3, [4]], 5]
35860 *
35861 * _.flattenDepth(array, 2);
35862 * // => [1, 2, 3, [4], 5]
35863 */
35864 function flattenDepth(array, depth) {
35865 var length = array == null ? 0 : array.length;
35866 if (!length) {
35867 return [];
35868 }
35869 depth = depth === undefined ? 1 : toInteger(depth);
35870 return baseFlatten(array, depth);
35871 }
35872
35873 /**
35874 * The inverse of `_.toPairs`; this method returns an object composed
35875 * from key-value `pairs`.
35876 *
35877 * @static
35878 * @memberOf _
35879 * @since 4.0.0
35880 * @category Array
35881 * @param {Array} pairs The key-value pairs.
35882 * @returns {Object} Returns the new object.
35883 * @example
35884 *
35885 * _.fromPairs([['a', 1], ['b', 2]]);
35886 * // => { 'a': 1, 'b': 2 }
35887 */
35888 function fromPairs(pairs) {
35889 var index = -1,
35890 length = pairs == null ? 0 : pairs.length,
35891 result = {};
35892
35893 while (++index < length) {
35894 var pair = pairs[index];
35895 result[pair[0]] = pair[1];
35896 }
35897 return result;
35898 }
35899
35900 /**
35901 * Gets the first element of `array`.
35902 *
35903 * @static
35904 * @memberOf _
35905 * @since 0.1.0
35906 * @alias first
35907 * @category Array
35908 * @param {Array} array The array to query.
35909 * @returns {*} Returns the first element of `array`.
35910 * @example
35911 *
35912 * _.head([1, 2, 3]);
35913 * // => 1
35914 *
35915 * _.head([]);
35916 * // => undefined
35917 */
35918 function head(array) {
35919 return (array && array.length) ? array[0] : undefined;
35920 }
35921
35922 /**
35923 * Gets the index at which the first occurrence of `value` is found in `array`
35924 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
35925 * for equality comparisons. If `fromIndex` is negative, it's used as the
35926 * offset from the end of `array`.
35927 *
35928 * @static
35929 * @memberOf _
35930 * @since 0.1.0
35931 * @category Array
35932 * @param {Array} array The array to inspect.
35933 * @param {*} value The value to search for.
35934 * @param {number} [fromIndex=0] The index to search from.
35935 * @returns {number} Returns the index of the matched value, else `-1`.
35936 * @example
35937 *
35938 * _.indexOf([1, 2, 1, 2], 2);
35939 * // => 1
35940 *
35941 * // Search from the `fromIndex`.
35942 * _.indexOf([1, 2, 1, 2], 2, 2);
35943 * // => 3
35944 */
35945 function indexOf(array, value, fromIndex) {
35946 var length = array == null ? 0 : array.length;
35947 if (!length) {
35948 return -1;
35949 }
35950 var index = fromIndex == null ? 0 : toInteger(fromIndex);
35951 if (index < 0) {
35952 index = nativeMax(length + index, 0);
35953 }
35954 return baseIndexOf(array, value, index);
35955 }
35956
35957 /**
35958 * Gets all but the last element of `array`.
35959 *
35960 * @static
35961 * @memberOf _
35962 * @since 0.1.0
35963 * @category Array
35964 * @param {Array} array The array to query.
35965 * @returns {Array} Returns the slice of `array`.
35966 * @example
35967 *
35968 * _.initial([1, 2, 3]);
35969 * // => [1, 2]
35970 */
35971 function initial(array) {
35972 var length = array == null ? 0 : array.length;
35973 return length ? baseSlice(array, 0, -1) : [];
35974 }
35975
35976 /**
35977 * Creates an array of unique values that are included in all given arrays
35978 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
35979 * for equality comparisons. The order and references of result values are
35980 * determined by the first array.
35981 *
35982 * @static
35983 * @memberOf _
35984 * @since 0.1.0
35985 * @category Array
35986 * @param {...Array} [arrays] The arrays to inspect.
35987 * @returns {Array} Returns the new array of intersecting values.
35988 * @example
35989 *
35990 * _.intersection([2, 1], [2, 3]);
35991 * // => [2]
35992 */
35993 var intersection = baseRest(function(arrays) {
35994 var mapped = arrayMap(arrays, castArrayLikeObject);
35995 return (mapped.length && mapped[0] === arrays[0])
35996 ? baseIntersection(mapped)
35997 : [];
35998 });
35999
36000 /**
36001 * This method is like `_.intersection` except that it accepts `iteratee`
36002 * which is invoked for each element of each `arrays` to generate the criterion
36003 * by which they're compared. The order and references of result values are
36004 * determined by the first array. The iteratee is invoked with one argument:
36005 * (value).
36006 *
36007 * @static
36008 * @memberOf _
36009 * @since 4.0.0
36010 * @category Array
36011 * @param {...Array} [arrays] The arrays to inspect.
36012 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
36013 * @returns {Array} Returns the new array of intersecting values.
36014 * @example
36015 *
36016 * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
36017 * // => [2.1]
36018 *
36019 * // The `_.property` iteratee shorthand.
36020 * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
36021 * // => [{ 'x': 1 }]
36022 */
36023 var intersectionBy = baseRest(function(arrays) {
36024 var iteratee = last(arrays),
36025 mapped = arrayMap(arrays, castArrayLikeObject);
36026
36027 if (iteratee === last(mapped)) {
36028 iteratee = undefined;
36029 } else {
36030 mapped.pop();
36031 }
36032 return (mapped.length && mapped[0] === arrays[0])
36033 ? baseIntersection(mapped, getIteratee(iteratee, 2))
36034 : [];
36035 });
36036
36037 /**
36038 * This method is like `_.intersection` except that it accepts `comparator`
36039 * which is invoked to compare elements of `arrays`. The order and references
36040 * of result values are determined by the first array. The comparator is
36041 * invoked with two arguments: (arrVal, othVal).
36042 *
36043 * @static
36044 * @memberOf _
36045 * @since 4.0.0
36046 * @category Array
36047 * @param {...Array} [arrays] The arrays to inspect.
36048 * @param {Function} [comparator] The comparator invoked per element.
36049 * @returns {Array} Returns the new array of intersecting values.
36050 * @example
36051 *
36052 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
36053 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
36054 *
36055 * _.intersectionWith(objects, others, _.isEqual);
36056 * // => [{ 'x': 1, 'y': 2 }]
36057 */
36058 var intersectionWith = baseRest(function(arrays) {
36059 var comparator = last(arrays),
36060 mapped = arrayMap(arrays, castArrayLikeObject);
36061
36062 comparator = typeof comparator == 'function' ? comparator : undefined;
36063 if (comparator) {
36064 mapped.pop();
36065 }
36066 return (mapped.length && mapped[0] === arrays[0])
36067 ? baseIntersection(mapped, undefined, comparator)
36068 : [];
36069 });
36070
36071 /**
36072 * Converts all elements in `array` into a string separated by `separator`.
36073 *
36074 * @static
36075 * @memberOf _
36076 * @since 4.0.0
36077 * @category Array
36078 * @param {Array} array The array to convert.
36079 * @param {string} [separator=','] The element separator.
36080 * @returns {string} Returns the joined string.
36081 * @example
36082 *
36083 * _.join(['a', 'b', 'c'], '~');
36084 * // => 'a~b~c'
36085 */
36086 function join(array, separator) {
36087 return array == null ? '' : nativeJoin.call(array, separator);
36088 }
36089
36090 /**
36091 * Gets the last element of `array`.
36092 *
36093 * @static
36094 * @memberOf _
36095 * @since 0.1.0
36096 * @category Array
36097 * @param {Array} array The array to query.
36098 * @returns {*} Returns the last element of `array`.
36099 * @example
36100 *
36101 * _.last([1, 2, 3]);
36102 * // => 3
36103 */
36104 function last(array) {
36105 var length = array == null ? 0 : array.length;
36106 return length ? array[length - 1] : undefined;
36107 }
36108
36109 /**
36110 * This method is like `_.indexOf` except that it iterates over elements of
36111 * `array` from right to left.
36112 *
36113 * @static
36114 * @memberOf _
36115 * @since 0.1.0
36116 * @category Array
36117 * @param {Array} array The array to inspect.
36118 * @param {*} value The value to search for.
36119 * @param {number} [fromIndex=array.length-1] The index to search from.
36120 * @returns {number} Returns the index of the matched value, else `-1`.
36121 * @example
36122 *
36123 * _.lastIndexOf([1, 2, 1, 2], 2);
36124 * // => 3
36125 *
36126 * // Search from the `fromIndex`.
36127 * _.lastIndexOf([1, 2, 1, 2], 2, 2);
36128 * // => 1
36129 */
36130 function lastIndexOf(array, value, fromIndex) {
36131 var length = array == null ? 0 : array.length;
36132 if (!length) {
36133 return -1;
36134 }
36135 var index = length;
36136 if (fromIndex !== undefined) {
36137 index = toInteger(fromIndex);
36138 index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
36139 }
36140 return value === value
36141 ? strictLastIndexOf(array, value, index)
36142 : baseFindIndex(array, baseIsNaN, index, true);
36143 }
36144
36145 /**
36146 * Gets the element at index `n` of `array`. If `n` is negative, the nth
36147 * element from the end is returned.
36148 *
36149 * @static
36150 * @memberOf _
36151 * @since 4.11.0
36152 * @category Array
36153 * @param {Array} array The array to query.
36154 * @param {number} [n=0] The index of the element to return.
36155 * @returns {*} Returns the nth element of `array`.
36156 * @example
36157 *
36158 * var array = ['a', 'b', 'c', 'd'];
36159 *
36160 * _.nth(array, 1);
36161 * // => 'b'
36162 *
36163 * _.nth(array, -2);
36164 * // => 'c';
36165 */
36166 function nth(array, n) {
36167 return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;
36168 }
36169
36170 /**
36171 * Removes all given values from `array` using
36172 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
36173 * for equality comparisons.
36174 *
36175 * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`
36176 * to remove elements from an array by predicate.
36177 *
36178 * @static
36179 * @memberOf _
36180 * @since 2.0.0
36181 * @category Array
36182 * @param {Array} array The array to modify.
36183 * @param {...*} [values] The values to remove.
36184 * @returns {Array} Returns `array`.
36185 * @example
36186 *
36187 * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
36188 *
36189 * _.pull(array, 'a', 'c');
36190 * console.log(array);
36191 * // => ['b', 'b']
36192 */
36193 var pull = baseRest(pullAll);
36194
36195 /**
36196 * This method is like `_.pull` except that it accepts an array of values to remove.
36197 *
36198 * **Note:** Unlike `_.difference`, this method mutates `array`.
36199 *
36200 * @static
36201 * @memberOf _
36202 * @since 4.0.0
36203 * @category Array
36204 * @param {Array} array The array to modify.
36205 * @param {Array} values The values to remove.
36206 * @returns {Array} Returns `array`.
36207 * @example
36208 *
36209 * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
36210 *
36211 * _.pullAll(array, ['a', 'c']);
36212 * console.log(array);
36213 * // => ['b', 'b']
36214 */
36215 function pullAll(array, values) {
36216 return (array && array.length && values && values.length)
36217 ? basePullAll(array, values)
36218 : array;
36219 }
36220
36221 /**
36222 * This method is like `_.pullAll` except that it accepts `iteratee` which is
36223 * invoked for each element of `array` and `values` to generate the criterion
36224 * by which they're compared. The iteratee is invoked with one argument: (value).
36225 *
36226 * **Note:** Unlike `_.differenceBy`, this method mutates `array`.
36227 *
36228 * @static
36229 * @memberOf _
36230 * @since 4.0.0
36231 * @category Array
36232 * @param {Array} array The array to modify.
36233 * @param {Array} values The values to remove.
36234 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
36235 * @returns {Array} Returns `array`.
36236 * @example
36237 *
36238 * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
36239 *
36240 * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
36241 * console.log(array);
36242 * // => [{ 'x': 2 }]
36243 */
36244 function pullAllBy(array, values, iteratee) {
36245 return (array && array.length && values && values.length)
36246 ? basePullAll(array, values, getIteratee(iteratee, 2))
36247 : array;
36248 }
36249
36250 /**
36251 * This method is like `_.pullAll` except that it accepts `comparator` which
36252 * is invoked to compare elements of `array` to `values`. The comparator is
36253 * invoked with two arguments: (arrVal, othVal).
36254 *
36255 * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
36256 *
36257 * @static
36258 * @memberOf _
36259 * @since 4.6.0
36260 * @category Array
36261 * @param {Array} array The array to modify.
36262 * @param {Array} values The values to remove.
36263 * @param {Function} [comparator] The comparator invoked per element.
36264 * @returns {Array} Returns `array`.
36265 * @example
36266 *
36267 * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
36268 *
36269 * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
36270 * console.log(array);
36271 * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
36272 */
36273 function pullAllWith(array, values, comparator) {
36274 return (array && array.length && values && values.length)
36275 ? basePullAll(array, values, undefined, comparator)
36276 : array;
36277 }
36278
36279 /**
36280 * Removes elements from `array` corresponding to `indexes` and returns an
36281 * array of removed elements.
36282 *
36283 * **Note:** Unlike `_.at`, this method mutates `array`.
36284 *
36285 * @static
36286 * @memberOf _
36287 * @since 3.0.0
36288 * @category Array
36289 * @param {Array} array The array to modify.
36290 * @param {...(number|number[])} [indexes] The indexes of elements to remove.
36291 * @returns {Array} Returns the new array of removed elements.
36292 * @example
36293 *
36294 * var array = ['a', 'b', 'c', 'd'];
36295 * var pulled = _.pullAt(array, [1, 3]);
36296 *
36297 * console.log(array);
36298 * // => ['a', 'c']
36299 *
36300 * console.log(pulled);
36301 * // => ['b', 'd']
36302 */
36303 var pullAt = flatRest(function(array, indexes) {
36304 var length = array == null ? 0 : array.length,
36305 result = baseAt(array, indexes);
36306
36307 basePullAt(array, arrayMap(indexes, function(index) {
36308 return isIndex(index, length) ? +index : index;
36309 }).sort(compareAscending));
36310
36311 return result;
36312 });
36313
36314 /**
36315 * Removes all elements from `array` that `predicate` returns truthy for
36316 * and returns an array of the removed elements. The predicate is invoked
36317 * with three arguments: (value, index, array).
36318 *
36319 * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`
36320 * to pull elements from an array by value.
36321 *
36322 * @static
36323 * @memberOf _
36324 * @since 2.0.0
36325 * @category Array
36326 * @param {Array} array The array to modify.
36327 * @param {Function} [predicate=_.identity] The function invoked per iteration.
36328 * @returns {Array} Returns the new array of removed elements.
36329 * @example
36330 *
36331 * var array = [1, 2, 3, 4];
36332 * var evens = _.remove(array, function(n) {
36333 * return n % 2 == 0;
36334 * });
36335 *
36336 * console.log(array);
36337 * // => [1, 3]
36338 *
36339 * console.log(evens);
36340 * // => [2, 4]
36341 */
36342 function remove(array, predicate) {
36343 var result = [];
36344 if (!(array && array.length)) {
36345 return result;
36346 }
36347 var index = -1,
36348 indexes = [],
36349 length = array.length;
36350
36351 predicate = getIteratee(predicate, 3);
36352 while (++index < length) {
36353 var value = array[index];
36354 if (predicate(value, index, array)) {
36355 result.push(value);
36356 indexes.push(index);
36357 }
36358 }
36359 basePullAt(array, indexes);
36360 return result;
36361 }
36362
36363 /**
36364 * Reverses `array` so that the first element becomes the last, the second
36365 * element becomes the second to last, and so on.
36366 *
36367 * **Note:** This method mutates `array` and is based on
36368 * [`Array#reverse`](https://mdn.io/Array/reverse).
36369 *
36370 * @static
36371 * @memberOf _
36372 * @since 4.0.0
36373 * @category Array
36374 * @param {Array} array The array to modify.
36375 * @returns {Array} Returns `array`.
36376 * @example
36377 *
36378 * var array = [1, 2, 3];
36379 *
36380 * _.reverse(array);
36381 * // => [3, 2, 1]
36382 *
36383 * console.log(array);
36384 * // => [3, 2, 1]
36385 */
36386 function reverse(array) {
36387 return array == null ? array : nativeReverse.call(array);
36388 }
36389
36390 /**
36391 * Creates a slice of `array` from `start` up to, but not including, `end`.
36392 *
36393 * **Note:** This method is used instead of
36394 * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are
36395 * returned.
36396 *
36397 * @static
36398 * @memberOf _
36399 * @since 3.0.0
36400 * @category Array
36401 * @param {Array} array The array to slice.
36402 * @param {number} [start=0] The start position.
36403 * @param {number} [end=array.length] The end position.
36404 * @returns {Array} Returns the slice of `array`.
36405 */
36406 function slice(array, start, end) {
36407 var length = array == null ? 0 : array.length;
36408 if (!length) {
36409 return [];
36410 }
36411 if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {
36412 start = 0;
36413 end = length;
36414 }
36415 else {
36416 start = start == null ? 0 : toInteger(start);
36417 end = end === undefined ? length : toInteger(end);
36418 }
36419 return baseSlice(array, start, end);
36420 }
36421
36422 /**
36423 * Uses a binary search to determine the lowest index at which `value`
36424 * should be inserted into `array` in order to maintain its sort order.
36425 *
36426 * @static
36427 * @memberOf _
36428 * @since 0.1.0
36429 * @category Array
36430 * @param {Array} array The sorted array to inspect.
36431 * @param {*} value The value to evaluate.
36432 * @returns {number} Returns the index at which `value` should be inserted
36433 * into `array`.
36434 * @example
36435 *
36436 * _.sortedIndex([30, 50], 40);
36437 * // => 1
36438 */
36439 function sortedIndex(array, value) {
36440 return baseSortedIndex(array, value);
36441 }
36442
36443 /**
36444 * This method is like `_.sortedIndex` except that it accepts `iteratee`
36445 * which is invoked for `value` and each element of `array` to compute their
36446 * sort ranking. The iteratee is invoked with one argument: (value).
36447 *
36448 * @static
36449 * @memberOf _
36450 * @since 4.0.0
36451 * @category Array
36452 * @param {Array} array The sorted array to inspect.
36453 * @param {*} value The value to evaluate.
36454 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
36455 * @returns {number} Returns the index at which `value` should be inserted
36456 * into `array`.
36457 * @example
36458 *
36459 * var objects = [{ 'x': 4 }, { 'x': 5 }];
36460 *
36461 * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
36462 * // => 0
36463 *
36464 * // The `_.property` iteratee shorthand.
36465 * _.sortedIndexBy(objects, { 'x': 4 }, 'x');
36466 * // => 0
36467 */
36468 function sortedIndexBy(array, value, iteratee) {
36469 return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));
36470 }
36471
36472 /**
36473 * This method is like `_.indexOf` except that it performs a binary
36474 * search on a sorted `array`.
36475 *
36476 * @static
36477 * @memberOf _
36478 * @since 4.0.0
36479 * @category Array
36480 * @param {Array} array The array to inspect.
36481 * @param {*} value The value to search for.
36482 * @returns {number} Returns the index of the matched value, else `-1`.
36483 * @example
36484 *
36485 * _.sortedIndexOf([4, 5, 5, 5, 6], 5);
36486 * // => 1
36487 */
36488 function sortedIndexOf(array, value) {
36489 var length = array == null ? 0 : array.length;
36490 if (length) {
36491 var index = baseSortedIndex(array, value);
36492 if (index < length && eq(array[index], value)) {
36493 return index;
36494 }
36495 }
36496 return -1;
36497 }
36498
36499 /**
36500 * This method is like `_.sortedIndex` except that it returns the highest
36501 * index at which `value` should be inserted into `array` in order to
36502 * maintain its sort order.
36503 *
36504 * @static
36505 * @memberOf _
36506 * @since 3.0.0
36507 * @category Array
36508 * @param {Array} array The sorted array to inspect.
36509 * @param {*} value The value to evaluate.
36510 * @returns {number} Returns the index at which `value` should be inserted
36511 * into `array`.
36512 * @example
36513 *
36514 * _.sortedLastIndex([4, 5, 5, 5, 6], 5);
36515 * // => 4
36516 */
36517 function sortedLastIndex(array, value) {
36518 return baseSortedIndex(array, value, true);
36519 }
36520
36521 /**
36522 * This method is like `_.sortedLastIndex` except that it accepts `iteratee`
36523 * which is invoked for `value` and each element of `array` to compute their
36524 * sort ranking. The iteratee is invoked with one argument: (value).
36525 *
36526 * @static
36527 * @memberOf _
36528 * @since 4.0.0
36529 * @category Array
36530 * @param {Array} array The sorted array to inspect.
36531 * @param {*} value The value to evaluate.
36532 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
36533 * @returns {number} Returns the index at which `value` should be inserted
36534 * into `array`.
36535 * @example
36536 *
36537 * var objects = [{ 'x': 4 }, { 'x': 5 }];
36538 *
36539 * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
36540 * // => 1
36541 *
36542 * // The `_.property` iteratee shorthand.
36543 * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');
36544 * // => 1
36545 */
36546 function sortedLastIndexBy(array, value, iteratee) {
36547 return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);
36548 }
36549
36550 /**
36551 * This method is like `_.lastIndexOf` except that it performs a binary
36552 * search on a sorted `array`.
36553 *
36554 * @static
36555 * @memberOf _
36556 * @since 4.0.0
36557 * @category Array
36558 * @param {Array} array The array to inspect.
36559 * @param {*} value The value to search for.
36560 * @returns {number} Returns the index of the matched value, else `-1`.
36561 * @example
36562 *
36563 * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
36564 * // => 3
36565 */
36566 function sortedLastIndexOf(array, value) {
36567 var length = array == null ? 0 : array.length;
36568 if (length) {
36569 var index = baseSortedIndex(array, value, true) - 1;
36570 if (eq(array[index], value)) {
36571 return index;
36572 }
36573 }
36574 return -1;
36575 }
36576
36577 /**
36578 * This method is like `_.uniq` except that it's designed and optimized
36579 * for sorted arrays.
36580 *
36581 * @static
36582 * @memberOf _
36583 * @since 4.0.0
36584 * @category Array
36585 * @param {Array} array The array to inspect.
36586 * @returns {Array} Returns the new duplicate free array.
36587 * @example
36588 *
36589 * _.sortedUniq([1, 1, 2]);
36590 * // => [1, 2]
36591 */
36592 function sortedUniq(array) {
36593 return (array && array.length)
36594 ? baseSortedUniq(array)
36595 : [];
36596 }
36597
36598 /**
36599 * This method is like `_.uniqBy` except that it's designed and optimized
36600 * for sorted arrays.
36601 *
36602 * @static
36603 * @memberOf _
36604 * @since 4.0.0
36605 * @category Array
36606 * @param {Array} array The array to inspect.
36607 * @param {Function} [iteratee] The iteratee invoked per element.
36608 * @returns {Array} Returns the new duplicate free array.
36609 * @example
36610 *
36611 * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
36612 * // => [1.1, 2.3]
36613 */
36614 function sortedUniqBy(array, iteratee) {
36615 return (array && array.length)
36616 ? baseSortedUniq(array, getIteratee(iteratee, 2))
36617 : [];
36618 }
36619
36620 /**
36621 * Gets all but the first element of `array`.
36622 *
36623 * @static
36624 * @memberOf _
36625 * @since 4.0.0
36626 * @category Array
36627 * @param {Array} array The array to query.
36628 * @returns {Array} Returns the slice of `array`.
36629 * @example
36630 *
36631 * _.tail([1, 2, 3]);
36632 * // => [2, 3]
36633 */
36634 function tail(array) {
36635 var length = array == null ? 0 : array.length;
36636 return length ? baseSlice(array, 1, length) : [];
36637 }
36638
36639 /**
36640 * Creates a slice of `array` with `n` elements taken from the beginning.
36641 *
36642 * @static
36643 * @memberOf _
36644 * @since 0.1.0
36645 * @category Array
36646 * @param {Array} array The array to query.
36647 * @param {number} [n=1] The number of elements to take.
36648 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
36649 * @returns {Array} Returns the slice of `array`.
36650 * @example
36651 *
36652 * _.take([1, 2, 3]);
36653 * // => [1]
36654 *
36655 * _.take([1, 2, 3], 2);
36656 * // => [1, 2]
36657 *
36658 * _.take([1, 2, 3], 5);
36659 * // => [1, 2, 3]
36660 *
36661 * _.take([1, 2, 3], 0);
36662 * // => []
36663 */
36664 function take(array, n, guard) {
36665 if (!(array && array.length)) {
36666 return [];
36667 }
36668 n = (guard || n === undefined) ? 1 : toInteger(n);
36669 return baseSlice(array, 0, n < 0 ? 0 : n);
36670 }
36671
36672 /**
36673 * Creates a slice of `array` with `n` elements taken from the end.
36674 *
36675 * @static
36676 * @memberOf _
36677 * @since 3.0.0
36678 * @category Array
36679 * @param {Array} array The array to query.
36680 * @param {number} [n=1] The number of elements to take.
36681 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
36682 * @returns {Array} Returns the slice of `array`.
36683 * @example
36684 *
36685 * _.takeRight([1, 2, 3]);
36686 * // => [3]
36687 *
36688 * _.takeRight([1, 2, 3], 2);
36689 * // => [2, 3]
36690 *
36691 * _.takeRight([1, 2, 3], 5);
36692 * // => [1, 2, 3]
36693 *
36694 * _.takeRight([1, 2, 3], 0);
36695 * // => []
36696 */
36697 function takeRight(array, n, guard) {
36698 var length = array == null ? 0 : array.length;
36699 if (!length) {
36700 return [];
36701 }
36702 n = (guard || n === undefined) ? 1 : toInteger(n);
36703 n = length - n;
36704 return baseSlice(array, n < 0 ? 0 : n, length);
36705 }
36706
36707 /**
36708 * Creates a slice of `array` with elements taken from the end. Elements are
36709 * taken until `predicate` returns falsey. The predicate is invoked with
36710 * three arguments: (value, index, array).
36711 *
36712 * @static
36713 * @memberOf _
36714 * @since 3.0.0
36715 * @category Array
36716 * @param {Array} array The array to query.
36717 * @param {Function} [predicate=_.identity] The function invoked per iteration.
36718 * @returns {Array} Returns the slice of `array`.
36719 * @example
36720 *
36721 * var users = [
36722 * { 'user': 'barney', 'active': true },
36723 * { 'user': 'fred', 'active': false },
36724 * { 'user': 'pebbles', 'active': false }
36725 * ];
36726 *
36727 * _.takeRightWhile(users, function(o) { return !o.active; });
36728 * // => objects for ['fred', 'pebbles']
36729 *
36730 * // The `_.matches` iteratee shorthand.
36731 * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });
36732 * // => objects for ['pebbles']
36733 *
36734 * // The `_.matchesProperty` iteratee shorthand.
36735 * _.takeRightWhile(users, ['active', false]);
36736 * // => objects for ['fred', 'pebbles']
36737 *
36738 * // The `_.property` iteratee shorthand.
36739 * _.takeRightWhile(users, 'active');
36740 * // => []
36741 */
36742 function takeRightWhile(array, predicate) {
36743 return (array && array.length)
36744 ? baseWhile(array, getIteratee(predicate, 3), false, true)
36745 : [];
36746 }
36747
36748 /**
36749 * Creates a slice of `array` with elements taken from the beginning. Elements
36750 * are taken until `predicate` returns falsey. The predicate is invoked with
36751 * three arguments: (value, index, array).
36752 *
36753 * @static
36754 * @memberOf _
36755 * @since 3.0.0
36756 * @category Array
36757 * @param {Array} array The array to query.
36758 * @param {Function} [predicate=_.identity] The function invoked per iteration.
36759 * @returns {Array} Returns the slice of `array`.
36760 * @example
36761 *
36762 * var users = [
36763 * { 'user': 'barney', 'active': false },
36764 * { 'user': 'fred', 'active': false },
36765 * { 'user': 'pebbles', 'active': true }
36766 * ];
36767 *
36768 * _.takeWhile(users, function(o) { return !o.active; });
36769 * // => objects for ['barney', 'fred']
36770 *
36771 * // The `_.matches` iteratee shorthand.
36772 * _.takeWhile(users, { 'user': 'barney', 'active': false });
36773 * // => objects for ['barney']
36774 *
36775 * // The `_.matchesProperty` iteratee shorthand.
36776 * _.takeWhile(users, ['active', false]);
36777 * // => objects for ['barney', 'fred']
36778 *
36779 * // The `_.property` iteratee shorthand.
36780 * _.takeWhile(users, 'active');
36781 * // => []
36782 */
36783 function takeWhile(array, predicate) {
36784 return (array && array.length)
36785 ? baseWhile(array, getIteratee(predicate, 3))
36786 : [];
36787 }
36788
36789 /**
36790 * Creates an array of unique values, in order, from all given arrays using
36791 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
36792 * for equality comparisons.
36793 *
36794 * @static
36795 * @memberOf _
36796 * @since 0.1.0
36797 * @category Array
36798 * @param {...Array} [arrays] The arrays to inspect.
36799 * @returns {Array} Returns the new array of combined values.
36800 * @example
36801 *
36802 * _.union([2], [1, 2]);
36803 * // => [2, 1]
36804 */
36805 var union = baseRest(function(arrays) {
36806 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
36807 });
36808
36809 /**
36810 * This method is like `_.union` except that it accepts `iteratee` which is
36811 * invoked for each element of each `arrays` to generate the criterion by
36812 * which uniqueness is computed. Result values are chosen from the first
36813 * array in which the value occurs. The iteratee is invoked with one argument:
36814 * (value).
36815 *
36816 * @static
36817 * @memberOf _
36818 * @since 4.0.0
36819 * @category Array
36820 * @param {...Array} [arrays] The arrays to inspect.
36821 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
36822 * @returns {Array} Returns the new array of combined values.
36823 * @example
36824 *
36825 * _.unionBy([2.1], [1.2, 2.3], Math.floor);
36826 * // => [2.1, 1.2]
36827 *
36828 * // The `_.property` iteratee shorthand.
36829 * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
36830 * // => [{ 'x': 1 }, { 'x': 2 }]
36831 */
36832 var unionBy = baseRest(function(arrays) {
36833 var iteratee = last(arrays);
36834 if (isArrayLikeObject(iteratee)) {
36835 iteratee = undefined;
36836 }
36837 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));
36838 });
36839
36840 /**
36841 * This method is like `_.union` except that it accepts `comparator` which
36842 * is invoked to compare elements of `arrays`. Result values are chosen from
36843 * the first array in which the value occurs. The comparator is invoked
36844 * with two arguments: (arrVal, othVal).
36845 *
36846 * @static
36847 * @memberOf _
36848 * @since 4.0.0
36849 * @category Array
36850 * @param {...Array} [arrays] The arrays to inspect.
36851 * @param {Function} [comparator] The comparator invoked per element.
36852 * @returns {Array} Returns the new array of combined values.
36853 * @example
36854 *
36855 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
36856 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
36857 *
36858 * _.unionWith(objects, others, _.isEqual);
36859 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
36860 */
36861 var unionWith = baseRest(function(arrays) {
36862 var comparator = last(arrays);
36863 comparator = typeof comparator == 'function' ? comparator : undefined;
36864 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);
36865 });
36866
36867 /**
36868 * Creates a duplicate-free version of an array, using
36869 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
36870 * for equality comparisons, in which only the first occurrence of each element
36871 * is kept. The order of result values is determined by the order they occur
36872 * in the array.
36873 *
36874 * @static
36875 * @memberOf _
36876 * @since 0.1.0
36877 * @category Array
36878 * @param {Array} array The array to inspect.
36879 * @returns {Array} Returns the new duplicate free array.
36880 * @example
36881 *
36882 * _.uniq([2, 1, 2]);
36883 * // => [2, 1]
36884 */
36885 function uniq(array) {
36886 return (array && array.length) ? baseUniq(array) : [];
36887 }
36888
36889 /**
36890 * This method is like `_.uniq` except that it accepts `iteratee` which is
36891 * invoked for each element in `array` to generate the criterion by which
36892 * uniqueness is computed. The order of result values is determined by the
36893 * order they occur in the array. The iteratee is invoked with one argument:
36894 * (value).
36895 *
36896 * @static
36897 * @memberOf _
36898 * @since 4.0.0
36899 * @category Array
36900 * @param {Array} array The array to inspect.
36901 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
36902 * @returns {Array} Returns the new duplicate free array.
36903 * @example
36904 *
36905 * _.uniqBy([2.1, 1.2, 2.3], Math.floor);
36906 * // => [2.1, 1.2]
36907 *
36908 * // The `_.property` iteratee shorthand.
36909 * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
36910 * // => [{ 'x': 1 }, { 'x': 2 }]
36911 */
36912 function uniqBy(array, iteratee) {
36913 return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];
36914 }
36915
36916 /**
36917 * This method is like `_.uniq` except that it accepts `comparator` which
36918 * is invoked to compare elements of `array`. The order of result values is
36919 * determined by the order they occur in the array.The comparator is invoked
36920 * with two arguments: (arrVal, othVal).
36921 *
36922 * @static
36923 * @memberOf _
36924 * @since 4.0.0
36925 * @category Array
36926 * @param {Array} array The array to inspect.
36927 * @param {Function} [comparator] The comparator invoked per element.
36928 * @returns {Array} Returns the new duplicate free array.
36929 * @example
36930 *
36931 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
36932 *
36933 * _.uniqWith(objects, _.isEqual);
36934 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
36935 */
36936 function uniqWith(array, comparator) {
36937 comparator = typeof comparator == 'function' ? comparator : undefined;
36938 return (array && array.length) ? baseUniq(array, undefined, comparator) : [];
36939 }
36940
36941 /**
36942 * This method is like `_.zip` except that it accepts an array of grouped
36943 * elements and creates an array regrouping the elements to their pre-zip
36944 * configuration.
36945 *
36946 * @static
36947 * @memberOf _
36948 * @since 1.2.0
36949 * @category Array
36950 * @param {Array} array The array of grouped elements to process.
36951 * @returns {Array} Returns the new array of regrouped elements.
36952 * @example
36953 *
36954 * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);
36955 * // => [['a', 1, true], ['b', 2, false]]
36956 *
36957 * _.unzip(zipped);
36958 * // => [['a', 'b'], [1, 2], [true, false]]
36959 */
36960 function unzip(array) {
36961 if (!(array && array.length)) {
36962 return [];
36963 }
36964 var length = 0;
36965 array = arrayFilter(array, function(group) {
36966 if (isArrayLikeObject(group)) {
36967 length = nativeMax(group.length, length);
36968 return true;
36969 }
36970 });
36971 return baseTimes(length, function(index) {
36972 return arrayMap(array, baseProperty(index));
36973 });
36974 }
36975
36976 /**
36977 * This method is like `_.unzip` except that it accepts `iteratee` to specify
36978 * how regrouped values should be combined. The iteratee is invoked with the
36979 * elements of each group: (...group).
36980 *
36981 * @static
36982 * @memberOf _
36983 * @since 3.8.0
36984 * @category Array
36985 * @param {Array} array The array of grouped elements to process.
36986 * @param {Function} [iteratee=_.identity] The function to combine
36987 * regrouped values.
36988 * @returns {Array} Returns the new array of regrouped elements.
36989 * @example
36990 *
36991 * var zipped = _.zip([1, 2], [10, 20], [100, 200]);
36992 * // => [[1, 10, 100], [2, 20, 200]]
36993 *
36994 * _.unzipWith(zipped, _.add);
36995 * // => [3, 30, 300]
36996 */
36997 function unzipWith(array, iteratee) {
36998 if (!(array && array.length)) {
36999 return [];
37000 }
37001 var result = unzip(array);
37002 if (iteratee == null) {
37003 return result;
37004 }
37005 return arrayMap(result, function(group) {
37006 return apply(iteratee, undefined, group);
37007 });
37008 }
37009
37010 /**
37011 * Creates an array excluding all given values using
37012 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
37013 * for equality comparisons.
37014 *
37015 * **Note:** Unlike `_.pull`, this method returns a new array.
37016 *
37017 * @static
37018 * @memberOf _
37019 * @since 0.1.0
37020 * @category Array
37021 * @param {Array} array The array to inspect.
37022 * @param {...*} [values] The values to exclude.
37023 * @returns {Array} Returns the new array of filtered values.
37024 * @see _.difference, _.xor
37025 * @example
37026 *
37027 * _.without([2, 1, 2, 3], 1, 2);
37028 * // => [3]
37029 */
37030 var without = baseRest(function(array, values) {
37031 return isArrayLikeObject(array)
37032 ? baseDifference(array, values)
37033 : [];
37034 });
37035
37036 /**
37037 * Creates an array of unique values that is the
37038 * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
37039 * of the given arrays. The order of result values is determined by the order
37040 * they occur in the arrays.
37041 *
37042 * @static
37043 * @memberOf _
37044 * @since 2.4.0
37045 * @category Array
37046 * @param {...Array} [arrays] The arrays to inspect.
37047 * @returns {Array} Returns the new array of filtered values.
37048 * @see _.difference, _.without
37049 * @example
37050 *
37051 * _.xor([2, 1], [2, 3]);
37052 * // => [1, 3]
37053 */
37054 var xor = baseRest(function(arrays) {
37055 return baseXor(arrayFilter(arrays, isArrayLikeObject));
37056 });
37057
37058 /**
37059 * This method is like `_.xor` except that it accepts `iteratee` which is
37060 * invoked for each element of each `arrays` to generate the criterion by
37061 * which by which they're compared. The order of result values is determined
37062 * by the order they occur in the arrays. The iteratee is invoked with one
37063 * argument: (value).
37064 *
37065 * @static
37066 * @memberOf _
37067 * @since 4.0.0
37068 * @category Array
37069 * @param {...Array} [arrays] The arrays to inspect.
37070 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
37071 * @returns {Array} Returns the new array of filtered values.
37072 * @example
37073 *
37074 * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);
37075 * // => [1.2, 3.4]
37076 *
37077 * // The `_.property` iteratee shorthand.
37078 * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
37079 * // => [{ 'x': 2 }]
37080 */
37081 var xorBy = baseRest(function(arrays) {
37082 var iteratee = last(arrays);
37083 if (isArrayLikeObject(iteratee)) {
37084 iteratee = undefined;
37085 }
37086 return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));
37087 });
37088
37089 /**
37090 * This method is like `_.xor` except that it accepts `comparator` which is
37091 * invoked to compare elements of `arrays`. The order of result values is
37092 * determined by the order they occur in the arrays. The comparator is invoked
37093 * with two arguments: (arrVal, othVal).
37094 *
37095 * @static
37096 * @memberOf _
37097 * @since 4.0.0
37098 * @category Array
37099 * @param {...Array} [arrays] The arrays to inspect.
37100 * @param {Function} [comparator] The comparator invoked per element.
37101 * @returns {Array} Returns the new array of filtered values.
37102 * @example
37103 *
37104 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
37105 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
37106 *
37107 * _.xorWith(objects, others, _.isEqual);
37108 * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
37109 */
37110 var xorWith = baseRest(function(arrays) {
37111 var comparator = last(arrays);
37112 comparator = typeof comparator == 'function' ? comparator : undefined;
37113 return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);
37114 });
37115
37116 /**
37117 * Creates an array of grouped elements, the first of which contains the
37118 * first elements of the given arrays, the second of which contains the
37119 * second elements of the given arrays, and so on.
37120 *
37121 * @static
37122 * @memberOf _
37123 * @since 0.1.0
37124 * @category Array
37125 * @param {...Array} [arrays] The arrays to process.
37126 * @returns {Array} Returns the new array of grouped elements.
37127 * @example
37128 *
37129 * _.zip(['a', 'b'], [1, 2], [true, false]);
37130 * // => [['a', 1, true], ['b', 2, false]]
37131 */
37132 var zip = baseRest(unzip);
37133
37134 /**
37135 * This method is like `_.fromPairs` except that it accepts two arrays,
37136 * one of property identifiers and one of corresponding values.
37137 *
37138 * @static
37139 * @memberOf _
37140 * @since 0.4.0
37141 * @category Array
37142 * @param {Array} [props=[]] The property identifiers.
37143 * @param {Array} [values=[]] The property values.
37144 * @returns {Object} Returns the new object.
37145 * @example
37146 *
37147 * _.zipObject(['a', 'b'], [1, 2]);
37148 * // => { 'a': 1, 'b': 2 }
37149 */
37150 function zipObject(props, values) {
37151 return baseZipObject(props || [], values || [], assignValue);
37152 }
37153
37154 /**
37155 * This method is like `_.zipObject` except that it supports property paths.
37156 *
37157 * @static
37158 * @memberOf _
37159 * @since 4.1.0
37160 * @category Array
37161 * @param {Array} [props=[]] The property identifiers.
37162 * @param {Array} [values=[]] The property values.
37163 * @returns {Object} Returns the new object.
37164 * @example
37165 *
37166 * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);
37167 * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
37168 */
37169 function zipObjectDeep(props, values) {
37170 return baseZipObject(props || [], values || [], baseSet);
37171 }
37172
37173 /**
37174 * This method is like `_.zip` except that it accepts `iteratee` to specify
37175 * how grouped values should be combined. The iteratee is invoked with the
37176 * elements of each group: (...group).
37177 *
37178 * @static
37179 * @memberOf _
37180 * @since 3.8.0
37181 * @category Array
37182 * @param {...Array} [arrays] The arrays to process.
37183 * @param {Function} [iteratee=_.identity] The function to combine
37184 * grouped values.
37185 * @returns {Array} Returns the new array of grouped elements.
37186 * @example
37187 *
37188 * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
37189 * return a + b + c;
37190 * });
37191 * // => [111, 222]
37192 */
37193 var zipWith = baseRest(function(arrays) {
37194 var length = arrays.length,
37195 iteratee = length > 1 ? arrays[length - 1] : undefined;
37196
37197 iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;
37198 return unzipWith(arrays, iteratee);
37199 });
37200
37201 /*------------------------------------------------------------------------*/
37202
37203 /**
37204 * Creates a `lodash` wrapper instance that wraps `value` with explicit method
37205 * chain sequences enabled. The result of such sequences must be unwrapped
37206 * with `_#value`.
37207 *
37208 * @static
37209 * @memberOf _
37210 * @since 1.3.0
37211 * @category Seq
37212 * @param {*} value The value to wrap.
37213 * @returns {Object} Returns the new `lodash` wrapper instance.
37214 * @example
37215 *
37216 * var users = [
37217 * { 'user': 'barney', 'age': 36 },
37218 * { 'user': 'fred', 'age': 40 },
37219 * { 'user': 'pebbles', 'age': 1 }
37220 * ];
37221 *
37222 * var youngest = _
37223 * .chain(users)
37224 * .sortBy('age')
37225 * .map(function(o) {
37226 * return o.user + ' is ' + o.age;
37227 * })
37228 * .head()
37229 * .value();
37230 * // => 'pebbles is 1'
37231 */
37232 function chain(value) {
37233 var result = lodash(value);
37234 result.__chain__ = true;
37235 return result;
37236 }
37237
37238 /**
37239 * This method invokes `interceptor` and returns `value`. The interceptor
37240 * is invoked with one argument; (value). The purpose of this method is to
37241 * "tap into" a method chain sequence in order to modify intermediate results.
37242 *
37243 * @static
37244 * @memberOf _
37245 * @since 0.1.0
37246 * @category Seq
37247 * @param {*} value The value to provide to `interceptor`.
37248 * @param {Function} interceptor The function to invoke.
37249 * @returns {*} Returns `value`.
37250 * @example
37251 *
37252 * _([1, 2, 3])
37253 * .tap(function(array) {
37254 * // Mutate input array.
37255 * array.pop();
37256 * })
37257 * .reverse()
37258 * .value();
37259 * // => [2, 1]
37260 */
37261 function tap(value, interceptor) {
37262 interceptor(value);
37263 return value;
37264 }
37265
37266 /**
37267 * This method is like `_.tap` except that it returns the result of `interceptor`.
37268 * The purpose of this method is to "pass thru" values replacing intermediate
37269 * results in a method chain sequence.
37270 *
37271 * @static
37272 * @memberOf _
37273 * @since 3.0.0
37274 * @category Seq
37275 * @param {*} value The value to provide to `interceptor`.
37276 * @param {Function} interceptor The function to invoke.
37277 * @returns {*} Returns the result of `interceptor`.
37278 * @example
37279 *
37280 * _(' abc ')
37281 * .chain()
37282 * .trim()
37283 * .thru(function(value) {
37284 * return [value];
37285 * })
37286 * .value();
37287 * // => ['abc']
37288 */
37289 function thru(value, interceptor) {
37290 return interceptor(value);
37291 }
37292
37293 /**
37294 * This method is the wrapper version of `_.at`.
37295 *
37296 * @name at
37297 * @memberOf _
37298 * @since 1.0.0
37299 * @category Seq
37300 * @param {...(string|string[])} [paths] The property paths to pick.
37301 * @returns {Object} Returns the new `lodash` wrapper instance.
37302 * @example
37303 *
37304 * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
37305 *
37306 * _(object).at(['a[0].b.c', 'a[1]']).value();
37307 * // => [3, 4]
37308 */
37309 var wrapperAt = flatRest(function(paths) {
37310 var length = paths.length,
37311 start = length ? paths[0] : 0,
37312 value = this.__wrapped__,
37313 interceptor = function(object) { return baseAt(object, paths); };
37314
37315 if (length > 1 || this.__actions__.length ||
37316 !(value instanceof LazyWrapper) || !isIndex(start)) {
37317 return this.thru(interceptor);
37318 }
37319 value = value.slice(start, +start + (length ? 1 : 0));
37320 value.__actions__.push({
37321 'func': thru,
37322 'args': [interceptor],
37323 'thisArg': undefined
37324 });
37325 return new LodashWrapper(value, this.__chain__).thru(function(array) {
37326 if (length && !array.length) {
37327 array.push(undefined);
37328 }
37329 return array;
37330 });
37331 });
37332
37333 /**
37334 * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.
37335 *
37336 * @name chain
37337 * @memberOf _
37338 * @since 0.1.0
37339 * @category Seq
37340 * @returns {Object} Returns the new `lodash` wrapper instance.
37341 * @example
37342 *
37343 * var users = [
37344 * { 'user': 'barney', 'age': 36 },
37345 * { 'user': 'fred', 'age': 40 }
37346 * ];
37347 *
37348 * // A sequence without explicit chaining.
37349 * _(users).head();
37350 * // => { 'user': 'barney', 'age': 36 }
37351 *
37352 * // A sequence with explicit chaining.
37353 * _(users)
37354 * .chain()
37355 * .head()
37356 * .pick('user')
37357 * .value();
37358 * // => { 'user': 'barney' }
37359 */
37360 function wrapperChain() {
37361 return chain(this);
37362 }
37363
37364 /**
37365 * Executes the chain sequence and returns the wrapped result.
37366 *
37367 * @name commit
37368 * @memberOf _
37369 * @since 3.2.0
37370 * @category Seq
37371 * @returns {Object} Returns the new `lodash` wrapper instance.
37372 * @example
37373 *
37374 * var array = [1, 2];
37375 * var wrapped = _(array).push(3);
37376 *
37377 * console.log(array);
37378 * // => [1, 2]
37379 *
37380 * wrapped = wrapped.commit();
37381 * console.log(array);
37382 * // => [1, 2, 3]
37383 *
37384 * wrapped.last();
37385 * // => 3
37386 *
37387 * console.log(array);
37388 * // => [1, 2, 3]
37389 */
37390 function wrapperCommit() {
37391 return new LodashWrapper(this.value(), this.__chain__);
37392 }
37393
37394 /**
37395 * Gets the next value on a wrapped object following the
37396 * [iterator protocol](https://mdn.io/iteration_protocols#iterator).
37397 *
37398 * @name next
37399 * @memberOf _
37400 * @since 4.0.0
37401 * @category Seq
37402 * @returns {Object} Returns the next iterator value.
37403 * @example
37404 *
37405 * var wrapped = _([1, 2]);
37406 *
37407 * wrapped.next();
37408 * // => { 'done': false, 'value': 1 }
37409 *
37410 * wrapped.next();
37411 * // => { 'done': false, 'value': 2 }
37412 *
37413 * wrapped.next();
37414 * // => { 'done': true, 'value': undefined }
37415 */
37416 function wrapperNext() {
37417 if (this.__values__ === undefined) {
37418 this.__values__ = toArray(this.value());
37419 }
37420 var done = this.__index__ >= this.__values__.length,
37421 value = done ? undefined : this.__values__[this.__index__++];
37422
37423 return { 'done': done, 'value': value };
37424 }
37425
37426 /**
37427 * Enables the wrapper to be iterable.
37428 *
37429 * @name Symbol.iterator
37430 * @memberOf _
37431 * @since 4.0.0
37432 * @category Seq
37433 * @returns {Object} Returns the wrapper object.
37434 * @example
37435 *
37436 * var wrapped = _([1, 2]);
37437 *
37438 * wrapped[Symbol.iterator]() === wrapped;
37439 * // => true
37440 *
37441 * Array.from(wrapped);
37442 * // => [1, 2]
37443 */
37444 function wrapperToIterator() {
37445 return this;
37446 }
37447
37448 /**
37449 * Creates a clone of the chain sequence planting `value` as the wrapped value.
37450 *
37451 * @name plant
37452 * @memberOf _
37453 * @since 3.2.0
37454 * @category Seq
37455 * @param {*} value The value to plant.
37456 * @returns {Object} Returns the new `lodash` wrapper instance.
37457 * @example
37458 *
37459 * function square(n) {
37460 * return n * n;
37461 * }
37462 *
37463 * var wrapped = _([1, 2]).map(square);
37464 * var other = wrapped.plant([3, 4]);
37465 *
37466 * other.value();
37467 * // => [9, 16]
37468 *
37469 * wrapped.value();
37470 * // => [1, 4]
37471 */
37472 function wrapperPlant(value) {
37473 var result,
37474 parent = this;
37475
37476 while (parent instanceof baseLodash) {
37477 var clone = wrapperClone(parent);
37478 clone.__index__ = 0;
37479 clone.__values__ = undefined;
37480 if (result) {
37481 previous.__wrapped__ = clone;
37482 } else {
37483 result = clone;
37484 }
37485 var previous = clone;
37486 parent = parent.__wrapped__;
37487 }
37488 previous.__wrapped__ = value;
37489 return result;
37490 }
37491
37492 /**
37493 * This method is the wrapper version of `_.reverse`.
37494 *
37495 * **Note:** This method mutates the wrapped array.
37496 *
37497 * @name reverse
37498 * @memberOf _
37499 * @since 0.1.0
37500 * @category Seq
37501 * @returns {Object} Returns the new `lodash` wrapper instance.
37502 * @example
37503 *
37504 * var array = [1, 2, 3];
37505 *
37506 * _(array).reverse().value()
37507 * // => [3, 2, 1]
37508 *
37509 * console.log(array);
37510 * // => [3, 2, 1]
37511 */
37512 function wrapperReverse() {
37513 var value = this.__wrapped__;
37514 if (value instanceof LazyWrapper) {
37515 var wrapped = value;
37516 if (this.__actions__.length) {
37517 wrapped = new LazyWrapper(this);
37518 }
37519 wrapped = wrapped.reverse();
37520 wrapped.__actions__.push({
37521 'func': thru,
37522 'args': [reverse],
37523 'thisArg': undefined
37524 });
37525 return new LodashWrapper(wrapped, this.__chain__);
37526 }
37527 return this.thru(reverse);
37528 }
37529
37530 /**
37531 * Executes the chain sequence to resolve the unwrapped value.
37532 *
37533 * @name value
37534 * @memberOf _
37535 * @since 0.1.0
37536 * @alias toJSON, valueOf
37537 * @category Seq
37538 * @returns {*} Returns the resolved unwrapped value.
37539 * @example
37540 *
37541 * _([1, 2, 3]).value();
37542 * // => [1, 2, 3]
37543 */
37544 function wrapperValue() {
37545 return baseWrapperValue(this.__wrapped__, this.__actions__);
37546 }
37547
37548 /*------------------------------------------------------------------------*/
37549
37550 /**
37551 * Creates an object composed of keys generated from the results of running
37552 * each element of `collection` thru `iteratee`. The corresponding value of
37553 * each key is the number of times the key was returned by `iteratee`. The
37554 * iteratee is invoked with one argument: (value).
37555 *
37556 * @static
37557 * @memberOf _
37558 * @since 0.5.0
37559 * @category Collection
37560 * @param {Array|Object} collection The collection to iterate over.
37561 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
37562 * @returns {Object} Returns the composed aggregate object.
37563 * @example
37564 *
37565 * _.countBy([6.1, 4.2, 6.3], Math.floor);
37566 * // => { '4': 1, '6': 2 }
37567 *
37568 * // The `_.property` iteratee shorthand.
37569 * _.countBy(['one', 'two', 'three'], 'length');
37570 * // => { '3': 2, '5': 1 }
37571 */
37572 var countBy = createAggregator(function(result, value, key) {
37573 if (hasOwnProperty.call(result, key)) {
37574 ++result[key];
37575 } else {
37576 baseAssignValue(result, key, 1);
37577 }
37578 });
37579
37580 /**
37581 * Checks if `predicate` returns truthy for **all** elements of `collection`.
37582 * Iteration is stopped once `predicate` returns falsey. The predicate is
37583 * invoked with three arguments: (value, index|key, collection).
37584 *
37585 * **Note:** This method returns `true` for
37586 * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
37587 * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
37588 * elements of empty collections.
37589 *
37590 * @static
37591 * @memberOf _
37592 * @since 0.1.0
37593 * @category Collection
37594 * @param {Array|Object} collection The collection to iterate over.
37595 * @param {Function} [predicate=_.identity] The function invoked per iteration.
37596 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
37597 * @returns {boolean} Returns `true` if all elements pass the predicate check,
37598 * else `false`.
37599 * @example
37600 *
37601 * _.every([true, 1, null, 'yes'], Boolean);
37602 * // => false
37603 *
37604 * var users = [
37605 * { 'user': 'barney', 'age': 36, 'active': false },
37606 * { 'user': 'fred', 'age': 40, 'active': false }
37607 * ];
37608 *
37609 * // The `_.matches` iteratee shorthand.
37610 * _.every(users, { 'user': 'barney', 'active': false });
37611 * // => false
37612 *
37613 * // The `_.matchesProperty` iteratee shorthand.
37614 * _.every(users, ['active', false]);
37615 * // => true
37616 *
37617 * // The `_.property` iteratee shorthand.
37618 * _.every(users, 'active');
37619 * // => false
37620 */
37621 function every(collection, predicate, guard) {
37622 var func = isArray(collection) ? arrayEvery : baseEvery;
37623 if (guard && isIterateeCall(collection, predicate, guard)) {
37624 predicate = undefined;
37625 }
37626 return func(collection, getIteratee(predicate, 3));
37627 }
37628
37629 /**
37630 * Iterates over elements of `collection`, returning an array of all elements
37631 * `predicate` returns truthy for. The predicate is invoked with three
37632 * arguments: (value, index|key, collection).
37633 *
37634 * **Note:** Unlike `_.remove`, this method returns a new array.
37635 *
37636 * @static
37637 * @memberOf _
37638 * @since 0.1.0
37639 * @category Collection
37640 * @param {Array|Object} collection The collection to iterate over.
37641 * @param {Function} [predicate=_.identity] The function invoked per iteration.
37642 * @returns {Array} Returns the new filtered array.
37643 * @see _.reject
37644 * @example
37645 *
37646 * var users = [
37647 * { 'user': 'barney', 'age': 36, 'active': true },
37648 * { 'user': 'fred', 'age': 40, 'active': false }
37649 * ];
37650 *
37651 * _.filter(users, function(o) { return !o.active; });
37652 * // => objects for ['fred']
37653 *
37654 * // The `_.matches` iteratee shorthand.
37655 * _.filter(users, { 'age': 36, 'active': true });
37656 * // => objects for ['barney']
37657 *
37658 * // The `_.matchesProperty` iteratee shorthand.
37659 * _.filter(users, ['active', false]);
37660 * // => objects for ['fred']
37661 *
37662 * // The `_.property` iteratee shorthand.
37663 * _.filter(users, 'active');
37664 * // => objects for ['barney']
37665 */
37666 function filter(collection, predicate) {
37667 var func = isArray(collection) ? arrayFilter : baseFilter;
37668 return func(collection, getIteratee(predicate, 3));
37669 }
37670
37671 /**
37672 * Iterates over elements of `collection`, returning the first element
37673 * `predicate` returns truthy for. The predicate is invoked with three
37674 * arguments: (value, index|key, collection).
37675 *
37676 * @static
37677 * @memberOf _
37678 * @since 0.1.0
37679 * @category Collection
37680 * @param {Array|Object} collection The collection to inspect.
37681 * @param {Function} [predicate=_.identity] The function invoked per iteration.
37682 * @param {number} [fromIndex=0] The index to search from.
37683 * @returns {*} Returns the matched element, else `undefined`.
37684 * @example
37685 *
37686 * var users = [
37687 * { 'user': 'barney', 'age': 36, 'active': true },
37688 * { 'user': 'fred', 'age': 40, 'active': false },
37689 * { 'user': 'pebbles', 'age': 1, 'active': true }
37690 * ];
37691 *
37692 * _.find(users, function(o) { return o.age < 40; });
37693 * // => object for 'barney'
37694 *
37695 * // The `_.matches` iteratee shorthand.
37696 * _.find(users, { 'age': 1, 'active': true });
37697 * // => object for 'pebbles'
37698 *
37699 * // The `_.matchesProperty` iteratee shorthand.
37700 * _.find(users, ['active', false]);
37701 * // => object for 'fred'
37702 *
37703 * // The `_.property` iteratee shorthand.
37704 * _.find(users, 'active');
37705 * // => object for 'barney'
37706 */
37707 var find = createFind(findIndex);
37708
37709 /**
37710 * This method is like `_.find` except that it iterates over elements of
37711 * `collection` from right to left.
37712 *
37713 * @static
37714 * @memberOf _
37715 * @since 2.0.0
37716 * @category Collection
37717 * @param {Array|Object} collection The collection to inspect.
37718 * @param {Function} [predicate=_.identity] The function invoked per iteration.
37719 * @param {number} [fromIndex=collection.length-1] The index to search from.
37720 * @returns {*} Returns the matched element, else `undefined`.
37721 * @example
37722 *
37723 * _.findLast([1, 2, 3, 4], function(n) {
37724 * return n % 2 == 1;
37725 * });
37726 * // => 3
37727 */
37728 var findLast = createFind(findLastIndex);
37729
37730 /**
37731 * Creates a flattened array of values by running each element in `collection`
37732 * thru `iteratee` and flattening the mapped results. The iteratee is invoked
37733 * with three arguments: (value, index|key, collection).
37734 *
37735 * @static
37736 * @memberOf _
37737 * @since 4.0.0
37738 * @category Collection
37739 * @param {Array|Object} collection The collection to iterate over.
37740 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
37741 * @returns {Array} Returns the new flattened array.
37742 * @example
37743 *
37744 * function duplicate(n) {
37745 * return [n, n];
37746 * }
37747 *
37748 * _.flatMap([1, 2], duplicate);
37749 * // => [1, 1, 2, 2]
37750 */
37751 function flatMap(collection, iteratee) {
37752 return baseFlatten(map(collection, iteratee), 1);
37753 }
37754
37755 /**
37756 * This method is like `_.flatMap` except that it recursively flattens the
37757 * mapped results.
37758 *
37759 * @static
37760 * @memberOf _
37761 * @since 4.7.0
37762 * @category Collection
37763 * @param {Array|Object} collection The collection to iterate over.
37764 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
37765 * @returns {Array} Returns the new flattened array.
37766 * @example
37767 *
37768 * function duplicate(n) {
37769 * return [[[n, n]]];
37770 * }
37771 *
37772 * _.flatMapDeep([1, 2], duplicate);
37773 * // => [1, 1, 2, 2]
37774 */
37775 function flatMapDeep(collection, iteratee) {
37776 return baseFlatten(map(collection, iteratee), INFINITY);
37777 }
37778
37779 /**
37780 * This method is like `_.flatMap` except that it recursively flattens the
37781 * mapped results up to `depth` times.
37782 *
37783 * @static
37784 * @memberOf _
37785 * @since 4.7.0
37786 * @category Collection
37787 * @param {Array|Object} collection The collection to iterate over.
37788 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
37789 * @param {number} [depth=1] The maximum recursion depth.
37790 * @returns {Array} Returns the new flattened array.
37791 * @example
37792 *
37793 * function duplicate(n) {
37794 * return [[[n, n]]];
37795 * }
37796 *
37797 * _.flatMapDepth([1, 2], duplicate, 2);
37798 * // => [[1, 1], [2, 2]]
37799 */
37800 function flatMapDepth(collection, iteratee, depth) {
37801 depth = depth === undefined ? 1 : toInteger(depth);
37802 return baseFlatten(map(collection, iteratee), depth);
37803 }
37804
37805 /**
37806 * Iterates over elements of `collection` and invokes `iteratee` for each element.
37807 * The iteratee is invoked with three arguments: (value, index|key, collection).
37808 * Iteratee functions may exit iteration early by explicitly returning `false`.
37809 *
37810 * **Note:** As with other "Collections" methods, objects with a "length"
37811 * property are iterated like arrays. To avoid this behavior use `_.forIn`
37812 * or `_.forOwn` for object iteration.
37813 *
37814 * @static
37815 * @memberOf _
37816 * @since 0.1.0
37817 * @alias each
37818 * @category Collection
37819 * @param {Array|Object} collection The collection to iterate over.
37820 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
37821 * @returns {Array|Object} Returns `collection`.
37822 * @see _.forEachRight
37823 * @example
37824 *
37825 * _.forEach([1, 2], function(value) {
37826 * console.log(value);
37827 * });
37828 * // => Logs `1` then `2`.
37829 *
37830 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
37831 * console.log(key);
37832 * });
37833 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
37834 */
37835 function forEach(collection, iteratee) {
37836 var func = isArray(collection) ? arrayEach : baseEach;
37837 return func(collection, getIteratee(iteratee, 3));
37838 }
37839
37840 /**
37841 * This method is like `_.forEach` except that it iterates over elements of
37842 * `collection` from right to left.
37843 *
37844 * @static
37845 * @memberOf _
37846 * @since 2.0.0
37847 * @alias eachRight
37848 * @category Collection
37849 * @param {Array|Object} collection The collection to iterate over.
37850 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
37851 * @returns {Array|Object} Returns `collection`.
37852 * @see _.forEach
37853 * @example
37854 *
37855 * _.forEachRight([1, 2], function(value) {
37856 * console.log(value);
37857 * });
37858 * // => Logs `2` then `1`.
37859 */
37860 function forEachRight(collection, iteratee) {
37861 var func = isArray(collection) ? arrayEachRight : baseEachRight;
37862 return func(collection, getIteratee(iteratee, 3));
37863 }
37864
37865 /**
37866 * Creates an object composed of keys generated from the results of running
37867 * each element of `collection` thru `iteratee`. The order of grouped values
37868 * is determined by the order they occur in `collection`. The corresponding
37869 * value of each key is an array of elements responsible for generating the
37870 * key. The iteratee is invoked with one argument: (value).
37871 *
37872 * @static
37873 * @memberOf _
37874 * @since 0.1.0
37875 * @category Collection
37876 * @param {Array|Object} collection The collection to iterate over.
37877 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
37878 * @returns {Object} Returns the composed aggregate object.
37879 * @example
37880 *
37881 * _.groupBy([6.1, 4.2, 6.3], Math.floor);
37882 * // => { '4': [4.2], '6': [6.1, 6.3] }
37883 *
37884 * // The `_.property` iteratee shorthand.
37885 * _.groupBy(['one', 'two', 'three'], 'length');
37886 * // => { '3': ['one', 'two'], '5': ['three'] }
37887 */
37888 var groupBy = createAggregator(function(result, value, key) {
37889 if (hasOwnProperty.call(result, key)) {
37890 result[key].push(value);
37891 } else {
37892 baseAssignValue(result, key, [value]);
37893 }
37894 });
37895
37896 /**
37897 * Checks if `value` is in `collection`. If `collection` is a string, it's
37898 * checked for a substring of `value`, otherwise
37899 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
37900 * is used for equality comparisons. If `fromIndex` is negative, it's used as
37901 * the offset from the end of `collection`.
37902 *
37903 * @static
37904 * @memberOf _
37905 * @since 0.1.0
37906 * @category Collection
37907 * @param {Array|Object|string} collection The collection to inspect.
37908 * @param {*} value The value to search for.
37909 * @param {number} [fromIndex=0] The index to search from.
37910 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
37911 * @returns {boolean} Returns `true` if `value` is found, else `false`.
37912 * @example
37913 *
37914 * _.includes([1, 2, 3], 1);
37915 * // => true
37916 *
37917 * _.includes([1, 2, 3], 1, 2);
37918 * // => false
37919 *
37920 * _.includes({ 'a': 1, 'b': 2 }, 1);
37921 * // => true
37922 *
37923 * _.includes('abcd', 'bc');
37924 * // => true
37925 */
37926 function includes(collection, value, fromIndex, guard) {
37927 collection = isArrayLike(collection) ? collection : values(collection);
37928 fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;
37929
37930 var length = collection.length;
37931 if (fromIndex < 0) {
37932 fromIndex = nativeMax(length + fromIndex, 0);
37933 }
37934 return isString(collection)
37935 ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)
37936 : (!!length && baseIndexOf(collection, value, fromIndex) > -1);
37937 }
37938
37939 /**
37940 * Invokes the method at `path` of each element in `collection`, returning
37941 * an array of the results of each invoked method. Any additional arguments
37942 * are provided to each invoked method. If `path` is a function, it's invoked
37943 * for, and `this` bound to, each element in `collection`.
37944 *
37945 * @static
37946 * @memberOf _
37947 * @since 4.0.0
37948 * @category Collection
37949 * @param {Array|Object} collection The collection to iterate over.
37950 * @param {Array|Function|string} path The path of the method to invoke or
37951 * the function invoked per iteration.
37952 * @param {...*} [args] The arguments to invoke each method with.
37953 * @returns {Array} Returns the array of results.
37954 * @example
37955 *
37956 * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
37957 * // => [[1, 5, 7], [1, 2, 3]]
37958 *
37959 * _.invokeMap([123, 456], String.prototype.split, '');
37960 * // => [['1', '2', '3'], ['4', '5', '6']]
37961 */
37962 var invokeMap = baseRest(function(collection, path, args) {
37963 var index = -1,
37964 isFunc = typeof path == 'function',
37965 result = isArrayLike(collection) ? Array(collection.length) : [];
37966
37967 baseEach(collection, function(value) {
37968 result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);
37969 });
37970 return result;
37971 });
37972
37973 /**
37974 * Creates an object composed of keys generated from the results of running
37975 * each element of `collection` thru `iteratee`. The corresponding value of
37976 * each key is the last element responsible for generating the key. The
37977 * iteratee is invoked with one argument: (value).
37978 *
37979 * @static
37980 * @memberOf _
37981 * @since 4.0.0
37982 * @category Collection
37983 * @param {Array|Object} collection The collection to iterate over.
37984 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
37985 * @returns {Object} Returns the composed aggregate object.
37986 * @example
37987 *
37988 * var array = [
37989 * { 'dir': 'left', 'code': 97 },
37990 * { 'dir': 'right', 'code': 100 }
37991 * ];
37992 *
37993 * _.keyBy(array, function(o) {
37994 * return String.fromCharCode(o.code);
37995 * });
37996 * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
37997 *
37998 * _.keyBy(array, 'dir');
37999 * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
38000 */
38001 var keyBy = createAggregator(function(result, value, key) {
38002 baseAssignValue(result, key, value);
38003 });
38004
38005 /**
38006 * Creates an array of values by running each element in `collection` thru
38007 * `iteratee`. The iteratee is invoked with three arguments:
38008 * (value, index|key, collection).
38009 *
38010 * Many lodash methods are guarded to work as iteratees for methods like
38011 * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
38012 *
38013 * The guarded methods are:
38014 * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
38015 * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
38016 * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
38017 * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
38018 *
38019 * @static
38020 * @memberOf _
38021 * @since 0.1.0
38022 * @category Collection
38023 * @param {Array|Object} collection The collection to iterate over.
38024 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
38025 * @returns {Array} Returns the new mapped array.
38026 * @example
38027 *
38028 * function square(n) {
38029 * return n * n;
38030 * }
38031 *
38032 * _.map([4, 8], square);
38033 * // => [16, 64]
38034 *
38035 * _.map({ 'a': 4, 'b': 8 }, square);
38036 * // => [16, 64] (iteration order is not guaranteed)
38037 *
38038 * var users = [
38039 * { 'user': 'barney' },
38040 * { 'user': 'fred' }
38041 * ];
38042 *
38043 * // The `_.property` iteratee shorthand.
38044 * _.map(users, 'user');
38045 * // => ['barney', 'fred']
38046 */
38047 function map(collection, iteratee) {
38048 var func = isArray(collection) ? arrayMap : baseMap;
38049 return func(collection, getIteratee(iteratee, 3));
38050 }
38051
38052 /**
38053 * This method is like `_.sortBy` except that it allows specifying the sort
38054 * orders of the iteratees to sort by. If `orders` is unspecified, all values
38055 * are sorted in ascending order. Otherwise, specify an order of "desc" for
38056 * descending or "asc" for ascending sort order of corresponding values.
38057 *
38058 * @static
38059 * @memberOf _
38060 * @since 4.0.0
38061 * @category Collection
38062 * @param {Array|Object} collection The collection to iterate over.
38063 * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]
38064 * The iteratees to sort by.
38065 * @param {string[]} [orders] The sort orders of `iteratees`.
38066 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
38067 * @returns {Array} Returns the new sorted array.
38068 * @example
38069 *
38070 * var users = [
38071 * { 'user': 'fred', 'age': 48 },
38072 * { 'user': 'barney', 'age': 34 },
38073 * { 'user': 'fred', 'age': 40 },
38074 * { 'user': 'barney', 'age': 36 }
38075 * ];
38076 *
38077 * // Sort by `user` in ascending order and by `age` in descending order.
38078 * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
38079 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
38080 */
38081 function orderBy(collection, iteratees, orders, guard) {
38082 if (collection == null) {
38083 return [];
38084 }
38085 if (!isArray(iteratees)) {
38086 iteratees = iteratees == null ? [] : [iteratees];
38087 }
38088 orders = guard ? undefined : orders;
38089 if (!isArray(orders)) {
38090 orders = orders == null ? [] : [orders];
38091 }
38092 return baseOrderBy(collection, iteratees, orders);
38093 }
38094
38095 /**
38096 * Creates an array of elements split into two groups, the first of which
38097 * contains elements `predicate` returns truthy for, the second of which
38098 * contains elements `predicate` returns falsey for. The predicate is
38099 * invoked with one argument: (value).
38100 *
38101 * @static
38102 * @memberOf _
38103 * @since 3.0.0
38104 * @category Collection
38105 * @param {Array|Object} collection The collection to iterate over.
38106 * @param {Function} [predicate=_.identity] The function invoked per iteration.
38107 * @returns {Array} Returns the array of grouped elements.
38108 * @example
38109 *
38110 * var users = [
38111 * { 'user': 'barney', 'age': 36, 'active': false },
38112 * { 'user': 'fred', 'age': 40, 'active': true },
38113 * { 'user': 'pebbles', 'age': 1, 'active': false }
38114 * ];
38115 *
38116 * _.partition(users, function(o) { return o.active; });
38117 * // => objects for [['fred'], ['barney', 'pebbles']]
38118 *
38119 * // The `_.matches` iteratee shorthand.
38120 * _.partition(users, { 'age': 1, 'active': false });
38121 * // => objects for [['pebbles'], ['barney', 'fred']]
38122 *
38123 * // The `_.matchesProperty` iteratee shorthand.
38124 * _.partition(users, ['active', false]);
38125 * // => objects for [['barney', 'pebbles'], ['fred']]
38126 *
38127 * // The `_.property` iteratee shorthand.
38128 * _.partition(users, 'active');
38129 * // => objects for [['fred'], ['barney', 'pebbles']]
38130 */
38131 var partition = createAggregator(function(result, value, key) {
38132 result[key ? 0 : 1].push(value);
38133 }, function() { return [[], []]; });
38134
38135 /**
38136 * Reduces `collection` to a value which is the accumulated result of running
38137 * each element in `collection` thru `iteratee`, where each successive
38138 * invocation is supplied the return value of the previous. If `accumulator`
38139 * is not given, the first element of `collection` is used as the initial
38140 * value. The iteratee is invoked with four arguments:
38141 * (accumulator, value, index|key, collection).
38142 *
38143 * Many lodash methods are guarded to work as iteratees for methods like
38144 * `_.reduce`, `_.reduceRight`, and `_.transform`.
38145 *
38146 * The guarded methods are:
38147 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,
38148 * and `sortBy`
38149 *
38150 * @static
38151 * @memberOf _
38152 * @since 0.1.0
38153 * @category Collection
38154 * @param {Array|Object} collection The collection to iterate over.
38155 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
38156 * @param {*} [accumulator] The initial value.
38157 * @returns {*} Returns the accumulated value.
38158 * @see _.reduceRight
38159 * @example
38160 *
38161 * _.reduce([1, 2], function(sum, n) {
38162 * return sum + n;
38163 * }, 0);
38164 * // => 3
38165 *
38166 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
38167 * (result[value] || (result[value] = [])).push(key);
38168 * return result;
38169 * }, {});
38170 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
38171 */
38172 function reduce(collection, iteratee, accumulator) {
38173 var func = isArray(collection) ? arrayReduce : baseReduce,
38174 initAccum = arguments.length < 3;
38175
38176 return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);
38177 }
38178
38179 /**
38180 * This method is like `_.reduce` except that it iterates over elements of
38181 * `collection` from right to left.
38182 *
38183 * @static
38184 * @memberOf _
38185 * @since 0.1.0
38186 * @category Collection
38187 * @param {Array|Object} collection The collection to iterate over.
38188 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
38189 * @param {*} [accumulator] The initial value.
38190 * @returns {*} Returns the accumulated value.
38191 * @see _.reduce
38192 * @example
38193 *
38194 * var array = [[0, 1], [2, 3], [4, 5]];
38195 *
38196 * _.reduceRight(array, function(flattened, other) {
38197 * return flattened.concat(other);
38198 * }, []);
38199 * // => [4, 5, 2, 3, 0, 1]
38200 */
38201 function reduceRight(collection, iteratee, accumulator) {
38202 var func = isArray(collection) ? arrayReduceRight : baseReduce,
38203 initAccum = arguments.length < 3;
38204
38205 return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);
38206 }
38207
38208 /**
38209 * The opposite of `_.filter`; this method returns the elements of `collection`
38210 * that `predicate` does **not** return truthy for.
38211 *
38212 * @static
38213 * @memberOf _
38214 * @since 0.1.0
38215 * @category Collection
38216 * @param {Array|Object} collection The collection to iterate over.
38217 * @param {Function} [predicate=_.identity] The function invoked per iteration.
38218 * @returns {Array} Returns the new filtered array.
38219 * @see _.filter
38220 * @example
38221 *
38222 * var users = [
38223 * { 'user': 'barney', 'age': 36, 'active': false },
38224 * { 'user': 'fred', 'age': 40, 'active': true }
38225 * ];
38226 *
38227 * _.reject(users, function(o) { return !o.active; });
38228 * // => objects for ['fred']
38229 *
38230 * // The `_.matches` iteratee shorthand.
38231 * _.reject(users, { 'age': 40, 'active': true });
38232 * // => objects for ['barney']
38233 *
38234 * // The `_.matchesProperty` iteratee shorthand.
38235 * _.reject(users, ['active', false]);
38236 * // => objects for ['fred']
38237 *
38238 * // The `_.property` iteratee shorthand.
38239 * _.reject(users, 'active');
38240 * // => objects for ['barney']
38241 */
38242 function reject(collection, predicate) {
38243 var func = isArray(collection) ? arrayFilter : baseFilter;
38244 return func(collection, negate(getIteratee(predicate, 3)));
38245 }
38246
38247 /**
38248 * Gets a random element from `collection`.
38249 *
38250 * @static
38251 * @memberOf _
38252 * @since 2.0.0
38253 * @category Collection
38254 * @param {Array|Object} collection The collection to sample.
38255 * @returns {*} Returns the random element.
38256 * @example
38257 *
38258 * _.sample([1, 2, 3, 4]);
38259 * // => 2
38260 */
38261 function sample(collection) {
38262 var func = isArray(collection) ? arraySample : baseSample;
38263 return func(collection);
38264 }
38265
38266 /**
38267 * Gets `n` random elements at unique keys from `collection` up to the
38268 * size of `collection`.
38269 *
38270 * @static
38271 * @memberOf _
38272 * @since 4.0.0
38273 * @category Collection
38274 * @param {Array|Object} collection The collection to sample.
38275 * @param {number} [n=1] The number of elements to sample.
38276 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
38277 * @returns {Array} Returns the random elements.
38278 * @example
38279 *
38280 * _.sampleSize([1, 2, 3], 2);
38281 * // => [3, 1]
38282 *
38283 * _.sampleSize([1, 2, 3], 4);
38284 * // => [2, 3, 1]
38285 */
38286 function sampleSize(collection, n, guard) {
38287 if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {
38288 n = 1;
38289 } else {
38290 n = toInteger(n);
38291 }
38292 var func = isArray(collection) ? arraySampleSize : baseSampleSize;
38293 return func(collection, n);
38294 }
38295
38296 /**
38297 * Creates an array of shuffled values, using a version of the
38298 * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
38299 *
38300 * @static
38301 * @memberOf _
38302 * @since 0.1.0
38303 * @category Collection
38304 * @param {Array|Object} collection The collection to shuffle.
38305 * @returns {Array} Returns the new shuffled array.
38306 * @example
38307 *
38308 * _.shuffle([1, 2, 3, 4]);
38309 * // => [4, 1, 3, 2]
38310 */
38311 function shuffle(collection) {
38312 var func = isArray(collection) ? arrayShuffle : baseShuffle;
38313 return func(collection);
38314 }
38315
38316 /**
38317 * Gets the size of `collection` by returning its length for array-like
38318 * values or the number of own enumerable string keyed properties for objects.
38319 *
38320 * @static
38321 * @memberOf _
38322 * @since 0.1.0
38323 * @category Collection
38324 * @param {Array|Object|string} collection The collection to inspect.
38325 * @returns {number} Returns the collection size.
38326 * @example
38327 *
38328 * _.size([1, 2, 3]);
38329 * // => 3
38330 *
38331 * _.size({ 'a': 1, 'b': 2 });
38332 * // => 2
38333 *
38334 * _.size('pebbles');
38335 * // => 7
38336 */
38337 function size(collection) {
38338 if (collection == null) {
38339 return 0;
38340 }
38341 if (isArrayLike(collection)) {
38342 return isString(collection) ? stringSize(collection) : collection.length;
38343 }
38344 var tag = getTag(collection);
38345 if (tag == mapTag || tag == setTag) {
38346 return collection.size;
38347 }
38348 return baseKeys(collection).length;
38349 }
38350
38351 /**
38352 * Checks if `predicate` returns truthy for **any** element of `collection`.
38353 * Iteration is stopped once `predicate` returns truthy. The predicate is
38354 * invoked with three arguments: (value, index|key, collection).
38355 *
38356 * @static
38357 * @memberOf _
38358 * @since 0.1.0
38359 * @category Collection
38360 * @param {Array|Object} collection The collection to iterate over.
38361 * @param {Function} [predicate=_.identity] The function invoked per iteration.
38362 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
38363 * @returns {boolean} Returns `true` if any element passes the predicate check,
38364 * else `false`.
38365 * @example
38366 *
38367 * _.some([null, 0, 'yes', false], Boolean);
38368 * // => true
38369 *
38370 * var users = [
38371 * { 'user': 'barney', 'active': true },
38372 * { 'user': 'fred', 'active': false }
38373 * ];
38374 *
38375 * // The `_.matches` iteratee shorthand.
38376 * _.some(users, { 'user': 'barney', 'active': false });
38377 * // => false
38378 *
38379 * // The `_.matchesProperty` iteratee shorthand.
38380 * _.some(users, ['active', false]);
38381 * // => true
38382 *
38383 * // The `_.property` iteratee shorthand.
38384 * _.some(users, 'active');
38385 * // => true
38386 */
38387 function some(collection, predicate, guard) {
38388 var func = isArray(collection) ? arraySome : baseSome;
38389 if (guard && isIterateeCall(collection, predicate, guard)) {
38390 predicate = undefined;
38391 }
38392 return func(collection, getIteratee(predicate, 3));
38393 }
38394
38395 /**
38396 * Creates an array of elements, sorted in ascending order by the results of
38397 * running each element in a collection thru each iteratee. This method
38398 * performs a stable sort, that is, it preserves the original sort order of
38399 * equal elements. The iteratees are invoked with one argument: (value).
38400 *
38401 * @static
38402 * @memberOf _
38403 * @since 0.1.0
38404 * @category Collection
38405 * @param {Array|Object} collection The collection to iterate over.
38406 * @param {...(Function|Function[])} [iteratees=[_.identity]]
38407 * The iteratees to sort by.
38408 * @returns {Array} Returns the new sorted array.
38409 * @example
38410 *
38411 * var users = [
38412 * { 'user': 'fred', 'age': 48 },
38413 * { 'user': 'barney', 'age': 36 },
38414 * { 'user': 'fred', 'age': 40 },
38415 * { 'user': 'barney', 'age': 34 }
38416 * ];
38417 *
38418 * _.sortBy(users, [function(o) { return o.user; }]);
38419 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
38420 *
38421 * _.sortBy(users, ['user', 'age']);
38422 * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
38423 */
38424 var sortBy = baseRest(function(collection, iteratees) {
38425 if (collection == null) {
38426 return [];
38427 }
38428 var length = iteratees.length;
38429 if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
38430 iteratees = [];
38431 } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
38432 iteratees = [iteratees[0]];
38433 }
38434 return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
38435 });
38436
38437 /*------------------------------------------------------------------------*/
38438
38439 /**
38440 * Gets the timestamp of the number of milliseconds that have elapsed since
38441 * the Unix epoch (1 January 1970 00:00:00 UTC).
38442 *
38443 * @static
38444 * @memberOf _
38445 * @since 2.4.0
38446 * @category Date
38447 * @returns {number} Returns the timestamp.
38448 * @example
38449 *
38450 * _.defer(function(stamp) {
38451 * console.log(_.now() - stamp);
38452 * }, _.now());
38453 * // => Logs the number of milliseconds it took for the deferred invocation.
38454 */
38455 var now = ctxNow || function() {
38456 return root.Date.now();
38457 };
38458
38459 /*------------------------------------------------------------------------*/
38460
38461 /**
38462 * The opposite of `_.before`; this method creates a function that invokes
38463 * `func` once it's called `n` or more times.
38464 *
38465 * @static
38466 * @memberOf _
38467 * @since 0.1.0
38468 * @category Function
38469 * @param {number} n The number of calls before `func` is invoked.
38470 * @param {Function} func The function to restrict.
38471 * @returns {Function} Returns the new restricted function.
38472 * @example
38473 *
38474 * var saves = ['profile', 'settings'];
38475 *
38476 * var done = _.after(saves.length, function() {
38477 * console.log('done saving!');
38478 * });
38479 *
38480 * _.forEach(saves, function(type) {
38481 * asyncSave({ 'type': type, 'complete': done });
38482 * });
38483 * // => Logs 'done saving!' after the two async saves have completed.
38484 */
38485 function after(n, func) {
38486 if (typeof func != 'function') {
38487 throw new TypeError(FUNC_ERROR_TEXT);
38488 }
38489 n = toInteger(n);
38490 return function() {
38491 if (--n < 1) {
38492 return func.apply(this, arguments);
38493 }
38494 };
38495 }
38496
38497 /**
38498 * Creates a function that invokes `func`, with up to `n` arguments,
38499 * ignoring any additional arguments.
38500 *
38501 * @static
38502 * @memberOf _
38503 * @since 3.0.0
38504 * @category Function
38505 * @param {Function} func The function to cap arguments for.
38506 * @param {number} [n=func.length] The arity cap.
38507 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
38508 * @returns {Function} Returns the new capped function.
38509 * @example
38510 *
38511 * _.map(['6', '8', '10'], _.ary(parseInt, 1));
38512 * // => [6, 8, 10]
38513 */
38514 function ary(func, n, guard) {
38515 n = guard ? undefined : n;
38516 n = (func && n == null) ? func.length : n;
38517 return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);
38518 }
38519
38520 /**
38521 * Creates a function that invokes `func`, with the `this` binding and arguments
38522 * of the created function, while it's called less than `n` times. Subsequent
38523 * calls to the created function return the result of the last `func` invocation.
38524 *
38525 * @static
38526 * @memberOf _
38527 * @since 3.0.0
38528 * @category Function
38529 * @param {number} n The number of calls at which `func` is no longer invoked.
38530 * @param {Function} func The function to restrict.
38531 * @returns {Function} Returns the new restricted function.
38532 * @example
38533 *
38534 * jQuery(element).on('click', _.before(5, addContactToList));
38535 * // => Allows adding up to 4 contacts to the list.
38536 */
38537 function before(n, func) {
38538 var result;
38539 if (typeof func != 'function') {
38540 throw new TypeError(FUNC_ERROR_TEXT);
38541 }
38542 n = toInteger(n);
38543 return function() {
38544 if (--n > 0) {
38545 result = func.apply(this, arguments);
38546 }
38547 if (n <= 1) {
38548 func = undefined;
38549 }
38550 return result;
38551 };
38552 }
38553
38554 /**
38555 * Creates a function that invokes `func` with the `this` binding of `thisArg`
38556 * and `partials` prepended to the arguments it receives.
38557 *
38558 * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,
38559 * may be used as a placeholder for partially applied arguments.
38560 *
38561 * **Note:** Unlike native `Function#bind`, this method doesn't set the "length"
38562 * property of bound functions.
38563 *
38564 * @static
38565 * @memberOf _
38566 * @since 0.1.0
38567 * @category Function
38568 * @param {Function} func The function to bind.
38569 * @param {*} thisArg The `this` binding of `func`.
38570 * @param {...*} [partials] The arguments to be partially applied.
38571 * @returns {Function} Returns the new bound function.
38572 * @example
38573 *
38574 * function greet(greeting, punctuation) {
38575 * return greeting + ' ' + this.user + punctuation;
38576 * }
38577 *
38578 * var object = { 'user': 'fred' };
38579 *
38580 * var bound = _.bind(greet, object, 'hi');
38581 * bound('!');
38582 * // => 'hi fred!'
38583 *
38584 * // Bound with placeholders.
38585 * var bound = _.bind(greet, object, _, '!');
38586 * bound('hi');
38587 * // => 'hi fred!'
38588 */
38589 var bind = baseRest(function(func, thisArg, partials) {
38590 var bitmask = WRAP_BIND_FLAG;
38591 if (partials.length) {
38592 var holders = replaceHolders(partials, getHolder(bind));
38593 bitmask |= WRAP_PARTIAL_FLAG;
38594 }
38595 return createWrap(func, bitmask, thisArg, partials, holders);
38596 });
38597
38598 /**
38599 * Creates a function that invokes the method at `object[key]` with `partials`
38600 * prepended to the arguments it receives.
38601 *
38602 * This method differs from `_.bind` by allowing bound functions to reference
38603 * methods that may be redefined or don't yet exist. See
38604 * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)
38605 * for more details.
38606 *
38607 * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic
38608 * builds, may be used as a placeholder for partially applied arguments.
38609 *
38610 * @static
38611 * @memberOf _
38612 * @since 0.10.0
38613 * @category Function
38614 * @param {Object} object The object to invoke the method on.
38615 * @param {string} key The key of the method.
38616 * @param {...*} [partials] The arguments to be partially applied.
38617 * @returns {Function} Returns the new bound function.
38618 * @example
38619 *
38620 * var object = {
38621 * 'user': 'fred',
38622 * 'greet': function(greeting, punctuation) {
38623 * return greeting + ' ' + this.user + punctuation;
38624 * }
38625 * };
38626 *
38627 * var bound = _.bindKey(object, 'greet', 'hi');
38628 * bound('!');
38629 * // => 'hi fred!'
38630 *
38631 * object.greet = function(greeting, punctuation) {
38632 * return greeting + 'ya ' + this.user + punctuation;
38633 * };
38634 *
38635 * bound('!');
38636 * // => 'hiya fred!'
38637 *
38638 * // Bound with placeholders.
38639 * var bound = _.bindKey(object, 'greet', _, '!');
38640 * bound('hi');
38641 * // => 'hiya fred!'
38642 */
38643 var bindKey = baseRest(function(object, key, partials) {
38644 var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
38645 if (partials.length) {
38646 var holders = replaceHolders(partials, getHolder(bindKey));
38647 bitmask |= WRAP_PARTIAL_FLAG;
38648 }
38649 return createWrap(key, bitmask, object, partials, holders);
38650 });
38651
38652 /**
38653 * Creates a function that accepts arguments of `func` and either invokes
38654 * `func` returning its result, if at least `arity` number of arguments have
38655 * been provided, or returns a function that accepts the remaining `func`
38656 * arguments, and so on. The arity of `func` may be specified if `func.length`
38657 * is not sufficient.
38658 *
38659 * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,
38660 * may be used as a placeholder for provided arguments.
38661 *
38662 * **Note:** This method doesn't set the "length" property of curried functions.
38663 *
38664 * @static
38665 * @memberOf _
38666 * @since 2.0.0
38667 * @category Function
38668 * @param {Function} func The function to curry.
38669 * @param {number} [arity=func.length] The arity of `func`.
38670 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
38671 * @returns {Function} Returns the new curried function.
38672 * @example
38673 *
38674 * var abc = function(a, b, c) {
38675 * return [a, b, c];
38676 * };
38677 *
38678 * var curried = _.curry(abc);
38679 *
38680 * curried(1)(2)(3);
38681 * // => [1, 2, 3]
38682 *
38683 * curried(1, 2)(3);
38684 * // => [1, 2, 3]
38685 *
38686 * curried(1, 2, 3);
38687 * // => [1, 2, 3]
38688 *
38689 * // Curried with placeholders.
38690 * curried(1)(_, 3)(2);
38691 * // => [1, 2, 3]
38692 */
38693 function curry(func, arity, guard) {
38694 arity = guard ? undefined : arity;
38695 var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
38696 result.placeholder = curry.placeholder;
38697 return result;
38698 }
38699
38700 /**
38701 * This method is like `_.curry` except that arguments are applied to `func`
38702 * in the manner of `_.partialRight` instead of `_.partial`.
38703 *
38704 * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic
38705 * builds, may be used as a placeholder for provided arguments.
38706 *
38707 * **Note:** This method doesn't set the "length" property of curried functions.
38708 *
38709 * @static
38710 * @memberOf _
38711 * @since 3.0.0
38712 * @category Function
38713 * @param {Function} func The function to curry.
38714 * @param {number} [arity=func.length] The arity of `func`.
38715 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
38716 * @returns {Function} Returns the new curried function.
38717 * @example
38718 *
38719 * var abc = function(a, b, c) {
38720 * return [a, b, c];
38721 * };
38722 *
38723 * var curried = _.curryRight(abc);
38724 *
38725 * curried(3)(2)(1);
38726 * // => [1, 2, 3]
38727 *
38728 * curried(2, 3)(1);
38729 * // => [1, 2, 3]
38730 *
38731 * curried(1, 2, 3);
38732 * // => [1, 2, 3]
38733 *
38734 * // Curried with placeholders.
38735 * curried(3)(1, _)(2);
38736 * // => [1, 2, 3]
38737 */
38738 function curryRight(func, arity, guard) {
38739 arity = guard ? undefined : arity;
38740 var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
38741 result.placeholder = curryRight.placeholder;
38742 return result;
38743 }
38744
38745 /**
38746 * Creates a debounced function that delays invoking `func` until after `wait`
38747 * milliseconds have elapsed since the last time the debounced function was
38748 * invoked. The debounced function comes with a `cancel` method to cancel
38749 * delayed `func` invocations and a `flush` method to immediately invoke them.
38750 * Provide `options` to indicate whether `func` should be invoked on the
38751 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
38752 * with the last arguments provided to the debounced function. Subsequent
38753 * calls to the debounced function return the result of the last `func`
38754 * invocation.
38755 *
38756 * **Note:** If `leading` and `trailing` options are `true`, `func` is
38757 * invoked on the trailing edge of the timeout only if the debounced function
38758 * is invoked more than once during the `wait` timeout.
38759 *
38760 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
38761 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
38762 *
38763 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
38764 * for details over the differences between `_.debounce` and `_.throttle`.
38765 *
38766 * @static
38767 * @memberOf _
38768 * @since 0.1.0
38769 * @category Function
38770 * @param {Function} func The function to debounce.
38771 * @param {number} [wait=0] The number of milliseconds to delay.
38772 * @param {Object} [options={}] The options object.
38773 * @param {boolean} [options.leading=false]
38774 * Specify invoking on the leading edge of the timeout.
38775 * @param {number} [options.maxWait]
38776 * The maximum time `func` is allowed to be delayed before it's invoked.
38777 * @param {boolean} [options.trailing=true]
38778 * Specify invoking on the trailing edge of the timeout.
38779 * @returns {Function} Returns the new debounced function.
38780 * @example
38781 *
38782 * // Avoid costly calculations while the window size is in flux.
38783 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
38784 *
38785 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
38786 * jQuery(element).on('click', _.debounce(sendMail, 300, {
38787 * 'leading': true,
38788 * 'trailing': false
38789 * }));
38790 *
38791 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
38792 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
38793 * var source = new EventSource('/stream');
38794 * jQuery(source).on('message', debounced);
38795 *
38796 * // Cancel the trailing debounced invocation.
38797 * jQuery(window).on('popstate', debounced.cancel);
38798 */
38799 function debounce(func, wait, options) {
38800 var lastArgs,
38801 lastThis,
38802 maxWait,
38803 result,
38804 timerId,
38805 lastCallTime,
38806 lastInvokeTime = 0,
38807 leading = false,
38808 maxing = false,
38809 trailing = true;
38810
38811 if (typeof func != 'function') {
38812 throw new TypeError(FUNC_ERROR_TEXT);
38813 }
38814 wait = toNumber(wait) || 0;
38815 if (isObject(options)) {
38816 leading = !!options.leading;
38817 maxing = 'maxWait' in options;
38818 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
38819 trailing = 'trailing' in options ? !!options.trailing : trailing;
38820 }
38821
38822 function invokeFunc(time) {
38823 var args = lastArgs,
38824 thisArg = lastThis;
38825
38826 lastArgs = lastThis = undefined;
38827 lastInvokeTime = time;
38828 result = func.apply(thisArg, args);
38829 return result;
38830 }
38831
38832 function leadingEdge(time) {
38833 // Reset any `maxWait` timer.
38834 lastInvokeTime = time;
38835 // Start the timer for the trailing edge.
38836 timerId = setTimeout(timerExpired, wait);
38837 // Invoke the leading edge.
38838 return leading ? invokeFunc(time) : result;
38839 }
38840
38841 function remainingWait(time) {
38842 var timeSinceLastCall = time - lastCallTime,
38843 timeSinceLastInvoke = time - lastInvokeTime,
38844 timeWaiting = wait - timeSinceLastCall;
38845
38846 return maxing
38847 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
38848 : timeWaiting;
38849 }
38850
38851 function shouldInvoke(time) {
38852 var timeSinceLastCall = time - lastCallTime,
38853 timeSinceLastInvoke = time - lastInvokeTime;
38854
38855 // Either this is the first call, activity has stopped and we're at the
38856 // trailing edge, the system time has gone backwards and we're treating
38857 // it as the trailing edge, or we've hit the `maxWait` limit.
38858 return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
38859 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
38860 }
38861
38862 function timerExpired() {
38863 var time = now();
38864 if (shouldInvoke(time)) {
38865 return trailingEdge(time);
38866 }
38867 // Restart the timer.
38868 timerId = setTimeout(timerExpired, remainingWait(time));
38869 }
38870
38871 function trailingEdge(time) {
38872 timerId = undefined;
38873
38874 // Only invoke if we have `lastArgs` which means `func` has been
38875 // debounced at least once.
38876 if (trailing && lastArgs) {
38877 return invokeFunc(time);
38878 }
38879 lastArgs = lastThis = undefined;
38880 return result;
38881 }
38882
38883 function cancel() {
38884 if (timerId !== undefined) {
38885 clearTimeout(timerId);
38886 }
38887 lastInvokeTime = 0;
38888 lastArgs = lastCallTime = lastThis = timerId = undefined;
38889 }
38890
38891 function flush() {
38892 return timerId === undefined ? result : trailingEdge(now());
38893 }
38894
38895 function debounced() {
38896 var time = now(),
38897 isInvoking = shouldInvoke(time);
38898
38899 lastArgs = arguments;
38900 lastThis = this;
38901 lastCallTime = time;
38902
38903 if (isInvoking) {
38904 if (timerId === undefined) {
38905 return leadingEdge(lastCallTime);
38906 }
38907 if (maxing) {
38908 // Handle invocations in a tight loop.
38909 timerId = setTimeout(timerExpired, wait);
38910 return invokeFunc(lastCallTime);
38911 }
38912 }
38913 if (timerId === undefined) {
38914 timerId = setTimeout(timerExpired, wait);
38915 }
38916 return result;
38917 }
38918 debounced.cancel = cancel;
38919 debounced.flush = flush;
38920 return debounced;
38921 }
38922
38923 /**
38924 * Defers invoking the `func` until the current call stack has cleared. Any
38925 * additional arguments are provided to `func` when it's invoked.
38926 *
38927 * @static
38928 * @memberOf _
38929 * @since 0.1.0
38930 * @category Function
38931 * @param {Function} func The function to defer.
38932 * @param {...*} [args] The arguments to invoke `func` with.
38933 * @returns {number} Returns the timer id.
38934 * @example
38935 *
38936 * _.defer(function(text) {
38937 * console.log(text);
38938 * }, 'deferred');
38939 * // => Logs 'deferred' after one millisecond.
38940 */
38941 var defer = baseRest(function(func, args) {
38942 return baseDelay(func, 1, args);
38943 });
38944
38945 /**
38946 * Invokes `func` after `wait` milliseconds. Any additional arguments are
38947 * provided to `func` when it's invoked.
38948 *
38949 * @static
38950 * @memberOf _
38951 * @since 0.1.0
38952 * @category Function
38953 * @param {Function} func The function to delay.
38954 * @param {number} wait The number of milliseconds to delay invocation.
38955 * @param {...*} [args] The arguments to invoke `func` with.
38956 * @returns {number} Returns the timer id.
38957 * @example
38958 *
38959 * _.delay(function(text) {
38960 * console.log(text);
38961 * }, 1000, 'later');
38962 * // => Logs 'later' after one second.
38963 */
38964 var delay = baseRest(function(func, wait, args) {
38965 return baseDelay(func, toNumber(wait) || 0, args);
38966 });
38967
38968 /**
38969 * Creates a function that invokes `func` with arguments reversed.
38970 *
38971 * @static
38972 * @memberOf _
38973 * @since 4.0.0
38974 * @category Function
38975 * @param {Function} func The function to flip arguments for.
38976 * @returns {Function} Returns the new flipped function.
38977 * @example
38978 *
38979 * var flipped = _.flip(function() {
38980 * return _.toArray(arguments);
38981 * });
38982 *
38983 * flipped('a', 'b', 'c', 'd');
38984 * // => ['d', 'c', 'b', 'a']
38985 */
38986 function flip(func) {
38987 return createWrap(func, WRAP_FLIP_FLAG);
38988 }
38989
38990 /**
38991 * Creates a function that memoizes the result of `func`. If `resolver` is
38992 * provided, it determines the cache key for storing the result based on the
38993 * arguments provided to the memoized function. By default, the first argument
38994 * provided to the memoized function is used as the map cache key. The `func`
38995 * is invoked with the `this` binding of the memoized function.
38996 *
38997 * **Note:** The cache is exposed as the `cache` property on the memoized
38998 * function. Its creation may be customized by replacing the `_.memoize.Cache`
38999 * constructor with one whose instances implement the
39000 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
39001 * method interface of `clear`, `delete`, `get`, `has`, and `set`.
39002 *
39003 * @static
39004 * @memberOf _
39005 * @since 0.1.0
39006 * @category Function
39007 * @param {Function} func The function to have its output memoized.
39008 * @param {Function} [resolver] The function to resolve the cache key.
39009 * @returns {Function} Returns the new memoized function.
39010 * @example
39011 *
39012 * var object = { 'a': 1, 'b': 2 };
39013 * var other = { 'c': 3, 'd': 4 };
39014 *
39015 * var values = _.memoize(_.values);
39016 * values(object);
39017 * // => [1, 2]
39018 *
39019 * values(other);
39020 * // => [3, 4]
39021 *
39022 * object.a = 2;
39023 * values(object);
39024 * // => [1, 2]
39025 *
39026 * // Modify the result cache.
39027 * values.cache.set(object, ['a', 'b']);
39028 * values(object);
39029 * // => ['a', 'b']
39030 *
39031 * // Replace `_.memoize.Cache`.
39032 * _.memoize.Cache = WeakMap;
39033 */
39034 function memoize(func, resolver) {
39035 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
39036 throw new TypeError(FUNC_ERROR_TEXT);
39037 }
39038 var memoized = function() {
39039 var args = arguments,
39040 key = resolver ? resolver.apply(this, args) : args[0],
39041 cache = memoized.cache;
39042
39043 if (cache.has(key)) {
39044 return cache.get(key);
39045 }
39046 var result = func.apply(this, args);
39047 memoized.cache = cache.set(key, result) || cache;
39048 return result;
39049 };
39050 memoized.cache = new (memoize.Cache || MapCache);
39051 return memoized;
39052 }
39053
39054 // Expose `MapCache`.
39055 memoize.Cache = MapCache;
39056
39057 /**
39058 * Creates a function that negates the result of the predicate `func`. The
39059 * `func` predicate is invoked with the `this` binding and arguments of the
39060 * created function.
39061 *
39062 * @static
39063 * @memberOf _
39064 * @since 3.0.0
39065 * @category Function
39066 * @param {Function} predicate The predicate to negate.
39067 * @returns {Function} Returns the new negated function.
39068 * @example
39069 *
39070 * function isEven(n) {
39071 * return n % 2 == 0;
39072 * }
39073 *
39074 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
39075 * // => [1, 3, 5]
39076 */
39077 function negate(predicate) {
39078 if (typeof predicate != 'function') {
39079 throw new TypeError(FUNC_ERROR_TEXT);
39080 }
39081 return function() {
39082 var args = arguments;
39083 switch (args.length) {
39084 case 0: return !predicate.call(this);
39085 case 1: return !predicate.call(this, args[0]);
39086 case 2: return !predicate.call(this, args[0], args[1]);
39087 case 3: return !predicate.call(this, args[0], args[1], args[2]);
39088 }
39089 return !predicate.apply(this, args);
39090 };
39091 }
39092
39093 /**
39094 * Creates a function that is restricted to invoking `func` once. Repeat calls
39095 * to the function return the value of the first invocation. The `func` is
39096 * invoked with the `this` binding and arguments of the created function.
39097 *
39098 * @static
39099 * @memberOf _
39100 * @since 0.1.0
39101 * @category Function
39102 * @param {Function} func The function to restrict.
39103 * @returns {Function} Returns the new restricted function.
39104 * @example
39105 *
39106 * var initialize = _.once(createApplication);
39107 * initialize();
39108 * initialize();
39109 * // => `createApplication` is invoked once
39110 */
39111 function once(func) {
39112 return before(2, func);
39113 }
39114
39115 /**
39116 * Creates a function that invokes `func` with its arguments transformed.
39117 *
39118 * @static
39119 * @since 4.0.0
39120 * @memberOf _
39121 * @category Function
39122 * @param {Function} func The function to wrap.
39123 * @param {...(Function|Function[])} [transforms=[_.identity]]
39124 * The argument transforms.
39125 * @returns {Function} Returns the new function.
39126 * @example
39127 *
39128 * function doubled(n) {
39129 * return n * 2;
39130 * }
39131 *
39132 * function square(n) {
39133 * return n * n;
39134 * }
39135 *
39136 * var func = _.overArgs(function(x, y) {
39137 * return [x, y];
39138 * }, [square, doubled]);
39139 *
39140 * func(9, 3);
39141 * // => [81, 6]
39142 *
39143 * func(10, 5);
39144 * // => [100, 10]
39145 */
39146 var overArgs = castRest(function(func, transforms) {
39147 transforms = (transforms.length == 1 && isArray(transforms[0]))
39148 ? arrayMap(transforms[0], baseUnary(getIteratee()))
39149 : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));
39150
39151 var funcsLength = transforms.length;
39152 return baseRest(function(args) {
39153 var index = -1,
39154 length = nativeMin(args.length, funcsLength);
39155
39156 while (++index < length) {
39157 args[index] = transforms[index].call(this, args[index]);
39158 }
39159 return apply(func, this, args);
39160 });
39161 });
39162
39163 /**
39164 * Creates a function that invokes `func` with `partials` prepended to the
39165 * arguments it receives. This method is like `_.bind` except it does **not**
39166 * alter the `this` binding.
39167 *
39168 * The `_.partial.placeholder` value, which defaults to `_` in monolithic
39169 * builds, may be used as a placeholder for partially applied arguments.
39170 *
39171 * **Note:** This method doesn't set the "length" property of partially
39172 * applied functions.
39173 *
39174 * @static
39175 * @memberOf _
39176 * @since 0.2.0
39177 * @category Function
39178 * @param {Function} func The function to partially apply arguments to.
39179 * @param {...*} [partials] The arguments to be partially applied.
39180 * @returns {Function} Returns the new partially applied function.
39181 * @example
39182 *
39183 * function greet(greeting, name) {
39184 * return greeting + ' ' + name;
39185 * }
39186 *
39187 * var sayHelloTo = _.partial(greet, 'hello');
39188 * sayHelloTo('fred');
39189 * // => 'hello fred'
39190 *
39191 * // Partially applied with placeholders.
39192 * var greetFred = _.partial(greet, _, 'fred');
39193 * greetFred('hi');
39194 * // => 'hi fred'
39195 */
39196 var partial = baseRest(function(func, partials) {
39197 var holders = replaceHolders(partials, getHolder(partial));
39198 return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);
39199 });
39200
39201 /**
39202 * This method is like `_.partial` except that partially applied arguments
39203 * are appended to the arguments it receives.
39204 *
39205 * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic
39206 * builds, may be used as a placeholder for partially applied arguments.
39207 *
39208 * **Note:** This method doesn't set the "length" property of partially
39209 * applied functions.
39210 *
39211 * @static
39212 * @memberOf _
39213 * @since 1.0.0
39214 * @category Function
39215 * @param {Function} func The function to partially apply arguments to.
39216 * @param {...*} [partials] The arguments to be partially applied.
39217 * @returns {Function} Returns the new partially applied function.
39218 * @example
39219 *
39220 * function greet(greeting, name) {
39221 * return greeting + ' ' + name;
39222 * }
39223 *
39224 * var greetFred = _.partialRight(greet, 'fred');
39225 * greetFred('hi');
39226 * // => 'hi fred'
39227 *
39228 * // Partially applied with placeholders.
39229 * var sayHelloTo = _.partialRight(greet, 'hello', _);
39230 * sayHelloTo('fred');
39231 * // => 'hello fred'
39232 */
39233 var partialRight = baseRest(function(func, partials) {
39234 var holders = replaceHolders(partials, getHolder(partialRight));
39235 return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);
39236 });
39237
39238 /**
39239 * Creates a function that invokes `func` with arguments arranged according
39240 * to the specified `indexes` where the argument value at the first index is
39241 * provided as the first argument, the argument value at the second index is
39242 * provided as the second argument, and so on.
39243 *
39244 * @static
39245 * @memberOf _
39246 * @since 3.0.0
39247 * @category Function
39248 * @param {Function} func The function to rearrange arguments for.
39249 * @param {...(number|number[])} indexes The arranged argument indexes.
39250 * @returns {Function} Returns the new function.
39251 * @example
39252 *
39253 * var rearged = _.rearg(function(a, b, c) {
39254 * return [a, b, c];
39255 * }, [2, 0, 1]);
39256 *
39257 * rearged('b', 'c', 'a')
39258 * // => ['a', 'b', 'c']
39259 */
39260 var rearg = flatRest(function(func, indexes) {
39261 return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);
39262 });
39263
39264 /**
39265 * Creates a function that invokes `func` with the `this` binding of the
39266 * created function and arguments from `start` and beyond provided as
39267 * an array.
39268 *
39269 * **Note:** This method is based on the
39270 * [rest parameter](https://mdn.io/rest_parameters).
39271 *
39272 * @static
39273 * @memberOf _
39274 * @since 4.0.0
39275 * @category Function
39276 * @param {Function} func The function to apply a rest parameter to.
39277 * @param {number} [start=func.length-1] The start position of the rest parameter.
39278 * @returns {Function} Returns the new function.
39279 * @example
39280 *
39281 * var say = _.rest(function(what, names) {
39282 * return what + ' ' + _.initial(names).join(', ') +
39283 * (_.size(names) > 1 ? ', & ' : '') + _.last(names);
39284 * });
39285 *
39286 * say('hello', 'fred', 'barney', 'pebbles');
39287 * // => 'hello fred, barney, & pebbles'
39288 */
39289 function rest(func, start) {
39290 if (typeof func != 'function') {
39291 throw new TypeError(FUNC_ERROR_TEXT);
39292 }
39293 start = start === undefined ? start : toInteger(start);
39294 return baseRest(func, start);
39295 }
39296
39297 /**
39298 * Creates a function that invokes `func` with the `this` binding of the
39299 * create function and an array of arguments much like
39300 * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).
39301 *
39302 * **Note:** This method is based on the
39303 * [spread operator](https://mdn.io/spread_operator).
39304 *
39305 * @static
39306 * @memberOf _
39307 * @since 3.2.0
39308 * @category Function
39309 * @param {Function} func The function to spread arguments over.
39310 * @param {number} [start=0] The start position of the spread.
39311 * @returns {Function} Returns the new function.
39312 * @example
39313 *
39314 * var say = _.spread(function(who, what) {
39315 * return who + ' says ' + what;
39316 * });
39317 *
39318 * say(['fred', 'hello']);
39319 * // => 'fred says hello'
39320 *
39321 * var numbers = Promise.all([
39322 * Promise.resolve(40),
39323 * Promise.resolve(36)
39324 * ]);
39325 *
39326 * numbers.then(_.spread(function(x, y) {
39327 * return x + y;
39328 * }));
39329 * // => a Promise of 76
39330 */
39331 function spread(func, start) {
39332 if (typeof func != 'function') {
39333 throw new TypeError(FUNC_ERROR_TEXT);
39334 }
39335 start = start == null ? 0 : nativeMax(toInteger(start), 0);
39336 return baseRest(function(args) {
39337 var array = args[start],
39338 otherArgs = castSlice(args, 0, start);
39339
39340 if (array) {
39341 arrayPush(otherArgs, array);
39342 }
39343 return apply(func, this, otherArgs);
39344 });
39345 }
39346
39347 /**
39348 * Creates a throttled function that only invokes `func` at most once per
39349 * every `wait` milliseconds. The throttled function comes with a `cancel`
39350 * method to cancel delayed `func` invocations and a `flush` method to
39351 * immediately invoke them. Provide `options` to indicate whether `func`
39352 * should be invoked on the leading and/or trailing edge of the `wait`
39353 * timeout. The `func` is invoked with the last arguments provided to the
39354 * throttled function. Subsequent calls to the throttled function return the
39355 * result of the last `func` invocation.
39356 *
39357 * **Note:** If `leading` and `trailing` options are `true`, `func` is
39358 * invoked on the trailing edge of the timeout only if the throttled function
39359 * is invoked more than once during the `wait` timeout.
39360 *
39361 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
39362 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
39363 *
39364 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
39365 * for details over the differences between `_.throttle` and `_.debounce`.
39366 *
39367 * @static
39368 * @memberOf _
39369 * @since 0.1.0
39370 * @category Function
39371 * @param {Function} func The function to throttle.
39372 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
39373 * @param {Object} [options={}] The options object.
39374 * @param {boolean} [options.leading=true]
39375 * Specify invoking on the leading edge of the timeout.
39376 * @param {boolean} [options.trailing=true]
39377 * Specify invoking on the trailing edge of the timeout.
39378 * @returns {Function} Returns the new throttled function.
39379 * @example
39380 *
39381 * // Avoid excessively updating the position while scrolling.
39382 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
39383 *
39384 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
39385 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
39386 * jQuery(element).on('click', throttled);
39387 *
39388 * // Cancel the trailing throttled invocation.
39389 * jQuery(window).on('popstate', throttled.cancel);
39390 */
39391 function throttle(func, wait, options) {
39392 var leading = true,
39393 trailing = true;
39394
39395 if (typeof func != 'function') {
39396 throw new TypeError(FUNC_ERROR_TEXT);
39397 }
39398 if (isObject(options)) {
39399 leading = 'leading' in options ? !!options.leading : leading;
39400 trailing = 'trailing' in options ? !!options.trailing : trailing;
39401 }
39402 return debounce(func, wait, {
39403 'leading': leading,
39404 'maxWait': wait,
39405 'trailing': trailing
39406 });
39407 }
39408
39409 /**
39410 * Creates a function that accepts up to one argument, ignoring any
39411 * additional arguments.
39412 *
39413 * @static
39414 * @memberOf _
39415 * @since 4.0.0
39416 * @category Function
39417 * @param {Function} func The function to cap arguments for.
39418 * @returns {Function} Returns the new capped function.
39419 * @example
39420 *
39421 * _.map(['6', '8', '10'], _.unary(parseInt));
39422 * // => [6, 8, 10]
39423 */
39424 function unary(func) {
39425 return ary(func, 1);
39426 }
39427
39428 /**
39429 * Creates a function that provides `value` to `wrapper` as its first
39430 * argument. Any additional arguments provided to the function are appended
39431 * to those provided to the `wrapper`. The wrapper is invoked with the `this`
39432 * binding of the created function.
39433 *
39434 * @static
39435 * @memberOf _
39436 * @since 0.1.0
39437 * @category Function
39438 * @param {*} value The value to wrap.
39439 * @param {Function} [wrapper=identity] The wrapper function.
39440 * @returns {Function} Returns the new function.
39441 * @example
39442 *
39443 * var p = _.wrap(_.escape, function(func, text) {
39444 * return '<p>' + func(text) + '</p>';
39445 * });
39446 *
39447 * p('fred, barney, & pebbles');
39448 * // => '<p>fred, barney, &amp; pebbles</p>'
39449 */
39450 function wrap(value, wrapper) {
39451 return partial(castFunction(wrapper), value);
39452 }
39453
39454 /*------------------------------------------------------------------------*/
39455
39456 /**
39457 * Casts `value` as an array if it's not one.
39458 *
39459 * @static
39460 * @memberOf _
39461 * @since 4.4.0
39462 * @category Lang
39463 * @param {*} value The value to inspect.
39464 * @returns {Array} Returns the cast array.
39465 * @example
39466 *
39467 * _.castArray(1);
39468 * // => [1]
39469 *
39470 * _.castArray({ 'a': 1 });
39471 * // => [{ 'a': 1 }]
39472 *
39473 * _.castArray('abc');
39474 * // => ['abc']
39475 *
39476 * _.castArray(null);
39477 * // => [null]
39478 *
39479 * _.castArray(undefined);
39480 * // => [undefined]
39481 *
39482 * _.castArray();
39483 * // => []
39484 *
39485 * var array = [1, 2, 3];
39486 * console.log(_.castArray(array) === array);
39487 * // => true
39488 */
39489 function castArray() {
39490 if (!arguments.length) {
39491 return [];
39492 }
39493 var value = arguments[0];
39494 return isArray(value) ? value : [value];
39495 }
39496
39497 /**
39498 * Creates a shallow clone of `value`.
39499 *
39500 * **Note:** This method is loosely based on the
39501 * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
39502 * and supports cloning arrays, array buffers, booleans, date objects, maps,
39503 * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
39504 * arrays. The own enumerable properties of `arguments` objects are cloned
39505 * as plain objects. An empty object is returned for uncloneable values such
39506 * as error objects, functions, DOM nodes, and WeakMaps.
39507 *
39508 * @static
39509 * @memberOf _
39510 * @since 0.1.0
39511 * @category Lang
39512 * @param {*} value The value to clone.
39513 * @returns {*} Returns the cloned value.
39514 * @see _.cloneDeep
39515 * @example
39516 *
39517 * var objects = [{ 'a': 1 }, { 'b': 2 }];
39518 *
39519 * var shallow = _.clone(objects);
39520 * console.log(shallow[0] === objects[0]);
39521 * // => true
39522 */
39523 function clone(value) {
39524 return baseClone(value, CLONE_SYMBOLS_FLAG);
39525 }
39526
39527 /**
39528 * This method is like `_.clone` except that it accepts `customizer` which
39529 * is invoked to produce the cloned value. If `customizer` returns `undefined`,
39530 * cloning is handled by the method instead. The `customizer` is invoked with
39531 * up to four arguments; (value [, index|key, object, stack]).
39532 *
39533 * @static
39534 * @memberOf _
39535 * @since 4.0.0
39536 * @category Lang
39537 * @param {*} value The value to clone.
39538 * @param {Function} [customizer] The function to customize cloning.
39539 * @returns {*} Returns the cloned value.
39540 * @see _.cloneDeepWith
39541 * @example
39542 *
39543 * function customizer(value) {
39544 * if (_.isElement(value)) {
39545 * return value.cloneNode(false);
39546 * }
39547 * }
39548 *
39549 * var el = _.cloneWith(document.body, customizer);
39550 *
39551 * console.log(el === document.body);
39552 * // => false
39553 * console.log(el.nodeName);
39554 * // => 'BODY'
39555 * console.log(el.childNodes.length);
39556 * // => 0
39557 */
39558 function cloneWith(value, customizer) {
39559 customizer = typeof customizer == 'function' ? customizer : undefined;
39560 return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
39561 }
39562
39563 /**
39564 * This method is like `_.clone` except that it recursively clones `value`.
39565 *
39566 * @static
39567 * @memberOf _
39568 * @since 1.0.0
39569 * @category Lang
39570 * @param {*} value The value to recursively clone.
39571 * @returns {*} Returns the deep cloned value.
39572 * @see _.clone
39573 * @example
39574 *
39575 * var objects = [{ 'a': 1 }, { 'b': 2 }];
39576 *
39577 * var deep = _.cloneDeep(objects);
39578 * console.log(deep[0] === objects[0]);
39579 * // => false
39580 */
39581 function cloneDeep(value) {
39582 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
39583 }
39584
39585 /**
39586 * This method is like `_.cloneWith` except that it recursively clones `value`.
39587 *
39588 * @static
39589 * @memberOf _
39590 * @since 4.0.0
39591 * @category Lang
39592 * @param {*} value The value to recursively clone.
39593 * @param {Function} [customizer] The function to customize cloning.
39594 * @returns {*} Returns the deep cloned value.
39595 * @see _.cloneWith
39596 * @example
39597 *
39598 * function customizer(value) {
39599 * if (_.isElement(value)) {
39600 * return value.cloneNode(true);
39601 * }
39602 * }
39603 *
39604 * var el = _.cloneDeepWith(document.body, customizer);
39605 *
39606 * console.log(el === document.body);
39607 * // => false
39608 * console.log(el.nodeName);
39609 * // => 'BODY'
39610 * console.log(el.childNodes.length);
39611 * // => 20
39612 */
39613 function cloneDeepWith(value, customizer) {
39614 customizer = typeof customizer == 'function' ? customizer : undefined;
39615 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
39616 }
39617
39618 /**
39619 * Checks if `object` conforms to `source` by invoking the predicate
39620 * properties of `source` with the corresponding property values of `object`.
39621 *
39622 * **Note:** This method is equivalent to `_.conforms` when `source` is
39623 * partially applied.
39624 *
39625 * @static
39626 * @memberOf _
39627 * @since 4.14.0
39628 * @category Lang
39629 * @param {Object} object The object to inspect.
39630 * @param {Object} source The object of property predicates to conform to.
39631 * @returns {boolean} Returns `true` if `object` conforms, else `false`.
39632 * @example
39633 *
39634 * var object = { 'a': 1, 'b': 2 };
39635 *
39636 * _.conformsTo(object, { 'b': function(n) { return n > 1; } });
39637 * // => true
39638 *
39639 * _.conformsTo(object, { 'b': function(n) { return n > 2; } });
39640 * // => false
39641 */
39642 function conformsTo(object, source) {
39643 return source == null || baseConformsTo(object, source, keys(source));
39644 }
39645
39646 /**
39647 * Performs a
39648 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
39649 * comparison between two values to determine if they are equivalent.
39650 *
39651 * @static
39652 * @memberOf _
39653 * @since 4.0.0
39654 * @category Lang
39655 * @param {*} value The value to compare.
39656 * @param {*} other The other value to compare.
39657 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
39658 * @example
39659 *
39660 * var object = { 'a': 1 };
39661 * var other = { 'a': 1 };
39662 *
39663 * _.eq(object, object);
39664 * // => true
39665 *
39666 * _.eq(object, other);
39667 * // => false
39668 *
39669 * _.eq('a', 'a');
39670 * // => true
39671 *
39672 * _.eq('a', Object('a'));
39673 * // => false
39674 *
39675 * _.eq(NaN, NaN);
39676 * // => true
39677 */
39678 function eq(value, other) {
39679 return value === other || (value !== value && other !== other);
39680 }
39681
39682 /**
39683 * Checks if `value` is greater than `other`.
39684 *
39685 * @static
39686 * @memberOf _
39687 * @since 3.9.0
39688 * @category Lang
39689 * @param {*} value The value to compare.
39690 * @param {*} other The other value to compare.
39691 * @returns {boolean} Returns `true` if `value` is greater than `other`,
39692 * else `false`.
39693 * @see _.lt
39694 * @example
39695 *
39696 * _.gt(3, 1);
39697 * // => true
39698 *
39699 * _.gt(3, 3);
39700 * // => false
39701 *
39702 * _.gt(1, 3);
39703 * // => false
39704 */
39705 var gt = createRelationalOperation(baseGt);
39706
39707 /**
39708 * Checks if `value` is greater than or equal to `other`.
39709 *
39710 * @static
39711 * @memberOf _
39712 * @since 3.9.0
39713 * @category Lang
39714 * @param {*} value The value to compare.
39715 * @param {*} other The other value to compare.
39716 * @returns {boolean} Returns `true` if `value` is greater than or equal to
39717 * `other`, else `false`.
39718 * @see _.lte
39719 * @example
39720 *
39721 * _.gte(3, 1);
39722 * // => true
39723 *
39724 * _.gte(3, 3);
39725 * // => true
39726 *
39727 * _.gte(1, 3);
39728 * // => false
39729 */
39730 var gte = createRelationalOperation(function(value, other) {
39731 return value >= other;
39732 });
39733
39734 /**
39735 * Checks if `value` is likely an `arguments` object.
39736 *
39737 * @static
39738 * @memberOf _
39739 * @since 0.1.0
39740 * @category Lang
39741 * @param {*} value The value to check.
39742 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
39743 * else `false`.
39744 * @example
39745 *
39746 * _.isArguments(function() { return arguments; }());
39747 * // => true
39748 *
39749 * _.isArguments([1, 2, 3]);
39750 * // => false
39751 */
39752 var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
39753 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
39754 !propertyIsEnumerable.call(value, 'callee');
39755 };
39756
39757 /**
39758 * Checks if `value` is classified as an `Array` object.
39759 *
39760 * @static
39761 * @memberOf _
39762 * @since 0.1.0
39763 * @category Lang
39764 * @param {*} value The value to check.
39765 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
39766 * @example
39767 *
39768 * _.isArray([1, 2, 3]);
39769 * // => true
39770 *
39771 * _.isArray(document.body.children);
39772 * // => false
39773 *
39774 * _.isArray('abc');
39775 * // => false
39776 *
39777 * _.isArray(_.noop);
39778 * // => false
39779 */
39780 var isArray = Array.isArray;
39781
39782 /**
39783 * Checks if `value` is classified as an `ArrayBuffer` object.
39784 *
39785 * @static
39786 * @memberOf _
39787 * @since 4.3.0
39788 * @category Lang
39789 * @param {*} value The value to check.
39790 * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
39791 * @example
39792 *
39793 * _.isArrayBuffer(new ArrayBuffer(2));
39794 * // => true
39795 *
39796 * _.isArrayBuffer(new Array(2));
39797 * // => false
39798 */
39799 var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;
39800
39801 /**
39802 * Checks if `value` is array-like. A value is considered array-like if it's
39803 * not a function and has a `value.length` that's an integer greater than or
39804 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
39805 *
39806 * @static
39807 * @memberOf _
39808 * @since 4.0.0
39809 * @category Lang
39810 * @param {*} value The value to check.
39811 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
39812 * @example
39813 *
39814 * _.isArrayLike([1, 2, 3]);
39815 * // => true
39816 *
39817 * _.isArrayLike(document.body.children);
39818 * // => true
39819 *
39820 * _.isArrayLike('abc');
39821 * // => true
39822 *
39823 * _.isArrayLike(_.noop);
39824 * // => false
39825 */
39826 function isArrayLike(value) {
39827 return value != null && isLength(value.length) && !isFunction(value);
39828 }
39829
39830 /**
39831 * This method is like `_.isArrayLike` except that it also checks if `value`
39832 * is an object.
39833 *
39834 * @static
39835 * @memberOf _
39836 * @since 4.0.0
39837 * @category Lang
39838 * @param {*} value The value to check.
39839 * @returns {boolean} Returns `true` if `value` is an array-like object,
39840 * else `false`.
39841 * @example
39842 *
39843 * _.isArrayLikeObject([1, 2, 3]);
39844 * // => true
39845 *
39846 * _.isArrayLikeObject(document.body.children);
39847 * // => true
39848 *
39849 * _.isArrayLikeObject('abc');
39850 * // => false
39851 *
39852 * _.isArrayLikeObject(_.noop);
39853 * // => false
39854 */
39855 function isArrayLikeObject(value) {
39856 return isObjectLike(value) && isArrayLike(value);
39857 }
39858
39859 /**
39860 * Checks if `value` is classified as a boolean primitive or object.
39861 *
39862 * @static
39863 * @memberOf _
39864 * @since 0.1.0
39865 * @category Lang
39866 * @param {*} value The value to check.
39867 * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.
39868 * @example
39869 *
39870 * _.isBoolean(false);
39871 * // => true
39872 *
39873 * _.isBoolean(null);
39874 * // => false
39875 */
39876 function isBoolean(value) {
39877 return value === true || value === false ||
39878 (isObjectLike(value) && baseGetTag(value) == boolTag);
39879 }
39880
39881 /**
39882 * Checks if `value` is a buffer.
39883 *
39884 * @static
39885 * @memberOf _
39886 * @since 4.3.0
39887 * @category Lang
39888 * @param {*} value The value to check.
39889 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
39890 * @example
39891 *
39892 * _.isBuffer(new Buffer(2));
39893 * // => true
39894 *
39895 * _.isBuffer(new Uint8Array(2));
39896 * // => false
39897 */
39898 var isBuffer = nativeIsBuffer || stubFalse;
39899
39900 /**
39901 * Checks if `value` is classified as a `Date` object.
39902 *
39903 * @static
39904 * @memberOf _
39905 * @since 0.1.0
39906 * @category Lang
39907 * @param {*} value The value to check.
39908 * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
39909 * @example
39910 *
39911 * _.isDate(new Date);
39912 * // => true
39913 *
39914 * _.isDate('Mon April 23 2012');
39915 * // => false
39916 */
39917 var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;
39918
39919 /**
39920 * Checks if `value` is likely a DOM element.
39921 *
39922 * @static
39923 * @memberOf _
39924 * @since 0.1.0
39925 * @category Lang
39926 * @param {*} value The value to check.
39927 * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
39928 * @example
39929 *
39930 * _.isElement(document.body);
39931 * // => true
39932 *
39933 * _.isElement('<body>');
39934 * // => false
39935 */
39936 function isElement(value) {
39937 return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
39938 }
39939
39940 /**
39941 * Checks if `value` is an empty object, collection, map, or set.
39942 *
39943 * Objects are considered empty if they have no own enumerable string keyed
39944 * properties.
39945 *
39946 * Array-like values such as `arguments` objects, arrays, buffers, strings, or
39947 * jQuery-like collections are considered empty if they have a `length` of `0`.
39948 * Similarly, maps and sets are considered empty if they have a `size` of `0`.
39949 *
39950 * @static
39951 * @memberOf _
39952 * @since 0.1.0
39953 * @category Lang
39954 * @param {*} value The value to check.
39955 * @returns {boolean} Returns `true` if `value` is empty, else `false`.
39956 * @example
39957 *
39958 * _.isEmpty(null);
39959 * // => true
39960 *
39961 * _.isEmpty(true);
39962 * // => true
39963 *
39964 * _.isEmpty(1);
39965 * // => true
39966 *
39967 * _.isEmpty([1, 2, 3]);
39968 * // => false
39969 *
39970 * _.isEmpty({ 'a': 1 });
39971 * // => false
39972 */
39973 function isEmpty(value) {
39974 if (value == null) {
39975 return true;
39976 }
39977 if (isArrayLike(value) &&
39978 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
39979 isBuffer(value) || isTypedArray(value) || isArguments(value))) {
39980 return !value.length;
39981 }
39982 var tag = getTag(value);
39983 if (tag == mapTag || tag == setTag) {
39984 return !value.size;
39985 }
39986 if (isPrototype(value)) {
39987 return !baseKeys(value).length;
39988 }
39989 for (var key in value) {
39990 if (hasOwnProperty.call(value, key)) {
39991 return false;
39992 }
39993 }
39994 return true;
39995 }
39996
39997 /**
39998 * Performs a deep comparison between two values to determine if they are
39999 * equivalent.
40000 *
40001 * **Note:** This method supports comparing arrays, array buffers, booleans,
40002 * date objects, error objects, maps, numbers, `Object` objects, regexes,
40003 * sets, strings, symbols, and typed arrays. `Object` objects are compared
40004 * by their own, not inherited, enumerable properties. Functions and DOM
40005 * nodes are compared by strict equality, i.e. `===`.
40006 *
40007 * @static
40008 * @memberOf _
40009 * @since 0.1.0
40010 * @category Lang
40011 * @param {*} value The value to compare.
40012 * @param {*} other The other value to compare.
40013 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
40014 * @example
40015 *
40016 * var object = { 'a': 1 };
40017 * var other = { 'a': 1 };
40018 *
40019 * _.isEqual(object, other);
40020 * // => true
40021 *
40022 * object === other;
40023 * // => false
40024 */
40025 function isEqual(value, other) {
40026 return baseIsEqual(value, other);
40027 }
40028
40029 /**
40030 * This method is like `_.isEqual` except that it accepts `customizer` which
40031 * is invoked to compare values. If `customizer` returns `undefined`, comparisons
40032 * are handled by the method instead. The `customizer` is invoked with up to
40033 * six arguments: (objValue, othValue [, index|key, object, other, stack]).
40034 *
40035 * @static
40036 * @memberOf _
40037 * @since 4.0.0
40038 * @category Lang
40039 * @param {*} value The value to compare.
40040 * @param {*} other The other value to compare.
40041 * @param {Function} [customizer] The function to customize comparisons.
40042 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
40043 * @example
40044 *
40045 * function isGreeting(value) {
40046 * return /^h(?:i|ello)$/.test(value);
40047 * }
40048 *
40049 * function customizer(objValue, othValue) {
40050 * if (isGreeting(objValue) && isGreeting(othValue)) {
40051 * return true;
40052 * }
40053 * }
40054 *
40055 * var array = ['hello', 'goodbye'];
40056 * var other = ['hi', 'goodbye'];
40057 *
40058 * _.isEqualWith(array, other, customizer);
40059 * // => true
40060 */
40061 function isEqualWith(value, other, customizer) {
40062 customizer = typeof customizer == 'function' ? customizer : undefined;
40063 var result = customizer ? customizer(value, other) : undefined;
40064 return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;
40065 }
40066
40067 /**
40068 * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
40069 * `SyntaxError`, `TypeError`, or `URIError` object.
40070 *
40071 * @static
40072 * @memberOf _
40073 * @since 3.0.0
40074 * @category Lang
40075 * @param {*} value The value to check.
40076 * @returns {boolean} Returns `true` if `value` is an error object, else `false`.
40077 * @example
40078 *
40079 * _.isError(new Error);
40080 * // => true
40081 *
40082 * _.isError(Error);
40083 * // => false
40084 */
40085 function isError(value) {
40086 if (!isObjectLike(value)) {
40087 return false;
40088 }
40089 var tag = baseGetTag(value);
40090 return tag == errorTag || tag == domExcTag ||
40091 (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
40092 }
40093
40094 /**
40095 * Checks if `value` is a finite primitive number.
40096 *
40097 * **Note:** This method is based on
40098 * [`Number.isFinite`](https://mdn.io/Number/isFinite).
40099 *
40100 * @static
40101 * @memberOf _
40102 * @since 0.1.0
40103 * @category Lang
40104 * @param {*} value The value to check.
40105 * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.
40106 * @example
40107 *
40108 * _.isFinite(3);
40109 * // => true
40110 *
40111 * _.isFinite(Number.MIN_VALUE);
40112 * // => true
40113 *
40114 * _.isFinite(Infinity);
40115 * // => false
40116 *
40117 * _.isFinite('3');
40118 * // => false
40119 */
40120 function isFinite(value) {
40121 return typeof value == 'number' && nativeIsFinite(value);
40122 }
40123
40124 /**
40125 * Checks if `value` is classified as a `Function` object.
40126 *
40127 * @static
40128 * @memberOf _
40129 * @since 0.1.0
40130 * @category Lang
40131 * @param {*} value The value to check.
40132 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
40133 * @example
40134 *
40135 * _.isFunction(_);
40136 * // => true
40137 *
40138 * _.isFunction(/abc/);
40139 * // => false
40140 */
40141 function isFunction(value) {
40142 if (!isObject(value)) {
40143 return false;
40144 }
40145 // The use of `Object#toString` avoids issues with the `typeof` operator
40146 // in Safari 9 which returns 'object' for typed arrays and other constructors.
40147 var tag = baseGetTag(value);
40148 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
40149 }
40150
40151 /**
40152 * Checks if `value` is an integer.
40153 *
40154 * **Note:** This method is based on
40155 * [`Number.isInteger`](https://mdn.io/Number/isInteger).
40156 *
40157 * @static
40158 * @memberOf _
40159 * @since 4.0.0
40160 * @category Lang
40161 * @param {*} value The value to check.
40162 * @returns {boolean} Returns `true` if `value` is an integer, else `false`.
40163 * @example
40164 *
40165 * _.isInteger(3);
40166 * // => true
40167 *
40168 * _.isInteger(Number.MIN_VALUE);
40169 * // => false
40170 *
40171 * _.isInteger(Infinity);
40172 * // => false
40173 *
40174 * _.isInteger('3');
40175 * // => false
40176 */
40177 function isInteger(value) {
40178 return typeof value == 'number' && value == toInteger(value);
40179 }
40180
40181 /**
40182 * Checks if `value` is a valid array-like length.
40183 *
40184 * **Note:** This method is loosely based on
40185 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
40186 *
40187 * @static
40188 * @memberOf _
40189 * @since 4.0.0
40190 * @category Lang
40191 * @param {*} value The value to check.
40192 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
40193 * @example
40194 *
40195 * _.isLength(3);
40196 * // => true
40197 *
40198 * _.isLength(Number.MIN_VALUE);
40199 * // => false
40200 *
40201 * _.isLength(Infinity);
40202 * // => false
40203 *
40204 * _.isLength('3');
40205 * // => false
40206 */
40207 function isLength(value) {
40208 return typeof value == 'number' &&
40209 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
40210 }
40211
40212 /**
40213 * Checks if `value` is the
40214 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
40215 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
40216 *
40217 * @static
40218 * @memberOf _
40219 * @since 0.1.0
40220 * @category Lang
40221 * @param {*} value The value to check.
40222 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
40223 * @example
40224 *
40225 * _.isObject({});
40226 * // => true
40227 *
40228 * _.isObject([1, 2, 3]);
40229 * // => true
40230 *
40231 * _.isObject(_.noop);
40232 * // => true
40233 *
40234 * _.isObject(null);
40235 * // => false
40236 */
40237 function isObject(value) {
40238 var type = typeof value;
40239 return value != null && (type == 'object' || type == 'function');
40240 }
40241
40242 /**
40243 * Checks if `value` is object-like. A value is object-like if it's not `null`
40244 * and has a `typeof` result of "object".
40245 *
40246 * @static
40247 * @memberOf _
40248 * @since 4.0.0
40249 * @category Lang
40250 * @param {*} value The value to check.
40251 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
40252 * @example
40253 *
40254 * _.isObjectLike({});
40255 * // => true
40256 *
40257 * _.isObjectLike([1, 2, 3]);
40258 * // => true
40259 *
40260 * _.isObjectLike(_.noop);
40261 * // => false
40262 *
40263 * _.isObjectLike(null);
40264 * // => false
40265 */
40266 function isObjectLike(value) {
40267 return value != null && typeof value == 'object';
40268 }
40269
40270 /**
40271 * Checks if `value` is classified as a `Map` object.
40272 *
40273 * @static
40274 * @memberOf _
40275 * @since 4.3.0
40276 * @category Lang
40277 * @param {*} value The value to check.
40278 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
40279 * @example
40280 *
40281 * _.isMap(new Map);
40282 * // => true
40283 *
40284 * _.isMap(new WeakMap);
40285 * // => false
40286 */
40287 var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
40288
40289 /**
40290 * Performs a partial deep comparison between `object` and `source` to
40291 * determine if `object` contains equivalent property values.
40292 *
40293 * **Note:** This method is equivalent to `_.matches` when `source` is
40294 * partially applied.
40295 *
40296 * Partial comparisons will match empty array and empty object `source`
40297 * values against any array or object value, respectively. See `_.isEqual`
40298 * for a list of supported value comparisons.
40299 *
40300 * @static
40301 * @memberOf _
40302 * @since 3.0.0
40303 * @category Lang
40304 * @param {Object} object The object to inspect.
40305 * @param {Object} source The object of property values to match.
40306 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
40307 * @example
40308 *
40309 * var object = { 'a': 1, 'b': 2 };
40310 *
40311 * _.isMatch(object, { 'b': 2 });
40312 * // => true
40313 *
40314 * _.isMatch(object, { 'b': 1 });
40315 * // => false
40316 */
40317 function isMatch(object, source) {
40318 return object === source || baseIsMatch(object, source, getMatchData(source));
40319 }
40320
40321 /**
40322 * This method is like `_.isMatch` except that it accepts `customizer` which
40323 * is invoked to compare values. If `customizer` returns `undefined`, comparisons
40324 * are handled by the method instead. The `customizer` is invoked with five
40325 * arguments: (objValue, srcValue, index|key, object, source).
40326 *
40327 * @static
40328 * @memberOf _
40329 * @since 4.0.0
40330 * @category Lang
40331 * @param {Object} object The object to inspect.
40332 * @param {Object} source The object of property values to match.
40333 * @param {Function} [customizer] The function to customize comparisons.
40334 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
40335 * @example
40336 *
40337 * function isGreeting(value) {
40338 * return /^h(?:i|ello)$/.test(value);
40339 * }
40340 *
40341 * function customizer(objValue, srcValue) {
40342 * if (isGreeting(objValue) && isGreeting(srcValue)) {
40343 * return true;
40344 * }
40345 * }
40346 *
40347 * var object = { 'greeting': 'hello' };
40348 * var source = { 'greeting': 'hi' };
40349 *
40350 * _.isMatchWith(object, source, customizer);
40351 * // => true
40352 */
40353 function isMatchWith(object, source, customizer) {
40354 customizer = typeof customizer == 'function' ? customizer : undefined;
40355 return baseIsMatch(object, source, getMatchData(source), customizer);
40356 }
40357
40358 /**
40359 * Checks if `value` is `NaN`.
40360 *
40361 * **Note:** This method is based on
40362 * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as
40363 * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for
40364 * `undefined` and other non-number values.
40365 *
40366 * @static
40367 * @memberOf _
40368 * @since 0.1.0
40369 * @category Lang
40370 * @param {*} value The value to check.
40371 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
40372 * @example
40373 *
40374 * _.isNaN(NaN);
40375 * // => true
40376 *
40377 * _.isNaN(new Number(NaN));
40378 * // => true
40379 *
40380 * isNaN(undefined);
40381 * // => true
40382 *
40383 * _.isNaN(undefined);
40384 * // => false
40385 */
40386 function isNaN(value) {
40387 // An `NaN` primitive is the only value that is not equal to itself.
40388 // Perform the `toStringTag` check first to avoid errors with some
40389 // ActiveX objects in IE.
40390 return isNumber(value) && value != +value;
40391 }
40392
40393 /**
40394 * Checks if `value` is a pristine native function.
40395 *
40396 * **Note:** This method can't reliably detect native functions in the presence
40397 * of the core-js package because core-js circumvents this kind of detection.
40398 * Despite multiple requests, the core-js maintainer has made it clear: any
40399 * attempt to fix the detection will be obstructed. As a result, we're left
40400 * with little choice but to throw an error. Unfortunately, this also affects
40401 * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),
40402 * which rely on core-js.
40403 *
40404 * @static
40405 * @memberOf _
40406 * @since 3.0.0
40407 * @category Lang
40408 * @param {*} value The value to check.
40409 * @returns {boolean} Returns `true` if `value` is a native function,
40410 * else `false`.
40411 * @example
40412 *
40413 * _.isNative(Array.prototype.push);
40414 * // => true
40415 *
40416 * _.isNative(_);
40417 * // => false
40418 */
40419 function isNative(value) {
40420 if (isMaskable(value)) {
40421 throw new Error(CORE_ERROR_TEXT);
40422 }
40423 return baseIsNative(value);
40424 }
40425
40426 /**
40427 * Checks if `value` is `null`.
40428 *
40429 * @static
40430 * @memberOf _
40431 * @since 0.1.0
40432 * @category Lang
40433 * @param {*} value The value to check.
40434 * @returns {boolean} Returns `true` if `value` is `null`, else `false`.
40435 * @example
40436 *
40437 * _.isNull(null);
40438 * // => true
40439 *
40440 * _.isNull(void 0);
40441 * // => false
40442 */
40443 function isNull(value) {
40444 return value === null;
40445 }
40446
40447 /**
40448 * Checks if `value` is `null` or `undefined`.
40449 *
40450 * @static
40451 * @memberOf _
40452 * @since 4.0.0
40453 * @category Lang
40454 * @param {*} value The value to check.
40455 * @returns {boolean} Returns `true` if `value` is nullish, else `false`.
40456 * @example
40457 *
40458 * _.isNil(null);
40459 * // => true
40460 *
40461 * _.isNil(void 0);
40462 * // => true
40463 *
40464 * _.isNil(NaN);
40465 * // => false
40466 */
40467 function isNil(value) {
40468 return value == null;
40469 }
40470
40471 /**
40472 * Checks if `value` is classified as a `Number` primitive or object.
40473 *
40474 * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
40475 * classified as numbers, use the `_.isFinite` method.
40476 *
40477 * @static
40478 * @memberOf _
40479 * @since 0.1.0
40480 * @category Lang
40481 * @param {*} value The value to check.
40482 * @returns {boolean} Returns `true` if `value` is a number, else `false`.
40483 * @example
40484 *
40485 * _.isNumber(3);
40486 * // => true
40487 *
40488 * _.isNumber(Number.MIN_VALUE);
40489 * // => true
40490 *
40491 * _.isNumber(Infinity);
40492 * // => true
40493 *
40494 * _.isNumber('3');
40495 * // => false
40496 */
40497 function isNumber(value) {
40498 return typeof value == 'number' ||
40499 (isObjectLike(value) && baseGetTag(value) == numberTag);
40500 }
40501
40502 /**
40503 * Checks if `value` is a plain object, that is, an object created by the
40504 * `Object` constructor or one with a `[[Prototype]]` of `null`.
40505 *
40506 * @static
40507 * @memberOf _
40508 * @since 0.8.0
40509 * @category Lang
40510 * @param {*} value The value to check.
40511 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
40512 * @example
40513 *
40514 * function Foo() {
40515 * this.a = 1;
40516 * }
40517 *
40518 * _.isPlainObject(new Foo);
40519 * // => false
40520 *
40521 * _.isPlainObject([1, 2, 3]);
40522 * // => false
40523 *
40524 * _.isPlainObject({ 'x': 0, 'y': 0 });
40525 * // => true
40526 *
40527 * _.isPlainObject(Object.create(null));
40528 * // => true
40529 */
40530 function isPlainObject(value) {
40531 if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
40532 return false;
40533 }
40534 var proto = getPrototype(value);
40535 if (proto === null) {
40536 return true;
40537 }
40538 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
40539 return typeof Ctor == 'function' && Ctor instanceof Ctor &&
40540 funcToString.call(Ctor) == objectCtorString;
40541 }
40542
40543 /**
40544 * Checks if `value` is classified as a `RegExp` object.
40545 *
40546 * @static
40547 * @memberOf _
40548 * @since 0.1.0
40549 * @category Lang
40550 * @param {*} value The value to check.
40551 * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
40552 * @example
40553 *
40554 * _.isRegExp(/abc/);
40555 * // => true
40556 *
40557 * _.isRegExp('/abc/');
40558 * // => false
40559 */
40560 var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
40561
40562 /**
40563 * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
40564 * double precision number which isn't the result of a rounded unsafe integer.
40565 *
40566 * **Note:** This method is based on
40567 * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).
40568 *
40569 * @static
40570 * @memberOf _
40571 * @since 4.0.0
40572 * @category Lang
40573 * @param {*} value The value to check.
40574 * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.
40575 * @example
40576 *
40577 * _.isSafeInteger(3);
40578 * // => true
40579 *
40580 * _.isSafeInteger(Number.MIN_VALUE);
40581 * // => false
40582 *
40583 * _.isSafeInteger(Infinity);
40584 * // => false
40585 *
40586 * _.isSafeInteger('3');
40587 * // => false
40588 */
40589 function isSafeInteger(value) {
40590 return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
40591 }
40592
40593 /**
40594 * Checks if `value` is classified as a `Set` object.
40595 *
40596 * @static
40597 * @memberOf _
40598 * @since 4.3.0
40599 * @category Lang
40600 * @param {*} value The value to check.
40601 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
40602 * @example
40603 *
40604 * _.isSet(new Set);
40605 * // => true
40606 *
40607 * _.isSet(new WeakSet);
40608 * // => false
40609 */
40610 var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
40611
40612 /**
40613 * Checks if `value` is classified as a `String` primitive or object.
40614 *
40615 * @static
40616 * @since 0.1.0
40617 * @memberOf _
40618 * @category Lang
40619 * @param {*} value The value to check.
40620 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
40621 * @example
40622 *
40623 * _.isString('abc');
40624 * // => true
40625 *
40626 * _.isString(1);
40627 * // => false
40628 */
40629 function isString(value) {
40630 return typeof value == 'string' ||
40631 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
40632 }
40633
40634 /**
40635 * Checks if `value` is classified as a `Symbol` primitive or object.
40636 *
40637 * @static
40638 * @memberOf _
40639 * @since 4.0.0
40640 * @category Lang
40641 * @param {*} value The value to check.
40642 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
40643 * @example
40644 *
40645 * _.isSymbol(Symbol.iterator);
40646 * // => true
40647 *
40648 * _.isSymbol('abc');
40649 * // => false
40650 */
40651 function isSymbol(value) {
40652 return typeof value == 'symbol' ||
40653 (isObjectLike(value) && baseGetTag(value) == symbolTag);
40654 }
40655
40656 /**
40657 * Checks if `value` is classified as a typed array.
40658 *
40659 * @static
40660 * @memberOf _
40661 * @since 3.0.0
40662 * @category Lang
40663 * @param {*} value The value to check.
40664 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
40665 * @example
40666 *
40667 * _.isTypedArray(new Uint8Array);
40668 * // => true
40669 *
40670 * _.isTypedArray([]);
40671 * // => false
40672 */
40673 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
40674
40675 /**
40676 * Checks if `value` is `undefined`.
40677 *
40678 * @static
40679 * @since 0.1.0
40680 * @memberOf _
40681 * @category Lang
40682 * @param {*} value The value to check.
40683 * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
40684 * @example
40685 *
40686 * _.isUndefined(void 0);
40687 * // => true
40688 *
40689 * _.isUndefined(null);
40690 * // => false
40691 */
40692 function isUndefined(value) {
40693 return value === undefined;
40694 }
40695
40696 /**
40697 * Checks if `value` is classified as a `WeakMap` object.
40698 *
40699 * @static
40700 * @memberOf _
40701 * @since 4.3.0
40702 * @category Lang
40703 * @param {*} value The value to check.
40704 * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.
40705 * @example
40706 *
40707 * _.isWeakMap(new WeakMap);
40708 * // => true
40709 *
40710 * _.isWeakMap(new Map);
40711 * // => false
40712 */
40713 function isWeakMap(value) {
40714 return isObjectLike(value) && getTag(value) == weakMapTag;
40715 }
40716
40717 /**
40718 * Checks if `value` is classified as a `WeakSet` object.
40719 *
40720 * @static
40721 * @memberOf _
40722 * @since 4.3.0
40723 * @category Lang
40724 * @param {*} value The value to check.
40725 * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.
40726 * @example
40727 *
40728 * _.isWeakSet(new WeakSet);
40729 * // => true
40730 *
40731 * _.isWeakSet(new Set);
40732 * // => false
40733 */
40734 function isWeakSet(value) {
40735 return isObjectLike(value) && baseGetTag(value) == weakSetTag;
40736 }
40737
40738 /**
40739 * Checks if `value` is less than `other`.
40740 *
40741 * @static
40742 * @memberOf _
40743 * @since 3.9.0
40744 * @category Lang
40745 * @param {*} value The value to compare.
40746 * @param {*} other The other value to compare.
40747 * @returns {boolean} Returns `true` if `value` is less than `other`,
40748 * else `false`.
40749 * @see _.gt
40750 * @example
40751 *
40752 * _.lt(1, 3);
40753 * // => true
40754 *
40755 * _.lt(3, 3);
40756 * // => false
40757 *
40758 * _.lt(3, 1);
40759 * // => false
40760 */
40761 var lt = createRelationalOperation(baseLt);
40762
40763 /**
40764 * Checks if `value` is less than or equal to `other`.
40765 *
40766 * @static
40767 * @memberOf _
40768 * @since 3.9.0
40769 * @category Lang
40770 * @param {*} value The value to compare.
40771 * @param {*} other The other value to compare.
40772 * @returns {boolean} Returns `true` if `value` is less than or equal to
40773 * `other`, else `false`.
40774 * @see _.gte
40775 * @example
40776 *
40777 * _.lte(1, 3);
40778 * // => true
40779 *
40780 * _.lte(3, 3);
40781 * // => true
40782 *
40783 * _.lte(3, 1);
40784 * // => false
40785 */
40786 var lte = createRelationalOperation(function(value, other) {
40787 return value <= other;
40788 });
40789
40790 /**
40791 * Converts `value` to an array.
40792 *
40793 * @static
40794 * @since 0.1.0
40795 * @memberOf _
40796 * @category Lang
40797 * @param {*} value The value to convert.
40798 * @returns {Array} Returns the converted array.
40799 * @example
40800 *
40801 * _.toArray({ 'a': 1, 'b': 2 });
40802 * // => [1, 2]
40803 *
40804 * _.toArray('abc');
40805 * // => ['a', 'b', 'c']
40806 *
40807 * _.toArray(1);
40808 * // => []
40809 *
40810 * _.toArray(null);
40811 * // => []
40812 */
40813 function toArray(value) {
40814 if (!value) {
40815 return [];
40816 }
40817 if (isArrayLike(value)) {
40818 return isString(value) ? stringToArray(value) : copyArray(value);
40819 }
40820 if (symIterator && value[symIterator]) {
40821 return iteratorToArray(value[symIterator]());
40822 }
40823 var tag = getTag(value),
40824 func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
40825
40826 return func(value);
40827 }
40828
40829 /**
40830 * Converts `value` to a finite number.
40831 *
40832 * @static
40833 * @memberOf _
40834 * @since 4.12.0
40835 * @category Lang
40836 * @param {*} value The value to convert.
40837 * @returns {number} Returns the converted number.
40838 * @example
40839 *
40840 * _.toFinite(3.2);
40841 * // => 3.2
40842 *
40843 * _.toFinite(Number.MIN_VALUE);
40844 * // => 5e-324
40845 *
40846 * _.toFinite(Infinity);
40847 * // => 1.7976931348623157e+308
40848 *
40849 * _.toFinite('3.2');
40850 * // => 3.2
40851 */
40852 function toFinite(value) {
40853 if (!value) {
40854 return value === 0 ? value : 0;
40855 }
40856 value = toNumber(value);
40857 if (value === INFINITY || value === -INFINITY) {
40858 var sign = (value < 0 ? -1 : 1);
40859 return sign * MAX_INTEGER;
40860 }
40861 return value === value ? value : 0;
40862 }
40863
40864 /**
40865 * Converts `value` to an integer.
40866 *
40867 * **Note:** This method is loosely based on
40868 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
40869 *
40870 * @static
40871 * @memberOf _
40872 * @since 4.0.0
40873 * @category Lang
40874 * @param {*} value The value to convert.
40875 * @returns {number} Returns the converted integer.
40876 * @example
40877 *
40878 * _.toInteger(3.2);
40879 * // => 3
40880 *
40881 * _.toInteger(Number.MIN_VALUE);
40882 * // => 0
40883 *
40884 * _.toInteger(Infinity);
40885 * // => 1.7976931348623157e+308
40886 *
40887 * _.toInteger('3.2');
40888 * // => 3
40889 */
40890 function toInteger(value) {
40891 var result = toFinite(value),
40892 remainder = result % 1;
40893
40894 return result === result ? (remainder ? result - remainder : result) : 0;
40895 }
40896
40897 /**
40898 * Converts `value` to an integer suitable for use as the length of an
40899 * array-like object.
40900 *
40901 * **Note:** This method is based on
40902 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
40903 *
40904 * @static
40905 * @memberOf _
40906 * @since 4.0.0
40907 * @category Lang
40908 * @param {*} value The value to convert.
40909 * @returns {number} Returns the converted integer.
40910 * @example
40911 *
40912 * _.toLength(3.2);
40913 * // => 3
40914 *
40915 * _.toLength(Number.MIN_VALUE);
40916 * // => 0
40917 *
40918 * _.toLength(Infinity);
40919 * // => 4294967295
40920 *
40921 * _.toLength('3.2');
40922 * // => 3
40923 */
40924 function toLength(value) {
40925 return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;
40926 }
40927
40928 /**
40929 * Converts `value` to a number.
40930 *
40931 * @static
40932 * @memberOf _
40933 * @since 4.0.0
40934 * @category Lang
40935 * @param {*} value The value to process.
40936 * @returns {number} Returns the number.
40937 * @example
40938 *
40939 * _.toNumber(3.2);
40940 * // => 3.2
40941 *
40942 * _.toNumber(Number.MIN_VALUE);
40943 * // => 5e-324
40944 *
40945 * _.toNumber(Infinity);
40946 * // => Infinity
40947 *
40948 * _.toNumber('3.2');
40949 * // => 3.2
40950 */
40951 function toNumber(value) {
40952 if (typeof value == 'number') {
40953 return value;
40954 }
40955 if (isSymbol(value)) {
40956 return NAN;
40957 }
40958 if (isObject(value)) {
40959 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
40960 value = isObject(other) ? (other + '') : other;
40961 }
40962 if (typeof value != 'string') {
40963 return value === 0 ? value : +value;
40964 }
40965 value = value.replace(reTrim, '');
40966 var isBinary = reIsBinary.test(value);
40967 return (isBinary || reIsOctal.test(value))
40968 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
40969 : (reIsBadHex.test(value) ? NAN : +value);
40970 }
40971
40972 /**
40973 * Converts `value` to a plain object flattening inherited enumerable string
40974 * keyed properties of `value` to own properties of the plain object.
40975 *
40976 * @static
40977 * @memberOf _
40978 * @since 3.0.0
40979 * @category Lang
40980 * @param {*} value The value to convert.
40981 * @returns {Object} Returns the converted plain object.
40982 * @example
40983 *
40984 * function Foo() {
40985 * this.b = 2;
40986 * }
40987 *
40988 * Foo.prototype.c = 3;
40989 *
40990 * _.assign({ 'a': 1 }, new Foo);
40991 * // => { 'a': 1, 'b': 2 }
40992 *
40993 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
40994 * // => { 'a': 1, 'b': 2, 'c': 3 }
40995 */
40996 function toPlainObject(value) {
40997 return copyObject(value, keysIn(value));
40998 }
40999
41000 /**
41001 * Converts `value` to a safe integer. A safe integer can be compared and
41002 * represented correctly.
41003 *
41004 * @static
41005 * @memberOf _
41006 * @since 4.0.0
41007 * @category Lang
41008 * @param {*} value The value to convert.
41009 * @returns {number} Returns the converted integer.
41010 * @example
41011 *
41012 * _.toSafeInteger(3.2);
41013 * // => 3
41014 *
41015 * _.toSafeInteger(Number.MIN_VALUE);
41016 * // => 0
41017 *
41018 * _.toSafeInteger(Infinity);
41019 * // => 9007199254740991
41020 *
41021 * _.toSafeInteger('3.2');
41022 * // => 3
41023 */
41024 function toSafeInteger(value) {
41025 return value
41026 ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)
41027 : (value === 0 ? value : 0);
41028 }
41029
41030 /**
41031 * Converts `value` to a string. An empty string is returned for `null`
41032 * and `undefined` values. The sign of `-0` is preserved.
41033 *
41034 * @static
41035 * @memberOf _
41036 * @since 4.0.0
41037 * @category Lang
41038 * @param {*} value The value to convert.
41039 * @returns {string} Returns the converted string.
41040 * @example
41041 *
41042 * _.toString(null);
41043 * // => ''
41044 *
41045 * _.toString(-0);
41046 * // => '-0'
41047 *
41048 * _.toString([1, 2, 3]);
41049 * // => '1,2,3'
41050 */
41051 function toString(value) {
41052 return value == null ? '' : baseToString(value);
41053 }
41054
41055 /*------------------------------------------------------------------------*/
41056
41057 /**
41058 * Assigns own enumerable string keyed properties of source objects to the
41059 * destination object. Source objects are applied from left to right.
41060 * Subsequent sources overwrite property assignments of previous sources.
41061 *
41062 * **Note:** This method mutates `object` and is loosely based on
41063 * [`Object.assign`](https://mdn.io/Object/assign).
41064 *
41065 * @static
41066 * @memberOf _
41067 * @since 0.10.0
41068 * @category Object
41069 * @param {Object} object The destination object.
41070 * @param {...Object} [sources] The source objects.
41071 * @returns {Object} Returns `object`.
41072 * @see _.assignIn
41073 * @example
41074 *
41075 * function Foo() {
41076 * this.a = 1;
41077 * }
41078 *
41079 * function Bar() {
41080 * this.c = 3;
41081 * }
41082 *
41083 * Foo.prototype.b = 2;
41084 * Bar.prototype.d = 4;
41085 *
41086 * _.assign({ 'a': 0 }, new Foo, new Bar);
41087 * // => { 'a': 1, 'c': 3 }
41088 */
41089 var assign = createAssigner(function(object, source) {
41090 if (isPrototype(source) || isArrayLike(source)) {
41091 copyObject(source, keys(source), object);
41092 return;
41093 }
41094 for (var key in source) {
41095 if (hasOwnProperty.call(source, key)) {
41096 assignValue(object, key, source[key]);
41097 }
41098 }
41099 });
41100
41101 /**
41102 * This method is like `_.assign` except that it iterates over own and
41103 * inherited source properties.
41104 *
41105 * **Note:** This method mutates `object`.
41106 *
41107 * @static
41108 * @memberOf _
41109 * @since 4.0.0
41110 * @alias extend
41111 * @category Object
41112 * @param {Object} object The destination object.
41113 * @param {...Object} [sources] The source objects.
41114 * @returns {Object} Returns `object`.
41115 * @see _.assign
41116 * @example
41117 *
41118 * function Foo() {
41119 * this.a = 1;
41120 * }
41121 *
41122 * function Bar() {
41123 * this.c = 3;
41124 * }
41125 *
41126 * Foo.prototype.b = 2;
41127 * Bar.prototype.d = 4;
41128 *
41129 * _.assignIn({ 'a': 0 }, new Foo, new Bar);
41130 * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
41131 */
41132 var assignIn = createAssigner(function(object, source) {
41133 copyObject(source, keysIn(source), object);
41134 });
41135
41136 /**
41137 * This method is like `_.assignIn` except that it accepts `customizer`
41138 * which is invoked to produce the assigned values. If `customizer` returns
41139 * `undefined`, assignment is handled by the method instead. The `customizer`
41140 * is invoked with five arguments: (objValue, srcValue, key, object, source).
41141 *
41142 * **Note:** This method mutates `object`.
41143 *
41144 * @static
41145 * @memberOf _
41146 * @since 4.0.0
41147 * @alias extendWith
41148 * @category Object
41149 * @param {Object} object The destination object.
41150 * @param {...Object} sources The source objects.
41151 * @param {Function} [customizer] The function to customize assigned values.
41152 * @returns {Object} Returns `object`.
41153 * @see _.assignWith
41154 * @example
41155 *
41156 * function customizer(objValue, srcValue) {
41157 * return _.isUndefined(objValue) ? srcValue : objValue;
41158 * }
41159 *
41160 * var defaults = _.partialRight(_.assignInWith, customizer);
41161 *
41162 * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
41163 * // => { 'a': 1, 'b': 2 }
41164 */
41165 var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {
41166 copyObject(source, keysIn(source), object, customizer);
41167 });
41168
41169 /**
41170 * This method is like `_.assign` except that it accepts `customizer`
41171 * which is invoked to produce the assigned values. If `customizer` returns
41172 * `undefined`, assignment is handled by the method instead. The `customizer`
41173 * is invoked with five arguments: (objValue, srcValue, key, object, source).
41174 *
41175 * **Note:** This method mutates `object`.
41176 *
41177 * @static
41178 * @memberOf _
41179 * @since 4.0.0
41180 * @category Object
41181 * @param {Object} object The destination object.
41182 * @param {...Object} sources The source objects.
41183 * @param {Function} [customizer] The function to customize assigned values.
41184 * @returns {Object} Returns `object`.
41185 * @see _.assignInWith
41186 * @example
41187 *
41188 * function customizer(objValue, srcValue) {
41189 * return _.isUndefined(objValue) ? srcValue : objValue;
41190 * }
41191 *
41192 * var defaults = _.partialRight(_.assignWith, customizer);
41193 *
41194 * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
41195 * // => { 'a': 1, 'b': 2 }
41196 */
41197 var assignWith = createAssigner(function(object, source, srcIndex, customizer) {
41198 copyObject(source, keys(source), object, customizer);
41199 });
41200
41201 /**
41202 * Creates an array of values corresponding to `paths` of `object`.
41203 *
41204 * @static
41205 * @memberOf _
41206 * @since 1.0.0
41207 * @category Object
41208 * @param {Object} object The object to iterate over.
41209 * @param {...(string|string[])} [paths] The property paths to pick.
41210 * @returns {Array} Returns the picked values.
41211 * @example
41212 *
41213 * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
41214 *
41215 * _.at(object, ['a[0].b.c', 'a[1]']);
41216 * // => [3, 4]
41217 */
41218 var at = flatRest(baseAt);
41219
41220 /**
41221 * Creates an object that inherits from the `prototype` object. If a
41222 * `properties` object is given, its own enumerable string keyed properties
41223 * are assigned to the created object.
41224 *
41225 * @static
41226 * @memberOf _
41227 * @since 2.3.0
41228 * @category Object
41229 * @param {Object} prototype The object to inherit from.
41230 * @param {Object} [properties] The properties to assign to the object.
41231 * @returns {Object} Returns the new object.
41232 * @example
41233 *
41234 * function Shape() {
41235 * this.x = 0;
41236 * this.y = 0;
41237 * }
41238 *
41239 * function Circle() {
41240 * Shape.call(this);
41241 * }
41242 *
41243 * Circle.prototype = _.create(Shape.prototype, {
41244 * 'constructor': Circle
41245 * });
41246 *
41247 * var circle = new Circle;
41248 * circle instanceof Circle;
41249 * // => true
41250 *
41251 * circle instanceof Shape;
41252 * // => true
41253 */
41254 function create(prototype, properties) {
41255 var result = baseCreate(prototype);
41256 return properties == null ? result : baseAssign(result, properties);
41257 }
41258
41259 /**
41260 * Assigns own and inherited enumerable string keyed properties of source
41261 * objects to the destination object for all destination properties that
41262 * resolve to `undefined`. Source objects are applied from left to right.
41263 * Once a property is set, additional values of the same property are ignored.
41264 *
41265 * **Note:** This method mutates `object`.
41266 *
41267 * @static
41268 * @since 0.1.0
41269 * @memberOf _
41270 * @category Object
41271 * @param {Object} object The destination object.
41272 * @param {...Object} [sources] The source objects.
41273 * @returns {Object} Returns `object`.
41274 * @see _.defaultsDeep
41275 * @example
41276 *
41277 * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
41278 * // => { 'a': 1, 'b': 2 }
41279 */
41280 var defaults = baseRest(function(object, sources) {
41281 object = Object(object);
41282
41283 var index = -1;
41284 var length = sources.length;
41285 var guard = length > 2 ? sources[2] : undefined;
41286
41287 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
41288 length = 1;
41289 }
41290
41291 while (++index < length) {
41292 var source = sources[index];
41293 var props = keysIn(source);
41294 var propsIndex = -1;
41295 var propsLength = props.length;
41296
41297 while (++propsIndex < propsLength) {
41298 var key = props[propsIndex];
41299 var value = object[key];
41300
41301 if (value === undefined ||
41302 (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
41303 object[key] = source[key];
41304 }
41305 }
41306 }
41307
41308 return object;
41309 });
41310
41311 /**
41312 * This method is like `_.defaults` except that it recursively assigns
41313 * default properties.
41314 *
41315 * **Note:** This method mutates `object`.
41316 *
41317 * @static
41318 * @memberOf _
41319 * @since 3.10.0
41320 * @category Object
41321 * @param {Object} object The destination object.
41322 * @param {...Object} [sources] The source objects.
41323 * @returns {Object} Returns `object`.
41324 * @see _.defaults
41325 * @example
41326 *
41327 * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });
41328 * // => { 'a': { 'b': 2, 'c': 3 } }
41329 */
41330 var defaultsDeep = baseRest(function(args) {
41331 args.push(undefined, customDefaultsMerge);
41332 return apply(mergeWith, undefined, args);
41333 });
41334
41335 /**
41336 * This method is like `_.find` except that it returns the key of the first
41337 * element `predicate` returns truthy for instead of the element itself.
41338 *
41339 * @static
41340 * @memberOf _
41341 * @since 1.1.0
41342 * @category Object
41343 * @param {Object} object The object to inspect.
41344 * @param {Function} [predicate=_.identity] The function invoked per iteration.
41345 * @returns {string|undefined} Returns the key of the matched element,
41346 * else `undefined`.
41347 * @example
41348 *
41349 * var users = {
41350 * 'barney': { 'age': 36, 'active': true },
41351 * 'fred': { 'age': 40, 'active': false },
41352 * 'pebbles': { 'age': 1, 'active': true }
41353 * };
41354 *
41355 * _.findKey(users, function(o) { return o.age < 40; });
41356 * // => 'barney' (iteration order is not guaranteed)
41357 *
41358 * // The `_.matches` iteratee shorthand.
41359 * _.findKey(users, { 'age': 1, 'active': true });
41360 * // => 'pebbles'
41361 *
41362 * // The `_.matchesProperty` iteratee shorthand.
41363 * _.findKey(users, ['active', false]);
41364 * // => 'fred'
41365 *
41366 * // The `_.property` iteratee shorthand.
41367 * _.findKey(users, 'active');
41368 * // => 'barney'
41369 */
41370 function findKey(object, predicate) {
41371 return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);
41372 }
41373
41374 /**
41375 * This method is like `_.findKey` except that it iterates over elements of
41376 * a collection in the opposite order.
41377 *
41378 * @static
41379 * @memberOf _
41380 * @since 2.0.0
41381 * @category Object
41382 * @param {Object} object The object to inspect.
41383 * @param {Function} [predicate=_.identity] The function invoked per iteration.
41384 * @returns {string|undefined} Returns the key of the matched element,
41385 * else `undefined`.
41386 * @example
41387 *
41388 * var users = {
41389 * 'barney': { 'age': 36, 'active': true },
41390 * 'fred': { 'age': 40, 'active': false },
41391 * 'pebbles': { 'age': 1, 'active': true }
41392 * };
41393 *
41394 * _.findLastKey(users, function(o) { return o.age < 40; });
41395 * // => returns 'pebbles' assuming `_.findKey` returns 'barney'
41396 *
41397 * // The `_.matches` iteratee shorthand.
41398 * _.findLastKey(users, { 'age': 36, 'active': true });
41399 * // => 'barney'
41400 *
41401 * // The `_.matchesProperty` iteratee shorthand.
41402 * _.findLastKey(users, ['active', false]);
41403 * // => 'fred'
41404 *
41405 * // The `_.property` iteratee shorthand.
41406 * _.findLastKey(users, 'active');
41407 * // => 'pebbles'
41408 */
41409 function findLastKey(object, predicate) {
41410 return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);
41411 }
41412
41413 /**
41414 * Iterates over own and inherited enumerable string keyed properties of an
41415 * object and invokes `iteratee` for each property. The iteratee is invoked
41416 * with three arguments: (value, key, object). Iteratee functions may exit
41417 * iteration early by explicitly returning `false`.
41418 *
41419 * @static
41420 * @memberOf _
41421 * @since 0.3.0
41422 * @category Object
41423 * @param {Object} object The object to iterate over.
41424 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
41425 * @returns {Object} Returns `object`.
41426 * @see _.forInRight
41427 * @example
41428 *
41429 * function Foo() {
41430 * this.a = 1;
41431 * this.b = 2;
41432 * }
41433 *
41434 * Foo.prototype.c = 3;
41435 *
41436 * _.forIn(new Foo, function(value, key) {
41437 * console.log(key);
41438 * });
41439 * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).
41440 */
41441 function forIn(object, iteratee) {
41442 return object == null
41443 ? object
41444 : baseFor(object, getIteratee(iteratee, 3), keysIn);
41445 }
41446
41447 /**
41448 * This method is like `_.forIn` except that it iterates over properties of
41449 * `object` in the opposite order.
41450 *
41451 * @static
41452 * @memberOf _
41453 * @since 2.0.0
41454 * @category Object
41455 * @param {Object} object The object to iterate over.
41456 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
41457 * @returns {Object} Returns `object`.
41458 * @see _.forIn
41459 * @example
41460 *
41461 * function Foo() {
41462 * this.a = 1;
41463 * this.b = 2;
41464 * }
41465 *
41466 * Foo.prototype.c = 3;
41467 *
41468 * _.forInRight(new Foo, function(value, key) {
41469 * console.log(key);
41470 * });
41471 * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.
41472 */
41473 function forInRight(object, iteratee) {
41474 return object == null
41475 ? object
41476 : baseForRight(object, getIteratee(iteratee, 3), keysIn);
41477 }
41478
41479 /**
41480 * Iterates over own enumerable string keyed properties of an object and
41481 * invokes `iteratee` for each property. The iteratee is invoked with three
41482 * arguments: (value, key, object). Iteratee functions may exit iteration
41483 * early by explicitly returning `false`.
41484 *
41485 * @static
41486 * @memberOf _
41487 * @since 0.3.0
41488 * @category Object
41489 * @param {Object} object The object to iterate over.
41490 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
41491 * @returns {Object} Returns `object`.
41492 * @see _.forOwnRight
41493 * @example
41494 *
41495 * function Foo() {
41496 * this.a = 1;
41497 * this.b = 2;
41498 * }
41499 *
41500 * Foo.prototype.c = 3;
41501 *
41502 * _.forOwn(new Foo, function(value, key) {
41503 * console.log(key);
41504 * });
41505 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
41506 */
41507 function forOwn(object, iteratee) {
41508 return object && baseForOwn(object, getIteratee(iteratee, 3));
41509 }
41510
41511 /**
41512 * This method is like `_.forOwn` except that it iterates over properties of
41513 * `object` in the opposite order.
41514 *
41515 * @static
41516 * @memberOf _
41517 * @since 2.0.0
41518 * @category Object
41519 * @param {Object} object The object to iterate over.
41520 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
41521 * @returns {Object} Returns `object`.
41522 * @see _.forOwn
41523 * @example
41524 *
41525 * function Foo() {
41526 * this.a = 1;
41527 * this.b = 2;
41528 * }
41529 *
41530 * Foo.prototype.c = 3;
41531 *
41532 * _.forOwnRight(new Foo, function(value, key) {
41533 * console.log(key);
41534 * });
41535 * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.
41536 */
41537 function forOwnRight(object, iteratee) {
41538 return object && baseForOwnRight(object, getIteratee(iteratee, 3));
41539 }
41540
41541 /**
41542 * Creates an array of function property names from own enumerable properties
41543 * of `object`.
41544 *
41545 * @static
41546 * @since 0.1.0
41547 * @memberOf _
41548 * @category Object
41549 * @param {Object} object The object to inspect.
41550 * @returns {Array} Returns the function names.
41551 * @see _.functionsIn
41552 * @example
41553 *
41554 * function Foo() {
41555 * this.a = _.constant('a');
41556 * this.b = _.constant('b');
41557 * }
41558 *
41559 * Foo.prototype.c = _.constant('c');
41560 *
41561 * _.functions(new Foo);
41562 * // => ['a', 'b']
41563 */
41564 function functions(object) {
41565 return object == null ? [] : baseFunctions(object, keys(object));
41566 }
41567
41568 /**
41569 * Creates an array of function property names from own and inherited
41570 * enumerable properties of `object`.
41571 *
41572 * @static
41573 * @memberOf _
41574 * @since 4.0.0
41575 * @category Object
41576 * @param {Object} object The object to inspect.
41577 * @returns {Array} Returns the function names.
41578 * @see _.functions
41579 * @example
41580 *
41581 * function Foo() {
41582 * this.a = _.constant('a');
41583 * this.b = _.constant('b');
41584 * }
41585 *
41586 * Foo.prototype.c = _.constant('c');
41587 *
41588 * _.functionsIn(new Foo);
41589 * // => ['a', 'b', 'c']
41590 */
41591 function functionsIn(object) {
41592 return object == null ? [] : baseFunctions(object, keysIn(object));
41593 }
41594
41595 /**
41596 * Gets the value at `path` of `object`. If the resolved value is
41597 * `undefined`, the `defaultValue` is returned in its place.
41598 *
41599 * @static
41600 * @memberOf _
41601 * @since 3.7.0
41602 * @category Object
41603 * @param {Object} object The object to query.
41604 * @param {Array|string} path The path of the property to get.
41605 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
41606 * @returns {*} Returns the resolved value.
41607 * @example
41608 *
41609 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
41610 *
41611 * _.get(object, 'a[0].b.c');
41612 * // => 3
41613 *
41614 * _.get(object, ['a', '0', 'b', 'c']);
41615 * // => 3
41616 *
41617 * _.get(object, 'a.b.c', 'default');
41618 * // => 'default'
41619 */
41620 function get(object, path, defaultValue) {
41621 var result = object == null ? undefined : baseGet(object, path);
41622 return result === undefined ? defaultValue : result;
41623 }
41624
41625 /**
41626 * Checks if `path` is a direct property of `object`.
41627 *
41628 * @static
41629 * @since 0.1.0
41630 * @memberOf _
41631 * @category Object
41632 * @param {Object} object The object to query.
41633 * @param {Array|string} path The path to check.
41634 * @returns {boolean} Returns `true` if `path` exists, else `false`.
41635 * @example
41636 *
41637 * var object = { 'a': { 'b': 2 } };
41638 * var other = _.create({ 'a': _.create({ 'b': 2 }) });
41639 *
41640 * _.has(object, 'a');
41641 * // => true
41642 *
41643 * _.has(object, 'a.b');
41644 * // => true
41645 *
41646 * _.has(object, ['a', 'b']);
41647 * // => true
41648 *
41649 * _.has(other, 'a');
41650 * // => false
41651 */
41652 function has(object, path) {
41653 return object != null && hasPath(object, path, baseHas);
41654 }
41655
41656 /**
41657 * Checks if `path` is a direct or inherited property of `object`.
41658 *
41659 * @static
41660 * @memberOf _
41661 * @since 4.0.0
41662 * @category Object
41663 * @param {Object} object The object to query.
41664 * @param {Array|string} path The path to check.
41665 * @returns {boolean} Returns `true` if `path` exists, else `false`.
41666 * @example
41667 *
41668 * var object = _.create({ 'a': _.create({ 'b': 2 }) });
41669 *
41670 * _.hasIn(object, 'a');
41671 * // => true
41672 *
41673 * _.hasIn(object, 'a.b');
41674 * // => true
41675 *
41676 * _.hasIn(object, ['a', 'b']);
41677 * // => true
41678 *
41679 * _.hasIn(object, 'b');
41680 * // => false
41681 */
41682 function hasIn(object, path) {
41683 return object != null && hasPath(object, path, baseHasIn);
41684 }
41685
41686 /**
41687 * Creates an object composed of the inverted keys and values of `object`.
41688 * If `object` contains duplicate values, subsequent values overwrite
41689 * property assignments of previous values.
41690 *
41691 * @static
41692 * @memberOf _
41693 * @since 0.7.0
41694 * @category Object
41695 * @param {Object} object The object to invert.
41696 * @returns {Object} Returns the new inverted object.
41697 * @example
41698 *
41699 * var object = { 'a': 1, 'b': 2, 'c': 1 };
41700 *
41701 * _.invert(object);
41702 * // => { '1': 'c', '2': 'b' }
41703 */
41704 var invert = createInverter(function(result, value, key) {
41705 if (value != null &&
41706 typeof value.toString != 'function') {
41707 value = nativeObjectToString.call(value);
41708 }
41709
41710 result[value] = key;
41711 }, constant(identity));
41712
41713 /**
41714 * This method is like `_.invert` except that the inverted object is generated
41715 * from the results of running each element of `object` thru `iteratee`. The
41716 * corresponding inverted value of each inverted key is an array of keys
41717 * responsible for generating the inverted value. The iteratee is invoked
41718 * with one argument: (value).
41719 *
41720 * @static
41721 * @memberOf _
41722 * @since 4.1.0
41723 * @category Object
41724 * @param {Object} object The object to invert.
41725 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
41726 * @returns {Object} Returns the new inverted object.
41727 * @example
41728 *
41729 * var object = { 'a': 1, 'b': 2, 'c': 1 };
41730 *
41731 * _.invertBy(object);
41732 * // => { '1': ['a', 'c'], '2': ['b'] }
41733 *
41734 * _.invertBy(object, function(value) {
41735 * return 'group' + value;
41736 * });
41737 * // => { 'group1': ['a', 'c'], 'group2': ['b'] }
41738 */
41739 var invertBy = createInverter(function(result, value, key) {
41740 if (value != null &&
41741 typeof value.toString != 'function') {
41742 value = nativeObjectToString.call(value);
41743 }
41744
41745 if (hasOwnProperty.call(result, value)) {
41746 result[value].push(key);
41747 } else {
41748 result[value] = [key];
41749 }
41750 }, getIteratee);
41751
41752 /**
41753 * Invokes the method at `path` of `object`.
41754 *
41755 * @static
41756 * @memberOf _
41757 * @since 4.0.0
41758 * @category Object
41759 * @param {Object} object The object to query.
41760 * @param {Array|string} path The path of the method to invoke.
41761 * @param {...*} [args] The arguments to invoke the method with.
41762 * @returns {*} Returns the result of the invoked method.
41763 * @example
41764 *
41765 * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };
41766 *
41767 * _.invoke(object, 'a[0].b.c.slice', 1, 3);
41768 * // => [2, 3]
41769 */
41770 var invoke = baseRest(baseInvoke);
41771
41772 /**
41773 * Creates an array of the own enumerable property names of `object`.
41774 *
41775 * **Note:** Non-object values are coerced to objects. See the
41776 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
41777 * for more details.
41778 *
41779 * @static
41780 * @since 0.1.0
41781 * @memberOf _
41782 * @category Object
41783 * @param {Object} object The object to query.
41784 * @returns {Array} Returns the array of property names.
41785 * @example
41786 *
41787 * function Foo() {
41788 * this.a = 1;
41789 * this.b = 2;
41790 * }
41791 *
41792 * Foo.prototype.c = 3;
41793 *
41794 * _.keys(new Foo);
41795 * // => ['a', 'b'] (iteration order is not guaranteed)
41796 *
41797 * _.keys('hi');
41798 * // => ['0', '1']
41799 */
41800 function keys(object) {
41801 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
41802 }
41803
41804 /**
41805 * Creates an array of the own and inherited enumerable property names of `object`.
41806 *
41807 * **Note:** Non-object values are coerced to objects.
41808 *
41809 * @static
41810 * @memberOf _
41811 * @since 3.0.0
41812 * @category Object
41813 * @param {Object} object The object to query.
41814 * @returns {Array} Returns the array of property names.
41815 * @example
41816 *
41817 * function Foo() {
41818 * this.a = 1;
41819 * this.b = 2;
41820 * }
41821 *
41822 * Foo.prototype.c = 3;
41823 *
41824 * _.keysIn(new Foo);
41825 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
41826 */
41827 function keysIn(object) {
41828 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
41829 }
41830
41831 /**
41832 * The opposite of `_.mapValues`; this method creates an object with the
41833 * same values as `object` and keys generated by running each own enumerable
41834 * string keyed property of `object` thru `iteratee`. The iteratee is invoked
41835 * with three arguments: (value, key, object).
41836 *
41837 * @static
41838 * @memberOf _
41839 * @since 3.8.0
41840 * @category Object
41841 * @param {Object} object The object to iterate over.
41842 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
41843 * @returns {Object} Returns the new mapped object.
41844 * @see _.mapValues
41845 * @example
41846 *
41847 * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
41848 * return key + value;
41849 * });
41850 * // => { 'a1': 1, 'b2': 2 }
41851 */
41852 function mapKeys(object, iteratee) {
41853 var result = {};
41854 iteratee = getIteratee(iteratee, 3);
41855
41856 baseForOwn(object, function(value, key, object) {
41857 baseAssignValue(result, iteratee(value, key, object), value);
41858 });
41859 return result;
41860 }
41861
41862 /**
41863 * Creates an object with the same keys as `object` and values generated
41864 * by running each own enumerable string keyed property of `object` thru
41865 * `iteratee`. The iteratee is invoked with three arguments:
41866 * (value, key, object).
41867 *
41868 * @static
41869 * @memberOf _
41870 * @since 2.4.0
41871 * @category Object
41872 * @param {Object} object The object to iterate over.
41873 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
41874 * @returns {Object} Returns the new mapped object.
41875 * @see _.mapKeys
41876 * @example
41877 *
41878 * var users = {
41879 * 'fred': { 'user': 'fred', 'age': 40 },
41880 * 'pebbles': { 'user': 'pebbles', 'age': 1 }
41881 * };
41882 *
41883 * _.mapValues(users, function(o) { return o.age; });
41884 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
41885 *
41886 * // The `_.property` iteratee shorthand.
41887 * _.mapValues(users, 'age');
41888 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
41889 */
41890 function mapValues(object, iteratee) {
41891 var result = {};
41892 iteratee = getIteratee(iteratee, 3);
41893
41894 baseForOwn(object, function(value, key, object) {
41895 baseAssignValue(result, key, iteratee(value, key, object));
41896 });
41897 return result;
41898 }
41899
41900 /**
41901 * This method is like `_.assign` except that it recursively merges own and
41902 * inherited enumerable string keyed properties of source objects into the
41903 * destination object. Source properties that resolve to `undefined` are
41904 * skipped if a destination value exists. Array and plain object properties
41905 * are merged recursively. Other objects and value types are overridden by
41906 * assignment. Source objects are applied from left to right. Subsequent
41907 * sources overwrite property assignments of previous sources.
41908 *
41909 * **Note:** This method mutates `object`.
41910 *
41911 * @static
41912 * @memberOf _
41913 * @since 0.5.0
41914 * @category Object
41915 * @param {Object} object The destination object.
41916 * @param {...Object} [sources] The source objects.
41917 * @returns {Object} Returns `object`.
41918 * @example
41919 *
41920 * var object = {
41921 * 'a': [{ 'b': 2 }, { 'd': 4 }]
41922 * };
41923 *
41924 * var other = {
41925 * 'a': [{ 'c': 3 }, { 'e': 5 }]
41926 * };
41927 *
41928 * _.merge(object, other);
41929 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
41930 */
41931 var merge = createAssigner(function(object, source, srcIndex) {
41932 baseMerge(object, source, srcIndex);
41933 });
41934
41935 /**
41936 * This method is like `_.merge` except that it accepts `customizer` which
41937 * is invoked to produce the merged values of the destination and source
41938 * properties. If `customizer` returns `undefined`, merging is handled by the
41939 * method instead. The `customizer` is invoked with six arguments:
41940 * (objValue, srcValue, key, object, source, stack).
41941 *
41942 * **Note:** This method mutates `object`.
41943 *
41944 * @static
41945 * @memberOf _
41946 * @since 4.0.0
41947 * @category Object
41948 * @param {Object} object The destination object.
41949 * @param {...Object} sources The source objects.
41950 * @param {Function} customizer The function to customize assigned values.
41951 * @returns {Object} Returns `object`.
41952 * @example
41953 *
41954 * function customizer(objValue, srcValue) {
41955 * if (_.isArray(objValue)) {
41956 * return objValue.concat(srcValue);
41957 * }
41958 * }
41959 *
41960 * var object = { 'a': [1], 'b': [2] };
41961 * var other = { 'a': [3], 'b': [4] };
41962 *
41963 * _.mergeWith(object, other, customizer);
41964 * // => { 'a': [1, 3], 'b': [2, 4] }
41965 */
41966 var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
41967 baseMerge(object, source, srcIndex, customizer);
41968 });
41969
41970 /**
41971 * The opposite of `_.pick`; this method creates an object composed of the
41972 * own and inherited enumerable property paths of `object` that are not omitted.
41973 *
41974 * **Note:** This method is considerably slower than `_.pick`.
41975 *
41976 * @static
41977 * @since 0.1.0
41978 * @memberOf _
41979 * @category Object
41980 * @param {Object} object The source object.
41981 * @param {...(string|string[])} [paths] The property paths to omit.
41982 * @returns {Object} Returns the new object.
41983 * @example
41984 *
41985 * var object = { 'a': 1, 'b': '2', 'c': 3 };
41986 *
41987 * _.omit(object, ['a', 'c']);
41988 * // => { 'b': '2' }
41989 */
41990 var omit = flatRest(function(object, paths) {
41991 var result = {};
41992 if (object == null) {
41993 return result;
41994 }
41995 var isDeep = false;
41996 paths = arrayMap(paths, function(path) {
41997 path = castPath(path, object);
41998 isDeep || (isDeep = path.length > 1);
41999 return path;
42000 });
42001 copyObject(object, getAllKeysIn(object), result);
42002 if (isDeep) {
42003 result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
42004 }
42005 var length = paths.length;
42006 while (length--) {
42007 baseUnset(result, paths[length]);
42008 }
42009 return result;
42010 });
42011
42012 /**
42013 * The opposite of `_.pickBy`; this method creates an object composed of
42014 * the own and inherited enumerable string keyed properties of `object` that
42015 * `predicate` doesn't return truthy for. The predicate is invoked with two
42016 * arguments: (value, key).
42017 *
42018 * @static
42019 * @memberOf _
42020 * @since 4.0.0
42021 * @category Object
42022 * @param {Object} object The source object.
42023 * @param {Function} [predicate=_.identity] The function invoked per property.
42024 * @returns {Object} Returns the new object.
42025 * @example
42026 *
42027 * var object = { 'a': 1, 'b': '2', 'c': 3 };
42028 *
42029 * _.omitBy(object, _.isNumber);
42030 * // => { 'b': '2' }
42031 */
42032 function omitBy(object, predicate) {
42033 return pickBy(object, negate(getIteratee(predicate)));
42034 }
42035
42036 /**
42037 * Creates an object composed of the picked `object` properties.
42038 *
42039 * @static
42040 * @since 0.1.0
42041 * @memberOf _
42042 * @category Object
42043 * @param {Object} object The source object.
42044 * @param {...(string|string[])} [paths] The property paths to pick.
42045 * @returns {Object} Returns the new object.
42046 * @example
42047 *
42048 * var object = { 'a': 1, 'b': '2', 'c': 3 };
42049 *
42050 * _.pick(object, ['a', 'c']);
42051 * // => { 'a': 1, 'c': 3 }
42052 */
42053 var pick = flatRest(function(object, paths) {
42054 return object == null ? {} : basePick(object, paths);
42055 });
42056
42057 /**
42058 * Creates an object composed of the `object` properties `predicate` returns
42059 * truthy for. The predicate is invoked with two arguments: (value, key).
42060 *
42061 * @static
42062 * @memberOf _
42063 * @since 4.0.0
42064 * @category Object
42065 * @param {Object} object The source object.
42066 * @param {Function} [predicate=_.identity] The function invoked per property.
42067 * @returns {Object} Returns the new object.
42068 * @example
42069 *
42070 * var object = { 'a': 1, 'b': '2', 'c': 3 };
42071 *
42072 * _.pickBy(object, _.isNumber);
42073 * // => { 'a': 1, 'c': 3 }
42074 */
42075 function pickBy(object, predicate) {
42076 if (object == null) {
42077 return {};
42078 }
42079 var props = arrayMap(getAllKeysIn(object), function(prop) {
42080 return [prop];
42081 });
42082 predicate = getIteratee(predicate);
42083 return basePickBy(object, props, function(value, path) {
42084 return predicate(value, path[0]);
42085 });
42086 }
42087
42088 /**
42089 * This method is like `_.get` except that if the resolved value is a
42090 * function it's invoked with the `this` binding of its parent object and
42091 * its result is returned.
42092 *
42093 * @static
42094 * @since 0.1.0
42095 * @memberOf _
42096 * @category Object
42097 * @param {Object} object The object to query.
42098 * @param {Array|string} path The path of the property to resolve.
42099 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
42100 * @returns {*} Returns the resolved value.
42101 * @example
42102 *
42103 * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };
42104 *
42105 * _.result(object, 'a[0].b.c1');
42106 * // => 3
42107 *
42108 * _.result(object, 'a[0].b.c2');
42109 * // => 4
42110 *
42111 * _.result(object, 'a[0].b.c3', 'default');
42112 * // => 'default'
42113 *
42114 * _.result(object, 'a[0].b.c3', _.constant('default'));
42115 * // => 'default'
42116 */
42117 function result(object, path, defaultValue) {
42118 path = castPath(path, object);
42119
42120 var index = -1,
42121 length = path.length;
42122
42123 // Ensure the loop is entered when path is empty.
42124 if (!length) {
42125 length = 1;
42126 object = undefined;
42127 }
42128 while (++index < length) {
42129 var value = object == null ? undefined : object[toKey(path[index])];
42130 if (value === undefined) {
42131 index = length;
42132 value = defaultValue;
42133 }
42134 object = isFunction(value) ? value.call(object) : value;
42135 }
42136 return object;
42137 }
42138
42139 /**
42140 * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
42141 * it's created. Arrays are created for missing index properties while objects
42142 * are created for all other missing properties. Use `_.setWith` to customize
42143 * `path` creation.
42144 *
42145 * **Note:** This method mutates `object`.
42146 *
42147 * @static
42148 * @memberOf _
42149 * @since 3.7.0
42150 * @category Object
42151 * @param {Object} object The object to modify.
42152 * @param {Array|string} path The path of the property to set.
42153 * @param {*} value The value to set.
42154 * @returns {Object} Returns `object`.
42155 * @example
42156 *
42157 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
42158 *
42159 * _.set(object, 'a[0].b.c', 4);
42160 * console.log(object.a[0].b.c);
42161 * // => 4
42162 *
42163 * _.set(object, ['x', '0', 'y', 'z'], 5);
42164 * console.log(object.x[0].y.z);
42165 * // => 5
42166 */
42167 function set(object, path, value) {
42168 return object == null ? object : baseSet(object, path, value);
42169 }
42170
42171 /**
42172 * This method is like `_.set` except that it accepts `customizer` which is
42173 * invoked to produce the objects of `path`. If `customizer` returns `undefined`
42174 * path creation is handled by the method instead. The `customizer` is invoked
42175 * with three arguments: (nsValue, key, nsObject).
42176 *
42177 * **Note:** This method mutates `object`.
42178 *
42179 * @static
42180 * @memberOf _
42181 * @since 4.0.0
42182 * @category Object
42183 * @param {Object} object The object to modify.
42184 * @param {Array|string} path The path of the property to set.
42185 * @param {*} value The value to set.
42186 * @param {Function} [customizer] The function to customize assigned values.
42187 * @returns {Object} Returns `object`.
42188 * @example
42189 *
42190 * var object = {};
42191 *
42192 * _.setWith(object, '[0][1]', 'a', Object);
42193 * // => { '0': { '1': 'a' } }
42194 */
42195 function setWith(object, path, value, customizer) {
42196 customizer = typeof customizer == 'function' ? customizer : undefined;
42197 return object == null ? object : baseSet(object, path, value, customizer);
42198 }
42199
42200 /**
42201 * Creates an array of own enumerable string keyed-value pairs for `object`
42202 * which can be consumed by `_.fromPairs`. If `object` is a map or set, its
42203 * entries are returned.
42204 *
42205 * @static
42206 * @memberOf _
42207 * @since 4.0.0
42208 * @alias entries
42209 * @category Object
42210 * @param {Object} object The object to query.
42211 * @returns {Array} Returns the key-value pairs.
42212 * @example
42213 *
42214 * function Foo() {
42215 * this.a = 1;
42216 * this.b = 2;
42217 * }
42218 *
42219 * Foo.prototype.c = 3;
42220 *
42221 * _.toPairs(new Foo);
42222 * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
42223 */
42224 var toPairs = createToPairs(keys);
42225
42226 /**
42227 * Creates an array of own and inherited enumerable string keyed-value pairs
42228 * for `object` which can be consumed by `_.fromPairs`. If `object` is a map
42229 * or set, its entries are returned.
42230 *
42231 * @static
42232 * @memberOf _
42233 * @since 4.0.0
42234 * @alias entriesIn
42235 * @category Object
42236 * @param {Object} object The object to query.
42237 * @returns {Array} Returns the key-value pairs.
42238 * @example
42239 *
42240 * function Foo() {
42241 * this.a = 1;
42242 * this.b = 2;
42243 * }
42244 *
42245 * Foo.prototype.c = 3;
42246 *
42247 * _.toPairsIn(new Foo);
42248 * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)
42249 */
42250 var toPairsIn = createToPairs(keysIn);
42251
42252 /**
42253 * An alternative to `_.reduce`; this method transforms `object` to a new
42254 * `accumulator` object which is the result of running each of its own
42255 * enumerable string keyed properties thru `iteratee`, with each invocation
42256 * potentially mutating the `accumulator` object. If `accumulator` is not
42257 * provided, a new object with the same `[[Prototype]]` will be used. The
42258 * iteratee is invoked with four arguments: (accumulator, value, key, object).
42259 * Iteratee functions may exit iteration early by explicitly returning `false`.
42260 *
42261 * @static
42262 * @memberOf _
42263 * @since 1.3.0
42264 * @category Object
42265 * @param {Object} object The object to iterate over.
42266 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
42267 * @param {*} [accumulator] The custom accumulator value.
42268 * @returns {*} Returns the accumulated value.
42269 * @example
42270 *
42271 * _.transform([2, 3, 4], function(result, n) {
42272 * result.push(n *= n);
42273 * return n % 2 == 0;
42274 * }, []);
42275 * // => [4, 9]
42276 *
42277 * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
42278 * (result[value] || (result[value] = [])).push(key);
42279 * }, {});
42280 * // => { '1': ['a', 'c'], '2': ['b'] }
42281 */
42282 function transform(object, iteratee, accumulator) {
42283 var isArr = isArray(object),
42284 isArrLike = isArr || isBuffer(object) || isTypedArray(object);
42285
42286 iteratee = getIteratee(iteratee, 4);
42287 if (accumulator == null) {
42288 var Ctor = object && object.constructor;
42289 if (isArrLike) {
42290 accumulator = isArr ? new Ctor : [];
42291 }
42292 else if (isObject(object)) {
42293 accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
42294 }
42295 else {
42296 accumulator = {};
42297 }
42298 }
42299 (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {
42300 return iteratee(accumulator, value, index, object);
42301 });
42302 return accumulator;
42303 }
42304
42305 /**
42306 * Removes the property at `path` of `object`.
42307 *
42308 * **Note:** This method mutates `object`.
42309 *
42310 * @static
42311 * @memberOf _
42312 * @since 4.0.0
42313 * @category Object
42314 * @param {Object} object The object to modify.
42315 * @param {Array|string} path The path of the property to unset.
42316 * @returns {boolean} Returns `true` if the property is deleted, else `false`.
42317 * @example
42318 *
42319 * var object = { 'a': [{ 'b': { 'c': 7 } }] };
42320 * _.unset(object, 'a[0].b.c');
42321 * // => true
42322 *
42323 * console.log(object);
42324 * // => { 'a': [{ 'b': {} }] };
42325 *
42326 * _.unset(object, ['a', '0', 'b', 'c']);
42327 * // => true
42328 *
42329 * console.log(object);
42330 * // => { 'a': [{ 'b': {} }] };
42331 */
42332 function unset(object, path) {
42333 return object == null ? true : baseUnset(object, path);
42334 }
42335
42336 /**
42337 * This method is like `_.set` except that accepts `updater` to produce the
42338 * value to set. Use `_.updateWith` to customize `path` creation. The `updater`
42339 * is invoked with one argument: (value).
42340 *
42341 * **Note:** This method mutates `object`.
42342 *
42343 * @static
42344 * @memberOf _
42345 * @since 4.6.0
42346 * @category Object
42347 * @param {Object} object The object to modify.
42348 * @param {Array|string} path The path of the property to set.
42349 * @param {Function} updater The function to produce the updated value.
42350 * @returns {Object} Returns `object`.
42351 * @example
42352 *
42353 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
42354 *
42355 * _.update(object, 'a[0].b.c', function(n) { return n * n; });
42356 * console.log(object.a[0].b.c);
42357 * // => 9
42358 *
42359 * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
42360 * console.log(object.x[0].y.z);
42361 * // => 0
42362 */
42363 function update(object, path, updater) {
42364 return object == null ? object : baseUpdate(object, path, castFunction(updater));
42365 }
42366
42367 /**
42368 * This method is like `_.update` except that it accepts `customizer` which is
42369 * invoked to produce the objects of `path`. If `customizer` returns `undefined`
42370 * path creation is handled by the method instead. The `customizer` is invoked
42371 * with three arguments: (nsValue, key, nsObject).
42372 *
42373 * **Note:** This method mutates `object`.
42374 *
42375 * @static
42376 * @memberOf _
42377 * @since 4.6.0
42378 * @category Object
42379 * @param {Object} object The object to modify.
42380 * @param {Array|string} path The path of the property to set.
42381 * @param {Function} updater The function to produce the updated value.
42382 * @param {Function} [customizer] The function to customize assigned values.
42383 * @returns {Object} Returns `object`.
42384 * @example
42385 *
42386 * var object = {};
42387 *
42388 * _.updateWith(object, '[0][1]', _.constant('a'), Object);
42389 * // => { '0': { '1': 'a' } }
42390 */
42391 function updateWith(object, path, updater, customizer) {
42392 customizer = typeof customizer == 'function' ? customizer : undefined;
42393 return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);
42394 }
42395
42396 /**
42397 * Creates an array of the own enumerable string keyed property values of `object`.
42398 *
42399 * **Note:** Non-object values are coerced to objects.
42400 *
42401 * @static
42402 * @since 0.1.0
42403 * @memberOf _
42404 * @category Object
42405 * @param {Object} object The object to query.
42406 * @returns {Array} Returns the array of property values.
42407 * @example
42408 *
42409 * function Foo() {
42410 * this.a = 1;
42411 * this.b = 2;
42412 * }
42413 *
42414 * Foo.prototype.c = 3;
42415 *
42416 * _.values(new Foo);
42417 * // => [1, 2] (iteration order is not guaranteed)
42418 *
42419 * _.values('hi');
42420 * // => ['h', 'i']
42421 */
42422 function values(object) {
42423 return object == null ? [] : baseValues(object, keys(object));
42424 }
42425
42426 /**
42427 * Creates an array of the own and inherited enumerable string keyed property
42428 * values of `object`.
42429 *
42430 * **Note:** Non-object values are coerced to objects.
42431 *
42432 * @static
42433 * @memberOf _
42434 * @since 3.0.0
42435 * @category Object
42436 * @param {Object} object The object to query.
42437 * @returns {Array} Returns the array of property values.
42438 * @example
42439 *
42440 * function Foo() {
42441 * this.a = 1;
42442 * this.b = 2;
42443 * }
42444 *
42445 * Foo.prototype.c = 3;
42446 *
42447 * _.valuesIn(new Foo);
42448 * // => [1, 2, 3] (iteration order is not guaranteed)
42449 */
42450 function valuesIn(object) {
42451 return object == null ? [] : baseValues(object, keysIn(object));
42452 }
42453
42454 /*------------------------------------------------------------------------*/
42455
42456 /**
42457 * Clamps `number` within the inclusive `lower` and `upper` bounds.
42458 *
42459 * @static
42460 * @memberOf _
42461 * @since 4.0.0
42462 * @category Number
42463 * @param {number} number The number to clamp.
42464 * @param {number} [lower] The lower bound.
42465 * @param {number} upper The upper bound.
42466 * @returns {number} Returns the clamped number.
42467 * @example
42468 *
42469 * _.clamp(-10, -5, 5);
42470 * // => -5
42471 *
42472 * _.clamp(10, -5, 5);
42473 * // => 5
42474 */
42475 function clamp(number, lower, upper) {
42476 if (upper === undefined) {
42477 upper = lower;
42478 lower = undefined;
42479 }
42480 if (upper !== undefined) {
42481 upper = toNumber(upper);
42482 upper = upper === upper ? upper : 0;
42483 }
42484 if (lower !== undefined) {
42485 lower = toNumber(lower);
42486 lower = lower === lower ? lower : 0;
42487 }
42488 return baseClamp(toNumber(number), lower, upper);
42489 }
42490
42491 /**
42492 * Checks if `n` is between `start` and up to, but not including, `end`. If
42493 * `end` is not specified, it's set to `start` with `start` then set to `0`.
42494 * If `start` is greater than `end` the params are swapped to support
42495 * negative ranges.
42496 *
42497 * @static
42498 * @memberOf _
42499 * @since 3.3.0
42500 * @category Number
42501 * @param {number} number The number to check.
42502 * @param {number} [start=0] The start of the range.
42503 * @param {number} end The end of the range.
42504 * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
42505 * @see _.range, _.rangeRight
42506 * @example
42507 *
42508 * _.inRange(3, 2, 4);
42509 * // => true
42510 *
42511 * _.inRange(4, 8);
42512 * // => true
42513 *
42514 * _.inRange(4, 2);
42515 * // => false
42516 *
42517 * _.inRange(2, 2);
42518 * // => false
42519 *
42520 * _.inRange(1.2, 2);
42521 * // => true
42522 *
42523 * _.inRange(5.2, 4);
42524 * // => false
42525 *
42526 * _.inRange(-3, -2, -6);
42527 * // => true
42528 */
42529 function inRange(number, start, end) {
42530 start = toFinite(start);
42531 if (end === undefined) {
42532 end = start;
42533 start = 0;
42534 } else {
42535 end = toFinite(end);
42536 }
42537 number = toNumber(number);
42538 return baseInRange(number, start, end);
42539 }
42540
42541 /**
42542 * Produces a random number between the inclusive `lower` and `upper` bounds.
42543 * If only one argument is provided a number between `0` and the given number
42544 * is returned. If `floating` is `true`, or either `lower` or `upper` are
42545 * floats, a floating-point number is returned instead of an integer.
42546 *
42547 * **Note:** JavaScript follows the IEEE-754 standard for resolving
42548 * floating-point values which can produce unexpected results.
42549 *
42550 * @static
42551 * @memberOf _
42552 * @since 0.7.0
42553 * @category Number
42554 * @param {number} [lower=0] The lower bound.
42555 * @param {number} [upper=1] The upper bound.
42556 * @param {boolean} [floating] Specify returning a floating-point number.
42557 * @returns {number} Returns the random number.
42558 * @example
42559 *
42560 * _.random(0, 5);
42561 * // => an integer between 0 and 5
42562 *
42563 * _.random(5);
42564 * // => also an integer between 0 and 5
42565 *
42566 * _.random(5, true);
42567 * // => a floating-point number between 0 and 5
42568 *
42569 * _.random(1.2, 5.2);
42570 * // => a floating-point number between 1.2 and 5.2
42571 */
42572 function random(lower, upper, floating) {
42573 if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {
42574 upper = floating = undefined;
42575 }
42576 if (floating === undefined) {
42577 if (typeof upper == 'boolean') {
42578 floating = upper;
42579 upper = undefined;
42580 }
42581 else if (typeof lower == 'boolean') {
42582 floating = lower;
42583 lower = undefined;
42584 }
42585 }
42586 if (lower === undefined && upper === undefined) {
42587 lower = 0;
42588 upper = 1;
42589 }
42590 else {
42591 lower = toFinite(lower);
42592 if (upper === undefined) {
42593 upper = lower;
42594 lower = 0;
42595 } else {
42596 upper = toFinite(upper);
42597 }
42598 }
42599 if (lower > upper) {
42600 var temp = lower;
42601 lower = upper;
42602 upper = temp;
42603 }
42604 if (floating || lower % 1 || upper % 1) {
42605 var rand = nativeRandom();
42606 return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);
42607 }
42608 return baseRandom(lower, upper);
42609 }
42610
42611 /*------------------------------------------------------------------------*/
42612
42613 /**
42614 * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).
42615 *
42616 * @static
42617 * @memberOf _
42618 * @since 3.0.0
42619 * @category String
42620 * @param {string} [string=''] The string to convert.
42621 * @returns {string} Returns the camel cased string.
42622 * @example
42623 *
42624 * _.camelCase('Foo Bar');
42625 * // => 'fooBar'
42626 *
42627 * _.camelCase('--foo-bar--');
42628 * // => 'fooBar'
42629 *
42630 * _.camelCase('__FOO_BAR__');
42631 * // => 'fooBar'
42632 */
42633 var camelCase = createCompounder(function(result, word, index) {
42634 word = word.toLowerCase();
42635 return result + (index ? capitalize(word) : word);
42636 });
42637
42638 /**
42639 * Converts the first character of `string` to upper case and the remaining
42640 * to lower case.
42641 *
42642 * @static
42643 * @memberOf _
42644 * @since 3.0.0
42645 * @category String
42646 * @param {string} [string=''] The string to capitalize.
42647 * @returns {string} Returns the capitalized string.
42648 * @example
42649 *
42650 * _.capitalize('FRED');
42651 * // => 'Fred'
42652 */
42653 function capitalize(string) {
42654 return upperFirst(toString(string).toLowerCase());
42655 }
42656
42657 /**
42658 * Deburrs `string` by converting
42659 * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
42660 * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)
42661 * letters to basic Latin letters and removing
42662 * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
42663 *
42664 * @static
42665 * @memberOf _
42666 * @since 3.0.0
42667 * @category String
42668 * @param {string} [string=''] The string to deburr.
42669 * @returns {string} Returns the deburred string.
42670 * @example
42671 *
42672 * _.deburr('déjà vu');
42673 * // => 'deja vu'
42674 */
42675 function deburr(string) {
42676 string = toString(string);
42677 return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');
42678 }
42679
42680 /**
42681 * Checks if `string` ends with the given target string.
42682 *
42683 * @static
42684 * @memberOf _
42685 * @since 3.0.0
42686 * @category String
42687 * @param {string} [string=''] The string to inspect.
42688 * @param {string} [target] The string to search for.
42689 * @param {number} [position=string.length] The position to search up to.
42690 * @returns {boolean} Returns `true` if `string` ends with `target`,
42691 * else `false`.
42692 * @example
42693 *
42694 * _.endsWith('abc', 'c');
42695 * // => true
42696 *
42697 * _.endsWith('abc', 'b');
42698 * // => false
42699 *
42700 * _.endsWith('abc', 'b', 2);
42701 * // => true
42702 */
42703 function endsWith(string, target, position) {
42704 string = toString(string);
42705 target = baseToString(target);
42706
42707 var length = string.length;
42708 position = position === undefined
42709 ? length
42710 : baseClamp(toInteger(position), 0, length);
42711
42712 var end = position;
42713 position -= target.length;
42714 return position >= 0 && string.slice(position, end) == target;
42715 }
42716
42717 /**
42718 * Converts the characters "&", "<", ">", '"', and "'" in `string` to their
42719 * corresponding HTML entities.
42720 *
42721 * **Note:** No other characters are escaped. To escape additional
42722 * characters use a third-party library like [_he_](https://mths.be/he).
42723 *
42724 * Though the ">" character is escaped for symmetry, characters like
42725 * ">" and "/" don't need escaping in HTML and have no special meaning
42726 * unless they're part of a tag or unquoted attribute value. See
42727 * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)
42728 * (under "semi-related fun fact") for more details.
42729 *
42730 * When working with HTML you should always
42731 * [quote attribute values](http://wonko.com/post/html-escaping) to reduce
42732 * XSS vectors.
42733 *
42734 * @static
42735 * @since 0.1.0
42736 * @memberOf _
42737 * @category String
42738 * @param {string} [string=''] The string to escape.
42739 * @returns {string} Returns the escaped string.
42740 * @example
42741 *
42742 * _.escape('fred, barney, & pebbles');
42743 * // => 'fred, barney, &amp; pebbles'
42744 */
42745 function escape(string) {
42746 string = toString(string);
42747 return (string && reHasUnescapedHtml.test(string))
42748 ? string.replace(reUnescapedHtml, escapeHtmlChar)
42749 : string;
42750 }
42751
42752 /**
42753 * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
42754 * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
42755 *
42756 * @static
42757 * @memberOf _
42758 * @since 3.0.0
42759 * @category String
42760 * @param {string} [string=''] The string to escape.
42761 * @returns {string} Returns the escaped string.
42762 * @example
42763 *
42764 * _.escapeRegExp('[lodash](https://lodash.com/)');
42765 * // => '\[lodash\]\(https://lodash\.com/\)'
42766 */
42767 function escapeRegExp(string) {
42768 string = toString(string);
42769 return (string && reHasRegExpChar.test(string))
42770 ? string.replace(reRegExpChar, '\\$&')
42771 : string;
42772 }
42773
42774 /**
42775 * Converts `string` to
42776 * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
42777 *
42778 * @static
42779 * @memberOf _
42780 * @since 3.0.0
42781 * @category String
42782 * @param {string} [string=''] The string to convert.
42783 * @returns {string} Returns the kebab cased string.
42784 * @example
42785 *
42786 * _.kebabCase('Foo Bar');
42787 * // => 'foo-bar'
42788 *
42789 * _.kebabCase('fooBar');
42790 * // => 'foo-bar'
42791 *
42792 * _.kebabCase('__FOO_BAR__');
42793 * // => 'foo-bar'
42794 */
42795 var kebabCase = createCompounder(function(result, word, index) {
42796 return result + (index ? '-' : '') + word.toLowerCase();
42797 });
42798
42799 /**
42800 * Converts `string`, as space separated words, to lower case.
42801 *
42802 * @static
42803 * @memberOf _
42804 * @since 4.0.0
42805 * @category String
42806 * @param {string} [string=''] The string to convert.
42807 * @returns {string} Returns the lower cased string.
42808 * @example
42809 *
42810 * _.lowerCase('--Foo-Bar--');
42811 * // => 'foo bar'
42812 *
42813 * _.lowerCase('fooBar');
42814 * // => 'foo bar'
42815 *
42816 * _.lowerCase('__FOO_BAR__');
42817 * // => 'foo bar'
42818 */
42819 var lowerCase = createCompounder(function(result, word, index) {
42820 return result + (index ? ' ' : '') + word.toLowerCase();
42821 });
42822
42823 /**
42824 * Converts the first character of `string` to lower case.
42825 *
42826 * @static
42827 * @memberOf _
42828 * @since 4.0.0
42829 * @category String
42830 * @param {string} [string=''] The string to convert.
42831 * @returns {string} Returns the converted string.
42832 * @example
42833 *
42834 * _.lowerFirst('Fred');
42835 * // => 'fred'
42836 *
42837 * _.lowerFirst('FRED');
42838 * // => 'fRED'
42839 */
42840 var lowerFirst = createCaseFirst('toLowerCase');
42841
42842 /**
42843 * Pads `string` on the left and right sides if it's shorter than `length`.
42844 * Padding characters are truncated if they can't be evenly divided by `length`.
42845 *
42846 * @static
42847 * @memberOf _
42848 * @since 3.0.0
42849 * @category String
42850 * @param {string} [string=''] The string to pad.
42851 * @param {number} [length=0] The padding length.
42852 * @param {string} [chars=' '] The string used as padding.
42853 * @returns {string} Returns the padded string.
42854 * @example
42855 *
42856 * _.pad('abc', 8);
42857 * // => ' abc '
42858 *
42859 * _.pad('abc', 8, '_-');
42860 * // => '_-abc_-_'
42861 *
42862 * _.pad('abc', 3);
42863 * // => 'abc'
42864 */
42865 function pad(string, length, chars) {
42866 string = toString(string);
42867 length = toInteger(length);
42868
42869 var strLength = length ? stringSize(string) : 0;
42870 if (!length || strLength >= length) {
42871 return string;
42872 }
42873 var mid = (length - strLength) / 2;
42874 return (
42875 createPadding(nativeFloor(mid), chars) +
42876 string +
42877 createPadding(nativeCeil(mid), chars)
42878 );
42879 }
42880
42881 /**
42882 * Pads `string` on the right side if it's shorter than `length`. Padding
42883 * characters are truncated if they exceed `length`.
42884 *
42885 * @static
42886 * @memberOf _
42887 * @since 4.0.0
42888 * @category String
42889 * @param {string} [string=''] The string to pad.
42890 * @param {number} [length=0] The padding length.
42891 * @param {string} [chars=' '] The string used as padding.
42892 * @returns {string} Returns the padded string.
42893 * @example
42894 *
42895 * _.padEnd('abc', 6);
42896 * // => 'abc '
42897 *
42898 * _.padEnd('abc', 6, '_-');
42899 * // => 'abc_-_'
42900 *
42901 * _.padEnd('abc', 3);
42902 * // => 'abc'
42903 */
42904 function padEnd(string, length, chars) {
42905 string = toString(string);
42906 length = toInteger(length);
42907
42908 var strLength = length ? stringSize(string) : 0;
42909 return (length && strLength < length)
42910 ? (string + createPadding(length - strLength, chars))
42911 : string;
42912 }
42913
42914 /**
42915 * Pads `string` on the left side if it's shorter than `length`. Padding
42916 * characters are truncated if they exceed `length`.
42917 *
42918 * @static
42919 * @memberOf _
42920 * @since 4.0.0
42921 * @category String
42922 * @param {string} [string=''] The string to pad.
42923 * @param {number} [length=0] The padding length.
42924 * @param {string} [chars=' '] The string used as padding.
42925 * @returns {string} Returns the padded string.
42926 * @example
42927 *
42928 * _.padStart('abc', 6);
42929 * // => ' abc'
42930 *
42931 * _.padStart('abc', 6, '_-');
42932 * // => '_-_abc'
42933 *
42934 * _.padStart('abc', 3);
42935 * // => 'abc'
42936 */
42937 function padStart(string, length, chars) {
42938 string = toString(string);
42939 length = toInteger(length);
42940
42941 var strLength = length ? stringSize(string) : 0;
42942 return (length && strLength < length)
42943 ? (createPadding(length - strLength, chars) + string)
42944 : string;
42945 }
42946
42947 /**
42948 * Converts `string` to an integer of the specified radix. If `radix` is
42949 * `undefined` or `0`, a `radix` of `10` is used unless `value` is a
42950 * hexadecimal, in which case a `radix` of `16` is used.
42951 *
42952 * **Note:** This method aligns with the
42953 * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.
42954 *
42955 * @static
42956 * @memberOf _
42957 * @since 1.1.0
42958 * @category String
42959 * @param {string} string The string to convert.
42960 * @param {number} [radix=10] The radix to interpret `value` by.
42961 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
42962 * @returns {number} Returns the converted integer.
42963 * @example
42964 *
42965 * _.parseInt('08');
42966 * // => 8
42967 *
42968 * _.map(['6', '08', '10'], _.parseInt);
42969 * // => [6, 8, 10]
42970 */
42971 function parseInt(string, radix, guard) {
42972 if (guard || radix == null) {
42973 radix = 0;
42974 } else if (radix) {
42975 radix = +radix;
42976 }
42977 return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);
42978 }
42979
42980 /**
42981 * Repeats the given string `n` times.
42982 *
42983 * @static
42984 * @memberOf _
42985 * @since 3.0.0
42986 * @category String
42987 * @param {string} [string=''] The string to repeat.
42988 * @param {number} [n=1] The number of times to repeat the string.
42989 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
42990 * @returns {string} Returns the repeated string.
42991 * @example
42992 *
42993 * _.repeat('*', 3);
42994 * // => '***'
42995 *
42996 * _.repeat('abc', 2);
42997 * // => 'abcabc'
42998 *
42999 * _.repeat('abc', 0);
43000 * // => ''
43001 */
43002 function repeat(string, n, guard) {
43003 if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {
43004 n = 1;
43005 } else {
43006 n = toInteger(n);
43007 }
43008 return baseRepeat(toString(string), n);
43009 }
43010
43011 /**
43012 * Replaces matches for `pattern` in `string` with `replacement`.
43013 *
43014 * **Note:** This method is based on
43015 * [`String#replace`](https://mdn.io/String/replace).
43016 *
43017 * @static
43018 * @memberOf _
43019 * @since 4.0.0
43020 * @category String
43021 * @param {string} [string=''] The string to modify.
43022 * @param {RegExp|string} pattern The pattern to replace.
43023 * @param {Function|string} replacement The match replacement.
43024 * @returns {string} Returns the modified string.
43025 * @example
43026 *
43027 * _.replace('Hi Fred', 'Fred', 'Barney');
43028 * // => 'Hi Barney'
43029 */
43030 function replace() {
43031 var args = arguments,
43032 string = toString(args[0]);
43033
43034 return args.length < 3 ? string : string.replace(args[1], args[2]);
43035 }
43036
43037 /**
43038 * Converts `string` to
43039 * [snake case](https://en.wikipedia.org/wiki/Snake_case).
43040 *
43041 * @static
43042 * @memberOf _
43043 * @since 3.0.0
43044 * @category String
43045 * @param {string} [string=''] The string to convert.
43046 * @returns {string} Returns the snake cased string.
43047 * @example
43048 *
43049 * _.snakeCase('Foo Bar');
43050 * // => 'foo_bar'
43051 *
43052 * _.snakeCase('fooBar');
43053 * // => 'foo_bar'
43054 *
43055 * _.snakeCase('--FOO-BAR--');
43056 * // => 'foo_bar'
43057 */
43058 var snakeCase = createCompounder(function(result, word, index) {
43059 return result + (index ? '_' : '') + word.toLowerCase();
43060 });
43061
43062 /**
43063 * Splits `string` by `separator`.
43064 *
43065 * **Note:** This method is based on
43066 * [`String#split`](https://mdn.io/String/split).
43067 *
43068 * @static
43069 * @memberOf _
43070 * @since 4.0.0
43071 * @category String
43072 * @param {string} [string=''] The string to split.
43073 * @param {RegExp|string} separator The separator pattern to split by.
43074 * @param {number} [limit] The length to truncate results to.
43075 * @returns {Array} Returns the string segments.
43076 * @example
43077 *
43078 * _.split('a-b-c', '-', 2);
43079 * // => ['a', 'b']
43080 */
43081 function split(string, separator, limit) {
43082 if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {
43083 separator = limit = undefined;
43084 }
43085 limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;
43086 if (!limit) {
43087 return [];
43088 }
43089 string = toString(string);
43090 if (string && (
43091 typeof separator == 'string' ||
43092 (separator != null && !isRegExp(separator))
43093 )) {
43094 separator = baseToString(separator);
43095 if (!separator && hasUnicode(string)) {
43096 return castSlice(stringToArray(string), 0, limit);
43097 }
43098 }
43099 return string.split(separator, limit);
43100 }
43101
43102 /**
43103 * Converts `string` to
43104 * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
43105 *
43106 * @static
43107 * @memberOf _
43108 * @since 3.1.0
43109 * @category String
43110 * @param {string} [string=''] The string to convert.
43111 * @returns {string} Returns the start cased string.
43112 * @example
43113 *
43114 * _.startCase('--foo-bar--');
43115 * // => 'Foo Bar'
43116 *
43117 * _.startCase('fooBar');
43118 * // => 'Foo Bar'
43119 *
43120 * _.startCase('__FOO_BAR__');
43121 * // => 'FOO BAR'
43122 */
43123 var startCase = createCompounder(function(result, word, index) {
43124 return result + (index ? ' ' : '') + upperFirst(word);
43125 });
43126
43127 /**
43128 * Checks if `string` starts with the given target string.
43129 *
43130 * @static
43131 * @memberOf _
43132 * @since 3.0.0
43133 * @category String
43134 * @param {string} [string=''] The string to inspect.
43135 * @param {string} [target] The string to search for.
43136 * @param {number} [position=0] The position to search from.
43137 * @returns {boolean} Returns `true` if `string` starts with `target`,
43138 * else `false`.
43139 * @example
43140 *
43141 * _.startsWith('abc', 'a');
43142 * // => true
43143 *
43144 * _.startsWith('abc', 'b');
43145 * // => false
43146 *
43147 * _.startsWith('abc', 'b', 1);
43148 * // => true
43149 */
43150 function startsWith(string, target, position) {
43151 string = toString(string);
43152 position = position == null
43153 ? 0
43154 : baseClamp(toInteger(position), 0, string.length);
43155
43156 target = baseToString(target);
43157 return string.slice(position, position + target.length) == target;
43158 }
43159
43160 /**
43161 * Creates a compiled template function that can interpolate data properties
43162 * in "interpolate" delimiters, HTML-escape interpolated data properties in
43163 * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data
43164 * properties may be accessed as free variables in the template. If a setting
43165 * object is given, it takes precedence over `_.templateSettings` values.
43166 *
43167 * **Note:** In the development build `_.template` utilizes
43168 * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
43169 * for easier debugging.
43170 *
43171 * For more information on precompiling templates see
43172 * [lodash's custom builds documentation](https://lodash.com/custom-builds).
43173 *
43174 * For more information on Chrome extension sandboxes see
43175 * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
43176 *
43177 * @static
43178 * @since 0.1.0
43179 * @memberOf _
43180 * @category String
43181 * @param {string} [string=''] The template string.
43182 * @param {Object} [options={}] The options object.
43183 * @param {RegExp} [options.escape=_.templateSettings.escape]
43184 * The HTML "escape" delimiter.
43185 * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]
43186 * The "evaluate" delimiter.
43187 * @param {Object} [options.imports=_.templateSettings.imports]
43188 * An object to import into the template as free variables.
43189 * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]
43190 * The "interpolate" delimiter.
43191 * @param {string} [options.sourceURL='lodash.templateSources[n]']
43192 * The sourceURL of the compiled template.
43193 * @param {string} [options.variable='obj']
43194 * The data object variable name.
43195 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
43196 * @returns {Function} Returns the compiled template function.
43197 * @example
43198 *
43199 * // Use the "interpolate" delimiter to create a compiled template.
43200 * var compiled = _.template('hello <%= user %>!');
43201 * compiled({ 'user': 'fred' });
43202 * // => 'hello fred!'
43203 *
43204 * // Use the HTML "escape" delimiter to escape data property values.
43205 * var compiled = _.template('<b><%- value %></b>');
43206 * compiled({ 'value': '<script>' });
43207 * // => '<b>&lt;script&gt;</b>'
43208 *
43209 * // Use the "evaluate" delimiter to execute JavaScript and generate HTML.
43210 * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
43211 * compiled({ 'users': ['fred', 'barney'] });
43212 * // => '<li>fred</li><li>barney</li>'
43213 *
43214 * // Use the internal `print` function in "evaluate" delimiters.
43215 * var compiled = _.template('<% print("hello " + user); %>!');
43216 * compiled({ 'user': 'barney' });
43217 * // => 'hello barney!'
43218 *
43219 * // Use the ES template literal delimiter as an "interpolate" delimiter.
43220 * // Disable support by replacing the "interpolate" delimiter.
43221 * var compiled = _.template('hello ${ user }!');
43222 * compiled({ 'user': 'pebbles' });
43223 * // => 'hello pebbles!'
43224 *
43225 * // Use backslashes to treat delimiters as plain text.
43226 * var compiled = _.template('<%= "\\<%- value %\\>" %>');
43227 * compiled({ 'value': 'ignored' });
43228 * // => '<%- value %>'
43229 *
43230 * // Use the `imports` option to import `jQuery` as `jq`.
43231 * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
43232 * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
43233 * compiled({ 'users': ['fred', 'barney'] });
43234 * // => '<li>fred</li><li>barney</li>'
43235 *
43236 * // Use the `sourceURL` option to specify a custom sourceURL for the template.
43237 * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });
43238 * compiled(data);
43239 * // => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector.
43240 *
43241 * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.
43242 * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
43243 * compiled.source;
43244 * // => function(data) {
43245 * // var __t, __p = '';
43246 * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
43247 * // return __p;
43248 * // }
43249 *
43250 * // Use custom template delimiters.
43251 * _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
43252 * var compiled = _.template('hello {{ user }}!');
43253 * compiled({ 'user': 'mustache' });
43254 * // => 'hello mustache!'
43255 *
43256 * // Use the `source` property to inline compiled templates for meaningful
43257 * // line numbers in error messages and stack traces.
43258 * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
43259 * var JST = {\
43260 * "main": ' + _.template(mainText).source + '\
43261 * };\
43262 * ');
43263 */
43264 function template(string, options, guard) {
43265 // Based on John Resig's `tmpl` implementation
43266 // (http://ejohn.org/blog/javascript-micro-templating/)
43267 // and Laura Doktorova's doT.js (https://github.com/olado/doT).
43268 var settings = lodash.templateSettings;
43269
43270 if (guard && isIterateeCall(string, options, guard)) {
43271 options = undefined;
43272 }
43273 string = toString(string);
43274 options = assignInWith({}, options, settings, customDefaultsAssignIn);
43275
43276 var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
43277 importsKeys = keys(imports),
43278 importsValues = baseValues(imports, importsKeys);
43279
43280 var isEscaping,
43281 isEvaluating,
43282 index = 0,
43283 interpolate = options.interpolate || reNoMatch,
43284 source = "__p += '";
43285
43286 // Compile the regexp to match each delimiter.
43287 var reDelimiters = RegExp(
43288 (options.escape || reNoMatch).source + '|' +
43289 interpolate.source + '|' +
43290 (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +
43291 (options.evaluate || reNoMatch).source + '|$'
43292 , 'g');
43293
43294 // Use a sourceURL for easier debugging.
43295 var sourceURL = '//# sourceURL=' +
43296 ('sourceURL' in options
43297 ? options.sourceURL
43298 : ('lodash.templateSources[' + (++templateCounter) + ']')
43299 ) + '\n';
43300
43301 string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
43302 interpolateValue || (interpolateValue = esTemplateValue);
43303
43304 // Escape characters that can't be included in string literals.
43305 source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);
43306
43307 // Replace delimiters with snippets.
43308 if (escapeValue) {
43309 isEscaping = true;
43310 source += "' +\n__e(" + escapeValue + ") +\n'";
43311 }
43312 if (evaluateValue) {
43313 isEvaluating = true;
43314 source += "';\n" + evaluateValue + ";\n__p += '";
43315 }
43316 if (interpolateValue) {
43317 source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
43318 }
43319 index = offset + match.length;
43320
43321 // The JS engine embedded in Adobe products needs `match` returned in
43322 // order to produce the correct `offset` value.
43323 return match;
43324 });
43325
43326 source += "';\n";
43327
43328 // If `variable` is not specified wrap a with-statement around the generated
43329 // code to add the data object to the top of the scope chain.
43330 var variable = options.variable;
43331 if (!variable) {
43332 source = 'with (obj) {\n' + source + '\n}\n';
43333 }
43334 // Cleanup code by stripping empty strings.
43335 source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)
43336 .replace(reEmptyStringMiddle, '$1')
43337 .replace(reEmptyStringTrailing, '$1;');
43338
43339 // Frame code as the function body.
43340 source = 'function(' + (variable || 'obj') + ') {\n' +
43341 (variable
43342 ? ''
43343 : 'obj || (obj = {});\n'
43344 ) +
43345 "var __t, __p = ''" +
43346 (isEscaping
43347 ? ', __e = _.escape'
43348 : ''
43349 ) +
43350 (isEvaluating
43351 ? ', __j = Array.prototype.join;\n' +
43352 "function print() { __p += __j.call(arguments, '') }\n"
43353 : ';\n'
43354 ) +
43355 source +
43356 'return __p\n}';
43357
43358 var result = attempt(function() {
43359 return Function(importsKeys, sourceURL + 'return ' + source)
43360 .apply(undefined, importsValues);
43361 });
43362
43363 // Provide the compiled function's source by its `toString` method or
43364 // the `source` property as a convenience for inlining compiled templates.
43365 result.source = source;
43366 if (isError(result)) {
43367 throw result;
43368 }
43369 return result;
43370 }
43371
43372 /**
43373 * Converts `string`, as a whole, to lower case just like
43374 * [String#toLowerCase](https://mdn.io/toLowerCase).
43375 *
43376 * @static
43377 * @memberOf _
43378 * @since 4.0.0
43379 * @category String
43380 * @param {string} [string=''] The string to convert.
43381 * @returns {string} Returns the lower cased string.
43382 * @example
43383 *
43384 * _.toLower('--Foo-Bar--');
43385 * // => '--foo-bar--'
43386 *
43387 * _.toLower('fooBar');
43388 * // => 'foobar'
43389 *
43390 * _.toLower('__FOO_BAR__');
43391 * // => '__foo_bar__'
43392 */
43393 function toLower(value) {
43394 return toString(value).toLowerCase();
43395 }
43396
43397 /**
43398 * Converts `string`, as a whole, to upper case just like
43399 * [String#toUpperCase](https://mdn.io/toUpperCase).
43400 *
43401 * @static
43402 * @memberOf _
43403 * @since 4.0.0
43404 * @category String
43405 * @param {string} [string=''] The string to convert.
43406 * @returns {string} Returns the upper cased string.
43407 * @example
43408 *
43409 * _.toUpper('--foo-bar--');
43410 * // => '--FOO-BAR--'
43411 *
43412 * _.toUpper('fooBar');
43413 * // => 'FOOBAR'
43414 *
43415 * _.toUpper('__foo_bar__');
43416 * // => '__FOO_BAR__'
43417 */
43418 function toUpper(value) {
43419 return toString(value).toUpperCase();
43420 }
43421
43422 /**
43423 * Removes leading and trailing whitespace or specified characters from `string`.
43424 *
43425 * @static
43426 * @memberOf _
43427 * @since 3.0.0
43428 * @category String
43429 * @param {string} [string=''] The string to trim.
43430 * @param {string} [chars=whitespace] The characters to trim.
43431 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
43432 * @returns {string} Returns the trimmed string.
43433 * @example
43434 *
43435 * _.trim(' abc ');
43436 * // => 'abc'
43437 *
43438 * _.trim('-_-abc-_-', '_-');
43439 * // => 'abc'
43440 *
43441 * _.map([' foo ', ' bar '], _.trim);
43442 * // => ['foo', 'bar']
43443 */
43444 function trim(string, chars, guard) {
43445 string = toString(string);
43446 if (string && (guard || chars === undefined)) {
43447 return string.replace(reTrim, '');
43448 }
43449 if (!string || !(chars = baseToString(chars))) {
43450 return string;
43451 }
43452 var strSymbols = stringToArray(string),
43453 chrSymbols = stringToArray(chars),
43454 start = charsStartIndex(strSymbols, chrSymbols),
43455 end = charsEndIndex(strSymbols, chrSymbols) + 1;
43456
43457 return castSlice(strSymbols, start, end).join('');
43458 }
43459
43460 /**
43461 * Removes trailing whitespace or specified characters from `string`.
43462 *
43463 * @static
43464 * @memberOf _
43465 * @since 4.0.0
43466 * @category String
43467 * @param {string} [string=''] The string to trim.
43468 * @param {string} [chars=whitespace] The characters to trim.
43469 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
43470 * @returns {string} Returns the trimmed string.
43471 * @example
43472 *
43473 * _.trimEnd(' abc ');
43474 * // => ' abc'
43475 *
43476 * _.trimEnd('-_-abc-_-', '_-');
43477 * // => '-_-abc'
43478 */
43479 function trimEnd(string, chars, guard) {
43480 string = toString(string);
43481 if (string && (guard || chars === undefined)) {
43482 return string.replace(reTrimEnd, '');
43483 }
43484 if (!string || !(chars = baseToString(chars))) {
43485 return string;
43486 }
43487 var strSymbols = stringToArray(string),
43488 end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;
43489
43490 return castSlice(strSymbols, 0, end).join('');
43491 }
43492
43493 /**
43494 * Removes leading whitespace or specified characters from `string`.
43495 *
43496 * @static
43497 * @memberOf _
43498 * @since 4.0.0
43499 * @category String
43500 * @param {string} [string=''] The string to trim.
43501 * @param {string} [chars=whitespace] The characters to trim.
43502 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
43503 * @returns {string} Returns the trimmed string.
43504 * @example
43505 *
43506 * _.trimStart(' abc ');
43507 * // => 'abc '
43508 *
43509 * _.trimStart('-_-abc-_-', '_-');
43510 * // => 'abc-_-'
43511 */
43512 function trimStart(string, chars, guard) {
43513 string = toString(string);
43514 if (string && (guard || chars === undefined)) {
43515 return string.replace(reTrimStart, '');
43516 }
43517 if (!string || !(chars = baseToString(chars))) {
43518 return string;
43519 }
43520 var strSymbols = stringToArray(string),
43521 start = charsStartIndex(strSymbols, stringToArray(chars));
43522
43523 return castSlice(strSymbols, start).join('');
43524 }
43525
43526 /**
43527 * Truncates `string` if it's longer than the given maximum string length.
43528 * The last characters of the truncated string are replaced with the omission
43529 * string which defaults to "...".
43530 *
43531 * @static
43532 * @memberOf _
43533 * @since 4.0.0
43534 * @category String
43535 * @param {string} [string=''] The string to truncate.
43536 * @param {Object} [options={}] The options object.
43537 * @param {number} [options.length=30] The maximum string length.
43538 * @param {string} [options.omission='...'] The string to indicate text is omitted.
43539 * @param {RegExp|string} [options.separator] The separator pattern to truncate to.
43540 * @returns {string} Returns the truncated string.
43541 * @example
43542 *
43543 * _.truncate('hi-diddly-ho there, neighborino');
43544 * // => 'hi-diddly-ho there, neighbo...'
43545 *
43546 * _.truncate('hi-diddly-ho there, neighborino', {
43547 * 'length': 24,
43548 * 'separator': ' '
43549 * });
43550 * // => 'hi-diddly-ho there,...'
43551 *
43552 * _.truncate('hi-diddly-ho there, neighborino', {
43553 * 'length': 24,
43554 * 'separator': /,? +/
43555 * });
43556 * // => 'hi-diddly-ho there...'
43557 *
43558 * _.truncate('hi-diddly-ho there, neighborino', {
43559 * 'omission': ' [...]'
43560 * });
43561 * // => 'hi-diddly-ho there, neig [...]'
43562 */
43563 function truncate(string, options) {
43564 var length = DEFAULT_TRUNC_LENGTH,
43565 omission = DEFAULT_TRUNC_OMISSION;
43566
43567 if (isObject(options)) {
43568 var separator = 'separator' in options ? options.separator : separator;
43569 length = 'length' in options ? toInteger(options.length) : length;
43570 omission = 'omission' in options ? baseToString(options.omission) : omission;
43571 }
43572 string = toString(string);
43573
43574 var strLength = string.length;
43575 if (hasUnicode(string)) {
43576 var strSymbols = stringToArray(string);
43577 strLength = strSymbols.length;
43578 }
43579 if (length >= strLength) {
43580 return string;
43581 }
43582 var end = length - stringSize(omission);
43583 if (end < 1) {
43584 return omission;
43585 }
43586 var result = strSymbols
43587 ? castSlice(strSymbols, 0, end).join('')
43588 : string.slice(0, end);
43589
43590 if (separator === undefined) {
43591 return result + omission;
43592 }
43593 if (strSymbols) {
43594 end += (result.length - end);
43595 }
43596 if (isRegExp(separator)) {
43597 if (string.slice(end).search(separator)) {
43598 var match,
43599 substring = result;
43600
43601 if (!separator.global) {
43602 separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');
43603 }
43604 separator.lastIndex = 0;
43605 while ((match = separator.exec(substring))) {
43606 var newEnd = match.index;
43607 }
43608 result = result.slice(0, newEnd === undefined ? end : newEnd);
43609 }
43610 } else if (string.indexOf(baseToString(separator), end) != end) {
43611 var index = result.lastIndexOf(separator);
43612 if (index > -1) {
43613 result = result.slice(0, index);
43614 }
43615 }
43616 return result + omission;
43617 }
43618
43619 /**
43620 * The inverse of `_.escape`; this method converts the HTML entities
43621 * `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to
43622 * their corresponding characters.
43623 *
43624 * **Note:** No other HTML entities are unescaped. To unescape additional
43625 * HTML entities use a third-party library like [_he_](https://mths.be/he).
43626 *
43627 * @static
43628 * @memberOf _
43629 * @since 0.6.0
43630 * @category String
43631 * @param {string} [string=''] The string to unescape.
43632 * @returns {string} Returns the unescaped string.
43633 * @example
43634 *
43635 * _.unescape('fred, barney, &amp; pebbles');
43636 * // => 'fred, barney, & pebbles'
43637 */
43638 function unescape(string) {
43639 string = toString(string);
43640 return (string && reHasEscapedHtml.test(string))
43641 ? string.replace(reEscapedHtml, unescapeHtmlChar)
43642 : string;
43643 }
43644
43645 /**
43646 * Converts `string`, as space separated words, to upper case.
43647 *
43648 * @static
43649 * @memberOf _
43650 * @since 4.0.0
43651 * @category String
43652 * @param {string} [string=''] The string to convert.
43653 * @returns {string} Returns the upper cased string.
43654 * @example
43655 *
43656 * _.upperCase('--foo-bar');
43657 * // => 'FOO BAR'
43658 *
43659 * _.upperCase('fooBar');
43660 * // => 'FOO BAR'
43661 *
43662 * _.upperCase('__foo_bar__');
43663 * // => 'FOO BAR'
43664 */
43665 var upperCase = createCompounder(function(result, word, index) {
43666 return result + (index ? ' ' : '') + word.toUpperCase();
43667 });
43668
43669 /**
43670 * Converts the first character of `string` to upper case.
43671 *
43672 * @static
43673 * @memberOf _
43674 * @since 4.0.0
43675 * @category String
43676 * @param {string} [string=''] The string to convert.
43677 * @returns {string} Returns the converted string.
43678 * @example
43679 *
43680 * _.upperFirst('fred');
43681 * // => 'Fred'
43682 *
43683 * _.upperFirst('FRED');
43684 * // => 'FRED'
43685 */
43686 var upperFirst = createCaseFirst('toUpperCase');
43687
43688 /**
43689 * Splits `string` into an array of its words.
43690 *
43691 * @static
43692 * @memberOf _
43693 * @since 3.0.0
43694 * @category String
43695 * @param {string} [string=''] The string to inspect.
43696 * @param {RegExp|string} [pattern] The pattern to match words.
43697 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
43698 * @returns {Array} Returns the words of `string`.
43699 * @example
43700 *
43701 * _.words('fred, barney, & pebbles');
43702 * // => ['fred', 'barney', 'pebbles']
43703 *
43704 * _.words('fred, barney, & pebbles', /[^, ]+/g);
43705 * // => ['fred', 'barney', '&', 'pebbles']
43706 */
43707 function words(string, pattern, guard) {
43708 string = toString(string);
43709 pattern = guard ? undefined : pattern;
43710
43711 if (pattern === undefined) {
43712 return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
43713 }
43714 return string.match(pattern) || [];
43715 }
43716
43717 /*------------------------------------------------------------------------*/
43718
43719 /**
43720 * Attempts to invoke `func`, returning either the result or the caught error
43721 * object. Any additional arguments are provided to `func` when it's invoked.
43722 *
43723 * @static
43724 * @memberOf _
43725 * @since 3.0.0
43726 * @category Util
43727 * @param {Function} func The function to attempt.
43728 * @param {...*} [args] The arguments to invoke `func` with.
43729 * @returns {*} Returns the `func` result or error object.
43730 * @example
43731 *
43732 * // Avoid throwing errors for invalid selectors.
43733 * var elements = _.attempt(function(selector) {
43734 * return document.querySelectorAll(selector);
43735 * }, '>_>');
43736 *
43737 * if (_.isError(elements)) {
43738 * elements = [];
43739 * }
43740 */
43741 var attempt = baseRest(function(func, args) {
43742 try {
43743 return apply(func, undefined, args);
43744 } catch (e) {
43745 return isError(e) ? e : new Error(e);
43746 }
43747 });
43748
43749 /**
43750 * Binds methods of an object to the object itself, overwriting the existing
43751 * method.
43752 *
43753 * **Note:** This method doesn't set the "length" property of bound functions.
43754 *
43755 * @static
43756 * @since 0.1.0
43757 * @memberOf _
43758 * @category Util
43759 * @param {Object} object The object to bind and assign the bound methods to.
43760 * @param {...(string|string[])} methodNames The object method names to bind.
43761 * @returns {Object} Returns `object`.
43762 * @example
43763 *
43764 * var view = {
43765 * 'label': 'docs',
43766 * 'click': function() {
43767 * console.log('clicked ' + this.label);
43768 * }
43769 * };
43770 *
43771 * _.bindAll(view, ['click']);
43772 * jQuery(element).on('click', view.click);
43773 * // => Logs 'clicked docs' when clicked.
43774 */
43775 var bindAll = flatRest(function(object, methodNames) {
43776 arrayEach(methodNames, function(key) {
43777 key = toKey(key);
43778 baseAssignValue(object, key, bind(object[key], object));
43779 });
43780 return object;
43781 });
43782
43783 /**
43784 * Creates a function that iterates over `pairs` and invokes the corresponding
43785 * function of the first predicate to return truthy. The predicate-function
43786 * pairs are invoked with the `this` binding and arguments of the created
43787 * function.
43788 *
43789 * @static
43790 * @memberOf _
43791 * @since 4.0.0
43792 * @category Util
43793 * @param {Array} pairs The predicate-function pairs.
43794 * @returns {Function} Returns the new composite function.
43795 * @example
43796 *
43797 * var func = _.cond([
43798 * [_.matches({ 'a': 1 }), _.constant('matches A')],
43799 * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],
43800 * [_.stubTrue, _.constant('no match')]
43801 * ]);
43802 *
43803 * func({ 'a': 1, 'b': 2 });
43804 * // => 'matches A'
43805 *
43806 * func({ 'a': 0, 'b': 1 });
43807 * // => 'matches B'
43808 *
43809 * func({ 'a': '1', 'b': '2' });
43810 * // => 'no match'
43811 */
43812 function cond(pairs) {
43813 var length = pairs == null ? 0 : pairs.length,
43814 toIteratee = getIteratee();
43815
43816 pairs = !length ? [] : arrayMap(pairs, function(pair) {
43817 if (typeof pair[1] != 'function') {
43818 throw new TypeError(FUNC_ERROR_TEXT);
43819 }
43820 return [toIteratee(pair[0]), pair[1]];
43821 });
43822
43823 return baseRest(function(args) {
43824 var index = -1;
43825 while (++index < length) {
43826 var pair = pairs[index];
43827 if (apply(pair[0], this, args)) {
43828 return apply(pair[1], this, args);
43829 }
43830 }
43831 });
43832 }
43833
43834 /**
43835 * Creates a function that invokes the predicate properties of `source` with
43836 * the corresponding property values of a given object, returning `true` if
43837 * all predicates return truthy, else `false`.
43838 *
43839 * **Note:** The created function is equivalent to `_.conformsTo` with
43840 * `source` partially applied.
43841 *
43842 * @static
43843 * @memberOf _
43844 * @since 4.0.0
43845 * @category Util
43846 * @param {Object} source The object of property predicates to conform to.
43847 * @returns {Function} Returns the new spec function.
43848 * @example
43849 *
43850 * var objects = [
43851 * { 'a': 2, 'b': 1 },
43852 * { 'a': 1, 'b': 2 }
43853 * ];
43854 *
43855 * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));
43856 * // => [{ 'a': 1, 'b': 2 }]
43857 */
43858 function conforms(source) {
43859 return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
43860 }
43861
43862 /**
43863 * Creates a function that returns `value`.
43864 *
43865 * @static
43866 * @memberOf _
43867 * @since 2.4.0
43868 * @category Util
43869 * @param {*} value The value to return from the new function.
43870 * @returns {Function} Returns the new constant function.
43871 * @example
43872 *
43873 * var objects = _.times(2, _.constant({ 'a': 1 }));
43874 *
43875 * console.log(objects);
43876 * // => [{ 'a': 1 }, { 'a': 1 }]
43877 *
43878 * console.log(objects[0] === objects[1]);
43879 * // => true
43880 */
43881 function constant(value) {
43882 return function() {
43883 return value;
43884 };
43885 }
43886
43887 /**
43888 * Checks `value` to determine whether a default value should be returned in
43889 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,
43890 * or `undefined`.
43891 *
43892 * @static
43893 * @memberOf _
43894 * @since 4.14.0
43895 * @category Util
43896 * @param {*} value The value to check.
43897 * @param {*} defaultValue The default value.
43898 * @returns {*} Returns the resolved value.
43899 * @example
43900 *
43901 * _.defaultTo(1, 10);
43902 * // => 1
43903 *
43904 * _.defaultTo(undefined, 10);
43905 * // => 10
43906 */
43907 function defaultTo(value, defaultValue) {
43908 return (value == null || value !== value) ? defaultValue : value;
43909 }
43910
43911 /**
43912 * Creates a function that returns the result of invoking the given functions
43913 * with the `this` binding of the created function, where each successive
43914 * invocation is supplied the return value of the previous.
43915 *
43916 * @static
43917 * @memberOf _
43918 * @since 3.0.0
43919 * @category Util
43920 * @param {...(Function|Function[])} [funcs] The functions to invoke.
43921 * @returns {Function} Returns the new composite function.
43922 * @see _.flowRight
43923 * @example
43924 *
43925 * function square(n) {
43926 * return n * n;
43927 * }
43928 *
43929 * var addSquare = _.flow([_.add, square]);
43930 * addSquare(1, 2);
43931 * // => 9
43932 */
43933 var flow = createFlow();
43934
43935 /**
43936 * This method is like `_.flow` except that it creates a function that
43937 * invokes the given functions from right to left.
43938 *
43939 * @static
43940 * @since 3.0.0
43941 * @memberOf _
43942 * @category Util
43943 * @param {...(Function|Function[])} [funcs] The functions to invoke.
43944 * @returns {Function} Returns the new composite function.
43945 * @see _.flow
43946 * @example
43947 *
43948 * function square(n) {
43949 * return n * n;
43950 * }
43951 *
43952 * var addSquare = _.flowRight([square, _.add]);
43953 * addSquare(1, 2);
43954 * // => 9
43955 */
43956 var flowRight = createFlow(true);
43957
43958 /**
43959 * This method returns the first argument it receives.
43960 *
43961 * @static
43962 * @since 0.1.0
43963 * @memberOf _
43964 * @category Util
43965 * @param {*} value Any value.
43966 * @returns {*} Returns `value`.
43967 * @example
43968 *
43969 * var object = { 'a': 1 };
43970 *
43971 * console.log(_.identity(object) === object);
43972 * // => true
43973 */
43974 function identity(value) {
43975 return value;
43976 }
43977
43978 /**
43979 * Creates a function that invokes `func` with the arguments of the created
43980 * function. If `func` is a property name, the created function returns the
43981 * property value for a given element. If `func` is an array or object, the
43982 * created function returns `true` for elements that contain the equivalent
43983 * source properties, otherwise it returns `false`.
43984 *
43985 * @static
43986 * @since 4.0.0
43987 * @memberOf _
43988 * @category Util
43989 * @param {*} [func=_.identity] The value to convert to a callback.
43990 * @returns {Function} Returns the callback.
43991 * @example
43992 *
43993 * var users = [
43994 * { 'user': 'barney', 'age': 36, 'active': true },
43995 * { 'user': 'fred', 'age': 40, 'active': false }
43996 * ];
43997 *
43998 * // The `_.matches` iteratee shorthand.
43999 * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));
44000 * // => [{ 'user': 'barney', 'age': 36, 'active': true }]
44001 *
44002 * // The `_.matchesProperty` iteratee shorthand.
44003 * _.filter(users, _.iteratee(['user', 'fred']));
44004 * // => [{ 'user': 'fred', 'age': 40 }]
44005 *
44006 * // The `_.property` iteratee shorthand.
44007 * _.map(users, _.iteratee('user'));
44008 * // => ['barney', 'fred']
44009 *
44010 * // Create custom iteratee shorthands.
44011 * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {
44012 * return !_.isRegExp(func) ? iteratee(func) : function(string) {
44013 * return func.test(string);
44014 * };
44015 * });
44016 *
44017 * _.filter(['abc', 'def'], /ef/);
44018 * // => ['def']
44019 */
44020 function iteratee(func) {
44021 return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));
44022 }
44023
44024 /**
44025 * Creates a function that performs a partial deep comparison between a given
44026 * object and `source`, returning `true` if the given object has equivalent
44027 * property values, else `false`.
44028 *
44029 * **Note:** The created function is equivalent to `_.isMatch` with `source`
44030 * partially applied.
44031 *
44032 * Partial comparisons will match empty array and empty object `source`
44033 * values against any array or object value, respectively. See `_.isEqual`
44034 * for a list of supported value comparisons.
44035 *
44036 * @static
44037 * @memberOf _
44038 * @since 3.0.0
44039 * @category Util
44040 * @param {Object} source The object of property values to match.
44041 * @returns {Function} Returns the new spec function.
44042 * @example
44043 *
44044 * var objects = [
44045 * { 'a': 1, 'b': 2, 'c': 3 },
44046 * { 'a': 4, 'b': 5, 'c': 6 }
44047 * ];
44048 *
44049 * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));
44050 * // => [{ 'a': 4, 'b': 5, 'c': 6 }]
44051 */
44052 function matches(source) {
44053 return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
44054 }
44055
44056 /**
44057 * Creates a function that performs a partial deep comparison between the
44058 * value at `path` of a given object to `srcValue`, returning `true` if the
44059 * object value is equivalent, else `false`.
44060 *
44061 * **Note:** Partial comparisons will match empty array and empty object
44062 * `srcValue` values against any array or object value, respectively. See
44063 * `_.isEqual` for a list of supported value comparisons.
44064 *
44065 * @static
44066 * @memberOf _
44067 * @since 3.2.0
44068 * @category Util
44069 * @param {Array|string} path The path of the property to get.
44070 * @param {*} srcValue The value to match.
44071 * @returns {Function} Returns the new spec function.
44072 * @example
44073 *
44074 * var objects = [
44075 * { 'a': 1, 'b': 2, 'c': 3 },
44076 * { 'a': 4, 'b': 5, 'c': 6 }
44077 * ];
44078 *
44079 * _.find(objects, _.matchesProperty('a', 4));
44080 * // => { 'a': 4, 'b': 5, 'c': 6 }
44081 */
44082 function matchesProperty(path, srcValue) {
44083 return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));
44084 }
44085
44086 /**
44087 * Creates a function that invokes the method at `path` of a given object.
44088 * Any additional arguments are provided to the invoked method.
44089 *
44090 * @static
44091 * @memberOf _
44092 * @since 3.7.0
44093 * @category Util
44094 * @param {Array|string} path The path of the method to invoke.
44095 * @param {...*} [args] The arguments to invoke the method with.
44096 * @returns {Function} Returns the new invoker function.
44097 * @example
44098 *
44099 * var objects = [
44100 * { 'a': { 'b': _.constant(2) } },
44101 * { 'a': { 'b': _.constant(1) } }
44102 * ];
44103 *
44104 * _.map(objects, _.method('a.b'));
44105 * // => [2, 1]
44106 *
44107 * _.map(objects, _.method(['a', 'b']));
44108 * // => [2, 1]
44109 */
44110 var method = baseRest(function(path, args) {
44111 return function(object) {
44112 return baseInvoke(object, path, args);
44113 };
44114 });
44115
44116 /**
44117 * The opposite of `_.method`; this method creates a function that invokes
44118 * the method at a given path of `object`. Any additional arguments are
44119 * provided to the invoked method.
44120 *
44121 * @static
44122 * @memberOf _
44123 * @since 3.7.0
44124 * @category Util
44125 * @param {Object} object The object to query.
44126 * @param {...*} [args] The arguments to invoke the method with.
44127 * @returns {Function} Returns the new invoker function.
44128 * @example
44129 *
44130 * var array = _.times(3, _.constant),
44131 * object = { 'a': array, 'b': array, 'c': array };
44132 *
44133 * _.map(['a[2]', 'c[0]'], _.methodOf(object));
44134 * // => [2, 0]
44135 *
44136 * _.map([['a', '2'], ['c', '0']], _.methodOf(object));
44137 * // => [2, 0]
44138 */
44139 var methodOf = baseRest(function(object, args) {
44140 return function(path) {
44141 return baseInvoke(object, path, args);
44142 };
44143 });
44144
44145 /**
44146 * Adds all own enumerable string keyed function properties of a source
44147 * object to the destination object. If `object` is a function, then methods
44148 * are added to its prototype as well.
44149 *
44150 * **Note:** Use `_.runInContext` to create a pristine `lodash` function to
44151 * avoid conflicts caused by modifying the original.
44152 *
44153 * @static
44154 * @since 0.1.0
44155 * @memberOf _
44156 * @category Util
44157 * @param {Function|Object} [object=lodash] The destination object.
44158 * @param {Object} source The object of functions to add.
44159 * @param {Object} [options={}] The options object.
44160 * @param {boolean} [options.chain=true] Specify whether mixins are chainable.
44161 * @returns {Function|Object} Returns `object`.
44162 * @example
44163 *
44164 * function vowels(string) {
44165 * return _.filter(string, function(v) {
44166 * return /[aeiou]/i.test(v);
44167 * });
44168 * }
44169 *
44170 * _.mixin({ 'vowels': vowels });
44171 * _.vowels('fred');
44172 * // => ['e']
44173 *
44174 * _('fred').vowels().value();
44175 * // => ['e']
44176 *
44177 * _.mixin({ 'vowels': vowels }, { 'chain': false });
44178 * _('fred').vowels();
44179 * // => ['e']
44180 */
44181 function mixin(object, source, options) {
44182 var props = keys(source),
44183 methodNames = baseFunctions(source, props);
44184
44185 if (options == null &&
44186 !(isObject(source) && (methodNames.length || !props.length))) {
44187 options = source;
44188 source = object;
44189 object = this;
44190 methodNames = baseFunctions(source, keys(source));
44191 }
44192 var chain = !(isObject(options) && 'chain' in options) || !!options.chain,
44193 isFunc = isFunction(object);
44194
44195 arrayEach(methodNames, function(methodName) {
44196 var func = source[methodName];
44197 object[methodName] = func;
44198 if (isFunc) {
44199 object.prototype[methodName] = function() {
44200 var chainAll = this.__chain__;
44201 if (chain || chainAll) {
44202 var result = object(this.__wrapped__),
44203 actions = result.__actions__ = copyArray(this.__actions__);
44204
44205 actions.push({ 'func': func, 'args': arguments, 'thisArg': object });
44206 result.__chain__ = chainAll;
44207 return result;
44208 }
44209 return func.apply(object, arrayPush([this.value()], arguments));
44210 };
44211 }
44212 });
44213
44214 return object;
44215 }
44216
44217 /**
44218 * Reverts the `_` variable to its previous value and returns a reference to
44219 * the `lodash` function.
44220 *
44221 * @static
44222 * @since 0.1.0
44223 * @memberOf _
44224 * @category Util
44225 * @returns {Function} Returns the `lodash` function.
44226 * @example
44227 *
44228 * var lodash = _.noConflict();
44229 */
44230 function noConflict() {
44231 if (root._ === this) {
44232 root._ = oldDash;
44233 }
44234 return this;
44235 }
44236
44237 /**
44238 * This method returns `undefined`.
44239 *
44240 * @static
44241 * @memberOf _
44242 * @since 2.3.0
44243 * @category Util
44244 * @example
44245 *
44246 * _.times(2, _.noop);
44247 * // => [undefined, undefined]
44248 */
44249 function noop() {
44250 // No operation performed.
44251 }
44252
44253 /**
44254 * Creates a function that gets the argument at index `n`. If `n` is negative,
44255 * the nth argument from the end is returned.
44256 *
44257 * @static
44258 * @memberOf _
44259 * @since 4.0.0
44260 * @category Util
44261 * @param {number} [n=0] The index of the argument to return.
44262 * @returns {Function} Returns the new pass-thru function.
44263 * @example
44264 *
44265 * var func = _.nthArg(1);
44266 * func('a', 'b', 'c', 'd');
44267 * // => 'b'
44268 *
44269 * var func = _.nthArg(-2);
44270 * func('a', 'b', 'c', 'd');
44271 * // => 'c'
44272 */
44273 function nthArg(n) {
44274 n = toInteger(n);
44275 return baseRest(function(args) {
44276 return baseNth(args, n);
44277 });
44278 }
44279
44280 /**
44281 * Creates a function that invokes `iteratees` with the arguments it receives
44282 * and returns their results.
44283 *
44284 * @static
44285 * @memberOf _
44286 * @since 4.0.0
44287 * @category Util
44288 * @param {...(Function|Function[])} [iteratees=[_.identity]]
44289 * The iteratees to invoke.
44290 * @returns {Function} Returns the new function.
44291 * @example
44292 *
44293 * var func = _.over([Math.max, Math.min]);
44294 *
44295 * func(1, 2, 3, 4);
44296 * // => [4, 1]
44297 */
44298 var over = createOver(arrayMap);
44299
44300 /**
44301 * Creates a function that checks if **all** of the `predicates` return
44302 * truthy when invoked with the arguments it receives.
44303 *
44304 * @static
44305 * @memberOf _
44306 * @since 4.0.0
44307 * @category Util
44308 * @param {...(Function|Function[])} [predicates=[_.identity]]
44309 * The predicates to check.
44310 * @returns {Function} Returns the new function.
44311 * @example
44312 *
44313 * var func = _.overEvery([Boolean, isFinite]);
44314 *
44315 * func('1');
44316 * // => true
44317 *
44318 * func(null);
44319 * // => false
44320 *
44321 * func(NaN);
44322 * // => false
44323 */
44324 var overEvery = createOver(arrayEvery);
44325
44326 /**
44327 * Creates a function that checks if **any** of the `predicates` return
44328 * truthy when invoked with the arguments it receives.
44329 *
44330 * @static
44331 * @memberOf _
44332 * @since 4.0.0
44333 * @category Util
44334 * @param {...(Function|Function[])} [predicates=[_.identity]]
44335 * The predicates to check.
44336 * @returns {Function} Returns the new function.
44337 * @example
44338 *
44339 * var func = _.overSome([Boolean, isFinite]);
44340 *
44341 * func('1');
44342 * // => true
44343 *
44344 * func(null);
44345 * // => true
44346 *
44347 * func(NaN);
44348 * // => false
44349 */
44350 var overSome = createOver(arraySome);
44351
44352 /**
44353 * Creates a function that returns the value at `path` of a given object.
44354 *
44355 * @static
44356 * @memberOf _
44357 * @since 2.4.0
44358 * @category Util
44359 * @param {Array|string} path The path of the property to get.
44360 * @returns {Function} Returns the new accessor function.
44361 * @example
44362 *
44363 * var objects = [
44364 * { 'a': { 'b': 2 } },
44365 * { 'a': { 'b': 1 } }
44366 * ];
44367 *
44368 * _.map(objects, _.property('a.b'));
44369 * // => [2, 1]
44370 *
44371 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
44372 * // => [1, 2]
44373 */
44374 function property(path) {
44375 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
44376 }
44377
44378 /**
44379 * The opposite of `_.property`; this method creates a function that returns
44380 * the value at a given path of `object`.
44381 *
44382 * @static
44383 * @memberOf _
44384 * @since 3.0.0
44385 * @category Util
44386 * @param {Object} object The object to query.
44387 * @returns {Function} Returns the new accessor function.
44388 * @example
44389 *
44390 * var array = [0, 1, 2],
44391 * object = { 'a': array, 'b': array, 'c': array };
44392 *
44393 * _.map(['a[2]', 'c[0]'], _.propertyOf(object));
44394 * // => [2, 0]
44395 *
44396 * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));
44397 * // => [2, 0]
44398 */
44399 function propertyOf(object) {
44400 return function(path) {
44401 return object == null ? undefined : baseGet(object, path);
44402 };
44403 }
44404
44405 /**
44406 * Creates an array of numbers (positive and/or negative) progressing from
44407 * `start` up to, but not including, `end`. A step of `-1` is used if a negative
44408 * `start` is specified without an `end` or `step`. If `end` is not specified,
44409 * it's set to `start` with `start` then set to `0`.
44410 *
44411 * **Note:** JavaScript follows the IEEE-754 standard for resolving
44412 * floating-point values which can produce unexpected results.
44413 *
44414 * @static
44415 * @since 0.1.0
44416 * @memberOf _
44417 * @category Util
44418 * @param {number} [start=0] The start of the range.
44419 * @param {number} end The end of the range.
44420 * @param {number} [step=1] The value to increment or decrement by.
44421 * @returns {Array} Returns the range of numbers.
44422 * @see _.inRange, _.rangeRight
44423 * @example
44424 *
44425 * _.range(4);
44426 * // => [0, 1, 2, 3]
44427 *
44428 * _.range(-4);
44429 * // => [0, -1, -2, -3]
44430 *
44431 * _.range(1, 5);
44432 * // => [1, 2, 3, 4]
44433 *
44434 * _.range(0, 20, 5);
44435 * // => [0, 5, 10, 15]
44436 *
44437 * _.range(0, -4, -1);
44438 * // => [0, -1, -2, -3]
44439 *
44440 * _.range(1, 4, 0);
44441 * // => [1, 1, 1]
44442 *
44443 * _.range(0);
44444 * // => []
44445 */
44446 var range = createRange();
44447
44448 /**
44449 * This method is like `_.range` except that it populates values in
44450 * descending order.
44451 *
44452 * @static
44453 * @memberOf _
44454 * @since 4.0.0
44455 * @category Util
44456 * @param {number} [start=0] The start of the range.
44457 * @param {number} end The end of the range.
44458 * @param {number} [step=1] The value to increment or decrement by.
44459 * @returns {Array} Returns the range of numbers.
44460 * @see _.inRange, _.range
44461 * @example
44462 *
44463 * _.rangeRight(4);
44464 * // => [3, 2, 1, 0]
44465 *
44466 * _.rangeRight(-4);
44467 * // => [-3, -2, -1, 0]
44468 *
44469 * _.rangeRight(1, 5);
44470 * // => [4, 3, 2, 1]
44471 *
44472 * _.rangeRight(0, 20, 5);
44473 * // => [15, 10, 5, 0]
44474 *
44475 * _.rangeRight(0, -4, -1);
44476 * // => [-3, -2, -1, 0]
44477 *
44478 * _.rangeRight(1, 4, 0);
44479 * // => [1, 1, 1]
44480 *
44481 * _.rangeRight(0);
44482 * // => []
44483 */
44484 var rangeRight = createRange(true);
44485
44486 /**
44487 * This method returns a new empty array.
44488 *
44489 * @static
44490 * @memberOf _
44491 * @since 4.13.0
44492 * @category Util
44493 * @returns {Array} Returns the new empty array.
44494 * @example
44495 *
44496 * var arrays = _.times(2, _.stubArray);
44497 *
44498 * console.log(arrays);
44499 * // => [[], []]
44500 *
44501 * console.log(arrays[0] === arrays[1]);
44502 * // => false
44503 */
44504 function stubArray() {
44505 return [];
44506 }
44507
44508 /**
44509 * This method returns `false`.
44510 *
44511 * @static
44512 * @memberOf _
44513 * @since 4.13.0
44514 * @category Util
44515 * @returns {boolean} Returns `false`.
44516 * @example
44517 *
44518 * _.times(2, _.stubFalse);
44519 * // => [false, false]
44520 */
44521 function stubFalse() {
44522 return false;
44523 }
44524
44525 /**
44526 * This method returns a new empty object.
44527 *
44528 * @static
44529 * @memberOf _
44530 * @since 4.13.0
44531 * @category Util
44532 * @returns {Object} Returns the new empty object.
44533 * @example
44534 *
44535 * var objects = _.times(2, _.stubObject);
44536 *
44537 * console.log(objects);
44538 * // => [{}, {}]
44539 *
44540 * console.log(objects[0] === objects[1]);
44541 * // => false
44542 */
44543 function stubObject() {
44544 return {};
44545 }
44546
44547 /**
44548 * This method returns an empty string.
44549 *
44550 * @static
44551 * @memberOf _
44552 * @since 4.13.0
44553 * @category Util
44554 * @returns {string} Returns the empty string.
44555 * @example
44556 *
44557 * _.times(2, _.stubString);
44558 * // => ['', '']
44559 */
44560 function stubString() {
44561 return '';
44562 }
44563
44564 /**
44565 * This method returns `true`.
44566 *
44567 * @static
44568 * @memberOf _
44569 * @since 4.13.0
44570 * @category Util
44571 * @returns {boolean} Returns `true`.
44572 * @example
44573 *
44574 * _.times(2, _.stubTrue);
44575 * // => [true, true]
44576 */
44577 function stubTrue() {
44578 return true;
44579 }
44580
44581 /**
44582 * Invokes the iteratee `n` times, returning an array of the results of
44583 * each invocation. The iteratee is invoked with one argument; (index).
44584 *
44585 * @static
44586 * @since 0.1.0
44587 * @memberOf _
44588 * @category Util
44589 * @param {number} n The number of times to invoke `iteratee`.
44590 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
44591 * @returns {Array} Returns the array of results.
44592 * @example
44593 *
44594 * _.times(3, String);
44595 * // => ['0', '1', '2']
44596 *
44597 * _.times(4, _.constant(0));
44598 * // => [0, 0, 0, 0]
44599 */
44600 function times(n, iteratee) {
44601 n = toInteger(n);
44602 if (n < 1 || n > MAX_SAFE_INTEGER) {
44603 return [];
44604 }
44605 var index = MAX_ARRAY_LENGTH,
44606 length = nativeMin(n, MAX_ARRAY_LENGTH);
44607
44608 iteratee = getIteratee(iteratee);
44609 n -= MAX_ARRAY_LENGTH;
44610
44611 var result = baseTimes(length, iteratee);
44612 while (++index < n) {
44613 iteratee(index);
44614 }
44615 return result;
44616 }
44617
44618 /**
44619 * Converts `value` to a property path array.
44620 *
44621 * @static
44622 * @memberOf _
44623 * @since 4.0.0
44624 * @category Util
44625 * @param {*} value The value to convert.
44626 * @returns {Array} Returns the new property path array.
44627 * @example
44628 *
44629 * _.toPath('a.b.c');
44630 * // => ['a', 'b', 'c']
44631 *
44632 * _.toPath('a[0].b.c');
44633 * // => ['a', '0', 'b', 'c']
44634 */
44635 function toPath(value) {
44636 if (isArray(value)) {
44637 return arrayMap(value, toKey);
44638 }
44639 return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));
44640 }
44641
44642 /**
44643 * Generates a unique ID. If `prefix` is given, the ID is appended to it.
44644 *
44645 * @static
44646 * @since 0.1.0
44647 * @memberOf _
44648 * @category Util
44649 * @param {string} [prefix=''] The value to prefix the ID with.
44650 * @returns {string} Returns the unique ID.
44651 * @example
44652 *
44653 * _.uniqueId('contact_');
44654 * // => 'contact_104'
44655 *
44656 * _.uniqueId();
44657 * // => '105'
44658 */
44659 function uniqueId(prefix) {
44660 var id = ++idCounter;
44661 return toString(prefix) + id;
44662 }
44663
44664 /*------------------------------------------------------------------------*/
44665
44666 /**
44667 * Adds two numbers.
44668 *
44669 * @static
44670 * @memberOf _
44671 * @since 3.4.0
44672 * @category Math
44673 * @param {number} augend The first number in an addition.
44674 * @param {number} addend The second number in an addition.
44675 * @returns {number} Returns the total.
44676 * @example
44677 *
44678 * _.add(6, 4);
44679 * // => 10
44680 */
44681 var add = createMathOperation(function(augend, addend) {
44682 return augend + addend;
44683 }, 0);
44684
44685 /**
44686 * Computes `number` rounded up to `precision`.
44687 *
44688 * @static
44689 * @memberOf _
44690 * @since 3.10.0
44691 * @category Math
44692 * @param {number} number The number to round up.
44693 * @param {number} [precision=0] The precision to round up to.
44694 * @returns {number} Returns the rounded up number.
44695 * @example
44696 *
44697 * _.ceil(4.006);
44698 * // => 5
44699 *
44700 * _.ceil(6.004, 2);
44701 * // => 6.01
44702 *
44703 * _.ceil(6040, -2);
44704 * // => 6100
44705 */
44706 var ceil = createRound('ceil');
44707
44708 /**
44709 * Divide two numbers.
44710 *
44711 * @static
44712 * @memberOf _
44713 * @since 4.7.0
44714 * @category Math
44715 * @param {number} dividend The first number in a division.
44716 * @param {number} divisor The second number in a division.
44717 * @returns {number} Returns the quotient.
44718 * @example
44719 *
44720 * _.divide(6, 4);
44721 * // => 1.5
44722 */
44723 var divide = createMathOperation(function(dividend, divisor) {
44724 return dividend / divisor;
44725 }, 1);
44726
44727 /**
44728 * Computes `number` rounded down to `precision`.
44729 *
44730 * @static
44731 * @memberOf _
44732 * @since 3.10.0
44733 * @category Math
44734 * @param {number} number The number to round down.
44735 * @param {number} [precision=0] The precision to round down to.
44736 * @returns {number} Returns the rounded down number.
44737 * @example
44738 *
44739 * _.floor(4.006);
44740 * // => 4
44741 *
44742 * _.floor(0.046, 2);
44743 * // => 0.04
44744 *
44745 * _.floor(4060, -2);
44746 * // => 4000
44747 */
44748 var floor = createRound('floor');
44749
44750 /**
44751 * Computes the maximum value of `array`. If `array` is empty or falsey,
44752 * `undefined` is returned.
44753 *
44754 * @static
44755 * @since 0.1.0
44756 * @memberOf _
44757 * @category Math
44758 * @param {Array} array The array to iterate over.
44759 * @returns {*} Returns the maximum value.
44760 * @example
44761 *
44762 * _.max([4, 2, 8, 6]);
44763 * // => 8
44764 *
44765 * _.max([]);
44766 * // => undefined
44767 */
44768 function max(array) {
44769 return (array && array.length)
44770 ? baseExtremum(array, identity, baseGt)
44771 : undefined;
44772 }
44773
44774 /**
44775 * This method is like `_.max` except that it accepts `iteratee` which is
44776 * invoked for each element in `array` to generate the criterion by which
44777 * the value is ranked. The iteratee is invoked with one argument: (value).
44778 *
44779 * @static
44780 * @memberOf _
44781 * @since 4.0.0
44782 * @category Math
44783 * @param {Array} array The array to iterate over.
44784 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
44785 * @returns {*} Returns the maximum value.
44786 * @example
44787 *
44788 * var objects = [{ 'n': 1 }, { 'n': 2 }];
44789 *
44790 * _.maxBy(objects, function(o) { return o.n; });
44791 * // => { 'n': 2 }
44792 *
44793 * // The `_.property` iteratee shorthand.
44794 * _.maxBy(objects, 'n');
44795 * // => { 'n': 2 }
44796 */
44797 function maxBy(array, iteratee) {
44798 return (array && array.length)
44799 ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)
44800 : undefined;
44801 }
44802
44803 /**
44804 * Computes the mean of the values in `array`.
44805 *
44806 * @static
44807 * @memberOf _
44808 * @since 4.0.0
44809 * @category Math
44810 * @param {Array} array The array to iterate over.
44811 * @returns {number} Returns the mean.
44812 * @example
44813 *
44814 * _.mean([4, 2, 8, 6]);
44815 * // => 5
44816 */
44817 function mean(array) {
44818 return baseMean(array, identity);
44819 }
44820
44821 /**
44822 * This method is like `_.mean` except that it accepts `iteratee` which is
44823 * invoked for each element in `array` to generate the value to be averaged.
44824 * The iteratee is invoked with one argument: (value).
44825 *
44826 * @static
44827 * @memberOf _
44828 * @since 4.7.0
44829 * @category Math
44830 * @param {Array} array The array to iterate over.
44831 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
44832 * @returns {number} Returns the mean.
44833 * @example
44834 *
44835 * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
44836 *
44837 * _.meanBy(objects, function(o) { return o.n; });
44838 * // => 5
44839 *
44840 * // The `_.property` iteratee shorthand.
44841 * _.meanBy(objects, 'n');
44842 * // => 5
44843 */
44844 function meanBy(array, iteratee) {
44845 return baseMean(array, getIteratee(iteratee, 2));
44846 }
44847
44848 /**
44849 * Computes the minimum value of `array`. If `array` is empty or falsey,
44850 * `undefined` is returned.
44851 *
44852 * @static
44853 * @since 0.1.0
44854 * @memberOf _
44855 * @category Math
44856 * @param {Array} array The array to iterate over.
44857 * @returns {*} Returns the minimum value.
44858 * @example
44859 *
44860 * _.min([4, 2, 8, 6]);
44861 * // => 2
44862 *
44863 * _.min([]);
44864 * // => undefined
44865 */
44866 function min(array) {
44867 return (array && array.length)
44868 ? baseExtremum(array, identity, baseLt)
44869 : undefined;
44870 }
44871
44872 /**
44873 * This method is like `_.min` except that it accepts `iteratee` which is
44874 * invoked for each element in `array` to generate the criterion by which
44875 * the value is ranked. The iteratee is invoked with one argument: (value).
44876 *
44877 * @static
44878 * @memberOf _
44879 * @since 4.0.0
44880 * @category Math
44881 * @param {Array} array The array to iterate over.
44882 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
44883 * @returns {*} Returns the minimum value.
44884 * @example
44885 *
44886 * var objects = [{ 'n': 1 }, { 'n': 2 }];
44887 *
44888 * _.minBy(objects, function(o) { return o.n; });
44889 * // => { 'n': 1 }
44890 *
44891 * // The `_.property` iteratee shorthand.
44892 * _.minBy(objects, 'n');
44893 * // => { 'n': 1 }
44894 */
44895 function minBy(array, iteratee) {
44896 return (array && array.length)
44897 ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)
44898 : undefined;
44899 }
44900
44901 /**
44902 * Multiply two numbers.
44903 *
44904 * @static
44905 * @memberOf _
44906 * @since 4.7.0
44907 * @category Math
44908 * @param {number} multiplier The first number in a multiplication.
44909 * @param {number} multiplicand The second number in a multiplication.
44910 * @returns {number} Returns the product.
44911 * @example
44912 *
44913 * _.multiply(6, 4);
44914 * // => 24
44915 */
44916 var multiply = createMathOperation(function(multiplier, multiplicand) {
44917 return multiplier * multiplicand;
44918 }, 1);
44919
44920 /**
44921 * Computes `number` rounded to `precision`.
44922 *
44923 * @static
44924 * @memberOf _
44925 * @since 3.10.0
44926 * @category Math
44927 * @param {number} number The number to round.
44928 * @param {number} [precision=0] The precision to round to.
44929 * @returns {number} Returns the rounded number.
44930 * @example
44931 *
44932 * _.round(4.006);
44933 * // => 4
44934 *
44935 * _.round(4.006, 2);
44936 * // => 4.01
44937 *
44938 * _.round(4060, -2);
44939 * // => 4100
44940 */
44941 var round = createRound('round');
44942
44943 /**
44944 * Subtract two numbers.
44945 *
44946 * @static
44947 * @memberOf _
44948 * @since 4.0.0
44949 * @category Math
44950 * @param {number} minuend The first number in a subtraction.
44951 * @param {number} subtrahend The second number in a subtraction.
44952 * @returns {number} Returns the difference.
44953 * @example
44954 *
44955 * _.subtract(6, 4);
44956 * // => 2
44957 */
44958 var subtract = createMathOperation(function(minuend, subtrahend) {
44959 return minuend - subtrahend;
44960 }, 0);
44961
44962 /**
44963 * Computes the sum of the values in `array`.
44964 *
44965 * @static
44966 * @memberOf _
44967 * @since 3.4.0
44968 * @category Math
44969 * @param {Array} array The array to iterate over.
44970 * @returns {number} Returns the sum.
44971 * @example
44972 *
44973 * _.sum([4, 2, 8, 6]);
44974 * // => 20
44975 */
44976 function sum(array) {
44977 return (array && array.length)
44978 ? baseSum(array, identity)
44979 : 0;
44980 }
44981
44982 /**
44983 * This method is like `_.sum` except that it accepts `iteratee` which is
44984 * invoked for each element in `array` to generate the value to be summed.
44985 * The iteratee is invoked with one argument: (value).
44986 *
44987 * @static
44988 * @memberOf _
44989 * @since 4.0.0
44990 * @category Math
44991 * @param {Array} array The array to iterate over.
44992 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
44993 * @returns {number} Returns the sum.
44994 * @example
44995 *
44996 * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
44997 *
44998 * _.sumBy(objects, function(o) { return o.n; });
44999 * // => 20
45000 *
45001 * // The `_.property` iteratee shorthand.
45002 * _.sumBy(objects, 'n');
45003 * // => 20
45004 */
45005 function sumBy(array, iteratee) {
45006 return (array && array.length)
45007 ? baseSum(array, getIteratee(iteratee, 2))
45008 : 0;
45009 }
45010
45011 /*------------------------------------------------------------------------*/
45012
45013 // Add methods that return wrapped values in chain sequences.
45014 lodash.after = after;
45015 lodash.ary = ary;
45016 lodash.assign = assign;
45017 lodash.assignIn = assignIn;
45018 lodash.assignInWith = assignInWith;
45019 lodash.assignWith = assignWith;
45020 lodash.at = at;
45021 lodash.before = before;
45022 lodash.bind = bind;
45023 lodash.bindAll = bindAll;
45024 lodash.bindKey = bindKey;
45025 lodash.castArray = castArray;
45026 lodash.chain = chain;
45027 lodash.chunk = chunk;
45028 lodash.compact = compact;
45029 lodash.concat = concat;
45030 lodash.cond = cond;
45031 lodash.conforms = conforms;
45032 lodash.constant = constant;
45033 lodash.countBy = countBy;
45034 lodash.create = create;
45035 lodash.curry = curry;
45036 lodash.curryRight = curryRight;
45037 lodash.debounce = debounce;
45038 lodash.defaults = defaults;
45039 lodash.defaultsDeep = defaultsDeep;
45040 lodash.defer = defer;
45041 lodash.delay = delay;
45042 lodash.difference = difference;
45043 lodash.differenceBy = differenceBy;
45044 lodash.differenceWith = differenceWith;
45045 lodash.drop = drop;
45046 lodash.dropRight = dropRight;
45047 lodash.dropRightWhile = dropRightWhile;
45048 lodash.dropWhile = dropWhile;
45049 lodash.fill = fill;
45050 lodash.filter = filter;
45051 lodash.flatMap = flatMap;
45052 lodash.flatMapDeep = flatMapDeep;
45053 lodash.flatMapDepth = flatMapDepth;
45054 lodash.flatten = flatten;
45055 lodash.flattenDeep = flattenDeep;
45056 lodash.flattenDepth = flattenDepth;
45057 lodash.flip = flip;
45058 lodash.flow = flow;
45059 lodash.flowRight = flowRight;
45060 lodash.fromPairs = fromPairs;
45061 lodash.functions = functions;
45062 lodash.functionsIn = functionsIn;
45063 lodash.groupBy = groupBy;
45064 lodash.initial = initial;
45065 lodash.intersection = intersection;
45066 lodash.intersectionBy = intersectionBy;
45067 lodash.intersectionWith = intersectionWith;
45068 lodash.invert = invert;
45069 lodash.invertBy = invertBy;
45070 lodash.invokeMap = invokeMap;
45071 lodash.iteratee = iteratee;
45072 lodash.keyBy = keyBy;
45073 lodash.keys = keys;
45074 lodash.keysIn = keysIn;
45075 lodash.map = map;
45076 lodash.mapKeys = mapKeys;
45077 lodash.mapValues = mapValues;
45078 lodash.matches = matches;
45079 lodash.matchesProperty = matchesProperty;
45080 lodash.memoize = memoize;
45081 lodash.merge = merge;
45082 lodash.mergeWith = mergeWith;
45083 lodash.method = method;
45084 lodash.methodOf = methodOf;
45085 lodash.mixin = mixin;
45086 lodash.negate = negate;
45087 lodash.nthArg = nthArg;
45088 lodash.omit = omit;
45089 lodash.omitBy = omitBy;
45090 lodash.once = once;
45091 lodash.orderBy = orderBy;
45092 lodash.over = over;
45093 lodash.overArgs = overArgs;
45094 lodash.overEvery = overEvery;
45095 lodash.overSome = overSome;
45096 lodash.partial = partial;
45097 lodash.partialRight = partialRight;
45098 lodash.partition = partition;
45099 lodash.pick = pick;
45100 lodash.pickBy = pickBy;
45101 lodash.property = property;
45102 lodash.propertyOf = propertyOf;
45103 lodash.pull = pull;
45104 lodash.pullAll = pullAll;
45105 lodash.pullAllBy = pullAllBy;
45106 lodash.pullAllWith = pullAllWith;
45107 lodash.pullAt = pullAt;
45108 lodash.range = range;
45109 lodash.rangeRight = rangeRight;
45110 lodash.rearg = rearg;
45111 lodash.reject = reject;
45112 lodash.remove = remove;
45113 lodash.rest = rest;
45114 lodash.reverse = reverse;
45115 lodash.sampleSize = sampleSize;
45116 lodash.set = set;
45117 lodash.setWith = setWith;
45118 lodash.shuffle = shuffle;
45119 lodash.slice = slice;
45120 lodash.sortBy = sortBy;
45121 lodash.sortedUniq = sortedUniq;
45122 lodash.sortedUniqBy = sortedUniqBy;
45123 lodash.split = split;
45124 lodash.spread = spread;
45125 lodash.tail = tail;
45126 lodash.take = take;
45127 lodash.takeRight = takeRight;
45128 lodash.takeRightWhile = takeRightWhile;
45129 lodash.takeWhile = takeWhile;
45130 lodash.tap = tap;
45131 lodash.throttle = throttle;
45132 lodash.thru = thru;
45133 lodash.toArray = toArray;
45134 lodash.toPairs = toPairs;
45135 lodash.toPairsIn = toPairsIn;
45136 lodash.toPath = toPath;
45137 lodash.toPlainObject = toPlainObject;
45138 lodash.transform = transform;
45139 lodash.unary = unary;
45140 lodash.union = union;
45141 lodash.unionBy = unionBy;
45142 lodash.unionWith = unionWith;
45143 lodash.uniq = uniq;
45144 lodash.uniqBy = uniqBy;
45145 lodash.uniqWith = uniqWith;
45146 lodash.unset = unset;
45147 lodash.unzip = unzip;
45148 lodash.unzipWith = unzipWith;
45149 lodash.update = update;
45150 lodash.updateWith = updateWith;
45151 lodash.values = values;
45152 lodash.valuesIn = valuesIn;
45153 lodash.without = without;
45154 lodash.words = words;
45155 lodash.wrap = wrap;
45156 lodash.xor = xor;
45157 lodash.xorBy = xorBy;
45158 lodash.xorWith = xorWith;
45159 lodash.zip = zip;
45160 lodash.zipObject = zipObject;
45161 lodash.zipObjectDeep = zipObjectDeep;
45162 lodash.zipWith = zipWith;
45163
45164 // Add aliases.
45165 lodash.entries = toPairs;
45166 lodash.entriesIn = toPairsIn;
45167 lodash.extend = assignIn;
45168 lodash.extendWith = assignInWith;
45169
45170 // Add methods to `lodash.prototype`.
45171 mixin(lodash, lodash);
45172
45173 /*------------------------------------------------------------------------*/
45174
45175 // Add methods that return unwrapped values in chain sequences.
45176 lodash.add = add;
45177 lodash.attempt = attempt;
45178 lodash.camelCase = camelCase;
45179 lodash.capitalize = capitalize;
45180 lodash.ceil = ceil;
45181 lodash.clamp = clamp;
45182 lodash.clone = clone;
45183 lodash.cloneDeep = cloneDeep;
45184 lodash.cloneDeepWith = cloneDeepWith;
45185 lodash.cloneWith = cloneWith;
45186 lodash.conformsTo = conformsTo;
45187 lodash.deburr = deburr;
45188 lodash.defaultTo = defaultTo;
45189 lodash.divide = divide;
45190 lodash.endsWith = endsWith;
45191 lodash.eq = eq;
45192 lodash.escape = escape;
45193 lodash.escapeRegExp = escapeRegExp;
45194 lodash.every = every;
45195 lodash.find = find;
45196 lodash.findIndex = findIndex;
45197 lodash.findKey = findKey;
45198 lodash.findLast = findLast;
45199 lodash.findLastIndex = findLastIndex;
45200 lodash.findLastKey = findLastKey;
45201 lodash.floor = floor;
45202 lodash.forEach = forEach;
45203 lodash.forEachRight = forEachRight;
45204 lodash.forIn = forIn;
45205 lodash.forInRight = forInRight;
45206 lodash.forOwn = forOwn;
45207 lodash.forOwnRight = forOwnRight;
45208 lodash.get = get;
45209 lodash.gt = gt;
45210 lodash.gte = gte;
45211 lodash.has = has;
45212 lodash.hasIn = hasIn;
45213 lodash.head = head;
45214 lodash.identity = identity;
45215 lodash.includes = includes;
45216 lodash.indexOf = indexOf;
45217 lodash.inRange = inRange;
45218 lodash.invoke = invoke;
45219 lodash.isArguments = isArguments;
45220 lodash.isArray = isArray;
45221 lodash.isArrayBuffer = isArrayBuffer;
45222 lodash.isArrayLike = isArrayLike;
45223 lodash.isArrayLikeObject = isArrayLikeObject;
45224 lodash.isBoolean = isBoolean;
45225 lodash.isBuffer = isBuffer;
45226 lodash.isDate = isDate;
45227 lodash.isElement = isElement;
45228 lodash.isEmpty = isEmpty;
45229 lodash.isEqual = isEqual;
45230 lodash.isEqualWith = isEqualWith;
45231 lodash.isError = isError;
45232 lodash.isFinite = isFinite;
45233 lodash.isFunction = isFunction;
45234 lodash.isInteger = isInteger;
45235 lodash.isLength = isLength;
45236 lodash.isMap = isMap;
45237 lodash.isMatch = isMatch;
45238 lodash.isMatchWith = isMatchWith;
45239 lodash.isNaN = isNaN;
45240 lodash.isNative = isNative;
45241 lodash.isNil = isNil;
45242 lodash.isNull = isNull;
45243 lodash.isNumber = isNumber;
45244 lodash.isObject = isObject;
45245 lodash.isObjectLike = isObjectLike;
45246 lodash.isPlainObject = isPlainObject;
45247 lodash.isRegExp = isRegExp;
45248 lodash.isSafeInteger = isSafeInteger;
45249 lodash.isSet = isSet;
45250 lodash.isString = isString;
45251 lodash.isSymbol = isSymbol;
45252 lodash.isTypedArray = isTypedArray;
45253 lodash.isUndefined = isUndefined;
45254 lodash.isWeakMap = isWeakMap;
45255 lodash.isWeakSet = isWeakSet;
45256 lodash.join = join;
45257 lodash.kebabCase = kebabCase;
45258 lodash.last = last;
45259 lodash.lastIndexOf = lastIndexOf;
45260 lodash.lowerCase = lowerCase;
45261 lodash.lowerFirst = lowerFirst;
45262 lodash.lt = lt;
45263 lodash.lte = lte;
45264 lodash.max = max;
45265 lodash.maxBy = maxBy;
45266 lodash.mean = mean;
45267 lodash.meanBy = meanBy;
45268 lodash.min = min;
45269 lodash.minBy = minBy;
45270 lodash.stubArray = stubArray;
45271 lodash.stubFalse = stubFalse;
45272 lodash.stubObject = stubObject;
45273 lodash.stubString = stubString;
45274 lodash.stubTrue = stubTrue;
45275 lodash.multiply = multiply;
45276 lodash.nth = nth;
45277 lodash.noConflict = noConflict;
45278 lodash.noop = noop;
45279 lodash.now = now;
45280 lodash.pad = pad;
45281 lodash.padEnd = padEnd;
45282 lodash.padStart = padStart;
45283 lodash.parseInt = parseInt;
45284 lodash.random = random;
45285 lodash.reduce = reduce;
45286 lodash.reduceRight = reduceRight;
45287 lodash.repeat = repeat;
45288 lodash.replace = replace;
45289 lodash.result = result;
45290 lodash.round = round;
45291 lodash.runInContext = runInContext;
45292 lodash.sample = sample;
45293 lodash.size = size;
45294 lodash.snakeCase = snakeCase;
45295 lodash.some = some;
45296 lodash.sortedIndex = sortedIndex;
45297 lodash.sortedIndexBy = sortedIndexBy;
45298 lodash.sortedIndexOf = sortedIndexOf;
45299 lodash.sortedLastIndex = sortedLastIndex;
45300 lodash.sortedLastIndexBy = sortedLastIndexBy;
45301 lodash.sortedLastIndexOf = sortedLastIndexOf;
45302 lodash.startCase = startCase;
45303 lodash.startsWith = startsWith;
45304 lodash.subtract = subtract;
45305 lodash.sum = sum;
45306 lodash.sumBy = sumBy;
45307 lodash.template = template;
45308 lodash.times = times;
45309 lodash.toFinite = toFinite;
45310 lodash.toInteger = toInteger;
45311 lodash.toLength = toLength;
45312 lodash.toLower = toLower;
45313 lodash.toNumber = toNumber;
45314 lodash.toSafeInteger = toSafeInteger;
45315 lodash.toString = toString;
45316 lodash.toUpper = toUpper;
45317 lodash.trim = trim;
45318 lodash.trimEnd = trimEnd;
45319 lodash.trimStart = trimStart;
45320 lodash.truncate = truncate;
45321 lodash.unescape = unescape;
45322 lodash.uniqueId = uniqueId;
45323 lodash.upperCase = upperCase;
45324 lodash.upperFirst = upperFirst;
45325
45326 // Add aliases.
45327 lodash.each = forEach;
45328 lodash.eachRight = forEachRight;
45329 lodash.first = head;
45330
45331 mixin(lodash, (function() {
45332 var source = {};
45333 baseForOwn(lodash, function(func, methodName) {
45334 if (!hasOwnProperty.call(lodash.prototype, methodName)) {
45335 source[methodName] = func;
45336 }
45337 });
45338 return source;
45339 }()), { 'chain': false });
45340
45341 /*------------------------------------------------------------------------*/
45342
45343 /**
45344 * The semantic version number.
45345 *
45346 * @static
45347 * @memberOf _
45348 * @type {string}
45349 */
45350 lodash.VERSION = VERSION;
45351
45352 // Assign default placeholders.
45353 arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {
45354 lodash[methodName].placeholder = lodash;
45355 });
45356
45357 // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.
45358 arrayEach(['drop', 'take'], function(methodName, index) {
45359 LazyWrapper.prototype[methodName] = function(n) {
45360 n = n === undefined ? 1 : nativeMax(toInteger(n), 0);
45361
45362 var result = (this.__filtered__ && !index)
45363 ? new LazyWrapper(this)
45364 : this.clone();
45365
45366 if (result.__filtered__) {
45367 result.__takeCount__ = nativeMin(n, result.__takeCount__);
45368 } else {
45369 result.__views__.push({
45370 'size': nativeMin(n, MAX_ARRAY_LENGTH),
45371 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')
45372 });
45373 }
45374 return result;
45375 };
45376
45377 LazyWrapper.prototype[methodName + 'Right'] = function(n) {
45378 return this.reverse()[methodName](n).reverse();
45379 };
45380 });
45381
45382 // Add `LazyWrapper` methods that accept an `iteratee` value.
45383 arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {
45384 var type = index + 1,
45385 isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;
45386
45387 LazyWrapper.prototype[methodName] = function(iteratee) {
45388 var result = this.clone();
45389 result.__iteratees__.push({
45390 'iteratee': getIteratee(iteratee, 3),
45391 'type': type
45392 });
45393 result.__filtered__ = result.__filtered__ || isFilter;
45394 return result;
45395 };
45396 });
45397
45398 // Add `LazyWrapper` methods for `_.head` and `_.last`.
45399 arrayEach(['head', 'last'], function(methodName, index) {
45400 var takeName = 'take' + (index ? 'Right' : '');
45401
45402 LazyWrapper.prototype[methodName] = function() {
45403 return this[takeName](1).value()[0];
45404 };
45405 });
45406
45407 // Add `LazyWrapper` methods for `_.initial` and `_.tail`.
45408 arrayEach(['initial', 'tail'], function(methodName, index) {
45409 var dropName = 'drop' + (index ? '' : 'Right');
45410
45411 LazyWrapper.prototype[methodName] = function() {
45412 return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);
45413 };
45414 });
45415
45416 LazyWrapper.prototype.compact = function() {
45417 return this.filter(identity);
45418 };
45419
45420 LazyWrapper.prototype.find = function(predicate) {
45421 return this.filter(predicate).head();
45422 };
45423
45424 LazyWrapper.prototype.findLast = function(predicate) {
45425 return this.reverse().find(predicate);
45426 };
45427
45428 LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {
45429 if (typeof path == 'function') {
45430 return new LazyWrapper(this);
45431 }
45432 return this.map(function(value) {
45433 return baseInvoke(value, path, args);
45434 });
45435 });
45436
45437 LazyWrapper.prototype.reject = function(predicate) {
45438 return this.filter(negate(getIteratee(predicate)));
45439 };
45440
45441 LazyWrapper.prototype.slice = function(start, end) {
45442 start = toInteger(start);
45443
45444 var result = this;
45445 if (result.__filtered__ && (start > 0 || end < 0)) {
45446 return new LazyWrapper(result);
45447 }
45448 if (start < 0) {
45449 result = result.takeRight(-start);
45450 } else if (start) {
45451 result = result.drop(start);
45452 }
45453 if (end !== undefined) {
45454 end = toInteger(end);
45455 result = end < 0 ? result.dropRight(-end) : result.take(end - start);
45456 }
45457 return result;
45458 };
45459
45460 LazyWrapper.prototype.takeRightWhile = function(predicate) {
45461 return this.reverse().takeWhile(predicate).reverse();
45462 };
45463
45464 LazyWrapper.prototype.toArray = function() {
45465 return this.take(MAX_ARRAY_LENGTH);
45466 };
45467
45468 // Add `LazyWrapper` methods to `lodash.prototype`.
45469 baseForOwn(LazyWrapper.prototype, function(func, methodName) {
45470 var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),
45471 isTaker = /^(?:head|last)$/.test(methodName),
45472 lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],
45473 retUnwrapped = isTaker || /^find/.test(methodName);
45474
45475 if (!lodashFunc) {
45476 return;
45477 }
45478 lodash.prototype[methodName] = function() {
45479 var value = this.__wrapped__,
45480 args = isTaker ? [1] : arguments,
45481 isLazy = value instanceof LazyWrapper,
45482 iteratee = args[0],
45483 useLazy = isLazy || isArray(value);
45484
45485 var interceptor = function(value) {
45486 var result = lodashFunc.apply(lodash, arrayPush([value], args));
45487 return (isTaker && chainAll) ? result[0] : result;
45488 };
45489
45490 if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {
45491 // Avoid lazy use if the iteratee has a "length" value other than `1`.
45492 isLazy = useLazy = false;
45493 }
45494 var chainAll = this.__chain__,
45495 isHybrid = !!this.__actions__.length,
45496 isUnwrapped = retUnwrapped && !chainAll,
45497 onlyLazy = isLazy && !isHybrid;
45498
45499 if (!retUnwrapped && useLazy) {
45500 value = onlyLazy ? value : new LazyWrapper(this);
45501 var result = func.apply(value, args);
45502 result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });
45503 return new LodashWrapper(result, chainAll);
45504 }
45505 if (isUnwrapped && onlyLazy) {
45506 return func.apply(this, args);
45507 }
45508 result = this.thru(interceptor);
45509 return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;
45510 };
45511 });
45512
45513 // Add `Array` methods to `lodash.prototype`.
45514 arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {
45515 var func = arrayProto[methodName],
45516 chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',
45517 retUnwrapped = /^(?:pop|shift)$/.test(methodName);
45518
45519 lodash.prototype[methodName] = function() {
45520 var args = arguments;
45521 if (retUnwrapped && !this.__chain__) {
45522 var value = this.value();
45523 return func.apply(isArray(value) ? value : [], args);
45524 }
45525 return this[chainName](function(value) {
45526 return func.apply(isArray(value) ? value : [], args);
45527 });
45528 };
45529 });
45530
45531 // Map minified method names to their real names.
45532 baseForOwn(LazyWrapper.prototype, function(func, methodName) {
45533 var lodashFunc = lodash[methodName];
45534 if (lodashFunc) {
45535 var key = (lodashFunc.name + ''),
45536 names = realNames[key] || (realNames[key] = []);
45537
45538 names.push({ 'name': methodName, 'func': lodashFunc });
45539 }
45540 });
45541
45542 realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{
45543 'name': 'wrapper',
45544 'func': undefined
45545 }];
45546
45547 // Add methods to `LazyWrapper`.
45548 LazyWrapper.prototype.clone = lazyClone;
45549 LazyWrapper.prototype.reverse = lazyReverse;
45550 LazyWrapper.prototype.value = lazyValue;
45551
45552 // Add chain sequence methods to the `lodash` wrapper.
45553 lodash.prototype.at = wrapperAt;
45554 lodash.prototype.chain = wrapperChain;
45555 lodash.prototype.commit = wrapperCommit;
45556 lodash.prototype.next = wrapperNext;
45557 lodash.prototype.plant = wrapperPlant;
45558 lodash.prototype.reverse = wrapperReverse;
45559 lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
45560
45561 // Add lazy aliases.
45562 lodash.prototype.first = lodash.prototype.head;
45563
45564 if (symIterator) {
45565 lodash.prototype[symIterator] = wrapperToIterator;
45566 }
45567 return lodash;
45568 });
45569
45570 /*--------------------------------------------------------------------------*/
45571
45572 // Export lodash.
45573 var _ = runInContext();
45574
45575 // Some AMD build optimizers, like r.js, check for condition patterns like:
45576 if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
45577 // Expose Lodash on the global object to prevent errors when Lodash is
45578 // loaded by a script tag in the presence of an AMD loader.
45579 // See http://requirejs.org/docs/errors.html#mismatch for more details.
45580 // Use `_.noConflict` to remove Lodash from the global object.
45581 root._ = _;
45582
45583 // Define as an anonymous module so, through path mapping, it can be
45584 // referenced as the "underscore" module.
45585 define(function() {
45586 return _;
45587 });
45588 }
45589 // Check for `exports` after `define` in case a build optimizer adds it.
45590 else if (freeModule) {
45591 // Export for Node.js.
45592 (freeModule.exports = _)._ = _;
45593 // Export for CommonJS support.
45594 freeExports._ = _;
45595 }
45596 else {
45597 // Export to the global object.
45598 root._ = _;
45599 }
45600}.call(this));
45601
45602/* 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)))
45603
45604/***/ }),
45605
45606/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
45607/*!**************************************************!*\
45608 !*** ./node_modules/moment/locale sync ^\.\/.*$ ***!
45609 \**************************************************/
45610/*! no static exports found */
45611/***/ (function(module, exports, __webpack_require__) {
45612
45613var map = {
45614 "./af": "./node_modules/moment/locale/af.js",
45615 "./af.js": "./node_modules/moment/locale/af.js",
45616 "./ar": "./node_modules/moment/locale/ar.js",
45617 "./ar-dz": "./node_modules/moment/locale/ar-dz.js",
45618 "./ar-dz.js": "./node_modules/moment/locale/ar-dz.js",
45619 "./ar-kw": "./node_modules/moment/locale/ar-kw.js",
45620 "./ar-kw.js": "./node_modules/moment/locale/ar-kw.js",
45621 "./ar-ly": "./node_modules/moment/locale/ar-ly.js",
45622 "./ar-ly.js": "./node_modules/moment/locale/ar-ly.js",
45623 "./ar-ma": "./node_modules/moment/locale/ar-ma.js",
45624 "./ar-ma.js": "./node_modules/moment/locale/ar-ma.js",
45625 "./ar-sa": "./node_modules/moment/locale/ar-sa.js",
45626 "./ar-sa.js": "./node_modules/moment/locale/ar-sa.js",
45627 "./ar-tn": "./node_modules/moment/locale/ar-tn.js",
45628 "./ar-tn.js": "./node_modules/moment/locale/ar-tn.js",
45629 "./ar.js": "./node_modules/moment/locale/ar.js",
45630 "./az": "./node_modules/moment/locale/az.js",
45631 "./az.js": "./node_modules/moment/locale/az.js",
45632 "./be": "./node_modules/moment/locale/be.js",
45633 "./be.js": "./node_modules/moment/locale/be.js",
45634 "./bg": "./node_modules/moment/locale/bg.js",
45635 "./bg.js": "./node_modules/moment/locale/bg.js",
45636 "./bm": "./node_modules/moment/locale/bm.js",
45637 "./bm.js": "./node_modules/moment/locale/bm.js",
45638 "./bn": "./node_modules/moment/locale/bn.js",
45639 "./bn.js": "./node_modules/moment/locale/bn.js",
45640 "./bo": "./node_modules/moment/locale/bo.js",
45641 "./bo.js": "./node_modules/moment/locale/bo.js",
45642 "./br": "./node_modules/moment/locale/br.js",
45643 "./br.js": "./node_modules/moment/locale/br.js",
45644 "./bs": "./node_modules/moment/locale/bs.js",
45645 "./bs.js": "./node_modules/moment/locale/bs.js",
45646 "./ca": "./node_modules/moment/locale/ca.js",
45647 "./ca.js": "./node_modules/moment/locale/ca.js",
45648 "./cs": "./node_modules/moment/locale/cs.js",
45649 "./cs.js": "./node_modules/moment/locale/cs.js",
45650 "./cv": "./node_modules/moment/locale/cv.js",
45651 "./cv.js": "./node_modules/moment/locale/cv.js",
45652 "./cy": "./node_modules/moment/locale/cy.js",
45653 "./cy.js": "./node_modules/moment/locale/cy.js",
45654 "./da": "./node_modules/moment/locale/da.js",
45655 "./da.js": "./node_modules/moment/locale/da.js",
45656 "./de": "./node_modules/moment/locale/de.js",
45657 "./de-at": "./node_modules/moment/locale/de-at.js",
45658 "./de-at.js": "./node_modules/moment/locale/de-at.js",
45659 "./de-ch": "./node_modules/moment/locale/de-ch.js",
45660 "./de-ch.js": "./node_modules/moment/locale/de-ch.js",
45661 "./de.js": "./node_modules/moment/locale/de.js",
45662 "./dv": "./node_modules/moment/locale/dv.js",
45663 "./dv.js": "./node_modules/moment/locale/dv.js",
45664 "./el": "./node_modules/moment/locale/el.js",
45665 "./el.js": "./node_modules/moment/locale/el.js",
45666 "./en-au": "./node_modules/moment/locale/en-au.js",
45667 "./en-au.js": "./node_modules/moment/locale/en-au.js",
45668 "./en-ca": "./node_modules/moment/locale/en-ca.js",
45669 "./en-ca.js": "./node_modules/moment/locale/en-ca.js",
45670 "./en-gb": "./node_modules/moment/locale/en-gb.js",
45671 "./en-gb.js": "./node_modules/moment/locale/en-gb.js",
45672 "./en-ie": "./node_modules/moment/locale/en-ie.js",
45673 "./en-ie.js": "./node_modules/moment/locale/en-ie.js",
45674 "./en-il": "./node_modules/moment/locale/en-il.js",
45675 "./en-il.js": "./node_modules/moment/locale/en-il.js",
45676 "./en-nz": "./node_modules/moment/locale/en-nz.js",
45677 "./en-nz.js": "./node_modules/moment/locale/en-nz.js",
45678 "./eo": "./node_modules/moment/locale/eo.js",
45679 "./eo.js": "./node_modules/moment/locale/eo.js",
45680 "./es": "./node_modules/moment/locale/es.js",
45681 "./es-do": "./node_modules/moment/locale/es-do.js",
45682 "./es-do.js": "./node_modules/moment/locale/es-do.js",
45683 "./es-us": "./node_modules/moment/locale/es-us.js",
45684 "./es-us.js": "./node_modules/moment/locale/es-us.js",
45685 "./es.js": "./node_modules/moment/locale/es.js",
45686 "./et": "./node_modules/moment/locale/et.js",
45687 "./et.js": "./node_modules/moment/locale/et.js",
45688 "./eu": "./node_modules/moment/locale/eu.js",
45689 "./eu.js": "./node_modules/moment/locale/eu.js",
45690 "./fa": "./node_modules/moment/locale/fa.js",
45691 "./fa.js": "./node_modules/moment/locale/fa.js",
45692 "./fi": "./node_modules/moment/locale/fi.js",
45693 "./fi.js": "./node_modules/moment/locale/fi.js",
45694 "./fo": "./node_modules/moment/locale/fo.js",
45695 "./fo.js": "./node_modules/moment/locale/fo.js",
45696 "./fr": "./node_modules/moment/locale/fr.js",
45697 "./fr-ca": "./node_modules/moment/locale/fr-ca.js",
45698 "./fr-ca.js": "./node_modules/moment/locale/fr-ca.js",
45699 "./fr-ch": "./node_modules/moment/locale/fr-ch.js",
45700 "./fr-ch.js": "./node_modules/moment/locale/fr-ch.js",
45701 "./fr.js": "./node_modules/moment/locale/fr.js",
45702 "./fy": "./node_modules/moment/locale/fy.js",
45703 "./fy.js": "./node_modules/moment/locale/fy.js",
45704 "./gd": "./node_modules/moment/locale/gd.js",
45705 "./gd.js": "./node_modules/moment/locale/gd.js",
45706 "./gl": "./node_modules/moment/locale/gl.js",
45707 "./gl.js": "./node_modules/moment/locale/gl.js",
45708 "./gom-latn": "./node_modules/moment/locale/gom-latn.js",
45709 "./gom-latn.js": "./node_modules/moment/locale/gom-latn.js",
45710 "./gu": "./node_modules/moment/locale/gu.js",
45711 "./gu.js": "./node_modules/moment/locale/gu.js",
45712 "./he": "./node_modules/moment/locale/he.js",
45713 "./he.js": "./node_modules/moment/locale/he.js",
45714 "./hi": "./node_modules/moment/locale/hi.js",
45715 "./hi.js": "./node_modules/moment/locale/hi.js",
45716 "./hr": "./node_modules/moment/locale/hr.js",
45717 "./hr.js": "./node_modules/moment/locale/hr.js",
45718 "./hu": "./node_modules/moment/locale/hu.js",
45719 "./hu.js": "./node_modules/moment/locale/hu.js",
45720 "./hy-am": "./node_modules/moment/locale/hy-am.js",
45721 "./hy-am.js": "./node_modules/moment/locale/hy-am.js",
45722 "./id": "./node_modules/moment/locale/id.js",
45723 "./id.js": "./node_modules/moment/locale/id.js",
45724 "./is": "./node_modules/moment/locale/is.js",
45725 "./is.js": "./node_modules/moment/locale/is.js",
45726 "./it": "./node_modules/moment/locale/it.js",
45727 "./it.js": "./node_modules/moment/locale/it.js",
45728 "./ja": "./node_modules/moment/locale/ja.js",
45729 "./ja.js": "./node_modules/moment/locale/ja.js",
45730 "./jv": "./node_modules/moment/locale/jv.js",
45731 "./jv.js": "./node_modules/moment/locale/jv.js",
45732 "./ka": "./node_modules/moment/locale/ka.js",
45733 "./ka.js": "./node_modules/moment/locale/ka.js",
45734 "./kk": "./node_modules/moment/locale/kk.js",
45735 "./kk.js": "./node_modules/moment/locale/kk.js",
45736 "./km": "./node_modules/moment/locale/km.js",
45737 "./km.js": "./node_modules/moment/locale/km.js",
45738 "./kn": "./node_modules/moment/locale/kn.js",
45739 "./kn.js": "./node_modules/moment/locale/kn.js",
45740 "./ko": "./node_modules/moment/locale/ko.js",
45741 "./ko.js": "./node_modules/moment/locale/ko.js",
45742 "./ky": "./node_modules/moment/locale/ky.js",
45743 "./ky.js": "./node_modules/moment/locale/ky.js",
45744 "./lb": "./node_modules/moment/locale/lb.js",
45745 "./lb.js": "./node_modules/moment/locale/lb.js",
45746 "./lo": "./node_modules/moment/locale/lo.js",
45747 "./lo.js": "./node_modules/moment/locale/lo.js",
45748 "./lt": "./node_modules/moment/locale/lt.js",
45749 "./lt.js": "./node_modules/moment/locale/lt.js",
45750 "./lv": "./node_modules/moment/locale/lv.js",
45751 "./lv.js": "./node_modules/moment/locale/lv.js",
45752 "./me": "./node_modules/moment/locale/me.js",
45753 "./me.js": "./node_modules/moment/locale/me.js",
45754 "./mi": "./node_modules/moment/locale/mi.js",
45755 "./mi.js": "./node_modules/moment/locale/mi.js",
45756 "./mk": "./node_modules/moment/locale/mk.js",
45757 "./mk.js": "./node_modules/moment/locale/mk.js",
45758 "./ml": "./node_modules/moment/locale/ml.js",
45759 "./ml.js": "./node_modules/moment/locale/ml.js",
45760 "./mr": "./node_modules/moment/locale/mr.js",
45761 "./mr.js": "./node_modules/moment/locale/mr.js",
45762 "./ms": "./node_modules/moment/locale/ms.js",
45763 "./ms-my": "./node_modules/moment/locale/ms-my.js",
45764 "./ms-my.js": "./node_modules/moment/locale/ms-my.js",
45765 "./ms.js": "./node_modules/moment/locale/ms.js",
45766 "./mt": "./node_modules/moment/locale/mt.js",
45767 "./mt.js": "./node_modules/moment/locale/mt.js",
45768 "./my": "./node_modules/moment/locale/my.js",
45769 "./my.js": "./node_modules/moment/locale/my.js",
45770 "./nb": "./node_modules/moment/locale/nb.js",
45771 "./nb.js": "./node_modules/moment/locale/nb.js",
45772 "./ne": "./node_modules/moment/locale/ne.js",
45773 "./ne.js": "./node_modules/moment/locale/ne.js",
45774 "./nl": "./node_modules/moment/locale/nl.js",
45775 "./nl-be": "./node_modules/moment/locale/nl-be.js",
45776 "./nl-be.js": "./node_modules/moment/locale/nl-be.js",
45777 "./nl.js": "./node_modules/moment/locale/nl.js",
45778 "./nn": "./node_modules/moment/locale/nn.js",
45779 "./nn.js": "./node_modules/moment/locale/nn.js",
45780 "./pa-in": "./node_modules/moment/locale/pa-in.js",
45781 "./pa-in.js": "./node_modules/moment/locale/pa-in.js",
45782 "./pl": "./node_modules/moment/locale/pl.js",
45783 "./pl.js": "./node_modules/moment/locale/pl.js",
45784 "./pt": "./node_modules/moment/locale/pt.js",
45785 "./pt-br": "./node_modules/moment/locale/pt-br.js",
45786 "./pt-br.js": "./node_modules/moment/locale/pt-br.js",
45787 "./pt.js": "./node_modules/moment/locale/pt.js",
45788 "./ro": "./node_modules/moment/locale/ro.js",
45789 "./ro.js": "./node_modules/moment/locale/ro.js",
45790 "./ru": "./node_modules/moment/locale/ru.js",
45791 "./ru.js": "./node_modules/moment/locale/ru.js",
45792 "./sd": "./node_modules/moment/locale/sd.js",
45793 "./sd.js": "./node_modules/moment/locale/sd.js",
45794 "./se": "./node_modules/moment/locale/se.js",
45795 "./se.js": "./node_modules/moment/locale/se.js",
45796 "./si": "./node_modules/moment/locale/si.js",
45797 "./si.js": "./node_modules/moment/locale/si.js",
45798 "./sk": "./node_modules/moment/locale/sk.js",
45799 "./sk.js": "./node_modules/moment/locale/sk.js",
45800 "./sl": "./node_modules/moment/locale/sl.js",
45801 "./sl.js": "./node_modules/moment/locale/sl.js",
45802 "./sq": "./node_modules/moment/locale/sq.js",
45803 "./sq.js": "./node_modules/moment/locale/sq.js",
45804 "./sr": "./node_modules/moment/locale/sr.js",
45805 "./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js",
45806 "./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js",
45807 "./sr.js": "./node_modules/moment/locale/sr.js",
45808 "./ss": "./node_modules/moment/locale/ss.js",
45809 "./ss.js": "./node_modules/moment/locale/ss.js",
45810 "./sv": "./node_modules/moment/locale/sv.js",
45811 "./sv.js": "./node_modules/moment/locale/sv.js",
45812 "./sw": "./node_modules/moment/locale/sw.js",
45813 "./sw.js": "./node_modules/moment/locale/sw.js",
45814 "./ta": "./node_modules/moment/locale/ta.js",
45815 "./ta.js": "./node_modules/moment/locale/ta.js",
45816 "./te": "./node_modules/moment/locale/te.js",
45817 "./te.js": "./node_modules/moment/locale/te.js",
45818 "./tet": "./node_modules/moment/locale/tet.js",
45819 "./tet.js": "./node_modules/moment/locale/tet.js",
45820 "./tg": "./node_modules/moment/locale/tg.js",
45821 "./tg.js": "./node_modules/moment/locale/tg.js",
45822 "./th": "./node_modules/moment/locale/th.js",
45823 "./th.js": "./node_modules/moment/locale/th.js",
45824 "./tl-ph": "./node_modules/moment/locale/tl-ph.js",
45825 "./tl-ph.js": "./node_modules/moment/locale/tl-ph.js",
45826 "./tlh": "./node_modules/moment/locale/tlh.js",
45827 "./tlh.js": "./node_modules/moment/locale/tlh.js",
45828 "./tr": "./node_modules/moment/locale/tr.js",
45829 "./tr.js": "./node_modules/moment/locale/tr.js",
45830 "./tzl": "./node_modules/moment/locale/tzl.js",
45831 "./tzl.js": "./node_modules/moment/locale/tzl.js",
45832 "./tzm": "./node_modules/moment/locale/tzm.js",
45833 "./tzm-latn": "./node_modules/moment/locale/tzm-latn.js",
45834 "./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js",
45835 "./tzm.js": "./node_modules/moment/locale/tzm.js",
45836 "./ug-cn": "./node_modules/moment/locale/ug-cn.js",
45837 "./ug-cn.js": "./node_modules/moment/locale/ug-cn.js",
45838 "./uk": "./node_modules/moment/locale/uk.js",
45839 "./uk.js": "./node_modules/moment/locale/uk.js",
45840 "./ur": "./node_modules/moment/locale/ur.js",
45841 "./ur.js": "./node_modules/moment/locale/ur.js",
45842 "./uz": "./node_modules/moment/locale/uz.js",
45843 "./uz-latn": "./node_modules/moment/locale/uz-latn.js",
45844 "./uz-latn.js": "./node_modules/moment/locale/uz-latn.js",
45845 "./uz.js": "./node_modules/moment/locale/uz.js",
45846 "./vi": "./node_modules/moment/locale/vi.js",
45847 "./vi.js": "./node_modules/moment/locale/vi.js",
45848 "./x-pseudo": "./node_modules/moment/locale/x-pseudo.js",
45849 "./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js",
45850 "./yo": "./node_modules/moment/locale/yo.js",
45851 "./yo.js": "./node_modules/moment/locale/yo.js",
45852 "./zh-cn": "./node_modules/moment/locale/zh-cn.js",
45853 "./zh-cn.js": "./node_modules/moment/locale/zh-cn.js",
45854 "./zh-hk": "./node_modules/moment/locale/zh-hk.js",
45855 "./zh-hk.js": "./node_modules/moment/locale/zh-hk.js",
45856 "./zh-tw": "./node_modules/moment/locale/zh-tw.js",
45857 "./zh-tw.js": "./node_modules/moment/locale/zh-tw.js"
45858};
45859
45860
45861function webpackContext(req) {
45862 var id = webpackContextResolve(req);
45863 var module = __webpack_require__(id);
45864 return module;
45865}
45866function webpackContextResolve(req) {
45867 var id = map[req];
45868 if(!(id + 1)) { // check for number or string
45869 var e = new Error('Cannot find module "' + req + '".');
45870 e.code = 'MODULE_NOT_FOUND';
45871 throw e;
45872 }
45873 return id;
45874}
45875webpackContext.keys = function webpackContextKeys() {
45876 return Object.keys(map);
45877};
45878webpackContext.resolve = webpackContextResolve;
45879module.exports = webpackContext;
45880webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$";
45881
45882/***/ }),
45883
45884/***/ "./node_modules/moment/locale/af.js":
45885/*!******************************************!*\
45886 !*** ./node_modules/moment/locale/af.js ***!
45887 \******************************************/
45888/*! no static exports found */
45889/***/ (function(module, exports, __webpack_require__) {
45890
45891//! moment.js locale configuration
45892
45893;(function (global, factory) {
45894 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45895 undefined
45896}(this, (function (moment) { 'use strict';
45897
45898
45899var af = moment.defineLocale('af', {
45900 months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
45901 monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
45902 weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
45903 weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
45904 weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
45905 meridiemParse: /vm|nm/i,
45906 isPM : function (input) {
45907 return /^nm$/i.test(input);
45908 },
45909 meridiem : function (hours, minutes, isLower) {
45910 if (hours < 12) {
45911 return isLower ? 'vm' : 'VM';
45912 } else {
45913 return isLower ? 'nm' : 'NM';
45914 }
45915 },
45916 longDateFormat : {
45917 LT : 'HH:mm',
45918 LTS : 'HH:mm:ss',
45919 L : 'DD/MM/YYYY',
45920 LL : 'D MMMM YYYY',
45921 LLL : 'D MMMM YYYY HH:mm',
45922 LLLL : 'dddd, D MMMM YYYY HH:mm'
45923 },
45924 calendar : {
45925 sameDay : '[Vandag om] LT',
45926 nextDay : '[Môre om] LT',
45927 nextWeek : 'dddd [om] LT',
45928 lastDay : '[Gister om] LT',
45929 lastWeek : '[Laas] dddd [om] LT',
45930 sameElse : 'L'
45931 },
45932 relativeTime : {
45933 future : 'oor %s',
45934 past : '%s gelede',
45935 s : '\'n paar sekondes',
45936 ss : '%d sekondes',
45937 m : '\'n minuut',
45938 mm : '%d minute',
45939 h : '\'n uur',
45940 hh : '%d ure',
45941 d : '\'n dag',
45942 dd : '%d dae',
45943 M : '\'n maand',
45944 MM : '%d maande',
45945 y : '\'n jaar',
45946 yy : '%d jaar'
45947 },
45948 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
45949 ordinal : function (number) {
45950 return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
45951 },
45952 week : {
45953 dow : 1, // Maandag is die eerste dag van die week.
45954 doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
45955 }
45956});
45957
45958return af;
45959
45960})));
45961
45962
45963/***/ }),
45964
45965/***/ "./node_modules/moment/locale/ar-dz.js":
45966/*!*********************************************!*\
45967 !*** ./node_modules/moment/locale/ar-dz.js ***!
45968 \*********************************************/
45969/*! no static exports found */
45970/***/ (function(module, exports, __webpack_require__) {
45971
45972//! moment.js locale configuration
45973
45974;(function (global, factory) {
45975 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
45976 undefined
45977}(this, (function (moment) { 'use strict';
45978
45979
45980var arDz = moment.defineLocale('ar-dz', {
45981 months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
45982 monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
45983 weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
45984 weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
45985 weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),
45986 weekdaysParseExact : true,
45987 longDateFormat : {
45988 LT : 'HH:mm',
45989 LTS : 'HH:mm:ss',
45990 L : 'DD/MM/YYYY',
45991 LL : 'D MMMM YYYY',
45992 LLL : 'D MMMM YYYY HH:mm',
45993 LLLL : 'dddd D MMMM YYYY HH:mm'
45994 },
45995 calendar : {
45996 sameDay: '[اليوم على الساعة] LT',
45997 nextDay: '[غدا على الساعة] LT',
45998 nextWeek: 'dddd [على الساعة] LT',
45999 lastDay: '[أمس على الساعة] LT',
46000 lastWeek: 'dddd [على الساعة] LT',
46001 sameElse: 'L'
46002 },
46003 relativeTime : {
46004 future : 'في %s',
46005 past : 'منذ %s',
46006 s : 'ثوان',
46007 ss : '%d ثانية',
46008 m : 'دقيقة',
46009 mm : '%d دقائق',
46010 h : 'ساعة',
46011 hh : '%d ساعات',
46012 d : 'يوم',
46013 dd : '%d أيام',
46014 M : 'شهر',
46015 MM : '%d أشهر',
46016 y : 'سنة',
46017 yy : '%d سنوات'
46018 },
46019 week : {
46020 dow : 0, // Sunday is the first day of the week.
46021 doy : 4 // The week that contains Jan 1st is the first week of the year.
46022 }
46023});
46024
46025return arDz;
46026
46027})));
46028
46029
46030/***/ }),
46031
46032/***/ "./node_modules/moment/locale/ar-kw.js":
46033/*!*********************************************!*\
46034 !*** ./node_modules/moment/locale/ar-kw.js ***!
46035 \*********************************************/
46036/*! no static exports found */
46037/***/ (function(module, exports, __webpack_require__) {
46038
46039//! moment.js locale configuration
46040
46041;(function (global, factory) {
46042 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46043 undefined
46044}(this, (function (moment) { 'use strict';
46045
46046
46047var arKw = moment.defineLocale('ar-kw', {
46048 months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
46049 monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
46050 weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
46051 weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
46052 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
46053 weekdaysParseExact : true,
46054 longDateFormat : {
46055 LT : 'HH:mm',
46056 LTS : 'HH:mm:ss',
46057 L : 'DD/MM/YYYY',
46058 LL : 'D MMMM YYYY',
46059 LLL : 'D MMMM YYYY HH:mm',
46060 LLLL : 'dddd D MMMM YYYY HH:mm'
46061 },
46062 calendar : {
46063 sameDay: '[اليوم على الساعة] LT',
46064 nextDay: '[غدا على الساعة] LT',
46065 nextWeek: 'dddd [على الساعة] LT',
46066 lastDay: '[أمس على الساعة] LT',
46067 lastWeek: 'dddd [على الساعة] LT',
46068 sameElse: 'L'
46069 },
46070 relativeTime : {
46071 future : 'في %s',
46072 past : 'منذ %s',
46073 s : 'ثوان',
46074 ss : '%d ثانية',
46075 m : 'دقيقة',
46076 mm : '%d دقائق',
46077 h : 'ساعة',
46078 hh : '%d ساعات',
46079 d : 'يوم',
46080 dd : '%d أيام',
46081 M : 'شهر',
46082 MM : '%d أشهر',
46083 y : 'سنة',
46084 yy : '%d سنوات'
46085 },
46086 week : {
46087 dow : 0, // Sunday is the first day of the week.
46088 doy : 12 // The week that contains Jan 1st is the first week of the year.
46089 }
46090});
46091
46092return arKw;
46093
46094})));
46095
46096
46097/***/ }),
46098
46099/***/ "./node_modules/moment/locale/ar-ly.js":
46100/*!*********************************************!*\
46101 !*** ./node_modules/moment/locale/ar-ly.js ***!
46102 \*********************************************/
46103/*! no static exports found */
46104/***/ (function(module, exports, __webpack_require__) {
46105
46106//! moment.js locale configuration
46107
46108;(function (global, factory) {
46109 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46110 undefined
46111}(this, (function (moment) { 'use strict';
46112
46113
46114var symbolMap = {
46115 '1': '1',
46116 '2': '2',
46117 '3': '3',
46118 '4': '4',
46119 '5': '5',
46120 '6': '6',
46121 '7': '7',
46122 '8': '8',
46123 '9': '9',
46124 '0': '0'
46125}, pluralForm = function (n) {
46126 return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
46127}, plurals = {
46128 s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
46129 m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
46130 h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
46131 d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
46132 M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
46133 y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
46134}, pluralize = function (u) {
46135 return function (number, withoutSuffix, string, isFuture) {
46136 var f = pluralForm(number),
46137 str = plurals[u][pluralForm(number)];
46138 if (f === 2) {
46139 str = str[withoutSuffix ? 0 : 1];
46140 }
46141 return str.replace(/%d/i, number);
46142 };
46143}, months = [
46144 'يناير',
46145 'فبراير',
46146 'مارس',
46147 'أبريل',
46148 'مايو',
46149 'يونيو',
46150 'يوليو',
46151 'أغسطس',
46152 'سبتمبر',
46153 'أكتوبر',
46154 'نوفمبر',
46155 'ديسمبر'
46156];
46157
46158var arLy = moment.defineLocale('ar-ly', {
46159 months : months,
46160 monthsShort : months,
46161 weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
46162 weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
46163 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
46164 weekdaysParseExact : true,
46165 longDateFormat : {
46166 LT : 'HH:mm',
46167 LTS : 'HH:mm:ss',
46168 L : 'D/\u200FM/\u200FYYYY',
46169 LL : 'D MMMM YYYY',
46170 LLL : 'D MMMM YYYY HH:mm',
46171 LLLL : 'dddd D MMMM YYYY HH:mm'
46172 },
46173 meridiemParse: /ص|م/,
46174 isPM : function (input) {
46175 return 'م' === input;
46176 },
46177 meridiem : function (hour, minute, isLower) {
46178 if (hour < 12) {
46179 return 'ص';
46180 } else {
46181 return 'م';
46182 }
46183 },
46184 calendar : {
46185 sameDay: '[اليوم عند الساعة] LT',
46186 nextDay: '[غدًا عند الساعة] LT',
46187 nextWeek: 'dddd [عند الساعة] LT',
46188 lastDay: '[أمس عند الساعة] LT',
46189 lastWeek: 'dddd [عند الساعة] LT',
46190 sameElse: 'L'
46191 },
46192 relativeTime : {
46193 future : 'بعد %s',
46194 past : 'منذ %s',
46195 s : pluralize('s'),
46196 ss : pluralize('s'),
46197 m : pluralize('m'),
46198 mm : pluralize('m'),
46199 h : pluralize('h'),
46200 hh : pluralize('h'),
46201 d : pluralize('d'),
46202 dd : pluralize('d'),
46203 M : pluralize('M'),
46204 MM : pluralize('M'),
46205 y : pluralize('y'),
46206 yy : pluralize('y')
46207 },
46208 preparse: function (string) {
46209 return string.replace(/،/g, ',');
46210 },
46211 postformat: function (string) {
46212 return string.replace(/\d/g, function (match) {
46213 return symbolMap[match];
46214 }).replace(/,/g, '،');
46215 },
46216 week : {
46217 dow : 6, // Saturday is the first day of the week.
46218 doy : 12 // The week that contains Jan 1st is the first week of the year.
46219 }
46220});
46221
46222return arLy;
46223
46224})));
46225
46226
46227/***/ }),
46228
46229/***/ "./node_modules/moment/locale/ar-ma.js":
46230/*!*********************************************!*\
46231 !*** ./node_modules/moment/locale/ar-ma.js ***!
46232 \*********************************************/
46233/*! no static exports found */
46234/***/ (function(module, exports, __webpack_require__) {
46235
46236//! moment.js locale configuration
46237
46238;(function (global, factory) {
46239 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46240 undefined
46241}(this, (function (moment) { 'use strict';
46242
46243
46244var arMa = moment.defineLocale('ar-ma', {
46245 months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
46246 monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
46247 weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
46248 weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
46249 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
46250 weekdaysParseExact : true,
46251 longDateFormat : {
46252 LT : 'HH:mm',
46253 LTS : 'HH:mm:ss',
46254 L : 'DD/MM/YYYY',
46255 LL : 'D MMMM YYYY',
46256 LLL : 'D MMMM YYYY HH:mm',
46257 LLLL : 'dddd D MMMM YYYY HH:mm'
46258 },
46259 calendar : {
46260 sameDay: '[اليوم على الساعة] LT',
46261 nextDay: '[غدا على الساعة] LT',
46262 nextWeek: 'dddd [على الساعة] LT',
46263 lastDay: '[أمس على الساعة] LT',
46264 lastWeek: 'dddd [على الساعة] LT',
46265 sameElse: 'L'
46266 },
46267 relativeTime : {
46268 future : 'في %s',
46269 past : 'منذ %s',
46270 s : 'ثوان',
46271 ss : '%d ثانية',
46272 m : 'دقيقة',
46273 mm : '%d دقائق',
46274 h : 'ساعة',
46275 hh : '%d ساعات',
46276 d : 'يوم',
46277 dd : '%d أيام',
46278 M : 'شهر',
46279 MM : '%d أشهر',
46280 y : 'سنة',
46281 yy : '%d سنوات'
46282 },
46283 week : {
46284 dow : 6, // Saturday is the first day of the week.
46285 doy : 12 // The week that contains Jan 1st is the first week of the year.
46286 }
46287});
46288
46289return arMa;
46290
46291})));
46292
46293
46294/***/ }),
46295
46296/***/ "./node_modules/moment/locale/ar-sa.js":
46297/*!*********************************************!*\
46298 !*** ./node_modules/moment/locale/ar-sa.js ***!
46299 \*********************************************/
46300/*! no static exports found */
46301/***/ (function(module, exports, __webpack_require__) {
46302
46303//! moment.js locale configuration
46304
46305;(function (global, factory) {
46306 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46307 undefined
46308}(this, (function (moment) { 'use strict';
46309
46310
46311var symbolMap = {
46312 '1': '١',
46313 '2': '٢',
46314 '3': '٣',
46315 '4': '٤',
46316 '5': '٥',
46317 '6': '٦',
46318 '7': '٧',
46319 '8': '٨',
46320 '9': '٩',
46321 '0': '٠'
46322}, numberMap = {
46323 '١': '1',
46324 '٢': '2',
46325 '٣': '3',
46326 '٤': '4',
46327 '٥': '5',
46328 '٦': '6',
46329 '٧': '7',
46330 '٨': '8',
46331 '٩': '9',
46332 '٠': '0'
46333};
46334
46335var arSa = moment.defineLocale('ar-sa', {
46336 months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
46337 monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
46338 weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
46339 weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
46340 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
46341 weekdaysParseExact : true,
46342 longDateFormat : {
46343 LT : 'HH:mm',
46344 LTS : 'HH:mm:ss',
46345 L : 'DD/MM/YYYY',
46346 LL : 'D MMMM YYYY',
46347 LLL : 'D MMMM YYYY HH:mm',
46348 LLLL : 'dddd D MMMM YYYY HH:mm'
46349 },
46350 meridiemParse: /ص|م/,
46351 isPM : function (input) {
46352 return 'م' === input;
46353 },
46354 meridiem : function (hour, minute, isLower) {
46355 if (hour < 12) {
46356 return 'ص';
46357 } else {
46358 return 'م';
46359 }
46360 },
46361 calendar : {
46362 sameDay: '[اليوم على الساعة] LT',
46363 nextDay: '[غدا على الساعة] LT',
46364 nextWeek: 'dddd [على الساعة] LT',
46365 lastDay: '[أمس على الساعة] LT',
46366 lastWeek: 'dddd [على الساعة] LT',
46367 sameElse: 'L'
46368 },
46369 relativeTime : {
46370 future : 'في %s',
46371 past : 'منذ %s',
46372 s : 'ثوان',
46373 ss : '%d ثانية',
46374 m : 'دقيقة',
46375 mm : '%d دقائق',
46376 h : 'ساعة',
46377 hh : '%d ساعات',
46378 d : 'يوم',
46379 dd : '%d أيام',
46380 M : 'شهر',
46381 MM : '%d أشهر',
46382 y : 'سنة',
46383 yy : '%d سنوات'
46384 },
46385 preparse: function (string) {
46386 return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
46387 return numberMap[match];
46388 }).replace(/،/g, ',');
46389 },
46390 postformat: function (string) {
46391 return string.replace(/\d/g, function (match) {
46392 return symbolMap[match];
46393 }).replace(/,/g, '،');
46394 },
46395 week : {
46396 dow : 0, // Sunday is the first day of the week.
46397 doy : 6 // The week that contains Jan 1st is the first week of the year.
46398 }
46399});
46400
46401return arSa;
46402
46403})));
46404
46405
46406/***/ }),
46407
46408/***/ "./node_modules/moment/locale/ar-tn.js":
46409/*!*********************************************!*\
46410 !*** ./node_modules/moment/locale/ar-tn.js ***!
46411 \*********************************************/
46412/*! no static exports found */
46413/***/ (function(module, exports, __webpack_require__) {
46414
46415//! moment.js locale configuration
46416
46417;(function (global, factory) {
46418 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46419 undefined
46420}(this, (function (moment) { 'use strict';
46421
46422
46423var arTn = moment.defineLocale('ar-tn', {
46424 months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
46425 monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
46426 weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
46427 weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
46428 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
46429 weekdaysParseExact : true,
46430 longDateFormat: {
46431 LT: 'HH:mm',
46432 LTS: 'HH:mm:ss',
46433 L: 'DD/MM/YYYY',
46434 LL: 'D MMMM YYYY',
46435 LLL: 'D MMMM YYYY HH:mm',
46436 LLLL: 'dddd D MMMM YYYY HH:mm'
46437 },
46438 calendar: {
46439 sameDay: '[اليوم على الساعة] LT',
46440 nextDay: '[غدا على الساعة] LT',
46441 nextWeek: 'dddd [على الساعة] LT',
46442 lastDay: '[أمس على الساعة] LT',
46443 lastWeek: 'dddd [على الساعة] LT',
46444 sameElse: 'L'
46445 },
46446 relativeTime: {
46447 future: 'في %s',
46448 past: 'منذ %s',
46449 s: 'ثوان',
46450 ss : '%d ثانية',
46451 m: 'دقيقة',
46452 mm: '%d دقائق',
46453 h: 'ساعة',
46454 hh: '%d ساعات',
46455 d: 'يوم',
46456 dd: '%d أيام',
46457 M: 'شهر',
46458 MM: '%d أشهر',
46459 y: 'سنة',
46460 yy: '%d سنوات'
46461 },
46462 week: {
46463 dow: 1, // Monday is the first day of the week.
46464 doy: 4 // The week that contains Jan 4th is the first week of the year.
46465 }
46466});
46467
46468return arTn;
46469
46470})));
46471
46472
46473/***/ }),
46474
46475/***/ "./node_modules/moment/locale/ar.js":
46476/*!******************************************!*\
46477 !*** ./node_modules/moment/locale/ar.js ***!
46478 \******************************************/
46479/*! no static exports found */
46480/***/ (function(module, exports, __webpack_require__) {
46481
46482//! moment.js locale configuration
46483
46484;(function (global, factory) {
46485 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46486 undefined
46487}(this, (function (moment) { 'use strict';
46488
46489
46490var symbolMap = {
46491 '1': '١',
46492 '2': '٢',
46493 '3': '٣',
46494 '4': '٤',
46495 '5': '٥',
46496 '6': '٦',
46497 '7': '٧',
46498 '8': '٨',
46499 '9': '٩',
46500 '0': '٠'
46501}, numberMap = {
46502 '١': '1',
46503 '٢': '2',
46504 '٣': '3',
46505 '٤': '4',
46506 '٥': '5',
46507 '٦': '6',
46508 '٧': '7',
46509 '٨': '8',
46510 '٩': '9',
46511 '٠': '0'
46512}, pluralForm = function (n) {
46513 return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
46514}, plurals = {
46515 s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
46516 m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
46517 h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
46518 d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
46519 M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
46520 y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
46521}, pluralize = function (u) {
46522 return function (number, withoutSuffix, string, isFuture) {
46523 var f = pluralForm(number),
46524 str = plurals[u][pluralForm(number)];
46525 if (f === 2) {
46526 str = str[withoutSuffix ? 0 : 1];
46527 }
46528 return str.replace(/%d/i, number);
46529 };
46530}, months = [
46531 'يناير',
46532 'فبراير',
46533 'مارس',
46534 'أبريل',
46535 'مايو',
46536 'يونيو',
46537 'يوليو',
46538 'أغسطس',
46539 'سبتمبر',
46540 'أكتوبر',
46541 'نوفمبر',
46542 'ديسمبر'
46543];
46544
46545var ar = moment.defineLocale('ar', {
46546 months : months,
46547 monthsShort : months,
46548 weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
46549 weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
46550 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
46551 weekdaysParseExact : true,
46552 longDateFormat : {
46553 LT : 'HH:mm',
46554 LTS : 'HH:mm:ss',
46555 L : 'D/\u200FM/\u200FYYYY',
46556 LL : 'D MMMM YYYY',
46557 LLL : 'D MMMM YYYY HH:mm',
46558 LLLL : 'dddd D MMMM YYYY HH:mm'
46559 },
46560 meridiemParse: /ص|م/,
46561 isPM : function (input) {
46562 return 'م' === input;
46563 },
46564 meridiem : function (hour, minute, isLower) {
46565 if (hour < 12) {
46566 return 'ص';
46567 } else {
46568 return 'م';
46569 }
46570 },
46571 calendar : {
46572 sameDay: '[اليوم عند الساعة] LT',
46573 nextDay: '[غدًا عند الساعة] LT',
46574 nextWeek: 'dddd [عند الساعة] LT',
46575 lastDay: '[أمس عند الساعة] LT',
46576 lastWeek: 'dddd [عند الساعة] LT',
46577 sameElse: 'L'
46578 },
46579 relativeTime : {
46580 future : 'بعد %s',
46581 past : 'منذ %s',
46582 s : pluralize('s'),
46583 ss : pluralize('s'),
46584 m : pluralize('m'),
46585 mm : pluralize('m'),
46586 h : pluralize('h'),
46587 hh : pluralize('h'),
46588 d : pluralize('d'),
46589 dd : pluralize('d'),
46590 M : pluralize('M'),
46591 MM : pluralize('M'),
46592 y : pluralize('y'),
46593 yy : pluralize('y')
46594 },
46595 preparse: function (string) {
46596 return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
46597 return numberMap[match];
46598 }).replace(/،/g, ',');
46599 },
46600 postformat: function (string) {
46601 return string.replace(/\d/g, function (match) {
46602 return symbolMap[match];
46603 }).replace(/,/g, '،');
46604 },
46605 week : {
46606 dow : 6, // Saturday is the first day of the week.
46607 doy : 12 // The week that contains Jan 1st is the first week of the year.
46608 }
46609});
46610
46611return ar;
46612
46613})));
46614
46615
46616/***/ }),
46617
46618/***/ "./node_modules/moment/locale/az.js":
46619/*!******************************************!*\
46620 !*** ./node_modules/moment/locale/az.js ***!
46621 \******************************************/
46622/*! no static exports found */
46623/***/ (function(module, exports, __webpack_require__) {
46624
46625//! moment.js locale configuration
46626
46627;(function (global, factory) {
46628 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46629 undefined
46630}(this, (function (moment) { 'use strict';
46631
46632
46633var suffixes = {
46634 1: '-inci',
46635 5: '-inci',
46636 8: '-inci',
46637 70: '-inci',
46638 80: '-inci',
46639 2: '-nci',
46640 7: '-nci',
46641 20: '-nci',
46642 50: '-nci',
46643 3: '-üncü',
46644 4: '-üncü',
46645 100: '-üncü',
46646 6: '-ncı',
46647 9: '-uncu',
46648 10: '-uncu',
46649 30: '-uncu',
46650 60: '-ıncı',
46651 90: '-ıncı'
46652};
46653
46654var az = moment.defineLocale('az', {
46655 months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
46656 monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
46657 weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
46658 weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
46659 weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
46660 weekdaysParseExact : true,
46661 longDateFormat : {
46662 LT : 'HH:mm',
46663 LTS : 'HH:mm:ss',
46664 L : 'DD.MM.YYYY',
46665 LL : 'D MMMM YYYY',
46666 LLL : 'D MMMM YYYY HH:mm',
46667 LLLL : 'dddd, D MMMM YYYY HH:mm'
46668 },
46669 calendar : {
46670 sameDay : '[bugün saat] LT',
46671 nextDay : '[sabah saat] LT',
46672 nextWeek : '[gələn həftə] dddd [saat] LT',
46673 lastDay : '[dünən] LT',
46674 lastWeek : '[keçən həftə] dddd [saat] LT',
46675 sameElse : 'L'
46676 },
46677 relativeTime : {
46678 future : '%s sonra',
46679 past : '%s əvvəl',
46680 s : 'birneçə saniyyə',
46681 ss : '%d saniyə',
46682 m : 'bir dəqiqə',
46683 mm : '%d dəqiqə',
46684 h : 'bir saat',
46685 hh : '%d saat',
46686 d : 'bir gün',
46687 dd : '%d gün',
46688 M : 'bir ay',
46689 MM : '%d ay',
46690 y : 'bir il',
46691 yy : '%d il'
46692 },
46693 meridiemParse: /gecə|səhər|gündüz|axşam/,
46694 isPM : function (input) {
46695 return /^(gündüz|axşam)$/.test(input);
46696 },
46697 meridiem : function (hour, minute, isLower) {
46698 if (hour < 4) {
46699 return 'gecə';
46700 } else if (hour < 12) {
46701 return 'səhər';
46702 } else if (hour < 17) {
46703 return 'gündüz';
46704 } else {
46705 return 'axşam';
46706 }
46707 },
46708 dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
46709 ordinal : function (number) {
46710 if (number === 0) { // special case for zero
46711 return number + '-ıncı';
46712 }
46713 var a = number % 10,
46714 b = number % 100 - a,
46715 c = number >= 100 ? 100 : null;
46716 return number + (suffixes[a] || suffixes[b] || suffixes[c]);
46717 },
46718 week : {
46719 dow : 1, // Monday is the first day of the week.
46720 doy : 7 // The week that contains Jan 1st is the first week of the year.
46721 }
46722});
46723
46724return az;
46725
46726})));
46727
46728
46729/***/ }),
46730
46731/***/ "./node_modules/moment/locale/be.js":
46732/*!******************************************!*\
46733 !*** ./node_modules/moment/locale/be.js ***!
46734 \******************************************/
46735/*! no static exports found */
46736/***/ (function(module, exports, __webpack_require__) {
46737
46738//! moment.js locale configuration
46739
46740;(function (global, factory) {
46741 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46742 undefined
46743}(this, (function (moment) { 'use strict';
46744
46745
46746function plural(word, num) {
46747 var forms = word.split('_');
46748 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
46749}
46750function relativeTimeWithPlural(number, withoutSuffix, key) {
46751 var format = {
46752 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
46753 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
46754 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
46755 'dd': 'дзень_дні_дзён',
46756 'MM': 'месяц_месяцы_месяцаў',
46757 'yy': 'год_гады_гадоў'
46758 };
46759 if (key === 'm') {
46760 return withoutSuffix ? 'хвіліна' : 'хвіліну';
46761 }
46762 else if (key === 'h') {
46763 return withoutSuffix ? 'гадзіна' : 'гадзіну';
46764 }
46765 else {
46766 return number + ' ' + plural(format[key], +number);
46767 }
46768}
46769
46770var be = moment.defineLocale('be', {
46771 months : {
46772 format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
46773 standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
46774 },
46775 monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
46776 weekdays : {
46777 format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
46778 standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
46779 isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/
46780 },
46781 weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
46782 weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
46783 longDateFormat : {
46784 LT : 'HH:mm',
46785 LTS : 'HH:mm:ss',
46786 L : 'DD.MM.YYYY',
46787 LL : 'D MMMM YYYY г.',
46788 LLL : 'D MMMM YYYY г., HH:mm',
46789 LLLL : 'dddd, D MMMM YYYY г., HH:mm'
46790 },
46791 calendar : {
46792 sameDay: '[Сёння ў] LT',
46793 nextDay: '[Заўтра ў] LT',
46794 lastDay: '[Учора ў] LT',
46795 nextWeek: function () {
46796 return '[У] dddd [ў] LT';
46797 },
46798 lastWeek: function () {
46799 switch (this.day()) {
46800 case 0:
46801 case 3:
46802 case 5:
46803 case 6:
46804 return '[У мінулую] dddd [ў] LT';
46805 case 1:
46806 case 2:
46807 case 4:
46808 return '[У мінулы] dddd [ў] LT';
46809 }
46810 },
46811 sameElse: 'L'
46812 },
46813 relativeTime : {
46814 future : 'праз %s',
46815 past : '%s таму',
46816 s : 'некалькі секунд',
46817 m : relativeTimeWithPlural,
46818 mm : relativeTimeWithPlural,
46819 h : relativeTimeWithPlural,
46820 hh : relativeTimeWithPlural,
46821 d : 'дзень',
46822 dd : relativeTimeWithPlural,
46823 M : 'месяц',
46824 MM : relativeTimeWithPlural,
46825 y : 'год',
46826 yy : relativeTimeWithPlural
46827 },
46828 meridiemParse: /ночы|раніцы|дня|вечара/,
46829 isPM : function (input) {
46830 return /^(дня|вечара)$/.test(input);
46831 },
46832 meridiem : function (hour, minute, isLower) {
46833 if (hour < 4) {
46834 return 'ночы';
46835 } else if (hour < 12) {
46836 return 'раніцы';
46837 } else if (hour < 17) {
46838 return 'дня';
46839 } else {
46840 return 'вечара';
46841 }
46842 },
46843 dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
46844 ordinal: function (number, period) {
46845 switch (period) {
46846 case 'M':
46847 case 'd':
46848 case 'DDD':
46849 case 'w':
46850 case 'W':
46851 return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
46852 case 'D':
46853 return number + '-га';
46854 default:
46855 return number;
46856 }
46857 },
46858 week : {
46859 dow : 1, // Monday is the first day of the week.
46860 doy : 7 // The week that contains Jan 1st is the first week of the year.
46861 }
46862});
46863
46864return be;
46865
46866})));
46867
46868
46869/***/ }),
46870
46871/***/ "./node_modules/moment/locale/bg.js":
46872/*!******************************************!*\
46873 !*** ./node_modules/moment/locale/bg.js ***!
46874 \******************************************/
46875/*! no static exports found */
46876/***/ (function(module, exports, __webpack_require__) {
46877
46878//! moment.js locale configuration
46879
46880;(function (global, factory) {
46881 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46882 undefined
46883}(this, (function (moment) { 'use strict';
46884
46885
46886var bg = moment.defineLocale('bg', {
46887 months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
46888 monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
46889 weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
46890 weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
46891 weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
46892 longDateFormat : {
46893 LT : 'H:mm',
46894 LTS : 'H:mm:ss',
46895 L : 'D.MM.YYYY',
46896 LL : 'D MMMM YYYY',
46897 LLL : 'D MMMM YYYY H:mm',
46898 LLLL : 'dddd, D MMMM YYYY H:mm'
46899 },
46900 calendar : {
46901 sameDay : '[Днес в] LT',
46902 nextDay : '[Утре в] LT',
46903 nextWeek : 'dddd [в] LT',
46904 lastDay : '[Вчера в] LT',
46905 lastWeek : function () {
46906 switch (this.day()) {
46907 case 0:
46908 case 3:
46909 case 6:
46910 return '[В изминалата] dddd [в] LT';
46911 case 1:
46912 case 2:
46913 case 4:
46914 case 5:
46915 return '[В изминалия] dddd [в] LT';
46916 }
46917 },
46918 sameElse : 'L'
46919 },
46920 relativeTime : {
46921 future : 'след %s',
46922 past : 'преди %s',
46923 s : 'няколко секунди',
46924 ss : '%d секунди',
46925 m : 'минута',
46926 mm : '%d минути',
46927 h : 'час',
46928 hh : '%d часа',
46929 d : 'ден',
46930 dd : '%d дни',
46931 M : 'месец',
46932 MM : '%d месеца',
46933 y : 'година',
46934 yy : '%d години'
46935 },
46936 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
46937 ordinal : function (number) {
46938 var lastDigit = number % 10,
46939 last2Digits = number % 100;
46940 if (number === 0) {
46941 return number + '-ев';
46942 } else if (last2Digits === 0) {
46943 return number + '-ен';
46944 } else if (last2Digits > 10 && last2Digits < 20) {
46945 return number + '-ти';
46946 } else if (lastDigit === 1) {
46947 return number + '-ви';
46948 } else if (lastDigit === 2) {
46949 return number + '-ри';
46950 } else if (lastDigit === 7 || lastDigit === 8) {
46951 return number + '-ми';
46952 } else {
46953 return number + '-ти';
46954 }
46955 },
46956 week : {
46957 dow : 1, // Monday is the first day of the week.
46958 doy : 7 // The week that contains Jan 1st is the first week of the year.
46959 }
46960});
46961
46962return bg;
46963
46964})));
46965
46966
46967/***/ }),
46968
46969/***/ "./node_modules/moment/locale/bm.js":
46970/*!******************************************!*\
46971 !*** ./node_modules/moment/locale/bm.js ***!
46972 \******************************************/
46973/*! no static exports found */
46974/***/ (function(module, exports, __webpack_require__) {
46975
46976//! moment.js locale configuration
46977
46978;(function (global, factory) {
46979 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
46980 undefined
46981}(this, (function (moment) { 'use strict';
46982
46983
46984var bm = moment.defineLocale('bm', {
46985 months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),
46986 monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
46987 weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
46988 weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
46989 weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
46990 longDateFormat : {
46991 LT : 'HH:mm',
46992 LTS : 'HH:mm:ss',
46993 L : 'DD/MM/YYYY',
46994 LL : 'MMMM [tile] D [san] YYYY',
46995 LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
46996 LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'
46997 },
46998 calendar : {
46999 sameDay : '[Bi lɛrɛ] LT',
47000 nextDay : '[Sini lɛrɛ] LT',
47001 nextWeek : 'dddd [don lɛrɛ] LT',
47002 lastDay : '[Kunu lɛrɛ] LT',
47003 lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',
47004 sameElse : 'L'
47005 },
47006 relativeTime : {
47007 future : '%s kɔnɔ',
47008 past : 'a bɛ %s bɔ',
47009 s : 'sanga dama dama',
47010 ss : 'sekondi %d',
47011 m : 'miniti kelen',
47012 mm : 'miniti %d',
47013 h : 'lɛrɛ kelen',
47014 hh : 'lɛrɛ %d',
47015 d : 'tile kelen',
47016 dd : 'tile %d',
47017 M : 'kalo kelen',
47018 MM : 'kalo %d',
47019 y : 'san kelen',
47020 yy : 'san %d'
47021 },
47022 week : {
47023 dow : 1, // Monday is the first day of the week.
47024 doy : 4 // The week that contains Jan 4th is the first week of the year.
47025 }
47026});
47027
47028return bm;
47029
47030})));
47031
47032
47033/***/ }),
47034
47035/***/ "./node_modules/moment/locale/bn.js":
47036/*!******************************************!*\
47037 !*** ./node_modules/moment/locale/bn.js ***!
47038 \******************************************/
47039/*! no static exports found */
47040/***/ (function(module, exports, __webpack_require__) {
47041
47042//! moment.js locale configuration
47043
47044;(function (global, factory) {
47045 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47046 undefined
47047}(this, (function (moment) { 'use strict';
47048
47049
47050var symbolMap = {
47051 '1': '১',
47052 '2': '২',
47053 '3': '৩',
47054 '4': '৪',
47055 '5': '৫',
47056 '6': '৬',
47057 '7': '৭',
47058 '8': '৮',
47059 '9': '৯',
47060 '0': '০'
47061},
47062numberMap = {
47063 '১': '1',
47064 '২': '2',
47065 '৩': '3',
47066 '৪': '4',
47067 '৫': '5',
47068 '৬': '6',
47069 '৭': '7',
47070 '৮': '8',
47071 '৯': '9',
47072 '০': '0'
47073};
47074
47075var bn = moment.defineLocale('bn', {
47076 months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
47077 monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),
47078 weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),
47079 weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
47080 weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),
47081 longDateFormat : {
47082 LT : 'A h:mm সময়',
47083 LTS : 'A h:mm:ss সময়',
47084 L : 'DD/MM/YYYY',
47085 LL : 'D MMMM YYYY',
47086 LLL : 'D MMMM YYYY, A h:mm সময়',
47087 LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
47088 },
47089 calendar : {
47090 sameDay : '[আজ] LT',
47091 nextDay : '[আগামীকাল] LT',
47092 nextWeek : 'dddd, LT',
47093 lastDay : '[গতকাল] LT',
47094 lastWeek : '[গত] dddd, LT',
47095 sameElse : 'L'
47096 },
47097 relativeTime : {
47098 future : '%s পরে',
47099 past : '%s আগে',
47100 s : 'কয়েক সেকেন্ড',
47101 ss : '%d সেকেন্ড',
47102 m : 'এক মিনিট',
47103 mm : '%d মিনিট',
47104 h : 'এক ঘন্টা',
47105 hh : '%d ঘন্টা',
47106 d : 'এক দিন',
47107 dd : '%d দিন',
47108 M : 'এক মাস',
47109 MM : '%d মাস',
47110 y : 'এক বছর',
47111 yy : '%d বছর'
47112 },
47113 preparse: function (string) {
47114 return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
47115 return numberMap[match];
47116 });
47117 },
47118 postformat: function (string) {
47119 return string.replace(/\d/g, function (match) {
47120 return symbolMap[match];
47121 });
47122 },
47123 meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
47124 meridiemHour : function (hour, meridiem) {
47125 if (hour === 12) {
47126 hour = 0;
47127 }
47128 if ((meridiem === 'রাত' && hour >= 4) ||
47129 (meridiem === 'দুপুর' && hour < 5) ||
47130 meridiem === 'বিকাল') {
47131 return hour + 12;
47132 } else {
47133 return hour;
47134 }
47135 },
47136 meridiem : function (hour, minute, isLower) {
47137 if (hour < 4) {
47138 return 'রাত';
47139 } else if (hour < 10) {
47140 return 'সকাল';
47141 } else if (hour < 17) {
47142 return 'দুপুর';
47143 } else if (hour < 20) {
47144 return 'বিকাল';
47145 } else {
47146 return 'রাত';
47147 }
47148 },
47149 week : {
47150 dow : 0, // Sunday is the first day of the week.
47151 doy : 6 // The week that contains Jan 1st is the first week of the year.
47152 }
47153});
47154
47155return bn;
47156
47157})));
47158
47159
47160/***/ }),
47161
47162/***/ "./node_modules/moment/locale/bo.js":
47163/*!******************************************!*\
47164 !*** ./node_modules/moment/locale/bo.js ***!
47165 \******************************************/
47166/*! no static exports found */
47167/***/ (function(module, exports, __webpack_require__) {
47168
47169//! moment.js locale configuration
47170
47171;(function (global, factory) {
47172 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47173 undefined
47174}(this, (function (moment) { 'use strict';
47175
47176
47177var symbolMap = {
47178 '1': '༡',
47179 '2': '༢',
47180 '3': '༣',
47181 '4': '༤',
47182 '5': '༥',
47183 '6': '༦',
47184 '7': '༧',
47185 '8': '༨',
47186 '9': '༩',
47187 '0': '༠'
47188},
47189numberMap = {
47190 '༡': '1',
47191 '༢': '2',
47192 '༣': '3',
47193 '༤': '4',
47194 '༥': '5',
47195 '༦': '6',
47196 '༧': '7',
47197 '༨': '8',
47198 '༩': '9',
47199 '༠': '0'
47200};
47201
47202var bo = moment.defineLocale('bo', {
47203 months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
47204 monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
47205 weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
47206 weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
47207 weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
47208 longDateFormat : {
47209 LT : 'A h:mm',
47210 LTS : 'A h:mm:ss',
47211 L : 'DD/MM/YYYY',
47212 LL : 'D MMMM YYYY',
47213 LLL : 'D MMMM YYYY, A h:mm',
47214 LLLL : 'dddd, D MMMM YYYY, A h:mm'
47215 },
47216 calendar : {
47217 sameDay : '[དི་རིང] LT',
47218 nextDay : '[སང་ཉིན] LT',
47219 nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
47220 lastDay : '[ཁ་སང] LT',
47221 lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
47222 sameElse : 'L'
47223 },
47224 relativeTime : {
47225 future : '%s ལ་',
47226 past : '%s སྔན་ལ',
47227 s : 'ལམ་སང',
47228 ss : '%d སྐར་ཆ།',
47229 m : 'སྐར་མ་གཅིག',
47230 mm : '%d སྐར་མ',
47231 h : 'ཆུ་ཚོད་གཅིག',
47232 hh : '%d ཆུ་ཚོད',
47233 d : 'ཉིན་གཅིག',
47234 dd : '%d ཉིན་',
47235 M : 'ཟླ་བ་གཅིག',
47236 MM : '%d ཟླ་བ',
47237 y : 'ལོ་གཅིག',
47238 yy : '%d ལོ'
47239 },
47240 preparse: function (string) {
47241 return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
47242 return numberMap[match];
47243 });
47244 },
47245 postformat: function (string) {
47246 return string.replace(/\d/g, function (match) {
47247 return symbolMap[match];
47248 });
47249 },
47250 meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
47251 meridiemHour : function (hour, meridiem) {
47252 if (hour === 12) {
47253 hour = 0;
47254 }
47255 if ((meridiem === 'མཚན་མོ' && hour >= 4) ||
47256 (meridiem === 'ཉིན་གུང' && hour < 5) ||
47257 meridiem === 'དགོང་དག') {
47258 return hour + 12;
47259 } else {
47260 return hour;
47261 }
47262 },
47263 meridiem : function (hour, minute, isLower) {
47264 if (hour < 4) {
47265 return 'མཚན་མོ';
47266 } else if (hour < 10) {
47267 return 'ཞོགས་ཀས';
47268 } else if (hour < 17) {
47269 return 'ཉིན་གུང';
47270 } else if (hour < 20) {
47271 return 'དགོང་དག';
47272 } else {
47273 return 'མཚན་མོ';
47274 }
47275 },
47276 week : {
47277 dow : 0, // Sunday is the first day of the week.
47278 doy : 6 // The week that contains Jan 1st is the first week of the year.
47279 }
47280});
47281
47282return bo;
47283
47284})));
47285
47286
47287/***/ }),
47288
47289/***/ "./node_modules/moment/locale/br.js":
47290/*!******************************************!*\
47291 !*** ./node_modules/moment/locale/br.js ***!
47292 \******************************************/
47293/*! no static exports found */
47294/***/ (function(module, exports, __webpack_require__) {
47295
47296//! moment.js locale configuration
47297
47298;(function (global, factory) {
47299 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47300 undefined
47301}(this, (function (moment) { 'use strict';
47302
47303
47304function relativeTimeWithMutation(number, withoutSuffix, key) {
47305 var format = {
47306 'mm': 'munutenn',
47307 'MM': 'miz',
47308 'dd': 'devezh'
47309 };
47310 return number + ' ' + mutation(format[key], number);
47311}
47312function specialMutationForYears(number) {
47313 switch (lastNumber(number)) {
47314 case 1:
47315 case 3:
47316 case 4:
47317 case 5:
47318 case 9:
47319 return number + ' bloaz';
47320 default:
47321 return number + ' vloaz';
47322 }
47323}
47324function lastNumber(number) {
47325 if (number > 9) {
47326 return lastNumber(number % 10);
47327 }
47328 return number;
47329}
47330function mutation(text, number) {
47331 if (number === 2) {
47332 return softMutation(text);
47333 }
47334 return text;
47335}
47336function softMutation(text) {
47337 var mutationTable = {
47338 'm': 'v',
47339 'b': 'v',
47340 'd': 'z'
47341 };
47342 if (mutationTable[text.charAt(0)] === undefined) {
47343 return text;
47344 }
47345 return mutationTable[text.charAt(0)] + text.substring(1);
47346}
47347
47348var br = moment.defineLocale('br', {
47349 months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
47350 monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
47351 weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
47352 weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
47353 weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
47354 weekdaysParseExact : true,
47355 longDateFormat : {
47356 LT : 'h[e]mm A',
47357 LTS : 'h[e]mm:ss A',
47358 L : 'DD/MM/YYYY',
47359 LL : 'D [a viz] MMMM YYYY',
47360 LLL : 'D [a viz] MMMM YYYY h[e]mm A',
47361 LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
47362 },
47363 calendar : {
47364 sameDay : '[Hiziv da] LT',
47365 nextDay : '[Warc\'hoazh da] LT',
47366 nextWeek : 'dddd [da] LT',
47367 lastDay : '[Dec\'h da] LT',
47368 lastWeek : 'dddd [paset da] LT',
47369 sameElse : 'L'
47370 },
47371 relativeTime : {
47372 future : 'a-benn %s',
47373 past : '%s \'zo',
47374 s : 'un nebeud segondennoù',
47375 ss : '%d eilenn',
47376 m : 'ur vunutenn',
47377 mm : relativeTimeWithMutation,
47378 h : 'un eur',
47379 hh : '%d eur',
47380 d : 'un devezh',
47381 dd : relativeTimeWithMutation,
47382 M : 'ur miz',
47383 MM : relativeTimeWithMutation,
47384 y : 'ur bloaz',
47385 yy : specialMutationForYears
47386 },
47387 dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
47388 ordinal : function (number) {
47389 var output = (number === 1) ? 'añ' : 'vet';
47390 return number + output;
47391 },
47392 week : {
47393 dow : 1, // Monday is the first day of the week.
47394 doy : 4 // The week that contains Jan 4th is the first week of the year.
47395 }
47396});
47397
47398return br;
47399
47400})));
47401
47402
47403/***/ }),
47404
47405/***/ "./node_modules/moment/locale/bs.js":
47406/*!******************************************!*\
47407 !*** ./node_modules/moment/locale/bs.js ***!
47408 \******************************************/
47409/*! no static exports found */
47410/***/ (function(module, exports, __webpack_require__) {
47411
47412//! moment.js locale configuration
47413
47414;(function (global, factory) {
47415 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47416 undefined
47417}(this, (function (moment) { 'use strict';
47418
47419
47420function translate(number, withoutSuffix, key) {
47421 var result = number + ' ';
47422 switch (key) {
47423 case 'ss':
47424 if (number === 1) {
47425 result += 'sekunda';
47426 } else if (number === 2 || number === 3 || number === 4) {
47427 result += 'sekunde';
47428 } else {
47429 result += 'sekundi';
47430 }
47431 return result;
47432 case 'm':
47433 return withoutSuffix ? 'jedna minuta' : 'jedne minute';
47434 case 'mm':
47435 if (number === 1) {
47436 result += 'minuta';
47437 } else if (number === 2 || number === 3 || number === 4) {
47438 result += 'minute';
47439 } else {
47440 result += 'minuta';
47441 }
47442 return result;
47443 case 'h':
47444 return withoutSuffix ? 'jedan sat' : 'jednog sata';
47445 case 'hh':
47446 if (number === 1) {
47447 result += 'sat';
47448 } else if (number === 2 || number === 3 || number === 4) {
47449 result += 'sata';
47450 } else {
47451 result += 'sati';
47452 }
47453 return result;
47454 case 'dd':
47455 if (number === 1) {
47456 result += 'dan';
47457 } else {
47458 result += 'dana';
47459 }
47460 return result;
47461 case 'MM':
47462 if (number === 1) {
47463 result += 'mjesec';
47464 } else if (number === 2 || number === 3 || number === 4) {
47465 result += 'mjeseca';
47466 } else {
47467 result += 'mjeseci';
47468 }
47469 return result;
47470 case 'yy':
47471 if (number === 1) {
47472 result += 'godina';
47473 } else if (number === 2 || number === 3 || number === 4) {
47474 result += 'godine';
47475 } else {
47476 result += 'godina';
47477 }
47478 return result;
47479 }
47480}
47481
47482var bs = moment.defineLocale('bs', {
47483 months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
47484 monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
47485 monthsParseExact: true,
47486 weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
47487 weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
47488 weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
47489 weekdaysParseExact : true,
47490 longDateFormat : {
47491 LT : 'H:mm',
47492 LTS : 'H:mm:ss',
47493 L : 'DD.MM.YYYY',
47494 LL : 'D. MMMM YYYY',
47495 LLL : 'D. MMMM YYYY H:mm',
47496 LLLL : 'dddd, D. MMMM YYYY H:mm'
47497 },
47498 calendar : {
47499 sameDay : '[danas u] LT',
47500 nextDay : '[sutra u] LT',
47501 nextWeek : function () {
47502 switch (this.day()) {
47503 case 0:
47504 return '[u] [nedjelju] [u] LT';
47505 case 3:
47506 return '[u] [srijedu] [u] LT';
47507 case 6:
47508 return '[u] [subotu] [u] LT';
47509 case 1:
47510 case 2:
47511 case 4:
47512 case 5:
47513 return '[u] dddd [u] LT';
47514 }
47515 },
47516 lastDay : '[jučer u] LT',
47517 lastWeek : function () {
47518 switch (this.day()) {
47519 case 0:
47520 case 3:
47521 return '[prošlu] dddd [u] LT';
47522 case 6:
47523 return '[prošle] [subote] [u] LT';
47524 case 1:
47525 case 2:
47526 case 4:
47527 case 5:
47528 return '[prošli] dddd [u] LT';
47529 }
47530 },
47531 sameElse : 'L'
47532 },
47533 relativeTime : {
47534 future : 'za %s',
47535 past : 'prije %s',
47536 s : 'par sekundi',
47537 ss : translate,
47538 m : translate,
47539 mm : translate,
47540 h : translate,
47541 hh : translate,
47542 d : 'dan',
47543 dd : translate,
47544 M : 'mjesec',
47545 MM : translate,
47546 y : 'godinu',
47547 yy : translate
47548 },
47549 dayOfMonthOrdinalParse: /\d{1,2}\./,
47550 ordinal : '%d.',
47551 week : {
47552 dow : 1, // Monday is the first day of the week.
47553 doy : 7 // The week that contains Jan 1st is the first week of the year.
47554 }
47555});
47556
47557return bs;
47558
47559})));
47560
47561
47562/***/ }),
47563
47564/***/ "./node_modules/moment/locale/ca.js":
47565/*!******************************************!*\
47566 !*** ./node_modules/moment/locale/ca.js ***!
47567 \******************************************/
47568/*! no static exports found */
47569/***/ (function(module, exports, __webpack_require__) {
47570
47571//! moment.js locale configuration
47572
47573;(function (global, factory) {
47574 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47575 undefined
47576}(this, (function (moment) { 'use strict';
47577
47578
47579var ca = moment.defineLocale('ca', {
47580 months : {
47581 standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
47582 format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'),
47583 isFormat: /D[oD]?(\s)+MMMM/
47584 },
47585 monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),
47586 monthsParseExact : true,
47587 weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
47588 weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
47589 weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
47590 weekdaysParseExact : true,
47591 longDateFormat : {
47592 LT : 'H:mm',
47593 LTS : 'H:mm:ss',
47594 L : 'DD/MM/YYYY',
47595 LL : 'D MMMM [de] YYYY',
47596 ll : 'D MMM YYYY',
47597 LLL : 'D MMMM [de] YYYY [a les] H:mm',
47598 lll : 'D MMM YYYY, H:mm',
47599 LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',
47600 llll : 'ddd D MMM YYYY, H:mm'
47601 },
47602 calendar : {
47603 sameDay : function () {
47604 return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
47605 },
47606 nextDay : function () {
47607 return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
47608 },
47609 nextWeek : function () {
47610 return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
47611 },
47612 lastDay : function () {
47613 return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
47614 },
47615 lastWeek : function () {
47616 return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
47617 },
47618 sameElse : 'L'
47619 },
47620 relativeTime : {
47621 future : 'd\'aquí %s',
47622 past : 'fa %s',
47623 s : 'uns segons',
47624 ss : '%d segons',
47625 m : 'un minut',
47626 mm : '%d minuts',
47627 h : 'una hora',
47628 hh : '%d hores',
47629 d : 'un dia',
47630 dd : '%d dies',
47631 M : 'un mes',
47632 MM : '%d mesos',
47633 y : 'un any',
47634 yy : '%d anys'
47635 },
47636 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
47637 ordinal : function (number, period) {
47638 var output = (number === 1) ? 'r' :
47639 (number === 2) ? 'n' :
47640 (number === 3) ? 'r' :
47641 (number === 4) ? 't' : 'è';
47642 if (period === 'w' || period === 'W') {
47643 output = 'a';
47644 }
47645 return number + output;
47646 },
47647 week : {
47648 dow : 1, // Monday is the first day of the week.
47649 doy : 4 // The week that contains Jan 4th is the first week of the year.
47650 }
47651});
47652
47653return ca;
47654
47655})));
47656
47657
47658/***/ }),
47659
47660/***/ "./node_modules/moment/locale/cs.js":
47661/*!******************************************!*\
47662 !*** ./node_modules/moment/locale/cs.js ***!
47663 \******************************************/
47664/*! no static exports found */
47665/***/ (function(module, exports, __webpack_require__) {
47666
47667//! moment.js locale configuration
47668
47669;(function (global, factory) {
47670 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47671 undefined
47672}(this, (function (moment) { 'use strict';
47673
47674
47675var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
47676 monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
47677function plural(n) {
47678 return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
47679}
47680function translate(number, withoutSuffix, key, isFuture) {
47681 var result = number + ' ';
47682 switch (key) {
47683 case 's': // a few seconds / in a few seconds / a few seconds ago
47684 return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
47685 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
47686 if (withoutSuffix || isFuture) {
47687 return result + (plural(number) ? 'sekundy' : 'sekund');
47688 } else {
47689 return result + 'sekundami';
47690 }
47691 break;
47692 case 'm': // a minute / in a minute / a minute ago
47693 return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
47694 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
47695 if (withoutSuffix || isFuture) {
47696 return result + (plural(number) ? 'minuty' : 'minut');
47697 } else {
47698 return result + 'minutami';
47699 }
47700 break;
47701 case 'h': // an hour / in an hour / an hour ago
47702 return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
47703 case 'hh': // 9 hours / in 9 hours / 9 hours ago
47704 if (withoutSuffix || isFuture) {
47705 return result + (plural(number) ? 'hodiny' : 'hodin');
47706 } else {
47707 return result + 'hodinami';
47708 }
47709 break;
47710 case 'd': // a day / in a day / a day ago
47711 return (withoutSuffix || isFuture) ? 'den' : 'dnem';
47712 case 'dd': // 9 days / in 9 days / 9 days ago
47713 if (withoutSuffix || isFuture) {
47714 return result + (plural(number) ? 'dny' : 'dní');
47715 } else {
47716 return result + 'dny';
47717 }
47718 break;
47719 case 'M': // a month / in a month / a month ago
47720 return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
47721 case 'MM': // 9 months / in 9 months / 9 months ago
47722 if (withoutSuffix || isFuture) {
47723 return result + (plural(number) ? 'měsíce' : 'měsíců');
47724 } else {
47725 return result + 'měsíci';
47726 }
47727 break;
47728 case 'y': // a year / in a year / a year ago
47729 return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
47730 case 'yy': // 9 years / in 9 years / 9 years ago
47731 if (withoutSuffix || isFuture) {
47732 return result + (plural(number) ? 'roky' : 'let');
47733 } else {
47734 return result + 'lety';
47735 }
47736 break;
47737 }
47738}
47739
47740var cs = moment.defineLocale('cs', {
47741 months : months,
47742 monthsShort : monthsShort,
47743 monthsParse : (function (months, monthsShort) {
47744 var i, _monthsParse = [];
47745 for (i = 0; i < 12; i++) {
47746 // use custom parser to solve problem with July (červenec)
47747 _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
47748 }
47749 return _monthsParse;
47750 }(months, monthsShort)),
47751 shortMonthsParse : (function (monthsShort) {
47752 var i, _shortMonthsParse = [];
47753 for (i = 0; i < 12; i++) {
47754 _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
47755 }
47756 return _shortMonthsParse;
47757 }(monthsShort)),
47758 longMonthsParse : (function (months) {
47759 var i, _longMonthsParse = [];
47760 for (i = 0; i < 12; i++) {
47761 _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
47762 }
47763 return _longMonthsParse;
47764 }(months)),
47765 weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
47766 weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
47767 weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
47768 longDateFormat : {
47769 LT: 'H:mm',
47770 LTS : 'H:mm:ss',
47771 L : 'DD.MM.YYYY',
47772 LL : 'D. MMMM YYYY',
47773 LLL : 'D. MMMM YYYY H:mm',
47774 LLLL : 'dddd D. MMMM YYYY H:mm',
47775 l : 'D. M. YYYY'
47776 },
47777 calendar : {
47778 sameDay: '[dnes v] LT',
47779 nextDay: '[zítra v] LT',
47780 nextWeek: function () {
47781 switch (this.day()) {
47782 case 0:
47783 return '[v neděli v] LT';
47784 case 1:
47785 case 2:
47786 return '[v] dddd [v] LT';
47787 case 3:
47788 return '[ve středu v] LT';
47789 case 4:
47790 return '[ve čtvrtek v] LT';
47791 case 5:
47792 return '[v pátek v] LT';
47793 case 6:
47794 return '[v sobotu v] LT';
47795 }
47796 },
47797 lastDay: '[včera v] LT',
47798 lastWeek: function () {
47799 switch (this.day()) {
47800 case 0:
47801 return '[minulou neděli v] LT';
47802 case 1:
47803 case 2:
47804 return '[minulé] dddd [v] LT';
47805 case 3:
47806 return '[minulou středu v] LT';
47807 case 4:
47808 case 5:
47809 return '[minulý] dddd [v] LT';
47810 case 6:
47811 return '[minulou sobotu v] LT';
47812 }
47813 },
47814 sameElse: 'L'
47815 },
47816 relativeTime : {
47817 future : 'za %s',
47818 past : 'před %s',
47819 s : translate,
47820 ss : translate,
47821 m : translate,
47822 mm : translate,
47823 h : translate,
47824 hh : translate,
47825 d : translate,
47826 dd : translate,
47827 M : translate,
47828 MM : translate,
47829 y : translate,
47830 yy : translate
47831 },
47832 dayOfMonthOrdinalParse : /\d{1,2}\./,
47833 ordinal : '%d.',
47834 week : {
47835 dow : 1, // Monday is the first day of the week.
47836 doy : 4 // The week that contains Jan 4th is the first week of the year.
47837 }
47838});
47839
47840return cs;
47841
47842})));
47843
47844
47845/***/ }),
47846
47847/***/ "./node_modules/moment/locale/cv.js":
47848/*!******************************************!*\
47849 !*** ./node_modules/moment/locale/cv.js ***!
47850 \******************************************/
47851/*! no static exports found */
47852/***/ (function(module, exports, __webpack_require__) {
47853
47854//! moment.js locale configuration
47855
47856;(function (global, factory) {
47857 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47858 undefined
47859}(this, (function (moment) { 'use strict';
47860
47861
47862var cv = moment.defineLocale('cv', {
47863 months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
47864 monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
47865 weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
47866 weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
47867 weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
47868 longDateFormat : {
47869 LT : 'HH:mm',
47870 LTS : 'HH:mm:ss',
47871 L : 'DD-MM-YYYY',
47872 LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
47873 LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
47874 LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
47875 },
47876 calendar : {
47877 sameDay: '[Паян] LT [сехетре]',
47878 nextDay: '[Ыран] LT [сехетре]',
47879 lastDay: '[Ӗнер] LT [сехетре]',
47880 nextWeek: '[Ҫитес] dddd LT [сехетре]',
47881 lastWeek: '[Иртнӗ] dddd LT [сехетре]',
47882 sameElse: 'L'
47883 },
47884 relativeTime : {
47885 future : function (output) {
47886 var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
47887 return output + affix;
47888 },
47889 past : '%s каялла',
47890 s : 'пӗр-ик ҫеккунт',
47891 ss : '%d ҫеккунт',
47892 m : 'пӗр минут',
47893 mm : '%d минут',
47894 h : 'пӗр сехет',
47895 hh : '%d сехет',
47896 d : 'пӗр кун',
47897 dd : '%d кун',
47898 M : 'пӗр уйӑх',
47899 MM : '%d уйӑх',
47900 y : 'пӗр ҫул',
47901 yy : '%d ҫул'
47902 },
47903 dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
47904 ordinal : '%d-мӗш',
47905 week : {
47906 dow : 1, // Monday is the first day of the week.
47907 doy : 7 // The week that contains Jan 1st is the first week of the year.
47908 }
47909});
47910
47911return cv;
47912
47913})));
47914
47915
47916/***/ }),
47917
47918/***/ "./node_modules/moment/locale/cy.js":
47919/*!******************************************!*\
47920 !*** ./node_modules/moment/locale/cy.js ***!
47921 \******************************************/
47922/*! no static exports found */
47923/***/ (function(module, exports, __webpack_require__) {
47924
47925//! moment.js locale configuration
47926
47927;(function (global, factory) {
47928 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
47929 undefined
47930}(this, (function (moment) { 'use strict';
47931
47932
47933var cy = moment.defineLocale('cy', {
47934 months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
47935 monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
47936 weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
47937 weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
47938 weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
47939 weekdaysParseExact : true,
47940 // time formats are the same as en-gb
47941 longDateFormat: {
47942 LT: 'HH:mm',
47943 LTS : 'HH:mm:ss',
47944 L: 'DD/MM/YYYY',
47945 LL: 'D MMMM YYYY',
47946 LLL: 'D MMMM YYYY HH:mm',
47947 LLLL: 'dddd, D MMMM YYYY HH:mm'
47948 },
47949 calendar: {
47950 sameDay: '[Heddiw am] LT',
47951 nextDay: '[Yfory am] LT',
47952 nextWeek: 'dddd [am] LT',
47953 lastDay: '[Ddoe am] LT',
47954 lastWeek: 'dddd [diwethaf am] LT',
47955 sameElse: 'L'
47956 },
47957 relativeTime: {
47958 future: 'mewn %s',
47959 past: '%s yn ôl',
47960 s: 'ychydig eiliadau',
47961 ss: '%d eiliad',
47962 m: 'munud',
47963 mm: '%d munud',
47964 h: 'awr',
47965 hh: '%d awr',
47966 d: 'diwrnod',
47967 dd: '%d diwrnod',
47968 M: 'mis',
47969 MM: '%d mis',
47970 y: 'blwyddyn',
47971 yy: '%d flynedd'
47972 },
47973 dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
47974 // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
47975 ordinal: function (number) {
47976 var b = number,
47977 output = '',
47978 lookup = [
47979 '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
47980 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
47981 ];
47982 if (b > 20) {
47983 if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
47984 output = 'fed'; // not 30ain, 70ain or 90ain
47985 } else {
47986 output = 'ain';
47987 }
47988 } else if (b > 0) {
47989 output = lookup[b];
47990 }
47991 return number + output;
47992 },
47993 week : {
47994 dow : 1, // Monday is the first day of the week.
47995 doy : 4 // The week that contains Jan 4th is the first week of the year.
47996 }
47997});
47998
47999return cy;
48000
48001})));
48002
48003
48004/***/ }),
48005
48006/***/ "./node_modules/moment/locale/da.js":
48007/*!******************************************!*\
48008 !*** ./node_modules/moment/locale/da.js ***!
48009 \******************************************/
48010/*! no static exports found */
48011/***/ (function(module, exports, __webpack_require__) {
48012
48013//! moment.js locale configuration
48014
48015;(function (global, factory) {
48016 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48017 undefined
48018}(this, (function (moment) { 'use strict';
48019
48020
48021var da = moment.defineLocale('da', {
48022 months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
48023 monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
48024 weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
48025 weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
48026 weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
48027 longDateFormat : {
48028 LT : 'HH:mm',
48029 LTS : 'HH:mm:ss',
48030 L : 'DD.MM.YYYY',
48031 LL : 'D. MMMM YYYY',
48032 LLL : 'D. MMMM YYYY HH:mm',
48033 LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'
48034 },
48035 calendar : {
48036 sameDay : '[i dag kl.] LT',
48037 nextDay : '[i morgen kl.] LT',
48038 nextWeek : 'på dddd [kl.] LT',
48039 lastDay : '[i går kl.] LT',
48040 lastWeek : '[i] dddd[s kl.] LT',
48041 sameElse : 'L'
48042 },
48043 relativeTime : {
48044 future : 'om %s',
48045 past : '%s siden',
48046 s : 'få sekunder',
48047 ss : '%d sekunder',
48048 m : 'et minut',
48049 mm : '%d minutter',
48050 h : 'en time',
48051 hh : '%d timer',
48052 d : 'en dag',
48053 dd : '%d dage',
48054 M : 'en måned',
48055 MM : '%d måneder',
48056 y : 'et år',
48057 yy : '%d år'
48058 },
48059 dayOfMonthOrdinalParse: /\d{1,2}\./,
48060 ordinal : '%d.',
48061 week : {
48062 dow : 1, // Monday is the first day of the week.
48063 doy : 4 // The week that contains Jan 4th is the first week of the year.
48064 }
48065});
48066
48067return da;
48068
48069})));
48070
48071
48072/***/ }),
48073
48074/***/ "./node_modules/moment/locale/de-at.js":
48075/*!*********************************************!*\
48076 !*** ./node_modules/moment/locale/de-at.js ***!
48077 \*********************************************/
48078/*! no static exports found */
48079/***/ (function(module, exports, __webpack_require__) {
48080
48081//! moment.js locale configuration
48082
48083;(function (global, factory) {
48084 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48085 undefined
48086}(this, (function (moment) { 'use strict';
48087
48088
48089function processRelativeTime(number, withoutSuffix, key, isFuture) {
48090 var format = {
48091 'm': ['eine Minute', 'einer Minute'],
48092 'h': ['eine Stunde', 'einer Stunde'],
48093 'd': ['ein Tag', 'einem Tag'],
48094 'dd': [number + ' Tage', number + ' Tagen'],
48095 'M': ['ein Monat', 'einem Monat'],
48096 'MM': [number + ' Monate', number + ' Monaten'],
48097 'y': ['ein Jahr', 'einem Jahr'],
48098 'yy': [number + ' Jahre', number + ' Jahren']
48099 };
48100 return withoutSuffix ? format[key][0] : format[key][1];
48101}
48102
48103var deAt = moment.defineLocale('de-at', {
48104 months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
48105 monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
48106 monthsParseExact : true,
48107 weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
48108 weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
48109 weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
48110 weekdaysParseExact : true,
48111 longDateFormat : {
48112 LT: 'HH:mm',
48113 LTS: 'HH:mm:ss',
48114 L : 'DD.MM.YYYY',
48115 LL : 'D. MMMM YYYY',
48116 LLL : 'D. MMMM YYYY HH:mm',
48117 LLLL : 'dddd, D. MMMM YYYY HH:mm'
48118 },
48119 calendar : {
48120 sameDay: '[heute um] LT [Uhr]',
48121 sameElse: 'L',
48122 nextDay: '[morgen um] LT [Uhr]',
48123 nextWeek: 'dddd [um] LT [Uhr]',
48124 lastDay: '[gestern um] LT [Uhr]',
48125 lastWeek: '[letzten] dddd [um] LT [Uhr]'
48126 },
48127 relativeTime : {
48128 future : 'in %s',
48129 past : 'vor %s',
48130 s : 'ein paar Sekunden',
48131 ss : '%d Sekunden',
48132 m : processRelativeTime,
48133 mm : '%d Minuten',
48134 h : processRelativeTime,
48135 hh : '%d Stunden',
48136 d : processRelativeTime,
48137 dd : processRelativeTime,
48138 M : processRelativeTime,
48139 MM : processRelativeTime,
48140 y : processRelativeTime,
48141 yy : processRelativeTime
48142 },
48143 dayOfMonthOrdinalParse: /\d{1,2}\./,
48144 ordinal : '%d.',
48145 week : {
48146 dow : 1, // Monday is the first day of the week.
48147 doy : 4 // The week that contains Jan 4th is the first week of the year.
48148 }
48149});
48150
48151return deAt;
48152
48153})));
48154
48155
48156/***/ }),
48157
48158/***/ "./node_modules/moment/locale/de-ch.js":
48159/*!*********************************************!*\
48160 !*** ./node_modules/moment/locale/de-ch.js ***!
48161 \*********************************************/
48162/*! no static exports found */
48163/***/ (function(module, exports, __webpack_require__) {
48164
48165//! moment.js locale configuration
48166
48167;(function (global, factory) {
48168 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48169 undefined
48170}(this, (function (moment) { 'use strict';
48171
48172
48173function processRelativeTime(number, withoutSuffix, key, isFuture) {
48174 var format = {
48175 'm': ['eine Minute', 'einer Minute'],
48176 'h': ['eine Stunde', 'einer Stunde'],
48177 'd': ['ein Tag', 'einem Tag'],
48178 'dd': [number + ' Tage', number + ' Tagen'],
48179 'M': ['ein Monat', 'einem Monat'],
48180 'MM': [number + ' Monate', number + ' Monaten'],
48181 'y': ['ein Jahr', 'einem Jahr'],
48182 'yy': [number + ' Jahre', number + ' Jahren']
48183 };
48184 return withoutSuffix ? format[key][0] : format[key][1];
48185}
48186
48187var deCh = moment.defineLocale('de-ch', {
48188 months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
48189 monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
48190 monthsParseExact : true,
48191 weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
48192 weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
48193 weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
48194 weekdaysParseExact : true,
48195 longDateFormat : {
48196 LT: 'HH:mm',
48197 LTS: 'HH:mm:ss',
48198 L : 'DD.MM.YYYY',
48199 LL : 'D. MMMM YYYY',
48200 LLL : 'D. MMMM YYYY HH:mm',
48201 LLLL : 'dddd, D. MMMM YYYY HH:mm'
48202 },
48203 calendar : {
48204 sameDay: '[heute um] LT [Uhr]',
48205 sameElse: 'L',
48206 nextDay: '[morgen um] LT [Uhr]',
48207 nextWeek: 'dddd [um] LT [Uhr]',
48208 lastDay: '[gestern um] LT [Uhr]',
48209 lastWeek: '[letzten] dddd [um] LT [Uhr]'
48210 },
48211 relativeTime : {
48212 future : 'in %s',
48213 past : 'vor %s',
48214 s : 'ein paar Sekunden',
48215 ss : '%d Sekunden',
48216 m : processRelativeTime,
48217 mm : '%d Minuten',
48218 h : processRelativeTime,
48219 hh : '%d Stunden',
48220 d : processRelativeTime,
48221 dd : processRelativeTime,
48222 M : processRelativeTime,
48223 MM : processRelativeTime,
48224 y : processRelativeTime,
48225 yy : processRelativeTime
48226 },
48227 dayOfMonthOrdinalParse: /\d{1,2}\./,
48228 ordinal : '%d.',
48229 week : {
48230 dow : 1, // Monday is the first day of the week.
48231 doy : 4 // The week that contains Jan 4th is the first week of the year.
48232 }
48233});
48234
48235return deCh;
48236
48237})));
48238
48239
48240/***/ }),
48241
48242/***/ "./node_modules/moment/locale/de.js":
48243/*!******************************************!*\
48244 !*** ./node_modules/moment/locale/de.js ***!
48245 \******************************************/
48246/*! no static exports found */
48247/***/ (function(module, exports, __webpack_require__) {
48248
48249//! moment.js locale configuration
48250
48251;(function (global, factory) {
48252 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48253 undefined
48254}(this, (function (moment) { 'use strict';
48255
48256
48257function processRelativeTime(number, withoutSuffix, key, isFuture) {
48258 var format = {
48259 'm': ['eine Minute', 'einer Minute'],
48260 'h': ['eine Stunde', 'einer Stunde'],
48261 'd': ['ein Tag', 'einem Tag'],
48262 'dd': [number + ' Tage', number + ' Tagen'],
48263 'M': ['ein Monat', 'einem Monat'],
48264 'MM': [number + ' Monate', number + ' Monaten'],
48265 'y': ['ein Jahr', 'einem Jahr'],
48266 'yy': [number + ' Jahre', number + ' Jahren']
48267 };
48268 return withoutSuffix ? format[key][0] : format[key][1];
48269}
48270
48271var de = moment.defineLocale('de', {
48272 months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
48273 monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
48274 monthsParseExact : true,
48275 weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
48276 weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
48277 weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
48278 weekdaysParseExact : true,
48279 longDateFormat : {
48280 LT: 'HH:mm',
48281 LTS: 'HH:mm:ss',
48282 L : 'DD.MM.YYYY',
48283 LL : 'D. MMMM YYYY',
48284 LLL : 'D. MMMM YYYY HH:mm',
48285 LLLL : 'dddd, D. MMMM YYYY HH:mm'
48286 },
48287 calendar : {
48288 sameDay: '[heute um] LT [Uhr]',
48289 sameElse: 'L',
48290 nextDay: '[morgen um] LT [Uhr]',
48291 nextWeek: 'dddd [um] LT [Uhr]',
48292 lastDay: '[gestern um] LT [Uhr]',
48293 lastWeek: '[letzten] dddd [um] LT [Uhr]'
48294 },
48295 relativeTime : {
48296 future : 'in %s',
48297 past : 'vor %s',
48298 s : 'ein paar Sekunden',
48299 ss : '%d Sekunden',
48300 m : processRelativeTime,
48301 mm : '%d Minuten',
48302 h : processRelativeTime,
48303 hh : '%d Stunden',
48304 d : processRelativeTime,
48305 dd : processRelativeTime,
48306 M : processRelativeTime,
48307 MM : processRelativeTime,
48308 y : processRelativeTime,
48309 yy : processRelativeTime
48310 },
48311 dayOfMonthOrdinalParse: /\d{1,2}\./,
48312 ordinal : '%d.',
48313 week : {
48314 dow : 1, // Monday is the first day of the week.
48315 doy : 4 // The week that contains Jan 4th is the first week of the year.
48316 }
48317});
48318
48319return de;
48320
48321})));
48322
48323
48324/***/ }),
48325
48326/***/ "./node_modules/moment/locale/dv.js":
48327/*!******************************************!*\
48328 !*** ./node_modules/moment/locale/dv.js ***!
48329 \******************************************/
48330/*! no static exports found */
48331/***/ (function(module, exports, __webpack_require__) {
48332
48333//! moment.js locale configuration
48334
48335;(function (global, factory) {
48336 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48337 undefined
48338}(this, (function (moment) { 'use strict';
48339
48340
48341var months = [
48342 'ޖެނުއަރީ',
48343 'ފެބްރުއަރީ',
48344 'މާރިޗު',
48345 'އޭޕްރީލު',
48346 'މޭ',
48347 'ޖޫން',
48348 'ޖުލައި',
48349 'އޯގަސްޓު',
48350 'ސެޕްޓެމްބަރު',
48351 'އޮކްޓޯބަރު',
48352 'ނޮވެމްބަރު',
48353 'ޑިސެމްބަރު'
48354], weekdays = [
48355 'އާދިއްތަ',
48356 'ހޯމަ',
48357 'އަންގާރަ',
48358 'ބުދަ',
48359 'ބުރާސްފަތި',
48360 'ހުކުރު',
48361 'ހޮނިހިރު'
48362];
48363
48364var dv = moment.defineLocale('dv', {
48365 months : months,
48366 monthsShort : months,
48367 weekdays : weekdays,
48368 weekdaysShort : weekdays,
48369 weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
48370 longDateFormat : {
48371
48372 LT : 'HH:mm',
48373 LTS : 'HH:mm:ss',
48374 L : 'D/M/YYYY',
48375 LL : 'D MMMM YYYY',
48376 LLL : 'D MMMM YYYY HH:mm',
48377 LLLL : 'dddd D MMMM YYYY HH:mm'
48378 },
48379 meridiemParse: /މކ|މފ/,
48380 isPM : function (input) {
48381 return 'މފ' === input;
48382 },
48383 meridiem : function (hour, minute, isLower) {
48384 if (hour < 12) {
48385 return 'މކ';
48386 } else {
48387 return 'މފ';
48388 }
48389 },
48390 calendar : {
48391 sameDay : '[މިއަދު] LT',
48392 nextDay : '[މާދަމާ] LT',
48393 nextWeek : 'dddd LT',
48394 lastDay : '[އިއްޔެ] LT',
48395 lastWeek : '[ފާއިތުވި] dddd LT',
48396 sameElse : 'L'
48397 },
48398 relativeTime : {
48399 future : 'ތެރޭގައި %s',
48400 past : 'ކުރިން %s',
48401 s : 'ސިކުންތުކޮޅެއް',
48402 ss : 'd% ސިކުންތު',
48403 m : 'މިނިޓެއް',
48404 mm : 'މިނިޓު %d',
48405 h : 'ގަޑިއިރެއް',
48406 hh : 'ގަޑިއިރު %d',
48407 d : 'ދުވަހެއް',
48408 dd : 'ދުވަސް %d',
48409 M : 'މަހެއް',
48410 MM : 'މަސް %d',
48411 y : 'އަހަރެއް',
48412 yy : 'އަހަރު %d'
48413 },
48414 preparse: function (string) {
48415 return string.replace(/،/g, ',');
48416 },
48417 postformat: function (string) {
48418 return string.replace(/,/g, '،');
48419 },
48420 week : {
48421 dow : 7, // Sunday is the first day of the week.
48422 doy : 12 // The week that contains Jan 1st is the first week of the year.
48423 }
48424});
48425
48426return dv;
48427
48428})));
48429
48430
48431/***/ }),
48432
48433/***/ "./node_modules/moment/locale/el.js":
48434/*!******************************************!*\
48435 !*** ./node_modules/moment/locale/el.js ***!
48436 \******************************************/
48437/*! no static exports found */
48438/***/ (function(module, exports, __webpack_require__) {
48439
48440//! moment.js locale configuration
48441
48442;(function (global, factory) {
48443 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48444 undefined
48445}(this, (function (moment) { 'use strict';
48446
48447function isFunction(input) {
48448 return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
48449}
48450
48451
48452var el = moment.defineLocale('el', {
48453 monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
48454 monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
48455 months : function (momentToFormat, format) {
48456 if (!momentToFormat) {
48457 return this._monthsNominativeEl;
48458 } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
48459 return this._monthsGenitiveEl[momentToFormat.month()];
48460 } else {
48461 return this._monthsNominativeEl[momentToFormat.month()];
48462 }
48463 },
48464 monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
48465 weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
48466 weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
48467 weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
48468 meridiem : function (hours, minutes, isLower) {
48469 if (hours > 11) {
48470 return isLower ? 'μμ' : 'ΜΜ';
48471 } else {
48472 return isLower ? 'πμ' : 'ΠΜ';
48473 }
48474 },
48475 isPM : function (input) {
48476 return ((input + '').toLowerCase()[0] === 'μ');
48477 },
48478 meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
48479 longDateFormat : {
48480 LT : 'h:mm A',
48481 LTS : 'h:mm:ss A',
48482 L : 'DD/MM/YYYY',
48483 LL : 'D MMMM YYYY',
48484 LLL : 'D MMMM YYYY h:mm A',
48485 LLLL : 'dddd, D MMMM YYYY h:mm A'
48486 },
48487 calendarEl : {
48488 sameDay : '[Σήμερα {}] LT',
48489 nextDay : '[Αύριο {}] LT',
48490 nextWeek : 'dddd [{}] LT',
48491 lastDay : '[Χθες {}] LT',
48492 lastWeek : function () {
48493 switch (this.day()) {
48494 case 6:
48495 return '[το προηγούμενο] dddd [{}] LT';
48496 default:
48497 return '[την προηγούμενη] dddd [{}] LT';
48498 }
48499 },
48500 sameElse : 'L'
48501 },
48502 calendar : function (key, mom) {
48503 var output = this._calendarEl[key],
48504 hours = mom && mom.hours();
48505 if (isFunction(output)) {
48506 output = output.apply(mom);
48507 }
48508 return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
48509 },
48510 relativeTime : {
48511 future : 'σε %s',
48512 past : '%s πριν',
48513 s : 'λίγα δευτερόλεπτα',
48514 ss : '%d δευτερόλεπτα',
48515 m : 'ένα λεπτό',
48516 mm : '%d λεπτά',
48517 h : 'μία ώρα',
48518 hh : '%d ώρες',
48519 d : 'μία μέρα',
48520 dd : '%d μέρες',
48521 M : 'ένας μήνας',
48522 MM : '%d μήνες',
48523 y : 'ένας χρόνος',
48524 yy : '%d χρόνια'
48525 },
48526 dayOfMonthOrdinalParse: /\d{1,2}η/,
48527 ordinal: '%dη',
48528 week : {
48529 dow : 1, // Monday is the first day of the week.
48530 doy : 4 // The week that contains Jan 4st is the first week of the year.
48531 }
48532});
48533
48534return el;
48535
48536})));
48537
48538
48539/***/ }),
48540
48541/***/ "./node_modules/moment/locale/en-au.js":
48542/*!*********************************************!*\
48543 !*** ./node_modules/moment/locale/en-au.js ***!
48544 \*********************************************/
48545/*! no static exports found */
48546/***/ (function(module, exports, __webpack_require__) {
48547
48548//! moment.js locale configuration
48549
48550;(function (global, factory) {
48551 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48552 undefined
48553}(this, (function (moment) { 'use strict';
48554
48555
48556var enAu = moment.defineLocale('en-au', {
48557 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
48558 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
48559 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
48560 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
48561 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
48562 longDateFormat : {
48563 LT : 'h:mm A',
48564 LTS : 'h:mm:ss A',
48565 L : 'DD/MM/YYYY',
48566 LL : 'D MMMM YYYY',
48567 LLL : 'D MMMM YYYY h:mm A',
48568 LLLL : 'dddd, D MMMM YYYY h:mm A'
48569 },
48570 calendar : {
48571 sameDay : '[Today at] LT',
48572 nextDay : '[Tomorrow at] LT',
48573 nextWeek : 'dddd [at] LT',
48574 lastDay : '[Yesterday at] LT',
48575 lastWeek : '[Last] dddd [at] LT',
48576 sameElse : 'L'
48577 },
48578 relativeTime : {
48579 future : 'in %s',
48580 past : '%s ago',
48581 s : 'a few seconds',
48582 ss : '%d seconds',
48583 m : 'a minute',
48584 mm : '%d minutes',
48585 h : 'an hour',
48586 hh : '%d hours',
48587 d : 'a day',
48588 dd : '%d days',
48589 M : 'a month',
48590 MM : '%d months',
48591 y : 'a year',
48592 yy : '%d years'
48593 },
48594 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
48595 ordinal : function (number) {
48596 var b = number % 10,
48597 output = (~~(number % 100 / 10) === 1) ? 'th' :
48598 (b === 1) ? 'st' :
48599 (b === 2) ? 'nd' :
48600 (b === 3) ? 'rd' : 'th';
48601 return number + output;
48602 },
48603 week : {
48604 dow : 1, // Monday is the first day of the week.
48605 doy : 4 // The week that contains Jan 4th is the first week of the year.
48606 }
48607});
48608
48609return enAu;
48610
48611})));
48612
48613
48614/***/ }),
48615
48616/***/ "./node_modules/moment/locale/en-ca.js":
48617/*!*********************************************!*\
48618 !*** ./node_modules/moment/locale/en-ca.js ***!
48619 \*********************************************/
48620/*! no static exports found */
48621/***/ (function(module, exports, __webpack_require__) {
48622
48623//! moment.js locale configuration
48624
48625;(function (global, factory) {
48626 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48627 undefined
48628}(this, (function (moment) { 'use strict';
48629
48630
48631var enCa = moment.defineLocale('en-ca', {
48632 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
48633 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
48634 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
48635 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
48636 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
48637 longDateFormat : {
48638 LT : 'h:mm A',
48639 LTS : 'h:mm:ss A',
48640 L : 'YYYY-MM-DD',
48641 LL : 'MMMM D, YYYY',
48642 LLL : 'MMMM D, YYYY h:mm A',
48643 LLLL : 'dddd, MMMM D, YYYY h:mm A'
48644 },
48645 calendar : {
48646 sameDay : '[Today at] LT',
48647 nextDay : '[Tomorrow at] LT',
48648 nextWeek : 'dddd [at] LT',
48649 lastDay : '[Yesterday at] LT',
48650 lastWeek : '[Last] dddd [at] LT',
48651 sameElse : 'L'
48652 },
48653 relativeTime : {
48654 future : 'in %s',
48655 past : '%s ago',
48656 s : 'a few seconds',
48657 ss : '%d seconds',
48658 m : 'a minute',
48659 mm : '%d minutes',
48660 h : 'an hour',
48661 hh : '%d hours',
48662 d : 'a day',
48663 dd : '%d days',
48664 M : 'a month',
48665 MM : '%d months',
48666 y : 'a year',
48667 yy : '%d years'
48668 },
48669 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
48670 ordinal : function (number) {
48671 var b = number % 10,
48672 output = (~~(number % 100 / 10) === 1) ? 'th' :
48673 (b === 1) ? 'st' :
48674 (b === 2) ? 'nd' :
48675 (b === 3) ? 'rd' : 'th';
48676 return number + output;
48677 }
48678});
48679
48680return enCa;
48681
48682})));
48683
48684
48685/***/ }),
48686
48687/***/ "./node_modules/moment/locale/en-gb.js":
48688/*!*********************************************!*\
48689 !*** ./node_modules/moment/locale/en-gb.js ***!
48690 \*********************************************/
48691/*! no static exports found */
48692/***/ (function(module, exports, __webpack_require__) {
48693
48694//! moment.js locale configuration
48695
48696;(function (global, factory) {
48697 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48698 undefined
48699}(this, (function (moment) { 'use strict';
48700
48701
48702var enGb = moment.defineLocale('en-gb', {
48703 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
48704 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
48705 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
48706 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
48707 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
48708 longDateFormat : {
48709 LT : 'HH:mm',
48710 LTS : 'HH:mm:ss',
48711 L : 'DD/MM/YYYY',
48712 LL : 'D MMMM YYYY',
48713 LLL : 'D MMMM YYYY HH:mm',
48714 LLLL : 'dddd, D MMMM YYYY HH:mm'
48715 },
48716 calendar : {
48717 sameDay : '[Today at] LT',
48718 nextDay : '[Tomorrow at] LT',
48719 nextWeek : 'dddd [at] LT',
48720 lastDay : '[Yesterday at] LT',
48721 lastWeek : '[Last] dddd [at] LT',
48722 sameElse : 'L'
48723 },
48724 relativeTime : {
48725 future : 'in %s',
48726 past : '%s ago',
48727 s : 'a few seconds',
48728 ss : '%d seconds',
48729 m : 'a minute',
48730 mm : '%d minutes',
48731 h : 'an hour',
48732 hh : '%d hours',
48733 d : 'a day',
48734 dd : '%d days',
48735 M : 'a month',
48736 MM : '%d months',
48737 y : 'a year',
48738 yy : '%d years'
48739 },
48740 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
48741 ordinal : function (number) {
48742 var b = number % 10,
48743 output = (~~(number % 100 / 10) === 1) ? 'th' :
48744 (b === 1) ? 'st' :
48745 (b === 2) ? 'nd' :
48746 (b === 3) ? 'rd' : 'th';
48747 return number + output;
48748 },
48749 week : {
48750 dow : 1, // Monday is the first day of the week.
48751 doy : 4 // The week that contains Jan 4th is the first week of the year.
48752 }
48753});
48754
48755return enGb;
48756
48757})));
48758
48759
48760/***/ }),
48761
48762/***/ "./node_modules/moment/locale/en-ie.js":
48763/*!*********************************************!*\
48764 !*** ./node_modules/moment/locale/en-ie.js ***!
48765 \*********************************************/
48766/*! no static exports found */
48767/***/ (function(module, exports, __webpack_require__) {
48768
48769//! moment.js locale configuration
48770
48771;(function (global, factory) {
48772 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48773 undefined
48774}(this, (function (moment) { 'use strict';
48775
48776
48777var enIe = moment.defineLocale('en-ie', {
48778 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
48779 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
48780 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
48781 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
48782 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
48783 longDateFormat : {
48784 LT : 'HH:mm',
48785 LTS : 'HH:mm:ss',
48786 L : 'DD-MM-YYYY',
48787 LL : 'D MMMM YYYY',
48788 LLL : 'D MMMM YYYY HH:mm',
48789 LLLL : 'dddd D MMMM YYYY HH:mm'
48790 },
48791 calendar : {
48792 sameDay : '[Today at] LT',
48793 nextDay : '[Tomorrow at] LT',
48794 nextWeek : 'dddd [at] LT',
48795 lastDay : '[Yesterday at] LT',
48796 lastWeek : '[Last] dddd [at] LT',
48797 sameElse : 'L'
48798 },
48799 relativeTime : {
48800 future : 'in %s',
48801 past : '%s ago',
48802 s : 'a few seconds',
48803 ss : '%d seconds',
48804 m : 'a minute',
48805 mm : '%d minutes',
48806 h : 'an hour',
48807 hh : '%d hours',
48808 d : 'a day',
48809 dd : '%d days',
48810 M : 'a month',
48811 MM : '%d months',
48812 y : 'a year',
48813 yy : '%d years'
48814 },
48815 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
48816 ordinal : function (number) {
48817 var b = number % 10,
48818 output = (~~(number % 100 / 10) === 1) ? 'th' :
48819 (b === 1) ? 'st' :
48820 (b === 2) ? 'nd' :
48821 (b === 3) ? 'rd' : 'th';
48822 return number + output;
48823 },
48824 week : {
48825 dow : 1, // Monday is the first day of the week.
48826 doy : 4 // The week that contains Jan 4th is the first week of the year.
48827 }
48828});
48829
48830return enIe;
48831
48832})));
48833
48834
48835/***/ }),
48836
48837/***/ "./node_modules/moment/locale/en-il.js":
48838/*!*********************************************!*\
48839 !*** ./node_modules/moment/locale/en-il.js ***!
48840 \*********************************************/
48841/*! no static exports found */
48842/***/ (function(module, exports, __webpack_require__) {
48843
48844//! moment.js locale configuration
48845
48846;(function (global, factory) {
48847 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48848 undefined
48849}(this, (function (moment) { 'use strict';
48850
48851
48852var enIl = moment.defineLocale('en-il', {
48853 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
48854 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
48855 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
48856 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
48857 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
48858 longDateFormat : {
48859 LT : 'HH:mm',
48860 LTS : 'HH:mm:ss',
48861 L : 'DD/MM/YYYY',
48862 LL : 'D MMMM YYYY',
48863 LLL : 'D MMMM YYYY HH:mm',
48864 LLLL : 'dddd, D MMMM YYYY HH:mm'
48865 },
48866 calendar : {
48867 sameDay : '[Today at] LT',
48868 nextDay : '[Tomorrow at] LT',
48869 nextWeek : 'dddd [at] LT',
48870 lastDay : '[Yesterday at] LT',
48871 lastWeek : '[Last] dddd [at] LT',
48872 sameElse : 'L'
48873 },
48874 relativeTime : {
48875 future : 'in %s',
48876 past : '%s ago',
48877 s : 'a few seconds',
48878 m : 'a minute',
48879 mm : '%d minutes',
48880 h : 'an hour',
48881 hh : '%d hours',
48882 d : 'a day',
48883 dd : '%d days',
48884 M : 'a month',
48885 MM : '%d months',
48886 y : 'a year',
48887 yy : '%d years'
48888 },
48889 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
48890 ordinal : function (number) {
48891 var b = number % 10,
48892 output = (~~(number % 100 / 10) === 1) ? 'th' :
48893 (b === 1) ? 'st' :
48894 (b === 2) ? 'nd' :
48895 (b === 3) ? 'rd' : 'th';
48896 return number + output;
48897 }
48898});
48899
48900return enIl;
48901
48902})));
48903
48904
48905/***/ }),
48906
48907/***/ "./node_modules/moment/locale/en-nz.js":
48908/*!*********************************************!*\
48909 !*** ./node_modules/moment/locale/en-nz.js ***!
48910 \*********************************************/
48911/*! no static exports found */
48912/***/ (function(module, exports, __webpack_require__) {
48913
48914//! moment.js locale configuration
48915
48916;(function (global, factory) {
48917 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48918 undefined
48919}(this, (function (moment) { 'use strict';
48920
48921
48922var enNz = moment.defineLocale('en-nz', {
48923 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
48924 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
48925 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
48926 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
48927 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
48928 longDateFormat : {
48929 LT : 'h:mm A',
48930 LTS : 'h:mm:ss A',
48931 L : 'DD/MM/YYYY',
48932 LL : 'D MMMM YYYY',
48933 LLL : 'D MMMM YYYY h:mm A',
48934 LLLL : 'dddd, D MMMM YYYY h:mm A'
48935 },
48936 calendar : {
48937 sameDay : '[Today at] LT',
48938 nextDay : '[Tomorrow at] LT',
48939 nextWeek : 'dddd [at] LT',
48940 lastDay : '[Yesterday at] LT',
48941 lastWeek : '[Last] dddd [at] LT',
48942 sameElse : 'L'
48943 },
48944 relativeTime : {
48945 future : 'in %s',
48946 past : '%s ago',
48947 s : 'a few seconds',
48948 ss : '%d seconds',
48949 m : 'a minute',
48950 mm : '%d minutes',
48951 h : 'an hour',
48952 hh : '%d hours',
48953 d : 'a day',
48954 dd : '%d days',
48955 M : 'a month',
48956 MM : '%d months',
48957 y : 'a year',
48958 yy : '%d years'
48959 },
48960 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
48961 ordinal : function (number) {
48962 var b = number % 10,
48963 output = (~~(number % 100 / 10) === 1) ? 'th' :
48964 (b === 1) ? 'st' :
48965 (b === 2) ? 'nd' :
48966 (b === 3) ? 'rd' : 'th';
48967 return number + output;
48968 },
48969 week : {
48970 dow : 1, // Monday is the first day of the week.
48971 doy : 4 // The week that contains Jan 4th is the first week of the year.
48972 }
48973});
48974
48975return enNz;
48976
48977})));
48978
48979
48980/***/ }),
48981
48982/***/ "./node_modules/moment/locale/eo.js":
48983/*!******************************************!*\
48984 !*** ./node_modules/moment/locale/eo.js ***!
48985 \******************************************/
48986/*! no static exports found */
48987/***/ (function(module, exports, __webpack_require__) {
48988
48989//! moment.js locale configuration
48990
48991;(function (global, factory) {
48992 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
48993 undefined
48994}(this, (function (moment) { 'use strict';
48995
48996
48997var eo = moment.defineLocale('eo', {
48998 months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
48999 monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
49000 weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
49001 weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
49002 weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
49003 longDateFormat : {
49004 LT : 'HH:mm',
49005 LTS : 'HH:mm:ss',
49006 L : 'YYYY-MM-DD',
49007 LL : 'D[-a de] MMMM, YYYY',
49008 LLL : 'D[-a de] MMMM, YYYY HH:mm',
49009 LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'
49010 },
49011 meridiemParse: /[ap]\.t\.m/i,
49012 isPM: function (input) {
49013 return input.charAt(0).toLowerCase() === 'p';
49014 },
49015 meridiem : function (hours, minutes, isLower) {
49016 if (hours > 11) {
49017 return isLower ? 'p.t.m.' : 'P.T.M.';
49018 } else {
49019 return isLower ? 'a.t.m.' : 'A.T.M.';
49020 }
49021 },
49022 calendar : {
49023 sameDay : '[Hodiaŭ je] LT',
49024 nextDay : '[Morgaŭ je] LT',
49025 nextWeek : 'dddd [je] LT',
49026 lastDay : '[Hieraŭ je] LT',
49027 lastWeek : '[pasinta] dddd [je] LT',
49028 sameElse : 'L'
49029 },
49030 relativeTime : {
49031 future : 'post %s',
49032 past : 'antaŭ %s',
49033 s : 'sekundoj',
49034 ss : '%d sekundoj',
49035 m : 'minuto',
49036 mm : '%d minutoj',
49037 h : 'horo',
49038 hh : '%d horoj',
49039 d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
49040 dd : '%d tagoj',
49041 M : 'monato',
49042 MM : '%d monatoj',
49043 y : 'jaro',
49044 yy : '%d jaroj'
49045 },
49046 dayOfMonthOrdinalParse: /\d{1,2}a/,
49047 ordinal : '%da',
49048 week : {
49049 dow : 1, // Monday is the first day of the week.
49050 doy : 7 // The week that contains Jan 1st is the first week of the year.
49051 }
49052});
49053
49054return eo;
49055
49056})));
49057
49058
49059/***/ }),
49060
49061/***/ "./node_modules/moment/locale/es-do.js":
49062/*!*********************************************!*\
49063 !*** ./node_modules/moment/locale/es-do.js ***!
49064 \*********************************************/
49065/*! no static exports found */
49066/***/ (function(module, exports, __webpack_require__) {
49067
49068//! moment.js locale configuration
49069
49070;(function (global, factory) {
49071 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49072 undefined
49073}(this, (function (moment) { 'use strict';
49074
49075
49076var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
49077 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
49078
49079var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
49080var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
49081
49082var esDo = moment.defineLocale('es-do', {
49083 months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
49084 monthsShort : function (m, format) {
49085 if (!m) {
49086 return monthsShortDot;
49087 } else if (/-MMM-/.test(format)) {
49088 return monthsShort[m.month()];
49089 } else {
49090 return monthsShortDot[m.month()];
49091 }
49092 },
49093 monthsRegex: monthsRegex,
49094 monthsShortRegex: monthsRegex,
49095 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
49096 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
49097 monthsParse: monthsParse,
49098 longMonthsParse: monthsParse,
49099 shortMonthsParse: monthsParse,
49100 weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
49101 weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
49102 weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
49103 weekdaysParseExact : true,
49104 longDateFormat : {
49105 LT : 'h:mm A',
49106 LTS : 'h:mm:ss A',
49107 L : 'DD/MM/YYYY',
49108 LL : 'D [de] MMMM [de] YYYY',
49109 LLL : 'D [de] MMMM [de] YYYY h:mm A',
49110 LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'
49111 },
49112 calendar : {
49113 sameDay : function () {
49114 return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49115 },
49116 nextDay : function () {
49117 return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49118 },
49119 nextWeek : function () {
49120 return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49121 },
49122 lastDay : function () {
49123 return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49124 },
49125 lastWeek : function () {
49126 return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49127 },
49128 sameElse : 'L'
49129 },
49130 relativeTime : {
49131 future : 'en %s',
49132 past : 'hace %s',
49133 s : 'unos segundos',
49134 ss : '%d segundos',
49135 m : 'un minuto',
49136 mm : '%d minutos',
49137 h : 'una hora',
49138 hh : '%d horas',
49139 d : 'un día',
49140 dd : '%d días',
49141 M : 'un mes',
49142 MM : '%d meses',
49143 y : 'un año',
49144 yy : '%d años'
49145 },
49146 dayOfMonthOrdinalParse : /\d{1,2}º/,
49147 ordinal : '%dº',
49148 week : {
49149 dow : 1, // Monday is the first day of the week.
49150 doy : 4 // The week that contains Jan 4th is the first week of the year.
49151 }
49152});
49153
49154return esDo;
49155
49156})));
49157
49158
49159/***/ }),
49160
49161/***/ "./node_modules/moment/locale/es-us.js":
49162/*!*********************************************!*\
49163 !*** ./node_modules/moment/locale/es-us.js ***!
49164 \*********************************************/
49165/*! no static exports found */
49166/***/ (function(module, exports, __webpack_require__) {
49167
49168//! moment.js locale configuration
49169
49170;(function (global, factory) {
49171 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49172 undefined
49173}(this, (function (moment) { 'use strict';
49174
49175
49176var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
49177 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
49178
49179var esUs = moment.defineLocale('es-us', {
49180 months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
49181 monthsShort : function (m, format) {
49182 if (!m) {
49183 return monthsShortDot;
49184 } else if (/-MMM-/.test(format)) {
49185 return monthsShort[m.month()];
49186 } else {
49187 return monthsShortDot[m.month()];
49188 }
49189 },
49190 monthsParseExact : true,
49191 weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
49192 weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
49193 weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
49194 weekdaysParseExact : true,
49195 longDateFormat : {
49196 LT : 'h:mm A',
49197 LTS : 'h:mm:ss A',
49198 L : 'MM/DD/YYYY',
49199 LL : 'MMMM [de] D [de] YYYY',
49200 LLL : 'MMMM [de] D [de] YYYY h:mm A',
49201 LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'
49202 },
49203 calendar : {
49204 sameDay : function () {
49205 return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49206 },
49207 nextDay : function () {
49208 return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49209 },
49210 nextWeek : function () {
49211 return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49212 },
49213 lastDay : function () {
49214 return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49215 },
49216 lastWeek : function () {
49217 return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49218 },
49219 sameElse : 'L'
49220 },
49221 relativeTime : {
49222 future : 'en %s',
49223 past : 'hace %s',
49224 s : 'unos segundos',
49225 ss : '%d segundos',
49226 m : 'un minuto',
49227 mm : '%d minutos',
49228 h : 'una hora',
49229 hh : '%d horas',
49230 d : 'un día',
49231 dd : '%d días',
49232 M : 'un mes',
49233 MM : '%d meses',
49234 y : 'un año',
49235 yy : '%d años'
49236 },
49237 dayOfMonthOrdinalParse : /\d{1,2}º/,
49238 ordinal : '%dº',
49239 week : {
49240 dow : 0, // Sunday is the first day of the week.
49241 doy : 6 // The week that contains Jan 1st is the first week of the year.
49242 }
49243});
49244
49245return esUs;
49246
49247})));
49248
49249
49250/***/ }),
49251
49252/***/ "./node_modules/moment/locale/es.js":
49253/*!******************************************!*\
49254 !*** ./node_modules/moment/locale/es.js ***!
49255 \******************************************/
49256/*! no static exports found */
49257/***/ (function(module, exports, __webpack_require__) {
49258
49259//! moment.js locale configuration
49260
49261;(function (global, factory) {
49262 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49263 undefined
49264}(this, (function (moment) { 'use strict';
49265
49266
49267var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
49268 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
49269
49270var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
49271var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
49272
49273var es = moment.defineLocale('es', {
49274 months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
49275 monthsShort : function (m, format) {
49276 if (!m) {
49277 return monthsShortDot;
49278 } else if (/-MMM-/.test(format)) {
49279 return monthsShort[m.month()];
49280 } else {
49281 return monthsShortDot[m.month()];
49282 }
49283 },
49284 monthsRegex : monthsRegex,
49285 monthsShortRegex : monthsRegex,
49286 monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
49287 monthsShortStrictRegex : /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
49288 monthsParse : monthsParse,
49289 longMonthsParse : monthsParse,
49290 shortMonthsParse : monthsParse,
49291 weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
49292 weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
49293 weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
49294 weekdaysParseExact : true,
49295 longDateFormat : {
49296 LT : 'H:mm',
49297 LTS : 'H:mm:ss',
49298 L : 'DD/MM/YYYY',
49299 LL : 'D [de] MMMM [de] YYYY',
49300 LLL : 'D [de] MMMM [de] YYYY H:mm',
49301 LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
49302 },
49303 calendar : {
49304 sameDay : function () {
49305 return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49306 },
49307 nextDay : function () {
49308 return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49309 },
49310 nextWeek : function () {
49311 return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49312 },
49313 lastDay : function () {
49314 return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49315 },
49316 lastWeek : function () {
49317 return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
49318 },
49319 sameElse : 'L'
49320 },
49321 relativeTime : {
49322 future : 'en %s',
49323 past : 'hace %s',
49324 s : 'unos segundos',
49325 ss : '%d segundos',
49326 m : 'un minuto',
49327 mm : '%d minutos',
49328 h : 'una hora',
49329 hh : '%d horas',
49330 d : 'un día',
49331 dd : '%d días',
49332 M : 'un mes',
49333 MM : '%d meses',
49334 y : 'un año',
49335 yy : '%d años'
49336 },
49337 dayOfMonthOrdinalParse : /\d{1,2}º/,
49338 ordinal : '%dº',
49339 week : {
49340 dow : 1, // Monday is the first day of the week.
49341 doy : 4 // The week that contains Jan 4th is the first week of the year.
49342 }
49343});
49344
49345return es;
49346
49347})));
49348
49349
49350/***/ }),
49351
49352/***/ "./node_modules/moment/locale/et.js":
49353/*!******************************************!*\
49354 !*** ./node_modules/moment/locale/et.js ***!
49355 \******************************************/
49356/*! no static exports found */
49357/***/ (function(module, exports, __webpack_require__) {
49358
49359//! moment.js locale configuration
49360
49361;(function (global, factory) {
49362 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49363 undefined
49364}(this, (function (moment) { 'use strict';
49365
49366
49367function processRelativeTime(number, withoutSuffix, key, isFuture) {
49368 var format = {
49369 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
49370 'ss': [number + 'sekundi', number + 'sekundit'],
49371 'm' : ['ühe minuti', 'üks minut'],
49372 'mm': [number + ' minuti', number + ' minutit'],
49373 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
49374 'hh': [number + ' tunni', number + ' tundi'],
49375 'd' : ['ühe päeva', 'üks päev'],
49376 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
49377 'MM': [number + ' kuu', number + ' kuud'],
49378 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
49379 'yy': [number + ' aasta', number + ' aastat']
49380 };
49381 if (withoutSuffix) {
49382 return format[key][2] ? format[key][2] : format[key][1];
49383 }
49384 return isFuture ? format[key][0] : format[key][1];
49385}
49386
49387var et = moment.defineLocale('et', {
49388 months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
49389 monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
49390 weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
49391 weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
49392 weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
49393 longDateFormat : {
49394 LT : 'H:mm',
49395 LTS : 'H:mm:ss',
49396 L : 'DD.MM.YYYY',
49397 LL : 'D. MMMM YYYY',
49398 LLL : 'D. MMMM YYYY H:mm',
49399 LLLL : 'dddd, D. MMMM YYYY H:mm'
49400 },
49401 calendar : {
49402 sameDay : '[Täna,] LT',
49403 nextDay : '[Homme,] LT',
49404 nextWeek : '[Järgmine] dddd LT',
49405 lastDay : '[Eile,] LT',
49406 lastWeek : '[Eelmine] dddd LT',
49407 sameElse : 'L'
49408 },
49409 relativeTime : {
49410 future : '%s pärast',
49411 past : '%s tagasi',
49412 s : processRelativeTime,
49413 ss : processRelativeTime,
49414 m : processRelativeTime,
49415 mm : processRelativeTime,
49416 h : processRelativeTime,
49417 hh : processRelativeTime,
49418 d : processRelativeTime,
49419 dd : '%d päeva',
49420 M : processRelativeTime,
49421 MM : processRelativeTime,
49422 y : processRelativeTime,
49423 yy : processRelativeTime
49424 },
49425 dayOfMonthOrdinalParse: /\d{1,2}\./,
49426 ordinal : '%d.',
49427 week : {
49428 dow : 1, // Monday is the first day of the week.
49429 doy : 4 // The week that contains Jan 4th is the first week of the year.
49430 }
49431});
49432
49433return et;
49434
49435})));
49436
49437
49438/***/ }),
49439
49440/***/ "./node_modules/moment/locale/eu.js":
49441/*!******************************************!*\
49442 !*** ./node_modules/moment/locale/eu.js ***!
49443 \******************************************/
49444/*! no static exports found */
49445/***/ (function(module, exports, __webpack_require__) {
49446
49447//! moment.js locale configuration
49448
49449;(function (global, factory) {
49450 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49451 undefined
49452}(this, (function (moment) { 'use strict';
49453
49454
49455var eu = moment.defineLocale('eu', {
49456 months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
49457 monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
49458 monthsParseExact : true,
49459 weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
49460 weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
49461 weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
49462 weekdaysParseExact : true,
49463 longDateFormat : {
49464 LT : 'HH:mm',
49465 LTS : 'HH:mm:ss',
49466 L : 'YYYY-MM-DD',
49467 LL : 'YYYY[ko] MMMM[ren] D[a]',
49468 LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
49469 LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
49470 l : 'YYYY-M-D',
49471 ll : 'YYYY[ko] MMM D[a]',
49472 lll : 'YYYY[ko] MMM D[a] HH:mm',
49473 llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
49474 },
49475 calendar : {
49476 sameDay : '[gaur] LT[etan]',
49477 nextDay : '[bihar] LT[etan]',
49478 nextWeek : 'dddd LT[etan]',
49479 lastDay : '[atzo] LT[etan]',
49480 lastWeek : '[aurreko] dddd LT[etan]',
49481 sameElse : 'L'
49482 },
49483 relativeTime : {
49484 future : '%s barru',
49485 past : 'duela %s',
49486 s : 'segundo batzuk',
49487 ss : '%d segundo',
49488 m : 'minutu bat',
49489 mm : '%d minutu',
49490 h : 'ordu bat',
49491 hh : '%d ordu',
49492 d : 'egun bat',
49493 dd : '%d egun',
49494 M : 'hilabete bat',
49495 MM : '%d hilabete',
49496 y : 'urte bat',
49497 yy : '%d urte'
49498 },
49499 dayOfMonthOrdinalParse: /\d{1,2}\./,
49500 ordinal : '%d.',
49501 week : {
49502 dow : 1, // Monday is the first day of the week.
49503 doy : 7 // The week that contains Jan 1st is the first week of the year.
49504 }
49505});
49506
49507return eu;
49508
49509})));
49510
49511
49512/***/ }),
49513
49514/***/ "./node_modules/moment/locale/fa.js":
49515/*!******************************************!*\
49516 !*** ./node_modules/moment/locale/fa.js ***!
49517 \******************************************/
49518/*! no static exports found */
49519/***/ (function(module, exports, __webpack_require__) {
49520
49521//! moment.js locale configuration
49522
49523;(function (global, factory) {
49524 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49525 undefined
49526}(this, (function (moment) { 'use strict';
49527
49528
49529var symbolMap = {
49530 '1': '۱',
49531 '2': '۲',
49532 '3': '۳',
49533 '4': '۴',
49534 '5': '۵',
49535 '6': '۶',
49536 '7': '۷',
49537 '8': '۸',
49538 '9': '۹',
49539 '0': '۰'
49540}, numberMap = {
49541 '۱': '1',
49542 '۲': '2',
49543 '۳': '3',
49544 '۴': '4',
49545 '۵': '5',
49546 '۶': '6',
49547 '۷': '7',
49548 '۸': '8',
49549 '۹': '9',
49550 '۰': '0'
49551};
49552
49553var fa = moment.defineLocale('fa', {
49554 months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
49555 monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
49556 weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
49557 weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
49558 weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
49559 weekdaysParseExact : true,
49560 longDateFormat : {
49561 LT : 'HH:mm',
49562 LTS : 'HH:mm:ss',
49563 L : 'DD/MM/YYYY',
49564 LL : 'D MMMM YYYY',
49565 LLL : 'D MMMM YYYY HH:mm',
49566 LLLL : 'dddd, D MMMM YYYY HH:mm'
49567 },
49568 meridiemParse: /قبل از ظهر|بعد از ظهر/,
49569 isPM: function (input) {
49570 return /بعد از ظهر/.test(input);
49571 },
49572 meridiem : function (hour, minute, isLower) {
49573 if (hour < 12) {
49574 return 'قبل از ظهر';
49575 } else {
49576 return 'بعد از ظهر';
49577 }
49578 },
49579 calendar : {
49580 sameDay : '[امروز ساعت] LT',
49581 nextDay : '[فردا ساعت] LT',
49582 nextWeek : 'dddd [ساعت] LT',
49583 lastDay : '[دیروز ساعت] LT',
49584 lastWeek : 'dddd [پیش] [ساعت] LT',
49585 sameElse : 'L'
49586 },
49587 relativeTime : {
49588 future : 'در %s',
49589 past : '%s پیش',
49590 s : 'چند ثانیه',
49591 ss : 'ثانیه d%',
49592 m : 'یک دقیقه',
49593 mm : '%d دقیقه',
49594 h : 'یک ساعت',
49595 hh : '%d ساعت',
49596 d : 'یک روز',
49597 dd : '%d روز',
49598 M : 'یک ماه',
49599 MM : '%d ماه',
49600 y : 'یک سال',
49601 yy : '%d سال'
49602 },
49603 preparse: function (string) {
49604 return string.replace(/[۰-۹]/g, function (match) {
49605 return numberMap[match];
49606 }).replace(/،/g, ',');
49607 },
49608 postformat: function (string) {
49609 return string.replace(/\d/g, function (match) {
49610 return symbolMap[match];
49611 }).replace(/,/g, '،');
49612 },
49613 dayOfMonthOrdinalParse: /\d{1,2}م/,
49614 ordinal : '%dم',
49615 week : {
49616 dow : 6, // Saturday is the first day of the week.
49617 doy : 12 // The week that contains Jan 1st is the first week of the year.
49618 }
49619});
49620
49621return fa;
49622
49623})));
49624
49625
49626/***/ }),
49627
49628/***/ "./node_modules/moment/locale/fi.js":
49629/*!******************************************!*\
49630 !*** ./node_modules/moment/locale/fi.js ***!
49631 \******************************************/
49632/*! no static exports found */
49633/***/ (function(module, exports, __webpack_require__) {
49634
49635//! moment.js locale configuration
49636
49637;(function (global, factory) {
49638 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49639 undefined
49640}(this, (function (moment) { 'use strict';
49641
49642
49643var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
49644 numbersFuture = [
49645 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
49646 numbersPast[7], numbersPast[8], numbersPast[9]
49647 ];
49648function translate(number, withoutSuffix, key, isFuture) {
49649 var result = '';
49650 switch (key) {
49651 case 's':
49652 return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
49653 case 'ss':
49654 return isFuture ? 'sekunnin' : 'sekuntia';
49655 case 'm':
49656 return isFuture ? 'minuutin' : 'minuutti';
49657 case 'mm':
49658 result = isFuture ? 'minuutin' : 'minuuttia';
49659 break;
49660 case 'h':
49661 return isFuture ? 'tunnin' : 'tunti';
49662 case 'hh':
49663 result = isFuture ? 'tunnin' : 'tuntia';
49664 break;
49665 case 'd':
49666 return isFuture ? 'päivän' : 'päivä';
49667 case 'dd':
49668 result = isFuture ? 'päivän' : 'päivää';
49669 break;
49670 case 'M':
49671 return isFuture ? 'kuukauden' : 'kuukausi';
49672 case 'MM':
49673 result = isFuture ? 'kuukauden' : 'kuukautta';
49674 break;
49675 case 'y':
49676 return isFuture ? 'vuoden' : 'vuosi';
49677 case 'yy':
49678 result = isFuture ? 'vuoden' : 'vuotta';
49679 break;
49680 }
49681 result = verbalNumber(number, isFuture) + ' ' + result;
49682 return result;
49683}
49684function verbalNumber(number, isFuture) {
49685 return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
49686}
49687
49688var fi = moment.defineLocale('fi', {
49689 months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
49690 monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
49691 weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
49692 weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
49693 weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
49694 longDateFormat : {
49695 LT : 'HH.mm',
49696 LTS : 'HH.mm.ss',
49697 L : 'DD.MM.YYYY',
49698 LL : 'Do MMMM[ta] YYYY',
49699 LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
49700 LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
49701 l : 'D.M.YYYY',
49702 ll : 'Do MMM YYYY',
49703 lll : 'Do MMM YYYY, [klo] HH.mm',
49704 llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
49705 },
49706 calendar : {
49707 sameDay : '[tänään] [klo] LT',
49708 nextDay : '[huomenna] [klo] LT',
49709 nextWeek : 'dddd [klo] LT',
49710 lastDay : '[eilen] [klo] LT',
49711 lastWeek : '[viime] dddd[na] [klo] LT',
49712 sameElse : 'L'
49713 },
49714 relativeTime : {
49715 future : '%s päästä',
49716 past : '%s sitten',
49717 s : translate,
49718 ss : translate,
49719 m : translate,
49720 mm : translate,
49721 h : translate,
49722 hh : translate,
49723 d : translate,
49724 dd : translate,
49725 M : translate,
49726 MM : translate,
49727 y : translate,
49728 yy : translate
49729 },
49730 dayOfMonthOrdinalParse: /\d{1,2}\./,
49731 ordinal : '%d.',
49732 week : {
49733 dow : 1, // Monday is the first day of the week.
49734 doy : 4 // The week that contains Jan 4th is the first week of the year.
49735 }
49736});
49737
49738return fi;
49739
49740})));
49741
49742
49743/***/ }),
49744
49745/***/ "./node_modules/moment/locale/fo.js":
49746/*!******************************************!*\
49747 !*** ./node_modules/moment/locale/fo.js ***!
49748 \******************************************/
49749/*! no static exports found */
49750/***/ (function(module, exports, __webpack_require__) {
49751
49752//! moment.js locale configuration
49753
49754;(function (global, factory) {
49755 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49756 undefined
49757}(this, (function (moment) { 'use strict';
49758
49759
49760var fo = moment.defineLocale('fo', {
49761 months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
49762 monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
49763 weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
49764 weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
49765 weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
49766 longDateFormat : {
49767 LT : 'HH:mm',
49768 LTS : 'HH:mm:ss',
49769 L : 'DD/MM/YYYY',
49770 LL : 'D MMMM YYYY',
49771 LLL : 'D MMMM YYYY HH:mm',
49772 LLLL : 'dddd D. MMMM, YYYY HH:mm'
49773 },
49774 calendar : {
49775 sameDay : '[Í dag kl.] LT',
49776 nextDay : '[Í morgin kl.] LT',
49777 nextWeek : 'dddd [kl.] LT',
49778 lastDay : '[Í gjár kl.] LT',
49779 lastWeek : '[síðstu] dddd [kl] LT',
49780 sameElse : 'L'
49781 },
49782 relativeTime : {
49783 future : 'um %s',
49784 past : '%s síðani',
49785 s : 'fá sekund',
49786 ss : '%d sekundir',
49787 m : 'ein minutt',
49788 mm : '%d minuttir',
49789 h : 'ein tími',
49790 hh : '%d tímar',
49791 d : 'ein dagur',
49792 dd : '%d dagar',
49793 M : 'ein mánaði',
49794 MM : '%d mánaðir',
49795 y : 'eitt ár',
49796 yy : '%d ár'
49797 },
49798 dayOfMonthOrdinalParse: /\d{1,2}\./,
49799 ordinal : '%d.',
49800 week : {
49801 dow : 1, // Monday is the first day of the week.
49802 doy : 4 // The week that contains Jan 4th is the first week of the year.
49803 }
49804});
49805
49806return fo;
49807
49808})));
49809
49810
49811/***/ }),
49812
49813/***/ "./node_modules/moment/locale/fr-ca.js":
49814/*!*********************************************!*\
49815 !*** ./node_modules/moment/locale/fr-ca.js ***!
49816 \*********************************************/
49817/*! no static exports found */
49818/***/ (function(module, exports, __webpack_require__) {
49819
49820//! moment.js locale configuration
49821
49822;(function (global, factory) {
49823 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49824 undefined
49825}(this, (function (moment) { 'use strict';
49826
49827
49828var frCa = moment.defineLocale('fr-ca', {
49829 months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
49830 monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
49831 monthsParseExact : true,
49832 weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
49833 weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
49834 weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
49835 weekdaysParseExact : true,
49836 longDateFormat : {
49837 LT : 'HH:mm',
49838 LTS : 'HH:mm:ss',
49839 L : 'YYYY-MM-DD',
49840 LL : 'D MMMM YYYY',
49841 LLL : 'D MMMM YYYY HH:mm',
49842 LLLL : 'dddd D MMMM YYYY HH:mm'
49843 },
49844 calendar : {
49845 sameDay : '[Aujourd’hui à] LT',
49846 nextDay : '[Demain à] LT',
49847 nextWeek : 'dddd [à] LT',
49848 lastDay : '[Hier à] LT',
49849 lastWeek : 'dddd [dernier à] LT',
49850 sameElse : 'L'
49851 },
49852 relativeTime : {
49853 future : 'dans %s',
49854 past : 'il y a %s',
49855 s : 'quelques secondes',
49856 ss : '%d secondes',
49857 m : 'une minute',
49858 mm : '%d minutes',
49859 h : 'une heure',
49860 hh : '%d heures',
49861 d : 'un jour',
49862 dd : '%d jours',
49863 M : 'un mois',
49864 MM : '%d mois',
49865 y : 'un an',
49866 yy : '%d ans'
49867 },
49868 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
49869 ordinal : function (number, period) {
49870 switch (period) {
49871 // Words with masculine grammatical gender: mois, trimestre, jour
49872 default:
49873 case 'M':
49874 case 'Q':
49875 case 'D':
49876 case 'DDD':
49877 case 'd':
49878 return number + (number === 1 ? 'er' : 'e');
49879
49880 // Words with feminine grammatical gender: semaine
49881 case 'w':
49882 case 'W':
49883 return number + (number === 1 ? 're' : 'e');
49884 }
49885 }
49886});
49887
49888return frCa;
49889
49890})));
49891
49892
49893/***/ }),
49894
49895/***/ "./node_modules/moment/locale/fr-ch.js":
49896/*!*********************************************!*\
49897 !*** ./node_modules/moment/locale/fr-ch.js ***!
49898 \*********************************************/
49899/*! no static exports found */
49900/***/ (function(module, exports, __webpack_require__) {
49901
49902//! moment.js locale configuration
49903
49904;(function (global, factory) {
49905 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49906 undefined
49907}(this, (function (moment) { 'use strict';
49908
49909
49910var frCh = moment.defineLocale('fr-ch', {
49911 months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
49912 monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
49913 monthsParseExact : true,
49914 weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
49915 weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
49916 weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
49917 weekdaysParseExact : true,
49918 longDateFormat : {
49919 LT : 'HH:mm',
49920 LTS : 'HH:mm:ss',
49921 L : 'DD.MM.YYYY',
49922 LL : 'D MMMM YYYY',
49923 LLL : 'D MMMM YYYY HH:mm',
49924 LLLL : 'dddd D MMMM YYYY HH:mm'
49925 },
49926 calendar : {
49927 sameDay : '[Aujourd’hui à] LT',
49928 nextDay : '[Demain à] LT',
49929 nextWeek : 'dddd [à] LT',
49930 lastDay : '[Hier à] LT',
49931 lastWeek : 'dddd [dernier à] LT',
49932 sameElse : 'L'
49933 },
49934 relativeTime : {
49935 future : 'dans %s',
49936 past : 'il y a %s',
49937 s : 'quelques secondes',
49938 ss : '%d secondes',
49939 m : 'une minute',
49940 mm : '%d minutes',
49941 h : 'une heure',
49942 hh : '%d heures',
49943 d : 'un jour',
49944 dd : '%d jours',
49945 M : 'un mois',
49946 MM : '%d mois',
49947 y : 'un an',
49948 yy : '%d ans'
49949 },
49950 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
49951 ordinal : function (number, period) {
49952 switch (period) {
49953 // Words with masculine grammatical gender: mois, trimestre, jour
49954 default:
49955 case 'M':
49956 case 'Q':
49957 case 'D':
49958 case 'DDD':
49959 case 'd':
49960 return number + (number === 1 ? 'er' : 'e');
49961
49962 // Words with feminine grammatical gender: semaine
49963 case 'w':
49964 case 'W':
49965 return number + (number === 1 ? 're' : 'e');
49966 }
49967 },
49968 week : {
49969 dow : 1, // Monday is the first day of the week.
49970 doy : 4 // The week that contains Jan 4th is the first week of the year.
49971 }
49972});
49973
49974return frCh;
49975
49976})));
49977
49978
49979/***/ }),
49980
49981/***/ "./node_modules/moment/locale/fr.js":
49982/*!******************************************!*\
49983 !*** ./node_modules/moment/locale/fr.js ***!
49984 \******************************************/
49985/*! no static exports found */
49986/***/ (function(module, exports, __webpack_require__) {
49987
49988//! moment.js locale configuration
49989
49990;(function (global, factory) {
49991 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
49992 undefined
49993}(this, (function (moment) { 'use strict';
49994
49995
49996var fr = moment.defineLocale('fr', {
49997 months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
49998 monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
49999 monthsParseExact : true,
50000 weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
50001 weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
50002 weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
50003 weekdaysParseExact : true,
50004 longDateFormat : {
50005 LT : 'HH:mm',
50006 LTS : 'HH:mm:ss',
50007 L : 'DD/MM/YYYY',
50008 LL : 'D MMMM YYYY',
50009 LLL : 'D MMMM YYYY HH:mm',
50010 LLLL : 'dddd D MMMM YYYY HH:mm'
50011 },
50012 calendar : {
50013 sameDay : '[Aujourd’hui à] LT',
50014 nextDay : '[Demain à] LT',
50015 nextWeek : 'dddd [à] LT',
50016 lastDay : '[Hier à] LT',
50017 lastWeek : 'dddd [dernier à] LT',
50018 sameElse : 'L'
50019 },
50020 relativeTime : {
50021 future : 'dans %s',
50022 past : 'il y a %s',
50023 s : 'quelques secondes',
50024 ss : '%d secondes',
50025 m : 'une minute',
50026 mm : '%d minutes',
50027 h : 'une heure',
50028 hh : '%d heures',
50029 d : 'un jour',
50030 dd : '%d jours',
50031 M : 'un mois',
50032 MM : '%d mois',
50033 y : 'un an',
50034 yy : '%d ans'
50035 },
50036 dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
50037 ordinal : function (number, period) {
50038 switch (period) {
50039 // TODO: Return 'e' when day of month > 1. Move this case inside
50040 // block for masculine words below.
50041 // See https://github.com/moment/moment/issues/3375
50042 case 'D':
50043 return number + (number === 1 ? 'er' : '');
50044
50045 // Words with masculine grammatical gender: mois, trimestre, jour
50046 default:
50047 case 'M':
50048 case 'Q':
50049 case 'DDD':
50050 case 'd':
50051 return number + (number === 1 ? 'er' : 'e');
50052
50053 // Words with feminine grammatical gender: semaine
50054 case 'w':
50055 case 'W':
50056 return number + (number === 1 ? 're' : 'e');
50057 }
50058 },
50059 week : {
50060 dow : 1, // Monday is the first day of the week.
50061 doy : 4 // The week that contains Jan 4th is the first week of the year.
50062 }
50063});
50064
50065return fr;
50066
50067})));
50068
50069
50070/***/ }),
50071
50072/***/ "./node_modules/moment/locale/fy.js":
50073/*!******************************************!*\
50074 !*** ./node_modules/moment/locale/fy.js ***!
50075 \******************************************/
50076/*! no static exports found */
50077/***/ (function(module, exports, __webpack_require__) {
50078
50079//! moment.js locale configuration
50080
50081;(function (global, factory) {
50082 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50083 undefined
50084}(this, (function (moment) { 'use strict';
50085
50086
50087var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
50088 monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
50089
50090var fy = moment.defineLocale('fy', {
50091 months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
50092 monthsShort : function (m, format) {
50093 if (!m) {
50094 return monthsShortWithDots;
50095 } else if (/-MMM-/.test(format)) {
50096 return monthsShortWithoutDots[m.month()];
50097 } else {
50098 return monthsShortWithDots[m.month()];
50099 }
50100 },
50101 monthsParseExact : true,
50102 weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
50103 weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
50104 weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
50105 weekdaysParseExact : true,
50106 longDateFormat : {
50107 LT : 'HH:mm',
50108 LTS : 'HH:mm:ss',
50109 L : 'DD-MM-YYYY',
50110 LL : 'D MMMM YYYY',
50111 LLL : 'D MMMM YYYY HH:mm',
50112 LLLL : 'dddd D MMMM YYYY HH:mm'
50113 },
50114 calendar : {
50115 sameDay: '[hjoed om] LT',
50116 nextDay: '[moarn om] LT',
50117 nextWeek: 'dddd [om] LT',
50118 lastDay: '[juster om] LT',
50119 lastWeek: '[ôfrûne] dddd [om] LT',
50120 sameElse: 'L'
50121 },
50122 relativeTime : {
50123 future : 'oer %s',
50124 past : '%s lyn',
50125 s : 'in pear sekonden',
50126 ss : '%d sekonden',
50127 m : 'ien minút',
50128 mm : '%d minuten',
50129 h : 'ien oere',
50130 hh : '%d oeren',
50131 d : 'ien dei',
50132 dd : '%d dagen',
50133 M : 'ien moanne',
50134 MM : '%d moannen',
50135 y : 'ien jier',
50136 yy : '%d jierren'
50137 },
50138 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
50139 ordinal : function (number) {
50140 return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
50141 },
50142 week : {
50143 dow : 1, // Monday is the first day of the week.
50144 doy : 4 // The week that contains Jan 4th is the first week of the year.
50145 }
50146});
50147
50148return fy;
50149
50150})));
50151
50152
50153/***/ }),
50154
50155/***/ "./node_modules/moment/locale/gd.js":
50156/*!******************************************!*\
50157 !*** ./node_modules/moment/locale/gd.js ***!
50158 \******************************************/
50159/*! no static exports found */
50160/***/ (function(module, exports, __webpack_require__) {
50161
50162//! moment.js locale configuration
50163
50164;(function (global, factory) {
50165 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50166 undefined
50167}(this, (function (moment) { 'use strict';
50168
50169
50170var months = [
50171 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
50172];
50173
50174var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
50175
50176var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
50177
50178var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
50179
50180var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
50181
50182var gd = moment.defineLocale('gd', {
50183 months : months,
50184 monthsShort : monthsShort,
50185 monthsParseExact : true,
50186 weekdays : weekdays,
50187 weekdaysShort : weekdaysShort,
50188 weekdaysMin : weekdaysMin,
50189 longDateFormat : {
50190 LT : 'HH:mm',
50191 LTS : 'HH:mm:ss',
50192 L : 'DD/MM/YYYY',
50193 LL : 'D MMMM YYYY',
50194 LLL : 'D MMMM YYYY HH:mm',
50195 LLLL : 'dddd, D MMMM YYYY HH:mm'
50196 },
50197 calendar : {
50198 sameDay : '[An-diugh aig] LT',
50199 nextDay : '[A-màireach aig] LT',
50200 nextWeek : 'dddd [aig] LT',
50201 lastDay : '[An-dè aig] LT',
50202 lastWeek : 'dddd [seo chaidh] [aig] LT',
50203 sameElse : 'L'
50204 },
50205 relativeTime : {
50206 future : 'ann an %s',
50207 past : 'bho chionn %s',
50208 s : 'beagan diogan',
50209 ss : '%d diogan',
50210 m : 'mionaid',
50211 mm : '%d mionaidean',
50212 h : 'uair',
50213 hh : '%d uairean',
50214 d : 'latha',
50215 dd : '%d latha',
50216 M : 'mìos',
50217 MM : '%d mìosan',
50218 y : 'bliadhna',
50219 yy : '%d bliadhna'
50220 },
50221 dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/,
50222 ordinal : function (number) {
50223 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
50224 return number + output;
50225 },
50226 week : {
50227 dow : 1, // Monday is the first day of the week.
50228 doy : 4 // The week that contains Jan 4th is the first week of the year.
50229 }
50230});
50231
50232return gd;
50233
50234})));
50235
50236
50237/***/ }),
50238
50239/***/ "./node_modules/moment/locale/gl.js":
50240/*!******************************************!*\
50241 !*** ./node_modules/moment/locale/gl.js ***!
50242 \******************************************/
50243/*! no static exports found */
50244/***/ (function(module, exports, __webpack_require__) {
50245
50246//! moment.js locale configuration
50247
50248;(function (global, factory) {
50249 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50250 undefined
50251}(this, (function (moment) { 'use strict';
50252
50253
50254var gl = moment.defineLocale('gl', {
50255 months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),
50256 monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),
50257 monthsParseExact: true,
50258 weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
50259 weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
50260 weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),
50261 weekdaysParseExact : true,
50262 longDateFormat : {
50263 LT : 'H:mm',
50264 LTS : 'H:mm:ss',
50265 L : 'DD/MM/YYYY',
50266 LL : 'D [de] MMMM [de] YYYY',
50267 LLL : 'D [de] MMMM [de] YYYY H:mm',
50268 LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
50269 },
50270 calendar : {
50271 sameDay : function () {
50272 return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
50273 },
50274 nextDay : function () {
50275 return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
50276 },
50277 nextWeek : function () {
50278 return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
50279 },
50280 lastDay : function () {
50281 return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
50282 },
50283 lastWeek : function () {
50284 return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
50285 },
50286 sameElse : 'L'
50287 },
50288 relativeTime : {
50289 future : function (str) {
50290 if (str.indexOf('un') === 0) {
50291 return 'n' + str;
50292 }
50293 return 'en ' + str;
50294 },
50295 past : 'hai %s',
50296 s : 'uns segundos',
50297 ss : '%d segundos',
50298 m : 'un minuto',
50299 mm : '%d minutos',
50300 h : 'unha hora',
50301 hh : '%d horas',
50302 d : 'un día',
50303 dd : '%d días',
50304 M : 'un mes',
50305 MM : '%d meses',
50306 y : 'un ano',
50307 yy : '%d anos'
50308 },
50309 dayOfMonthOrdinalParse : /\d{1,2}º/,
50310 ordinal : '%dº',
50311 week : {
50312 dow : 1, // Monday is the first day of the week.
50313 doy : 4 // The week that contains Jan 4th is the first week of the year.
50314 }
50315});
50316
50317return gl;
50318
50319})));
50320
50321
50322/***/ }),
50323
50324/***/ "./node_modules/moment/locale/gom-latn.js":
50325/*!************************************************!*\
50326 !*** ./node_modules/moment/locale/gom-latn.js ***!
50327 \************************************************/
50328/*! no static exports found */
50329/***/ (function(module, exports, __webpack_require__) {
50330
50331//! moment.js locale configuration
50332
50333;(function (global, factory) {
50334 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50335 undefined
50336}(this, (function (moment) { 'use strict';
50337
50338
50339function processRelativeTime(number, withoutSuffix, key, isFuture) {
50340 var format = {
50341 's': ['thodde secondanim', 'thodde second'],
50342 'ss': [number + ' secondanim', number + ' second'],
50343 'm': ['eka mintan', 'ek minute'],
50344 'mm': [number + ' mintanim', number + ' mintam'],
50345 'h': ['eka horan', 'ek hor'],
50346 'hh': [number + ' horanim', number + ' hor'],
50347 'd': ['eka disan', 'ek dis'],
50348 'dd': [number + ' disanim', number + ' dis'],
50349 'M': ['eka mhoinean', 'ek mhoino'],
50350 'MM': [number + ' mhoineanim', number + ' mhoine'],
50351 'y': ['eka vorsan', 'ek voros'],
50352 'yy': [number + ' vorsanim', number + ' vorsam']
50353 };
50354 return withoutSuffix ? format[key][0] : format[key][1];
50355}
50356
50357var gomLatn = moment.defineLocale('gom-latn', {
50358 months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),
50359 monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
50360 monthsParseExact : true,
50361 weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'),
50362 weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
50363 weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
50364 weekdaysParseExact : true,
50365 longDateFormat : {
50366 LT : 'A h:mm [vazta]',
50367 LTS : 'A h:mm:ss [vazta]',
50368 L : 'DD-MM-YYYY',
50369 LL : 'D MMMM YYYY',
50370 LLL : 'D MMMM YYYY A h:mm [vazta]',
50371 LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',
50372 llll: 'ddd, D MMM YYYY, A h:mm [vazta]'
50373 },
50374 calendar : {
50375 sameDay: '[Aiz] LT',
50376 nextDay: '[Faleam] LT',
50377 nextWeek: '[Ieta to] dddd[,] LT',
50378 lastDay: '[Kal] LT',
50379 lastWeek: '[Fatlo] dddd[,] LT',
50380 sameElse: 'L'
50381 },
50382 relativeTime : {
50383 future : '%s',
50384 past : '%s adim',
50385 s : processRelativeTime,
50386 ss : processRelativeTime,
50387 m : processRelativeTime,
50388 mm : processRelativeTime,
50389 h : processRelativeTime,
50390 hh : processRelativeTime,
50391 d : processRelativeTime,
50392 dd : processRelativeTime,
50393 M : processRelativeTime,
50394 MM : processRelativeTime,
50395 y : processRelativeTime,
50396 yy : processRelativeTime
50397 },
50398 dayOfMonthOrdinalParse : /\d{1,2}(er)/,
50399 ordinal : function (number, period) {
50400 switch (period) {
50401 // the ordinal 'er' only applies to day of the month
50402 case 'D':
50403 return number + 'er';
50404 default:
50405 case 'M':
50406 case 'Q':
50407 case 'DDD':
50408 case 'd':
50409 case 'w':
50410 case 'W':
50411 return number;
50412 }
50413 },
50414 week : {
50415 dow : 1, // Monday is the first day of the week.
50416 doy : 4 // The week that contains Jan 4th is the first week of the year.
50417 },
50418 meridiemParse: /rati|sokalli|donparam|sanje/,
50419 meridiemHour : function (hour, meridiem) {
50420 if (hour === 12) {
50421 hour = 0;
50422 }
50423 if (meridiem === 'rati') {
50424 return hour < 4 ? hour : hour + 12;
50425 } else if (meridiem === 'sokalli') {
50426 return hour;
50427 } else if (meridiem === 'donparam') {
50428 return hour > 12 ? hour : hour + 12;
50429 } else if (meridiem === 'sanje') {
50430 return hour + 12;
50431 }
50432 },
50433 meridiem : function (hour, minute, isLower) {
50434 if (hour < 4) {
50435 return 'rati';
50436 } else if (hour < 12) {
50437 return 'sokalli';
50438 } else if (hour < 16) {
50439 return 'donparam';
50440 } else if (hour < 20) {
50441 return 'sanje';
50442 } else {
50443 return 'rati';
50444 }
50445 }
50446});
50447
50448return gomLatn;
50449
50450})));
50451
50452
50453/***/ }),
50454
50455/***/ "./node_modules/moment/locale/gu.js":
50456/*!******************************************!*\
50457 !*** ./node_modules/moment/locale/gu.js ***!
50458 \******************************************/
50459/*! no static exports found */
50460/***/ (function(module, exports, __webpack_require__) {
50461
50462//! moment.js locale configuration
50463
50464;(function (global, factory) {
50465 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50466 undefined
50467}(this, (function (moment) { 'use strict';
50468
50469
50470var symbolMap = {
50471 '1': '૧',
50472 '2': '૨',
50473 '3': '૩',
50474 '4': '૪',
50475 '5': '૫',
50476 '6': '૬',
50477 '7': '૭',
50478 '8': '૮',
50479 '9': '૯',
50480 '0': '૦'
50481 },
50482 numberMap = {
50483 '૧': '1',
50484 '૨': '2',
50485 '૩': '3',
50486 '૪': '4',
50487 '૫': '5',
50488 '૬': '6',
50489 '૭': '7',
50490 '૮': '8',
50491 '૯': '9',
50492 '૦': '0'
50493 };
50494
50495var gu = moment.defineLocale('gu', {
50496 months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),
50497 monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),
50498 monthsParseExact: true,
50499 weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),
50500 weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
50501 weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
50502 longDateFormat: {
50503 LT: 'A h:mm વાગ્યે',
50504 LTS: 'A h:mm:ss વાગ્યે',
50505 L: 'DD/MM/YYYY',
50506 LL: 'D MMMM YYYY',
50507 LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
50508 LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'
50509 },
50510 calendar: {
50511 sameDay: '[આજ] LT',
50512 nextDay: '[કાલે] LT',
50513 nextWeek: 'dddd, LT',
50514 lastDay: '[ગઇકાલે] LT',
50515 lastWeek: '[પાછલા] dddd, LT',
50516 sameElse: 'L'
50517 },
50518 relativeTime: {
50519 future: '%s મા',
50520 past: '%s પેહલા',
50521 s: 'અમુક પળો',
50522 ss: '%d સેકંડ',
50523 m: 'એક મિનિટ',
50524 mm: '%d મિનિટ',
50525 h: 'એક કલાક',
50526 hh: '%d કલાક',
50527 d: 'એક દિવસ',
50528 dd: '%d દિવસ',
50529 M: 'એક મહિનો',
50530 MM: '%d મહિનો',
50531 y: 'એક વર્ષ',
50532 yy: '%d વર્ષ'
50533 },
50534 preparse: function (string) {
50535 return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
50536 return numberMap[match];
50537 });
50538 },
50539 postformat: function (string) {
50540 return string.replace(/\d/g, function (match) {
50541 return symbolMap[match];
50542 });
50543 },
50544 // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
50545 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
50546 meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
50547 meridiemHour: function (hour, meridiem) {
50548 if (hour === 12) {
50549 hour = 0;
50550 }
50551 if (meridiem === 'રાત') {
50552 return hour < 4 ? hour : hour + 12;
50553 } else if (meridiem === 'સવાર') {
50554 return hour;
50555 } else if (meridiem === 'બપોર') {
50556 return hour >= 10 ? hour : hour + 12;
50557 } else if (meridiem === 'સાંજ') {
50558 return hour + 12;
50559 }
50560 },
50561 meridiem: function (hour, minute, isLower) {
50562 if (hour < 4) {
50563 return 'રાત';
50564 } else if (hour < 10) {
50565 return 'સવાર';
50566 } else if (hour < 17) {
50567 return 'બપોર';
50568 } else if (hour < 20) {
50569 return 'સાંજ';
50570 } else {
50571 return 'રાત';
50572 }
50573 },
50574 week: {
50575 dow: 0, // Sunday is the first day of the week.
50576 doy: 6 // The week that contains Jan 1st is the first week of the year.
50577 }
50578});
50579
50580return gu;
50581
50582})));
50583
50584
50585/***/ }),
50586
50587/***/ "./node_modules/moment/locale/he.js":
50588/*!******************************************!*\
50589 !*** ./node_modules/moment/locale/he.js ***!
50590 \******************************************/
50591/*! no static exports found */
50592/***/ (function(module, exports, __webpack_require__) {
50593
50594//! moment.js locale configuration
50595
50596;(function (global, factory) {
50597 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50598 undefined
50599}(this, (function (moment) { 'use strict';
50600
50601
50602var he = moment.defineLocale('he', {
50603 months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
50604 monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
50605 weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
50606 weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
50607 weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
50608 longDateFormat : {
50609 LT : 'HH:mm',
50610 LTS : 'HH:mm:ss',
50611 L : 'DD/MM/YYYY',
50612 LL : 'D [ב]MMMM YYYY',
50613 LLL : 'D [ב]MMMM YYYY HH:mm',
50614 LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
50615 l : 'D/M/YYYY',
50616 ll : 'D MMM YYYY',
50617 lll : 'D MMM YYYY HH:mm',
50618 llll : 'ddd, D MMM YYYY HH:mm'
50619 },
50620 calendar : {
50621 sameDay : '[היום ב־]LT',
50622 nextDay : '[מחר ב־]LT',
50623 nextWeek : 'dddd [בשעה] LT',
50624 lastDay : '[אתמול ב־]LT',
50625 lastWeek : '[ביום] dddd [האחרון בשעה] LT',
50626 sameElse : 'L'
50627 },
50628 relativeTime : {
50629 future : 'בעוד %s',
50630 past : 'לפני %s',
50631 s : 'מספר שניות',
50632 ss : '%d שניות',
50633 m : 'דקה',
50634 mm : '%d דקות',
50635 h : 'שעה',
50636 hh : function (number) {
50637 if (number === 2) {
50638 return 'שעתיים';
50639 }
50640 return number + ' שעות';
50641 },
50642 d : 'יום',
50643 dd : function (number) {
50644 if (number === 2) {
50645 return 'יומיים';
50646 }
50647 return number + ' ימים';
50648 },
50649 M : 'חודש',
50650 MM : function (number) {
50651 if (number === 2) {
50652 return 'חודשיים';
50653 }
50654 return number + ' חודשים';
50655 },
50656 y : 'שנה',
50657 yy : function (number) {
50658 if (number === 2) {
50659 return 'שנתיים';
50660 } else if (number % 10 === 0 && number !== 10) {
50661 return number + ' שנה';
50662 }
50663 return number + ' שנים';
50664 }
50665 },
50666 meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
50667 isPM : function (input) {
50668 return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
50669 },
50670 meridiem : function (hour, minute, isLower) {
50671 if (hour < 5) {
50672 return 'לפנות בוקר';
50673 } else if (hour < 10) {
50674 return 'בבוקר';
50675 } else if (hour < 12) {
50676 return isLower ? 'לפנה"צ' : 'לפני הצהריים';
50677 } else if (hour < 18) {
50678 return isLower ? 'אחה"צ' : 'אחרי הצהריים';
50679 } else {
50680 return 'בערב';
50681 }
50682 }
50683});
50684
50685return he;
50686
50687})));
50688
50689
50690/***/ }),
50691
50692/***/ "./node_modules/moment/locale/hi.js":
50693/*!******************************************!*\
50694 !*** ./node_modules/moment/locale/hi.js ***!
50695 \******************************************/
50696/*! no static exports found */
50697/***/ (function(module, exports, __webpack_require__) {
50698
50699//! moment.js locale configuration
50700
50701;(function (global, factory) {
50702 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50703 undefined
50704}(this, (function (moment) { 'use strict';
50705
50706
50707var symbolMap = {
50708 '1': '१',
50709 '2': '२',
50710 '3': '३',
50711 '4': '४',
50712 '5': '५',
50713 '6': '६',
50714 '7': '७',
50715 '8': '८',
50716 '9': '९',
50717 '0': '०'
50718},
50719numberMap = {
50720 '१': '1',
50721 '२': '2',
50722 '३': '3',
50723 '४': '4',
50724 '५': '5',
50725 '६': '6',
50726 '७': '7',
50727 '८': '8',
50728 '९': '9',
50729 '०': '0'
50730};
50731
50732var hi = moment.defineLocale('hi', {
50733 months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
50734 monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
50735 monthsParseExact: true,
50736 weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
50737 weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
50738 weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
50739 longDateFormat : {
50740 LT : 'A h:mm बजे',
50741 LTS : 'A h:mm:ss बजे',
50742 L : 'DD/MM/YYYY',
50743 LL : 'D MMMM YYYY',
50744 LLL : 'D MMMM YYYY, A h:mm बजे',
50745 LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
50746 },
50747 calendar : {
50748 sameDay : '[आज] LT',
50749 nextDay : '[कल] LT',
50750 nextWeek : 'dddd, LT',
50751 lastDay : '[कल] LT',
50752 lastWeek : '[पिछले] dddd, LT',
50753 sameElse : 'L'
50754 },
50755 relativeTime : {
50756 future : '%s में',
50757 past : '%s पहले',
50758 s : 'कुछ ही क्षण',
50759 ss : '%d सेकंड',
50760 m : 'एक मिनट',
50761 mm : '%d मिनट',
50762 h : 'एक घंटा',
50763 hh : '%d घंटे',
50764 d : 'एक दिन',
50765 dd : '%d दिन',
50766 M : 'एक महीने',
50767 MM : '%d महीने',
50768 y : 'एक वर्ष',
50769 yy : '%d वर्ष'
50770 },
50771 preparse: function (string) {
50772 return string.replace(/[१२३४५६७८९०]/g, function (match) {
50773 return numberMap[match];
50774 });
50775 },
50776 postformat: function (string) {
50777 return string.replace(/\d/g, function (match) {
50778 return symbolMap[match];
50779 });
50780 },
50781 // Hindi notation for meridiems are quite fuzzy in practice. While there exists
50782 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
50783 meridiemParse: /रात|सुबह|दोपहर|शाम/,
50784 meridiemHour : function (hour, meridiem) {
50785 if (hour === 12) {
50786 hour = 0;
50787 }
50788 if (meridiem === 'रात') {
50789 return hour < 4 ? hour : hour + 12;
50790 } else if (meridiem === 'सुबह') {
50791 return hour;
50792 } else if (meridiem === 'दोपहर') {
50793 return hour >= 10 ? hour : hour + 12;
50794 } else if (meridiem === 'शाम') {
50795 return hour + 12;
50796 }
50797 },
50798 meridiem : function (hour, minute, isLower) {
50799 if (hour < 4) {
50800 return 'रात';
50801 } else if (hour < 10) {
50802 return 'सुबह';
50803 } else if (hour < 17) {
50804 return 'दोपहर';
50805 } else if (hour < 20) {
50806 return 'शाम';
50807 } else {
50808 return 'रात';
50809 }
50810 },
50811 week : {
50812 dow : 0, // Sunday is the first day of the week.
50813 doy : 6 // The week that contains Jan 1st is the first week of the year.
50814 }
50815});
50816
50817return hi;
50818
50819})));
50820
50821
50822/***/ }),
50823
50824/***/ "./node_modules/moment/locale/hr.js":
50825/*!******************************************!*\
50826 !*** ./node_modules/moment/locale/hr.js ***!
50827 \******************************************/
50828/*! no static exports found */
50829/***/ (function(module, exports, __webpack_require__) {
50830
50831//! moment.js locale configuration
50832
50833;(function (global, factory) {
50834 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50835 undefined
50836}(this, (function (moment) { 'use strict';
50837
50838
50839function translate(number, withoutSuffix, key) {
50840 var result = number + ' ';
50841 switch (key) {
50842 case 'ss':
50843 if (number === 1) {
50844 result += 'sekunda';
50845 } else if (number === 2 || number === 3 || number === 4) {
50846 result += 'sekunde';
50847 } else {
50848 result += 'sekundi';
50849 }
50850 return result;
50851 case 'm':
50852 return withoutSuffix ? 'jedna minuta' : 'jedne minute';
50853 case 'mm':
50854 if (number === 1) {
50855 result += 'minuta';
50856 } else if (number === 2 || number === 3 || number === 4) {
50857 result += 'minute';
50858 } else {
50859 result += 'minuta';
50860 }
50861 return result;
50862 case 'h':
50863 return withoutSuffix ? 'jedan sat' : 'jednog sata';
50864 case 'hh':
50865 if (number === 1) {
50866 result += 'sat';
50867 } else if (number === 2 || number === 3 || number === 4) {
50868 result += 'sata';
50869 } else {
50870 result += 'sati';
50871 }
50872 return result;
50873 case 'dd':
50874 if (number === 1) {
50875 result += 'dan';
50876 } else {
50877 result += 'dana';
50878 }
50879 return result;
50880 case 'MM':
50881 if (number === 1) {
50882 result += 'mjesec';
50883 } else if (number === 2 || number === 3 || number === 4) {
50884 result += 'mjeseca';
50885 } else {
50886 result += 'mjeseci';
50887 }
50888 return result;
50889 case 'yy':
50890 if (number === 1) {
50891 result += 'godina';
50892 } else if (number === 2 || number === 3 || number === 4) {
50893 result += 'godine';
50894 } else {
50895 result += 'godina';
50896 }
50897 return result;
50898 }
50899}
50900
50901var hr = moment.defineLocale('hr', {
50902 months : {
50903 format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
50904 standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
50905 },
50906 monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
50907 monthsParseExact: true,
50908 weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
50909 weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
50910 weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
50911 weekdaysParseExact : true,
50912 longDateFormat : {
50913 LT : 'H:mm',
50914 LTS : 'H:mm:ss',
50915 L : 'DD.MM.YYYY',
50916 LL : 'D. MMMM YYYY',
50917 LLL : 'D. MMMM YYYY H:mm',
50918 LLLL : 'dddd, D. MMMM YYYY H:mm'
50919 },
50920 calendar : {
50921 sameDay : '[danas u] LT',
50922 nextDay : '[sutra u] LT',
50923 nextWeek : function () {
50924 switch (this.day()) {
50925 case 0:
50926 return '[u] [nedjelju] [u] LT';
50927 case 3:
50928 return '[u] [srijedu] [u] LT';
50929 case 6:
50930 return '[u] [subotu] [u] LT';
50931 case 1:
50932 case 2:
50933 case 4:
50934 case 5:
50935 return '[u] dddd [u] LT';
50936 }
50937 },
50938 lastDay : '[jučer u] LT',
50939 lastWeek : function () {
50940 switch (this.day()) {
50941 case 0:
50942 case 3:
50943 return '[prošlu] dddd [u] LT';
50944 case 6:
50945 return '[prošle] [subote] [u] LT';
50946 case 1:
50947 case 2:
50948 case 4:
50949 case 5:
50950 return '[prošli] dddd [u] LT';
50951 }
50952 },
50953 sameElse : 'L'
50954 },
50955 relativeTime : {
50956 future : 'za %s',
50957 past : 'prije %s',
50958 s : 'par sekundi',
50959 ss : translate,
50960 m : translate,
50961 mm : translate,
50962 h : translate,
50963 hh : translate,
50964 d : 'dan',
50965 dd : translate,
50966 M : 'mjesec',
50967 MM : translate,
50968 y : 'godinu',
50969 yy : translate
50970 },
50971 dayOfMonthOrdinalParse: /\d{1,2}\./,
50972 ordinal : '%d.',
50973 week : {
50974 dow : 1, // Monday is the first day of the week.
50975 doy : 7 // The week that contains Jan 1st is the first week of the year.
50976 }
50977});
50978
50979return hr;
50980
50981})));
50982
50983
50984/***/ }),
50985
50986/***/ "./node_modules/moment/locale/hu.js":
50987/*!******************************************!*\
50988 !*** ./node_modules/moment/locale/hu.js ***!
50989 \******************************************/
50990/*! no static exports found */
50991/***/ (function(module, exports, __webpack_require__) {
50992
50993//! moment.js locale configuration
50994
50995;(function (global, factory) {
50996 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
50997 undefined
50998}(this, (function (moment) { 'use strict';
50999
51000
51001var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
51002function translate(number, withoutSuffix, key, isFuture) {
51003 var num = number;
51004 switch (key) {
51005 case 's':
51006 return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
51007 case 'ss':
51008 return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';
51009 case 'm':
51010 return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
51011 case 'mm':
51012 return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
51013 case 'h':
51014 return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
51015 case 'hh':
51016 return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
51017 case 'd':
51018 return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
51019 case 'dd':
51020 return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
51021 case 'M':
51022 return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
51023 case 'MM':
51024 return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
51025 case 'y':
51026 return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
51027 case 'yy':
51028 return num + (isFuture || withoutSuffix ? ' év' : ' éve');
51029 }
51030 return '';
51031}
51032function week(isFuture) {
51033 return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
51034}
51035
51036var hu = moment.defineLocale('hu', {
51037 months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
51038 monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
51039 weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
51040 weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
51041 weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
51042 longDateFormat : {
51043 LT : 'H:mm',
51044 LTS : 'H:mm:ss',
51045 L : 'YYYY.MM.DD.',
51046 LL : 'YYYY. MMMM D.',
51047 LLL : 'YYYY. MMMM D. H:mm',
51048 LLLL : 'YYYY. MMMM D., dddd H:mm'
51049 },
51050 meridiemParse: /de|du/i,
51051 isPM: function (input) {
51052 return input.charAt(1).toLowerCase() === 'u';
51053 },
51054 meridiem : function (hours, minutes, isLower) {
51055 if (hours < 12) {
51056 return isLower === true ? 'de' : 'DE';
51057 } else {
51058 return isLower === true ? 'du' : 'DU';
51059 }
51060 },
51061 calendar : {
51062 sameDay : '[ma] LT[-kor]',
51063 nextDay : '[holnap] LT[-kor]',
51064 nextWeek : function () {
51065 return week.call(this, true);
51066 },
51067 lastDay : '[tegnap] LT[-kor]',
51068 lastWeek : function () {
51069 return week.call(this, false);
51070 },
51071 sameElse : 'L'
51072 },
51073 relativeTime : {
51074 future : '%s múlva',
51075 past : '%s',
51076 s : translate,
51077 ss : translate,
51078 m : translate,
51079 mm : translate,
51080 h : translate,
51081 hh : translate,
51082 d : translate,
51083 dd : translate,
51084 M : translate,
51085 MM : translate,
51086 y : translate,
51087 yy : translate
51088 },
51089 dayOfMonthOrdinalParse: /\d{1,2}\./,
51090 ordinal : '%d.',
51091 week : {
51092 dow : 1, // Monday is the first day of the week.
51093 doy : 4 // The week that contains Jan 4th is the first week of the year.
51094 }
51095});
51096
51097return hu;
51098
51099})));
51100
51101
51102/***/ }),
51103
51104/***/ "./node_modules/moment/locale/hy-am.js":
51105/*!*********************************************!*\
51106 !*** ./node_modules/moment/locale/hy-am.js ***!
51107 \*********************************************/
51108/*! no static exports found */
51109/***/ (function(module, exports, __webpack_require__) {
51110
51111//! moment.js locale configuration
51112
51113;(function (global, factory) {
51114 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51115 undefined
51116}(this, (function (moment) { 'use strict';
51117
51118
51119var hyAm = moment.defineLocale('hy-am', {
51120 months : {
51121 format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
51122 standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
51123 },
51124 monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
51125 weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
51126 weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
51127 weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
51128 longDateFormat : {
51129 LT : 'HH:mm',
51130 LTS : 'HH:mm:ss',
51131 L : 'DD.MM.YYYY',
51132 LL : 'D MMMM YYYY թ.',
51133 LLL : 'D MMMM YYYY թ., HH:mm',
51134 LLLL : 'dddd, D MMMM YYYY թ., HH:mm'
51135 },
51136 calendar : {
51137 sameDay: '[այսօր] LT',
51138 nextDay: '[վաղը] LT',
51139 lastDay: '[երեկ] LT',
51140 nextWeek: function () {
51141 return 'dddd [օրը ժամը] LT';
51142 },
51143 lastWeek: function () {
51144 return '[անցած] dddd [օրը ժամը] LT';
51145 },
51146 sameElse: 'L'
51147 },
51148 relativeTime : {
51149 future : '%s հետո',
51150 past : '%s առաջ',
51151 s : 'մի քանի վայրկյան',
51152 ss : '%d վայրկյան',
51153 m : 'րոպե',
51154 mm : '%d րոպե',
51155 h : 'ժամ',
51156 hh : '%d ժամ',
51157 d : 'օր',
51158 dd : '%d օր',
51159 M : 'ամիս',
51160 MM : '%d ամիս',
51161 y : 'տարի',
51162 yy : '%d տարի'
51163 },
51164 meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
51165 isPM: function (input) {
51166 return /^(ցերեկվա|երեկոյան)$/.test(input);
51167 },
51168 meridiem : function (hour) {
51169 if (hour < 4) {
51170 return 'գիշերվա';
51171 } else if (hour < 12) {
51172 return 'առավոտվա';
51173 } else if (hour < 17) {
51174 return 'ցերեկվա';
51175 } else {
51176 return 'երեկոյան';
51177 }
51178 },
51179 dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
51180 ordinal: function (number, period) {
51181 switch (period) {
51182 case 'DDD':
51183 case 'w':
51184 case 'W':
51185 case 'DDDo':
51186 if (number === 1) {
51187 return number + '-ին';
51188 }
51189 return number + '-րդ';
51190 default:
51191 return number;
51192 }
51193 },
51194 week : {
51195 dow : 1, // Monday is the first day of the week.
51196 doy : 7 // The week that contains Jan 1st is the first week of the year.
51197 }
51198});
51199
51200return hyAm;
51201
51202})));
51203
51204
51205/***/ }),
51206
51207/***/ "./node_modules/moment/locale/id.js":
51208/*!******************************************!*\
51209 !*** ./node_modules/moment/locale/id.js ***!
51210 \******************************************/
51211/*! no static exports found */
51212/***/ (function(module, exports, __webpack_require__) {
51213
51214//! moment.js locale configuration
51215
51216;(function (global, factory) {
51217 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51218 undefined
51219}(this, (function (moment) { 'use strict';
51220
51221
51222var id = moment.defineLocale('id', {
51223 months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
51224 monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
51225 weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
51226 weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
51227 weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
51228 longDateFormat : {
51229 LT : 'HH.mm',
51230 LTS : 'HH.mm.ss',
51231 L : 'DD/MM/YYYY',
51232 LL : 'D MMMM YYYY',
51233 LLL : 'D MMMM YYYY [pukul] HH.mm',
51234 LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
51235 },
51236 meridiemParse: /pagi|siang|sore|malam/,
51237 meridiemHour : function (hour, meridiem) {
51238 if (hour === 12) {
51239 hour = 0;
51240 }
51241 if (meridiem === 'pagi') {
51242 return hour;
51243 } else if (meridiem === 'siang') {
51244 return hour >= 11 ? hour : hour + 12;
51245 } else if (meridiem === 'sore' || meridiem === 'malam') {
51246 return hour + 12;
51247 }
51248 },
51249 meridiem : function (hours, minutes, isLower) {
51250 if (hours < 11) {
51251 return 'pagi';
51252 } else if (hours < 15) {
51253 return 'siang';
51254 } else if (hours < 19) {
51255 return 'sore';
51256 } else {
51257 return 'malam';
51258 }
51259 },
51260 calendar : {
51261 sameDay : '[Hari ini pukul] LT',
51262 nextDay : '[Besok pukul] LT',
51263 nextWeek : 'dddd [pukul] LT',
51264 lastDay : '[Kemarin pukul] LT',
51265 lastWeek : 'dddd [lalu pukul] LT',
51266 sameElse : 'L'
51267 },
51268 relativeTime : {
51269 future : 'dalam %s',
51270 past : '%s yang lalu',
51271 s : 'beberapa detik',
51272 ss : '%d detik',
51273 m : 'semenit',
51274 mm : '%d menit',
51275 h : 'sejam',
51276 hh : '%d jam',
51277 d : 'sehari',
51278 dd : '%d hari',
51279 M : 'sebulan',
51280 MM : '%d bulan',
51281 y : 'setahun',
51282 yy : '%d tahun'
51283 },
51284 week : {
51285 dow : 1, // Monday is the first day of the week.
51286 doy : 7 // The week that contains Jan 1st is the first week of the year.
51287 }
51288});
51289
51290return id;
51291
51292})));
51293
51294
51295/***/ }),
51296
51297/***/ "./node_modules/moment/locale/is.js":
51298/*!******************************************!*\
51299 !*** ./node_modules/moment/locale/is.js ***!
51300 \******************************************/
51301/*! no static exports found */
51302/***/ (function(module, exports, __webpack_require__) {
51303
51304//! moment.js locale configuration
51305
51306;(function (global, factory) {
51307 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51308 undefined
51309}(this, (function (moment) { 'use strict';
51310
51311
51312function plural(n) {
51313 if (n % 100 === 11) {
51314 return true;
51315 } else if (n % 10 === 1) {
51316 return false;
51317 }
51318 return true;
51319}
51320function translate(number, withoutSuffix, key, isFuture) {
51321 var result = number + ' ';
51322 switch (key) {
51323 case 's':
51324 return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
51325 case 'ss':
51326 if (plural(number)) {
51327 return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');
51328 }
51329 return result + 'sekúnda';
51330 case 'm':
51331 return withoutSuffix ? 'mínúta' : 'mínútu';
51332 case 'mm':
51333 if (plural(number)) {
51334 return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
51335 } else if (withoutSuffix) {
51336 return result + 'mínúta';
51337 }
51338 return result + 'mínútu';
51339 case 'hh':
51340 if (plural(number)) {
51341 return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
51342 }
51343 return result + 'klukkustund';
51344 case 'd':
51345 if (withoutSuffix) {
51346 return 'dagur';
51347 }
51348 return isFuture ? 'dag' : 'degi';
51349 case 'dd':
51350 if (plural(number)) {
51351 if (withoutSuffix) {
51352 return result + 'dagar';
51353 }
51354 return result + (isFuture ? 'daga' : 'dögum');
51355 } else if (withoutSuffix) {
51356 return result + 'dagur';
51357 }
51358 return result + (isFuture ? 'dag' : 'degi');
51359 case 'M':
51360 if (withoutSuffix) {
51361 return 'mánuður';
51362 }
51363 return isFuture ? 'mánuð' : 'mánuði';
51364 case 'MM':
51365 if (plural(number)) {
51366 if (withoutSuffix) {
51367 return result + 'mánuðir';
51368 }
51369 return result + (isFuture ? 'mánuði' : 'mánuðum');
51370 } else if (withoutSuffix) {
51371 return result + 'mánuður';
51372 }
51373 return result + (isFuture ? 'mánuð' : 'mánuði');
51374 case 'y':
51375 return withoutSuffix || isFuture ? 'ár' : 'ári';
51376 case 'yy':
51377 if (plural(number)) {
51378 return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
51379 }
51380 return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
51381 }
51382}
51383
51384var is = moment.defineLocale('is', {
51385 months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
51386 monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
51387 weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
51388 weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
51389 weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
51390 longDateFormat : {
51391 LT : 'H:mm',
51392 LTS : 'H:mm:ss',
51393 L : 'DD.MM.YYYY',
51394 LL : 'D. MMMM YYYY',
51395 LLL : 'D. MMMM YYYY [kl.] H:mm',
51396 LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
51397 },
51398 calendar : {
51399 sameDay : '[í dag kl.] LT',
51400 nextDay : '[á morgun kl.] LT',
51401 nextWeek : 'dddd [kl.] LT',
51402 lastDay : '[í gær kl.] LT',
51403 lastWeek : '[síðasta] dddd [kl.] LT',
51404 sameElse : 'L'
51405 },
51406 relativeTime : {
51407 future : 'eftir %s',
51408 past : 'fyrir %s síðan',
51409 s : translate,
51410 ss : translate,
51411 m : translate,
51412 mm : translate,
51413 h : 'klukkustund',
51414 hh : translate,
51415 d : translate,
51416 dd : translate,
51417 M : translate,
51418 MM : translate,
51419 y : translate,
51420 yy : translate
51421 },
51422 dayOfMonthOrdinalParse: /\d{1,2}\./,
51423 ordinal : '%d.',
51424 week : {
51425 dow : 1, // Monday is the first day of the week.
51426 doy : 4 // The week that contains Jan 4th is the first week of the year.
51427 }
51428});
51429
51430return is;
51431
51432})));
51433
51434
51435/***/ }),
51436
51437/***/ "./node_modules/moment/locale/it.js":
51438/*!******************************************!*\
51439 !*** ./node_modules/moment/locale/it.js ***!
51440 \******************************************/
51441/*! no static exports found */
51442/***/ (function(module, exports, __webpack_require__) {
51443
51444//! moment.js locale configuration
51445
51446;(function (global, factory) {
51447 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51448 undefined
51449}(this, (function (moment) { 'use strict';
51450
51451
51452var it = moment.defineLocale('it', {
51453 months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
51454 monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
51455 weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),
51456 weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
51457 weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),
51458 longDateFormat : {
51459 LT : 'HH:mm',
51460 LTS : 'HH:mm:ss',
51461 L : 'DD/MM/YYYY',
51462 LL : 'D MMMM YYYY',
51463 LLL : 'D MMMM YYYY HH:mm',
51464 LLLL : 'dddd D MMMM YYYY HH:mm'
51465 },
51466 calendar : {
51467 sameDay: '[Oggi alle] LT',
51468 nextDay: '[Domani alle] LT',
51469 nextWeek: 'dddd [alle] LT',
51470 lastDay: '[Ieri alle] LT',
51471 lastWeek: function () {
51472 switch (this.day()) {
51473 case 0:
51474 return '[la scorsa] dddd [alle] LT';
51475 default:
51476 return '[lo scorso] dddd [alle] LT';
51477 }
51478 },
51479 sameElse: 'L'
51480 },
51481 relativeTime : {
51482 future : function (s) {
51483 return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
51484 },
51485 past : '%s fa',
51486 s : 'alcuni secondi',
51487 ss : '%d secondi',
51488 m : 'un minuto',
51489 mm : '%d minuti',
51490 h : 'un\'ora',
51491 hh : '%d ore',
51492 d : 'un giorno',
51493 dd : '%d giorni',
51494 M : 'un mese',
51495 MM : '%d mesi',
51496 y : 'un anno',
51497 yy : '%d anni'
51498 },
51499 dayOfMonthOrdinalParse : /\d{1,2}º/,
51500 ordinal: '%dº',
51501 week : {
51502 dow : 1, // Monday is the first day of the week.
51503 doy : 4 // The week that contains Jan 4th is the first week of the year.
51504 }
51505});
51506
51507return it;
51508
51509})));
51510
51511
51512/***/ }),
51513
51514/***/ "./node_modules/moment/locale/ja.js":
51515/*!******************************************!*\
51516 !*** ./node_modules/moment/locale/ja.js ***!
51517 \******************************************/
51518/*! no static exports found */
51519/***/ (function(module, exports, __webpack_require__) {
51520
51521//! moment.js locale configuration
51522
51523;(function (global, factory) {
51524 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51525 undefined
51526}(this, (function (moment) { 'use strict';
51527
51528
51529var ja = moment.defineLocale('ja', {
51530 months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
51531 monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
51532 weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
51533 weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
51534 weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
51535 longDateFormat : {
51536 LT : 'HH:mm',
51537 LTS : 'HH:mm:ss',
51538 L : 'YYYY/MM/DD',
51539 LL : 'YYYY年M月D日',
51540 LLL : 'YYYY年M月D日 HH:mm',
51541 LLLL : 'YYYY年M月D日 HH:mm dddd',
51542 l : 'YYYY/MM/DD',
51543 ll : 'YYYY年M月D日',
51544 lll : 'YYYY年M月D日 HH:mm',
51545 llll : 'YYYY年M月D日 HH:mm dddd'
51546 },
51547 meridiemParse: /午前|午後/i,
51548 isPM : function (input) {
51549 return input === '午後';
51550 },
51551 meridiem : function (hour, minute, isLower) {
51552 if (hour < 12) {
51553 return '午前';
51554 } else {
51555 return '午後';
51556 }
51557 },
51558 calendar : {
51559 sameDay : '[今日] LT',
51560 nextDay : '[明日] LT',
51561 nextWeek : '[来週]dddd LT',
51562 lastDay : '[昨日] LT',
51563 lastWeek : '[前週]dddd LT',
51564 sameElse : 'L'
51565 },
51566 dayOfMonthOrdinalParse : /\d{1,2}日/,
51567 ordinal : function (number, period) {
51568 switch (period) {
51569 case 'd':
51570 case 'D':
51571 case 'DDD':
51572 return number + '日';
51573 default:
51574 return number;
51575 }
51576 },
51577 relativeTime : {
51578 future : '%s後',
51579 past : '%s前',
51580 s : '数秒',
51581 ss : '%d秒',
51582 m : '1分',
51583 mm : '%d分',
51584 h : '1時間',
51585 hh : '%d時間',
51586 d : '1日',
51587 dd : '%d日',
51588 M : '1ヶ月',
51589 MM : '%dヶ月',
51590 y : '1年',
51591 yy : '%d年'
51592 }
51593});
51594
51595return ja;
51596
51597})));
51598
51599
51600/***/ }),
51601
51602/***/ "./node_modules/moment/locale/jv.js":
51603/*!******************************************!*\
51604 !*** ./node_modules/moment/locale/jv.js ***!
51605 \******************************************/
51606/*! no static exports found */
51607/***/ (function(module, exports, __webpack_require__) {
51608
51609//! moment.js locale configuration
51610
51611;(function (global, factory) {
51612 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51613 undefined
51614}(this, (function (moment) { 'use strict';
51615
51616
51617var jv = moment.defineLocale('jv', {
51618 months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
51619 monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
51620 weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
51621 weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
51622 weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
51623 longDateFormat : {
51624 LT : 'HH.mm',
51625 LTS : 'HH.mm.ss',
51626 L : 'DD/MM/YYYY',
51627 LL : 'D MMMM YYYY',
51628 LLL : 'D MMMM YYYY [pukul] HH.mm',
51629 LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
51630 },
51631 meridiemParse: /enjing|siyang|sonten|ndalu/,
51632 meridiemHour : function (hour, meridiem) {
51633 if (hour === 12) {
51634 hour = 0;
51635 }
51636 if (meridiem === 'enjing') {
51637 return hour;
51638 } else if (meridiem === 'siyang') {
51639 return hour >= 11 ? hour : hour + 12;
51640 } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
51641 return hour + 12;
51642 }
51643 },
51644 meridiem : function (hours, minutes, isLower) {
51645 if (hours < 11) {
51646 return 'enjing';
51647 } else if (hours < 15) {
51648 return 'siyang';
51649 } else if (hours < 19) {
51650 return 'sonten';
51651 } else {
51652 return 'ndalu';
51653 }
51654 },
51655 calendar : {
51656 sameDay : '[Dinten puniko pukul] LT',
51657 nextDay : '[Mbenjang pukul] LT',
51658 nextWeek : 'dddd [pukul] LT',
51659 lastDay : '[Kala wingi pukul] LT',
51660 lastWeek : 'dddd [kepengker pukul] LT',
51661 sameElse : 'L'
51662 },
51663 relativeTime : {
51664 future : 'wonten ing %s',
51665 past : '%s ingkang kepengker',
51666 s : 'sawetawis detik',
51667 ss : '%d detik',
51668 m : 'setunggal menit',
51669 mm : '%d menit',
51670 h : 'setunggal jam',
51671 hh : '%d jam',
51672 d : 'sedinten',
51673 dd : '%d dinten',
51674 M : 'sewulan',
51675 MM : '%d wulan',
51676 y : 'setaun',
51677 yy : '%d taun'
51678 },
51679 week : {
51680 dow : 1, // Monday is the first day of the week.
51681 doy : 7 // The week that contains Jan 1st is the first week of the year.
51682 }
51683});
51684
51685return jv;
51686
51687})));
51688
51689
51690/***/ }),
51691
51692/***/ "./node_modules/moment/locale/ka.js":
51693/*!******************************************!*\
51694 !*** ./node_modules/moment/locale/ka.js ***!
51695 \******************************************/
51696/*! no static exports found */
51697/***/ (function(module, exports, __webpack_require__) {
51698
51699//! moment.js locale configuration
51700
51701;(function (global, factory) {
51702 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51703 undefined
51704}(this, (function (moment) { 'use strict';
51705
51706
51707var ka = moment.defineLocale('ka', {
51708 months : {
51709 standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
51710 format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
51711 },
51712 monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
51713 weekdays : {
51714 standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
51715 format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
51716 isFormat: /(წინა|შემდეგ)/
51717 },
51718 weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
51719 weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
51720 longDateFormat : {
51721 LT : 'h:mm A',
51722 LTS : 'h:mm:ss A',
51723 L : 'DD/MM/YYYY',
51724 LL : 'D MMMM YYYY',
51725 LLL : 'D MMMM YYYY h:mm A',
51726 LLLL : 'dddd, D MMMM YYYY h:mm A'
51727 },
51728 calendar : {
51729 sameDay : '[დღეს] LT[-ზე]',
51730 nextDay : '[ხვალ] LT[-ზე]',
51731 lastDay : '[გუშინ] LT[-ზე]',
51732 nextWeek : '[შემდეგ] dddd LT[-ზე]',
51733 lastWeek : '[წინა] dddd LT-ზე',
51734 sameElse : 'L'
51735 },
51736 relativeTime : {
51737 future : function (s) {
51738 return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
51739 s.replace(/ი$/, 'ში') :
51740 s + 'ში';
51741 },
51742 past : function (s) {
51743 if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
51744 return s.replace(/(ი|ე)$/, 'ის უკან');
51745 }
51746 if ((/წელი/).test(s)) {
51747 return s.replace(/წელი$/, 'წლის უკან');
51748 }
51749 },
51750 s : 'რამდენიმე წამი',
51751 ss : '%d წამი',
51752 m : 'წუთი',
51753 mm : '%d წუთი',
51754 h : 'საათი',
51755 hh : '%d საათი',
51756 d : 'დღე',
51757 dd : '%d დღე',
51758 M : 'თვე',
51759 MM : '%d თვე',
51760 y : 'წელი',
51761 yy : '%d წელი'
51762 },
51763 dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
51764 ordinal : function (number) {
51765 if (number === 0) {
51766 return number;
51767 }
51768 if (number === 1) {
51769 return number + '-ლი';
51770 }
51771 if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
51772 return 'მე-' + number;
51773 }
51774 return number + '-ე';
51775 },
51776 week : {
51777 dow : 1,
51778 doy : 7
51779 }
51780});
51781
51782return ka;
51783
51784})));
51785
51786
51787/***/ }),
51788
51789/***/ "./node_modules/moment/locale/kk.js":
51790/*!******************************************!*\
51791 !*** ./node_modules/moment/locale/kk.js ***!
51792 \******************************************/
51793/*! no static exports found */
51794/***/ (function(module, exports, __webpack_require__) {
51795
51796//! moment.js locale configuration
51797
51798;(function (global, factory) {
51799 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51800 undefined
51801}(this, (function (moment) { 'use strict';
51802
51803
51804var suffixes = {
51805 0: '-ші',
51806 1: '-ші',
51807 2: '-ші',
51808 3: '-ші',
51809 4: '-ші',
51810 5: '-ші',
51811 6: '-шы',
51812 7: '-ші',
51813 8: '-ші',
51814 9: '-шы',
51815 10: '-шы',
51816 20: '-шы',
51817 30: '-шы',
51818 40: '-шы',
51819 50: '-ші',
51820 60: '-шы',
51821 70: '-ші',
51822 80: '-ші',
51823 90: '-шы',
51824 100: '-ші'
51825};
51826
51827var kk = moment.defineLocale('kk', {
51828 months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),
51829 monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
51830 weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),
51831 weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
51832 weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
51833 longDateFormat : {
51834 LT : 'HH:mm',
51835 LTS : 'HH:mm:ss',
51836 L : 'DD.MM.YYYY',
51837 LL : 'D MMMM YYYY',
51838 LLL : 'D MMMM YYYY HH:mm',
51839 LLLL : 'dddd, D MMMM YYYY HH:mm'
51840 },
51841 calendar : {
51842 sameDay : '[Бүгін сағат] LT',
51843 nextDay : '[Ертең сағат] LT',
51844 nextWeek : 'dddd [сағат] LT',
51845 lastDay : '[Кеше сағат] LT',
51846 lastWeek : '[Өткен аптаның] dddd [сағат] LT',
51847 sameElse : 'L'
51848 },
51849 relativeTime : {
51850 future : '%s ішінде',
51851 past : '%s бұрын',
51852 s : 'бірнеше секунд',
51853 ss : '%d секунд',
51854 m : 'бір минут',
51855 mm : '%d минут',
51856 h : 'бір сағат',
51857 hh : '%d сағат',
51858 d : 'бір күн',
51859 dd : '%d күн',
51860 M : 'бір ай',
51861 MM : '%d ай',
51862 y : 'бір жыл',
51863 yy : '%d жыл'
51864 },
51865 dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
51866 ordinal : function (number) {
51867 var a = number % 10,
51868 b = number >= 100 ? 100 : null;
51869 return number + (suffixes[number] || suffixes[a] || suffixes[b]);
51870 },
51871 week : {
51872 dow : 1, // Monday is the first day of the week.
51873 doy : 7 // The week that contains Jan 1st is the first week of the year.
51874 }
51875});
51876
51877return kk;
51878
51879})));
51880
51881
51882/***/ }),
51883
51884/***/ "./node_modules/moment/locale/km.js":
51885/*!******************************************!*\
51886 !*** ./node_modules/moment/locale/km.js ***!
51887 \******************************************/
51888/*! no static exports found */
51889/***/ (function(module, exports, __webpack_require__) {
51890
51891//! moment.js locale configuration
51892
51893;(function (global, factory) {
51894 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51895 undefined
51896}(this, (function (moment) { 'use strict';
51897
51898
51899var km = moment.defineLocale('km', {
51900 months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
51901 monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
51902 weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
51903 weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
51904 weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
51905 longDateFormat: {
51906 LT: 'HH:mm',
51907 LTS : 'HH:mm:ss',
51908 L: 'DD/MM/YYYY',
51909 LL: 'D MMMM YYYY',
51910 LLL: 'D MMMM YYYY HH:mm',
51911 LLLL: 'dddd, D MMMM YYYY HH:mm'
51912 },
51913 calendar: {
51914 sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
51915 nextDay: '[ស្អែក ម៉ោង] LT',
51916 nextWeek: 'dddd [ម៉ោង] LT',
51917 lastDay: '[ម្សិលមិញ ម៉ោង] LT',
51918 lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
51919 sameElse: 'L'
51920 },
51921 relativeTime: {
51922 future: '%sទៀត',
51923 past: '%sមុន',
51924 s: 'ប៉ុន្មានវិនាទី',
51925 ss: '%d វិនាទី',
51926 m: 'មួយនាទី',
51927 mm: '%d នាទី',
51928 h: 'មួយម៉ោង',
51929 hh: '%d ម៉ោង',
51930 d: 'មួយថ្ងៃ',
51931 dd: '%d ថ្ងៃ',
51932 M: 'មួយខែ',
51933 MM: '%d ខែ',
51934 y: 'មួយឆ្នាំ',
51935 yy: '%d ឆ្នាំ'
51936 },
51937 week: {
51938 dow: 1, // Monday is the first day of the week.
51939 doy: 4 // The week that contains Jan 4th is the first week of the year.
51940 }
51941});
51942
51943return km;
51944
51945})));
51946
51947
51948/***/ }),
51949
51950/***/ "./node_modules/moment/locale/kn.js":
51951/*!******************************************!*\
51952 !*** ./node_modules/moment/locale/kn.js ***!
51953 \******************************************/
51954/*! no static exports found */
51955/***/ (function(module, exports, __webpack_require__) {
51956
51957//! moment.js locale configuration
51958
51959;(function (global, factory) {
51960 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
51961 undefined
51962}(this, (function (moment) { 'use strict';
51963
51964
51965var symbolMap = {
51966 '1': '೧',
51967 '2': '೨',
51968 '3': '೩',
51969 '4': '೪',
51970 '5': '೫',
51971 '6': '೬',
51972 '7': '೭',
51973 '8': '೮',
51974 '9': '೯',
51975 '0': '೦'
51976},
51977numberMap = {
51978 '೧': '1',
51979 '೨': '2',
51980 '೩': '3',
51981 '೪': '4',
51982 '೫': '5',
51983 '೬': '6',
51984 '೭': '7',
51985 '೮': '8',
51986 '೯': '9',
51987 '೦': '0'
51988};
51989
51990var kn = moment.defineLocale('kn', {
51991 months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),
51992 monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),
51993 monthsParseExact: true,
51994 weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),
51995 weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
51996 weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
51997 longDateFormat : {
51998 LT : 'A h:mm',
51999 LTS : 'A h:mm:ss',
52000 L : 'DD/MM/YYYY',
52001 LL : 'D MMMM YYYY',
52002 LLL : 'D MMMM YYYY, A h:mm',
52003 LLLL : 'dddd, D MMMM YYYY, A h:mm'
52004 },
52005 calendar : {
52006 sameDay : '[ಇಂದು] LT',
52007 nextDay : '[ನಾಳೆ] LT',
52008 nextWeek : 'dddd, LT',
52009 lastDay : '[ನಿನ್ನೆ] LT',
52010 lastWeek : '[ಕೊನೆಯ] dddd, LT',
52011 sameElse : 'L'
52012 },
52013 relativeTime : {
52014 future : '%s ನಂತರ',
52015 past : '%s ಹಿಂದೆ',
52016 s : 'ಕೆಲವು ಕ್ಷಣಗಳು',
52017 ss : '%d ಸೆಕೆಂಡುಗಳು',
52018 m : 'ಒಂದು ನಿಮಿಷ',
52019 mm : '%d ನಿಮಿಷ',
52020 h : 'ಒಂದು ಗಂಟೆ',
52021 hh : '%d ಗಂಟೆ',
52022 d : 'ಒಂದು ದಿನ',
52023 dd : '%d ದಿನ',
52024 M : 'ಒಂದು ತಿಂಗಳು',
52025 MM : '%d ತಿಂಗಳು',
52026 y : 'ಒಂದು ವರ್ಷ',
52027 yy : '%d ವರ್ಷ'
52028 },
52029 preparse: function (string) {
52030 return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
52031 return numberMap[match];
52032 });
52033 },
52034 postformat: function (string) {
52035 return string.replace(/\d/g, function (match) {
52036 return symbolMap[match];
52037 });
52038 },
52039 meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
52040 meridiemHour : function (hour, meridiem) {
52041 if (hour === 12) {
52042 hour = 0;
52043 }
52044 if (meridiem === 'ರಾತ್ರಿ') {
52045 return hour < 4 ? hour : hour + 12;
52046 } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
52047 return hour;
52048 } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
52049 return hour >= 10 ? hour : hour + 12;
52050 } else if (meridiem === 'ಸಂಜೆ') {
52051 return hour + 12;
52052 }
52053 },
52054 meridiem : function (hour, minute, isLower) {
52055 if (hour < 4) {
52056 return 'ರಾತ್ರಿ';
52057 } else if (hour < 10) {
52058 return 'ಬೆಳಿಗ್ಗೆ';
52059 } else if (hour < 17) {
52060 return 'ಮಧ್ಯಾಹ್ನ';
52061 } else if (hour < 20) {
52062 return 'ಸಂಜೆ';
52063 } else {
52064 return 'ರಾತ್ರಿ';
52065 }
52066 },
52067 dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
52068 ordinal : function (number) {
52069 return number + 'ನೇ';
52070 },
52071 week : {
52072 dow : 0, // Sunday is the first day of the week.
52073 doy : 6 // The week that contains Jan 1st is the first week of the year.
52074 }
52075});
52076
52077return kn;
52078
52079})));
52080
52081
52082/***/ }),
52083
52084/***/ "./node_modules/moment/locale/ko.js":
52085/*!******************************************!*\
52086 !*** ./node_modules/moment/locale/ko.js ***!
52087 \******************************************/
52088/*! no static exports found */
52089/***/ (function(module, exports, __webpack_require__) {
52090
52091//! moment.js locale configuration
52092
52093;(function (global, factory) {
52094 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52095 undefined
52096}(this, (function (moment) { 'use strict';
52097
52098
52099var ko = moment.defineLocale('ko', {
52100 months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
52101 monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
52102 weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
52103 weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
52104 weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
52105 longDateFormat : {
52106 LT : 'A h:mm',
52107 LTS : 'A h:mm:ss',
52108 L : 'YYYY.MM.DD.',
52109 LL : 'YYYY년 MMMM D일',
52110 LLL : 'YYYY년 MMMM D일 A h:mm',
52111 LLLL : 'YYYY년 MMMM D일 dddd A h:mm',
52112 l : 'YYYY.MM.DD.',
52113 ll : 'YYYY년 MMMM D일',
52114 lll : 'YYYY년 MMMM D일 A h:mm',
52115 llll : 'YYYY년 MMMM D일 dddd A h:mm'
52116 },
52117 calendar : {
52118 sameDay : '오늘 LT',
52119 nextDay : '내일 LT',
52120 nextWeek : 'dddd LT',
52121 lastDay : '어제 LT',
52122 lastWeek : '지난주 dddd LT',
52123 sameElse : 'L'
52124 },
52125 relativeTime : {
52126 future : '%s 후',
52127 past : '%s 전',
52128 s : '몇 초',
52129 ss : '%d초',
52130 m : '1분',
52131 mm : '%d분',
52132 h : '한 시간',
52133 hh : '%d시간',
52134 d : '하루',
52135 dd : '%d일',
52136 M : '한 달',
52137 MM : '%d달',
52138 y : '일 년',
52139 yy : '%d년'
52140 },
52141 dayOfMonthOrdinalParse : /\d{1,2}(일|월|주)/,
52142 ordinal : function (number, period) {
52143 switch (period) {
52144 case 'd':
52145 case 'D':
52146 case 'DDD':
52147 return number + '일';
52148 case 'M':
52149 return number + '월';
52150 case 'w':
52151 case 'W':
52152 return number + '주';
52153 default:
52154 return number;
52155 }
52156 },
52157 meridiemParse : /오전|오후/,
52158 isPM : function (token) {
52159 return token === '오후';
52160 },
52161 meridiem : function (hour, minute, isUpper) {
52162 return hour < 12 ? '오전' : '오후';
52163 }
52164});
52165
52166return ko;
52167
52168})));
52169
52170
52171/***/ }),
52172
52173/***/ "./node_modules/moment/locale/ky.js":
52174/*!******************************************!*\
52175 !*** ./node_modules/moment/locale/ky.js ***!
52176 \******************************************/
52177/*! no static exports found */
52178/***/ (function(module, exports, __webpack_require__) {
52179
52180//! moment.js locale configuration
52181
52182;(function (global, factory) {
52183 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52184 undefined
52185}(this, (function (moment) { 'use strict';
52186
52187
52188var suffixes = {
52189 0: '-чү',
52190 1: '-чи',
52191 2: '-чи',
52192 3: '-чү',
52193 4: '-чү',
52194 5: '-чи',
52195 6: '-чы',
52196 7: '-чи',
52197 8: '-чи',
52198 9: '-чу',
52199 10: '-чу',
52200 20: '-чы',
52201 30: '-чу',
52202 40: '-чы',
52203 50: '-чү',
52204 60: '-чы',
52205 70: '-чи',
52206 80: '-чи',
52207 90: '-чу',
52208 100: '-чү'
52209};
52210
52211var ky = moment.defineLocale('ky', {
52212 months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
52213 monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
52214 weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),
52215 weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
52216 weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
52217 longDateFormat : {
52218 LT : 'HH:mm',
52219 LTS : 'HH:mm:ss',
52220 L : 'DD.MM.YYYY',
52221 LL : 'D MMMM YYYY',
52222 LLL : 'D MMMM YYYY HH:mm',
52223 LLLL : 'dddd, D MMMM YYYY HH:mm'
52224 },
52225 calendar : {
52226 sameDay : '[Бүгүн саат] LT',
52227 nextDay : '[Эртең саат] LT',
52228 nextWeek : 'dddd [саат] LT',
52229 lastDay : '[Кече саат] LT',
52230 lastWeek : '[Өткен аптанын] dddd [күнү] [саат] LT',
52231 sameElse : 'L'
52232 },
52233 relativeTime : {
52234 future : '%s ичинде',
52235 past : '%s мурун',
52236 s : 'бирнече секунд',
52237 ss : '%d секунд',
52238 m : 'бир мүнөт',
52239 mm : '%d мүнөт',
52240 h : 'бир саат',
52241 hh : '%d саат',
52242 d : 'бир күн',
52243 dd : '%d күн',
52244 M : 'бир ай',
52245 MM : '%d ай',
52246 y : 'бир жыл',
52247 yy : '%d жыл'
52248 },
52249 dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
52250 ordinal : function (number) {
52251 var a = number % 10,
52252 b = number >= 100 ? 100 : null;
52253 return number + (suffixes[number] || suffixes[a] || suffixes[b]);
52254 },
52255 week : {
52256 dow : 1, // Monday is the first day of the week.
52257 doy : 7 // The week that contains Jan 1st is the first week of the year.
52258 }
52259});
52260
52261return ky;
52262
52263})));
52264
52265
52266/***/ }),
52267
52268/***/ "./node_modules/moment/locale/lb.js":
52269/*!******************************************!*\
52270 !*** ./node_modules/moment/locale/lb.js ***!
52271 \******************************************/
52272/*! no static exports found */
52273/***/ (function(module, exports, __webpack_require__) {
52274
52275//! moment.js locale configuration
52276
52277;(function (global, factory) {
52278 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52279 undefined
52280}(this, (function (moment) { 'use strict';
52281
52282
52283function processRelativeTime(number, withoutSuffix, key, isFuture) {
52284 var format = {
52285 'm': ['eng Minutt', 'enger Minutt'],
52286 'h': ['eng Stonn', 'enger Stonn'],
52287 'd': ['een Dag', 'engem Dag'],
52288 'M': ['ee Mount', 'engem Mount'],
52289 'y': ['ee Joer', 'engem Joer']
52290 };
52291 return withoutSuffix ? format[key][0] : format[key][1];
52292}
52293function processFutureTime(string) {
52294 var number = string.substr(0, string.indexOf(' '));
52295 if (eifelerRegelAppliesToNumber(number)) {
52296 return 'a ' + string;
52297 }
52298 return 'an ' + string;
52299}
52300function processPastTime(string) {
52301 var number = string.substr(0, string.indexOf(' '));
52302 if (eifelerRegelAppliesToNumber(number)) {
52303 return 'viru ' + string;
52304 }
52305 return 'virun ' + string;
52306}
52307/**
52308 * Returns true if the word before the given number loses the '-n' ending.
52309 * e.g. 'an 10 Deeg' but 'a 5 Deeg'
52310 *
52311 * @param number {integer}
52312 * @returns {boolean}
52313 */
52314function eifelerRegelAppliesToNumber(number) {
52315 number = parseInt(number, 10);
52316 if (isNaN(number)) {
52317 return false;
52318 }
52319 if (number < 0) {
52320 // Negative Number --> always true
52321 return true;
52322 } else if (number < 10) {
52323 // Only 1 digit
52324 if (4 <= number && number <= 7) {
52325 return true;
52326 }
52327 return false;
52328 } else if (number < 100) {
52329 // 2 digits
52330 var lastDigit = number % 10, firstDigit = number / 10;
52331 if (lastDigit === 0) {
52332 return eifelerRegelAppliesToNumber(firstDigit);
52333 }
52334 return eifelerRegelAppliesToNumber(lastDigit);
52335 } else if (number < 10000) {
52336 // 3 or 4 digits --> recursively check first digit
52337 while (number >= 10) {
52338 number = number / 10;
52339 }
52340 return eifelerRegelAppliesToNumber(number);
52341 } else {
52342 // Anything larger than 4 digits: recursively check first n-3 digits
52343 number = number / 1000;
52344 return eifelerRegelAppliesToNumber(number);
52345 }
52346}
52347
52348var lb = moment.defineLocale('lb', {
52349 months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
52350 monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
52351 monthsParseExact : true,
52352 weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
52353 weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
52354 weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
52355 weekdaysParseExact : true,
52356 longDateFormat: {
52357 LT: 'H:mm [Auer]',
52358 LTS: 'H:mm:ss [Auer]',
52359 L: 'DD.MM.YYYY',
52360 LL: 'D. MMMM YYYY',
52361 LLL: 'D. MMMM YYYY H:mm [Auer]',
52362 LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
52363 },
52364 calendar: {
52365 sameDay: '[Haut um] LT',
52366 sameElse: 'L',
52367 nextDay: '[Muer um] LT',
52368 nextWeek: 'dddd [um] LT',
52369 lastDay: '[Gëschter um] LT',
52370 lastWeek: function () {
52371 // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
52372 switch (this.day()) {
52373 case 2:
52374 case 4:
52375 return '[Leschten] dddd [um] LT';
52376 default:
52377 return '[Leschte] dddd [um] LT';
52378 }
52379 }
52380 },
52381 relativeTime : {
52382 future : processFutureTime,
52383 past : processPastTime,
52384 s : 'e puer Sekonnen',
52385 ss : '%d Sekonnen',
52386 m : processRelativeTime,
52387 mm : '%d Minutten',
52388 h : processRelativeTime,
52389 hh : '%d Stonnen',
52390 d : processRelativeTime,
52391 dd : '%d Deeg',
52392 M : processRelativeTime,
52393 MM : '%d Méint',
52394 y : processRelativeTime,
52395 yy : '%d Joer'
52396 },
52397 dayOfMonthOrdinalParse: /\d{1,2}\./,
52398 ordinal: '%d.',
52399 week: {
52400 dow: 1, // Monday is the first day of the week.
52401 doy: 4 // The week that contains Jan 4th is the first week of the year.
52402 }
52403});
52404
52405return lb;
52406
52407})));
52408
52409
52410/***/ }),
52411
52412/***/ "./node_modules/moment/locale/lo.js":
52413/*!******************************************!*\
52414 !*** ./node_modules/moment/locale/lo.js ***!
52415 \******************************************/
52416/*! no static exports found */
52417/***/ (function(module, exports, __webpack_require__) {
52418
52419//! moment.js locale configuration
52420
52421;(function (global, factory) {
52422 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52423 undefined
52424}(this, (function (moment) { 'use strict';
52425
52426
52427var lo = moment.defineLocale('lo', {
52428 months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
52429 monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
52430 weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
52431 weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
52432 weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
52433 weekdaysParseExact : true,
52434 longDateFormat : {
52435 LT : 'HH:mm',
52436 LTS : 'HH:mm:ss',
52437 L : 'DD/MM/YYYY',
52438 LL : 'D MMMM YYYY',
52439 LLL : 'D MMMM YYYY HH:mm',
52440 LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
52441 },
52442 meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
52443 isPM: function (input) {
52444 return input === 'ຕອນແລງ';
52445 },
52446 meridiem : function (hour, minute, isLower) {
52447 if (hour < 12) {
52448 return 'ຕອນເຊົ້າ';
52449 } else {
52450 return 'ຕອນແລງ';
52451 }
52452 },
52453 calendar : {
52454 sameDay : '[ມື້ນີ້ເວລາ] LT',
52455 nextDay : '[ມື້ອື່ນເວລາ] LT',
52456 nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
52457 lastDay : '[ມື້ວານນີ້ເວລາ] LT',
52458 lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
52459 sameElse : 'L'
52460 },
52461 relativeTime : {
52462 future : 'ອີກ %s',
52463 past : '%sຜ່ານມາ',
52464 s : 'ບໍ່ເທົ່າໃດວິນາທີ',
52465 ss : '%d ວິນາທີ' ,
52466 m : '1 ນາທີ',
52467 mm : '%d ນາທີ',
52468 h : '1 ຊົ່ວໂມງ',
52469 hh : '%d ຊົ່ວໂມງ',
52470 d : '1 ມື້',
52471 dd : '%d ມື້',
52472 M : '1 ເດືອນ',
52473 MM : '%d ເດືອນ',
52474 y : '1 ປີ',
52475 yy : '%d ປີ'
52476 },
52477 dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
52478 ordinal : function (number) {
52479 return 'ທີ່' + number;
52480 }
52481});
52482
52483return lo;
52484
52485})));
52486
52487
52488/***/ }),
52489
52490/***/ "./node_modules/moment/locale/lt.js":
52491/*!******************************************!*\
52492 !*** ./node_modules/moment/locale/lt.js ***!
52493 \******************************************/
52494/*! no static exports found */
52495/***/ (function(module, exports, __webpack_require__) {
52496
52497//! moment.js locale configuration
52498
52499;(function (global, factory) {
52500 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52501 undefined
52502}(this, (function (moment) { 'use strict';
52503
52504
52505var units = {
52506 'ss' : 'sekundė_sekundžių_sekundes',
52507 'm' : 'minutė_minutės_minutę',
52508 'mm': 'minutės_minučių_minutes',
52509 'h' : 'valanda_valandos_valandą',
52510 'hh': 'valandos_valandų_valandas',
52511 'd' : 'diena_dienos_dieną',
52512 'dd': 'dienos_dienų_dienas',
52513 'M' : 'mėnuo_mėnesio_mėnesį',
52514 'MM': 'mėnesiai_mėnesių_mėnesius',
52515 'y' : 'metai_metų_metus',
52516 'yy': 'metai_metų_metus'
52517};
52518function translateSeconds(number, withoutSuffix, key, isFuture) {
52519 if (withoutSuffix) {
52520 return 'kelios sekundės';
52521 } else {
52522 return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
52523 }
52524}
52525function translateSingular(number, withoutSuffix, key, isFuture) {
52526 return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
52527}
52528function special(number) {
52529 return number % 10 === 0 || (number > 10 && number < 20);
52530}
52531function forms(key) {
52532 return units[key].split('_');
52533}
52534function translate(number, withoutSuffix, key, isFuture) {
52535 var result = number + ' ';
52536 if (number === 1) {
52537 return result + translateSingular(number, withoutSuffix, key[0], isFuture);
52538 } else if (withoutSuffix) {
52539 return result + (special(number) ? forms(key)[1] : forms(key)[0]);
52540 } else {
52541 if (isFuture) {
52542 return result + forms(key)[1];
52543 } else {
52544 return result + (special(number) ? forms(key)[1] : forms(key)[2]);
52545 }
52546 }
52547}
52548var lt = moment.defineLocale('lt', {
52549 months : {
52550 format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
52551 standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),
52552 isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/
52553 },
52554 monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
52555 weekdays : {
52556 format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
52557 standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
52558 isFormat: /dddd HH:mm/
52559 },
52560 weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
52561 weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
52562 weekdaysParseExact : true,
52563 longDateFormat : {
52564 LT : 'HH:mm',
52565 LTS : 'HH:mm:ss',
52566 L : 'YYYY-MM-DD',
52567 LL : 'YYYY [m.] MMMM D [d.]',
52568 LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
52569 LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
52570 l : 'YYYY-MM-DD',
52571 ll : 'YYYY [m.] MMMM D [d.]',
52572 lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
52573 llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
52574 },
52575 calendar : {
52576 sameDay : '[Šiandien] LT',
52577 nextDay : '[Rytoj] LT',
52578 nextWeek : 'dddd LT',
52579 lastDay : '[Vakar] LT',
52580 lastWeek : '[Praėjusį] dddd LT',
52581 sameElse : 'L'
52582 },
52583 relativeTime : {
52584 future : 'po %s',
52585 past : 'prieš %s',
52586 s : translateSeconds,
52587 ss : translate,
52588 m : translateSingular,
52589 mm : translate,
52590 h : translateSingular,
52591 hh : translate,
52592 d : translateSingular,
52593 dd : translate,
52594 M : translateSingular,
52595 MM : translate,
52596 y : translateSingular,
52597 yy : translate
52598 },
52599 dayOfMonthOrdinalParse: /\d{1,2}-oji/,
52600 ordinal : function (number) {
52601 return number + '-oji';
52602 },
52603 week : {
52604 dow : 1, // Monday is the first day of the week.
52605 doy : 4 // The week that contains Jan 4th is the first week of the year.
52606 }
52607});
52608
52609return lt;
52610
52611})));
52612
52613
52614/***/ }),
52615
52616/***/ "./node_modules/moment/locale/lv.js":
52617/*!******************************************!*\
52618 !*** ./node_modules/moment/locale/lv.js ***!
52619 \******************************************/
52620/*! no static exports found */
52621/***/ (function(module, exports, __webpack_require__) {
52622
52623//! moment.js locale configuration
52624
52625;(function (global, factory) {
52626 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52627 undefined
52628}(this, (function (moment) { 'use strict';
52629
52630
52631var units = {
52632 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
52633 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
52634 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
52635 'h': 'stundas_stundām_stunda_stundas'.split('_'),
52636 'hh': 'stundas_stundām_stunda_stundas'.split('_'),
52637 'd': 'dienas_dienām_diena_dienas'.split('_'),
52638 'dd': 'dienas_dienām_diena_dienas'.split('_'),
52639 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
52640 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
52641 'y': 'gada_gadiem_gads_gadi'.split('_'),
52642 'yy': 'gada_gadiem_gads_gadi'.split('_')
52643};
52644/**
52645 * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
52646 */
52647function format(forms, number, withoutSuffix) {
52648 if (withoutSuffix) {
52649 // E.g. "21 minūte", "3 minūtes".
52650 return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
52651 } else {
52652 // E.g. "21 minūtes" as in "pēc 21 minūtes".
52653 // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
52654 return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
52655 }
52656}
52657function relativeTimeWithPlural(number, withoutSuffix, key) {
52658 return number + ' ' + format(units[key], number, withoutSuffix);
52659}
52660function relativeTimeWithSingular(number, withoutSuffix, key) {
52661 return format(units[key], number, withoutSuffix);
52662}
52663function relativeSeconds(number, withoutSuffix) {
52664 return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
52665}
52666
52667var lv = moment.defineLocale('lv', {
52668 months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
52669 monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
52670 weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
52671 weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
52672 weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
52673 weekdaysParseExact : true,
52674 longDateFormat : {
52675 LT : 'HH:mm',
52676 LTS : 'HH:mm:ss',
52677 L : 'DD.MM.YYYY.',
52678 LL : 'YYYY. [gada] D. MMMM',
52679 LLL : 'YYYY. [gada] D. MMMM, HH:mm',
52680 LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
52681 },
52682 calendar : {
52683 sameDay : '[Šodien pulksten] LT',
52684 nextDay : '[Rīt pulksten] LT',
52685 nextWeek : 'dddd [pulksten] LT',
52686 lastDay : '[Vakar pulksten] LT',
52687 lastWeek : '[Pagājušā] dddd [pulksten] LT',
52688 sameElse : 'L'
52689 },
52690 relativeTime : {
52691 future : 'pēc %s',
52692 past : 'pirms %s',
52693 s : relativeSeconds,
52694 ss : relativeTimeWithPlural,
52695 m : relativeTimeWithSingular,
52696 mm : relativeTimeWithPlural,
52697 h : relativeTimeWithSingular,
52698 hh : relativeTimeWithPlural,
52699 d : relativeTimeWithSingular,
52700 dd : relativeTimeWithPlural,
52701 M : relativeTimeWithSingular,
52702 MM : relativeTimeWithPlural,
52703 y : relativeTimeWithSingular,
52704 yy : relativeTimeWithPlural
52705 },
52706 dayOfMonthOrdinalParse: /\d{1,2}\./,
52707 ordinal : '%d.',
52708 week : {
52709 dow : 1, // Monday is the first day of the week.
52710 doy : 4 // The week that contains Jan 4th is the first week of the year.
52711 }
52712});
52713
52714return lv;
52715
52716})));
52717
52718
52719/***/ }),
52720
52721/***/ "./node_modules/moment/locale/me.js":
52722/*!******************************************!*\
52723 !*** ./node_modules/moment/locale/me.js ***!
52724 \******************************************/
52725/*! no static exports found */
52726/***/ (function(module, exports, __webpack_require__) {
52727
52728//! moment.js locale configuration
52729
52730;(function (global, factory) {
52731 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52732 undefined
52733}(this, (function (moment) { 'use strict';
52734
52735
52736var translator = {
52737 words: { //Different grammatical cases
52738 ss: ['sekund', 'sekunda', 'sekundi'],
52739 m: ['jedan minut', 'jednog minuta'],
52740 mm: ['minut', 'minuta', 'minuta'],
52741 h: ['jedan sat', 'jednog sata'],
52742 hh: ['sat', 'sata', 'sati'],
52743 dd: ['dan', 'dana', 'dana'],
52744 MM: ['mjesec', 'mjeseca', 'mjeseci'],
52745 yy: ['godina', 'godine', 'godina']
52746 },
52747 correctGrammaticalCase: function (number, wordKey) {
52748 return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
52749 },
52750 translate: function (number, withoutSuffix, key) {
52751 var wordKey = translator.words[key];
52752 if (key.length === 1) {
52753 return withoutSuffix ? wordKey[0] : wordKey[1];
52754 } else {
52755 return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
52756 }
52757 }
52758};
52759
52760var me = moment.defineLocale('me', {
52761 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
52762 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
52763 monthsParseExact : true,
52764 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
52765 weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
52766 weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
52767 weekdaysParseExact : true,
52768 longDateFormat: {
52769 LT: 'H:mm',
52770 LTS : 'H:mm:ss',
52771 L: 'DD.MM.YYYY',
52772 LL: 'D. MMMM YYYY',
52773 LLL: 'D. MMMM YYYY H:mm',
52774 LLLL: 'dddd, D. MMMM YYYY H:mm'
52775 },
52776 calendar: {
52777 sameDay: '[danas u] LT',
52778 nextDay: '[sjutra u] LT',
52779
52780 nextWeek: function () {
52781 switch (this.day()) {
52782 case 0:
52783 return '[u] [nedjelju] [u] LT';
52784 case 3:
52785 return '[u] [srijedu] [u] LT';
52786 case 6:
52787 return '[u] [subotu] [u] LT';
52788 case 1:
52789 case 2:
52790 case 4:
52791 case 5:
52792 return '[u] dddd [u] LT';
52793 }
52794 },
52795 lastDay : '[juče u] LT',
52796 lastWeek : function () {
52797 var lastWeekDays = [
52798 '[prošle] [nedjelje] [u] LT',
52799 '[prošlog] [ponedjeljka] [u] LT',
52800 '[prošlog] [utorka] [u] LT',
52801 '[prošle] [srijede] [u] LT',
52802 '[prošlog] [četvrtka] [u] LT',
52803 '[prošlog] [petka] [u] LT',
52804 '[prošle] [subote] [u] LT'
52805 ];
52806 return lastWeekDays[this.day()];
52807 },
52808 sameElse : 'L'
52809 },
52810 relativeTime : {
52811 future : 'za %s',
52812 past : 'prije %s',
52813 s : 'nekoliko sekundi',
52814 ss : translator.translate,
52815 m : translator.translate,
52816 mm : translator.translate,
52817 h : translator.translate,
52818 hh : translator.translate,
52819 d : 'dan',
52820 dd : translator.translate,
52821 M : 'mjesec',
52822 MM : translator.translate,
52823 y : 'godinu',
52824 yy : translator.translate
52825 },
52826 dayOfMonthOrdinalParse: /\d{1,2}\./,
52827 ordinal : '%d.',
52828 week : {
52829 dow : 1, // Monday is the first day of the week.
52830 doy : 7 // The week that contains Jan 1st is the first week of the year.
52831 }
52832});
52833
52834return me;
52835
52836})));
52837
52838
52839/***/ }),
52840
52841/***/ "./node_modules/moment/locale/mi.js":
52842/*!******************************************!*\
52843 !*** ./node_modules/moment/locale/mi.js ***!
52844 \******************************************/
52845/*! no static exports found */
52846/***/ (function(module, exports, __webpack_require__) {
52847
52848//! moment.js locale configuration
52849
52850;(function (global, factory) {
52851 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52852 undefined
52853}(this, (function (moment) { 'use strict';
52854
52855
52856var mi = moment.defineLocale('mi', {
52857 months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),
52858 monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),
52859 monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
52860 monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
52861 monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
52862 monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
52863 weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
52864 weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
52865 weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
52866 longDateFormat: {
52867 LT: 'HH:mm',
52868 LTS: 'HH:mm:ss',
52869 L: 'DD/MM/YYYY',
52870 LL: 'D MMMM YYYY',
52871 LLL: 'D MMMM YYYY [i] HH:mm',
52872 LLLL: 'dddd, D MMMM YYYY [i] HH:mm'
52873 },
52874 calendar: {
52875 sameDay: '[i teie mahana, i] LT',
52876 nextDay: '[apopo i] LT',
52877 nextWeek: 'dddd [i] LT',
52878 lastDay: '[inanahi i] LT',
52879 lastWeek: 'dddd [whakamutunga i] LT',
52880 sameElse: 'L'
52881 },
52882 relativeTime: {
52883 future: 'i roto i %s',
52884 past: '%s i mua',
52885 s: 'te hēkona ruarua',
52886 ss: '%d hēkona',
52887 m: 'he meneti',
52888 mm: '%d meneti',
52889 h: 'te haora',
52890 hh: '%d haora',
52891 d: 'he ra',
52892 dd: '%d ra',
52893 M: 'he marama',
52894 MM: '%d marama',
52895 y: 'he tau',
52896 yy: '%d tau'
52897 },
52898 dayOfMonthOrdinalParse: /\d{1,2}º/,
52899 ordinal: '%dº',
52900 week : {
52901 dow : 1, // Monday is the first day of the week.
52902 doy : 4 // The week that contains Jan 4th is the first week of the year.
52903 }
52904});
52905
52906return mi;
52907
52908})));
52909
52910
52911/***/ }),
52912
52913/***/ "./node_modules/moment/locale/mk.js":
52914/*!******************************************!*\
52915 !*** ./node_modules/moment/locale/mk.js ***!
52916 \******************************************/
52917/*! no static exports found */
52918/***/ (function(module, exports, __webpack_require__) {
52919
52920//! moment.js locale configuration
52921
52922;(function (global, factory) {
52923 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
52924 undefined
52925}(this, (function (moment) { 'use strict';
52926
52927
52928var mk = moment.defineLocale('mk', {
52929 months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
52930 monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
52931 weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
52932 weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
52933 weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
52934 longDateFormat : {
52935 LT : 'H:mm',
52936 LTS : 'H:mm:ss',
52937 L : 'D.MM.YYYY',
52938 LL : 'D MMMM YYYY',
52939 LLL : 'D MMMM YYYY H:mm',
52940 LLLL : 'dddd, D MMMM YYYY H:mm'
52941 },
52942 calendar : {
52943 sameDay : '[Денес во] LT',
52944 nextDay : '[Утре во] LT',
52945 nextWeek : '[Во] dddd [во] LT',
52946 lastDay : '[Вчера во] LT',
52947 lastWeek : function () {
52948 switch (this.day()) {
52949 case 0:
52950 case 3:
52951 case 6:
52952 return '[Изминатата] dddd [во] LT';
52953 case 1:
52954 case 2:
52955 case 4:
52956 case 5:
52957 return '[Изминатиот] dddd [во] LT';
52958 }
52959 },
52960 sameElse : 'L'
52961 },
52962 relativeTime : {
52963 future : 'после %s',
52964 past : 'пред %s',
52965 s : 'неколку секунди',
52966 ss : '%d секунди',
52967 m : 'минута',
52968 mm : '%d минути',
52969 h : 'час',
52970 hh : '%d часа',
52971 d : 'ден',
52972 dd : '%d дена',
52973 M : 'месец',
52974 MM : '%d месеци',
52975 y : 'година',
52976 yy : '%d години'
52977 },
52978 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
52979 ordinal : function (number) {
52980 var lastDigit = number % 10,
52981 last2Digits = number % 100;
52982 if (number === 0) {
52983 return number + '-ев';
52984 } else if (last2Digits === 0) {
52985 return number + '-ен';
52986 } else if (last2Digits > 10 && last2Digits < 20) {
52987 return number + '-ти';
52988 } else if (lastDigit === 1) {
52989 return number + '-ви';
52990 } else if (lastDigit === 2) {
52991 return number + '-ри';
52992 } else if (lastDigit === 7 || lastDigit === 8) {
52993 return number + '-ми';
52994 } else {
52995 return number + '-ти';
52996 }
52997 },
52998 week : {
52999 dow : 1, // Monday is the first day of the week.
53000 doy : 7 // The week that contains Jan 1st is the first week of the year.
53001 }
53002});
53003
53004return mk;
53005
53006})));
53007
53008
53009/***/ }),
53010
53011/***/ "./node_modules/moment/locale/ml.js":
53012/*!******************************************!*\
53013 !*** ./node_modules/moment/locale/ml.js ***!
53014 \******************************************/
53015/*! no static exports found */
53016/***/ (function(module, exports, __webpack_require__) {
53017
53018//! moment.js locale configuration
53019
53020;(function (global, factory) {
53021 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53022 undefined
53023}(this, (function (moment) { 'use strict';
53024
53025
53026var ml = moment.defineLocale('ml', {
53027 months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
53028 monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
53029 monthsParseExact : true,
53030 weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
53031 weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
53032 weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
53033 longDateFormat : {
53034 LT : 'A h:mm -നു',
53035 LTS : 'A h:mm:ss -നു',
53036 L : 'DD/MM/YYYY',
53037 LL : 'D MMMM YYYY',
53038 LLL : 'D MMMM YYYY, A h:mm -നു',
53039 LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
53040 },
53041 calendar : {
53042 sameDay : '[ഇന്ന്] LT',
53043 nextDay : '[നാളെ] LT',
53044 nextWeek : 'dddd, LT',
53045 lastDay : '[ഇന്നലെ] LT',
53046 lastWeek : '[കഴിഞ്ഞ] dddd, LT',
53047 sameElse : 'L'
53048 },
53049 relativeTime : {
53050 future : '%s കഴിഞ്ഞ്',
53051 past : '%s മുൻപ്',
53052 s : 'അൽപ നിമിഷങ്ങൾ',
53053 ss : '%d സെക്കൻഡ്',
53054 m : 'ഒരു മിനിറ്റ്',
53055 mm : '%d മിനിറ്റ്',
53056 h : 'ഒരു മണിക്കൂർ',
53057 hh : '%d മണിക്കൂർ',
53058 d : 'ഒരു ദിവസം',
53059 dd : '%d ദിവസം',
53060 M : 'ഒരു മാസം',
53061 MM : '%d മാസം',
53062 y : 'ഒരു വർഷം',
53063 yy : '%d വർഷം'
53064 },
53065 meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
53066 meridiemHour : function (hour, meridiem) {
53067 if (hour === 12) {
53068 hour = 0;
53069 }
53070 if ((meridiem === 'രാത്രി' && hour >= 4) ||
53071 meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
53072 meridiem === 'വൈകുന്നേരം') {
53073 return hour + 12;
53074 } else {
53075 return hour;
53076 }
53077 },
53078 meridiem : function (hour, minute, isLower) {
53079 if (hour < 4) {
53080 return 'രാത്രി';
53081 } else if (hour < 12) {
53082 return 'രാവിലെ';
53083 } else if (hour < 17) {
53084 return 'ഉച്ച കഴിഞ്ഞ്';
53085 } else if (hour < 20) {
53086 return 'വൈകുന്നേരം';
53087 } else {
53088 return 'രാത്രി';
53089 }
53090 }
53091});
53092
53093return ml;
53094
53095})));
53096
53097
53098/***/ }),
53099
53100/***/ "./node_modules/moment/locale/mr.js":
53101/*!******************************************!*\
53102 !*** ./node_modules/moment/locale/mr.js ***!
53103 \******************************************/
53104/*! no static exports found */
53105/***/ (function(module, exports, __webpack_require__) {
53106
53107//! moment.js locale configuration
53108
53109;(function (global, factory) {
53110 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53111 undefined
53112}(this, (function (moment) { 'use strict';
53113
53114
53115var symbolMap = {
53116 '1': '१',
53117 '2': '२',
53118 '3': '३',
53119 '4': '४',
53120 '5': '५',
53121 '6': '६',
53122 '7': '७',
53123 '8': '८',
53124 '9': '९',
53125 '0': '०'
53126},
53127numberMap = {
53128 '१': '1',
53129 '२': '2',
53130 '३': '3',
53131 '४': '4',
53132 '५': '5',
53133 '६': '6',
53134 '७': '7',
53135 '८': '8',
53136 '९': '9',
53137 '०': '0'
53138};
53139
53140function relativeTimeMr(number, withoutSuffix, string, isFuture)
53141{
53142 var output = '';
53143 if (withoutSuffix) {
53144 switch (string) {
53145 case 's': output = 'काही सेकंद'; break;
53146 case 'ss': output = '%d सेकंद'; break;
53147 case 'm': output = 'एक मिनिट'; break;
53148 case 'mm': output = '%d मिनिटे'; break;
53149 case 'h': output = 'एक तास'; break;
53150 case 'hh': output = '%d तास'; break;
53151 case 'd': output = 'एक दिवस'; break;
53152 case 'dd': output = '%d दिवस'; break;
53153 case 'M': output = 'एक महिना'; break;
53154 case 'MM': output = '%d महिने'; break;
53155 case 'y': output = 'एक वर्ष'; break;
53156 case 'yy': output = '%d वर्षे'; break;
53157 }
53158 }
53159 else {
53160 switch (string) {
53161 case 's': output = 'काही सेकंदां'; break;
53162 case 'ss': output = '%d सेकंदां'; break;
53163 case 'm': output = 'एका मिनिटा'; break;
53164 case 'mm': output = '%d मिनिटां'; break;
53165 case 'h': output = 'एका तासा'; break;
53166 case 'hh': output = '%d तासां'; break;
53167 case 'd': output = 'एका दिवसा'; break;
53168 case 'dd': output = '%d दिवसां'; break;
53169 case 'M': output = 'एका महिन्या'; break;
53170 case 'MM': output = '%d महिन्यां'; break;
53171 case 'y': output = 'एका वर्षा'; break;
53172 case 'yy': output = '%d वर्षां'; break;
53173 }
53174 }
53175 return output.replace(/%d/i, number);
53176}
53177
53178var mr = moment.defineLocale('mr', {
53179 months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
53180 monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
53181 monthsParseExact : true,
53182 weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
53183 weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
53184 weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
53185 longDateFormat : {
53186 LT : 'A h:mm वाजता',
53187 LTS : 'A h:mm:ss वाजता',
53188 L : 'DD/MM/YYYY',
53189 LL : 'D MMMM YYYY',
53190 LLL : 'D MMMM YYYY, A h:mm वाजता',
53191 LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
53192 },
53193 calendar : {
53194 sameDay : '[आज] LT',
53195 nextDay : '[उद्या] LT',
53196 nextWeek : 'dddd, LT',
53197 lastDay : '[काल] LT',
53198 lastWeek: '[मागील] dddd, LT',
53199 sameElse : 'L'
53200 },
53201 relativeTime : {
53202 future: '%sमध्ये',
53203 past: '%sपूर्वी',
53204 s: relativeTimeMr,
53205 ss: relativeTimeMr,
53206 m: relativeTimeMr,
53207 mm: relativeTimeMr,
53208 h: relativeTimeMr,
53209 hh: relativeTimeMr,
53210 d: relativeTimeMr,
53211 dd: relativeTimeMr,
53212 M: relativeTimeMr,
53213 MM: relativeTimeMr,
53214 y: relativeTimeMr,
53215 yy: relativeTimeMr
53216 },
53217 preparse: function (string) {
53218 return string.replace(/[१२३४५६७८९०]/g, function (match) {
53219 return numberMap[match];
53220 });
53221 },
53222 postformat: function (string) {
53223 return string.replace(/\d/g, function (match) {
53224 return symbolMap[match];
53225 });
53226 },
53227 meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
53228 meridiemHour : function (hour, meridiem) {
53229 if (hour === 12) {
53230 hour = 0;
53231 }
53232 if (meridiem === 'रात्री') {
53233 return hour < 4 ? hour : hour + 12;
53234 } else if (meridiem === 'सकाळी') {
53235 return hour;
53236 } else if (meridiem === 'दुपारी') {
53237 return hour >= 10 ? hour : hour + 12;
53238 } else if (meridiem === 'सायंकाळी') {
53239 return hour + 12;
53240 }
53241 },
53242 meridiem: function (hour, minute, isLower) {
53243 if (hour < 4) {
53244 return 'रात्री';
53245 } else if (hour < 10) {
53246 return 'सकाळी';
53247 } else if (hour < 17) {
53248 return 'दुपारी';
53249 } else if (hour < 20) {
53250 return 'सायंकाळी';
53251 } else {
53252 return 'रात्री';
53253 }
53254 },
53255 week : {
53256 dow : 0, // Sunday is the first day of the week.
53257 doy : 6 // The week that contains Jan 1st is the first week of the year.
53258 }
53259});
53260
53261return mr;
53262
53263})));
53264
53265
53266/***/ }),
53267
53268/***/ "./node_modules/moment/locale/ms-my.js":
53269/*!*********************************************!*\
53270 !*** ./node_modules/moment/locale/ms-my.js ***!
53271 \*********************************************/
53272/*! no static exports found */
53273/***/ (function(module, exports, __webpack_require__) {
53274
53275//! moment.js locale configuration
53276
53277;(function (global, factory) {
53278 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53279 undefined
53280}(this, (function (moment) { 'use strict';
53281
53282
53283var msMy = moment.defineLocale('ms-my', {
53284 months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
53285 monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
53286 weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
53287 weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
53288 weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
53289 longDateFormat : {
53290 LT : 'HH.mm',
53291 LTS : 'HH.mm.ss',
53292 L : 'DD/MM/YYYY',
53293 LL : 'D MMMM YYYY',
53294 LLL : 'D MMMM YYYY [pukul] HH.mm',
53295 LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
53296 },
53297 meridiemParse: /pagi|tengahari|petang|malam/,
53298 meridiemHour: function (hour, meridiem) {
53299 if (hour === 12) {
53300 hour = 0;
53301 }
53302 if (meridiem === 'pagi') {
53303 return hour;
53304 } else if (meridiem === 'tengahari') {
53305 return hour >= 11 ? hour : hour + 12;
53306 } else if (meridiem === 'petang' || meridiem === 'malam') {
53307 return hour + 12;
53308 }
53309 },
53310 meridiem : function (hours, minutes, isLower) {
53311 if (hours < 11) {
53312 return 'pagi';
53313 } else if (hours < 15) {
53314 return 'tengahari';
53315 } else if (hours < 19) {
53316 return 'petang';
53317 } else {
53318 return 'malam';
53319 }
53320 },
53321 calendar : {
53322 sameDay : '[Hari ini pukul] LT',
53323 nextDay : '[Esok pukul] LT',
53324 nextWeek : 'dddd [pukul] LT',
53325 lastDay : '[Kelmarin pukul] LT',
53326 lastWeek : 'dddd [lepas pukul] LT',
53327 sameElse : 'L'
53328 },
53329 relativeTime : {
53330 future : 'dalam %s',
53331 past : '%s yang lepas',
53332 s : 'beberapa saat',
53333 ss : '%d saat',
53334 m : 'seminit',
53335 mm : '%d minit',
53336 h : 'sejam',
53337 hh : '%d jam',
53338 d : 'sehari',
53339 dd : '%d hari',
53340 M : 'sebulan',
53341 MM : '%d bulan',
53342 y : 'setahun',
53343 yy : '%d tahun'
53344 },
53345 week : {
53346 dow : 1, // Monday is the first day of the week.
53347 doy : 7 // The week that contains Jan 1st is the first week of the year.
53348 }
53349});
53350
53351return msMy;
53352
53353})));
53354
53355
53356/***/ }),
53357
53358/***/ "./node_modules/moment/locale/ms.js":
53359/*!******************************************!*\
53360 !*** ./node_modules/moment/locale/ms.js ***!
53361 \******************************************/
53362/*! no static exports found */
53363/***/ (function(module, exports, __webpack_require__) {
53364
53365//! moment.js locale configuration
53366
53367;(function (global, factory) {
53368 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53369 undefined
53370}(this, (function (moment) { 'use strict';
53371
53372
53373var ms = moment.defineLocale('ms', {
53374 months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
53375 monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
53376 weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
53377 weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
53378 weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
53379 longDateFormat : {
53380 LT : 'HH.mm',
53381 LTS : 'HH.mm.ss',
53382 L : 'DD/MM/YYYY',
53383 LL : 'D MMMM YYYY',
53384 LLL : 'D MMMM YYYY [pukul] HH.mm',
53385 LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
53386 },
53387 meridiemParse: /pagi|tengahari|petang|malam/,
53388 meridiemHour: function (hour, meridiem) {
53389 if (hour === 12) {
53390 hour = 0;
53391 }
53392 if (meridiem === 'pagi') {
53393 return hour;
53394 } else if (meridiem === 'tengahari') {
53395 return hour >= 11 ? hour : hour + 12;
53396 } else if (meridiem === 'petang' || meridiem === 'malam') {
53397 return hour + 12;
53398 }
53399 },
53400 meridiem : function (hours, minutes, isLower) {
53401 if (hours < 11) {
53402 return 'pagi';
53403 } else if (hours < 15) {
53404 return 'tengahari';
53405 } else if (hours < 19) {
53406 return 'petang';
53407 } else {
53408 return 'malam';
53409 }
53410 },
53411 calendar : {
53412 sameDay : '[Hari ini pukul] LT',
53413 nextDay : '[Esok pukul] LT',
53414 nextWeek : 'dddd [pukul] LT',
53415 lastDay : '[Kelmarin pukul] LT',
53416 lastWeek : 'dddd [lepas pukul] LT',
53417 sameElse : 'L'
53418 },
53419 relativeTime : {
53420 future : 'dalam %s',
53421 past : '%s yang lepas',
53422 s : 'beberapa saat',
53423 ss : '%d saat',
53424 m : 'seminit',
53425 mm : '%d minit',
53426 h : 'sejam',
53427 hh : '%d jam',
53428 d : 'sehari',
53429 dd : '%d hari',
53430 M : 'sebulan',
53431 MM : '%d bulan',
53432 y : 'setahun',
53433 yy : '%d tahun'
53434 },
53435 week : {
53436 dow : 1, // Monday is the first day of the week.
53437 doy : 7 // The week that contains Jan 1st is the first week of the year.
53438 }
53439});
53440
53441return ms;
53442
53443})));
53444
53445
53446/***/ }),
53447
53448/***/ "./node_modules/moment/locale/mt.js":
53449/*!******************************************!*\
53450 !*** ./node_modules/moment/locale/mt.js ***!
53451 \******************************************/
53452/*! no static exports found */
53453/***/ (function(module, exports, __webpack_require__) {
53454
53455//! moment.js locale configuration
53456
53457;(function (global, factory) {
53458 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53459 undefined
53460}(this, (function (moment) { 'use strict';
53461
53462
53463var mt = moment.defineLocale('mt', {
53464 months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),
53465 monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
53466 weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),
53467 weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
53468 weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
53469 longDateFormat : {
53470 LT : 'HH:mm',
53471 LTS : 'HH:mm:ss',
53472 L : 'DD/MM/YYYY',
53473 LL : 'D MMMM YYYY',
53474 LLL : 'D MMMM YYYY HH:mm',
53475 LLLL : 'dddd, D MMMM YYYY HH:mm'
53476 },
53477 calendar : {
53478 sameDay : '[Illum fil-]LT',
53479 nextDay : '[Għada fil-]LT',
53480 nextWeek : 'dddd [fil-]LT',
53481 lastDay : '[Il-bieraħ fil-]LT',
53482 lastWeek : 'dddd [li għadda] [fil-]LT',
53483 sameElse : 'L'
53484 },
53485 relativeTime : {
53486 future : 'f’ %s',
53487 past : '%s ilu',
53488 s : 'ftit sekondi',
53489 ss : '%d sekondi',
53490 m : 'minuta',
53491 mm : '%d minuti',
53492 h : 'siegħa',
53493 hh : '%d siegħat',
53494 d : 'ġurnata',
53495 dd : '%d ġranet',
53496 M : 'xahar',
53497 MM : '%d xhur',
53498 y : 'sena',
53499 yy : '%d sni'
53500 },
53501 dayOfMonthOrdinalParse : /\d{1,2}º/,
53502 ordinal: '%dº',
53503 week : {
53504 dow : 1, // Monday is the first day of the week.
53505 doy : 4 // The week that contains Jan 4th is the first week of the year.
53506 }
53507});
53508
53509return mt;
53510
53511})));
53512
53513
53514/***/ }),
53515
53516/***/ "./node_modules/moment/locale/my.js":
53517/*!******************************************!*\
53518 !*** ./node_modules/moment/locale/my.js ***!
53519 \******************************************/
53520/*! no static exports found */
53521/***/ (function(module, exports, __webpack_require__) {
53522
53523//! moment.js locale configuration
53524
53525;(function (global, factory) {
53526 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53527 undefined
53528}(this, (function (moment) { 'use strict';
53529
53530
53531var symbolMap = {
53532 '1': '၁',
53533 '2': '၂',
53534 '3': '၃',
53535 '4': '၄',
53536 '5': '၅',
53537 '6': '၆',
53538 '7': '၇',
53539 '8': '၈',
53540 '9': '၉',
53541 '0': '၀'
53542}, numberMap = {
53543 '၁': '1',
53544 '၂': '2',
53545 '၃': '3',
53546 '၄': '4',
53547 '၅': '5',
53548 '၆': '6',
53549 '၇': '7',
53550 '၈': '8',
53551 '၉': '9',
53552 '၀': '0'
53553};
53554
53555var my = moment.defineLocale('my', {
53556 months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
53557 monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
53558 weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
53559 weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
53560 weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
53561
53562 longDateFormat: {
53563 LT: 'HH:mm',
53564 LTS: 'HH:mm:ss',
53565 L: 'DD/MM/YYYY',
53566 LL: 'D MMMM YYYY',
53567 LLL: 'D MMMM YYYY HH:mm',
53568 LLLL: 'dddd D MMMM YYYY HH:mm'
53569 },
53570 calendar: {
53571 sameDay: '[ယနေ.] LT [မှာ]',
53572 nextDay: '[မနက်ဖြန်] LT [မှာ]',
53573 nextWeek: 'dddd LT [မှာ]',
53574 lastDay: '[မနေ.က] LT [မှာ]',
53575 lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
53576 sameElse: 'L'
53577 },
53578 relativeTime: {
53579 future: 'လာမည့် %s မှာ',
53580 past: 'လွန်ခဲ့သော %s က',
53581 s: 'စက္ကန်.အနည်းငယ်',
53582 ss : '%d စက္ကန့်',
53583 m: 'တစ်မိနစ်',
53584 mm: '%d မိနစ်',
53585 h: 'တစ်နာရီ',
53586 hh: '%d နာရီ',
53587 d: 'တစ်ရက်',
53588 dd: '%d ရက်',
53589 M: 'တစ်လ',
53590 MM: '%d လ',
53591 y: 'တစ်နှစ်',
53592 yy: '%d နှစ်'
53593 },
53594 preparse: function (string) {
53595 return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
53596 return numberMap[match];
53597 });
53598 },
53599 postformat: function (string) {
53600 return string.replace(/\d/g, function (match) {
53601 return symbolMap[match];
53602 });
53603 },
53604 week: {
53605 dow: 1, // Monday is the first day of the week.
53606 doy: 4 // The week that contains Jan 1st is the first week of the year.
53607 }
53608});
53609
53610return my;
53611
53612})));
53613
53614
53615/***/ }),
53616
53617/***/ "./node_modules/moment/locale/nb.js":
53618/*!******************************************!*\
53619 !*** ./node_modules/moment/locale/nb.js ***!
53620 \******************************************/
53621/*! no static exports found */
53622/***/ (function(module, exports, __webpack_require__) {
53623
53624//! moment.js locale configuration
53625
53626;(function (global, factory) {
53627 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53628 undefined
53629}(this, (function (moment) { 'use strict';
53630
53631
53632var nb = moment.defineLocale('nb', {
53633 months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
53634 monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
53635 monthsParseExact : true,
53636 weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
53637 weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
53638 weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
53639 weekdaysParseExact : true,
53640 longDateFormat : {
53641 LT : 'HH:mm',
53642 LTS : 'HH:mm:ss',
53643 L : 'DD.MM.YYYY',
53644 LL : 'D. MMMM YYYY',
53645 LLL : 'D. MMMM YYYY [kl.] HH:mm',
53646 LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
53647 },
53648 calendar : {
53649 sameDay: '[i dag kl.] LT',
53650 nextDay: '[i morgen kl.] LT',
53651 nextWeek: 'dddd [kl.] LT',
53652 lastDay: '[i går kl.] LT',
53653 lastWeek: '[forrige] dddd [kl.] LT',
53654 sameElse: 'L'
53655 },
53656 relativeTime : {
53657 future : 'om %s',
53658 past : '%s siden',
53659 s : 'noen sekunder',
53660 ss : '%d sekunder',
53661 m : 'ett minutt',
53662 mm : '%d minutter',
53663 h : 'en time',
53664 hh : '%d timer',
53665 d : 'en dag',
53666 dd : '%d dager',
53667 M : 'en måned',
53668 MM : '%d måneder',
53669 y : 'ett år',
53670 yy : '%d år'
53671 },
53672 dayOfMonthOrdinalParse: /\d{1,2}\./,
53673 ordinal : '%d.',
53674 week : {
53675 dow : 1, // Monday is the first day of the week.
53676 doy : 4 // The week that contains Jan 4th is the first week of the year.
53677 }
53678});
53679
53680return nb;
53681
53682})));
53683
53684
53685/***/ }),
53686
53687/***/ "./node_modules/moment/locale/ne.js":
53688/*!******************************************!*\
53689 !*** ./node_modules/moment/locale/ne.js ***!
53690 \******************************************/
53691/*! no static exports found */
53692/***/ (function(module, exports, __webpack_require__) {
53693
53694//! moment.js locale configuration
53695
53696;(function (global, factory) {
53697 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53698 undefined
53699}(this, (function (moment) { 'use strict';
53700
53701
53702var symbolMap = {
53703 '1': '१',
53704 '2': '२',
53705 '3': '३',
53706 '4': '४',
53707 '5': '५',
53708 '6': '६',
53709 '7': '७',
53710 '8': '८',
53711 '9': '९',
53712 '0': '०'
53713},
53714numberMap = {
53715 '१': '1',
53716 '२': '2',
53717 '३': '3',
53718 '४': '4',
53719 '५': '5',
53720 '६': '6',
53721 '७': '7',
53722 '८': '8',
53723 '९': '9',
53724 '०': '0'
53725};
53726
53727var ne = moment.defineLocale('ne', {
53728 months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
53729 monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
53730 monthsParseExact : true,
53731 weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
53732 weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
53733 weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
53734 weekdaysParseExact : true,
53735 longDateFormat : {
53736 LT : 'Aको h:mm बजे',
53737 LTS : 'Aको h:mm:ss बजे',
53738 L : 'DD/MM/YYYY',
53739 LL : 'D MMMM YYYY',
53740 LLL : 'D MMMM YYYY, Aको h:mm बजे',
53741 LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
53742 },
53743 preparse: function (string) {
53744 return string.replace(/[१२३४५६७८९०]/g, function (match) {
53745 return numberMap[match];
53746 });
53747 },
53748 postformat: function (string) {
53749 return string.replace(/\d/g, function (match) {
53750 return symbolMap[match];
53751 });
53752 },
53753 meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
53754 meridiemHour : function (hour, meridiem) {
53755 if (hour === 12) {
53756 hour = 0;
53757 }
53758 if (meridiem === 'राति') {
53759 return hour < 4 ? hour : hour + 12;
53760 } else if (meridiem === 'बिहान') {
53761 return hour;
53762 } else if (meridiem === 'दिउँसो') {
53763 return hour >= 10 ? hour : hour + 12;
53764 } else if (meridiem === 'साँझ') {
53765 return hour + 12;
53766 }
53767 },
53768 meridiem : function (hour, minute, isLower) {
53769 if (hour < 3) {
53770 return 'राति';
53771 } else if (hour < 12) {
53772 return 'बिहान';
53773 } else if (hour < 16) {
53774 return 'दिउँसो';
53775 } else if (hour < 20) {
53776 return 'साँझ';
53777 } else {
53778 return 'राति';
53779 }
53780 },
53781 calendar : {
53782 sameDay : '[आज] LT',
53783 nextDay : '[भोलि] LT',
53784 nextWeek : '[आउँदो] dddd[,] LT',
53785 lastDay : '[हिजो] LT',
53786 lastWeek : '[गएको] dddd[,] LT',
53787 sameElse : 'L'
53788 },
53789 relativeTime : {
53790 future : '%sमा',
53791 past : '%s अगाडि',
53792 s : 'केही क्षण',
53793 ss : '%d सेकेण्ड',
53794 m : 'एक मिनेट',
53795 mm : '%d मिनेट',
53796 h : 'एक घण्टा',
53797 hh : '%d घण्टा',
53798 d : 'एक दिन',
53799 dd : '%d दिन',
53800 M : 'एक महिना',
53801 MM : '%d महिना',
53802 y : 'एक बर्ष',
53803 yy : '%d बर्ष'
53804 },
53805 week : {
53806 dow : 0, // Sunday is the first day of the week.
53807 doy : 6 // The week that contains Jan 1st is the first week of the year.
53808 }
53809});
53810
53811return ne;
53812
53813})));
53814
53815
53816/***/ }),
53817
53818/***/ "./node_modules/moment/locale/nl-be.js":
53819/*!*********************************************!*\
53820 !*** ./node_modules/moment/locale/nl-be.js ***!
53821 \*********************************************/
53822/*! no static exports found */
53823/***/ (function(module, exports, __webpack_require__) {
53824
53825//! moment.js locale configuration
53826
53827;(function (global, factory) {
53828 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53829 undefined
53830}(this, (function (moment) { 'use strict';
53831
53832
53833var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
53834 monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
53835
53836var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
53837var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
53838
53839var nlBe = moment.defineLocale('nl-be', {
53840 months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
53841 monthsShort : function (m, format) {
53842 if (!m) {
53843 return monthsShortWithDots;
53844 } else if (/-MMM-/.test(format)) {
53845 return monthsShortWithoutDots[m.month()];
53846 } else {
53847 return monthsShortWithDots[m.month()];
53848 }
53849 },
53850
53851 monthsRegex: monthsRegex,
53852 monthsShortRegex: monthsRegex,
53853 monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
53854 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
53855
53856 monthsParse : monthsParse,
53857 longMonthsParse : monthsParse,
53858 shortMonthsParse : monthsParse,
53859
53860 weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
53861 weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
53862 weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
53863 weekdaysParseExact : true,
53864 longDateFormat : {
53865 LT : 'HH:mm',
53866 LTS : 'HH:mm:ss',
53867 L : 'DD/MM/YYYY',
53868 LL : 'D MMMM YYYY',
53869 LLL : 'D MMMM YYYY HH:mm',
53870 LLLL : 'dddd D MMMM YYYY HH:mm'
53871 },
53872 calendar : {
53873 sameDay: '[vandaag om] LT',
53874 nextDay: '[morgen om] LT',
53875 nextWeek: 'dddd [om] LT',
53876 lastDay: '[gisteren om] LT',
53877 lastWeek: '[afgelopen] dddd [om] LT',
53878 sameElse: 'L'
53879 },
53880 relativeTime : {
53881 future : 'over %s',
53882 past : '%s geleden',
53883 s : 'een paar seconden',
53884 ss : '%d seconden',
53885 m : 'één minuut',
53886 mm : '%d minuten',
53887 h : 'één uur',
53888 hh : '%d uur',
53889 d : 'één dag',
53890 dd : '%d dagen',
53891 M : 'één maand',
53892 MM : '%d maanden',
53893 y : 'één jaar',
53894 yy : '%d jaar'
53895 },
53896 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
53897 ordinal : function (number) {
53898 return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
53899 },
53900 week : {
53901 dow : 1, // Monday is the first day of the week.
53902 doy : 4 // The week that contains Jan 4th is the first week of the year.
53903 }
53904});
53905
53906return nlBe;
53907
53908})));
53909
53910
53911/***/ }),
53912
53913/***/ "./node_modules/moment/locale/nl.js":
53914/*!******************************************!*\
53915 !*** ./node_modules/moment/locale/nl.js ***!
53916 \******************************************/
53917/*! no static exports found */
53918/***/ (function(module, exports, __webpack_require__) {
53919
53920//! moment.js locale configuration
53921
53922;(function (global, factory) {
53923 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
53924 undefined
53925}(this, (function (moment) { 'use strict';
53926
53927
53928var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
53929 monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
53930
53931var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
53932var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
53933
53934var nl = moment.defineLocale('nl', {
53935 months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
53936 monthsShort : function (m, format) {
53937 if (!m) {
53938 return monthsShortWithDots;
53939 } else if (/-MMM-/.test(format)) {
53940 return monthsShortWithoutDots[m.month()];
53941 } else {
53942 return monthsShortWithDots[m.month()];
53943 }
53944 },
53945
53946 monthsRegex: monthsRegex,
53947 monthsShortRegex: monthsRegex,
53948 monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
53949 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
53950
53951 monthsParse : monthsParse,
53952 longMonthsParse : monthsParse,
53953 shortMonthsParse : monthsParse,
53954
53955 weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
53956 weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
53957 weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
53958 weekdaysParseExact : true,
53959 longDateFormat : {
53960 LT : 'HH:mm',
53961 LTS : 'HH:mm:ss',
53962 L : 'DD-MM-YYYY',
53963 LL : 'D MMMM YYYY',
53964 LLL : 'D MMMM YYYY HH:mm',
53965 LLLL : 'dddd D MMMM YYYY HH:mm'
53966 },
53967 calendar : {
53968 sameDay: '[vandaag om] LT',
53969 nextDay: '[morgen om] LT',
53970 nextWeek: 'dddd [om] LT',
53971 lastDay: '[gisteren om] LT',
53972 lastWeek: '[afgelopen] dddd [om] LT',
53973 sameElse: 'L'
53974 },
53975 relativeTime : {
53976 future : 'over %s',
53977 past : '%s geleden',
53978 s : 'een paar seconden',
53979 ss : '%d seconden',
53980 m : 'één minuut',
53981 mm : '%d minuten',
53982 h : 'één uur',
53983 hh : '%d uur',
53984 d : 'één dag',
53985 dd : '%d dagen',
53986 M : 'één maand',
53987 MM : '%d maanden',
53988 y : 'één jaar',
53989 yy : '%d jaar'
53990 },
53991 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
53992 ordinal : function (number) {
53993 return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
53994 },
53995 week : {
53996 dow : 1, // Monday is the first day of the week.
53997 doy : 4 // The week that contains Jan 4th is the first week of the year.
53998 }
53999});
54000
54001return nl;
54002
54003})));
54004
54005
54006/***/ }),
54007
54008/***/ "./node_modules/moment/locale/nn.js":
54009/*!******************************************!*\
54010 !*** ./node_modules/moment/locale/nn.js ***!
54011 \******************************************/
54012/*! no static exports found */
54013/***/ (function(module, exports, __webpack_require__) {
54014
54015//! moment.js locale configuration
54016
54017;(function (global, factory) {
54018 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54019 undefined
54020}(this, (function (moment) { 'use strict';
54021
54022
54023var nn = moment.defineLocale('nn', {
54024 months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
54025 monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
54026 weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
54027 weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
54028 weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
54029 longDateFormat : {
54030 LT : 'HH:mm',
54031 LTS : 'HH:mm:ss',
54032 L : 'DD.MM.YYYY',
54033 LL : 'D. MMMM YYYY',
54034 LLL : 'D. MMMM YYYY [kl.] H:mm',
54035 LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
54036 },
54037 calendar : {
54038 sameDay: '[I dag klokka] LT',
54039 nextDay: '[I morgon klokka] LT',
54040 nextWeek: 'dddd [klokka] LT',
54041 lastDay: '[I går klokka] LT',
54042 lastWeek: '[Føregåande] dddd [klokka] LT',
54043 sameElse: 'L'
54044 },
54045 relativeTime : {
54046 future : 'om %s',
54047 past : '%s sidan',
54048 s : 'nokre sekund',
54049 ss : '%d sekund',
54050 m : 'eit minutt',
54051 mm : '%d minutt',
54052 h : 'ein time',
54053 hh : '%d timar',
54054 d : 'ein dag',
54055 dd : '%d dagar',
54056 M : 'ein månad',
54057 MM : '%d månader',
54058 y : 'eit år',
54059 yy : '%d år'
54060 },
54061 dayOfMonthOrdinalParse: /\d{1,2}\./,
54062 ordinal : '%d.',
54063 week : {
54064 dow : 1, // Monday is the first day of the week.
54065 doy : 4 // The week that contains Jan 4th is the first week of the year.
54066 }
54067});
54068
54069return nn;
54070
54071})));
54072
54073
54074/***/ }),
54075
54076/***/ "./node_modules/moment/locale/pa-in.js":
54077/*!*********************************************!*\
54078 !*** ./node_modules/moment/locale/pa-in.js ***!
54079 \*********************************************/
54080/*! no static exports found */
54081/***/ (function(module, exports, __webpack_require__) {
54082
54083//! moment.js locale configuration
54084
54085;(function (global, factory) {
54086 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54087 undefined
54088}(this, (function (moment) { 'use strict';
54089
54090
54091var symbolMap = {
54092 '1': '੧',
54093 '2': '੨',
54094 '3': '੩',
54095 '4': '੪',
54096 '5': '੫',
54097 '6': '੬',
54098 '7': '੭',
54099 '8': '੮',
54100 '9': '੯',
54101 '0': '੦'
54102},
54103numberMap = {
54104 '੧': '1',
54105 '੨': '2',
54106 '੩': '3',
54107 '੪': '4',
54108 '੫': '5',
54109 '੬': '6',
54110 '੭': '7',
54111 '੮': '8',
54112 '੯': '9',
54113 '੦': '0'
54114};
54115
54116var paIn = moment.defineLocale('pa-in', {
54117 // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.
54118 months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
54119 monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
54120 weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),
54121 weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
54122 weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
54123 longDateFormat : {
54124 LT : 'A h:mm ਵਜੇ',
54125 LTS : 'A h:mm:ss ਵਜੇ',
54126 L : 'DD/MM/YYYY',
54127 LL : 'D MMMM YYYY',
54128 LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',
54129 LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'
54130 },
54131 calendar : {
54132 sameDay : '[ਅਜ] LT',
54133 nextDay : '[ਕਲ] LT',
54134 nextWeek : 'dddd, LT',
54135 lastDay : '[ਕਲ] LT',
54136 lastWeek : '[ਪਿਛਲੇ] dddd, LT',
54137 sameElse : 'L'
54138 },
54139 relativeTime : {
54140 future : '%s ਵਿੱਚ',
54141 past : '%s ਪਿਛਲੇ',
54142 s : 'ਕੁਝ ਸਕਿੰਟ',
54143 ss : '%d ਸਕਿੰਟ',
54144 m : 'ਇਕ ਮਿੰਟ',
54145 mm : '%d ਮਿੰਟ',
54146 h : 'ਇੱਕ ਘੰਟਾ',
54147 hh : '%d ਘੰਟੇ',
54148 d : 'ਇੱਕ ਦਿਨ',
54149 dd : '%d ਦਿਨ',
54150 M : 'ਇੱਕ ਮਹੀਨਾ',
54151 MM : '%d ਮਹੀਨੇ',
54152 y : 'ਇੱਕ ਸਾਲ',
54153 yy : '%d ਸਾਲ'
54154 },
54155 preparse: function (string) {
54156 return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
54157 return numberMap[match];
54158 });
54159 },
54160 postformat: function (string) {
54161 return string.replace(/\d/g, function (match) {
54162 return symbolMap[match];
54163 });
54164 },
54165 // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
54166 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
54167 meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
54168 meridiemHour : function (hour, meridiem) {
54169 if (hour === 12) {
54170 hour = 0;
54171 }
54172 if (meridiem === 'ਰਾਤ') {
54173 return hour < 4 ? hour : hour + 12;
54174 } else if (meridiem === 'ਸਵੇਰ') {
54175 return hour;
54176 } else if (meridiem === 'ਦੁਪਹਿਰ') {
54177 return hour >= 10 ? hour : hour + 12;
54178 } else if (meridiem === 'ਸ਼ਾਮ') {
54179 return hour + 12;
54180 }
54181 },
54182 meridiem : function (hour, minute, isLower) {
54183 if (hour < 4) {
54184 return 'ਰਾਤ';
54185 } else if (hour < 10) {
54186 return 'ਸਵੇਰ';
54187 } else if (hour < 17) {
54188 return 'ਦੁਪਹਿਰ';
54189 } else if (hour < 20) {
54190 return 'ਸ਼ਾਮ';
54191 } else {
54192 return 'ਰਾਤ';
54193 }
54194 },
54195 week : {
54196 dow : 0, // Sunday is the first day of the week.
54197 doy : 6 // The week that contains Jan 1st is the first week of the year.
54198 }
54199});
54200
54201return paIn;
54202
54203})));
54204
54205
54206/***/ }),
54207
54208/***/ "./node_modules/moment/locale/pl.js":
54209/*!******************************************!*\
54210 !*** ./node_modules/moment/locale/pl.js ***!
54211 \******************************************/
54212/*! no static exports found */
54213/***/ (function(module, exports, __webpack_require__) {
54214
54215//! moment.js locale configuration
54216
54217;(function (global, factory) {
54218 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54219 undefined
54220}(this, (function (moment) { 'use strict';
54221
54222
54223var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
54224 monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
54225function plural(n) {
54226 return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
54227}
54228function translate(number, withoutSuffix, key) {
54229 var result = number + ' ';
54230 switch (key) {
54231 case 'ss':
54232 return result + (plural(number) ? 'sekundy' : 'sekund');
54233 case 'm':
54234 return withoutSuffix ? 'minuta' : 'minutę';
54235 case 'mm':
54236 return result + (plural(number) ? 'minuty' : 'minut');
54237 case 'h':
54238 return withoutSuffix ? 'godzina' : 'godzinę';
54239 case 'hh':
54240 return result + (plural(number) ? 'godziny' : 'godzin');
54241 case 'MM':
54242 return result + (plural(number) ? 'miesiące' : 'miesięcy');
54243 case 'yy':
54244 return result + (plural(number) ? 'lata' : 'lat');
54245 }
54246}
54247
54248var pl = moment.defineLocale('pl', {
54249 months : function (momentToFormat, format) {
54250 if (!momentToFormat) {
54251 return monthsNominative;
54252 } else if (format === '') {
54253 // Hack: if format empty we know this is used to generate
54254 // RegExp by moment. Give then back both valid forms of months
54255 // in RegExp ready format.
54256 return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
54257 } else if (/D MMMM/.test(format)) {
54258 return monthsSubjective[momentToFormat.month()];
54259 } else {
54260 return monthsNominative[momentToFormat.month()];
54261 }
54262 },
54263 monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
54264 weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
54265 weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
54266 weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
54267 longDateFormat : {
54268 LT : 'HH:mm',
54269 LTS : 'HH:mm:ss',
54270 L : 'DD.MM.YYYY',
54271 LL : 'D MMMM YYYY',
54272 LLL : 'D MMMM YYYY HH:mm',
54273 LLLL : 'dddd, D MMMM YYYY HH:mm'
54274 },
54275 calendar : {
54276 sameDay: '[Dziś o] LT',
54277 nextDay: '[Jutro o] LT',
54278 nextWeek: function () {
54279 switch (this.day()) {
54280 case 0:
54281 return '[W niedzielę o] LT';
54282
54283 case 2:
54284 return '[We wtorek o] LT';
54285
54286 case 3:
54287 return '[W środę o] LT';
54288
54289 case 6:
54290 return '[W sobotę o] LT';
54291
54292 default:
54293 return '[W] dddd [o] LT';
54294 }
54295 },
54296 lastDay: '[Wczoraj o] LT',
54297 lastWeek: function () {
54298 switch (this.day()) {
54299 case 0:
54300 return '[W zeszłą niedzielę o] LT';
54301 case 3:
54302 return '[W zeszłą środę o] LT';
54303 case 6:
54304 return '[W zeszłą sobotę o] LT';
54305 default:
54306 return '[W zeszły] dddd [o] LT';
54307 }
54308 },
54309 sameElse: 'L'
54310 },
54311 relativeTime : {
54312 future : 'za %s',
54313 past : '%s temu',
54314 s : 'kilka sekund',
54315 ss : translate,
54316 m : translate,
54317 mm : translate,
54318 h : translate,
54319 hh : translate,
54320 d : '1 dzień',
54321 dd : '%d dni',
54322 M : 'miesiąc',
54323 MM : translate,
54324 y : 'rok',
54325 yy : translate
54326 },
54327 dayOfMonthOrdinalParse: /\d{1,2}\./,
54328 ordinal : '%d.',
54329 week : {
54330 dow : 1, // Monday is the first day of the week.
54331 doy : 4 // The week that contains Jan 4th is the first week of the year.
54332 }
54333});
54334
54335return pl;
54336
54337})));
54338
54339
54340/***/ }),
54341
54342/***/ "./node_modules/moment/locale/pt-br.js":
54343/*!*********************************************!*\
54344 !*** ./node_modules/moment/locale/pt-br.js ***!
54345 \*********************************************/
54346/*! no static exports found */
54347/***/ (function(module, exports, __webpack_require__) {
54348
54349//! moment.js locale configuration
54350
54351;(function (global, factory) {
54352 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54353 undefined
54354}(this, (function (moment) { 'use strict';
54355
54356
54357var ptBr = moment.defineLocale('pt-br', {
54358 months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
54359 monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
54360 weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
54361 weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
54362 weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
54363 weekdaysParseExact : true,
54364 longDateFormat : {
54365 LT : 'HH:mm',
54366 LTS : 'HH:mm:ss',
54367 L : 'DD/MM/YYYY',
54368 LL : 'D [de] MMMM [de] YYYY',
54369 LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
54370 LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
54371 },
54372 calendar : {
54373 sameDay: '[Hoje às] LT',
54374 nextDay: '[Amanhã às] LT',
54375 nextWeek: 'dddd [às] LT',
54376 lastDay: '[Ontem às] LT',
54377 lastWeek: function () {
54378 return (this.day() === 0 || this.day() === 6) ?
54379 '[Último] dddd [às] LT' : // Saturday + Sunday
54380 '[Última] dddd [às] LT'; // Monday - Friday
54381 },
54382 sameElse: 'L'
54383 },
54384 relativeTime : {
54385 future : 'em %s',
54386 past : 'há %s',
54387 s : 'poucos segundos',
54388 ss : '%d segundos',
54389 m : 'um minuto',
54390 mm : '%d minutos',
54391 h : 'uma hora',
54392 hh : '%d horas',
54393 d : 'um dia',
54394 dd : '%d dias',
54395 M : 'um mês',
54396 MM : '%d meses',
54397 y : 'um ano',
54398 yy : '%d anos'
54399 },
54400 dayOfMonthOrdinalParse: /\d{1,2}º/,
54401 ordinal : '%dº'
54402});
54403
54404return ptBr;
54405
54406})));
54407
54408
54409/***/ }),
54410
54411/***/ "./node_modules/moment/locale/pt.js":
54412/*!******************************************!*\
54413 !*** ./node_modules/moment/locale/pt.js ***!
54414 \******************************************/
54415/*! no static exports found */
54416/***/ (function(module, exports, __webpack_require__) {
54417
54418//! moment.js locale configuration
54419
54420;(function (global, factory) {
54421 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54422 undefined
54423}(this, (function (moment) { 'use strict';
54424
54425
54426var pt = moment.defineLocale('pt', {
54427 months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
54428 monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
54429 weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
54430 weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
54431 weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
54432 weekdaysParseExact : true,
54433 longDateFormat : {
54434 LT : 'HH:mm',
54435 LTS : 'HH:mm:ss',
54436 L : 'DD/MM/YYYY',
54437 LL : 'D [de] MMMM [de] YYYY',
54438 LLL : 'D [de] MMMM [de] YYYY HH:mm',
54439 LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
54440 },
54441 calendar : {
54442 sameDay: '[Hoje às] LT',
54443 nextDay: '[Amanhã às] LT',
54444 nextWeek: 'dddd [às] LT',
54445 lastDay: '[Ontem às] LT',
54446 lastWeek: function () {
54447 return (this.day() === 0 || this.day() === 6) ?
54448 '[Último] dddd [às] LT' : // Saturday + Sunday
54449 '[Última] dddd [às] LT'; // Monday - Friday
54450 },
54451 sameElse: 'L'
54452 },
54453 relativeTime : {
54454 future : 'em %s',
54455 past : 'há %s',
54456 s : 'segundos',
54457 ss : '%d segundos',
54458 m : 'um minuto',
54459 mm : '%d minutos',
54460 h : 'uma hora',
54461 hh : '%d horas',
54462 d : 'um dia',
54463 dd : '%d dias',
54464 M : 'um mês',
54465 MM : '%d meses',
54466 y : 'um ano',
54467 yy : '%d anos'
54468 },
54469 dayOfMonthOrdinalParse: /\d{1,2}º/,
54470 ordinal : '%dº',
54471 week : {
54472 dow : 1, // Monday is the first day of the week.
54473 doy : 4 // The week that contains Jan 4th is the first week of the year.
54474 }
54475});
54476
54477return pt;
54478
54479})));
54480
54481
54482/***/ }),
54483
54484/***/ "./node_modules/moment/locale/ro.js":
54485/*!******************************************!*\
54486 !*** ./node_modules/moment/locale/ro.js ***!
54487 \******************************************/
54488/*! no static exports found */
54489/***/ (function(module, exports, __webpack_require__) {
54490
54491//! moment.js locale configuration
54492
54493;(function (global, factory) {
54494 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54495 undefined
54496}(this, (function (moment) { 'use strict';
54497
54498
54499function relativeTimeWithPlural(number, withoutSuffix, key) {
54500 var format = {
54501 'ss': 'secunde',
54502 'mm': 'minute',
54503 'hh': 'ore',
54504 'dd': 'zile',
54505 'MM': 'luni',
54506 'yy': 'ani'
54507 },
54508 separator = ' ';
54509 if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
54510 separator = ' de ';
54511 }
54512 return number + separator + format[key];
54513}
54514
54515var ro = moment.defineLocale('ro', {
54516 months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
54517 monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
54518 monthsParseExact: true,
54519 weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
54520 weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
54521 weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
54522 longDateFormat : {
54523 LT : 'H:mm',
54524 LTS : 'H:mm:ss',
54525 L : 'DD.MM.YYYY',
54526 LL : 'D MMMM YYYY',
54527 LLL : 'D MMMM YYYY H:mm',
54528 LLLL : 'dddd, D MMMM YYYY H:mm'
54529 },
54530 calendar : {
54531 sameDay: '[azi la] LT',
54532 nextDay: '[mâine la] LT',
54533 nextWeek: 'dddd [la] LT',
54534 lastDay: '[ieri la] LT',
54535 lastWeek: '[fosta] dddd [la] LT',
54536 sameElse: 'L'
54537 },
54538 relativeTime : {
54539 future : 'peste %s',
54540 past : '%s în urmă',
54541 s : 'câteva secunde',
54542 ss : relativeTimeWithPlural,
54543 m : 'un minut',
54544 mm : relativeTimeWithPlural,
54545 h : 'o oră',
54546 hh : relativeTimeWithPlural,
54547 d : 'o zi',
54548 dd : relativeTimeWithPlural,
54549 M : 'o lună',
54550 MM : relativeTimeWithPlural,
54551 y : 'un an',
54552 yy : relativeTimeWithPlural
54553 },
54554 week : {
54555 dow : 1, // Monday is the first day of the week.
54556 doy : 7 // The week that contains Jan 1st is the first week of the year.
54557 }
54558});
54559
54560return ro;
54561
54562})));
54563
54564
54565/***/ }),
54566
54567/***/ "./node_modules/moment/locale/ru.js":
54568/*!******************************************!*\
54569 !*** ./node_modules/moment/locale/ru.js ***!
54570 \******************************************/
54571/*! no static exports found */
54572/***/ (function(module, exports, __webpack_require__) {
54573
54574//! moment.js locale configuration
54575
54576;(function (global, factory) {
54577 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54578 undefined
54579}(this, (function (moment) { 'use strict';
54580
54581
54582function plural(word, num) {
54583 var forms = word.split('_');
54584 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
54585}
54586function relativeTimeWithPlural(number, withoutSuffix, key) {
54587 var format = {
54588 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
54589 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
54590 'hh': 'час_часа_часов',
54591 'dd': 'день_дня_дней',
54592 'MM': 'месяц_месяца_месяцев',
54593 'yy': 'год_года_лет'
54594 };
54595 if (key === 'm') {
54596 return withoutSuffix ? 'минута' : 'минуту';
54597 }
54598 else {
54599 return number + ' ' + plural(format[key], +number);
54600 }
54601}
54602var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
54603
54604// http://new.gramota.ru/spravka/rules/139-prop : § 103
54605// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
54606// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
54607var ru = moment.defineLocale('ru', {
54608 months : {
54609 format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
54610 standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
54611 },
54612 monthsShort : {
54613 // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
54614 format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
54615 standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
54616 },
54617 weekdays : {
54618 standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
54619 format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),
54620 isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
54621 },
54622 weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
54623 weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
54624 monthsParse : monthsParse,
54625 longMonthsParse : monthsParse,
54626 shortMonthsParse : monthsParse,
54627
54628 // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
54629 monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
54630
54631 // копия предыдущего
54632 monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
54633
54634 // полные названия с падежами
54635 monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
54636
54637 // Выражение, которое соотвествует только сокращённым формам
54638 monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
54639 longDateFormat : {
54640 LT : 'H:mm',
54641 LTS : 'H:mm:ss',
54642 L : 'DD.MM.YYYY',
54643 LL : 'D MMMM YYYY г.',
54644 LLL : 'D MMMM YYYY г., H:mm',
54645 LLLL : 'dddd, D MMMM YYYY г., H:mm'
54646 },
54647 calendar : {
54648 sameDay: '[Сегодня в] LT',
54649 nextDay: '[Завтра в] LT',
54650 lastDay: '[Вчера в] LT',
54651 nextWeek: function (now) {
54652 if (now.week() !== this.week()) {
54653 switch (this.day()) {
54654 case 0:
54655 return '[В следующее] dddd [в] LT';
54656 case 1:
54657 case 2:
54658 case 4:
54659 return '[В следующий] dddd [в] LT';
54660 case 3:
54661 case 5:
54662 case 6:
54663 return '[В следующую] dddd [в] LT';
54664 }
54665 } else {
54666 if (this.day() === 2) {
54667 return '[Во] dddd [в] LT';
54668 } else {
54669 return '[В] dddd [в] LT';
54670 }
54671 }
54672 },
54673 lastWeek: function (now) {
54674 if (now.week() !== this.week()) {
54675 switch (this.day()) {
54676 case 0:
54677 return '[В прошлое] dddd [в] LT';
54678 case 1:
54679 case 2:
54680 case 4:
54681 return '[В прошлый] dddd [в] LT';
54682 case 3:
54683 case 5:
54684 case 6:
54685 return '[В прошлую] dddd [в] LT';
54686 }
54687 } else {
54688 if (this.day() === 2) {
54689 return '[Во] dddd [в] LT';
54690 } else {
54691 return '[В] dddd [в] LT';
54692 }
54693 }
54694 },
54695 sameElse: 'L'
54696 },
54697 relativeTime : {
54698 future : 'через %s',
54699 past : '%s назад',
54700 s : 'несколько секунд',
54701 ss : relativeTimeWithPlural,
54702 m : relativeTimeWithPlural,
54703 mm : relativeTimeWithPlural,
54704 h : 'час',
54705 hh : relativeTimeWithPlural,
54706 d : 'день',
54707 dd : relativeTimeWithPlural,
54708 M : 'месяц',
54709 MM : relativeTimeWithPlural,
54710 y : 'год',
54711 yy : relativeTimeWithPlural
54712 },
54713 meridiemParse: /ночи|утра|дня|вечера/i,
54714 isPM : function (input) {
54715 return /^(дня|вечера)$/.test(input);
54716 },
54717 meridiem : function (hour, minute, isLower) {
54718 if (hour < 4) {
54719 return 'ночи';
54720 } else if (hour < 12) {
54721 return 'утра';
54722 } else if (hour < 17) {
54723 return 'дня';
54724 } else {
54725 return 'вечера';
54726 }
54727 },
54728 dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
54729 ordinal: function (number, period) {
54730 switch (period) {
54731 case 'M':
54732 case 'd':
54733 case 'DDD':
54734 return number + '-й';
54735 case 'D':
54736 return number + '-го';
54737 case 'w':
54738 case 'W':
54739 return number + '-я';
54740 default:
54741 return number;
54742 }
54743 },
54744 week : {
54745 dow : 1, // Monday is the first day of the week.
54746 doy : 4 // The week that contains Jan 4th is the first week of the year.
54747 }
54748});
54749
54750return ru;
54751
54752})));
54753
54754
54755/***/ }),
54756
54757/***/ "./node_modules/moment/locale/sd.js":
54758/*!******************************************!*\
54759 !*** ./node_modules/moment/locale/sd.js ***!
54760 \******************************************/
54761/*! no static exports found */
54762/***/ (function(module, exports, __webpack_require__) {
54763
54764//! moment.js locale configuration
54765
54766;(function (global, factory) {
54767 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54768 undefined
54769}(this, (function (moment) { 'use strict';
54770
54771
54772var months = [
54773 'جنوري',
54774 'فيبروري',
54775 'مارچ',
54776 'اپريل',
54777 'مئي',
54778 'جون',
54779 'جولاءِ',
54780 'آگسٽ',
54781 'سيپٽمبر',
54782 'آڪٽوبر',
54783 'نومبر',
54784 'ڊسمبر'
54785];
54786var days = [
54787 'آچر',
54788 'سومر',
54789 'اڱارو',
54790 'اربع',
54791 'خميس',
54792 'جمع',
54793 'ڇنڇر'
54794];
54795
54796var sd = moment.defineLocale('sd', {
54797 months : months,
54798 monthsShort : months,
54799 weekdays : days,
54800 weekdaysShort : days,
54801 weekdaysMin : days,
54802 longDateFormat : {
54803 LT : 'HH:mm',
54804 LTS : 'HH:mm:ss',
54805 L : 'DD/MM/YYYY',
54806 LL : 'D MMMM YYYY',
54807 LLL : 'D MMMM YYYY HH:mm',
54808 LLLL : 'dddd، D MMMM YYYY HH:mm'
54809 },
54810 meridiemParse: /صبح|شام/,
54811 isPM : function (input) {
54812 return 'شام' === input;
54813 },
54814 meridiem : function (hour, minute, isLower) {
54815 if (hour < 12) {
54816 return 'صبح';
54817 }
54818 return 'شام';
54819 },
54820 calendar : {
54821 sameDay : '[اڄ] LT',
54822 nextDay : '[سڀاڻي] LT',
54823 nextWeek : 'dddd [اڳين هفتي تي] LT',
54824 lastDay : '[ڪالهه] LT',
54825 lastWeek : '[گزريل هفتي] dddd [تي] LT',
54826 sameElse : 'L'
54827 },
54828 relativeTime : {
54829 future : '%s پوء',
54830 past : '%s اڳ',
54831 s : 'چند سيڪنڊ',
54832 ss : '%d سيڪنڊ',
54833 m : 'هڪ منٽ',
54834 mm : '%d منٽ',
54835 h : 'هڪ ڪلاڪ',
54836 hh : '%d ڪلاڪ',
54837 d : 'هڪ ڏينهن',
54838 dd : '%d ڏينهن',
54839 M : 'هڪ مهينو',
54840 MM : '%d مهينا',
54841 y : 'هڪ سال',
54842 yy : '%d سال'
54843 },
54844 preparse: function (string) {
54845 return string.replace(/،/g, ',');
54846 },
54847 postformat: function (string) {
54848 return string.replace(/,/g, '،');
54849 },
54850 week : {
54851 dow : 1, // Monday is the first day of the week.
54852 doy : 4 // The week that contains Jan 4th is the first week of the year.
54853 }
54854});
54855
54856return sd;
54857
54858})));
54859
54860
54861/***/ }),
54862
54863/***/ "./node_modules/moment/locale/se.js":
54864/*!******************************************!*\
54865 !*** ./node_modules/moment/locale/se.js ***!
54866 \******************************************/
54867/*! no static exports found */
54868/***/ (function(module, exports, __webpack_require__) {
54869
54870//! moment.js locale configuration
54871
54872;(function (global, factory) {
54873 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54874 undefined
54875}(this, (function (moment) { 'use strict';
54876
54877
54878var se = moment.defineLocale('se', {
54879 months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),
54880 monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
54881 weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
54882 weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
54883 weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
54884 longDateFormat : {
54885 LT : 'HH:mm',
54886 LTS : 'HH:mm:ss',
54887 L : 'DD.MM.YYYY',
54888 LL : 'MMMM D. [b.] YYYY',
54889 LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
54890 LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
54891 },
54892 calendar : {
54893 sameDay: '[otne ti] LT',
54894 nextDay: '[ihttin ti] LT',
54895 nextWeek: 'dddd [ti] LT',
54896 lastDay: '[ikte ti] LT',
54897 lastWeek: '[ovddit] dddd [ti] LT',
54898 sameElse: 'L'
54899 },
54900 relativeTime : {
54901 future : '%s geažes',
54902 past : 'maŋit %s',
54903 s : 'moadde sekunddat',
54904 ss: '%d sekunddat',
54905 m : 'okta minuhta',
54906 mm : '%d minuhtat',
54907 h : 'okta diimmu',
54908 hh : '%d diimmut',
54909 d : 'okta beaivi',
54910 dd : '%d beaivvit',
54911 M : 'okta mánnu',
54912 MM : '%d mánut',
54913 y : 'okta jahki',
54914 yy : '%d jagit'
54915 },
54916 dayOfMonthOrdinalParse: /\d{1,2}\./,
54917 ordinal : '%d.',
54918 week : {
54919 dow : 1, // Monday is the first day of the week.
54920 doy : 4 // The week that contains Jan 4th is the first week of the year.
54921 }
54922});
54923
54924return se;
54925
54926})));
54927
54928
54929/***/ }),
54930
54931/***/ "./node_modules/moment/locale/si.js":
54932/*!******************************************!*\
54933 !*** ./node_modules/moment/locale/si.js ***!
54934 \******************************************/
54935/*! no static exports found */
54936/***/ (function(module, exports, __webpack_require__) {
54937
54938//! moment.js locale configuration
54939
54940;(function (global, factory) {
54941 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
54942 undefined
54943}(this, (function (moment) { 'use strict';
54944
54945
54946/*jshint -W100*/
54947var si = moment.defineLocale('si', {
54948 months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
54949 monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
54950 weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
54951 weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
54952 weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
54953 weekdaysParseExact : true,
54954 longDateFormat : {
54955 LT : 'a h:mm',
54956 LTS : 'a h:mm:ss',
54957 L : 'YYYY/MM/DD',
54958 LL : 'YYYY MMMM D',
54959 LLL : 'YYYY MMMM D, a h:mm',
54960 LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
54961 },
54962 calendar : {
54963 sameDay : '[අද] LT[ට]',
54964 nextDay : '[හෙට] LT[ට]',
54965 nextWeek : 'dddd LT[ට]',
54966 lastDay : '[ඊයේ] LT[ට]',
54967 lastWeek : '[පසුගිය] dddd LT[ට]',
54968 sameElse : 'L'
54969 },
54970 relativeTime : {
54971 future : '%sකින්',
54972 past : '%sකට පෙර',
54973 s : 'තත්පර කිහිපය',
54974 ss : 'තත්පර %d',
54975 m : 'මිනිත්තුව',
54976 mm : 'මිනිත්තු %d',
54977 h : 'පැය',
54978 hh : 'පැය %d',
54979 d : 'දිනය',
54980 dd : 'දින %d',
54981 M : 'මාසය',
54982 MM : 'මාස %d',
54983 y : 'වසර',
54984 yy : 'වසර %d'
54985 },
54986 dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
54987 ordinal : function (number) {
54988 return number + ' වැනි';
54989 },
54990 meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
54991 isPM : function (input) {
54992 return input === 'ප.ව.' || input === 'පස් වරු';
54993 },
54994 meridiem : function (hours, minutes, isLower) {
54995 if (hours > 11) {
54996 return isLower ? 'ප.ව.' : 'පස් වරු';
54997 } else {
54998 return isLower ? 'පෙ.ව.' : 'පෙර වරු';
54999 }
55000 }
55001});
55002
55003return si;
55004
55005})));
55006
55007
55008/***/ }),
55009
55010/***/ "./node_modules/moment/locale/sk.js":
55011/*!******************************************!*\
55012 !*** ./node_modules/moment/locale/sk.js ***!
55013 \******************************************/
55014/*! no static exports found */
55015/***/ (function(module, exports, __webpack_require__) {
55016
55017//! moment.js locale configuration
55018
55019;(function (global, factory) {
55020 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55021 undefined
55022}(this, (function (moment) { 'use strict';
55023
55024
55025var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
55026 monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
55027function plural(n) {
55028 return (n > 1) && (n < 5);
55029}
55030function translate(number, withoutSuffix, key, isFuture) {
55031 var result = number + ' ';
55032 switch (key) {
55033 case 's': // a few seconds / in a few seconds / a few seconds ago
55034 return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
55035 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
55036 if (withoutSuffix || isFuture) {
55037 return result + (plural(number) ? 'sekundy' : 'sekúnd');
55038 } else {
55039 return result + 'sekundami';
55040 }
55041 break;
55042 case 'm': // a minute / in a minute / a minute ago
55043 return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
55044 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
55045 if (withoutSuffix || isFuture) {
55046 return result + (plural(number) ? 'minúty' : 'minút');
55047 } else {
55048 return result + 'minútami';
55049 }
55050 break;
55051 case 'h': // an hour / in an hour / an hour ago
55052 return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
55053 case 'hh': // 9 hours / in 9 hours / 9 hours ago
55054 if (withoutSuffix || isFuture) {
55055 return result + (plural(number) ? 'hodiny' : 'hodín');
55056 } else {
55057 return result + 'hodinami';
55058 }
55059 break;
55060 case 'd': // a day / in a day / a day ago
55061 return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
55062 case 'dd': // 9 days / in 9 days / 9 days ago
55063 if (withoutSuffix || isFuture) {
55064 return result + (plural(number) ? 'dni' : 'dní');
55065 } else {
55066 return result + 'dňami';
55067 }
55068 break;
55069 case 'M': // a month / in a month / a month ago
55070 return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
55071 case 'MM': // 9 months / in 9 months / 9 months ago
55072 if (withoutSuffix || isFuture) {
55073 return result + (plural(number) ? 'mesiace' : 'mesiacov');
55074 } else {
55075 return result + 'mesiacmi';
55076 }
55077 break;
55078 case 'y': // a year / in a year / a year ago
55079 return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
55080 case 'yy': // 9 years / in 9 years / 9 years ago
55081 if (withoutSuffix || isFuture) {
55082 return result + (plural(number) ? 'roky' : 'rokov');
55083 } else {
55084 return result + 'rokmi';
55085 }
55086 break;
55087 }
55088}
55089
55090var sk = moment.defineLocale('sk', {
55091 months : months,
55092 monthsShort : monthsShort,
55093 weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
55094 weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
55095 weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
55096 longDateFormat : {
55097 LT: 'H:mm',
55098 LTS : 'H:mm:ss',
55099 L : 'DD.MM.YYYY',
55100 LL : 'D. MMMM YYYY',
55101 LLL : 'D. MMMM YYYY H:mm',
55102 LLLL : 'dddd D. MMMM YYYY H:mm'
55103 },
55104 calendar : {
55105 sameDay: '[dnes o] LT',
55106 nextDay: '[zajtra o] LT',
55107 nextWeek: function () {
55108 switch (this.day()) {
55109 case 0:
55110 return '[v nedeľu o] LT';
55111 case 1:
55112 case 2:
55113 return '[v] dddd [o] LT';
55114 case 3:
55115 return '[v stredu o] LT';
55116 case 4:
55117 return '[vo štvrtok o] LT';
55118 case 5:
55119 return '[v piatok o] LT';
55120 case 6:
55121 return '[v sobotu o] LT';
55122 }
55123 },
55124 lastDay: '[včera o] LT',
55125 lastWeek: function () {
55126 switch (this.day()) {
55127 case 0:
55128 return '[minulú nedeľu o] LT';
55129 case 1:
55130 case 2:
55131 return '[minulý] dddd [o] LT';
55132 case 3:
55133 return '[minulú stredu o] LT';
55134 case 4:
55135 case 5:
55136 return '[minulý] dddd [o] LT';
55137 case 6:
55138 return '[minulú sobotu o] LT';
55139 }
55140 },
55141 sameElse: 'L'
55142 },
55143 relativeTime : {
55144 future : 'za %s',
55145 past : 'pred %s',
55146 s : translate,
55147 ss : translate,
55148 m : translate,
55149 mm : translate,
55150 h : translate,
55151 hh : translate,
55152 d : translate,
55153 dd : translate,
55154 M : translate,
55155 MM : translate,
55156 y : translate,
55157 yy : translate
55158 },
55159 dayOfMonthOrdinalParse: /\d{1,2}\./,
55160 ordinal : '%d.',
55161 week : {
55162 dow : 1, // Monday is the first day of the week.
55163 doy : 4 // The week that contains Jan 4th is the first week of the year.
55164 }
55165});
55166
55167return sk;
55168
55169})));
55170
55171
55172/***/ }),
55173
55174/***/ "./node_modules/moment/locale/sl.js":
55175/*!******************************************!*\
55176 !*** ./node_modules/moment/locale/sl.js ***!
55177 \******************************************/
55178/*! no static exports found */
55179/***/ (function(module, exports, __webpack_require__) {
55180
55181//! moment.js locale configuration
55182
55183;(function (global, factory) {
55184 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55185 undefined
55186}(this, (function (moment) { 'use strict';
55187
55188
55189function processRelativeTime(number, withoutSuffix, key, isFuture) {
55190 var result = number + ' ';
55191 switch (key) {
55192 case 's':
55193 return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
55194 case 'ss':
55195 if (number === 1) {
55196 result += withoutSuffix ? 'sekundo' : 'sekundi';
55197 } else if (number === 2) {
55198 result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
55199 } else if (number < 5) {
55200 result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
55201 } else {
55202 result += withoutSuffix || isFuture ? 'sekund' : 'sekund';
55203 }
55204 return result;
55205 case 'm':
55206 return withoutSuffix ? 'ena minuta' : 'eno minuto';
55207 case 'mm':
55208 if (number === 1) {
55209 result += withoutSuffix ? 'minuta' : 'minuto';
55210 } else if (number === 2) {
55211 result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
55212 } else if (number < 5) {
55213 result += withoutSuffix || isFuture ? 'minute' : 'minutami';
55214 } else {
55215 result += withoutSuffix || isFuture ? 'minut' : 'minutami';
55216 }
55217 return result;
55218 case 'h':
55219 return withoutSuffix ? 'ena ura' : 'eno uro';
55220 case 'hh':
55221 if (number === 1) {
55222 result += withoutSuffix ? 'ura' : 'uro';
55223 } else if (number === 2) {
55224 result += withoutSuffix || isFuture ? 'uri' : 'urama';
55225 } else if (number < 5) {
55226 result += withoutSuffix || isFuture ? 'ure' : 'urami';
55227 } else {
55228 result += withoutSuffix || isFuture ? 'ur' : 'urami';
55229 }
55230 return result;
55231 case 'd':
55232 return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
55233 case 'dd':
55234 if (number === 1) {
55235 result += withoutSuffix || isFuture ? 'dan' : 'dnem';
55236 } else if (number === 2) {
55237 result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
55238 } else {
55239 result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
55240 }
55241 return result;
55242 case 'M':
55243 return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
55244 case 'MM':
55245 if (number === 1) {
55246 result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
55247 } else if (number === 2) {
55248 result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
55249 } else if (number < 5) {
55250 result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
55251 } else {
55252 result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
55253 }
55254 return result;
55255 case 'y':
55256 return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
55257 case 'yy':
55258 if (number === 1) {
55259 result += withoutSuffix || isFuture ? 'leto' : 'letom';
55260 } else if (number === 2) {
55261 result += withoutSuffix || isFuture ? 'leti' : 'letoma';
55262 } else if (number < 5) {
55263 result += withoutSuffix || isFuture ? 'leta' : 'leti';
55264 } else {
55265 result += withoutSuffix || isFuture ? 'let' : 'leti';
55266 }
55267 return result;
55268 }
55269}
55270
55271var sl = moment.defineLocale('sl', {
55272 months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
55273 monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
55274 monthsParseExact: true,
55275 weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
55276 weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
55277 weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
55278 weekdaysParseExact : true,
55279 longDateFormat : {
55280 LT : 'H:mm',
55281 LTS : 'H:mm:ss',
55282 L : 'DD.MM.YYYY',
55283 LL : 'D. MMMM YYYY',
55284 LLL : 'D. MMMM YYYY H:mm',
55285 LLLL : 'dddd, D. MMMM YYYY H:mm'
55286 },
55287 calendar : {
55288 sameDay : '[danes ob] LT',
55289 nextDay : '[jutri ob] LT',
55290
55291 nextWeek : function () {
55292 switch (this.day()) {
55293 case 0:
55294 return '[v] [nedeljo] [ob] LT';
55295 case 3:
55296 return '[v] [sredo] [ob] LT';
55297 case 6:
55298 return '[v] [soboto] [ob] LT';
55299 case 1:
55300 case 2:
55301 case 4:
55302 case 5:
55303 return '[v] dddd [ob] LT';
55304 }
55305 },
55306 lastDay : '[včeraj ob] LT',
55307 lastWeek : function () {
55308 switch (this.day()) {
55309 case 0:
55310 return '[prejšnjo] [nedeljo] [ob] LT';
55311 case 3:
55312 return '[prejšnjo] [sredo] [ob] LT';
55313 case 6:
55314 return '[prejšnjo] [soboto] [ob] LT';
55315 case 1:
55316 case 2:
55317 case 4:
55318 case 5:
55319 return '[prejšnji] dddd [ob] LT';
55320 }
55321 },
55322 sameElse : 'L'
55323 },
55324 relativeTime : {
55325 future : 'čez %s',
55326 past : 'pred %s',
55327 s : processRelativeTime,
55328 ss : processRelativeTime,
55329 m : processRelativeTime,
55330 mm : processRelativeTime,
55331 h : processRelativeTime,
55332 hh : processRelativeTime,
55333 d : processRelativeTime,
55334 dd : processRelativeTime,
55335 M : processRelativeTime,
55336 MM : processRelativeTime,
55337 y : processRelativeTime,
55338 yy : processRelativeTime
55339 },
55340 dayOfMonthOrdinalParse: /\d{1,2}\./,
55341 ordinal : '%d.',
55342 week : {
55343 dow : 1, // Monday is the first day of the week.
55344 doy : 7 // The week that contains Jan 1st is the first week of the year.
55345 }
55346});
55347
55348return sl;
55349
55350})));
55351
55352
55353/***/ }),
55354
55355/***/ "./node_modules/moment/locale/sq.js":
55356/*!******************************************!*\
55357 !*** ./node_modules/moment/locale/sq.js ***!
55358 \******************************************/
55359/*! no static exports found */
55360/***/ (function(module, exports, __webpack_require__) {
55361
55362//! moment.js locale configuration
55363
55364;(function (global, factory) {
55365 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55366 undefined
55367}(this, (function (moment) { 'use strict';
55368
55369
55370var sq = moment.defineLocale('sq', {
55371 months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
55372 monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
55373 weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
55374 weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
55375 weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
55376 weekdaysParseExact : true,
55377 meridiemParse: /PD|MD/,
55378 isPM: function (input) {
55379 return input.charAt(0) === 'M';
55380 },
55381 meridiem : function (hours, minutes, isLower) {
55382 return hours < 12 ? 'PD' : 'MD';
55383 },
55384 longDateFormat : {
55385 LT : 'HH:mm',
55386 LTS : 'HH:mm:ss',
55387 L : 'DD/MM/YYYY',
55388 LL : 'D MMMM YYYY',
55389 LLL : 'D MMMM YYYY HH:mm',
55390 LLLL : 'dddd, D MMMM YYYY HH:mm'
55391 },
55392 calendar : {
55393 sameDay : '[Sot në] LT',
55394 nextDay : '[Nesër në] LT',
55395 nextWeek : 'dddd [në] LT',
55396 lastDay : '[Dje në] LT',
55397 lastWeek : 'dddd [e kaluar në] LT',
55398 sameElse : 'L'
55399 },
55400 relativeTime : {
55401 future : 'në %s',
55402 past : '%s më parë',
55403 s : 'disa sekonda',
55404 ss : '%d sekonda',
55405 m : 'një minutë',
55406 mm : '%d minuta',
55407 h : 'një orë',
55408 hh : '%d orë',
55409 d : 'një ditë',
55410 dd : '%d ditë',
55411 M : 'një muaj',
55412 MM : '%d muaj',
55413 y : 'një vit',
55414 yy : '%d vite'
55415 },
55416 dayOfMonthOrdinalParse: /\d{1,2}\./,
55417 ordinal : '%d.',
55418 week : {
55419 dow : 1, // Monday is the first day of the week.
55420 doy : 4 // The week that contains Jan 4th is the first week of the year.
55421 }
55422});
55423
55424return sq;
55425
55426})));
55427
55428
55429/***/ }),
55430
55431/***/ "./node_modules/moment/locale/sr-cyrl.js":
55432/*!***********************************************!*\
55433 !*** ./node_modules/moment/locale/sr-cyrl.js ***!
55434 \***********************************************/
55435/*! no static exports found */
55436/***/ (function(module, exports, __webpack_require__) {
55437
55438//! moment.js locale configuration
55439
55440;(function (global, factory) {
55441 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55442 undefined
55443}(this, (function (moment) { 'use strict';
55444
55445
55446var translator = {
55447 words: { //Different grammatical cases
55448 ss: ['секунда', 'секунде', 'секунди'],
55449 m: ['један минут', 'једне минуте'],
55450 mm: ['минут', 'минуте', 'минута'],
55451 h: ['један сат', 'једног сата'],
55452 hh: ['сат', 'сата', 'сати'],
55453 dd: ['дан', 'дана', 'дана'],
55454 MM: ['месец', 'месеца', 'месеци'],
55455 yy: ['година', 'године', 'година']
55456 },
55457 correctGrammaticalCase: function (number, wordKey) {
55458 return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
55459 },
55460 translate: function (number, withoutSuffix, key) {
55461 var wordKey = translator.words[key];
55462 if (key.length === 1) {
55463 return withoutSuffix ? wordKey[0] : wordKey[1];
55464 } else {
55465 return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
55466 }
55467 }
55468};
55469
55470var srCyrl = moment.defineLocale('sr-cyrl', {
55471 months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),
55472 monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
55473 monthsParseExact: true,
55474 weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
55475 weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
55476 weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
55477 weekdaysParseExact : true,
55478 longDateFormat: {
55479 LT: 'H:mm',
55480 LTS : 'H:mm:ss',
55481 L: 'DD.MM.YYYY',
55482 LL: 'D. MMMM YYYY',
55483 LLL: 'D. MMMM YYYY H:mm',
55484 LLLL: 'dddd, D. MMMM YYYY H:mm'
55485 },
55486 calendar: {
55487 sameDay: '[данас у] LT',
55488 nextDay: '[сутра у] LT',
55489 nextWeek: function () {
55490 switch (this.day()) {
55491 case 0:
55492 return '[у] [недељу] [у] LT';
55493 case 3:
55494 return '[у] [среду] [у] LT';
55495 case 6:
55496 return '[у] [суботу] [у] LT';
55497 case 1:
55498 case 2:
55499 case 4:
55500 case 5:
55501 return '[у] dddd [у] LT';
55502 }
55503 },
55504 lastDay : '[јуче у] LT',
55505 lastWeek : function () {
55506 var lastWeekDays = [
55507 '[прошле] [недеље] [у] LT',
55508 '[прошлог] [понедељка] [у] LT',
55509 '[прошлог] [уторка] [у] LT',
55510 '[прошле] [среде] [у] LT',
55511 '[прошлог] [четвртка] [у] LT',
55512 '[прошлог] [петка] [у] LT',
55513 '[прошле] [суботе] [у] LT'
55514 ];
55515 return lastWeekDays[this.day()];
55516 },
55517 sameElse : 'L'
55518 },
55519 relativeTime : {
55520 future : 'за %s',
55521 past : 'пре %s',
55522 s : 'неколико секунди',
55523 ss : translator.translate,
55524 m : translator.translate,
55525 mm : translator.translate,
55526 h : translator.translate,
55527 hh : translator.translate,
55528 d : 'дан',
55529 dd : translator.translate,
55530 M : 'месец',
55531 MM : translator.translate,
55532 y : 'годину',
55533 yy : translator.translate
55534 },
55535 dayOfMonthOrdinalParse: /\d{1,2}\./,
55536 ordinal : '%d.',
55537 week : {
55538 dow : 1, // Monday is the first day of the week.
55539 doy : 7 // The week that contains Jan 1st is the first week of the year.
55540 }
55541});
55542
55543return srCyrl;
55544
55545})));
55546
55547
55548/***/ }),
55549
55550/***/ "./node_modules/moment/locale/sr.js":
55551/*!******************************************!*\
55552 !*** ./node_modules/moment/locale/sr.js ***!
55553 \******************************************/
55554/*! no static exports found */
55555/***/ (function(module, exports, __webpack_require__) {
55556
55557//! moment.js locale configuration
55558
55559;(function (global, factory) {
55560 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55561 undefined
55562}(this, (function (moment) { 'use strict';
55563
55564
55565var translator = {
55566 words: { //Different grammatical cases
55567 ss: ['sekunda', 'sekunde', 'sekundi'],
55568 m: ['jedan minut', 'jedne minute'],
55569 mm: ['minut', 'minute', 'minuta'],
55570 h: ['jedan sat', 'jednog sata'],
55571 hh: ['sat', 'sata', 'sati'],
55572 dd: ['dan', 'dana', 'dana'],
55573 MM: ['mesec', 'meseca', 'meseci'],
55574 yy: ['godina', 'godine', 'godina']
55575 },
55576 correctGrammaticalCase: function (number, wordKey) {
55577 return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
55578 },
55579 translate: function (number, withoutSuffix, key) {
55580 var wordKey = translator.words[key];
55581 if (key.length === 1) {
55582 return withoutSuffix ? wordKey[0] : wordKey[1];
55583 } else {
55584 return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
55585 }
55586 }
55587};
55588
55589var sr = moment.defineLocale('sr', {
55590 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
55591 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
55592 monthsParseExact: true,
55593 weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
55594 weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
55595 weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
55596 weekdaysParseExact : true,
55597 longDateFormat: {
55598 LT: 'H:mm',
55599 LTS : 'H:mm:ss',
55600 L: 'DD.MM.YYYY',
55601 LL: 'D. MMMM YYYY',
55602 LLL: 'D. MMMM YYYY H:mm',
55603 LLLL: 'dddd, D. MMMM YYYY H:mm'
55604 },
55605 calendar: {
55606 sameDay: '[danas u] LT',
55607 nextDay: '[sutra u] LT',
55608 nextWeek: function () {
55609 switch (this.day()) {
55610 case 0:
55611 return '[u] [nedelju] [u] LT';
55612 case 3:
55613 return '[u] [sredu] [u] LT';
55614 case 6:
55615 return '[u] [subotu] [u] LT';
55616 case 1:
55617 case 2:
55618 case 4:
55619 case 5:
55620 return '[u] dddd [u] LT';
55621 }
55622 },
55623 lastDay : '[juče u] LT',
55624 lastWeek : function () {
55625 var lastWeekDays = [
55626 '[prošle] [nedelje] [u] LT',
55627 '[prošlog] [ponedeljka] [u] LT',
55628 '[prošlog] [utorka] [u] LT',
55629 '[prošle] [srede] [u] LT',
55630 '[prošlog] [četvrtka] [u] LT',
55631 '[prošlog] [petka] [u] LT',
55632 '[prošle] [subote] [u] LT'
55633 ];
55634 return lastWeekDays[this.day()];
55635 },
55636 sameElse : 'L'
55637 },
55638 relativeTime : {
55639 future : 'za %s',
55640 past : 'pre %s',
55641 s : 'nekoliko sekundi',
55642 ss : translator.translate,
55643 m : translator.translate,
55644 mm : translator.translate,
55645 h : translator.translate,
55646 hh : translator.translate,
55647 d : 'dan',
55648 dd : translator.translate,
55649 M : 'mesec',
55650 MM : translator.translate,
55651 y : 'godinu',
55652 yy : translator.translate
55653 },
55654 dayOfMonthOrdinalParse: /\d{1,2}\./,
55655 ordinal : '%d.',
55656 week : {
55657 dow : 1, // Monday is the first day of the week.
55658 doy : 7 // The week that contains Jan 1st is the first week of the year.
55659 }
55660});
55661
55662return sr;
55663
55664})));
55665
55666
55667/***/ }),
55668
55669/***/ "./node_modules/moment/locale/ss.js":
55670/*!******************************************!*\
55671 !*** ./node_modules/moment/locale/ss.js ***!
55672 \******************************************/
55673/*! no static exports found */
55674/***/ (function(module, exports, __webpack_require__) {
55675
55676//! moment.js locale configuration
55677
55678;(function (global, factory) {
55679 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55680 undefined
55681}(this, (function (moment) { 'use strict';
55682
55683
55684var ss = moment.defineLocale('ss', {
55685 months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'),
55686 monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
55687 weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),
55688 weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
55689 weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
55690 weekdaysParseExact : true,
55691 longDateFormat : {
55692 LT : 'h:mm A',
55693 LTS : 'h:mm:ss A',
55694 L : 'DD/MM/YYYY',
55695 LL : 'D MMMM YYYY',
55696 LLL : 'D MMMM YYYY h:mm A',
55697 LLLL : 'dddd, D MMMM YYYY h:mm A'
55698 },
55699 calendar : {
55700 sameDay : '[Namuhla nga] LT',
55701 nextDay : '[Kusasa nga] LT',
55702 nextWeek : 'dddd [nga] LT',
55703 lastDay : '[Itolo nga] LT',
55704 lastWeek : 'dddd [leliphelile] [nga] LT',
55705 sameElse : 'L'
55706 },
55707 relativeTime : {
55708 future : 'nga %s',
55709 past : 'wenteka nga %s',
55710 s : 'emizuzwana lomcane',
55711 ss : '%d mzuzwana',
55712 m : 'umzuzu',
55713 mm : '%d emizuzu',
55714 h : 'lihora',
55715 hh : '%d emahora',
55716 d : 'lilanga',
55717 dd : '%d emalanga',
55718 M : 'inyanga',
55719 MM : '%d tinyanga',
55720 y : 'umnyaka',
55721 yy : '%d iminyaka'
55722 },
55723 meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
55724 meridiem : function (hours, minutes, isLower) {
55725 if (hours < 11) {
55726 return 'ekuseni';
55727 } else if (hours < 15) {
55728 return 'emini';
55729 } else if (hours < 19) {
55730 return 'entsambama';
55731 } else {
55732 return 'ebusuku';
55733 }
55734 },
55735 meridiemHour : function (hour, meridiem) {
55736 if (hour === 12) {
55737 hour = 0;
55738 }
55739 if (meridiem === 'ekuseni') {
55740 return hour;
55741 } else if (meridiem === 'emini') {
55742 return hour >= 11 ? hour : hour + 12;
55743 } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
55744 if (hour === 0) {
55745 return 0;
55746 }
55747 return hour + 12;
55748 }
55749 },
55750 dayOfMonthOrdinalParse: /\d{1,2}/,
55751 ordinal : '%d',
55752 week : {
55753 dow : 1, // Monday is the first day of the week.
55754 doy : 4 // The week that contains Jan 4th is the first week of the year.
55755 }
55756});
55757
55758return ss;
55759
55760})));
55761
55762
55763/***/ }),
55764
55765/***/ "./node_modules/moment/locale/sv.js":
55766/*!******************************************!*\
55767 !*** ./node_modules/moment/locale/sv.js ***!
55768 \******************************************/
55769/*! no static exports found */
55770/***/ (function(module, exports, __webpack_require__) {
55771
55772//! moment.js locale configuration
55773
55774;(function (global, factory) {
55775 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55776 undefined
55777}(this, (function (moment) { 'use strict';
55778
55779
55780var sv = moment.defineLocale('sv', {
55781 months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
55782 monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
55783 weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
55784 weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
55785 weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
55786 longDateFormat : {
55787 LT : 'HH:mm',
55788 LTS : 'HH:mm:ss',
55789 L : 'YYYY-MM-DD',
55790 LL : 'D MMMM YYYY',
55791 LLL : 'D MMMM YYYY [kl.] HH:mm',
55792 LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',
55793 lll : 'D MMM YYYY HH:mm',
55794 llll : 'ddd D MMM YYYY HH:mm'
55795 },
55796 calendar : {
55797 sameDay: '[Idag] LT',
55798 nextDay: '[Imorgon] LT',
55799 lastDay: '[Igår] LT',
55800 nextWeek: '[På] dddd LT',
55801 lastWeek: '[I] dddd[s] LT',
55802 sameElse: 'L'
55803 },
55804 relativeTime : {
55805 future : 'om %s',
55806 past : 'för %s sedan',
55807 s : 'några sekunder',
55808 ss : '%d sekunder',
55809 m : 'en minut',
55810 mm : '%d minuter',
55811 h : 'en timme',
55812 hh : '%d timmar',
55813 d : 'en dag',
55814 dd : '%d dagar',
55815 M : 'en månad',
55816 MM : '%d månader',
55817 y : 'ett år',
55818 yy : '%d år'
55819 },
55820 dayOfMonthOrdinalParse: /\d{1,2}(e|a)/,
55821 ordinal : function (number) {
55822 var b = number % 10,
55823 output = (~~(number % 100 / 10) === 1) ? 'e' :
55824 (b === 1) ? 'a' :
55825 (b === 2) ? 'a' :
55826 (b === 3) ? 'e' : 'e';
55827 return number + output;
55828 },
55829 week : {
55830 dow : 1, // Monday is the first day of the week.
55831 doy : 4 // The week that contains Jan 4th is the first week of the year.
55832 }
55833});
55834
55835return sv;
55836
55837})));
55838
55839
55840/***/ }),
55841
55842/***/ "./node_modules/moment/locale/sw.js":
55843/*!******************************************!*\
55844 !*** ./node_modules/moment/locale/sw.js ***!
55845 \******************************************/
55846/*! no static exports found */
55847/***/ (function(module, exports, __webpack_require__) {
55848
55849//! moment.js locale configuration
55850
55851;(function (global, factory) {
55852 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55853 undefined
55854}(this, (function (moment) { 'use strict';
55855
55856
55857var sw = moment.defineLocale('sw', {
55858 months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
55859 monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
55860 weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
55861 weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
55862 weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
55863 weekdaysParseExact : true,
55864 longDateFormat : {
55865 LT : 'HH:mm',
55866 LTS : 'HH:mm:ss',
55867 L : 'DD.MM.YYYY',
55868 LL : 'D MMMM YYYY',
55869 LLL : 'D MMMM YYYY HH:mm',
55870 LLLL : 'dddd, D MMMM YYYY HH:mm'
55871 },
55872 calendar : {
55873 sameDay : '[leo saa] LT',
55874 nextDay : '[kesho saa] LT',
55875 nextWeek : '[wiki ijayo] dddd [saat] LT',
55876 lastDay : '[jana] LT',
55877 lastWeek : '[wiki iliyopita] dddd [saat] LT',
55878 sameElse : 'L'
55879 },
55880 relativeTime : {
55881 future : '%s baadaye',
55882 past : 'tokea %s',
55883 s : 'hivi punde',
55884 ss : 'sekunde %d',
55885 m : 'dakika moja',
55886 mm : 'dakika %d',
55887 h : 'saa limoja',
55888 hh : 'masaa %d',
55889 d : 'siku moja',
55890 dd : 'masiku %d',
55891 M : 'mwezi mmoja',
55892 MM : 'miezi %d',
55893 y : 'mwaka mmoja',
55894 yy : 'miaka %d'
55895 },
55896 week : {
55897 dow : 1, // Monday is the first day of the week.
55898 doy : 7 // The week that contains Jan 1st is the first week of the year.
55899 }
55900});
55901
55902return sw;
55903
55904})));
55905
55906
55907/***/ }),
55908
55909/***/ "./node_modules/moment/locale/ta.js":
55910/*!******************************************!*\
55911 !*** ./node_modules/moment/locale/ta.js ***!
55912 \******************************************/
55913/*! no static exports found */
55914/***/ (function(module, exports, __webpack_require__) {
55915
55916//! moment.js locale configuration
55917
55918;(function (global, factory) {
55919 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
55920 undefined
55921}(this, (function (moment) { 'use strict';
55922
55923
55924var symbolMap = {
55925 '1': '௧',
55926 '2': '௨',
55927 '3': '௩',
55928 '4': '௪',
55929 '5': '௫',
55930 '6': '௬',
55931 '7': '௭',
55932 '8': '௮',
55933 '9': '௯',
55934 '0': '௦'
55935}, numberMap = {
55936 '௧': '1',
55937 '௨': '2',
55938 '௩': '3',
55939 '௪': '4',
55940 '௫': '5',
55941 '௬': '6',
55942 '௭': '7',
55943 '௮': '8',
55944 '௯': '9',
55945 '௦': '0'
55946};
55947
55948var ta = moment.defineLocale('ta', {
55949 months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
55950 monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
55951 weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
55952 weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
55953 weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
55954 longDateFormat : {
55955 LT : 'HH:mm',
55956 LTS : 'HH:mm:ss',
55957 L : 'DD/MM/YYYY',
55958 LL : 'D MMMM YYYY',
55959 LLL : 'D MMMM YYYY, HH:mm',
55960 LLLL : 'dddd, D MMMM YYYY, HH:mm'
55961 },
55962 calendar : {
55963 sameDay : '[இன்று] LT',
55964 nextDay : '[நாளை] LT',
55965 nextWeek : 'dddd, LT',
55966 lastDay : '[நேற்று] LT',
55967 lastWeek : '[கடந்த வாரம்] dddd, LT',
55968 sameElse : 'L'
55969 },
55970 relativeTime : {
55971 future : '%s இல்',
55972 past : '%s முன்',
55973 s : 'ஒரு சில விநாடிகள்',
55974 ss : '%d விநாடிகள்',
55975 m : 'ஒரு நிமிடம்',
55976 mm : '%d நிமிடங்கள்',
55977 h : 'ஒரு மணி நேரம்',
55978 hh : '%d மணி நேரம்',
55979 d : 'ஒரு நாள்',
55980 dd : '%d நாட்கள்',
55981 M : 'ஒரு மாதம்',
55982 MM : '%d மாதங்கள்',
55983 y : 'ஒரு வருடம்',
55984 yy : '%d ஆண்டுகள்'
55985 },
55986 dayOfMonthOrdinalParse: /\d{1,2}வது/,
55987 ordinal : function (number) {
55988 return number + 'வது';
55989 },
55990 preparse: function (string) {
55991 return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
55992 return numberMap[match];
55993 });
55994 },
55995 postformat: function (string) {
55996 return string.replace(/\d/g, function (match) {
55997 return symbolMap[match];
55998 });
55999 },
56000 // refer http://ta.wikipedia.org/s/1er1
56001 meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
56002 meridiem : function (hour, minute, isLower) {
56003 if (hour < 2) {
56004 return ' யாமம்';
56005 } else if (hour < 6) {
56006 return ' வைகறை'; // வைகறை
56007 } else if (hour < 10) {
56008 return ' காலை'; // காலை
56009 } else if (hour < 14) {
56010 return ' நண்பகல்'; // நண்பகல்
56011 } else if (hour < 18) {
56012 return ' எற்பாடு'; // எற்பாடு
56013 } else if (hour < 22) {
56014 return ' மாலை'; // மாலை
56015 } else {
56016 return ' யாமம்';
56017 }
56018 },
56019 meridiemHour : function (hour, meridiem) {
56020 if (hour === 12) {
56021 hour = 0;
56022 }
56023 if (meridiem === 'யாமம்') {
56024 return hour < 2 ? hour : hour + 12;
56025 } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
56026 return hour;
56027 } else if (meridiem === 'நண்பகல்') {
56028 return hour >= 10 ? hour : hour + 12;
56029 } else {
56030 return hour + 12;
56031 }
56032 },
56033 week : {
56034 dow : 0, // Sunday is the first day of the week.
56035 doy : 6 // The week that contains Jan 1st is the first week of the year.
56036 }
56037});
56038
56039return ta;
56040
56041})));
56042
56043
56044/***/ }),
56045
56046/***/ "./node_modules/moment/locale/te.js":
56047/*!******************************************!*\
56048 !*** ./node_modules/moment/locale/te.js ***!
56049 \******************************************/
56050/*! no static exports found */
56051/***/ (function(module, exports, __webpack_require__) {
56052
56053//! moment.js locale configuration
56054
56055;(function (global, factory) {
56056 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56057 undefined
56058}(this, (function (moment) { 'use strict';
56059
56060
56061var te = moment.defineLocale('te', {
56062 months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
56063 monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
56064 monthsParseExact : true,
56065 weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
56066 weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
56067 weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
56068 longDateFormat : {
56069 LT : 'A h:mm',
56070 LTS : 'A h:mm:ss',
56071 L : 'DD/MM/YYYY',
56072 LL : 'D MMMM YYYY',
56073 LLL : 'D MMMM YYYY, A h:mm',
56074 LLLL : 'dddd, D MMMM YYYY, A h:mm'
56075 },
56076 calendar : {
56077 sameDay : '[నేడు] LT',
56078 nextDay : '[రేపు] LT',
56079 nextWeek : 'dddd, LT',
56080 lastDay : '[నిన్న] LT',
56081 lastWeek : '[గత] dddd, LT',
56082 sameElse : 'L'
56083 },
56084 relativeTime : {
56085 future : '%s లో',
56086 past : '%s క్రితం',
56087 s : 'కొన్ని క్షణాలు',
56088 ss : '%d సెకన్లు',
56089 m : 'ఒక నిమిషం',
56090 mm : '%d నిమిషాలు',
56091 h : 'ఒక గంట',
56092 hh : '%d గంటలు',
56093 d : 'ఒక రోజు',
56094 dd : '%d రోజులు',
56095 M : 'ఒక నెల',
56096 MM : '%d నెలలు',
56097 y : 'ఒక సంవత్సరం',
56098 yy : '%d సంవత్సరాలు'
56099 },
56100 dayOfMonthOrdinalParse : /\d{1,2}వ/,
56101 ordinal : '%dవ',
56102 meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
56103 meridiemHour : function (hour, meridiem) {
56104 if (hour === 12) {
56105 hour = 0;
56106 }
56107 if (meridiem === 'రాత్రి') {
56108 return hour < 4 ? hour : hour + 12;
56109 } else if (meridiem === 'ఉదయం') {
56110 return hour;
56111 } else if (meridiem === 'మధ్యాహ్నం') {
56112 return hour >= 10 ? hour : hour + 12;
56113 } else if (meridiem === 'సాయంత్రం') {
56114 return hour + 12;
56115 }
56116 },
56117 meridiem : function (hour, minute, isLower) {
56118 if (hour < 4) {
56119 return 'రాత్రి';
56120 } else if (hour < 10) {
56121 return 'ఉదయం';
56122 } else if (hour < 17) {
56123 return 'మధ్యాహ్నం';
56124 } else if (hour < 20) {
56125 return 'సాయంత్రం';
56126 } else {
56127 return 'రాత్రి';
56128 }
56129 },
56130 week : {
56131 dow : 0, // Sunday is the first day of the week.
56132 doy : 6 // The week that contains Jan 1st is the first week of the year.
56133 }
56134});
56135
56136return te;
56137
56138})));
56139
56140
56141/***/ }),
56142
56143/***/ "./node_modules/moment/locale/tet.js":
56144/*!*******************************************!*\
56145 !*** ./node_modules/moment/locale/tet.js ***!
56146 \*******************************************/
56147/*! no static exports found */
56148/***/ (function(module, exports, __webpack_require__) {
56149
56150//! moment.js locale configuration
56151
56152;(function (global, factory) {
56153 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56154 undefined
56155}(this, (function (moment) { 'use strict';
56156
56157
56158var tet = moment.defineLocale('tet', {
56159 months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),
56160 monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
56161 weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
56162 weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
56163 weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
56164 longDateFormat : {
56165 LT : 'HH:mm',
56166 LTS : 'HH:mm:ss',
56167 L : 'DD/MM/YYYY',
56168 LL : 'D MMMM YYYY',
56169 LLL : 'D MMMM YYYY HH:mm',
56170 LLLL : 'dddd, D MMMM YYYY HH:mm'
56171 },
56172 calendar : {
56173 sameDay: '[Ohin iha] LT',
56174 nextDay: '[Aban iha] LT',
56175 nextWeek: 'dddd [iha] LT',
56176 lastDay: '[Horiseik iha] LT',
56177 lastWeek: 'dddd [semana kotuk] [iha] LT',
56178 sameElse: 'L'
56179 },
56180 relativeTime : {
56181 future : 'iha %s',
56182 past : '%s liuba',
56183 s : 'minutu balun',
56184 ss : 'minutu %d',
56185 m : 'minutu ida',
56186 mm : 'minutu %d',
56187 h : 'oras ida',
56188 hh : 'oras %d',
56189 d : 'loron ida',
56190 dd : 'loron %d',
56191 M : 'fulan ida',
56192 MM : 'fulan %d',
56193 y : 'tinan ida',
56194 yy : 'tinan %d'
56195 },
56196 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
56197 ordinal : function (number) {
56198 var b = number % 10,
56199 output = (~~(number % 100 / 10) === 1) ? 'th' :
56200 (b === 1) ? 'st' :
56201 (b === 2) ? 'nd' :
56202 (b === 3) ? 'rd' : 'th';
56203 return number + output;
56204 },
56205 week : {
56206 dow : 1, // Monday is the first day of the week.
56207 doy : 4 // The week that contains Jan 4th is the first week of the year.
56208 }
56209});
56210
56211return tet;
56212
56213})));
56214
56215
56216/***/ }),
56217
56218/***/ "./node_modules/moment/locale/tg.js":
56219/*!******************************************!*\
56220 !*** ./node_modules/moment/locale/tg.js ***!
56221 \******************************************/
56222/*! no static exports found */
56223/***/ (function(module, exports, __webpack_require__) {
56224
56225//! moment.js locale configuration
56226
56227;(function (global, factory) {
56228 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56229 undefined
56230}(this, (function (moment) { 'use strict';
56231
56232
56233var suffixes = {
56234 0: '-ум',
56235 1: '-ум',
56236 2: '-юм',
56237 3: '-юм',
56238 4: '-ум',
56239 5: '-ум',
56240 6: '-ум',
56241 7: '-ум',
56242 8: '-ум',
56243 9: '-ум',
56244 10: '-ум',
56245 12: '-ум',
56246 13: '-ум',
56247 20: '-ум',
56248 30: '-юм',
56249 40: '-ум',
56250 50: '-ум',
56251 60: '-ум',
56252 70: '-ум',
56253 80: '-ум',
56254 90: '-ум',
56255 100: '-ум'
56256};
56257
56258var tg = moment.defineLocale('tg', {
56259 months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
56260 monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
56261 weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),
56262 weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
56263 weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
56264 longDateFormat : {
56265 LT : 'HH:mm',
56266 LTS : 'HH:mm:ss',
56267 L : 'DD/MM/YYYY',
56268 LL : 'D MMMM YYYY',
56269 LLL : 'D MMMM YYYY HH:mm',
56270 LLLL : 'dddd, D MMMM YYYY HH:mm'
56271 },
56272 calendar : {
56273 sameDay : '[Имрӯз соати] LT',
56274 nextDay : '[Пагоҳ соати] LT',
56275 lastDay : '[Дирӯз соати] LT',
56276 nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',
56277 lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',
56278 sameElse : 'L'
56279 },
56280 relativeTime : {
56281 future : 'баъди %s',
56282 past : '%s пеш',
56283 s : 'якчанд сония',
56284 m : 'як дақиқа',
56285 mm : '%d дақиқа',
56286 h : 'як соат',
56287 hh : '%d соат',
56288 d : 'як рӯз',
56289 dd : '%d рӯз',
56290 M : 'як моҳ',
56291 MM : '%d моҳ',
56292 y : 'як сол',
56293 yy : '%d сол'
56294 },
56295 meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
56296 meridiemHour: function (hour, meridiem) {
56297 if (hour === 12) {
56298 hour = 0;
56299 }
56300 if (meridiem === 'шаб') {
56301 return hour < 4 ? hour : hour + 12;
56302 } else if (meridiem === 'субҳ') {
56303 return hour;
56304 } else if (meridiem === 'рӯз') {
56305 return hour >= 11 ? hour : hour + 12;
56306 } else if (meridiem === 'бегоҳ') {
56307 return hour + 12;
56308 }
56309 },
56310 meridiem: function (hour, minute, isLower) {
56311 if (hour < 4) {
56312 return 'шаб';
56313 } else if (hour < 11) {
56314 return 'субҳ';
56315 } else if (hour < 16) {
56316 return 'рӯз';
56317 } else if (hour < 19) {
56318 return 'бегоҳ';
56319 } else {
56320 return 'шаб';
56321 }
56322 },
56323 dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
56324 ordinal: function (number) {
56325 var a = number % 10,
56326 b = number >= 100 ? 100 : null;
56327 return number + (suffixes[number] || suffixes[a] || suffixes[b]);
56328 },
56329 week : {
56330 dow : 1, // Monday is the first day of the week.
56331 doy : 7 // The week that contains Jan 1th is the first week of the year.
56332 }
56333});
56334
56335return tg;
56336
56337})));
56338
56339
56340/***/ }),
56341
56342/***/ "./node_modules/moment/locale/th.js":
56343/*!******************************************!*\
56344 !*** ./node_modules/moment/locale/th.js ***!
56345 \******************************************/
56346/*! no static exports found */
56347/***/ (function(module, exports, __webpack_require__) {
56348
56349//! moment.js locale configuration
56350
56351;(function (global, factory) {
56352 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56353 undefined
56354}(this, (function (moment) { 'use strict';
56355
56356
56357var th = moment.defineLocale('th', {
56358 months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
56359 monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),
56360 monthsParseExact: true,
56361 weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
56362 weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
56363 weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
56364 weekdaysParseExact : true,
56365 longDateFormat : {
56366 LT : 'H:mm',
56367 LTS : 'H:mm:ss',
56368 L : 'DD/MM/YYYY',
56369 LL : 'D MMMM YYYY',
56370 LLL : 'D MMMM YYYY เวลา H:mm',
56371 LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'
56372 },
56373 meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
56374 isPM: function (input) {
56375 return input === 'หลังเที่ยง';
56376 },
56377 meridiem : function (hour, minute, isLower) {
56378 if (hour < 12) {
56379 return 'ก่อนเที่ยง';
56380 } else {
56381 return 'หลังเที่ยง';
56382 }
56383 },
56384 calendar : {
56385 sameDay : '[วันนี้ เวลา] LT',
56386 nextDay : '[พรุ่งนี้ เวลา] LT',
56387 nextWeek : 'dddd[หน้า เวลา] LT',
56388 lastDay : '[เมื่อวานนี้ เวลา] LT',
56389 lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
56390 sameElse : 'L'
56391 },
56392 relativeTime : {
56393 future : 'อีก %s',
56394 past : '%sที่แล้ว',
56395 s : 'ไม่กี่วินาที',
56396 ss : '%d วินาที',
56397 m : '1 นาที',
56398 mm : '%d นาที',
56399 h : '1 ชั่วโมง',
56400 hh : '%d ชั่วโมง',
56401 d : '1 วัน',
56402 dd : '%d วัน',
56403 M : '1 เดือน',
56404 MM : '%d เดือน',
56405 y : '1 ปี',
56406 yy : '%d ปี'
56407 }
56408});
56409
56410return th;
56411
56412})));
56413
56414
56415/***/ }),
56416
56417/***/ "./node_modules/moment/locale/tl-ph.js":
56418/*!*********************************************!*\
56419 !*** ./node_modules/moment/locale/tl-ph.js ***!
56420 \*********************************************/
56421/*! no static exports found */
56422/***/ (function(module, exports, __webpack_require__) {
56423
56424//! moment.js locale configuration
56425
56426;(function (global, factory) {
56427 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56428 undefined
56429}(this, (function (moment) { 'use strict';
56430
56431
56432var tlPh = moment.defineLocale('tl-ph', {
56433 months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
56434 monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
56435 weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
56436 weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
56437 weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
56438 longDateFormat : {
56439 LT : 'HH:mm',
56440 LTS : 'HH:mm:ss',
56441 L : 'MM/D/YYYY',
56442 LL : 'MMMM D, YYYY',
56443 LLL : 'MMMM D, YYYY HH:mm',
56444 LLLL : 'dddd, MMMM DD, YYYY HH:mm'
56445 },
56446 calendar : {
56447 sameDay: 'LT [ngayong araw]',
56448 nextDay: '[Bukas ng] LT',
56449 nextWeek: 'LT [sa susunod na] dddd',
56450 lastDay: 'LT [kahapon]',
56451 lastWeek: 'LT [noong nakaraang] dddd',
56452 sameElse: 'L'
56453 },
56454 relativeTime : {
56455 future : 'sa loob ng %s',
56456 past : '%s ang nakalipas',
56457 s : 'ilang segundo',
56458 ss : '%d segundo',
56459 m : 'isang minuto',
56460 mm : '%d minuto',
56461 h : 'isang oras',
56462 hh : '%d oras',
56463 d : 'isang araw',
56464 dd : '%d araw',
56465 M : 'isang buwan',
56466 MM : '%d buwan',
56467 y : 'isang taon',
56468 yy : '%d taon'
56469 },
56470 dayOfMonthOrdinalParse: /\d{1,2}/,
56471 ordinal : function (number) {
56472 return number;
56473 },
56474 week : {
56475 dow : 1, // Monday is the first day of the week.
56476 doy : 4 // The week that contains Jan 4th is the first week of the year.
56477 }
56478});
56479
56480return tlPh;
56481
56482})));
56483
56484
56485/***/ }),
56486
56487/***/ "./node_modules/moment/locale/tlh.js":
56488/*!*******************************************!*\
56489 !*** ./node_modules/moment/locale/tlh.js ***!
56490 \*******************************************/
56491/*! no static exports found */
56492/***/ (function(module, exports, __webpack_require__) {
56493
56494//! moment.js locale configuration
56495
56496;(function (global, factory) {
56497 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56498 undefined
56499}(this, (function (moment) { 'use strict';
56500
56501
56502var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
56503
56504function translateFuture(output) {
56505 var time = output;
56506 time = (output.indexOf('jaj') !== -1) ?
56507 time.slice(0, -3) + 'leS' :
56508 (output.indexOf('jar') !== -1) ?
56509 time.slice(0, -3) + 'waQ' :
56510 (output.indexOf('DIS') !== -1) ?
56511 time.slice(0, -3) + 'nem' :
56512 time + ' pIq';
56513 return time;
56514}
56515
56516function translatePast(output) {
56517 var time = output;
56518 time = (output.indexOf('jaj') !== -1) ?
56519 time.slice(0, -3) + 'Hu’' :
56520 (output.indexOf('jar') !== -1) ?
56521 time.slice(0, -3) + 'wen' :
56522 (output.indexOf('DIS') !== -1) ?
56523 time.slice(0, -3) + 'ben' :
56524 time + ' ret';
56525 return time;
56526}
56527
56528function translate(number, withoutSuffix, string, isFuture) {
56529 var numberNoun = numberAsNoun(number);
56530 switch (string) {
56531 case 'ss':
56532 return numberNoun + ' lup';
56533 case 'mm':
56534 return numberNoun + ' tup';
56535 case 'hh':
56536 return numberNoun + ' rep';
56537 case 'dd':
56538 return numberNoun + ' jaj';
56539 case 'MM':
56540 return numberNoun + ' jar';
56541 case 'yy':
56542 return numberNoun + ' DIS';
56543 }
56544}
56545
56546function numberAsNoun(number) {
56547 var hundred = Math.floor((number % 1000) / 100),
56548 ten = Math.floor((number % 100) / 10),
56549 one = number % 10,
56550 word = '';
56551 if (hundred > 0) {
56552 word += numbersNouns[hundred] + 'vatlh';
56553 }
56554 if (ten > 0) {
56555 word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
56556 }
56557 if (one > 0) {
56558 word += ((word !== '') ? ' ' : '') + numbersNouns[one];
56559 }
56560 return (word === '') ? 'pagh' : word;
56561}
56562
56563var tlh = moment.defineLocale('tlh', {
56564 months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),
56565 monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
56566 monthsParseExact : true,
56567 weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
56568 weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
56569 weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
56570 longDateFormat : {
56571 LT : 'HH:mm',
56572 LTS : 'HH:mm:ss',
56573 L : 'DD.MM.YYYY',
56574 LL : 'D MMMM YYYY',
56575 LLL : 'D MMMM YYYY HH:mm',
56576 LLLL : 'dddd, D MMMM YYYY HH:mm'
56577 },
56578 calendar : {
56579 sameDay: '[DaHjaj] LT',
56580 nextDay: '[wa’leS] LT',
56581 nextWeek: 'LLL',
56582 lastDay: '[wa’Hu’] LT',
56583 lastWeek: 'LLL',
56584 sameElse: 'L'
56585 },
56586 relativeTime : {
56587 future : translateFuture,
56588 past : translatePast,
56589 s : 'puS lup',
56590 ss : translate,
56591 m : 'wa’ tup',
56592 mm : translate,
56593 h : 'wa’ rep',
56594 hh : translate,
56595 d : 'wa’ jaj',
56596 dd : translate,
56597 M : 'wa’ jar',
56598 MM : translate,
56599 y : 'wa’ DIS',
56600 yy : translate
56601 },
56602 dayOfMonthOrdinalParse: /\d{1,2}\./,
56603 ordinal : '%d.',
56604 week : {
56605 dow : 1, // Monday is the first day of the week.
56606 doy : 4 // The week that contains Jan 4th is the first week of the year.
56607 }
56608});
56609
56610return tlh;
56611
56612})));
56613
56614
56615/***/ }),
56616
56617/***/ "./node_modules/moment/locale/tr.js":
56618/*!******************************************!*\
56619 !*** ./node_modules/moment/locale/tr.js ***!
56620 \******************************************/
56621/*! no static exports found */
56622/***/ (function(module, exports, __webpack_require__) {
56623
56624
56625;(function (global, factory) {
56626 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56627 undefined
56628}(this, (function (moment) { 'use strict';
56629
56630var suffixes = {
56631 1: '\'inci',
56632 5: '\'inci',
56633 8: '\'inci',
56634 70: '\'inci',
56635 80: '\'inci',
56636 2: '\'nci',
56637 7: '\'nci',
56638 20: '\'nci',
56639 50: '\'nci',
56640 3: '\'üncü',
56641 4: '\'üncü',
56642 100: '\'üncü',
56643 6: '\'ncı',
56644 9: '\'uncu',
56645 10: '\'uncu',
56646 30: '\'uncu',
56647 60: '\'ıncı',
56648 90: '\'ıncı'
56649};
56650
56651var tr = moment.defineLocale('tr', {
56652 months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
56653 monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
56654 weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
56655 weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
56656 weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
56657 longDateFormat : {
56658 LT : 'HH:mm',
56659 LTS : 'HH:mm:ss',
56660 L : 'DD.MM.YYYY',
56661 LL : 'D MMMM YYYY',
56662 LLL : 'D MMMM YYYY HH:mm',
56663 LLLL : 'dddd, D MMMM YYYY HH:mm'
56664 },
56665 calendar : {
56666 sameDay : '[bugün saat] LT',
56667 nextDay : '[yarın saat] LT',
56668 nextWeek : '[gelecek] dddd [saat] LT',
56669 lastDay : '[dün] LT',
56670 lastWeek : '[geçen] dddd [saat] LT',
56671 sameElse : 'L'
56672 },
56673 relativeTime : {
56674 future : '%s sonra',
56675 past : '%s önce',
56676 s : 'birkaç saniye',
56677 ss : '%d saniye',
56678 m : 'bir dakika',
56679 mm : '%d dakika',
56680 h : 'bir saat',
56681 hh : '%d saat',
56682 d : 'bir gün',
56683 dd : '%d gün',
56684 M : 'bir ay',
56685 MM : '%d ay',
56686 y : 'bir yıl',
56687 yy : '%d yıl'
56688 },
56689 ordinal: function (number, period) {
56690 switch (period) {
56691 case 'd':
56692 case 'D':
56693 case 'Do':
56694 case 'DD':
56695 return number;
56696 default:
56697 if (number === 0) { // special case for zero
56698 return number + '\'ıncı';
56699 }
56700 var a = number % 10,
56701 b = number % 100 - a,
56702 c = number >= 100 ? 100 : null;
56703 return number + (suffixes[a] || suffixes[b] || suffixes[c]);
56704 }
56705 },
56706 week : {
56707 dow : 1, // Monday is the first day of the week.
56708 doy : 7 // The week that contains Jan 1st is the first week of the year.
56709 }
56710});
56711
56712return tr;
56713
56714})));
56715
56716
56717/***/ }),
56718
56719/***/ "./node_modules/moment/locale/tzl.js":
56720/*!*******************************************!*\
56721 !*** ./node_modules/moment/locale/tzl.js ***!
56722 \*******************************************/
56723/*! no static exports found */
56724/***/ (function(module, exports, __webpack_require__) {
56725
56726//! moment.js locale configuration
56727
56728;(function (global, factory) {
56729 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56730 undefined
56731}(this, (function (moment) { 'use strict';
56732
56733
56734// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
56735// This is currently too difficult (maybe even impossible) to add.
56736var tzl = moment.defineLocale('tzl', {
56737 months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
56738 monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
56739 weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
56740 weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
56741 weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
56742 longDateFormat : {
56743 LT : 'HH.mm',
56744 LTS : 'HH.mm.ss',
56745 L : 'DD.MM.YYYY',
56746 LL : 'D. MMMM [dallas] YYYY',
56747 LLL : 'D. MMMM [dallas] YYYY HH.mm',
56748 LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
56749 },
56750 meridiemParse: /d\'o|d\'a/i,
56751 isPM : function (input) {
56752 return 'd\'o' === input.toLowerCase();
56753 },
56754 meridiem : function (hours, minutes, isLower) {
56755 if (hours > 11) {
56756 return isLower ? 'd\'o' : 'D\'O';
56757 } else {
56758 return isLower ? 'd\'a' : 'D\'A';
56759 }
56760 },
56761 calendar : {
56762 sameDay : '[oxhi à] LT',
56763 nextDay : '[demà à] LT',
56764 nextWeek : 'dddd [à] LT',
56765 lastDay : '[ieiri à] LT',
56766 lastWeek : '[sür el] dddd [lasteu à] LT',
56767 sameElse : 'L'
56768 },
56769 relativeTime : {
56770 future : 'osprei %s',
56771 past : 'ja%s',
56772 s : processRelativeTime,
56773 ss : processRelativeTime,
56774 m : processRelativeTime,
56775 mm : processRelativeTime,
56776 h : processRelativeTime,
56777 hh : processRelativeTime,
56778 d : processRelativeTime,
56779 dd : processRelativeTime,
56780 M : processRelativeTime,
56781 MM : processRelativeTime,
56782 y : processRelativeTime,
56783 yy : processRelativeTime
56784 },
56785 dayOfMonthOrdinalParse: /\d{1,2}\./,
56786 ordinal : '%d.',
56787 week : {
56788 dow : 1, // Monday is the first day of the week.
56789 doy : 4 // The week that contains Jan 4th is the first week of the year.
56790 }
56791});
56792
56793function processRelativeTime(number, withoutSuffix, key, isFuture) {
56794 var format = {
56795 's': ['viensas secunds', '\'iensas secunds'],
56796 'ss': [number + ' secunds', '' + number + ' secunds'],
56797 'm': ['\'n míut', '\'iens míut'],
56798 'mm': [number + ' míuts', '' + number + ' míuts'],
56799 'h': ['\'n þora', '\'iensa þora'],
56800 'hh': [number + ' þoras', '' + number + ' þoras'],
56801 'd': ['\'n ziua', '\'iensa ziua'],
56802 'dd': [number + ' ziuas', '' + number + ' ziuas'],
56803 'M': ['\'n mes', '\'iens mes'],
56804 'MM': [number + ' mesen', '' + number + ' mesen'],
56805 'y': ['\'n ar', '\'iens ar'],
56806 'yy': [number + ' ars', '' + number + ' ars']
56807 };
56808 return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
56809}
56810
56811return tzl;
56812
56813})));
56814
56815
56816/***/ }),
56817
56818/***/ "./node_modules/moment/locale/tzm-latn.js":
56819/*!************************************************!*\
56820 !*** ./node_modules/moment/locale/tzm-latn.js ***!
56821 \************************************************/
56822/*! no static exports found */
56823/***/ (function(module, exports, __webpack_require__) {
56824
56825//! moment.js locale configuration
56826
56827;(function (global, factory) {
56828 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56829 undefined
56830}(this, (function (moment) { 'use strict';
56831
56832
56833var tzmLatn = moment.defineLocale('tzm-latn', {
56834 months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
56835 monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
56836 weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
56837 weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
56838 weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
56839 longDateFormat : {
56840 LT : 'HH:mm',
56841 LTS : 'HH:mm:ss',
56842 L : 'DD/MM/YYYY',
56843 LL : 'D MMMM YYYY',
56844 LLL : 'D MMMM YYYY HH:mm',
56845 LLLL : 'dddd D MMMM YYYY HH:mm'
56846 },
56847 calendar : {
56848 sameDay: '[asdkh g] LT',
56849 nextDay: '[aska g] LT',
56850 nextWeek: 'dddd [g] LT',
56851 lastDay: '[assant g] LT',
56852 lastWeek: 'dddd [g] LT',
56853 sameElse: 'L'
56854 },
56855 relativeTime : {
56856 future : 'dadkh s yan %s',
56857 past : 'yan %s',
56858 s : 'imik',
56859 ss : '%d imik',
56860 m : 'minuḍ',
56861 mm : '%d minuḍ',
56862 h : 'saɛa',
56863 hh : '%d tassaɛin',
56864 d : 'ass',
56865 dd : '%d ossan',
56866 M : 'ayowr',
56867 MM : '%d iyyirn',
56868 y : 'asgas',
56869 yy : '%d isgasn'
56870 },
56871 week : {
56872 dow : 6, // Saturday is the first day of the week.
56873 doy : 12 // The week that contains Jan 1st is the first week of the year.
56874 }
56875});
56876
56877return tzmLatn;
56878
56879})));
56880
56881
56882/***/ }),
56883
56884/***/ "./node_modules/moment/locale/tzm.js":
56885/*!*******************************************!*\
56886 !*** ./node_modules/moment/locale/tzm.js ***!
56887 \*******************************************/
56888/*! no static exports found */
56889/***/ (function(module, exports, __webpack_require__) {
56890
56891//! moment.js locale configuration
56892
56893;(function (global, factory) {
56894 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56895 undefined
56896}(this, (function (moment) { 'use strict';
56897
56898
56899var tzm = moment.defineLocale('tzm', {
56900 months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
56901 monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
56902 weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
56903 weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
56904 weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
56905 longDateFormat : {
56906 LT : 'HH:mm',
56907 LTS: 'HH:mm:ss',
56908 L : 'DD/MM/YYYY',
56909 LL : 'D MMMM YYYY',
56910 LLL : 'D MMMM YYYY HH:mm',
56911 LLLL : 'dddd D MMMM YYYY HH:mm'
56912 },
56913 calendar : {
56914 sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
56915 nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
56916 nextWeek: 'dddd [ⴴ] LT',
56917 lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
56918 lastWeek: 'dddd [ⴴ] LT',
56919 sameElse: 'L'
56920 },
56921 relativeTime : {
56922 future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
56923 past : 'ⵢⴰⵏ %s',
56924 s : 'ⵉⵎⵉⴽ',
56925 ss : '%d ⵉⵎⵉⴽ',
56926 m : 'ⵎⵉⵏⵓⴺ',
56927 mm : '%d ⵎⵉⵏⵓⴺ',
56928 h : 'ⵙⴰⵄⴰ',
56929 hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
56930 d : 'ⴰⵙⵙ',
56931 dd : '%d oⵙⵙⴰⵏ',
56932 M : 'ⴰⵢoⵓⵔ',
56933 MM : '%d ⵉⵢⵢⵉⵔⵏ',
56934 y : 'ⴰⵙⴳⴰⵙ',
56935 yy : '%d ⵉⵙⴳⴰⵙⵏ'
56936 },
56937 week : {
56938 dow : 6, // Saturday is the first day of the week.
56939 doy : 12 // The week that contains Jan 1st is the first week of the year.
56940 }
56941});
56942
56943return tzm;
56944
56945})));
56946
56947
56948/***/ }),
56949
56950/***/ "./node_modules/moment/locale/ug-cn.js":
56951/*!*********************************************!*\
56952 !*** ./node_modules/moment/locale/ug-cn.js ***!
56953 \*********************************************/
56954/*! no static exports found */
56955/***/ (function(module, exports, __webpack_require__) {
56956
56957//! moment.js language configuration
56958
56959;(function (global, factory) {
56960 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
56961 undefined
56962}(this, (function (moment) { 'use strict';
56963
56964
56965var ugCn = moment.defineLocale('ug-cn', {
56966 months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
56967 '_'
56968 ),
56969 monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
56970 '_'
56971 ),
56972 weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
56973 '_'
56974 ),
56975 weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
56976 weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
56977 longDateFormat: {
56978 LT: 'HH:mm',
56979 LTS: 'HH:mm:ss',
56980 L: 'YYYY-MM-DD',
56981 LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
56982 LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
56983 LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'
56984 },
56985 meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
56986 meridiemHour: function (hour, meridiem) {
56987 if (hour === 12) {
56988 hour = 0;
56989 }
56990 if (
56991 meridiem === 'يېرىم كېچە' ||
56992 meridiem === 'سەھەر' ||
56993 meridiem === 'چۈشتىن بۇرۇن'
56994 ) {
56995 return hour;
56996 } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
56997 return hour + 12;
56998 } else {
56999 return hour >= 11 ? hour : hour + 12;
57000 }
57001 },
57002 meridiem: function (hour, minute, isLower) {
57003 var hm = hour * 100 + minute;
57004 if (hm < 600) {
57005 return 'يېرىم كېچە';
57006 } else if (hm < 900) {
57007 return 'سەھەر';
57008 } else if (hm < 1130) {
57009 return 'چۈشتىن بۇرۇن';
57010 } else if (hm < 1230) {
57011 return 'چۈش';
57012 } else if (hm < 1800) {
57013 return 'چۈشتىن كېيىن';
57014 } else {
57015 return 'كەچ';
57016 }
57017 },
57018 calendar: {
57019 sameDay: '[بۈگۈن سائەت] LT',
57020 nextDay: '[ئەتە سائەت] LT',
57021 nextWeek: '[كېلەركى] dddd [سائەت] LT',
57022 lastDay: '[تۆنۈگۈن] LT',
57023 lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
57024 sameElse: 'L'
57025 },
57026 relativeTime: {
57027 future: '%s كېيىن',
57028 past: '%s بۇرۇن',
57029 s: 'نەچچە سېكونت',
57030 ss: '%d سېكونت',
57031 m: 'بىر مىنۇت',
57032 mm: '%d مىنۇت',
57033 h: 'بىر سائەت',
57034 hh: '%d سائەت',
57035 d: 'بىر كۈن',
57036 dd: '%d كۈن',
57037 M: 'بىر ئاي',
57038 MM: '%d ئاي',
57039 y: 'بىر يىل',
57040 yy: '%d يىل'
57041 },
57042
57043 dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
57044 ordinal: function (number, period) {
57045 switch (period) {
57046 case 'd':
57047 case 'D':
57048 case 'DDD':
57049 return number + '-كۈنى';
57050 case 'w':
57051 case 'W':
57052 return number + '-ھەپتە';
57053 default:
57054 return number;
57055 }
57056 },
57057 preparse: function (string) {
57058 return string.replace(/،/g, ',');
57059 },
57060 postformat: function (string) {
57061 return string.replace(/,/g, '،');
57062 },
57063 week: {
57064 // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
57065 dow: 1, // Monday is the first day of the week.
57066 doy: 7 // The week that contains Jan 1st is the first week of the year.
57067 }
57068});
57069
57070return ugCn;
57071
57072})));
57073
57074
57075/***/ }),
57076
57077/***/ "./node_modules/moment/locale/uk.js":
57078/*!******************************************!*\
57079 !*** ./node_modules/moment/locale/uk.js ***!
57080 \******************************************/
57081/*! no static exports found */
57082/***/ (function(module, exports, __webpack_require__) {
57083
57084//! moment.js locale configuration
57085
57086;(function (global, factory) {
57087 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57088 undefined
57089}(this, (function (moment) { 'use strict';
57090
57091
57092function plural(word, num) {
57093 var forms = word.split('_');
57094 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
57095}
57096function relativeTimeWithPlural(number, withoutSuffix, key) {
57097 var format = {
57098 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
57099 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
57100 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
57101 'dd': 'день_дні_днів',
57102 'MM': 'місяць_місяці_місяців',
57103 'yy': 'рік_роки_років'
57104 };
57105 if (key === 'm') {
57106 return withoutSuffix ? 'хвилина' : 'хвилину';
57107 }
57108 else if (key === 'h') {
57109 return withoutSuffix ? 'година' : 'годину';
57110 }
57111 else {
57112 return number + ' ' + plural(format[key], +number);
57113 }
57114}
57115function weekdaysCaseReplace(m, format) {
57116 var weekdays = {
57117 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
57118 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
57119 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
57120 };
57121
57122 if (!m) {
57123 return weekdays['nominative'];
57124 }
57125
57126 var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
57127 'accusative' :
57128 ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
57129 'genitive' :
57130 'nominative');
57131 return weekdays[nounCase][m.day()];
57132}
57133function processHoursFunction(str) {
57134 return function () {
57135 return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
57136 };
57137}
57138
57139var uk = moment.defineLocale('uk', {
57140 months : {
57141 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
57142 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
57143 },
57144 monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
57145 weekdays : weekdaysCaseReplace,
57146 weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
57147 weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
57148 longDateFormat : {
57149 LT : 'HH:mm',
57150 LTS : 'HH:mm:ss',
57151 L : 'DD.MM.YYYY',
57152 LL : 'D MMMM YYYY р.',
57153 LLL : 'D MMMM YYYY р., HH:mm',
57154 LLLL : 'dddd, D MMMM YYYY р., HH:mm'
57155 },
57156 calendar : {
57157 sameDay: processHoursFunction('[Сьогодні '),
57158 nextDay: processHoursFunction('[Завтра '),
57159 lastDay: processHoursFunction('[Вчора '),
57160 nextWeek: processHoursFunction('[У] dddd ['),
57161 lastWeek: function () {
57162 switch (this.day()) {
57163 case 0:
57164 case 3:
57165 case 5:
57166 case 6:
57167 return processHoursFunction('[Минулої] dddd [').call(this);
57168 case 1:
57169 case 2:
57170 case 4:
57171 return processHoursFunction('[Минулого] dddd [').call(this);
57172 }
57173 },
57174 sameElse: 'L'
57175 },
57176 relativeTime : {
57177 future : 'за %s',
57178 past : '%s тому',
57179 s : 'декілька секунд',
57180 ss : relativeTimeWithPlural,
57181 m : relativeTimeWithPlural,
57182 mm : relativeTimeWithPlural,
57183 h : 'годину',
57184 hh : relativeTimeWithPlural,
57185 d : 'день',
57186 dd : relativeTimeWithPlural,
57187 M : 'місяць',
57188 MM : relativeTimeWithPlural,
57189 y : 'рік',
57190 yy : relativeTimeWithPlural
57191 },
57192 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
57193 meridiemParse: /ночі|ранку|дня|вечора/,
57194 isPM: function (input) {
57195 return /^(дня|вечора)$/.test(input);
57196 },
57197 meridiem : function (hour, minute, isLower) {
57198 if (hour < 4) {
57199 return 'ночі';
57200 } else if (hour < 12) {
57201 return 'ранку';
57202 } else if (hour < 17) {
57203 return 'дня';
57204 } else {
57205 return 'вечора';
57206 }
57207 },
57208 dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
57209 ordinal: function (number, period) {
57210 switch (period) {
57211 case 'M':
57212 case 'd':
57213 case 'DDD':
57214 case 'w':
57215 case 'W':
57216 return number + '-й';
57217 case 'D':
57218 return number + '-го';
57219 default:
57220 return number;
57221 }
57222 },
57223 week : {
57224 dow : 1, // Monday is the first day of the week.
57225 doy : 7 // The week that contains Jan 1st is the first week of the year.
57226 }
57227});
57228
57229return uk;
57230
57231})));
57232
57233
57234/***/ }),
57235
57236/***/ "./node_modules/moment/locale/ur.js":
57237/*!******************************************!*\
57238 !*** ./node_modules/moment/locale/ur.js ***!
57239 \******************************************/
57240/*! no static exports found */
57241/***/ (function(module, exports, __webpack_require__) {
57242
57243//! moment.js locale configuration
57244
57245;(function (global, factory) {
57246 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57247 undefined
57248}(this, (function (moment) { 'use strict';
57249
57250
57251var months = [
57252 'جنوری',
57253 'فروری',
57254 'مارچ',
57255 'اپریل',
57256 'مئی',
57257 'جون',
57258 'جولائی',
57259 'اگست',
57260 'ستمبر',
57261 'اکتوبر',
57262 'نومبر',
57263 'دسمبر'
57264];
57265var days = [
57266 'اتوار',
57267 'پیر',
57268 'منگل',
57269 'بدھ',
57270 'جمعرات',
57271 'جمعہ',
57272 'ہفتہ'
57273];
57274
57275var ur = moment.defineLocale('ur', {
57276 months : months,
57277 monthsShort : months,
57278 weekdays : days,
57279 weekdaysShort : days,
57280 weekdaysMin : days,
57281 longDateFormat : {
57282 LT : 'HH:mm',
57283 LTS : 'HH:mm:ss',
57284 L : 'DD/MM/YYYY',
57285 LL : 'D MMMM YYYY',
57286 LLL : 'D MMMM YYYY HH:mm',
57287 LLLL : 'dddd، D MMMM YYYY HH:mm'
57288 },
57289 meridiemParse: /صبح|شام/,
57290 isPM : function (input) {
57291 return 'شام' === input;
57292 },
57293 meridiem : function (hour, minute, isLower) {
57294 if (hour < 12) {
57295 return 'صبح';
57296 }
57297 return 'شام';
57298 },
57299 calendar : {
57300 sameDay : '[آج بوقت] LT',
57301 nextDay : '[کل بوقت] LT',
57302 nextWeek : 'dddd [بوقت] LT',
57303 lastDay : '[گذشتہ روز بوقت] LT',
57304 lastWeek : '[گذشتہ] dddd [بوقت] LT',
57305 sameElse : 'L'
57306 },
57307 relativeTime : {
57308 future : '%s بعد',
57309 past : '%s قبل',
57310 s : 'چند سیکنڈ',
57311 ss : '%d سیکنڈ',
57312 m : 'ایک منٹ',
57313 mm : '%d منٹ',
57314 h : 'ایک گھنٹہ',
57315 hh : '%d گھنٹے',
57316 d : 'ایک دن',
57317 dd : '%d دن',
57318 M : 'ایک ماہ',
57319 MM : '%d ماہ',
57320 y : 'ایک سال',
57321 yy : '%d سال'
57322 },
57323 preparse: function (string) {
57324 return string.replace(/،/g, ',');
57325 },
57326 postformat: function (string) {
57327 return string.replace(/,/g, '،');
57328 },
57329 week : {
57330 dow : 1, // Monday is the first day of the week.
57331 doy : 4 // The week that contains Jan 4th is the first week of the year.
57332 }
57333});
57334
57335return ur;
57336
57337})));
57338
57339
57340/***/ }),
57341
57342/***/ "./node_modules/moment/locale/uz-latn.js":
57343/*!***********************************************!*\
57344 !*** ./node_modules/moment/locale/uz-latn.js ***!
57345 \***********************************************/
57346/*! no static exports found */
57347/***/ (function(module, exports, __webpack_require__) {
57348
57349//! moment.js locale configuration
57350
57351;(function (global, factory) {
57352 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57353 undefined
57354}(this, (function (moment) { 'use strict';
57355
57356
57357var uzLatn = moment.defineLocale('uz-latn', {
57358 months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),
57359 monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
57360 weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),
57361 weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
57362 weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
57363 longDateFormat : {
57364 LT : 'HH:mm',
57365 LTS : 'HH:mm:ss',
57366 L : 'DD/MM/YYYY',
57367 LL : 'D MMMM YYYY',
57368 LLL : 'D MMMM YYYY HH:mm',
57369 LLLL : 'D MMMM YYYY, dddd HH:mm'
57370 },
57371 calendar : {
57372 sameDay : '[Bugun soat] LT [da]',
57373 nextDay : '[Ertaga] LT [da]',
57374 nextWeek : 'dddd [kuni soat] LT [da]',
57375 lastDay : '[Kecha soat] LT [da]',
57376 lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]',
57377 sameElse : 'L'
57378 },
57379 relativeTime : {
57380 future : 'Yaqin %s ichida',
57381 past : 'Bir necha %s oldin',
57382 s : 'soniya',
57383 ss : '%d soniya',
57384 m : 'bir daqiqa',
57385 mm : '%d daqiqa',
57386 h : 'bir soat',
57387 hh : '%d soat',
57388 d : 'bir kun',
57389 dd : '%d kun',
57390 M : 'bir oy',
57391 MM : '%d oy',
57392 y : 'bir yil',
57393 yy : '%d yil'
57394 },
57395 week : {
57396 dow : 1, // Monday is the first day of the week.
57397 doy : 7 // The week that contains Jan 1st is the first week of the year.
57398 }
57399});
57400
57401return uzLatn;
57402
57403})));
57404
57405
57406/***/ }),
57407
57408/***/ "./node_modules/moment/locale/uz.js":
57409/*!******************************************!*\
57410 !*** ./node_modules/moment/locale/uz.js ***!
57411 \******************************************/
57412/*! no static exports found */
57413/***/ (function(module, exports, __webpack_require__) {
57414
57415//! moment.js locale configuration
57416
57417;(function (global, factory) {
57418 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57419 undefined
57420}(this, (function (moment) { 'use strict';
57421
57422
57423var uz = moment.defineLocale('uz', {
57424 months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
57425 monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
57426 weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
57427 weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
57428 weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
57429 longDateFormat : {
57430 LT : 'HH:mm',
57431 LTS : 'HH:mm:ss',
57432 L : 'DD/MM/YYYY',
57433 LL : 'D MMMM YYYY',
57434 LLL : 'D MMMM YYYY HH:mm',
57435 LLLL : 'D MMMM YYYY, dddd HH:mm'
57436 },
57437 calendar : {
57438 sameDay : '[Бугун соат] LT [да]',
57439 nextDay : '[Эртага] LT [да]',
57440 nextWeek : 'dddd [куни соат] LT [да]',
57441 lastDay : '[Кеча соат] LT [да]',
57442 lastWeek : '[Утган] dddd [куни соат] LT [да]',
57443 sameElse : 'L'
57444 },
57445 relativeTime : {
57446 future : 'Якин %s ичида',
57447 past : 'Бир неча %s олдин',
57448 s : 'фурсат',
57449 ss : '%d фурсат',
57450 m : 'бир дакика',
57451 mm : '%d дакика',
57452 h : 'бир соат',
57453 hh : '%d соат',
57454 d : 'бир кун',
57455 dd : '%d кун',
57456 M : 'бир ой',
57457 MM : '%d ой',
57458 y : 'бир йил',
57459 yy : '%d йил'
57460 },
57461 week : {
57462 dow : 1, // Monday is the first day of the week.
57463 doy : 7 // The week that contains Jan 4th is the first week of the year.
57464 }
57465});
57466
57467return uz;
57468
57469})));
57470
57471
57472/***/ }),
57473
57474/***/ "./node_modules/moment/locale/vi.js":
57475/*!******************************************!*\
57476 !*** ./node_modules/moment/locale/vi.js ***!
57477 \******************************************/
57478/*! no static exports found */
57479/***/ (function(module, exports, __webpack_require__) {
57480
57481//! moment.js locale configuration
57482
57483;(function (global, factory) {
57484 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57485 undefined
57486}(this, (function (moment) { 'use strict';
57487
57488
57489var vi = moment.defineLocale('vi', {
57490 months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
57491 monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
57492 monthsParseExact : true,
57493 weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
57494 weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
57495 weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
57496 weekdaysParseExact : true,
57497 meridiemParse: /sa|ch/i,
57498 isPM : function (input) {
57499 return /^ch$/i.test(input);
57500 },
57501 meridiem : function (hours, minutes, isLower) {
57502 if (hours < 12) {
57503 return isLower ? 'sa' : 'SA';
57504 } else {
57505 return isLower ? 'ch' : 'CH';
57506 }
57507 },
57508 longDateFormat : {
57509 LT : 'HH:mm',
57510 LTS : 'HH:mm:ss',
57511 L : 'DD/MM/YYYY',
57512 LL : 'D MMMM [năm] YYYY',
57513 LLL : 'D MMMM [năm] YYYY HH:mm',
57514 LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
57515 l : 'DD/M/YYYY',
57516 ll : 'D MMM YYYY',
57517 lll : 'D MMM YYYY HH:mm',
57518 llll : 'ddd, D MMM YYYY HH:mm'
57519 },
57520 calendar : {
57521 sameDay: '[Hôm nay lúc] LT',
57522 nextDay: '[Ngày mai lúc] LT',
57523 nextWeek: 'dddd [tuần tới lúc] LT',
57524 lastDay: '[Hôm qua lúc] LT',
57525 lastWeek: 'dddd [tuần rồi lúc] LT',
57526 sameElse: 'L'
57527 },
57528 relativeTime : {
57529 future : '%s tới',
57530 past : '%s trước',
57531 s : 'vài giây',
57532 ss : '%d giây' ,
57533 m : 'một phút',
57534 mm : '%d phút',
57535 h : 'một giờ',
57536 hh : '%d giờ',
57537 d : 'một ngày',
57538 dd : '%d ngày',
57539 M : 'một tháng',
57540 MM : '%d tháng',
57541 y : 'một năm',
57542 yy : '%d năm'
57543 },
57544 dayOfMonthOrdinalParse: /\d{1,2}/,
57545 ordinal : function (number) {
57546 return number;
57547 },
57548 week : {
57549 dow : 1, // Monday is the first day of the week.
57550 doy : 4 // The week that contains Jan 4th is the first week of the year.
57551 }
57552});
57553
57554return vi;
57555
57556})));
57557
57558
57559/***/ }),
57560
57561/***/ "./node_modules/moment/locale/x-pseudo.js":
57562/*!************************************************!*\
57563 !*** ./node_modules/moment/locale/x-pseudo.js ***!
57564 \************************************************/
57565/*! no static exports found */
57566/***/ (function(module, exports, __webpack_require__) {
57567
57568//! moment.js locale configuration
57569
57570;(function (global, factory) {
57571 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57572 undefined
57573}(this, (function (moment) { 'use strict';
57574
57575
57576var xPseudo = moment.defineLocale('x-pseudo', {
57577 months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),
57578 monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),
57579 monthsParseExact : true,
57580 weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),
57581 weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
57582 weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
57583 weekdaysParseExact : true,
57584 longDateFormat : {
57585 LT : 'HH:mm',
57586 L : 'DD/MM/YYYY',
57587 LL : 'D MMMM YYYY',
57588 LLL : 'D MMMM YYYY HH:mm',
57589 LLLL : 'dddd, D MMMM YYYY HH:mm'
57590 },
57591 calendar : {
57592 sameDay : '[T~ódá~ý át] LT',
57593 nextDay : '[T~ómó~rró~w át] LT',
57594 nextWeek : 'dddd [át] LT',
57595 lastDay : '[Ý~ést~érdá~ý át] LT',
57596 lastWeek : '[L~ást] dddd [át] LT',
57597 sameElse : 'L'
57598 },
57599 relativeTime : {
57600 future : 'í~ñ %s',
57601 past : '%s á~gó',
57602 s : 'á ~féw ~sécó~ñds',
57603 ss : '%d s~écóñ~ds',
57604 m : 'á ~míñ~úté',
57605 mm : '%d m~íñú~tés',
57606 h : 'á~ñ hó~úr',
57607 hh : '%d h~óúrs',
57608 d : 'á ~dáý',
57609 dd : '%d d~áýs',
57610 M : 'á ~móñ~th',
57611 MM : '%d m~óñt~hs',
57612 y : 'á ~ýéár',
57613 yy : '%d ý~éárs'
57614 },
57615 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
57616 ordinal : function (number) {
57617 var b = number % 10,
57618 output = (~~(number % 100 / 10) === 1) ? 'th' :
57619 (b === 1) ? 'st' :
57620 (b === 2) ? 'nd' :
57621 (b === 3) ? 'rd' : 'th';
57622 return number + output;
57623 },
57624 week : {
57625 dow : 1, // Monday is the first day of the week.
57626 doy : 4 // The week that contains Jan 4th is the first week of the year.
57627 }
57628});
57629
57630return xPseudo;
57631
57632})));
57633
57634
57635/***/ }),
57636
57637/***/ "./node_modules/moment/locale/yo.js":
57638/*!******************************************!*\
57639 !*** ./node_modules/moment/locale/yo.js ***!
57640 \******************************************/
57641/*! no static exports found */
57642/***/ (function(module, exports, __webpack_require__) {
57643
57644//! moment.js locale configuration
57645
57646;(function (global, factory) {
57647 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57648 undefined
57649}(this, (function (moment) { 'use strict';
57650
57651
57652var yo = moment.defineLocale('yo', {
57653 months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),
57654 monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
57655 weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
57656 weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
57657 weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
57658 longDateFormat : {
57659 LT : 'h:mm A',
57660 LTS : 'h:mm:ss A',
57661 L : 'DD/MM/YYYY',
57662 LL : 'D MMMM YYYY',
57663 LLL : 'D MMMM YYYY h:mm A',
57664 LLLL : 'dddd, D MMMM YYYY h:mm A'
57665 },
57666 calendar : {
57667 sameDay : '[Ònì ni] LT',
57668 nextDay : '[Ọ̀la ni] LT',
57669 nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT',
57670 lastDay : '[Àna ni] LT',
57671 lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
57672 sameElse : 'L'
57673 },
57674 relativeTime : {
57675 future : 'ní %s',
57676 past : '%s kọjá',
57677 s : 'ìsẹjú aayá die',
57678 ss :'aayá %d',
57679 m : 'ìsẹjú kan',
57680 mm : 'ìsẹjú %d',
57681 h : 'wákati kan',
57682 hh : 'wákati %d',
57683 d : 'ọjọ́ kan',
57684 dd : 'ọjọ́ %d',
57685 M : 'osù kan',
57686 MM : 'osù %d',
57687 y : 'ọdún kan',
57688 yy : 'ọdún %d'
57689 },
57690 dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/,
57691 ordinal : 'ọjọ́ %d',
57692 week : {
57693 dow : 1, // Monday is the first day of the week.
57694 doy : 4 // The week that contains Jan 4th is the first week of the year.
57695 }
57696});
57697
57698return yo;
57699
57700})));
57701
57702
57703/***/ }),
57704
57705/***/ "./node_modules/moment/locale/zh-cn.js":
57706/*!*********************************************!*\
57707 !*** ./node_modules/moment/locale/zh-cn.js ***!
57708 \*********************************************/
57709/*! no static exports found */
57710/***/ (function(module, exports, __webpack_require__) {
57711
57712//! moment.js locale configuration
57713
57714;(function (global, factory) {
57715 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57716 undefined
57717}(this, (function (moment) { 'use strict';
57718
57719
57720var zhCn = moment.defineLocale('zh-cn', {
57721 months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
57722 monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
57723 weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
57724 weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
57725 weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
57726 longDateFormat : {
57727 LT : 'HH:mm',
57728 LTS : 'HH:mm:ss',
57729 L : 'YYYY/MM/DD',
57730 LL : 'YYYY年M月D日',
57731 LLL : 'YYYY年M月D日Ah点mm分',
57732 LLLL : 'YYYY年M月D日ddddAh点mm分',
57733 l : 'YYYY/M/D',
57734 ll : 'YYYY年M月D日',
57735 lll : 'YYYY年M月D日 HH:mm',
57736 llll : 'YYYY年M月D日dddd HH:mm'
57737 },
57738 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
57739 meridiemHour: function (hour, meridiem) {
57740 if (hour === 12) {
57741 hour = 0;
57742 }
57743 if (meridiem === '凌晨' || meridiem === '早上' ||
57744 meridiem === '上午') {
57745 return hour;
57746 } else if (meridiem === '下午' || meridiem === '晚上') {
57747 return hour + 12;
57748 } else {
57749 // '中午'
57750 return hour >= 11 ? hour : hour + 12;
57751 }
57752 },
57753 meridiem : function (hour, minute, isLower) {
57754 var hm = hour * 100 + minute;
57755 if (hm < 600) {
57756 return '凌晨';
57757 } else if (hm < 900) {
57758 return '早上';
57759 } else if (hm < 1130) {
57760 return '上午';
57761 } else if (hm < 1230) {
57762 return '中午';
57763 } else if (hm < 1800) {
57764 return '下午';
57765 } else {
57766 return '晚上';
57767 }
57768 },
57769 calendar : {
57770 sameDay : '[今天]LT',
57771 nextDay : '[明天]LT',
57772 nextWeek : '[下]ddddLT',
57773 lastDay : '[昨天]LT',
57774 lastWeek : '[上]ddddLT',
57775 sameElse : 'L'
57776 },
57777 dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
57778 ordinal : function (number, period) {
57779 switch (period) {
57780 case 'd':
57781 case 'D':
57782 case 'DDD':
57783 return number + '日';
57784 case 'M':
57785 return number + '月';
57786 case 'w':
57787 case 'W':
57788 return number + '周';
57789 default:
57790 return number;
57791 }
57792 },
57793 relativeTime : {
57794 future : '%s内',
57795 past : '%s前',
57796 s : '几秒',
57797 ss : '%d 秒',
57798 m : '1 分钟',
57799 mm : '%d 分钟',
57800 h : '1 小时',
57801 hh : '%d 小时',
57802 d : '1 天',
57803 dd : '%d 天',
57804 M : '1 个月',
57805 MM : '%d 个月',
57806 y : '1 年',
57807 yy : '%d 年'
57808 },
57809 week : {
57810 // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
57811 dow : 1, // Monday is the first day of the week.
57812 doy : 4 // The week that contains Jan 4th is the first week of the year.
57813 }
57814});
57815
57816return zhCn;
57817
57818})));
57819
57820
57821/***/ }),
57822
57823/***/ "./node_modules/moment/locale/zh-hk.js":
57824/*!*********************************************!*\
57825 !*** ./node_modules/moment/locale/zh-hk.js ***!
57826 \*********************************************/
57827/*! no static exports found */
57828/***/ (function(module, exports, __webpack_require__) {
57829
57830//! moment.js locale configuration
57831
57832;(function (global, factory) {
57833 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57834 undefined
57835}(this, (function (moment) { 'use strict';
57836
57837
57838var zhHk = moment.defineLocale('zh-hk', {
57839 months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
57840 monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
57841 weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
57842 weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
57843 weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
57844 longDateFormat : {
57845 LT : 'HH:mm',
57846 LTS : 'HH:mm:ss',
57847 L : 'YYYY/MM/DD',
57848 LL : 'YYYY年M月D日',
57849 LLL : 'YYYY年M月D日 HH:mm',
57850 LLLL : 'YYYY年M月D日dddd HH:mm',
57851 l : 'YYYY/M/D',
57852 ll : 'YYYY年M月D日',
57853 lll : 'YYYY年M月D日 HH:mm',
57854 llll : 'YYYY年M月D日dddd HH:mm'
57855 },
57856 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
57857 meridiemHour : function (hour, meridiem) {
57858 if (hour === 12) {
57859 hour = 0;
57860 }
57861 if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
57862 return hour;
57863 } else if (meridiem === '中午') {
57864 return hour >= 11 ? hour : hour + 12;
57865 } else if (meridiem === '下午' || meridiem === '晚上') {
57866 return hour + 12;
57867 }
57868 },
57869 meridiem : function (hour, minute, isLower) {
57870 var hm = hour * 100 + minute;
57871 if (hm < 600) {
57872 return '凌晨';
57873 } else if (hm < 900) {
57874 return '早上';
57875 } else if (hm < 1130) {
57876 return '上午';
57877 } else if (hm < 1230) {
57878 return '中午';
57879 } else if (hm < 1800) {
57880 return '下午';
57881 } else {
57882 return '晚上';
57883 }
57884 },
57885 calendar : {
57886 sameDay : '[今天]LT',
57887 nextDay : '[明天]LT',
57888 nextWeek : '[下]ddddLT',
57889 lastDay : '[昨天]LT',
57890 lastWeek : '[上]ddddLT',
57891 sameElse : 'L'
57892 },
57893 dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
57894 ordinal : function (number, period) {
57895 switch (period) {
57896 case 'd' :
57897 case 'D' :
57898 case 'DDD' :
57899 return number + '日';
57900 case 'M' :
57901 return number + '月';
57902 case 'w' :
57903 case 'W' :
57904 return number + '週';
57905 default :
57906 return number;
57907 }
57908 },
57909 relativeTime : {
57910 future : '%s內',
57911 past : '%s前',
57912 s : '幾秒',
57913 ss : '%d 秒',
57914 m : '1 分鐘',
57915 mm : '%d 分鐘',
57916 h : '1 小時',
57917 hh : '%d 小時',
57918 d : '1 天',
57919 dd : '%d 天',
57920 M : '1 個月',
57921 MM : '%d 個月',
57922 y : '1 年',
57923 yy : '%d 年'
57924 }
57925});
57926
57927return zhHk;
57928
57929})));
57930
57931
57932/***/ }),
57933
57934/***/ "./node_modules/moment/locale/zh-tw.js":
57935/*!*********************************************!*\
57936 !*** ./node_modules/moment/locale/zh-tw.js ***!
57937 \*********************************************/
57938/*! no static exports found */
57939/***/ (function(module, exports, __webpack_require__) {
57940
57941//! moment.js locale configuration
57942
57943;(function (global, factory) {
57944 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
57945 undefined
57946}(this, (function (moment) { 'use strict';
57947
57948
57949var zhTw = moment.defineLocale('zh-tw', {
57950 months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
57951 monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
57952 weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
57953 weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
57954 weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
57955 longDateFormat : {
57956 LT : 'HH:mm',
57957 LTS : 'HH:mm:ss',
57958 L : 'YYYY/MM/DD',
57959 LL : 'YYYY年M月D日',
57960 LLL : 'YYYY年M月D日 HH:mm',
57961 LLLL : 'YYYY年M月D日dddd HH:mm',
57962 l : 'YYYY/M/D',
57963 ll : 'YYYY年M月D日',
57964 lll : 'YYYY年M月D日 HH:mm',
57965 llll : 'YYYY年M月D日dddd HH:mm'
57966 },
57967 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
57968 meridiemHour : function (hour, meridiem) {
57969 if (hour === 12) {
57970 hour = 0;
57971 }
57972 if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
57973 return hour;
57974 } else if (meridiem === '中午') {
57975 return hour >= 11 ? hour : hour + 12;
57976 } else if (meridiem === '下午' || meridiem === '晚上') {
57977 return hour + 12;
57978 }
57979 },
57980 meridiem : function (hour, minute, isLower) {
57981 var hm = hour * 100 + minute;
57982 if (hm < 600) {
57983 return '凌晨';
57984 } else if (hm < 900) {
57985 return '早上';
57986 } else if (hm < 1130) {
57987 return '上午';
57988 } else if (hm < 1230) {
57989 return '中午';
57990 } else if (hm < 1800) {
57991 return '下午';
57992 } else {
57993 return '晚上';
57994 }
57995 },
57996 calendar : {
57997 sameDay : '[今天]LT',
57998 nextDay : '[明天]LT',
57999 nextWeek : '[下]ddddLT',
58000 lastDay : '[昨天]LT',
58001 lastWeek : '[上]ddddLT',
58002 sameElse : 'L'
58003 },
58004 dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
58005 ordinal : function (number, period) {
58006 switch (period) {
58007 case 'd' :
58008 case 'D' :
58009 case 'DDD' :
58010 return number + '日';
58011 case 'M' :
58012 return number + '月';
58013 case 'w' :
58014 case 'W' :
58015 return number + '週';
58016 default :
58017 return number;
58018 }
58019 },
58020 relativeTime : {
58021 future : '%s內',
58022 past : '%s前',
58023 s : '幾秒',
58024 ss : '%d 秒',
58025 m : '1 分鐘',
58026 mm : '%d 分鐘',
58027 h : '1 小時',
58028 hh : '%d 小時',
58029 d : '1 天',
58030 dd : '%d 天',
58031 M : '1 個月',
58032 MM : '%d 個月',
58033 y : '1 年',
58034 yy : '%d 年'
58035 }
58036});
58037
58038return zhTw;
58039
58040})));
58041
58042
58043/***/ }),
58044
58045/***/ "./node_modules/moment/moment.js":
58046/*!***************************************!*\
58047 !*** ./node_modules/moment/moment.js ***!
58048 \***************************************/
58049/*! no static exports found */
58050/***/ (function(module, exports, __webpack_require__) {
58051
58052/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js
58053
58054;(function (global, factory) {
58055 true ? module.exports = factory() :
58056 undefined
58057}(this, (function () { 'use strict';
58058
58059var hookCallback;
58060
58061function hooks () {
58062 return hookCallback.apply(null, arguments);
58063}
58064
58065// This is done to register the method called with moment()
58066// without creating circular dependencies.
58067function setHookCallback (callback) {
58068 hookCallback = callback;
58069}
58070
58071function isArray(input) {
58072 return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
58073}
58074
58075function isObject(input) {
58076 // IE8 will treat undefined and null as object if it wasn't for
58077 // input != null
58078 return input != null && Object.prototype.toString.call(input) === '[object Object]';
58079}
58080
58081function isObjectEmpty(obj) {
58082 if (Object.getOwnPropertyNames) {
58083 return (Object.getOwnPropertyNames(obj).length === 0);
58084 } else {
58085 var k;
58086 for (k in obj) {
58087 if (obj.hasOwnProperty(k)) {
58088 return false;
58089 }
58090 }
58091 return true;
58092 }
58093}
58094
58095function isUndefined(input) {
58096 return input === void 0;
58097}
58098
58099function isNumber(input) {
58100 return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
58101}
58102
58103function isDate(input) {
58104 return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
58105}
58106
58107function map(arr, fn) {
58108 var res = [], i;
58109 for (i = 0; i < arr.length; ++i) {
58110 res.push(fn(arr[i], i));
58111 }
58112 return res;
58113}
58114
58115function hasOwnProp(a, b) {
58116 return Object.prototype.hasOwnProperty.call(a, b);
58117}
58118
58119function extend(a, b) {
58120 for (var i in b) {
58121 if (hasOwnProp(b, i)) {
58122 a[i] = b[i];
58123 }
58124 }
58125
58126 if (hasOwnProp(b, 'toString')) {
58127 a.toString = b.toString;
58128 }
58129
58130 if (hasOwnProp(b, 'valueOf')) {
58131 a.valueOf = b.valueOf;
58132 }
58133
58134 return a;
58135}
58136
58137function createUTC (input, format, locale, strict) {
58138 return createLocalOrUTC(input, format, locale, strict, true).utc();
58139}
58140
58141function defaultParsingFlags() {
58142 // We need to deep clone this object.
58143 return {
58144 empty : false,
58145 unusedTokens : [],
58146 unusedInput : [],
58147 overflow : -2,
58148 charsLeftOver : 0,
58149 nullInput : false,
58150 invalidMonth : null,
58151 invalidFormat : false,
58152 userInvalidated : false,
58153 iso : false,
58154 parsedDateParts : [],
58155 meridiem : null,
58156 rfc2822 : false,
58157 weekdayMismatch : false
58158 };
58159}
58160
58161function getParsingFlags(m) {
58162 if (m._pf == null) {
58163 m._pf = defaultParsingFlags();
58164 }
58165 return m._pf;
58166}
58167
58168var some;
58169if (Array.prototype.some) {
58170 some = Array.prototype.some;
58171} else {
58172 some = function (fun) {
58173 var t = Object(this);
58174 var len = t.length >>> 0;
58175
58176 for (var i = 0; i < len; i++) {
58177 if (i in t && fun.call(this, t[i], i, t)) {
58178 return true;
58179 }
58180 }
58181
58182 return false;
58183 };
58184}
58185
58186function isValid(m) {
58187 if (m._isValid == null) {
58188 var flags = getParsingFlags(m);
58189 var parsedParts = some.call(flags.parsedDateParts, function (i) {
58190 return i != null;
58191 });
58192 var isNowValid = !isNaN(m._d.getTime()) &&
58193 flags.overflow < 0 &&
58194 !flags.empty &&
58195 !flags.invalidMonth &&
58196 !flags.invalidWeekday &&
58197 !flags.weekdayMismatch &&
58198 !flags.nullInput &&
58199 !flags.invalidFormat &&
58200 !flags.userInvalidated &&
58201 (!flags.meridiem || (flags.meridiem && parsedParts));
58202
58203 if (m._strict) {
58204 isNowValid = isNowValid &&
58205 flags.charsLeftOver === 0 &&
58206 flags.unusedTokens.length === 0 &&
58207 flags.bigHour === undefined;
58208 }
58209
58210 if (Object.isFrozen == null || !Object.isFrozen(m)) {
58211 m._isValid = isNowValid;
58212 }
58213 else {
58214 return isNowValid;
58215 }
58216 }
58217 return m._isValid;
58218}
58219
58220function createInvalid (flags) {
58221 var m = createUTC(NaN);
58222 if (flags != null) {
58223 extend(getParsingFlags(m), flags);
58224 }
58225 else {
58226 getParsingFlags(m).userInvalidated = true;
58227 }
58228
58229 return m;
58230}
58231
58232// Plugins that add properties should also add the key here (null value),
58233// so we can properly clone ourselves.
58234var momentProperties = hooks.momentProperties = [];
58235
58236function copyConfig(to, from) {
58237 var i, prop, val;
58238
58239 if (!isUndefined(from._isAMomentObject)) {
58240 to._isAMomentObject = from._isAMomentObject;
58241 }
58242 if (!isUndefined(from._i)) {
58243 to._i = from._i;
58244 }
58245 if (!isUndefined(from._f)) {
58246 to._f = from._f;
58247 }
58248 if (!isUndefined(from._l)) {
58249 to._l = from._l;
58250 }
58251 if (!isUndefined(from._strict)) {
58252 to._strict = from._strict;
58253 }
58254 if (!isUndefined(from._tzm)) {
58255 to._tzm = from._tzm;
58256 }
58257 if (!isUndefined(from._isUTC)) {
58258 to._isUTC = from._isUTC;
58259 }
58260 if (!isUndefined(from._offset)) {
58261 to._offset = from._offset;
58262 }
58263 if (!isUndefined(from._pf)) {
58264 to._pf = getParsingFlags(from);
58265 }
58266 if (!isUndefined(from._locale)) {
58267 to._locale = from._locale;
58268 }
58269
58270 if (momentProperties.length > 0) {
58271 for (i = 0; i < momentProperties.length; i++) {
58272 prop = momentProperties[i];
58273 val = from[prop];
58274 if (!isUndefined(val)) {
58275 to[prop] = val;
58276 }
58277 }
58278 }
58279
58280 return to;
58281}
58282
58283var updateInProgress = false;
58284
58285// Moment prototype object
58286function Moment(config) {
58287 copyConfig(this, config);
58288 this._d = new Date(config._d != null ? config._d.getTime() : NaN);
58289 if (!this.isValid()) {
58290 this._d = new Date(NaN);
58291 }
58292 // Prevent infinite loop in case updateOffset creates new moment
58293 // objects.
58294 if (updateInProgress === false) {
58295 updateInProgress = true;
58296 hooks.updateOffset(this);
58297 updateInProgress = false;
58298 }
58299}
58300
58301function isMoment (obj) {
58302 return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
58303}
58304
58305function absFloor (number) {
58306 if (number < 0) {
58307 // -0 -> 0
58308 return Math.ceil(number) || 0;
58309 } else {
58310 return Math.floor(number);
58311 }
58312}
58313
58314function toInt(argumentForCoercion) {
58315 var coercedNumber = +argumentForCoercion,
58316 value = 0;
58317
58318 if (coercedNumber !== 0 && isFinite(coercedNumber)) {
58319 value = absFloor(coercedNumber);
58320 }
58321
58322 return value;
58323}
58324
58325// compare two arrays, return the number of differences
58326function compareArrays(array1, array2, dontConvert) {
58327 var len = Math.min(array1.length, array2.length),
58328 lengthDiff = Math.abs(array1.length - array2.length),
58329 diffs = 0,
58330 i;
58331 for (i = 0; i < len; i++) {
58332 if ((dontConvert && array1[i] !== array2[i]) ||
58333 (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
58334 diffs++;
58335 }
58336 }
58337 return diffs + lengthDiff;
58338}
58339
58340function warn(msg) {
58341 if (hooks.suppressDeprecationWarnings === false &&
58342 (typeof console !== 'undefined') && console.warn) {
58343 console.warn('Deprecation warning: ' + msg);
58344 }
58345}
58346
58347function deprecate(msg, fn) {
58348 var firstTime = true;
58349
58350 return extend(function () {
58351 if (hooks.deprecationHandler != null) {
58352 hooks.deprecationHandler(null, msg);
58353 }
58354 if (firstTime) {
58355 var args = [];
58356 var arg;
58357 for (var i = 0; i < arguments.length; i++) {
58358 arg = '';
58359 if (typeof arguments[i] === 'object') {
58360 arg += '\n[' + i + '] ';
58361 for (var key in arguments[0]) {
58362 arg += key + ': ' + arguments[0][key] + ', ';
58363 }
58364 arg = arg.slice(0, -2); // Remove trailing comma and space
58365 } else {
58366 arg = arguments[i];
58367 }
58368 args.push(arg);
58369 }
58370 warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
58371 firstTime = false;
58372 }
58373 return fn.apply(this, arguments);
58374 }, fn);
58375}
58376
58377var deprecations = {};
58378
58379function deprecateSimple(name, msg) {
58380 if (hooks.deprecationHandler != null) {
58381 hooks.deprecationHandler(name, msg);
58382 }
58383 if (!deprecations[name]) {
58384 warn(msg);
58385 deprecations[name] = true;
58386 }
58387}
58388
58389hooks.suppressDeprecationWarnings = false;
58390hooks.deprecationHandler = null;
58391
58392function isFunction(input) {
58393 return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
58394}
58395
58396function set (config) {
58397 var prop, i;
58398 for (i in config) {
58399 prop = config[i];
58400 if (isFunction(prop)) {
58401 this[i] = prop;
58402 } else {
58403 this['_' + i] = prop;
58404 }
58405 }
58406 this._config = config;
58407 // Lenient ordinal parsing accepts just a number in addition to
58408 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
58409 // TODO: Remove "ordinalParse" fallback in next major release.
58410 this._dayOfMonthOrdinalParseLenient = new RegExp(
58411 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
58412 '|' + (/\d{1,2}/).source);
58413}
58414
58415function mergeConfigs(parentConfig, childConfig) {
58416 var res = extend({}, parentConfig), prop;
58417 for (prop in childConfig) {
58418 if (hasOwnProp(childConfig, prop)) {
58419 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
58420 res[prop] = {};
58421 extend(res[prop], parentConfig[prop]);
58422 extend(res[prop], childConfig[prop]);
58423 } else if (childConfig[prop] != null) {
58424 res[prop] = childConfig[prop];
58425 } else {
58426 delete res[prop];
58427 }
58428 }
58429 }
58430 for (prop in parentConfig) {
58431 if (hasOwnProp(parentConfig, prop) &&
58432 !hasOwnProp(childConfig, prop) &&
58433 isObject(parentConfig[prop])) {
58434 // make sure changes to properties don't modify parent config
58435 res[prop] = extend({}, res[prop]);
58436 }
58437 }
58438 return res;
58439}
58440
58441function Locale(config) {
58442 if (config != null) {
58443 this.set(config);
58444 }
58445}
58446
58447var keys;
58448
58449if (Object.keys) {
58450 keys = Object.keys;
58451} else {
58452 keys = function (obj) {
58453 var i, res = [];
58454 for (i in obj) {
58455 if (hasOwnProp(obj, i)) {
58456 res.push(i);
58457 }
58458 }
58459 return res;
58460 };
58461}
58462
58463var defaultCalendar = {
58464 sameDay : '[Today at] LT',
58465 nextDay : '[Tomorrow at] LT',
58466 nextWeek : 'dddd [at] LT',
58467 lastDay : '[Yesterday at] LT',
58468 lastWeek : '[Last] dddd [at] LT',
58469 sameElse : 'L'
58470};
58471
58472function calendar (key, mom, now) {
58473 var output = this._calendar[key] || this._calendar['sameElse'];
58474 return isFunction(output) ? output.call(mom, now) : output;
58475}
58476
58477var defaultLongDateFormat = {
58478 LTS : 'h:mm:ss A',
58479 LT : 'h:mm A',
58480 L : 'MM/DD/YYYY',
58481 LL : 'MMMM D, YYYY',
58482 LLL : 'MMMM D, YYYY h:mm A',
58483 LLLL : 'dddd, MMMM D, YYYY h:mm A'
58484};
58485
58486function longDateFormat (key) {
58487 var format = this._longDateFormat[key],
58488 formatUpper = this._longDateFormat[key.toUpperCase()];
58489
58490 if (format || !formatUpper) {
58491 return format;
58492 }
58493
58494 this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
58495 return val.slice(1);
58496 });
58497
58498 return this._longDateFormat[key];
58499}
58500
58501var defaultInvalidDate = 'Invalid date';
58502
58503function invalidDate () {
58504 return this._invalidDate;
58505}
58506
58507var defaultOrdinal = '%d';
58508var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
58509
58510function ordinal (number) {
58511 return this._ordinal.replace('%d', number);
58512}
58513
58514var defaultRelativeTime = {
58515 future : 'in %s',
58516 past : '%s ago',
58517 s : 'a few seconds',
58518 ss : '%d seconds',
58519 m : 'a minute',
58520 mm : '%d minutes',
58521 h : 'an hour',
58522 hh : '%d hours',
58523 d : 'a day',
58524 dd : '%d days',
58525 M : 'a month',
58526 MM : '%d months',
58527 y : 'a year',
58528 yy : '%d years'
58529};
58530
58531function relativeTime (number, withoutSuffix, string, isFuture) {
58532 var output = this._relativeTime[string];
58533 return (isFunction(output)) ?
58534 output(number, withoutSuffix, string, isFuture) :
58535 output.replace(/%d/i, number);
58536}
58537
58538function pastFuture (diff, output) {
58539 var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
58540 return isFunction(format) ? format(output) : format.replace(/%s/i, output);
58541}
58542
58543var aliases = {};
58544
58545function addUnitAlias (unit, shorthand) {
58546 var lowerCase = unit.toLowerCase();
58547 aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
58548}
58549
58550function normalizeUnits(units) {
58551 return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
58552}
58553
58554function normalizeObjectUnits(inputObject) {
58555 var normalizedInput = {},
58556 normalizedProp,
58557 prop;
58558
58559 for (prop in inputObject) {
58560 if (hasOwnProp(inputObject, prop)) {
58561 normalizedProp = normalizeUnits(prop);
58562 if (normalizedProp) {
58563 normalizedInput[normalizedProp] = inputObject[prop];
58564 }
58565 }
58566 }
58567
58568 return normalizedInput;
58569}
58570
58571var priorities = {};
58572
58573function addUnitPriority(unit, priority) {
58574 priorities[unit] = priority;
58575}
58576
58577function getPrioritizedUnits(unitsObj) {
58578 var units = [];
58579 for (var u in unitsObj) {
58580 units.push({unit: u, priority: priorities[u]});
58581 }
58582 units.sort(function (a, b) {
58583 return a.priority - b.priority;
58584 });
58585 return units;
58586}
58587
58588function zeroFill(number, targetLength, forceSign) {
58589 var absNumber = '' + Math.abs(number),
58590 zerosToFill = targetLength - absNumber.length,
58591 sign = number >= 0;
58592 return (sign ? (forceSign ? '+' : '') : '-') +
58593 Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
58594}
58595
58596var formattingTokens = /(\[[^\[]*\])|(\\)?([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;
58597
58598var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
58599
58600var formatFunctions = {};
58601
58602var formatTokenFunctions = {};
58603
58604// token: 'M'
58605// padded: ['MM', 2]
58606// ordinal: 'Mo'
58607// callback: function () { this.month() + 1 }
58608function addFormatToken (token, padded, ordinal, callback) {
58609 var func = callback;
58610 if (typeof callback === 'string') {
58611 func = function () {
58612 return this[callback]();
58613 };
58614 }
58615 if (token) {
58616 formatTokenFunctions[token] = func;
58617 }
58618 if (padded) {
58619 formatTokenFunctions[padded[0]] = function () {
58620 return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
58621 };
58622 }
58623 if (ordinal) {
58624 formatTokenFunctions[ordinal] = function () {
58625 return this.localeData().ordinal(func.apply(this, arguments), token);
58626 };
58627 }
58628}
58629
58630function removeFormattingTokens(input) {
58631 if (input.match(/\[[\s\S]/)) {
58632 return input.replace(/^\[|\]$/g, '');
58633 }
58634 return input.replace(/\\/g, '');
58635}
58636
58637function makeFormatFunction(format) {
58638 var array = format.match(formattingTokens), i, length;
58639
58640 for (i = 0, length = array.length; i < length; i++) {
58641 if (formatTokenFunctions[array[i]]) {
58642 array[i] = formatTokenFunctions[array[i]];
58643 } else {
58644 array[i] = removeFormattingTokens(array[i]);
58645 }
58646 }
58647
58648 return function (mom) {
58649 var output = '', i;
58650 for (i = 0; i < length; i++) {
58651 output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
58652 }
58653 return output;
58654 };
58655}
58656
58657// format date using native date object
58658function formatMoment(m, format) {
58659 if (!m.isValid()) {
58660 return m.localeData().invalidDate();
58661 }
58662
58663 format = expandFormat(format, m.localeData());
58664 formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
58665
58666 return formatFunctions[format](m);
58667}
58668
58669function expandFormat(format, locale) {
58670 var i = 5;
58671
58672 function replaceLongDateFormatTokens(input) {
58673 return locale.longDateFormat(input) || input;
58674 }
58675
58676 localFormattingTokens.lastIndex = 0;
58677 while (i >= 0 && localFormattingTokens.test(format)) {
58678 format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
58679 localFormattingTokens.lastIndex = 0;
58680 i -= 1;
58681 }
58682
58683 return format;
58684}
58685
58686var match1 = /\d/; // 0 - 9
58687var match2 = /\d\d/; // 00 - 99
58688var match3 = /\d{3}/; // 000 - 999
58689var match4 = /\d{4}/; // 0000 - 9999
58690var match6 = /[+-]?\d{6}/; // -999999 - 999999
58691var match1to2 = /\d\d?/; // 0 - 99
58692var match3to4 = /\d\d\d\d?/; // 999 - 9999
58693var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
58694var match1to3 = /\d{1,3}/; // 0 - 999
58695var match1to4 = /\d{1,4}/; // 0 - 9999
58696var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
58697
58698var matchUnsigned = /\d+/; // 0 - inf
58699var matchSigned = /[+-]?\d+/; // -inf - inf
58700
58701var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
58702var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
58703
58704var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
58705
58706// any word (or two) characters or numbers including two/three word month in arabic.
58707// includes scottish gaelic two word and hyphenated months
58708var matchWord = /[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;
58709
58710var regexes = {};
58711
58712function addRegexToken (token, regex, strictRegex) {
58713 regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
58714 return (isStrict && strictRegex) ? strictRegex : regex;
58715 };
58716}
58717
58718function getParseRegexForToken (token, config) {
58719 if (!hasOwnProp(regexes, token)) {
58720 return new RegExp(unescapeFormat(token));
58721 }
58722
58723 return regexes[token](config._strict, config._locale);
58724}
58725
58726// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
58727function unescapeFormat(s) {
58728 return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
58729 return p1 || p2 || p3 || p4;
58730 }));
58731}
58732
58733function regexEscape(s) {
58734 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
58735}
58736
58737var tokens = {};
58738
58739function addParseToken (token, callback) {
58740 var i, func = callback;
58741 if (typeof token === 'string') {
58742 token = [token];
58743 }
58744 if (isNumber(callback)) {
58745 func = function (input, array) {
58746 array[callback] = toInt(input);
58747 };
58748 }
58749 for (i = 0; i < token.length; i++) {
58750 tokens[token[i]] = func;
58751 }
58752}
58753
58754function addWeekParseToken (token, callback) {
58755 addParseToken(token, function (input, array, config, token) {
58756 config._w = config._w || {};
58757 callback(input, config._w, config, token);
58758 });
58759}
58760
58761function addTimeToArrayFromToken(token, input, config) {
58762 if (input != null && hasOwnProp(tokens, token)) {
58763 tokens[token](input, config._a, config, token);
58764 }
58765}
58766
58767var YEAR = 0;
58768var MONTH = 1;
58769var DATE = 2;
58770var HOUR = 3;
58771var MINUTE = 4;
58772var SECOND = 5;
58773var MILLISECOND = 6;
58774var WEEK = 7;
58775var WEEKDAY = 8;
58776
58777// FORMATTING
58778
58779addFormatToken('Y', 0, 0, function () {
58780 var y = this.year();
58781 return y <= 9999 ? '' + y : '+' + y;
58782});
58783
58784addFormatToken(0, ['YY', 2], 0, function () {
58785 return this.year() % 100;
58786});
58787
58788addFormatToken(0, ['YYYY', 4], 0, 'year');
58789addFormatToken(0, ['YYYYY', 5], 0, 'year');
58790addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
58791
58792// ALIASES
58793
58794addUnitAlias('year', 'y');
58795
58796// PRIORITIES
58797
58798addUnitPriority('year', 1);
58799
58800// PARSING
58801
58802addRegexToken('Y', matchSigned);
58803addRegexToken('YY', match1to2, match2);
58804addRegexToken('YYYY', match1to4, match4);
58805addRegexToken('YYYYY', match1to6, match6);
58806addRegexToken('YYYYYY', match1to6, match6);
58807
58808addParseToken(['YYYYY', 'YYYYYY'], YEAR);
58809addParseToken('YYYY', function (input, array) {
58810 array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
58811});
58812addParseToken('YY', function (input, array) {
58813 array[YEAR] = hooks.parseTwoDigitYear(input);
58814});
58815addParseToken('Y', function (input, array) {
58816 array[YEAR] = parseInt(input, 10);
58817});
58818
58819// HELPERS
58820
58821function daysInYear(year) {
58822 return isLeapYear(year) ? 366 : 365;
58823}
58824
58825function isLeapYear(year) {
58826 return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
58827}
58828
58829// HOOKS
58830
58831hooks.parseTwoDigitYear = function (input) {
58832 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
58833};
58834
58835// MOMENTS
58836
58837var getSetYear = makeGetSet('FullYear', true);
58838
58839function getIsLeapYear () {
58840 return isLeapYear(this.year());
58841}
58842
58843function makeGetSet (unit, keepTime) {
58844 return function (value) {
58845 if (value != null) {
58846 set$1(this, unit, value);
58847 hooks.updateOffset(this, keepTime);
58848 return this;
58849 } else {
58850 return get(this, unit);
58851 }
58852 };
58853}
58854
58855function get (mom, unit) {
58856 return mom.isValid() ?
58857 mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
58858}
58859
58860function set$1 (mom, unit, value) {
58861 if (mom.isValid() && !isNaN(value)) {
58862 if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
58863 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
58864 }
58865 else {
58866 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
58867 }
58868 }
58869}
58870
58871// MOMENTS
58872
58873function stringGet (units) {
58874 units = normalizeUnits(units);
58875 if (isFunction(this[units])) {
58876 return this[units]();
58877 }
58878 return this;
58879}
58880
58881
58882function stringSet (units, value) {
58883 if (typeof units === 'object') {
58884 units = normalizeObjectUnits(units);
58885 var prioritized = getPrioritizedUnits(units);
58886 for (var i = 0; i < prioritized.length; i++) {
58887 this[prioritized[i].unit](units[prioritized[i].unit]);
58888 }
58889 } else {
58890 units = normalizeUnits(units);
58891 if (isFunction(this[units])) {
58892 return this[units](value);
58893 }
58894 }
58895 return this;
58896}
58897
58898function mod(n, x) {
58899 return ((n % x) + x) % x;
58900}
58901
58902var indexOf;
58903
58904if (Array.prototype.indexOf) {
58905 indexOf = Array.prototype.indexOf;
58906} else {
58907 indexOf = function (o) {
58908 // I know
58909 var i;
58910 for (i = 0; i < this.length; ++i) {
58911 if (this[i] === o) {
58912 return i;
58913 }
58914 }
58915 return -1;
58916 };
58917}
58918
58919function daysInMonth(year, month) {
58920 if (isNaN(year) || isNaN(month)) {
58921 return NaN;
58922 }
58923 var modMonth = mod(month, 12);
58924 year += (month - modMonth) / 12;
58925 return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
58926}
58927
58928// FORMATTING
58929
58930addFormatToken('M', ['MM', 2], 'Mo', function () {
58931 return this.month() + 1;
58932});
58933
58934addFormatToken('MMM', 0, 0, function (format) {
58935 return this.localeData().monthsShort(this, format);
58936});
58937
58938addFormatToken('MMMM', 0, 0, function (format) {
58939 return this.localeData().months(this, format);
58940});
58941
58942// ALIASES
58943
58944addUnitAlias('month', 'M');
58945
58946// PRIORITY
58947
58948addUnitPriority('month', 8);
58949
58950// PARSING
58951
58952addRegexToken('M', match1to2);
58953addRegexToken('MM', match1to2, match2);
58954addRegexToken('MMM', function (isStrict, locale) {
58955 return locale.monthsShortRegex(isStrict);
58956});
58957addRegexToken('MMMM', function (isStrict, locale) {
58958 return locale.monthsRegex(isStrict);
58959});
58960
58961addParseToken(['M', 'MM'], function (input, array) {
58962 array[MONTH] = toInt(input) - 1;
58963});
58964
58965addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
58966 var month = config._locale.monthsParse(input, token, config._strict);
58967 // if we didn't find a month name, mark the date as invalid.
58968 if (month != null) {
58969 array[MONTH] = month;
58970 } else {
58971 getParsingFlags(config).invalidMonth = input;
58972 }
58973});
58974
58975// LOCALES
58976
58977var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
58978var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
58979function localeMonths (m, format) {
58980 if (!m) {
58981 return isArray(this._months) ? this._months :
58982 this._months['standalone'];
58983 }
58984 return isArray(this._months) ? this._months[m.month()] :
58985 this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
58986}
58987
58988var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
58989function localeMonthsShort (m, format) {
58990 if (!m) {
58991 return isArray(this._monthsShort) ? this._monthsShort :
58992 this._monthsShort['standalone'];
58993 }
58994 return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
58995 this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
58996}
58997
58998function handleStrictParse(monthName, format, strict) {
58999 var i, ii, mom, llc = monthName.toLocaleLowerCase();
59000 if (!this._monthsParse) {
59001 // this is not used
59002 this._monthsParse = [];
59003 this._longMonthsParse = [];
59004 this._shortMonthsParse = [];
59005 for (i = 0; i < 12; ++i) {
59006 mom = createUTC([2000, i]);
59007 this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
59008 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
59009 }
59010 }
59011
59012 if (strict) {
59013 if (format === 'MMM') {
59014 ii = indexOf.call(this._shortMonthsParse, llc);
59015 return ii !== -1 ? ii : null;
59016 } else {
59017 ii = indexOf.call(this._longMonthsParse, llc);
59018 return ii !== -1 ? ii : null;
59019 }
59020 } else {
59021 if (format === 'MMM') {
59022 ii = indexOf.call(this._shortMonthsParse, llc);
59023 if (ii !== -1) {
59024 return ii;
59025 }
59026 ii = indexOf.call(this._longMonthsParse, llc);
59027 return ii !== -1 ? ii : null;
59028 } else {
59029 ii = indexOf.call(this._longMonthsParse, llc);
59030 if (ii !== -1) {
59031 return ii;
59032 }
59033 ii = indexOf.call(this._shortMonthsParse, llc);
59034 return ii !== -1 ? ii : null;
59035 }
59036 }
59037}
59038
59039function localeMonthsParse (monthName, format, strict) {
59040 var i, mom, regex;
59041
59042 if (this._monthsParseExact) {
59043 return handleStrictParse.call(this, monthName, format, strict);
59044 }
59045
59046 if (!this._monthsParse) {
59047 this._monthsParse = [];
59048 this._longMonthsParse = [];
59049 this._shortMonthsParse = [];
59050 }
59051
59052 // TODO: add sorting
59053 // Sorting makes sure if one month (or abbr) is a prefix of another
59054 // see sorting in computeMonthsParse
59055 for (i = 0; i < 12; i++) {
59056 // make the regex if we don't have it already
59057 mom = createUTC([2000, i]);
59058 if (strict && !this._longMonthsParse[i]) {
59059 this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
59060 this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
59061 }
59062 if (!strict && !this._monthsParse[i]) {
59063 regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
59064 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
59065 }
59066 // test the regex
59067 if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
59068 return i;
59069 } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
59070 return i;
59071 } else if (!strict && this._monthsParse[i].test(monthName)) {
59072 return i;
59073 }
59074 }
59075}
59076
59077// MOMENTS
59078
59079function setMonth (mom, value) {
59080 var dayOfMonth;
59081
59082 if (!mom.isValid()) {
59083 // No op
59084 return mom;
59085 }
59086
59087 if (typeof value === 'string') {
59088 if (/^\d+$/.test(value)) {
59089 value = toInt(value);
59090 } else {
59091 value = mom.localeData().monthsParse(value);
59092 // TODO: Another silent failure?
59093 if (!isNumber(value)) {
59094 return mom;
59095 }
59096 }
59097 }
59098
59099 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
59100 mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
59101 return mom;
59102}
59103
59104function getSetMonth (value) {
59105 if (value != null) {
59106 setMonth(this, value);
59107 hooks.updateOffset(this, true);
59108 return this;
59109 } else {
59110 return get(this, 'Month');
59111 }
59112}
59113
59114function getDaysInMonth () {
59115 return daysInMonth(this.year(), this.month());
59116}
59117
59118var defaultMonthsShortRegex = matchWord;
59119function monthsShortRegex (isStrict) {
59120 if (this._monthsParseExact) {
59121 if (!hasOwnProp(this, '_monthsRegex')) {
59122 computeMonthsParse.call(this);
59123 }
59124 if (isStrict) {
59125 return this._monthsShortStrictRegex;
59126 } else {
59127 return this._monthsShortRegex;
59128 }
59129 } else {
59130 if (!hasOwnProp(this, '_monthsShortRegex')) {
59131 this._monthsShortRegex = defaultMonthsShortRegex;
59132 }
59133 return this._monthsShortStrictRegex && isStrict ?
59134 this._monthsShortStrictRegex : this._monthsShortRegex;
59135 }
59136}
59137
59138var defaultMonthsRegex = matchWord;
59139function monthsRegex (isStrict) {
59140 if (this._monthsParseExact) {
59141 if (!hasOwnProp(this, '_monthsRegex')) {
59142 computeMonthsParse.call(this);
59143 }
59144 if (isStrict) {
59145 return this._monthsStrictRegex;
59146 } else {
59147 return this._monthsRegex;
59148 }
59149 } else {
59150 if (!hasOwnProp(this, '_monthsRegex')) {
59151 this._monthsRegex = defaultMonthsRegex;
59152 }
59153 return this._monthsStrictRegex && isStrict ?
59154 this._monthsStrictRegex : this._monthsRegex;
59155 }
59156}
59157
59158function computeMonthsParse () {
59159 function cmpLenRev(a, b) {
59160 return b.length - a.length;
59161 }
59162
59163 var shortPieces = [], longPieces = [], mixedPieces = [],
59164 i, mom;
59165 for (i = 0; i < 12; i++) {
59166 // make the regex if we don't have it already
59167 mom = createUTC([2000, i]);
59168 shortPieces.push(this.monthsShort(mom, ''));
59169 longPieces.push(this.months(mom, ''));
59170 mixedPieces.push(this.months(mom, ''));
59171 mixedPieces.push(this.monthsShort(mom, ''));
59172 }
59173 // Sorting makes sure if one month (or abbr) is a prefix of another it
59174 // will match the longer piece.
59175 shortPieces.sort(cmpLenRev);
59176 longPieces.sort(cmpLenRev);
59177 mixedPieces.sort(cmpLenRev);
59178 for (i = 0; i < 12; i++) {
59179 shortPieces[i] = regexEscape(shortPieces[i]);
59180 longPieces[i] = regexEscape(longPieces[i]);
59181 }
59182 for (i = 0; i < 24; i++) {
59183 mixedPieces[i] = regexEscape(mixedPieces[i]);
59184 }
59185
59186 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
59187 this._monthsShortRegex = this._monthsRegex;
59188 this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
59189 this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
59190}
59191
59192function createDate (y, m, d, h, M, s, ms) {
59193 // can't just apply() to create a date:
59194 // https://stackoverflow.com/q/181348
59195 var date = new Date(y, m, d, h, M, s, ms);
59196
59197 // the date constructor remaps years 0-99 to 1900-1999
59198 if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
59199 date.setFullYear(y);
59200 }
59201 return date;
59202}
59203
59204function createUTCDate (y) {
59205 var date = new Date(Date.UTC.apply(null, arguments));
59206
59207 // the Date.UTC function remaps years 0-99 to 1900-1999
59208 if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
59209 date.setUTCFullYear(y);
59210 }
59211 return date;
59212}
59213
59214// start-of-first-week - start-of-year
59215function firstWeekOffset(year, dow, doy) {
59216 var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
59217 fwd = 7 + dow - doy,
59218 // first-week day local weekday -- which local weekday is fwd
59219 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
59220
59221 return -fwdlw + fwd - 1;
59222}
59223
59224// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
59225function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
59226 var localWeekday = (7 + weekday - dow) % 7,
59227 weekOffset = firstWeekOffset(year, dow, doy),
59228 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
59229 resYear, resDayOfYear;
59230
59231 if (dayOfYear <= 0) {
59232 resYear = year - 1;
59233 resDayOfYear = daysInYear(resYear) + dayOfYear;
59234 } else if (dayOfYear > daysInYear(year)) {
59235 resYear = year + 1;
59236 resDayOfYear = dayOfYear - daysInYear(year);
59237 } else {
59238 resYear = year;
59239 resDayOfYear = dayOfYear;
59240 }
59241
59242 return {
59243 year: resYear,
59244 dayOfYear: resDayOfYear
59245 };
59246}
59247
59248function weekOfYear(mom, dow, doy) {
59249 var weekOffset = firstWeekOffset(mom.year(), dow, doy),
59250 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
59251 resWeek, resYear;
59252
59253 if (week < 1) {
59254 resYear = mom.year() - 1;
59255 resWeek = week + weeksInYear(resYear, dow, doy);
59256 } else if (week > weeksInYear(mom.year(), dow, doy)) {
59257 resWeek = week - weeksInYear(mom.year(), dow, doy);
59258 resYear = mom.year() + 1;
59259 } else {
59260 resYear = mom.year();
59261 resWeek = week;
59262 }
59263
59264 return {
59265 week: resWeek,
59266 year: resYear
59267 };
59268}
59269
59270function weeksInYear(year, dow, doy) {
59271 var weekOffset = firstWeekOffset(year, dow, doy),
59272 weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
59273 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
59274}
59275
59276// FORMATTING
59277
59278addFormatToken('w', ['ww', 2], 'wo', 'week');
59279addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
59280
59281// ALIASES
59282
59283addUnitAlias('week', 'w');
59284addUnitAlias('isoWeek', 'W');
59285
59286// PRIORITIES
59287
59288addUnitPriority('week', 5);
59289addUnitPriority('isoWeek', 5);
59290
59291// PARSING
59292
59293addRegexToken('w', match1to2);
59294addRegexToken('ww', match1to2, match2);
59295addRegexToken('W', match1to2);
59296addRegexToken('WW', match1to2, match2);
59297
59298addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
59299 week[token.substr(0, 1)] = toInt(input);
59300});
59301
59302// HELPERS
59303
59304// LOCALES
59305
59306function localeWeek (mom) {
59307 return weekOfYear(mom, this._week.dow, this._week.doy).week;
59308}
59309
59310var defaultLocaleWeek = {
59311 dow : 0, // Sunday is the first day of the week.
59312 doy : 6 // The week that contains Jan 1st is the first week of the year.
59313};
59314
59315function localeFirstDayOfWeek () {
59316 return this._week.dow;
59317}
59318
59319function localeFirstDayOfYear () {
59320 return this._week.doy;
59321}
59322
59323// MOMENTS
59324
59325function getSetWeek (input) {
59326 var week = this.localeData().week(this);
59327 return input == null ? week : this.add((input - week) * 7, 'd');
59328}
59329
59330function getSetISOWeek (input) {
59331 var week = weekOfYear(this, 1, 4).week;
59332 return input == null ? week : this.add((input - week) * 7, 'd');
59333}
59334
59335// FORMATTING
59336
59337addFormatToken('d', 0, 'do', 'day');
59338
59339addFormatToken('dd', 0, 0, function (format) {
59340 return this.localeData().weekdaysMin(this, format);
59341});
59342
59343addFormatToken('ddd', 0, 0, function (format) {
59344 return this.localeData().weekdaysShort(this, format);
59345});
59346
59347addFormatToken('dddd', 0, 0, function (format) {
59348 return this.localeData().weekdays(this, format);
59349});
59350
59351addFormatToken('e', 0, 0, 'weekday');
59352addFormatToken('E', 0, 0, 'isoWeekday');
59353
59354// ALIASES
59355
59356addUnitAlias('day', 'd');
59357addUnitAlias('weekday', 'e');
59358addUnitAlias('isoWeekday', 'E');
59359
59360// PRIORITY
59361addUnitPriority('day', 11);
59362addUnitPriority('weekday', 11);
59363addUnitPriority('isoWeekday', 11);
59364
59365// PARSING
59366
59367addRegexToken('d', match1to2);
59368addRegexToken('e', match1to2);
59369addRegexToken('E', match1to2);
59370addRegexToken('dd', function (isStrict, locale) {
59371 return locale.weekdaysMinRegex(isStrict);
59372});
59373addRegexToken('ddd', function (isStrict, locale) {
59374 return locale.weekdaysShortRegex(isStrict);
59375});
59376addRegexToken('dddd', function (isStrict, locale) {
59377 return locale.weekdaysRegex(isStrict);
59378});
59379
59380addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
59381 var weekday = config._locale.weekdaysParse(input, token, config._strict);
59382 // if we didn't get a weekday name, mark the date as invalid
59383 if (weekday != null) {
59384 week.d = weekday;
59385 } else {
59386 getParsingFlags(config).invalidWeekday = input;
59387 }
59388});
59389
59390addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
59391 week[token] = toInt(input);
59392});
59393
59394// HELPERS
59395
59396function parseWeekday(input, locale) {
59397 if (typeof input !== 'string') {
59398 return input;
59399 }
59400
59401 if (!isNaN(input)) {
59402 return parseInt(input, 10);
59403 }
59404
59405 input = locale.weekdaysParse(input);
59406 if (typeof input === 'number') {
59407 return input;
59408 }
59409
59410 return null;
59411}
59412
59413function parseIsoWeekday(input, locale) {
59414 if (typeof input === 'string') {
59415 return locale.weekdaysParse(input) % 7 || 7;
59416 }
59417 return isNaN(input) ? null : input;
59418}
59419
59420// LOCALES
59421
59422var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
59423function localeWeekdays (m, format) {
59424 if (!m) {
59425 return isArray(this._weekdays) ? this._weekdays :
59426 this._weekdays['standalone'];
59427 }
59428 return isArray(this._weekdays) ? this._weekdays[m.day()] :
59429 this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
59430}
59431
59432var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
59433function localeWeekdaysShort (m) {
59434 return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
59435}
59436
59437var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
59438function localeWeekdaysMin (m) {
59439 return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
59440}
59441
59442function handleStrictParse$1(weekdayName, format, strict) {
59443 var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
59444 if (!this._weekdaysParse) {
59445 this._weekdaysParse = [];
59446 this._shortWeekdaysParse = [];
59447 this._minWeekdaysParse = [];
59448
59449 for (i = 0; i < 7; ++i) {
59450 mom = createUTC([2000, 1]).day(i);
59451 this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
59452 this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
59453 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
59454 }
59455 }
59456
59457 if (strict) {
59458 if (format === 'dddd') {
59459 ii = indexOf.call(this._weekdaysParse, llc);
59460 return ii !== -1 ? ii : null;
59461 } else if (format === 'ddd') {
59462 ii = indexOf.call(this._shortWeekdaysParse, llc);
59463 return ii !== -1 ? ii : null;
59464 } else {
59465 ii = indexOf.call(this._minWeekdaysParse, llc);
59466 return ii !== -1 ? ii : null;
59467 }
59468 } else {
59469 if (format === 'dddd') {
59470 ii = indexOf.call(this._weekdaysParse, llc);
59471 if (ii !== -1) {
59472 return ii;
59473 }
59474 ii = indexOf.call(this._shortWeekdaysParse, llc);
59475 if (ii !== -1) {
59476 return ii;
59477 }
59478 ii = indexOf.call(this._minWeekdaysParse, llc);
59479 return ii !== -1 ? ii : null;
59480 } else if (format === 'ddd') {
59481 ii = indexOf.call(this._shortWeekdaysParse, llc);
59482 if (ii !== -1) {
59483 return ii;
59484 }
59485 ii = indexOf.call(this._weekdaysParse, llc);
59486 if (ii !== -1) {
59487 return ii;
59488 }
59489 ii = indexOf.call(this._minWeekdaysParse, llc);
59490 return ii !== -1 ? ii : null;
59491 } else {
59492 ii = indexOf.call(this._minWeekdaysParse, llc);
59493 if (ii !== -1) {
59494 return ii;
59495 }
59496 ii = indexOf.call(this._weekdaysParse, llc);
59497 if (ii !== -1) {
59498 return ii;
59499 }
59500 ii = indexOf.call(this._shortWeekdaysParse, llc);
59501 return ii !== -1 ? ii : null;
59502 }
59503 }
59504}
59505
59506function localeWeekdaysParse (weekdayName, format, strict) {
59507 var i, mom, regex;
59508
59509 if (this._weekdaysParseExact) {
59510 return handleStrictParse$1.call(this, weekdayName, format, strict);
59511 }
59512
59513 if (!this._weekdaysParse) {
59514 this._weekdaysParse = [];
59515 this._minWeekdaysParse = [];
59516 this._shortWeekdaysParse = [];
59517 this._fullWeekdaysParse = [];
59518 }
59519
59520 for (i = 0; i < 7; i++) {
59521 // make the regex if we don't have it already
59522
59523 mom = createUTC([2000, 1]).day(i);
59524 if (strict && !this._fullWeekdaysParse[i]) {
59525 this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i');
59526 this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i');
59527 this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i');
59528 }
59529 if (!this._weekdaysParse[i]) {
59530 regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
59531 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
59532 }
59533 // test the regex
59534 if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
59535 return i;
59536 } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
59537 return i;
59538 } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
59539 return i;
59540 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
59541 return i;
59542 }
59543 }
59544}
59545
59546// MOMENTS
59547
59548function getSetDayOfWeek (input) {
59549 if (!this.isValid()) {
59550 return input != null ? this : NaN;
59551 }
59552 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
59553 if (input != null) {
59554 input = parseWeekday(input, this.localeData());
59555 return this.add(input - day, 'd');
59556 } else {
59557 return day;
59558 }
59559}
59560
59561function getSetLocaleDayOfWeek (input) {
59562 if (!this.isValid()) {
59563 return input != null ? this : NaN;
59564 }
59565 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
59566 return input == null ? weekday : this.add(input - weekday, 'd');
59567}
59568
59569function getSetISODayOfWeek (input) {
59570 if (!this.isValid()) {
59571 return input != null ? this : NaN;
59572 }
59573
59574 // behaves the same as moment#day except
59575 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
59576 // as a setter, sunday should belong to the previous week.
59577
59578 if (input != null) {
59579 var weekday = parseIsoWeekday(input, this.localeData());
59580 return this.day(this.day() % 7 ? weekday : weekday - 7);
59581 } else {
59582 return this.day() || 7;
59583 }
59584}
59585
59586var defaultWeekdaysRegex = matchWord;
59587function weekdaysRegex (isStrict) {
59588 if (this._weekdaysParseExact) {
59589 if (!hasOwnProp(this, '_weekdaysRegex')) {
59590 computeWeekdaysParse.call(this);
59591 }
59592 if (isStrict) {
59593 return this._weekdaysStrictRegex;
59594 } else {
59595 return this._weekdaysRegex;
59596 }
59597 } else {
59598 if (!hasOwnProp(this, '_weekdaysRegex')) {
59599 this._weekdaysRegex = defaultWeekdaysRegex;
59600 }
59601 return this._weekdaysStrictRegex && isStrict ?
59602 this._weekdaysStrictRegex : this._weekdaysRegex;
59603 }
59604}
59605
59606var defaultWeekdaysShortRegex = matchWord;
59607function weekdaysShortRegex (isStrict) {
59608 if (this._weekdaysParseExact) {
59609 if (!hasOwnProp(this, '_weekdaysRegex')) {
59610 computeWeekdaysParse.call(this);
59611 }
59612 if (isStrict) {
59613 return this._weekdaysShortStrictRegex;
59614 } else {
59615 return this._weekdaysShortRegex;
59616 }
59617 } else {
59618 if (!hasOwnProp(this, '_weekdaysShortRegex')) {
59619 this._weekdaysShortRegex = defaultWeekdaysShortRegex;
59620 }
59621 return this._weekdaysShortStrictRegex && isStrict ?
59622 this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
59623 }
59624}
59625
59626var defaultWeekdaysMinRegex = matchWord;
59627function weekdaysMinRegex (isStrict) {
59628 if (this._weekdaysParseExact) {
59629 if (!hasOwnProp(this, '_weekdaysRegex')) {
59630 computeWeekdaysParse.call(this);
59631 }
59632 if (isStrict) {
59633 return this._weekdaysMinStrictRegex;
59634 } else {
59635 return this._weekdaysMinRegex;
59636 }
59637 } else {
59638 if (!hasOwnProp(this, '_weekdaysMinRegex')) {
59639 this._weekdaysMinRegex = defaultWeekdaysMinRegex;
59640 }
59641 return this._weekdaysMinStrictRegex && isStrict ?
59642 this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
59643 }
59644}
59645
59646
59647function computeWeekdaysParse () {
59648 function cmpLenRev(a, b) {
59649 return b.length - a.length;
59650 }
59651
59652 var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
59653 i, mom, minp, shortp, longp;
59654 for (i = 0; i < 7; i++) {
59655 // make the regex if we don't have it already
59656 mom = createUTC([2000, 1]).day(i);
59657 minp = this.weekdaysMin(mom, '');
59658 shortp = this.weekdaysShort(mom, '');
59659 longp = this.weekdays(mom, '');
59660 minPieces.push(minp);
59661 shortPieces.push(shortp);
59662 longPieces.push(longp);
59663 mixedPieces.push(minp);
59664 mixedPieces.push(shortp);
59665 mixedPieces.push(longp);
59666 }
59667 // Sorting makes sure if one weekday (or abbr) is a prefix of another it
59668 // will match the longer piece.
59669 minPieces.sort(cmpLenRev);
59670 shortPieces.sort(cmpLenRev);
59671 longPieces.sort(cmpLenRev);
59672 mixedPieces.sort(cmpLenRev);
59673 for (i = 0; i < 7; i++) {
59674 shortPieces[i] = regexEscape(shortPieces[i]);
59675 longPieces[i] = regexEscape(longPieces[i]);
59676 mixedPieces[i] = regexEscape(mixedPieces[i]);
59677 }
59678
59679 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
59680 this._weekdaysShortRegex = this._weekdaysRegex;
59681 this._weekdaysMinRegex = this._weekdaysRegex;
59682
59683 this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
59684 this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
59685 this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
59686}
59687
59688// FORMATTING
59689
59690function hFormat() {
59691 return this.hours() % 12 || 12;
59692}
59693
59694function kFormat() {
59695 return this.hours() || 24;
59696}
59697
59698addFormatToken('H', ['HH', 2], 0, 'hour');
59699addFormatToken('h', ['hh', 2], 0, hFormat);
59700addFormatToken('k', ['kk', 2], 0, kFormat);
59701
59702addFormatToken('hmm', 0, 0, function () {
59703 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
59704});
59705
59706addFormatToken('hmmss', 0, 0, function () {
59707 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
59708 zeroFill(this.seconds(), 2);
59709});
59710
59711addFormatToken('Hmm', 0, 0, function () {
59712 return '' + this.hours() + zeroFill(this.minutes(), 2);
59713});
59714
59715addFormatToken('Hmmss', 0, 0, function () {
59716 return '' + this.hours() + zeroFill(this.minutes(), 2) +
59717 zeroFill(this.seconds(), 2);
59718});
59719
59720function meridiem (token, lowercase) {
59721 addFormatToken(token, 0, 0, function () {
59722 return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
59723 });
59724}
59725
59726meridiem('a', true);
59727meridiem('A', false);
59728
59729// ALIASES
59730
59731addUnitAlias('hour', 'h');
59732
59733// PRIORITY
59734addUnitPriority('hour', 13);
59735
59736// PARSING
59737
59738function matchMeridiem (isStrict, locale) {
59739 return locale._meridiemParse;
59740}
59741
59742addRegexToken('a', matchMeridiem);
59743addRegexToken('A', matchMeridiem);
59744addRegexToken('H', match1to2);
59745addRegexToken('h', match1to2);
59746addRegexToken('k', match1to2);
59747addRegexToken('HH', match1to2, match2);
59748addRegexToken('hh', match1to2, match2);
59749addRegexToken('kk', match1to2, match2);
59750
59751addRegexToken('hmm', match3to4);
59752addRegexToken('hmmss', match5to6);
59753addRegexToken('Hmm', match3to4);
59754addRegexToken('Hmmss', match5to6);
59755
59756addParseToken(['H', 'HH'], HOUR);
59757addParseToken(['k', 'kk'], function (input, array, config) {
59758 var kInput = toInt(input);
59759 array[HOUR] = kInput === 24 ? 0 : kInput;
59760});
59761addParseToken(['a', 'A'], function (input, array, config) {
59762 config._isPm = config._locale.isPM(input);
59763 config._meridiem = input;
59764});
59765addParseToken(['h', 'hh'], function (input, array, config) {
59766 array[HOUR] = toInt(input);
59767 getParsingFlags(config).bigHour = true;
59768});
59769addParseToken('hmm', function (input, array, config) {
59770 var pos = input.length - 2;
59771 array[HOUR] = toInt(input.substr(0, pos));
59772 array[MINUTE] = toInt(input.substr(pos));
59773 getParsingFlags(config).bigHour = true;
59774});
59775addParseToken('hmmss', function (input, array, config) {
59776 var pos1 = input.length - 4;
59777 var pos2 = input.length - 2;
59778 array[HOUR] = toInt(input.substr(0, pos1));
59779 array[MINUTE] = toInt(input.substr(pos1, 2));
59780 array[SECOND] = toInt(input.substr(pos2));
59781 getParsingFlags(config).bigHour = true;
59782});
59783addParseToken('Hmm', function (input, array, config) {
59784 var pos = input.length - 2;
59785 array[HOUR] = toInt(input.substr(0, pos));
59786 array[MINUTE] = toInt(input.substr(pos));
59787});
59788addParseToken('Hmmss', function (input, array, config) {
59789 var pos1 = input.length - 4;
59790 var pos2 = input.length - 2;
59791 array[HOUR] = toInt(input.substr(0, pos1));
59792 array[MINUTE] = toInt(input.substr(pos1, 2));
59793 array[SECOND] = toInt(input.substr(pos2));
59794});
59795
59796// LOCALES
59797
59798function localeIsPM (input) {
59799 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
59800 // Using charAt should be more compatible.
59801 return ((input + '').toLowerCase().charAt(0) === 'p');
59802}
59803
59804var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
59805function localeMeridiem (hours, minutes, isLower) {
59806 if (hours > 11) {
59807 return isLower ? 'pm' : 'PM';
59808 } else {
59809 return isLower ? 'am' : 'AM';
59810 }
59811}
59812
59813
59814// MOMENTS
59815
59816// Setting the hour should keep the time, because the user explicitly
59817// specified which hour he wants. So trying to maintain the same hour (in
59818// a new timezone) makes sense. Adding/subtracting hours does not follow
59819// this rule.
59820var getSetHour = makeGetSet('Hours', true);
59821
59822var baseConfig = {
59823 calendar: defaultCalendar,
59824 longDateFormat: defaultLongDateFormat,
59825 invalidDate: defaultInvalidDate,
59826 ordinal: defaultOrdinal,
59827 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
59828 relativeTime: defaultRelativeTime,
59829
59830 months: defaultLocaleMonths,
59831 monthsShort: defaultLocaleMonthsShort,
59832
59833 week: defaultLocaleWeek,
59834
59835 weekdays: defaultLocaleWeekdays,
59836 weekdaysMin: defaultLocaleWeekdaysMin,
59837 weekdaysShort: defaultLocaleWeekdaysShort,
59838
59839 meridiemParse: defaultLocaleMeridiemParse
59840};
59841
59842// internal storage for locale config files
59843var locales = {};
59844var localeFamilies = {};
59845var globalLocale;
59846
59847function normalizeLocale(key) {
59848 return key ? key.toLowerCase().replace('_', '-') : key;
59849}
59850
59851// pick the locale from the array
59852// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
59853// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
59854function chooseLocale(names) {
59855 var i = 0, j, next, locale, split;
59856
59857 while (i < names.length) {
59858 split = normalizeLocale(names[i]).split('-');
59859 j = split.length;
59860 next = normalizeLocale(names[i + 1]);
59861 next = next ? next.split('-') : null;
59862 while (j > 0) {
59863 locale = loadLocale(split.slice(0, j).join('-'));
59864 if (locale) {
59865 return locale;
59866 }
59867 if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
59868 //the next array item is better than a shallower substring of this one
59869 break;
59870 }
59871 j--;
59872 }
59873 i++;
59874 }
59875 return globalLocale;
59876}
59877
59878function loadLocale(name) {
59879 var oldLocale = null;
59880 // TODO: Find a better way to register and load all the locales in Node
59881 if (!locales[name] && (typeof module !== 'undefined') &&
59882 module && module.exports) {
59883 try {
59884 oldLocale = globalLocale._abbr;
59885 var aliasedRequire = require;
59886 __webpack_require__("./node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name);
59887 getSetGlobalLocale(oldLocale);
59888 } catch (e) {}
59889 }
59890 return locales[name];
59891}
59892
59893// This function will load locale and then set the global locale. If
59894// no arguments are passed in, it will simply return the current global
59895// locale key.
59896function getSetGlobalLocale (key, values) {
59897 var data;
59898 if (key) {
59899 if (isUndefined(values)) {
59900 data = getLocale(key);
59901 }
59902 else {
59903 data = defineLocale(key, values);
59904 }
59905
59906 if (data) {
59907 // moment.duration._locale = moment._locale = data;
59908 globalLocale = data;
59909 }
59910 else {
59911 if ((typeof console !== 'undefined') && console.warn) {
59912 //warn user if arguments are passed but the locale could not be set
59913 console.warn('Locale ' + key + ' not found. Did you forget to load it?');
59914 }
59915 }
59916 }
59917
59918 return globalLocale._abbr;
59919}
59920
59921function defineLocale (name, config) {
59922 if (config !== null) {
59923 var locale, parentConfig = baseConfig;
59924 config.abbr = name;
59925 if (locales[name] != null) {
59926 deprecateSimple('defineLocaleOverride',
59927 'use moment.updateLocale(localeName, config) to change ' +
59928 'an existing locale. moment.defineLocale(localeName, ' +
59929 'config) should only be used for creating a new locale ' +
59930 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
59931 parentConfig = locales[name]._config;
59932 } else if (config.parentLocale != null) {
59933 if (locales[config.parentLocale] != null) {
59934 parentConfig = locales[config.parentLocale]._config;
59935 } else {
59936 locale = loadLocale(config.parentLocale);
59937 if (locale != null) {
59938 parentConfig = locale._config;
59939 } else {
59940 if (!localeFamilies[config.parentLocale]) {
59941 localeFamilies[config.parentLocale] = [];
59942 }
59943 localeFamilies[config.parentLocale].push({
59944 name: name,
59945 config: config
59946 });
59947 return null;
59948 }
59949 }
59950 }
59951 locales[name] = new Locale(mergeConfigs(parentConfig, config));
59952
59953 if (localeFamilies[name]) {
59954 localeFamilies[name].forEach(function (x) {
59955 defineLocale(x.name, x.config);
59956 });
59957 }
59958
59959 // backwards compat for now: also set the locale
59960 // make sure we set the locale AFTER all child locales have been
59961 // created, so we won't end up with the child locale set.
59962 getSetGlobalLocale(name);
59963
59964
59965 return locales[name];
59966 } else {
59967 // useful for testing
59968 delete locales[name];
59969 return null;
59970 }
59971}
59972
59973function updateLocale(name, config) {
59974 if (config != null) {
59975 var locale, tmpLocale, parentConfig = baseConfig;
59976 // MERGE
59977 tmpLocale = loadLocale(name);
59978 if (tmpLocale != null) {
59979 parentConfig = tmpLocale._config;
59980 }
59981 config = mergeConfigs(parentConfig, config);
59982 locale = new Locale(config);
59983 locale.parentLocale = locales[name];
59984 locales[name] = locale;
59985
59986 // backwards compat for now: also set the locale
59987 getSetGlobalLocale(name);
59988 } else {
59989 // pass null for config to unupdate, useful for tests
59990 if (locales[name] != null) {
59991 if (locales[name].parentLocale != null) {
59992 locales[name] = locales[name].parentLocale;
59993 } else if (locales[name] != null) {
59994 delete locales[name];
59995 }
59996 }
59997 }
59998 return locales[name];
59999}
60000
60001// returns locale data
60002function getLocale (key) {
60003 var locale;
60004
60005 if (key && key._locale && key._locale._abbr) {
60006 key = key._locale._abbr;
60007 }
60008
60009 if (!key) {
60010 return globalLocale;
60011 }
60012
60013 if (!isArray(key)) {
60014 //short-circuit everything else
60015 locale = loadLocale(key);
60016 if (locale) {
60017 return locale;
60018 }
60019 key = [key];
60020 }
60021
60022 return chooseLocale(key);
60023}
60024
60025function listLocales() {
60026 return keys(locales);
60027}
60028
60029function checkOverflow (m) {
60030 var overflow;
60031 var a = m._a;
60032
60033 if (a && getParsingFlags(m).overflow === -2) {
60034 overflow =
60035 a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
60036 a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
60037 a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
60038 a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
60039 a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
60040 a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
60041 -1;
60042
60043 if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
60044 overflow = DATE;
60045 }
60046 if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
60047 overflow = WEEK;
60048 }
60049 if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
60050 overflow = WEEKDAY;
60051 }
60052
60053 getParsingFlags(m).overflow = overflow;
60054 }
60055
60056 return m;
60057}
60058
60059// Pick the first defined of two or three arguments.
60060function defaults(a, b, c) {
60061 if (a != null) {
60062 return a;
60063 }
60064 if (b != null) {
60065 return b;
60066 }
60067 return c;
60068}
60069
60070function currentDateArray(config) {
60071 // hooks is actually the exported moment object
60072 var nowValue = new Date(hooks.now());
60073 if (config._useUTC) {
60074 return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
60075 }
60076 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
60077}
60078
60079// convert an array to a date.
60080// the array should mirror the parameters below
60081// note: all values past the year are optional and will default to the lowest possible value.
60082// [year, month, day , hour, minute, second, millisecond]
60083function configFromArray (config) {
60084 var i, date, input = [], currentDate, expectedWeekday, yearToUse;
60085
60086 if (config._d) {
60087 return;
60088 }
60089
60090 currentDate = currentDateArray(config);
60091
60092 //compute day of the year from weeks and weekdays
60093 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
60094 dayOfYearFromWeekInfo(config);
60095 }
60096
60097 //if the day of the year is set, figure out what it is
60098 if (config._dayOfYear != null) {
60099 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
60100
60101 if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
60102 getParsingFlags(config)._overflowDayOfYear = true;
60103 }
60104
60105 date = createUTCDate(yearToUse, 0, config._dayOfYear);
60106 config._a[MONTH] = date.getUTCMonth();
60107 config._a[DATE] = date.getUTCDate();
60108 }
60109
60110 // Default to current date.
60111 // * if no year, month, day of month are given, default to today
60112 // * if day of month is given, default month and year
60113 // * if month is given, default only year
60114 // * if year is given, don't default anything
60115 for (i = 0; i < 3 && config._a[i] == null; ++i) {
60116 config._a[i] = input[i] = currentDate[i];
60117 }
60118
60119 // Zero out whatever was not defaulted, including time
60120 for (; i < 7; i++) {
60121 config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
60122 }
60123
60124 // Check for 24:00:00.000
60125 if (config._a[HOUR] === 24 &&
60126 config._a[MINUTE] === 0 &&
60127 config._a[SECOND] === 0 &&
60128 config._a[MILLISECOND] === 0) {
60129 config._nextDay = true;
60130 config._a[HOUR] = 0;
60131 }
60132
60133 config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
60134 expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
60135
60136 // Apply timezone offset from input. The actual utcOffset can be changed
60137 // with parseZone.
60138 if (config._tzm != null) {
60139 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
60140 }
60141
60142 if (config._nextDay) {
60143 config._a[HOUR] = 24;
60144 }
60145
60146 // check for mismatching day of week
60147 if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
60148 getParsingFlags(config).weekdayMismatch = true;
60149 }
60150}
60151
60152function dayOfYearFromWeekInfo(config) {
60153 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
60154
60155 w = config._w;
60156 if (w.GG != null || w.W != null || w.E != null) {
60157 dow = 1;
60158 doy = 4;
60159
60160 // TODO: We need to take the current isoWeekYear, but that depends on
60161 // how we interpret now (local, utc, fixed offset). So create
60162 // a now version of current config (take local/utc/offset flags, and
60163 // create now).
60164 weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
60165 week = defaults(w.W, 1);
60166 weekday = defaults(w.E, 1);
60167 if (weekday < 1 || weekday > 7) {
60168 weekdayOverflow = true;
60169 }
60170 } else {
60171 dow = config._locale._week.dow;
60172 doy = config._locale._week.doy;
60173
60174 var curWeek = weekOfYear(createLocal(), dow, doy);
60175
60176 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
60177
60178 // Default to current week.
60179 week = defaults(w.w, curWeek.week);
60180
60181 if (w.d != null) {
60182 // weekday -- low day numbers are considered next week
60183 weekday = w.d;
60184 if (weekday < 0 || weekday > 6) {
60185 weekdayOverflow = true;
60186 }
60187 } else if (w.e != null) {
60188 // local weekday -- counting starts from begining of week
60189 weekday = w.e + dow;
60190 if (w.e < 0 || w.e > 6) {
60191 weekdayOverflow = true;
60192 }
60193 } else {
60194 // default to begining of week
60195 weekday = dow;
60196 }
60197 }
60198 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
60199 getParsingFlags(config)._overflowWeeks = true;
60200 } else if (weekdayOverflow != null) {
60201 getParsingFlags(config)._overflowWeekday = true;
60202 } else {
60203 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
60204 config._a[YEAR] = temp.year;
60205 config._dayOfYear = temp.dayOfYear;
60206 }
60207}
60208
60209// iso 8601 regex
60210// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
60211var extendedIsoRegex = /^\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)?)?$/;
60212var basicIsoRegex = /^\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)?)?$/;
60213
60214var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
60215
60216var isoDates = [
60217 ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
60218 ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
60219 ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
60220 ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
60221 ['YYYY-DDD', /\d{4}-\d{3}/],
60222 ['YYYY-MM', /\d{4}-\d\d/, false],
60223 ['YYYYYYMMDD', /[+-]\d{10}/],
60224 ['YYYYMMDD', /\d{8}/],
60225 // YYYYMM is NOT allowed by the standard
60226 ['GGGG[W]WWE', /\d{4}W\d{3}/],
60227 ['GGGG[W]WW', /\d{4}W\d{2}/, false],
60228 ['YYYYDDD', /\d{7}/]
60229];
60230
60231// iso time formats and regexes
60232var isoTimes = [
60233 ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
60234 ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
60235 ['HH:mm:ss', /\d\d:\d\d:\d\d/],
60236 ['HH:mm', /\d\d:\d\d/],
60237 ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
60238 ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
60239 ['HHmmss', /\d\d\d\d\d\d/],
60240 ['HHmm', /\d\d\d\d/],
60241 ['HH', /\d\d/]
60242];
60243
60244var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
60245
60246// date from iso format
60247function configFromISO(config) {
60248 var i, l,
60249 string = config._i,
60250 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
60251 allowTime, dateFormat, timeFormat, tzFormat;
60252
60253 if (match) {
60254 getParsingFlags(config).iso = true;
60255
60256 for (i = 0, l = isoDates.length; i < l; i++) {
60257 if (isoDates[i][1].exec(match[1])) {
60258 dateFormat = isoDates[i][0];
60259 allowTime = isoDates[i][2] !== false;
60260 break;
60261 }
60262 }
60263 if (dateFormat == null) {
60264 config._isValid = false;
60265 return;
60266 }
60267 if (match[3]) {
60268 for (i = 0, l = isoTimes.length; i < l; i++) {
60269 if (isoTimes[i][1].exec(match[3])) {
60270 // match[2] should be 'T' or space
60271 timeFormat = (match[2] || ' ') + isoTimes[i][0];
60272 break;
60273 }
60274 }
60275 if (timeFormat == null) {
60276 config._isValid = false;
60277 return;
60278 }
60279 }
60280 if (!allowTime && timeFormat != null) {
60281 config._isValid = false;
60282 return;
60283 }
60284 if (match[4]) {
60285 if (tzRegex.exec(match[4])) {
60286 tzFormat = 'Z';
60287 } else {
60288 config._isValid = false;
60289 return;
60290 }
60291 }
60292 config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
60293 configFromStringAndFormat(config);
60294 } else {
60295 config._isValid = false;
60296 }
60297}
60298
60299// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
60300var rfc2822 = /^(?:(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}))$/;
60301
60302function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
60303 var result = [
60304 untruncateYear(yearStr),
60305 defaultLocaleMonthsShort.indexOf(monthStr),
60306 parseInt(dayStr, 10),
60307 parseInt(hourStr, 10),
60308 parseInt(minuteStr, 10)
60309 ];
60310
60311 if (secondStr) {
60312 result.push(parseInt(secondStr, 10));
60313 }
60314
60315 return result;
60316}
60317
60318function untruncateYear(yearStr) {
60319 var year = parseInt(yearStr, 10);
60320 if (year <= 49) {
60321 return 2000 + year;
60322 } else if (year <= 999) {
60323 return 1900 + year;
60324 }
60325 return year;
60326}
60327
60328function preprocessRFC2822(s) {
60329 // Remove comments and folding whitespace and replace multiple-spaces with a single space
60330 return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').trim();
60331}
60332
60333function checkWeekday(weekdayStr, parsedInput, config) {
60334 if (weekdayStr) {
60335 // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
60336 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
60337 weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
60338 if (weekdayProvided !== weekdayActual) {
60339 getParsingFlags(config).weekdayMismatch = true;
60340 config._isValid = false;
60341 return false;
60342 }
60343 }
60344 return true;
60345}
60346
60347var obsOffsets = {
60348 UT: 0,
60349 GMT: 0,
60350 EDT: -4 * 60,
60351 EST: -5 * 60,
60352 CDT: -5 * 60,
60353 CST: -6 * 60,
60354 MDT: -6 * 60,
60355 MST: -7 * 60,
60356 PDT: -7 * 60,
60357 PST: -8 * 60
60358};
60359
60360function calculateOffset(obsOffset, militaryOffset, numOffset) {
60361 if (obsOffset) {
60362 return obsOffsets[obsOffset];
60363 } else if (militaryOffset) {
60364 // the only allowed military tz is Z
60365 return 0;
60366 } else {
60367 var hm = parseInt(numOffset, 10);
60368 var m = hm % 100, h = (hm - m) / 100;
60369 return h * 60 + m;
60370 }
60371}
60372
60373// date and time from ref 2822 format
60374function configFromRFC2822(config) {
60375 var match = rfc2822.exec(preprocessRFC2822(config._i));
60376 if (match) {
60377 var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
60378 if (!checkWeekday(match[1], parsedArray, config)) {
60379 return;
60380 }
60381
60382 config._a = parsedArray;
60383 config._tzm = calculateOffset(match[8], match[9], match[10]);
60384
60385 config._d = createUTCDate.apply(null, config._a);
60386 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
60387
60388 getParsingFlags(config).rfc2822 = true;
60389 } else {
60390 config._isValid = false;
60391 }
60392}
60393
60394// date from iso format or fallback
60395function configFromString(config) {
60396 var matched = aspNetJsonRegex.exec(config._i);
60397
60398 if (matched !== null) {
60399 config._d = new Date(+matched[1]);
60400 return;
60401 }
60402
60403 configFromISO(config);
60404 if (config._isValid === false) {
60405 delete config._isValid;
60406 } else {
60407 return;
60408 }
60409
60410 configFromRFC2822(config);
60411 if (config._isValid === false) {
60412 delete config._isValid;
60413 } else {
60414 return;
60415 }
60416
60417 // Final attempt, use Input Fallback
60418 hooks.createFromInputFallback(config);
60419}
60420
60421hooks.createFromInputFallback = deprecate(
60422 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
60423 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
60424 'discouraged and will be removed in an upcoming major release. Please refer to ' +
60425 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
60426 function (config) {
60427 config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
60428 }
60429);
60430
60431// constant that refers to the ISO standard
60432hooks.ISO_8601 = function () {};
60433
60434// constant that refers to the RFC 2822 form
60435hooks.RFC_2822 = function () {};
60436
60437// date from string and format string
60438function configFromStringAndFormat(config) {
60439 // TODO: Move this to another part of the creation flow to prevent circular deps
60440 if (config._f === hooks.ISO_8601) {
60441 configFromISO(config);
60442 return;
60443 }
60444 if (config._f === hooks.RFC_2822) {
60445 configFromRFC2822(config);
60446 return;
60447 }
60448 config._a = [];
60449 getParsingFlags(config).empty = true;
60450
60451 // This array is used to make a Date, either with `new Date` or `Date.UTC`
60452 var string = '' + config._i,
60453 i, parsedInput, tokens, token, skipped,
60454 stringLength = string.length,
60455 totalParsedInputLength = 0;
60456
60457 tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
60458
60459 for (i = 0; i < tokens.length; i++) {
60460 token = tokens[i];
60461 parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
60462 // console.log('token', token, 'parsedInput', parsedInput,
60463 // 'regex', getParseRegexForToken(token, config));
60464 if (parsedInput) {
60465 skipped = string.substr(0, string.indexOf(parsedInput));
60466 if (skipped.length > 0) {
60467 getParsingFlags(config).unusedInput.push(skipped);
60468 }
60469 string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
60470 totalParsedInputLength += parsedInput.length;
60471 }
60472 // don't parse if it's not a known token
60473 if (formatTokenFunctions[token]) {
60474 if (parsedInput) {
60475 getParsingFlags(config).empty = false;
60476 }
60477 else {
60478 getParsingFlags(config).unusedTokens.push(token);
60479 }
60480 addTimeToArrayFromToken(token, parsedInput, config);
60481 }
60482 else if (config._strict && !parsedInput) {
60483 getParsingFlags(config).unusedTokens.push(token);
60484 }
60485 }
60486
60487 // add remaining unparsed input length to the string
60488 getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
60489 if (string.length > 0) {
60490 getParsingFlags(config).unusedInput.push(string);
60491 }
60492
60493 // clear _12h flag if hour is <= 12
60494 if (config._a[HOUR] <= 12 &&
60495 getParsingFlags(config).bigHour === true &&
60496 config._a[HOUR] > 0) {
60497 getParsingFlags(config).bigHour = undefined;
60498 }
60499
60500 getParsingFlags(config).parsedDateParts = config._a.slice(0);
60501 getParsingFlags(config).meridiem = config._meridiem;
60502 // handle meridiem
60503 config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
60504
60505 configFromArray(config);
60506 checkOverflow(config);
60507}
60508
60509
60510function meridiemFixWrap (locale, hour, meridiem) {
60511 var isPm;
60512
60513 if (meridiem == null) {
60514 // nothing to do
60515 return hour;
60516 }
60517 if (locale.meridiemHour != null) {
60518 return locale.meridiemHour(hour, meridiem);
60519 } else if (locale.isPM != null) {
60520 // Fallback
60521 isPm = locale.isPM(meridiem);
60522 if (isPm && hour < 12) {
60523 hour += 12;
60524 }
60525 if (!isPm && hour === 12) {
60526 hour = 0;
60527 }
60528 return hour;
60529 } else {
60530 // this is not supposed to happen
60531 return hour;
60532 }
60533}
60534
60535// date from string and array of format strings
60536function configFromStringAndArray(config) {
60537 var tempConfig,
60538 bestMoment,
60539
60540 scoreToBeat,
60541 i,
60542 currentScore;
60543
60544 if (config._f.length === 0) {
60545 getParsingFlags(config).invalidFormat = true;
60546 config._d = new Date(NaN);
60547 return;
60548 }
60549
60550 for (i = 0; i < config._f.length; i++) {
60551 currentScore = 0;
60552 tempConfig = copyConfig({}, config);
60553 if (config._useUTC != null) {
60554 tempConfig._useUTC = config._useUTC;
60555 }
60556 tempConfig._f = config._f[i];
60557 configFromStringAndFormat(tempConfig);
60558
60559 if (!isValid(tempConfig)) {
60560 continue;
60561 }
60562
60563 // if there is any input that was not parsed add a penalty for that format
60564 currentScore += getParsingFlags(tempConfig).charsLeftOver;
60565
60566 //or tokens
60567 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
60568
60569 getParsingFlags(tempConfig).score = currentScore;
60570
60571 if (scoreToBeat == null || currentScore < scoreToBeat) {
60572 scoreToBeat = currentScore;
60573 bestMoment = tempConfig;
60574 }
60575 }
60576
60577 extend(config, bestMoment || tempConfig);
60578}
60579
60580function configFromObject(config) {
60581 if (config._d) {
60582 return;
60583 }
60584
60585 var i = normalizeObjectUnits(config._i);
60586 config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
60587 return obj && parseInt(obj, 10);
60588 });
60589
60590 configFromArray(config);
60591}
60592
60593function createFromConfig (config) {
60594 var res = new Moment(checkOverflow(prepareConfig(config)));
60595 if (res._nextDay) {
60596 // Adding is smart enough around DST
60597 res.add(1, 'd');
60598 res._nextDay = undefined;
60599 }
60600
60601 return res;
60602}
60603
60604function prepareConfig (config) {
60605 var input = config._i,
60606 format = config._f;
60607
60608 config._locale = config._locale || getLocale(config._l);
60609
60610 if (input === null || (format === undefined && input === '')) {
60611 return createInvalid({nullInput: true});
60612 }
60613
60614 if (typeof input === 'string') {
60615 config._i = input = config._locale.preparse(input);
60616 }
60617
60618 if (isMoment(input)) {
60619 return new Moment(checkOverflow(input));
60620 } else if (isDate(input)) {
60621 config._d = input;
60622 } else if (isArray(format)) {
60623 configFromStringAndArray(config);
60624 } else if (format) {
60625 configFromStringAndFormat(config);
60626 } else {
60627 configFromInput(config);
60628 }
60629
60630 if (!isValid(config)) {
60631 config._d = null;
60632 }
60633
60634 return config;
60635}
60636
60637function configFromInput(config) {
60638 var input = config._i;
60639 if (isUndefined(input)) {
60640 config._d = new Date(hooks.now());
60641 } else if (isDate(input)) {
60642 config._d = new Date(input.valueOf());
60643 } else if (typeof input === 'string') {
60644 configFromString(config);
60645 } else if (isArray(input)) {
60646 config._a = map(input.slice(0), function (obj) {
60647 return parseInt(obj, 10);
60648 });
60649 configFromArray(config);
60650 } else if (isObject(input)) {
60651 configFromObject(config);
60652 } else if (isNumber(input)) {
60653 // from milliseconds
60654 config._d = new Date(input);
60655 } else {
60656 hooks.createFromInputFallback(config);
60657 }
60658}
60659
60660function createLocalOrUTC (input, format, locale, strict, isUTC) {
60661 var c = {};
60662
60663 if (locale === true || locale === false) {
60664 strict = locale;
60665 locale = undefined;
60666 }
60667
60668 if ((isObject(input) && isObjectEmpty(input)) ||
60669 (isArray(input) && input.length === 0)) {
60670 input = undefined;
60671 }
60672 // object construction must be done this way.
60673 // https://github.com/moment/moment/issues/1423
60674 c._isAMomentObject = true;
60675 c._useUTC = c._isUTC = isUTC;
60676 c._l = locale;
60677 c._i = input;
60678 c._f = format;
60679 c._strict = strict;
60680
60681 return createFromConfig(c);
60682}
60683
60684function createLocal (input, format, locale, strict) {
60685 return createLocalOrUTC(input, format, locale, strict, false);
60686}
60687
60688var prototypeMin = deprecate(
60689 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
60690 function () {
60691 var other = createLocal.apply(null, arguments);
60692 if (this.isValid() && other.isValid()) {
60693 return other < this ? this : other;
60694 } else {
60695 return createInvalid();
60696 }
60697 }
60698);
60699
60700var prototypeMax = deprecate(
60701 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
60702 function () {
60703 var other = createLocal.apply(null, arguments);
60704 if (this.isValid() && other.isValid()) {
60705 return other > this ? this : other;
60706 } else {
60707 return createInvalid();
60708 }
60709 }
60710);
60711
60712// Pick a moment m from moments so that m[fn](other) is true for all
60713// other. This relies on the function fn to be transitive.
60714//
60715// moments should either be an array of moment objects or an array, whose
60716// first element is an array of moment objects.
60717function pickBy(fn, moments) {
60718 var res, i;
60719 if (moments.length === 1 && isArray(moments[0])) {
60720 moments = moments[0];
60721 }
60722 if (!moments.length) {
60723 return createLocal();
60724 }
60725 res = moments[0];
60726 for (i = 1; i < moments.length; ++i) {
60727 if (!moments[i].isValid() || moments[i][fn](res)) {
60728 res = moments[i];
60729 }
60730 }
60731 return res;
60732}
60733
60734// TODO: Use [].sort instead?
60735function min () {
60736 var args = [].slice.call(arguments, 0);
60737
60738 return pickBy('isBefore', args);
60739}
60740
60741function max () {
60742 var args = [].slice.call(arguments, 0);
60743
60744 return pickBy('isAfter', args);
60745}
60746
60747var now = function () {
60748 return Date.now ? Date.now() : +(new Date());
60749};
60750
60751var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
60752
60753function isDurationValid(m) {
60754 for (var key in m) {
60755 if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
60756 return false;
60757 }
60758 }
60759
60760 var unitHasDecimal = false;
60761 for (var i = 0; i < ordering.length; ++i) {
60762 if (m[ordering[i]]) {
60763 if (unitHasDecimal) {
60764 return false; // only allow non-integers for smallest unit
60765 }
60766 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
60767 unitHasDecimal = true;
60768 }
60769 }
60770 }
60771
60772 return true;
60773}
60774
60775function isValid$1() {
60776 return this._isValid;
60777}
60778
60779function createInvalid$1() {
60780 return createDuration(NaN);
60781}
60782
60783function Duration (duration) {
60784 var normalizedInput = normalizeObjectUnits(duration),
60785 years = normalizedInput.year || 0,
60786 quarters = normalizedInput.quarter || 0,
60787 months = normalizedInput.month || 0,
60788 weeks = normalizedInput.week || 0,
60789 days = normalizedInput.day || 0,
60790 hours = normalizedInput.hour || 0,
60791 minutes = normalizedInput.minute || 0,
60792 seconds = normalizedInput.second || 0,
60793 milliseconds = normalizedInput.millisecond || 0;
60794
60795 this._isValid = isDurationValid(normalizedInput);
60796
60797 // representation for dateAddRemove
60798 this._milliseconds = +milliseconds +
60799 seconds * 1e3 + // 1000
60800 minutes * 6e4 + // 1000 * 60
60801 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
60802 // Because of dateAddRemove treats 24 hours as different from a
60803 // day when working around DST, we need to store them separately
60804 this._days = +days +
60805 weeks * 7;
60806 // It is impossible to translate months into days without knowing
60807 // which months you are are talking about, so we have to store
60808 // it separately.
60809 this._months = +months +
60810 quarters * 3 +
60811 years * 12;
60812
60813 this._data = {};
60814
60815 this._locale = getLocale();
60816
60817 this._bubble();
60818}
60819
60820function isDuration (obj) {
60821 return obj instanceof Duration;
60822}
60823
60824function absRound (number) {
60825 if (number < 0) {
60826 return Math.round(-1 * number) * -1;
60827 } else {
60828 return Math.round(number);
60829 }
60830}
60831
60832// FORMATTING
60833
60834function offset (token, separator) {
60835 addFormatToken(token, 0, 0, function () {
60836 var offset = this.utcOffset();
60837 var sign = '+';
60838 if (offset < 0) {
60839 offset = -offset;
60840 sign = '-';
60841 }
60842 return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
60843 });
60844}
60845
60846offset('Z', ':');
60847offset('ZZ', '');
60848
60849// PARSING
60850
60851addRegexToken('Z', matchShortOffset);
60852addRegexToken('ZZ', matchShortOffset);
60853addParseToken(['Z', 'ZZ'], function (input, array, config) {
60854 config._useUTC = true;
60855 config._tzm = offsetFromString(matchShortOffset, input);
60856});
60857
60858// HELPERS
60859
60860// timezone chunker
60861// '+10:00' > ['10', '00']
60862// '-1530' > ['-15', '30']
60863var chunkOffset = /([\+\-]|\d\d)/gi;
60864
60865function offsetFromString(matcher, string) {
60866 var matches = (string || '').match(matcher);
60867
60868 if (matches === null) {
60869 return null;
60870 }
60871
60872 var chunk = matches[matches.length - 1] || [];
60873 var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
60874 var minutes = +(parts[1] * 60) + toInt(parts[2]);
60875
60876 return minutes === 0 ?
60877 0 :
60878 parts[0] === '+' ? minutes : -minutes;
60879}
60880
60881// Return a moment from input, that is local/utc/zone equivalent to model.
60882function cloneWithOffset(input, model) {
60883 var res, diff;
60884 if (model._isUTC) {
60885 res = model.clone();
60886 diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
60887 // Use low-level api, because this fn is low-level api.
60888 res._d.setTime(res._d.valueOf() + diff);
60889 hooks.updateOffset(res, false);
60890 return res;
60891 } else {
60892 return createLocal(input).local();
60893 }
60894}
60895
60896function getDateOffset (m) {
60897 // On Firefox.24 Date#getTimezoneOffset returns a floating point.
60898 // https://github.com/moment/moment/pull/1871
60899 return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
60900}
60901
60902// HOOKS
60903
60904// This function will be called whenever a moment is mutated.
60905// It is intended to keep the offset in sync with the timezone.
60906hooks.updateOffset = function () {};
60907
60908// MOMENTS
60909
60910// keepLocalTime = true means only change the timezone, without
60911// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
60912// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
60913// +0200, so we adjust the time as needed, to be valid.
60914//
60915// Keeping the time actually adds/subtracts (one hour)
60916// from the actual represented time. That is why we call updateOffset
60917// a second time. In case it wants us to change the offset again
60918// _changeInProgress == true case, then we have to adjust, because
60919// there is no such time in the given timezone.
60920function getSetOffset (input, keepLocalTime, keepMinutes) {
60921 var offset = this._offset || 0,
60922 localAdjust;
60923 if (!this.isValid()) {
60924 return input != null ? this : NaN;
60925 }
60926 if (input != null) {
60927 if (typeof input === 'string') {
60928 input = offsetFromString(matchShortOffset, input);
60929 if (input === null) {
60930 return this;
60931 }
60932 } else if (Math.abs(input) < 16 && !keepMinutes) {
60933 input = input * 60;
60934 }
60935 if (!this._isUTC && keepLocalTime) {
60936 localAdjust = getDateOffset(this);
60937 }
60938 this._offset = input;
60939 this._isUTC = true;
60940 if (localAdjust != null) {
60941 this.add(localAdjust, 'm');
60942 }
60943 if (offset !== input) {
60944 if (!keepLocalTime || this._changeInProgress) {
60945 addSubtract(this, createDuration(input - offset, 'm'), 1, false);
60946 } else if (!this._changeInProgress) {
60947 this._changeInProgress = true;
60948 hooks.updateOffset(this, true);
60949 this._changeInProgress = null;
60950 }
60951 }
60952 return this;
60953 } else {
60954 return this._isUTC ? offset : getDateOffset(this);
60955 }
60956}
60957
60958function getSetZone (input, keepLocalTime) {
60959 if (input != null) {
60960 if (typeof input !== 'string') {
60961 input = -input;
60962 }
60963
60964 this.utcOffset(input, keepLocalTime);
60965
60966 return this;
60967 } else {
60968 return -this.utcOffset();
60969 }
60970}
60971
60972function setOffsetToUTC (keepLocalTime) {
60973 return this.utcOffset(0, keepLocalTime);
60974}
60975
60976function setOffsetToLocal (keepLocalTime) {
60977 if (this._isUTC) {
60978 this.utcOffset(0, keepLocalTime);
60979 this._isUTC = false;
60980
60981 if (keepLocalTime) {
60982 this.subtract(getDateOffset(this), 'm');
60983 }
60984 }
60985 return this;
60986}
60987
60988function setOffsetToParsedOffset () {
60989 if (this._tzm != null) {
60990 this.utcOffset(this._tzm, false, true);
60991 } else if (typeof this._i === 'string') {
60992 var tZone = offsetFromString(matchOffset, this._i);
60993 if (tZone != null) {
60994 this.utcOffset(tZone);
60995 }
60996 else {
60997 this.utcOffset(0, true);
60998 }
60999 }
61000 return this;
61001}
61002
61003function hasAlignedHourOffset (input) {
61004 if (!this.isValid()) {
61005 return false;
61006 }
61007 input = input ? createLocal(input).utcOffset() : 0;
61008
61009 return (this.utcOffset() - input) % 60 === 0;
61010}
61011
61012function isDaylightSavingTime () {
61013 return (
61014 this.utcOffset() > this.clone().month(0).utcOffset() ||
61015 this.utcOffset() > this.clone().month(5).utcOffset()
61016 );
61017}
61018
61019function isDaylightSavingTimeShifted () {
61020 if (!isUndefined(this._isDSTShifted)) {
61021 return this._isDSTShifted;
61022 }
61023
61024 var c = {};
61025
61026 copyConfig(c, this);
61027 c = prepareConfig(c);
61028
61029 if (c._a) {
61030 var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
61031 this._isDSTShifted = this.isValid() &&
61032 compareArrays(c._a, other.toArray()) > 0;
61033 } else {
61034 this._isDSTShifted = false;
61035 }
61036
61037 return this._isDSTShifted;
61038}
61039
61040function isLocal () {
61041 return this.isValid() ? !this._isUTC : false;
61042}
61043
61044function isUtcOffset () {
61045 return this.isValid() ? this._isUTC : false;
61046}
61047
61048function isUtc () {
61049 return this.isValid() ? this._isUTC && this._offset === 0 : false;
61050}
61051
61052// ASP.NET json date format regex
61053var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
61054
61055// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
61056// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
61057// and further modified to allow for strings containing both week and day
61058var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
61059
61060function createDuration (input, key) {
61061 var duration = input,
61062 // matching against regexp is expensive, do it on demand
61063 match = null,
61064 sign,
61065 ret,
61066 diffRes;
61067
61068 if (isDuration(input)) {
61069 duration = {
61070 ms : input._milliseconds,
61071 d : input._days,
61072 M : input._months
61073 };
61074 } else if (isNumber(input)) {
61075 duration = {};
61076 if (key) {
61077 duration[key] = input;
61078 } else {
61079 duration.milliseconds = input;
61080 }
61081 } else if (!!(match = aspNetRegex.exec(input))) {
61082 sign = (match[1] === '-') ? -1 : 1;
61083 duration = {
61084 y : 0,
61085 d : toInt(match[DATE]) * sign,
61086 h : toInt(match[HOUR]) * sign,
61087 m : toInt(match[MINUTE]) * sign,
61088 s : toInt(match[SECOND]) * sign,
61089 ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
61090 };
61091 } else if (!!(match = isoRegex.exec(input))) {
61092 sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
61093 duration = {
61094 y : parseIso(match[2], sign),
61095 M : parseIso(match[3], sign),
61096 w : parseIso(match[4], sign),
61097 d : parseIso(match[5], sign),
61098 h : parseIso(match[6], sign),
61099 m : parseIso(match[7], sign),
61100 s : parseIso(match[8], sign)
61101 };
61102 } else if (duration == null) {// checks for null or undefined
61103 duration = {};
61104 } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
61105 diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
61106
61107 duration = {};
61108 duration.ms = diffRes.milliseconds;
61109 duration.M = diffRes.months;
61110 }
61111
61112 ret = new Duration(duration);
61113
61114 if (isDuration(input) && hasOwnProp(input, '_locale')) {
61115 ret._locale = input._locale;
61116 }
61117
61118 return ret;
61119}
61120
61121createDuration.fn = Duration.prototype;
61122createDuration.invalid = createInvalid$1;
61123
61124function parseIso (inp, sign) {
61125 // We'd normally use ~~inp for this, but unfortunately it also
61126 // converts floats to ints.
61127 // inp may be undefined, so careful calling replace on it.
61128 var res = inp && parseFloat(inp.replace(',', '.'));
61129 // apply sign while we're at it
61130 return (isNaN(res) ? 0 : res) * sign;
61131}
61132
61133function positiveMomentsDifference(base, other) {
61134 var res = {milliseconds: 0, months: 0};
61135
61136 res.months = other.month() - base.month() +
61137 (other.year() - base.year()) * 12;
61138 if (base.clone().add(res.months, 'M').isAfter(other)) {
61139 --res.months;
61140 }
61141
61142 res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
61143
61144 return res;
61145}
61146
61147function momentsDifference(base, other) {
61148 var res;
61149 if (!(base.isValid() && other.isValid())) {
61150 return {milliseconds: 0, months: 0};
61151 }
61152
61153 other = cloneWithOffset(other, base);
61154 if (base.isBefore(other)) {
61155 res = positiveMomentsDifference(base, other);
61156 } else {
61157 res = positiveMomentsDifference(other, base);
61158 res.milliseconds = -res.milliseconds;
61159 res.months = -res.months;
61160 }
61161
61162 return res;
61163}
61164
61165// TODO: remove 'name' arg after deprecation is removed
61166function createAdder(direction, name) {
61167 return function (val, period) {
61168 var dur, tmp;
61169 //invert the arguments, but complain about it
61170 if (period !== null && !isNaN(+period)) {
61171 deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
61172 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
61173 tmp = val; val = period; period = tmp;
61174 }
61175
61176 val = typeof val === 'string' ? +val : val;
61177 dur = createDuration(val, period);
61178 addSubtract(this, dur, direction);
61179 return this;
61180 };
61181}
61182
61183function addSubtract (mom, duration, isAdding, updateOffset) {
61184 var milliseconds = duration._milliseconds,
61185 days = absRound(duration._days),
61186 months = absRound(duration._months);
61187
61188 if (!mom.isValid()) {
61189 // No op
61190 return;
61191 }
61192
61193 updateOffset = updateOffset == null ? true : updateOffset;
61194
61195 if (months) {
61196 setMonth(mom, get(mom, 'Month') + months * isAdding);
61197 }
61198 if (days) {
61199 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
61200 }
61201 if (milliseconds) {
61202 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
61203 }
61204 if (updateOffset) {
61205 hooks.updateOffset(mom, days || months);
61206 }
61207}
61208
61209var add = createAdder(1, 'add');
61210var subtract = createAdder(-1, 'subtract');
61211
61212function getCalendarFormat(myMoment, now) {
61213 var diff = myMoment.diff(now, 'days', true);
61214 return diff < -6 ? 'sameElse' :
61215 diff < -1 ? 'lastWeek' :
61216 diff < 0 ? 'lastDay' :
61217 diff < 1 ? 'sameDay' :
61218 diff < 2 ? 'nextDay' :
61219 diff < 7 ? 'nextWeek' : 'sameElse';
61220}
61221
61222function calendar$1 (time, formats) {
61223 // We want to compare the start of today, vs this.
61224 // Getting start-of-today depends on whether we're local/utc/offset or not.
61225 var now = time || createLocal(),
61226 sod = cloneWithOffset(now, this).startOf('day'),
61227 format = hooks.calendarFormat(this, sod) || 'sameElse';
61228
61229 var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
61230
61231 return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
61232}
61233
61234function clone () {
61235 return new Moment(this);
61236}
61237
61238function isAfter (input, units) {
61239 var localInput = isMoment(input) ? input : createLocal(input);
61240 if (!(this.isValid() && localInput.isValid())) {
61241 return false;
61242 }
61243 units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
61244 if (units === 'millisecond') {
61245 return this.valueOf() > localInput.valueOf();
61246 } else {
61247 return localInput.valueOf() < this.clone().startOf(units).valueOf();
61248 }
61249}
61250
61251function isBefore (input, units) {
61252 var localInput = isMoment(input) ? input : createLocal(input);
61253 if (!(this.isValid() && localInput.isValid())) {
61254 return false;
61255 }
61256 units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
61257 if (units === 'millisecond') {
61258 return this.valueOf() < localInput.valueOf();
61259 } else {
61260 return this.clone().endOf(units).valueOf() < localInput.valueOf();
61261 }
61262}
61263
61264function isBetween (from, to, units, inclusivity) {
61265 inclusivity = inclusivity || '()';
61266 return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
61267 (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
61268}
61269
61270function isSame (input, units) {
61271 var localInput = isMoment(input) ? input : createLocal(input),
61272 inputMs;
61273 if (!(this.isValid() && localInput.isValid())) {
61274 return false;
61275 }
61276 units = normalizeUnits(units || 'millisecond');
61277 if (units === 'millisecond') {
61278 return this.valueOf() === localInput.valueOf();
61279 } else {
61280 inputMs = localInput.valueOf();
61281 return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
61282 }
61283}
61284
61285function isSameOrAfter (input, units) {
61286 return this.isSame(input, units) || this.isAfter(input,units);
61287}
61288
61289function isSameOrBefore (input, units) {
61290 return this.isSame(input, units) || this.isBefore(input,units);
61291}
61292
61293function diff (input, units, asFloat) {
61294 var that,
61295 zoneDelta,
61296 output;
61297
61298 if (!this.isValid()) {
61299 return NaN;
61300 }
61301
61302 that = cloneWithOffset(input, this);
61303
61304 if (!that.isValid()) {
61305 return NaN;
61306 }
61307
61308 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
61309
61310 units = normalizeUnits(units);
61311
61312 switch (units) {
61313 case 'year': output = monthDiff(this, that) / 12; break;
61314 case 'month': output = monthDiff(this, that); break;
61315 case 'quarter': output = monthDiff(this, that) / 3; break;
61316 case 'second': output = (this - that) / 1e3; break; // 1000
61317 case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
61318 case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
61319 case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
61320 case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
61321 default: output = this - that;
61322 }
61323
61324 return asFloat ? output : absFloor(output);
61325}
61326
61327function monthDiff (a, b) {
61328 // difference in months
61329 var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
61330 // b is in (anchor - 1 month, anchor + 1 month)
61331 anchor = a.clone().add(wholeMonthDiff, 'months'),
61332 anchor2, adjust;
61333
61334 if (b - anchor < 0) {
61335 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
61336 // linear across the month
61337 adjust = (b - anchor) / (anchor - anchor2);
61338 } else {
61339 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
61340 // linear across the month
61341 adjust = (b - anchor) / (anchor2 - anchor);
61342 }
61343
61344 //check for negative zero, return zero if negative zero
61345 return -(wholeMonthDiff + adjust) || 0;
61346}
61347
61348hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
61349hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
61350
61351function toString () {
61352 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
61353}
61354
61355function toISOString(keepOffset) {
61356 if (!this.isValid()) {
61357 return null;
61358 }
61359 var utc = keepOffset !== true;
61360 var m = utc ? this.clone().utc() : this;
61361 if (m.year() < 0 || m.year() > 9999) {
61362 return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
61363 }
61364 if (isFunction(Date.prototype.toISOString)) {
61365 // native implementation is ~50x faster, use it when we can
61366 if (utc) {
61367 return this.toDate().toISOString();
61368 } else {
61369 return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
61370 }
61371 }
61372 return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
61373}
61374
61375/**
61376 * Return a human readable representation of a moment that can
61377 * also be evaluated to get a new moment which is the same
61378 *
61379 * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
61380 */
61381function inspect () {
61382 if (!this.isValid()) {
61383 return 'moment.invalid(/* ' + this._i + ' */)';
61384 }
61385 var func = 'moment';
61386 var zone = '';
61387 if (!this.isLocal()) {
61388 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
61389 zone = 'Z';
61390 }
61391 var prefix = '[' + func + '("]';
61392 var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
61393 var datetime = '-MM-DD[T]HH:mm:ss.SSS';
61394 var suffix = zone + '[")]';
61395
61396 return this.format(prefix + year + datetime + suffix);
61397}
61398
61399function format (inputString) {
61400 if (!inputString) {
61401 inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
61402 }
61403 var output = formatMoment(this, inputString);
61404 return this.localeData().postformat(output);
61405}
61406
61407function from (time, withoutSuffix) {
61408 if (this.isValid() &&
61409 ((isMoment(time) && time.isValid()) ||
61410 createLocal(time).isValid())) {
61411 return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
61412 } else {
61413 return this.localeData().invalidDate();
61414 }
61415}
61416
61417function fromNow (withoutSuffix) {
61418 return this.from(createLocal(), withoutSuffix);
61419}
61420
61421function to (time, withoutSuffix) {
61422 if (this.isValid() &&
61423 ((isMoment(time) && time.isValid()) ||
61424 createLocal(time).isValid())) {
61425 return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
61426 } else {
61427 return this.localeData().invalidDate();
61428 }
61429}
61430
61431function toNow (withoutSuffix) {
61432 return this.to(createLocal(), withoutSuffix);
61433}
61434
61435// If passed a locale key, it will set the locale for this
61436// instance. Otherwise, it will return the locale configuration
61437// variables for this instance.
61438function locale (key) {
61439 var newLocaleData;
61440
61441 if (key === undefined) {
61442 return this._locale._abbr;
61443 } else {
61444 newLocaleData = getLocale(key);
61445 if (newLocaleData != null) {
61446 this._locale = newLocaleData;
61447 }
61448 return this;
61449 }
61450}
61451
61452var lang = deprecate(
61453 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
61454 function (key) {
61455 if (key === undefined) {
61456 return this.localeData();
61457 } else {
61458 return this.locale(key);
61459 }
61460 }
61461);
61462
61463function localeData () {
61464 return this._locale;
61465}
61466
61467function startOf (units) {
61468 units = normalizeUnits(units);
61469 // the following switch intentionally omits break keywords
61470 // to utilize falling through the cases.
61471 switch (units) {
61472 case 'year':
61473 this.month(0);
61474 /* falls through */
61475 case 'quarter':
61476 case 'month':
61477 this.date(1);
61478 /* falls through */
61479 case 'week':
61480 case 'isoWeek':
61481 case 'day':
61482 case 'date':
61483 this.hours(0);
61484 /* falls through */
61485 case 'hour':
61486 this.minutes(0);
61487 /* falls through */
61488 case 'minute':
61489 this.seconds(0);
61490 /* falls through */
61491 case 'second':
61492 this.milliseconds(0);
61493 }
61494
61495 // weeks are a special case
61496 if (units === 'week') {
61497 this.weekday(0);
61498 }
61499 if (units === 'isoWeek') {
61500 this.isoWeekday(1);
61501 }
61502
61503 // quarters are also special
61504 if (units === 'quarter') {
61505 this.month(Math.floor(this.month() / 3) * 3);
61506 }
61507
61508 return this;
61509}
61510
61511function endOf (units) {
61512 units = normalizeUnits(units);
61513 if (units === undefined || units === 'millisecond') {
61514 return this;
61515 }
61516
61517 // 'date' is an alias for 'day', so it should be considered as such.
61518 if (units === 'date') {
61519 units = 'day';
61520 }
61521
61522 return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
61523}
61524
61525function valueOf () {
61526 return this._d.valueOf() - ((this._offset || 0) * 60000);
61527}
61528
61529function unix () {
61530 return Math.floor(this.valueOf() / 1000);
61531}
61532
61533function toDate () {
61534 return new Date(this.valueOf());
61535}
61536
61537function toArray () {
61538 var m = this;
61539 return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
61540}
61541
61542function toObject () {
61543 var m = this;
61544 return {
61545 years: m.year(),
61546 months: m.month(),
61547 date: m.date(),
61548 hours: m.hours(),
61549 minutes: m.minutes(),
61550 seconds: m.seconds(),
61551 milliseconds: m.milliseconds()
61552 };
61553}
61554
61555function toJSON () {
61556 // new Date(NaN).toJSON() === null
61557 return this.isValid() ? this.toISOString() : null;
61558}
61559
61560function isValid$2 () {
61561 return isValid(this);
61562}
61563
61564function parsingFlags () {
61565 return extend({}, getParsingFlags(this));
61566}
61567
61568function invalidAt () {
61569 return getParsingFlags(this).overflow;
61570}
61571
61572function creationData() {
61573 return {
61574 input: this._i,
61575 format: this._f,
61576 locale: this._locale,
61577 isUTC: this._isUTC,
61578 strict: this._strict
61579 };
61580}
61581
61582// FORMATTING
61583
61584addFormatToken(0, ['gg', 2], 0, function () {
61585 return this.weekYear() % 100;
61586});
61587
61588addFormatToken(0, ['GG', 2], 0, function () {
61589 return this.isoWeekYear() % 100;
61590});
61591
61592function addWeekYearFormatToken (token, getter) {
61593 addFormatToken(0, [token, token.length], 0, getter);
61594}
61595
61596addWeekYearFormatToken('gggg', 'weekYear');
61597addWeekYearFormatToken('ggggg', 'weekYear');
61598addWeekYearFormatToken('GGGG', 'isoWeekYear');
61599addWeekYearFormatToken('GGGGG', 'isoWeekYear');
61600
61601// ALIASES
61602
61603addUnitAlias('weekYear', 'gg');
61604addUnitAlias('isoWeekYear', 'GG');
61605
61606// PRIORITY
61607
61608addUnitPriority('weekYear', 1);
61609addUnitPriority('isoWeekYear', 1);
61610
61611
61612// PARSING
61613
61614addRegexToken('G', matchSigned);
61615addRegexToken('g', matchSigned);
61616addRegexToken('GG', match1to2, match2);
61617addRegexToken('gg', match1to2, match2);
61618addRegexToken('GGGG', match1to4, match4);
61619addRegexToken('gggg', match1to4, match4);
61620addRegexToken('GGGGG', match1to6, match6);
61621addRegexToken('ggggg', match1to6, match6);
61622
61623addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
61624 week[token.substr(0, 2)] = toInt(input);
61625});
61626
61627addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
61628 week[token] = hooks.parseTwoDigitYear(input);
61629});
61630
61631// MOMENTS
61632
61633function getSetWeekYear (input) {
61634 return getSetWeekYearHelper.call(this,
61635 input,
61636 this.week(),
61637 this.weekday(),
61638 this.localeData()._week.dow,
61639 this.localeData()._week.doy);
61640}
61641
61642function getSetISOWeekYear (input) {
61643 return getSetWeekYearHelper.call(this,
61644 input, this.isoWeek(), this.isoWeekday(), 1, 4);
61645}
61646
61647function getISOWeeksInYear () {
61648 return weeksInYear(this.year(), 1, 4);
61649}
61650
61651function getWeeksInYear () {
61652 var weekInfo = this.localeData()._week;
61653 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
61654}
61655
61656function getSetWeekYearHelper(input, week, weekday, dow, doy) {
61657 var weeksTarget;
61658 if (input == null) {
61659 return weekOfYear(this, dow, doy).year;
61660 } else {
61661 weeksTarget = weeksInYear(input, dow, doy);
61662 if (week > weeksTarget) {
61663 week = weeksTarget;
61664 }
61665 return setWeekAll.call(this, input, week, weekday, dow, doy);
61666 }
61667}
61668
61669function setWeekAll(weekYear, week, weekday, dow, doy) {
61670 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
61671 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
61672
61673 this.year(date.getUTCFullYear());
61674 this.month(date.getUTCMonth());
61675 this.date(date.getUTCDate());
61676 return this;
61677}
61678
61679// FORMATTING
61680
61681addFormatToken('Q', 0, 'Qo', 'quarter');
61682
61683// ALIASES
61684
61685addUnitAlias('quarter', 'Q');
61686
61687// PRIORITY
61688
61689addUnitPriority('quarter', 7);
61690
61691// PARSING
61692
61693addRegexToken('Q', match1);
61694addParseToken('Q', function (input, array) {
61695 array[MONTH] = (toInt(input) - 1) * 3;
61696});
61697
61698// MOMENTS
61699
61700function getSetQuarter (input) {
61701 return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
61702}
61703
61704// FORMATTING
61705
61706addFormatToken('D', ['DD', 2], 'Do', 'date');
61707
61708// ALIASES
61709
61710addUnitAlias('date', 'D');
61711
61712// PRIOROITY
61713addUnitPriority('date', 9);
61714
61715// PARSING
61716
61717addRegexToken('D', match1to2);
61718addRegexToken('DD', match1to2, match2);
61719addRegexToken('Do', function (isStrict, locale) {
61720 // TODO: Remove "ordinalParse" fallback in next major release.
61721 return isStrict ?
61722 (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
61723 locale._dayOfMonthOrdinalParseLenient;
61724});
61725
61726addParseToken(['D', 'DD'], DATE);
61727addParseToken('Do', function (input, array) {
61728 array[DATE] = toInt(input.match(match1to2)[0]);
61729});
61730
61731// MOMENTS
61732
61733var getSetDayOfMonth = makeGetSet('Date', true);
61734
61735// FORMATTING
61736
61737addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
61738
61739// ALIASES
61740
61741addUnitAlias('dayOfYear', 'DDD');
61742
61743// PRIORITY
61744addUnitPriority('dayOfYear', 4);
61745
61746// PARSING
61747
61748addRegexToken('DDD', match1to3);
61749addRegexToken('DDDD', match3);
61750addParseToken(['DDD', 'DDDD'], function (input, array, config) {
61751 config._dayOfYear = toInt(input);
61752});
61753
61754// HELPERS
61755
61756// MOMENTS
61757
61758function getSetDayOfYear (input) {
61759 var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
61760 return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
61761}
61762
61763// FORMATTING
61764
61765addFormatToken('m', ['mm', 2], 0, 'minute');
61766
61767// ALIASES
61768
61769addUnitAlias('minute', 'm');
61770
61771// PRIORITY
61772
61773addUnitPriority('minute', 14);
61774
61775// PARSING
61776
61777addRegexToken('m', match1to2);
61778addRegexToken('mm', match1to2, match2);
61779addParseToken(['m', 'mm'], MINUTE);
61780
61781// MOMENTS
61782
61783var getSetMinute = makeGetSet('Minutes', false);
61784
61785// FORMATTING
61786
61787addFormatToken('s', ['ss', 2], 0, 'second');
61788
61789// ALIASES
61790
61791addUnitAlias('second', 's');
61792
61793// PRIORITY
61794
61795addUnitPriority('second', 15);
61796
61797// PARSING
61798
61799addRegexToken('s', match1to2);
61800addRegexToken('ss', match1to2, match2);
61801addParseToken(['s', 'ss'], SECOND);
61802
61803// MOMENTS
61804
61805var getSetSecond = makeGetSet('Seconds', false);
61806
61807// FORMATTING
61808
61809addFormatToken('S', 0, 0, function () {
61810 return ~~(this.millisecond() / 100);
61811});
61812
61813addFormatToken(0, ['SS', 2], 0, function () {
61814 return ~~(this.millisecond() / 10);
61815});
61816
61817addFormatToken(0, ['SSS', 3], 0, 'millisecond');
61818addFormatToken(0, ['SSSS', 4], 0, function () {
61819 return this.millisecond() * 10;
61820});
61821addFormatToken(0, ['SSSSS', 5], 0, function () {
61822 return this.millisecond() * 100;
61823});
61824addFormatToken(0, ['SSSSSS', 6], 0, function () {
61825 return this.millisecond() * 1000;
61826});
61827addFormatToken(0, ['SSSSSSS', 7], 0, function () {
61828 return this.millisecond() * 10000;
61829});
61830addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
61831 return this.millisecond() * 100000;
61832});
61833addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
61834 return this.millisecond() * 1000000;
61835});
61836
61837
61838// ALIASES
61839
61840addUnitAlias('millisecond', 'ms');
61841
61842// PRIORITY
61843
61844addUnitPriority('millisecond', 16);
61845
61846// PARSING
61847
61848addRegexToken('S', match1to3, match1);
61849addRegexToken('SS', match1to3, match2);
61850addRegexToken('SSS', match1to3, match3);
61851
61852var token;
61853for (token = 'SSSS'; token.length <= 9; token += 'S') {
61854 addRegexToken(token, matchUnsigned);
61855}
61856
61857function parseMs(input, array) {
61858 array[MILLISECOND] = toInt(('0.' + input) * 1000);
61859}
61860
61861for (token = 'S'; token.length <= 9; token += 'S') {
61862 addParseToken(token, parseMs);
61863}
61864// MOMENTS
61865
61866var getSetMillisecond = makeGetSet('Milliseconds', false);
61867
61868// FORMATTING
61869
61870addFormatToken('z', 0, 0, 'zoneAbbr');
61871addFormatToken('zz', 0, 0, 'zoneName');
61872
61873// MOMENTS
61874
61875function getZoneAbbr () {
61876 return this._isUTC ? 'UTC' : '';
61877}
61878
61879function getZoneName () {
61880 return this._isUTC ? 'Coordinated Universal Time' : '';
61881}
61882
61883var proto = Moment.prototype;
61884
61885proto.add = add;
61886proto.calendar = calendar$1;
61887proto.clone = clone;
61888proto.diff = diff;
61889proto.endOf = endOf;
61890proto.format = format;
61891proto.from = from;
61892proto.fromNow = fromNow;
61893proto.to = to;
61894proto.toNow = toNow;
61895proto.get = stringGet;
61896proto.invalidAt = invalidAt;
61897proto.isAfter = isAfter;
61898proto.isBefore = isBefore;
61899proto.isBetween = isBetween;
61900proto.isSame = isSame;
61901proto.isSameOrAfter = isSameOrAfter;
61902proto.isSameOrBefore = isSameOrBefore;
61903proto.isValid = isValid$2;
61904proto.lang = lang;
61905proto.locale = locale;
61906proto.localeData = localeData;
61907proto.max = prototypeMax;
61908proto.min = prototypeMin;
61909proto.parsingFlags = parsingFlags;
61910proto.set = stringSet;
61911proto.startOf = startOf;
61912proto.subtract = subtract;
61913proto.toArray = toArray;
61914proto.toObject = toObject;
61915proto.toDate = toDate;
61916proto.toISOString = toISOString;
61917proto.inspect = inspect;
61918proto.toJSON = toJSON;
61919proto.toString = toString;
61920proto.unix = unix;
61921proto.valueOf = valueOf;
61922proto.creationData = creationData;
61923proto.year = getSetYear;
61924proto.isLeapYear = getIsLeapYear;
61925proto.weekYear = getSetWeekYear;
61926proto.isoWeekYear = getSetISOWeekYear;
61927proto.quarter = proto.quarters = getSetQuarter;
61928proto.month = getSetMonth;
61929proto.daysInMonth = getDaysInMonth;
61930proto.week = proto.weeks = getSetWeek;
61931proto.isoWeek = proto.isoWeeks = getSetISOWeek;
61932proto.weeksInYear = getWeeksInYear;
61933proto.isoWeeksInYear = getISOWeeksInYear;
61934proto.date = getSetDayOfMonth;
61935proto.day = proto.days = getSetDayOfWeek;
61936proto.weekday = getSetLocaleDayOfWeek;
61937proto.isoWeekday = getSetISODayOfWeek;
61938proto.dayOfYear = getSetDayOfYear;
61939proto.hour = proto.hours = getSetHour;
61940proto.minute = proto.minutes = getSetMinute;
61941proto.second = proto.seconds = getSetSecond;
61942proto.millisecond = proto.milliseconds = getSetMillisecond;
61943proto.utcOffset = getSetOffset;
61944proto.utc = setOffsetToUTC;
61945proto.local = setOffsetToLocal;
61946proto.parseZone = setOffsetToParsedOffset;
61947proto.hasAlignedHourOffset = hasAlignedHourOffset;
61948proto.isDST = isDaylightSavingTime;
61949proto.isLocal = isLocal;
61950proto.isUtcOffset = isUtcOffset;
61951proto.isUtc = isUtc;
61952proto.isUTC = isUtc;
61953proto.zoneAbbr = getZoneAbbr;
61954proto.zoneName = getZoneName;
61955proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
61956proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
61957proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
61958proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
61959proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
61960
61961function createUnix (input) {
61962 return createLocal(input * 1000);
61963}
61964
61965function createInZone () {
61966 return createLocal.apply(null, arguments).parseZone();
61967}
61968
61969function preParsePostFormat (string) {
61970 return string;
61971}
61972
61973var proto$1 = Locale.prototype;
61974
61975proto$1.calendar = calendar;
61976proto$1.longDateFormat = longDateFormat;
61977proto$1.invalidDate = invalidDate;
61978proto$1.ordinal = ordinal;
61979proto$1.preparse = preParsePostFormat;
61980proto$1.postformat = preParsePostFormat;
61981proto$1.relativeTime = relativeTime;
61982proto$1.pastFuture = pastFuture;
61983proto$1.set = set;
61984
61985proto$1.months = localeMonths;
61986proto$1.monthsShort = localeMonthsShort;
61987proto$1.monthsParse = localeMonthsParse;
61988proto$1.monthsRegex = monthsRegex;
61989proto$1.monthsShortRegex = monthsShortRegex;
61990proto$1.week = localeWeek;
61991proto$1.firstDayOfYear = localeFirstDayOfYear;
61992proto$1.firstDayOfWeek = localeFirstDayOfWeek;
61993
61994proto$1.weekdays = localeWeekdays;
61995proto$1.weekdaysMin = localeWeekdaysMin;
61996proto$1.weekdaysShort = localeWeekdaysShort;
61997proto$1.weekdaysParse = localeWeekdaysParse;
61998
61999proto$1.weekdaysRegex = weekdaysRegex;
62000proto$1.weekdaysShortRegex = weekdaysShortRegex;
62001proto$1.weekdaysMinRegex = weekdaysMinRegex;
62002
62003proto$1.isPM = localeIsPM;
62004proto$1.meridiem = localeMeridiem;
62005
62006function get$1 (format, index, field, setter) {
62007 var locale = getLocale();
62008 var utc = createUTC().set(setter, index);
62009 return locale[field](utc, format);
62010}
62011
62012function listMonthsImpl (format, index, field) {
62013 if (isNumber(format)) {
62014 index = format;
62015 format = undefined;
62016 }
62017
62018 format = format || '';
62019
62020 if (index != null) {
62021 return get$1(format, index, field, 'month');
62022 }
62023
62024 var i;
62025 var out = [];
62026 for (i = 0; i < 12; i++) {
62027 out[i] = get$1(format, i, field, 'month');
62028 }
62029 return out;
62030}
62031
62032// ()
62033// (5)
62034// (fmt, 5)
62035// (fmt)
62036// (true)
62037// (true, 5)
62038// (true, fmt, 5)
62039// (true, fmt)
62040function listWeekdaysImpl (localeSorted, format, index, field) {
62041 if (typeof localeSorted === 'boolean') {
62042 if (isNumber(format)) {
62043 index = format;
62044 format = undefined;
62045 }
62046
62047 format = format || '';
62048 } else {
62049 format = localeSorted;
62050 index = format;
62051 localeSorted = false;
62052
62053 if (isNumber(format)) {
62054 index = format;
62055 format = undefined;
62056 }
62057
62058 format = format || '';
62059 }
62060
62061 var locale = getLocale(),
62062 shift = localeSorted ? locale._week.dow : 0;
62063
62064 if (index != null) {
62065 return get$1(format, (index + shift) % 7, field, 'day');
62066 }
62067
62068 var i;
62069 var out = [];
62070 for (i = 0; i < 7; i++) {
62071 out[i] = get$1(format, (i + shift) % 7, field, 'day');
62072 }
62073 return out;
62074}
62075
62076function listMonths (format, index) {
62077 return listMonthsImpl(format, index, 'months');
62078}
62079
62080function listMonthsShort (format, index) {
62081 return listMonthsImpl(format, index, 'monthsShort');
62082}
62083
62084function listWeekdays (localeSorted, format, index) {
62085 return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
62086}
62087
62088function listWeekdaysShort (localeSorted, format, index) {
62089 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
62090}
62091
62092function listWeekdaysMin (localeSorted, format, index) {
62093 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
62094}
62095
62096getSetGlobalLocale('en', {
62097 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
62098 ordinal : function (number) {
62099 var b = number % 10,
62100 output = (toInt(number % 100 / 10) === 1) ? 'th' :
62101 (b === 1) ? 'st' :
62102 (b === 2) ? 'nd' :
62103 (b === 3) ? 'rd' : 'th';
62104 return number + output;
62105 }
62106});
62107
62108// Side effect imports
62109
62110hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
62111hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
62112
62113var mathAbs = Math.abs;
62114
62115function abs () {
62116 var data = this._data;
62117
62118 this._milliseconds = mathAbs(this._milliseconds);
62119 this._days = mathAbs(this._days);
62120 this._months = mathAbs(this._months);
62121
62122 data.milliseconds = mathAbs(data.milliseconds);
62123 data.seconds = mathAbs(data.seconds);
62124 data.minutes = mathAbs(data.minutes);
62125 data.hours = mathAbs(data.hours);
62126 data.months = mathAbs(data.months);
62127 data.years = mathAbs(data.years);
62128
62129 return this;
62130}
62131
62132function addSubtract$1 (duration, input, value, direction) {
62133 var other = createDuration(input, value);
62134
62135 duration._milliseconds += direction * other._milliseconds;
62136 duration._days += direction * other._days;
62137 duration._months += direction * other._months;
62138
62139 return duration._bubble();
62140}
62141
62142// supports only 2.0-style add(1, 's') or add(duration)
62143function add$1 (input, value) {
62144 return addSubtract$1(this, input, value, 1);
62145}
62146
62147// supports only 2.0-style subtract(1, 's') or subtract(duration)
62148function subtract$1 (input, value) {
62149 return addSubtract$1(this, input, value, -1);
62150}
62151
62152function absCeil (number) {
62153 if (number < 0) {
62154 return Math.floor(number);
62155 } else {
62156 return Math.ceil(number);
62157 }
62158}
62159
62160function bubble () {
62161 var milliseconds = this._milliseconds;
62162 var days = this._days;
62163 var months = this._months;
62164 var data = this._data;
62165 var seconds, minutes, hours, years, monthsFromDays;
62166
62167 // if we have a mix of positive and negative values, bubble down first
62168 // check: https://github.com/moment/moment/issues/2166
62169 if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
62170 (milliseconds <= 0 && days <= 0 && months <= 0))) {
62171 milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
62172 days = 0;
62173 months = 0;
62174 }
62175
62176 // The following code bubbles up values, see the tests for
62177 // examples of what that means.
62178 data.milliseconds = milliseconds % 1000;
62179
62180 seconds = absFloor(milliseconds / 1000);
62181 data.seconds = seconds % 60;
62182
62183 minutes = absFloor(seconds / 60);
62184 data.minutes = minutes % 60;
62185
62186 hours = absFloor(minutes / 60);
62187 data.hours = hours % 24;
62188
62189 days += absFloor(hours / 24);
62190
62191 // convert days to months
62192 monthsFromDays = absFloor(daysToMonths(days));
62193 months += monthsFromDays;
62194 days -= absCeil(monthsToDays(monthsFromDays));
62195
62196 // 12 months -> 1 year
62197 years = absFloor(months / 12);
62198 months %= 12;
62199
62200 data.days = days;
62201 data.months = months;
62202 data.years = years;
62203
62204 return this;
62205}
62206
62207function daysToMonths (days) {
62208 // 400 years have 146097 days (taking into account leap year rules)
62209 // 400 years have 12 months === 4800
62210 return days * 4800 / 146097;
62211}
62212
62213function monthsToDays (months) {
62214 // the reverse of daysToMonths
62215 return months * 146097 / 4800;
62216}
62217
62218function as (units) {
62219 if (!this.isValid()) {
62220 return NaN;
62221 }
62222 var days;
62223 var months;
62224 var milliseconds = this._milliseconds;
62225
62226 units = normalizeUnits(units);
62227
62228 if (units === 'month' || units === 'year') {
62229 days = this._days + milliseconds / 864e5;
62230 months = this._months + daysToMonths(days);
62231 return units === 'month' ? months : months / 12;
62232 } else {
62233 // handle milliseconds separately because of floating point math errors (issue #1867)
62234 days = this._days + Math.round(monthsToDays(this._months));
62235 switch (units) {
62236 case 'week' : return days / 7 + milliseconds / 6048e5;
62237 case 'day' : return days + milliseconds / 864e5;
62238 case 'hour' : return days * 24 + milliseconds / 36e5;
62239 case 'minute' : return days * 1440 + milliseconds / 6e4;
62240 case 'second' : return days * 86400 + milliseconds / 1000;
62241 // Math.floor prevents floating point math errors here
62242 case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
62243 default: throw new Error('Unknown unit ' + units);
62244 }
62245 }
62246}
62247
62248// TODO: Use this.as('ms')?
62249function valueOf$1 () {
62250 if (!this.isValid()) {
62251 return NaN;
62252 }
62253 return (
62254 this._milliseconds +
62255 this._days * 864e5 +
62256 (this._months % 12) * 2592e6 +
62257 toInt(this._months / 12) * 31536e6
62258 );
62259}
62260
62261function makeAs (alias) {
62262 return function () {
62263 return this.as(alias);
62264 };
62265}
62266
62267var asMilliseconds = makeAs('ms');
62268var asSeconds = makeAs('s');
62269var asMinutes = makeAs('m');
62270var asHours = makeAs('h');
62271var asDays = makeAs('d');
62272var asWeeks = makeAs('w');
62273var asMonths = makeAs('M');
62274var asYears = makeAs('y');
62275
62276function clone$1 () {
62277 return createDuration(this);
62278}
62279
62280function get$2 (units) {
62281 units = normalizeUnits(units);
62282 return this.isValid() ? this[units + 's']() : NaN;
62283}
62284
62285function makeGetter(name) {
62286 return function () {
62287 return this.isValid() ? this._data[name] : NaN;
62288 };
62289}
62290
62291var milliseconds = makeGetter('milliseconds');
62292var seconds = makeGetter('seconds');
62293var minutes = makeGetter('minutes');
62294var hours = makeGetter('hours');
62295var days = makeGetter('days');
62296var months = makeGetter('months');
62297var years = makeGetter('years');
62298
62299function weeks () {
62300 return absFloor(this.days() / 7);
62301}
62302
62303var round = Math.round;
62304var thresholds = {
62305 ss: 44, // a few seconds to seconds
62306 s : 45, // seconds to minute
62307 m : 45, // minutes to hour
62308 h : 22, // hours to day
62309 d : 26, // days to month
62310 M : 11 // months to year
62311};
62312
62313// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
62314function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
62315 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
62316}
62317
62318function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
62319 var duration = createDuration(posNegDuration).abs();
62320 var seconds = round(duration.as('s'));
62321 var minutes = round(duration.as('m'));
62322 var hours = round(duration.as('h'));
62323 var days = round(duration.as('d'));
62324 var months = round(duration.as('M'));
62325 var years = round(duration.as('y'));
62326
62327 var a = seconds <= thresholds.ss && ['s', seconds] ||
62328 seconds < thresholds.s && ['ss', seconds] ||
62329 minutes <= 1 && ['m'] ||
62330 minutes < thresholds.m && ['mm', minutes] ||
62331 hours <= 1 && ['h'] ||
62332 hours < thresholds.h && ['hh', hours] ||
62333 days <= 1 && ['d'] ||
62334 days < thresholds.d && ['dd', days] ||
62335 months <= 1 && ['M'] ||
62336 months < thresholds.M && ['MM', months] ||
62337 years <= 1 && ['y'] || ['yy', years];
62338
62339 a[2] = withoutSuffix;
62340 a[3] = +posNegDuration > 0;
62341 a[4] = locale;
62342 return substituteTimeAgo.apply(null, a);
62343}
62344
62345// This function allows you to set the rounding function for relative time strings
62346function getSetRelativeTimeRounding (roundingFunction) {
62347 if (roundingFunction === undefined) {
62348 return round;
62349 }
62350 if (typeof(roundingFunction) === 'function') {
62351 round = roundingFunction;
62352 return true;
62353 }
62354 return false;
62355}
62356
62357// This function allows you to set a threshold for relative time strings
62358function getSetRelativeTimeThreshold (threshold, limit) {
62359 if (thresholds[threshold] === undefined) {
62360 return false;
62361 }
62362 if (limit === undefined) {
62363 return thresholds[threshold];
62364 }
62365 thresholds[threshold] = limit;
62366 if (threshold === 's') {
62367 thresholds.ss = limit - 1;
62368 }
62369 return true;
62370}
62371
62372function humanize (withSuffix) {
62373 if (!this.isValid()) {
62374 return this.localeData().invalidDate();
62375 }
62376
62377 var locale = this.localeData();
62378 var output = relativeTime$1(this, !withSuffix, locale);
62379
62380 if (withSuffix) {
62381 output = locale.pastFuture(+this, output);
62382 }
62383
62384 return locale.postformat(output);
62385}
62386
62387var abs$1 = Math.abs;
62388
62389function sign(x) {
62390 return ((x > 0) - (x < 0)) || +x;
62391}
62392
62393function toISOString$1() {
62394 // for ISO strings we do not use the normal bubbling rules:
62395 // * milliseconds bubble up until they become hours
62396 // * days do not bubble at all
62397 // * months bubble up until they become years
62398 // This is because there is no context-free conversion between hours and days
62399 // (think of clock changes)
62400 // and also not between days and months (28-31 days per month)
62401 if (!this.isValid()) {
62402 return this.localeData().invalidDate();
62403 }
62404
62405 var seconds = abs$1(this._milliseconds) / 1000;
62406 var days = abs$1(this._days);
62407 var months = abs$1(this._months);
62408 var minutes, hours, years;
62409
62410 // 3600 seconds -> 60 minutes -> 1 hour
62411 minutes = absFloor(seconds / 60);
62412 hours = absFloor(minutes / 60);
62413 seconds %= 60;
62414 minutes %= 60;
62415
62416 // 12 months -> 1 year
62417 years = absFloor(months / 12);
62418 months %= 12;
62419
62420
62421 // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
62422 var Y = years;
62423 var M = months;
62424 var D = days;
62425 var h = hours;
62426 var m = minutes;
62427 var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
62428 var total = this.asSeconds();
62429
62430 if (!total) {
62431 // this is the same as C#'s (Noda) and python (isodate)...
62432 // but not other JS (goog.date)
62433 return 'P0D';
62434 }
62435
62436 var totalSign = total < 0 ? '-' : '';
62437 var ymSign = sign(this._months) !== sign(total) ? '-' : '';
62438 var daysSign = sign(this._days) !== sign(total) ? '-' : '';
62439 var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
62440
62441 return totalSign + 'P' +
62442 (Y ? ymSign + Y + 'Y' : '') +
62443 (M ? ymSign + M + 'M' : '') +
62444 (D ? daysSign + D + 'D' : '') +
62445 ((h || m || s) ? 'T' : '') +
62446 (h ? hmsSign + h + 'H' : '') +
62447 (m ? hmsSign + m + 'M' : '') +
62448 (s ? hmsSign + s + 'S' : '');
62449}
62450
62451var proto$2 = Duration.prototype;
62452
62453proto$2.isValid = isValid$1;
62454proto$2.abs = abs;
62455proto$2.add = add$1;
62456proto$2.subtract = subtract$1;
62457proto$2.as = as;
62458proto$2.asMilliseconds = asMilliseconds;
62459proto$2.asSeconds = asSeconds;
62460proto$2.asMinutes = asMinutes;
62461proto$2.asHours = asHours;
62462proto$2.asDays = asDays;
62463proto$2.asWeeks = asWeeks;
62464proto$2.asMonths = asMonths;
62465proto$2.asYears = asYears;
62466proto$2.valueOf = valueOf$1;
62467proto$2._bubble = bubble;
62468proto$2.clone = clone$1;
62469proto$2.get = get$2;
62470proto$2.milliseconds = milliseconds;
62471proto$2.seconds = seconds;
62472proto$2.minutes = minutes;
62473proto$2.hours = hours;
62474proto$2.days = days;
62475proto$2.weeks = weeks;
62476proto$2.months = months;
62477proto$2.years = years;
62478proto$2.humanize = humanize;
62479proto$2.toISOString = toISOString$1;
62480proto$2.toString = toISOString$1;
62481proto$2.toJSON = toISOString$1;
62482proto$2.locale = locale;
62483proto$2.localeData = localeData;
62484
62485proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
62486proto$2.lang = lang;
62487
62488// Side effect imports
62489
62490// FORMATTING
62491
62492addFormatToken('X', 0, 0, 'unix');
62493addFormatToken('x', 0, 0, 'valueOf');
62494
62495// PARSING
62496
62497addRegexToken('x', matchSigned);
62498addRegexToken('X', matchTimestamp);
62499addParseToken('X', function (input, array, config) {
62500 config._d = new Date(parseFloat(input, 10) * 1000);
62501});
62502addParseToken('x', function (input, array, config) {
62503 config._d = new Date(toInt(input));
62504});
62505
62506// Side effect imports
62507
62508
62509hooks.version = '2.21.0';
62510
62511setHookCallback(createLocal);
62512
62513hooks.fn = proto;
62514hooks.min = min;
62515hooks.max = max;
62516hooks.now = now;
62517hooks.utc = createUTC;
62518hooks.unix = createUnix;
62519hooks.months = listMonths;
62520hooks.isDate = isDate;
62521hooks.locale = getSetGlobalLocale;
62522hooks.invalid = createInvalid;
62523hooks.duration = createDuration;
62524hooks.isMoment = isMoment;
62525hooks.weekdays = listWeekdays;
62526hooks.parseZone = createInZone;
62527hooks.localeData = getLocale;
62528hooks.isDuration = isDuration;
62529hooks.monthsShort = listMonthsShort;
62530hooks.weekdaysMin = listWeekdaysMin;
62531hooks.defineLocale = defineLocale;
62532hooks.updateLocale = updateLocale;
62533hooks.locales = listLocales;
62534hooks.weekdaysShort = listWeekdaysShort;
62535hooks.normalizeUnits = normalizeUnits;
62536hooks.relativeTimeRounding = getSetRelativeTimeRounding;
62537hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
62538hooks.calendarFormat = getCalendarFormat;
62539hooks.prototype = proto;
62540
62541// currently HTML5 input type only supports 24-hour formats
62542hooks.HTML5_FMT = {
62543 DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
62544 DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
62545 DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
62546 DATE: 'YYYY-MM-DD', // <input type="date" />
62547 TIME: 'HH:mm', // <input type="time" />
62548 TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
62549 TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
62550 WEEK: 'YYYY-[W]WW', // <input type="week" />
62551 MONTH: 'YYYY-MM' // <input type="month" />
62552};
62553
62554return hooks;
62555
62556})));
62557
62558/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
62559
62560/***/ }),
62561
62562/***/ "./node_modules/node-libs-browser/mock/empty.js":
62563/*!******************************************************!*\
62564 !*** ./node_modules/node-libs-browser/mock/empty.js ***!
62565 \******************************************************/
62566/*! no static exports found */
62567/***/ (function(module, exports) {
62568
62569
62570
62571/***/ }),
62572
62573/***/ "./node_modules/path-browserify/index.js":
62574/*!***********************************************!*\
62575 !*** ./node_modules/path-browserify/index.js ***!
62576 \***********************************************/
62577/*! no static exports found */
62578/***/ (function(module, exports, __webpack_require__) {
62579
62580/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
62581//
62582// Permission is hereby granted, free of charge, to any person obtaining a
62583// copy of this software and associated documentation files (the
62584// "Software"), to deal in the Software without restriction, including
62585// without limitation the rights to use, copy, modify, merge, publish,
62586// distribute, sublicense, and/or sell copies of the Software, and to permit
62587// persons to whom the Software is furnished to do so, subject to the
62588// following conditions:
62589//
62590// The above copyright notice and this permission notice shall be included
62591// in all copies or substantial portions of the Software.
62592//
62593// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
62594// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
62595// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
62596// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
62597// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
62598// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
62599// USE OR OTHER DEALINGS IN THE SOFTWARE.
62600
62601// resolves . and .. elements in a path array with directory names there
62602// must be no slashes, empty elements, or device names (c:\) in the array
62603// (so also no leading and trailing slashes - it does not distinguish
62604// relative and absolute paths)
62605function normalizeArray(parts, allowAboveRoot) {
62606 // if the path tries to go above the root, `up` ends up > 0
62607 var up = 0;
62608 for (var i = parts.length - 1; i >= 0; i--) {
62609 var last = parts[i];
62610 if (last === '.') {
62611 parts.splice(i, 1);
62612 } else if (last === '..') {
62613 parts.splice(i, 1);
62614 up++;
62615 } else if (up) {
62616 parts.splice(i, 1);
62617 up--;
62618 }
62619 }
62620
62621 // if the path is allowed to go above the root, restore leading ..s
62622 if (allowAboveRoot) {
62623 for (; up--; up) {
62624 parts.unshift('..');
62625 }
62626 }
62627
62628 return parts;
62629}
62630
62631// Split a filename into [root, dir, basename, ext], unix version
62632// 'root' is just a slash, or nothing.
62633var splitPathRe =
62634 /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
62635var splitPath = function(filename) {
62636 return splitPathRe.exec(filename).slice(1);
62637};
62638
62639// path.resolve([from ...], to)
62640// posix version
62641exports.resolve = function() {
62642 var resolvedPath = '',
62643 resolvedAbsolute = false;
62644
62645 for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
62646 var path = (i >= 0) ? arguments[i] : process.cwd();
62647
62648 // Skip empty and invalid entries
62649 if (typeof path !== 'string') {
62650 throw new TypeError('Arguments to path.resolve must be strings');
62651 } else if (!path) {
62652 continue;
62653 }
62654
62655 resolvedPath = path + '/' + resolvedPath;
62656 resolvedAbsolute = path.charAt(0) === '/';
62657 }
62658
62659 // At this point the path should be resolved to a full absolute path, but
62660 // handle relative paths to be safe (might happen when process.cwd() fails)
62661
62662 // Normalize the path
62663 resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
62664 return !!p;
62665 }), !resolvedAbsolute).join('/');
62666
62667 return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
62668};
62669
62670// path.normalize(path)
62671// posix version
62672exports.normalize = function(path) {
62673 var isAbsolute = exports.isAbsolute(path),
62674 trailingSlash = substr(path, -1) === '/';
62675
62676 // Normalize the path
62677 path = normalizeArray(filter(path.split('/'), function(p) {
62678 return !!p;
62679 }), !isAbsolute).join('/');
62680
62681 if (!path && !isAbsolute) {
62682 path = '.';
62683 }
62684 if (path && trailingSlash) {
62685 path += '/';
62686 }
62687
62688 return (isAbsolute ? '/' : '') + path;
62689};
62690
62691// posix version
62692exports.isAbsolute = function(path) {
62693 return path.charAt(0) === '/';
62694};
62695
62696// posix version
62697exports.join = function() {
62698 var paths = Array.prototype.slice.call(arguments, 0);
62699 return exports.normalize(filter(paths, function(p, index) {
62700 if (typeof p !== 'string') {
62701 throw new TypeError('Arguments to path.join must be strings');
62702 }
62703 return p;
62704 }).join('/'));
62705};
62706
62707
62708// path.relative(from, to)
62709// posix version
62710exports.relative = function(from, to) {
62711 from = exports.resolve(from).substr(1);
62712 to = exports.resolve(to).substr(1);
62713
62714 function trim(arr) {
62715 var start = 0;
62716 for (; start < arr.length; start++) {
62717 if (arr[start] !== '') break;
62718 }
62719
62720 var end = arr.length - 1;
62721 for (; end >= 0; end--) {
62722 if (arr[end] !== '') break;
62723 }
62724
62725 if (start > end) return [];
62726 return arr.slice(start, end - start + 1);
62727 }
62728
62729 var fromParts = trim(from.split('/'));
62730 var toParts = trim(to.split('/'));
62731
62732 var length = Math.min(fromParts.length, toParts.length);
62733 var samePartsLength = length;
62734 for (var i = 0; i < length; i++) {
62735 if (fromParts[i] !== toParts[i]) {
62736 samePartsLength = i;
62737 break;
62738 }
62739 }
62740
62741 var outputParts = [];
62742 for (var i = samePartsLength; i < fromParts.length; i++) {
62743 outputParts.push('..');
62744 }
62745
62746 outputParts = outputParts.concat(toParts.slice(samePartsLength));
62747
62748 return outputParts.join('/');
62749};
62750
62751exports.sep = '/';
62752exports.delimiter = ':';
62753
62754exports.dirname = function(path) {
62755 var result = splitPath(path),
62756 root = result[0],
62757 dir = result[1];
62758
62759 if (!root && !dir) {
62760 // No dirname whatsoever
62761 return '.';
62762 }
62763
62764 if (dir) {
62765 // It has a dirname, strip trailing slash
62766 dir = dir.substr(0, dir.length - 1);
62767 }
62768
62769 return root + dir;
62770};
62771
62772
62773exports.basename = function(path, ext) {
62774 var f = splitPath(path)[2];
62775 // TODO: make this comparison case-insensitive on windows?
62776 if (ext && f.substr(-1 * ext.length) === ext) {
62777 f = f.substr(0, f.length - ext.length);
62778 }
62779 return f;
62780};
62781
62782
62783exports.extname = function(path) {
62784 return splitPath(path)[3];
62785};
62786
62787function filter (xs, f) {
62788 if (xs.filter) return xs.filter(f);
62789 var res = [];
62790 for (var i = 0; i < xs.length; i++) {
62791 if (f(xs[i], i, xs)) res.push(xs[i]);
62792 }
62793 return res;
62794}
62795
62796// String.prototype.substr - negative index don't work in IE8
62797var substr = 'ab'.substr(-1) === 'b'
62798 ? function (str, start, len) { return str.substr(start, len) }
62799 : function (str, start, len) {
62800 if (start < 0) start = str.length + start;
62801 return str.substr(start, len);
62802 }
62803;
62804
62805/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))
62806
62807/***/ }),
62808
62809/***/ "./node_modules/process/browser.js":
62810/*!*****************************************!*\
62811 !*** ./node_modules/process/browser.js ***!
62812 \*****************************************/
62813/*! no static exports found */
62814/***/ (function(module, exports) {
62815
62816// shim for using process in browser
62817var process = module.exports = {};
62818
62819// cached from whatever global is present so that test runners that stub it
62820// don't break things. But we need to wrap it in a try catch in case it is
62821// wrapped in strict mode code which doesn't define any globals. It's inside a
62822// function because try/catches deoptimize in certain engines.
62823
62824var cachedSetTimeout;
62825var cachedClearTimeout;
62826
62827function defaultSetTimout() {
62828 throw new Error('setTimeout has not been defined');
62829}
62830function defaultClearTimeout () {
62831 throw new Error('clearTimeout has not been defined');
62832}
62833(function () {
62834 try {
62835 if (typeof setTimeout === 'function') {
62836 cachedSetTimeout = setTimeout;
62837 } else {
62838 cachedSetTimeout = defaultSetTimout;
62839 }
62840 } catch (e) {
62841 cachedSetTimeout = defaultSetTimout;
62842 }
62843 try {
62844 if (typeof clearTimeout === 'function') {
62845 cachedClearTimeout = clearTimeout;
62846 } else {
62847 cachedClearTimeout = defaultClearTimeout;
62848 }
62849 } catch (e) {
62850 cachedClearTimeout = defaultClearTimeout;
62851 }
62852} ())
62853function runTimeout(fun) {
62854 if (cachedSetTimeout === setTimeout) {
62855 //normal enviroments in sane situations
62856 return setTimeout(fun, 0);
62857 }
62858 // if setTimeout wasn't available but was latter defined
62859 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
62860 cachedSetTimeout = setTimeout;
62861 return setTimeout(fun, 0);
62862 }
62863 try {
62864 // when when somebody has screwed with setTimeout but no I.E. maddness
62865 return cachedSetTimeout(fun, 0);
62866 } catch(e){
62867 try {
62868 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
62869 return cachedSetTimeout.call(null, fun, 0);
62870 } catch(e){
62871 // 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
62872 return cachedSetTimeout.call(this, fun, 0);
62873 }
62874 }
62875
62876
62877}
62878function runClearTimeout(marker) {
62879 if (cachedClearTimeout === clearTimeout) {
62880 //normal enviroments in sane situations
62881 return clearTimeout(marker);
62882 }
62883 // if clearTimeout wasn't available but was latter defined
62884 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
62885 cachedClearTimeout = clearTimeout;
62886 return clearTimeout(marker);
62887 }
62888 try {
62889 // when when somebody has screwed with setTimeout but no I.E. maddness
62890 return cachedClearTimeout(marker);
62891 } catch (e){
62892 try {
62893 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
62894 return cachedClearTimeout.call(null, marker);
62895 } catch (e){
62896 // 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.
62897 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
62898 return cachedClearTimeout.call(this, marker);
62899 }
62900 }
62901
62902
62903
62904}
62905var queue = [];
62906var draining = false;
62907var currentQueue;
62908var queueIndex = -1;
62909
62910function cleanUpNextTick() {
62911 if (!draining || !currentQueue) {
62912 return;
62913 }
62914 draining = false;
62915 if (currentQueue.length) {
62916 queue = currentQueue.concat(queue);
62917 } else {
62918 queueIndex = -1;
62919 }
62920 if (queue.length) {
62921 drainQueue();
62922 }
62923}
62924
62925function drainQueue() {
62926 if (draining) {
62927 return;
62928 }
62929 var timeout = runTimeout(cleanUpNextTick);
62930 draining = true;
62931
62932 var len = queue.length;
62933 while(len) {
62934 currentQueue = queue;
62935 queue = [];
62936 while (++queueIndex < len) {
62937 if (currentQueue) {
62938 currentQueue[queueIndex].run();
62939 }
62940 }
62941 queueIndex = -1;
62942 len = queue.length;
62943 }
62944 currentQueue = null;
62945 draining = false;
62946 runClearTimeout(timeout);
62947}
62948
62949process.nextTick = function (fun) {
62950 var args = new Array(arguments.length - 1);
62951 if (arguments.length > 1) {
62952 for (var i = 1; i < arguments.length; i++) {
62953 args[i - 1] = arguments[i];
62954 }
62955 }
62956 queue.push(new Item(fun, args));
62957 if (queue.length === 1 && !draining) {
62958 runTimeout(drainQueue);
62959 }
62960};
62961
62962// v8 likes predictible objects
62963function Item(fun, array) {
62964 this.fun = fun;
62965 this.array = array;
62966}
62967Item.prototype.run = function () {
62968 this.fun.apply(null, this.array);
62969};
62970process.title = 'browser';
62971process.browser = true;
62972process.env = {};
62973process.argv = [];
62974process.version = ''; // empty string to avoid regexp issues
62975process.versions = {};
62976
62977function noop() {}
62978
62979process.on = noop;
62980process.addListener = noop;
62981process.once = noop;
62982process.off = noop;
62983process.removeListener = noop;
62984process.removeAllListeners = noop;
62985process.emit = noop;
62986process.prependListener = noop;
62987process.prependOnceListener = noop;
62988
62989process.listeners = function (name) { return [] }
62990
62991process.binding = function (name) {
62992 throw new Error('process.binding is not supported');
62993};
62994
62995process.cwd = function () { return '/' };
62996process.chdir = function (dir) {
62997 throw new Error('process.chdir is not supported');
62998};
62999process.umask = function() { return 0; };
63000
63001
63002/***/ }),
63003
63004/***/ "./node_modules/scope-css/index.js":
63005/*!*****************************************!*\
63006 !*** ./node_modules/scope-css/index.js ***!
63007 \*****************************************/
63008/*! no static exports found */
63009/***/ (function(module, exports) {
63010
63011module.exports = scope;
63012scope.replace = replace;
63013
63014function scope (css, parent) {
63015 if (!css) return css;
63016
63017 if (!parent) return css;
63018
63019 css = replace(css, parent + ' $1$2');
63020
63021 //regexp.escape
63022 var parentRe = parent.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
63023
63024 //replace self-selectors
63025 css = css.replace(new RegExp('(' + parentRe + ')\\s*\\1(?=[\\s\\r\\n,{])', 'g'), '$1');
63026
63027 //replace `:host` with parent
63028 css = css.replace(new RegExp('(' + parentRe + ')\\s*:host', 'g'), '$1');
63029
63030 //revoke wrongly replaced @ statements, like @supports, @import, @media etc.
63031 css = css.replace(new RegExp('(' + parentRe + ')\\s*@', 'g'), '@');
63032
63033 return css;
63034}
63035
63036function replace (css, replacer) {
63037 //strip block comments
63038 css = css.replace(/\/\*([\s\S]*?)\*\//g, '');
63039
63040 return css.replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g, replacer);
63041}
63042
63043
63044/***/ }),
63045
63046/***/ "./node_modules/webpack/buildin/global.js":
63047/*!***********************************!*\
63048 !*** (webpack)/buildin/global.js ***!
63049 \***********************************/
63050/*! no static exports found */
63051/***/ (function(module, exports) {
63052
63053var g;
63054
63055// This works in non-strict mode
63056g = (function() {
63057 return this;
63058})();
63059
63060try {
63061 // This works if eval is allowed (see CSP)
63062 g = g || Function("return this")() || (1, eval)("this");
63063} catch (e) {
63064 // This works if the window reference is available
63065 if (typeof window === "object") g = window;
63066}
63067
63068// g can still be undefined, but nothing to do about it...
63069// We return undefined, instead of nothing here, so it's
63070// easier to handle this case. if(!global) { ...}
63071
63072module.exports = g;
63073
63074
63075/***/ }),
63076
63077/***/ "./node_modules/webpack/buildin/module.js":
63078/*!***********************************!*\
63079 !*** (webpack)/buildin/module.js ***!
63080 \***********************************/
63081/*! no static exports found */
63082/***/ (function(module, exports) {
63083
63084module.exports = function(module) {
63085 if (!module.webpackPolyfill) {
63086 module.deprecate = function() {};
63087 module.paths = [];
63088 // module.parent = undefined by default
63089 if (!module.children) module.children = [];
63090 Object.defineProperty(module, "loaded", {
63091 enumerable: true,
63092 get: function() {
63093 return module.l;
63094 }
63095 });
63096 Object.defineProperty(module, "id", {
63097 enumerable: true,
63098 get: function() {
63099 return module.i;
63100 }
63101 });
63102 module.webpackPolyfill = 1;
63103 }
63104 return module;
63105};
63106
63107
63108/***/ }),
63109
63110/***/ "./src/diagrams/class/classDb.js":
63111/*!***************************************!*\
63112 !*** ./src/diagrams/class/classDb.js ***!
63113 \***************************************/
63114/*! no static exports found */
63115/***/ (function(module, exports, __webpack_require__) {
63116
63117"use strict";
63118
63119
63120Object.defineProperty(exports, "__esModule", {
63121 value: true
63122});
63123exports.relationType = exports.lineType = exports.cleanupLabel = exports.addMembers = exports.addRelation = exports.getRelations = exports.getClasses = exports.getClass = exports.clear = exports.addClass = undefined;
63124
63125var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
63126
63127var relations = [];
63128var classes = {};
63129
63130/**
63131 * Function called by parser when a node definition has been found.
63132 * @param id
63133 * @param text
63134 * @param type
63135 * @param style
63136 */
63137var addClass = exports.addClass = function addClass(id) {
63138 if (typeof classes[id] === 'undefined') {
63139 classes[id] = {
63140 id: id,
63141 methods: [],
63142 members: []
63143 };
63144 }
63145};
63146
63147var clear = exports.clear = function clear() {
63148 relations = [];
63149 classes = {};
63150};
63151
63152var getClass = exports.getClass = function getClass(id) {
63153 return classes[id];
63154};
63155var getClasses = exports.getClasses = function getClasses() {
63156 return classes;
63157};
63158
63159var getRelations = exports.getRelations = function getRelations() {
63160 return relations;
63161};
63162
63163var addRelation = exports.addRelation = function addRelation(relation) {
63164 _logger.logger.debug('Adding relation: ' + JSON.stringify(relation));
63165 addClass(relation.id1);
63166 addClass(relation.id2);
63167 relations.push(relation);
63168};
63169
63170var addMembers = exports.addMembers = function addMembers(className, MembersArr) {
63171 var theClass = classes[className];
63172 if (typeof MembersArr === 'string') {
63173 if (MembersArr.substr(-1) === ')') {
63174 theClass.methods.push(MembersArr);
63175 } else {
63176 theClass.members.push(MembersArr);
63177 }
63178 }
63179};
63180
63181var cleanupLabel = exports.cleanupLabel = function cleanupLabel(label) {
63182 if (label.substring(0, 1) === ':') {
63183 return label.substr(2).trim();
63184 } else {
63185 return label.trim();
63186 }
63187};
63188
63189var lineType = exports.lineType = {
63190 LINE: 0,
63191 DOTTED_LINE: 1
63192};
63193
63194var relationType = exports.relationType = {
63195 AGGREGATION: 0,
63196 EXTENSION: 1,
63197 COMPOSITION: 2,
63198 DEPENDENCY: 3
63199};
63200
63201exports.default = {
63202 addClass: addClass,
63203 clear: clear,
63204 getClass: getClass,
63205 getClasses: getClasses,
63206 getRelations: getRelations,
63207 addRelation: addRelation,
63208 addMembers: addMembers,
63209 cleanupLabel: cleanupLabel,
63210 lineType: lineType,
63211 relationType: relationType
63212};
63213
63214/***/ }),
63215
63216/***/ "./src/diagrams/class/classRenderer.js":
63217/*!*********************************************!*\
63218 !*** ./src/diagrams/class/classRenderer.js ***!
63219 \*********************************************/
63220/*! no static exports found */
63221/***/ (function(module, exports, __webpack_require__) {
63222
63223"use strict";
63224
63225
63226Object.defineProperty(exports, "__esModule", {
63227 value: true
63228});
63229exports.draw = exports.setConf = undefined;
63230
63231var _dagreLayout = __webpack_require__(/*! dagre-layout */ "./node_modules/dagre-layout/dist/dagre-layout.core.js");
63232
63233var _dagreLayout2 = _interopRequireDefault(_dagreLayout);
63234
63235var _graphlibrary = __webpack_require__(/*! graphlibrary */ "./node_modules/graphlibrary/index.js");
63236
63237var _graphlibrary2 = _interopRequireDefault(_graphlibrary);
63238
63239var _d = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
63240
63241var d3 = _interopRequireWildcard(_d);
63242
63243var _classDb = __webpack_require__(/*! ./classDb */ "./src/diagrams/class/classDb.js");
63244
63245var _classDb2 = _interopRequireDefault(_classDb);
63246
63247var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
63248
63249var _classDiagram = __webpack_require__(/*! ./parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.js");
63250
63251function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
63252
63253function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
63254
63255_classDiagram.parser.yy = _classDb2.default;
63256
63257var idCache = {};
63258
63259var classCnt = 0;
63260var conf = {
63261 dividerMargin: 10,
63262 padding: 5,
63263 textHeight: 10
63264
63265 // Todo optimize
63266};var getGraphId = function getGraphId(label) {
63267 var keys = Object.keys(idCache);
63268
63269 for (var i = 0; i < keys.length; i++) {
63270 if (idCache[keys[i]].label === label) {
63271 return keys[i];
63272 }
63273 }
63274
63275 return undefined;
63276};
63277
63278/**
63279 * Setup arrow head and define the marker. The result is appended to the svg.
63280 */
63281var insertMarkers = function insertMarkers(elem) {
63282 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');
63283
63284 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
63285
63286 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');
63287
63288 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');
63289
63290 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');
63291
63292 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');
63293
63294 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');
63295
63296 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');
63297};
63298
63299var edgeCount = 0;
63300var drawEdge = function drawEdge(elem, path, relation) {
63301 var getRelationType = function getRelationType(type) {
63302 switch (type) {
63303 case _classDb2.default.relationType.AGGREGATION:
63304 return 'aggregation';
63305 case _classDb2.default.relationType.EXTENSION:
63306 return 'extension';
63307 case _classDb2.default.relationType.COMPOSITION:
63308 return 'composition';
63309 case _classDb2.default.relationType.DEPENDENCY:
63310 return 'dependency';
63311 }
63312 };
63313
63314 // The data for our line
63315 var lineData = path.points;
63316
63317 // This is the accessor function we talked about above
63318 var lineFunction = d3.line().x(function (d) {
63319 return d.x;
63320 }).y(function (d) {
63321 return d.y;
63322 }).curve(d3.curveBasis);
63323
63324 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'relation');
63325 var url = '';
63326 if (conf.arrowMarkerAbsolute) {
63327 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
63328 url = url.replace(/\(/g, '\\(');
63329 url = url.replace(/\)/g, '\\)');
63330 }
63331
63332 if (relation.relation.type1 !== 'none') {
63333 svgPath.attr('marker-start', 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')');
63334 }
63335 if (relation.relation.type2 !== 'none') {
63336 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')');
63337 }
63338
63339 var x = void 0,
63340 y = void 0;
63341 var l = path.points.length;
63342 if (l % 2 !== 0) {
63343 var p1 = path.points[Math.floor(l / 2)];
63344 var p2 = path.points[Math.ceil(l / 2)];
63345 x = (p1.x + p2.x) / 2;
63346 y = (p1.y + p2.y) / 2;
63347 } else {
63348 var p = path.points[Math.floor(l / 2)];
63349 x = p.x;
63350 y = p.y;
63351 }
63352
63353 if (typeof relation.title !== 'undefined') {
63354 var g = elem.append('g').attr('class', 'classLabel');
63355 var label = g.append('text').attr('class', 'label').attr('x', x).attr('y', y).attr('fill', 'red').attr('text-anchor', 'middle').text(relation.title);
63356
63357 window.label = label;
63358 var bounds = label.node().getBBox();
63359
63360 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);
63361 }
63362
63363 edgeCount++;
63364};
63365
63366var drawClass = function drawClass(elem, classDef) {
63367 _logger.logger.info('Rendering class ' + classDef);
63368
63369 var addTspan = function addTspan(textEl, txt, isFirst) {
63370 var tSpan = textEl.append('tspan').attr('x', conf.padding).text(txt);
63371 if (!isFirst) {
63372 tSpan.attr('dy', conf.textHeight);
63373 }
63374 };
63375
63376 var id = 'classId' + classCnt;
63377 var classInfo = {
63378 id: id,
63379 label: classDef.id,
63380 width: 0,
63381 height: 0
63382 };
63383
63384 var g = elem.append('g').attr('id', id).attr('class', 'classGroup');
63385 var title = g.append('text').attr('x', conf.padding).attr('y', conf.textHeight + conf.padding).text(classDef.id);
63386
63387 var titleHeight = title.node().getBBox().height;
63388
63389 var membersLine = g.append('line') // text label for the x axis
63390 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2).attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);
63391
63392 var members = g.append('text') // text label for the x axis
63393 .attr('x', conf.padding).attr('y', titleHeight + conf.dividerMargin + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
63394
63395 var isFirst = true;
63396 classDef.members.forEach(function (member) {
63397 addTspan(members, member, isFirst);
63398 isFirst = false;
63399 });
63400
63401 var membersBox = members.node().getBBox();
63402
63403 var methodsLine = g.append('line') // text label for the x axis
63404 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
63405
63406 var methods = g.append('text') // text label for the x axis
63407 .attr('x', conf.padding).attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
63408
63409 isFirst = true;
63410
63411 classDef.methods.forEach(function (method) {
63412 addTspan(methods, method, isFirst);
63413 isFirst = false;
63414 });
63415
63416 var classBox = g.node().getBBox();
63417 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);
63418
63419 membersLine.attr('x2', classBox.width + 2 * conf.padding);
63420 methodsLine.attr('x2', classBox.width + 2 * conf.padding);
63421
63422 classInfo.width = classBox.width + 2 * conf.padding;
63423 classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
63424
63425 idCache[id] = classInfo;
63426 classCnt++;
63427 return classInfo;
63428};
63429
63430var setConf = exports.setConf = function setConf(cnf) {
63431 var keys = Object.keys(cnf);
63432
63433 keys.forEach(function (key) {
63434 conf[key] = cnf[key];
63435 });
63436};
63437/**
63438 * Draws a flowchart in the tag with id: id based on the graph definition in text.
63439 * @param text
63440 * @param id
63441 */
63442var draw = exports.draw = function draw(text, id) {
63443 _classDiagram.parser.yy.clear();
63444 _classDiagram.parser.parse(text);
63445
63446 _logger.logger.info('Rendering diagram ' + text);
63447
63448 /// / Fetch the default direction, use TD if none was found
63449 var diagram = d3.select('[id="' + id + '"]');
63450 insertMarkers(diagram);
63451
63452 // Layout graph, Create a new directed graph
63453 var g = new _graphlibrary2.default.Graph({
63454 multigraph: true
63455 });
63456
63457 // Set an object for the graph label
63458 g.setGraph({
63459 isMultiGraph: true
63460 });
63461
63462 // Default to assigning a new object as a label for each new edge.
63463 g.setDefaultEdgeLabel(function () {
63464 return {};
63465 });
63466
63467 var classes = _classDb2.default.getClasses();
63468 var keys = Object.keys(classes);
63469 for (var i = 0; i < keys.length; i++) {
63470 var classDef = classes[keys[i]];
63471 var node = drawClass(diagram, classDef);
63472 // Add nodes to the graph. The first argument is the node id. The second is
63473 // metadata about the node. In this case we're going to add labels to each of
63474 // our nodes.
63475 g.setNode(node.id, node);
63476 _logger.logger.info('Org height: ' + node.height);
63477 }
63478
63479 var relations = _classDb2.default.getRelations();
63480 relations.forEach(function (relation) {
63481 _logger.logger.info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation));
63482 g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), { relation: relation });
63483 });
63484 _dagreLayout2.default.layout(g);
63485 g.nodes().forEach(function (v) {
63486 if (typeof v !== 'undefined') {
63487 _logger.logger.debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));
63488 d3.select('#' + v).attr('transform', 'translate(' + (g.node(v).x - g.node(v).width / 2) + ',' + (g.node(v).y - g.node(v).height / 2) + ' )');
63489 }
63490 });
63491 g.edges().forEach(function (e) {
63492 _logger.logger.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));
63493 drawEdge(diagram, g.edge(e), g.edge(e).relation);
63494 });
63495
63496 diagram.attr('height', '100%');
63497 diagram.attr('width', '100%');
63498 diagram.attr('viewBox', '0 0 ' + (g.graph().width + 20) + ' ' + (g.graph().height + 20));
63499};
63500
63501exports.default = {
63502 setConf: setConf,
63503 draw: draw
63504};
63505
63506/***/ }),
63507
63508/***/ "./src/diagrams/class/parser/classDiagram.js":
63509/*!***************************************************!*\
63510 !*** ./src/diagrams/class/parser/classDiagram.js ***!
63511 \***************************************************/
63512/*! no static exports found */
63513/***/ (function(module, exports, __webpack_require__) {
63514
63515"use strict";
63516/* WEBPACK VAR INJECTION */(function(process, module) {
63517
63518/* parser generated by jison 0.4.18 */
63519/*
63520 Returns a Parser object of the following structure:
63521
63522 Parser: {
63523 yy: {}
63524 }
63525
63526 Parser.prototype: {
63527 yy: {},
63528 trace: function(),
63529 symbols_: {associative list: name ==> number},
63530 terminals_: {associative list: number ==> name},
63531 productions_: [...],
63532 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
63533 table: [...],
63534 defaultActions: {...},
63535 parseError: function(str, hash),
63536 parse: function(input),
63537
63538 lexer: {
63539 EOF: 1,
63540 parseError: function(str, hash),
63541 setInput: function(input),
63542 input: function(),
63543 unput: function(str),
63544 more: function(),
63545 less: function(n),
63546 pastInput: function(),
63547 upcomingInput: function(),
63548 showPosition: function(),
63549 test_match: function(regex_match_array, rule_index),
63550 next: function(),
63551 lex: function(),
63552 begin: function(condition),
63553 popState: function(),
63554 _currentRules: function(),
63555 topState: function(),
63556 pushState: function(condition),
63557
63558 options: {
63559 ranges: boolean (optional: true ==> token location info will include a .range[] member)
63560 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
63561 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)
63562 },
63563
63564 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
63565 rules: [...],
63566 conditions: {associative list: name ==> set},
63567 }
63568 }
63569
63570
63571 token location info (@$, _$, etc.): {
63572 first_line: n,
63573 last_line: n,
63574 first_column: n,
63575 last_column: n,
63576 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
63577 }
63578
63579
63580 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
63581 text: (matched text)
63582 token: (the produced terminal token, if any)
63583 line: (yylineno)
63584 }
63585 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
63586 loc: (yylloc)
63587 expected: (string describing the set of expected tokens)
63588 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
63589 }
63590*/
63591var parser = function () {
63592 var o = function o(k, v, _o, l) {
63593 for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o;
63594 },
63595 $V0 = [1, 11],
63596 $V1 = [1, 12],
63597 $V2 = [1, 13],
63598 $V3 = [1, 15],
63599 $V4 = [1, 16],
63600 $V5 = [1, 17],
63601 $V6 = [6, 8],
63602 $V7 = [1, 26],
63603 $V8 = [1, 27],
63604 $V9 = [1, 28],
63605 $Va = [1, 29],
63606 $Vb = [1, 30],
63607 $Vc = [1, 31],
63608 $Vd = [6, 8, 13, 17, 23, 26, 27, 28, 29, 30, 31],
63609 $Ve = [6, 8, 13, 17, 23, 26, 27, 28, 29, 30, 31, 45, 46, 47],
63610 $Vf = [23, 45, 46, 47],
63611 $Vg = [23, 30, 31, 45, 46, 47],
63612 $Vh = [23, 26, 27, 28, 29, 45, 46, 47],
63613 $Vi = [6, 8, 13],
63614 $Vj = [1, 46];
63615 var parser = { trace: function trace() {},
63616 yy: {},
63617 symbols_: { "error": 2, "mermaidDoc": 3, "graphConfig": 4, "CLASS_DIAGRAM": 5, "NEWLINE": 6, "statements": 7, "EOF": 8, "statement": 9, "className": 10, "alphaNumToken": 11, "relationStatement": 12, "LABEL": 13, "classStatement": 14, "methodStatement": 15, "CLASS": 16, "STRUCT_START": 17, "members": 18, "STRUCT_STOP": 19, "MEMBER": 20, "SEPARATOR": 21, "relation": 22, "STR": 23, "relationType": 24, "lineType": 25, "AGGREGATION": 26, "EXTENSION": 27, "COMPOSITION": 28, "DEPENDENCY": 29, "LINE": 30, "DOTTED_LINE": 31, "commentToken": 32, "textToken": 33, "graphCodeTokens": 34, "textNoTagsToken": 35, "TAGSTART": 36, "TAGEND": 37, "==": 38, "--": 39, "PCT": 40, "DEFAULT": 41, "SPACE": 42, "MINUS": 43, "keywords": 44, "UNICODE_TEXT": 45, "NUM": 46, "ALPHA": 47, "$accept": 0, "$end": 1 },
63618 terminals_: { 2: "error", 5: "CLASS_DIAGRAM", 6: "NEWLINE", 8: "EOF", 13: "LABEL", 16: "CLASS", 17: "STRUCT_START", 19: "STRUCT_STOP", 20: "MEMBER", 21: "SEPARATOR", 23: "STR", 26: "AGGREGATION", 27: "EXTENSION", 28: "COMPOSITION", 29: "DEPENDENCY", 30: "LINE", 31: "DOTTED_LINE", 34: "graphCodeTokens", 36: "TAGSTART", 37: "TAGEND", 38: "==", 39: "--", 40: "PCT", 41: "DEFAULT", 42: "SPACE", 43: "MINUS", 44: "keywords", 45: "UNICODE_TEXT", 46: "NUM", 47: "ALPHA" },
63619 productions_: [0, [3, 1], [4, 4], [7, 1], [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]],
63620 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
63621 /* this == yyval */
63622
63623 var $0 = $$.length - 1;
63624 switch (yystate) {
63625 case 5:
63626 this.$ = $$[$0 - 1] + $$[$0];
63627 break;
63628 case 6:
63629 this.$ = $$[$0];
63630 break;
63631 case 7:
63632 yy.addRelation($$[$0]);
63633 break;
63634 case 8:
63635 $$[$0 - 1].title = yy.cleanupLabel($$[$0]);yy.addRelation($$[$0 - 1]);
63636 break;
63637 case 12:
63638 /*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addMembers($$[$0 - 3], $$[$0 - 1]);
63639 break;
63640 case 13:
63641 this.$ = [$$[$0]];
63642 break;
63643 case 14:
63644 $$[$0].push($$[$0 - 1]);this.$ = $$[$0];
63645 break;
63646 case 15:
63647 /*console.log('Rel found',$$[$0]);*/
63648 break;
63649 case 16:
63650 yy.addMembers($$[$0 - 1], yy.cleanupLabel($$[$0]));
63651 break;
63652 case 17:
63653 console.warn('Member', $$[$0]);
63654 break;
63655 case 18:
63656 /*console.log('sep found',$$[$0]);*/
63657 break;
63658 case 19:
63659 this.$ = { 'id1': $$[$0 - 2], 'id2': $$[$0], relation: $$[$0 - 1], relationTitle1: 'none', relationTitle2: 'none' };
63660 break;
63661 case 20:
63662 this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: 'none' };
63663 break;
63664 case 21:
63665 this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: 'none', relationTitle2: $$[$0 - 1] };
63666 break;
63667 case 22:
63668 this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };
63669 break;
63670 case 23:
63671 this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };
63672 break;
63673 case 24:
63674 this.$ = { type1: 'none', type2: $$[$0], lineType: $$[$0 - 1] };
63675 break;
63676 case 25:
63677 this.$ = { type1: $$[$0 - 1], type2: 'none', lineType: $$[$0] };
63678 break;
63679 case 26:
63680 this.$ = { type1: 'none', type2: 'none', lineType: $$[$0] };
63681 break;
63682 case 27:
63683 this.$ = yy.relationType.AGGREGATION;
63684 break;
63685 case 28:
63686 this.$ = yy.relationType.EXTENSION;
63687 break;
63688 case 29:
63689 this.$ = yy.relationType.COMPOSITION;
63690 break;
63691 case 30:
63692 this.$ = yy.relationType.DEPENDENCY;
63693 break;
63694 case 31:
63695 this.$ = yy.lineType.LINE;
63696 break;
63697 case 32:
63698 this.$ = yy.lineType.DOTTED_LINE;
63699 break;
63700 }
63701 },
63702 table: [{ 3: 1, 4: 2, 5: [1, 3] }, { 1: [3] }, { 1: [2, 1] }, { 6: [1, 4] }, { 7: 5, 9: 6, 10: 10, 11: 14, 12: 7, 14: 8, 15: 9, 16: $V0, 20: $V1, 21: $V2, 45: $V3, 46: $V4, 47: $V5 }, { 8: [1, 18] }, { 6: [1, 19], 8: [2, 3] }, o($V6, [2, 7], { 13: [1, 20] }), o($V6, [2, 9]), o($V6, [2, 10]), o($V6, [2, 15], { 22: 21, 24: 24, 25: 25, 13: [1, 23], 23: [1, 22], 26: $V7, 27: $V8, 28: $V9, 29: $Va, 30: $Vb, 31: $Vc }), { 10: 32, 11: 14, 45: $V3, 46: $V4, 47: $V5 }, o($V6, [2, 17]), o($V6, [2, 18]), o($Vd, [2, 6], { 11: 14, 10: 33, 45: $V3, 46: $V4, 47: $V5 }), o($Ve, [2, 46]), o($Ve, [2, 47]), o($Ve, [2, 48]), { 1: [2, 2] }, { 7: 34, 9: 6, 10: 10, 11: 14, 12: 7, 14: 8, 15: 9, 16: $V0, 20: $V1, 21: $V2, 45: $V3, 46: $V4, 47: $V5 }, o($V6, [2, 8]), { 10: 35, 11: 14, 23: [1, 36], 45: $V3, 46: $V4, 47: $V5 }, { 22: 37, 24: 24, 25: 25, 26: $V7, 27: $V8, 28: $V9, 29: $Va, 30: $Vb, 31: $Vc }, o($V6, [2, 16]), { 25: 38, 30: $Vb, 31: $Vc }, o($Vf, [2, 26], { 24: 39, 26: $V7, 27: $V8, 28: $V9, 29: $Va }), o($Vg, [2, 27]), o($Vg, [2, 28]), o($Vg, [2, 29]), o($Vg, [2, 30]), o($Vh, [2, 31]), o($Vh, [2, 32]), o($V6, [2, 11], { 17: [1, 40] }), o($Vd, [2, 5]), { 8: [2, 4] }, o($Vi, [2, 19]), { 10: 41, 11: 14, 45: $V3, 46: $V4, 47: $V5 }, { 10: 42, 11: 14, 23: [1, 43], 45: $V3, 46: $V4, 47: $V5 }, o($Vf, [2, 25], { 24: 44, 26: $V7, 27: $V8, 28: $V9, 29: $Va }), o($Vf, [2, 24]), { 18: 45, 20: $Vj }, o($Vi, [2, 21]), o($Vi, [2, 20]), { 10: 47, 11: 14, 45: $V3, 46: $V4, 47: $V5 }, o($Vf, [2, 23]), { 19: [1, 48] }, { 18: 49, 19: [2, 13], 20: $Vj }, o($Vi, [2, 22]), o($V6, [2, 12]), { 19: [2, 14] }],
63703 defaultActions: { 2: [2, 1], 18: [2, 2], 34: [2, 4], 49: [2, 14] },
63704 parseError: function parseError(str, hash) {
63705 if (hash.recoverable) {
63706 this.trace(str);
63707 } else {
63708 var error = new Error(str);
63709 error.hash = hash;
63710 throw error;
63711 }
63712 },
63713 parse: function parse(input) {
63714 var self = this,
63715 stack = [0],
63716 tstack = [],
63717 vstack = [null],
63718 lstack = [],
63719 table = this.table,
63720 yytext = '',
63721 yylineno = 0,
63722 yyleng = 0,
63723 recovering = 0,
63724 TERROR = 2,
63725 EOF = 1;
63726 var args = lstack.slice.call(arguments, 1);
63727 var lexer = Object.create(this.lexer);
63728 var sharedState = { yy: {} };
63729 for (var k in this.yy) {
63730 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
63731 sharedState.yy[k] = this.yy[k];
63732 }
63733 }
63734 lexer.setInput(input, sharedState.yy);
63735 sharedState.yy.lexer = lexer;
63736 sharedState.yy.parser = this;
63737 if (typeof lexer.yylloc == 'undefined') {
63738 lexer.yylloc = {};
63739 }
63740 var yyloc = lexer.yylloc;
63741 lstack.push(yyloc);
63742 var ranges = lexer.options && lexer.options.ranges;
63743 if (typeof sharedState.yy.parseError === 'function') {
63744 this.parseError = sharedState.yy.parseError;
63745 } else {
63746 this.parseError = Object.getPrototypeOf(this).parseError;
63747 }
63748 function popStack(n) {
63749 stack.length = stack.length - 2 * n;
63750 vstack.length = vstack.length - n;
63751 lstack.length = lstack.length - n;
63752 }
63753 function lex() {
63754 var token;
63755 token = tstack.pop() || lexer.lex() || EOF;
63756 if (typeof token !== 'number') {
63757 if (token instanceof Array) {
63758 tstack = token;
63759 token = tstack.pop();
63760 }
63761 token = self.symbols_[token] || token;
63762 }
63763 return token;
63764 }
63765 var symbol,
63766 preErrorSymbol,
63767 state,
63768 action,
63769 a,
63770 r,
63771 yyval = {},
63772 p,
63773 len,
63774 newState,
63775 expected;
63776 while (true) {
63777 state = stack[stack.length - 1];
63778 if (this.defaultActions[state]) {
63779 action = this.defaultActions[state];
63780 } else {
63781 if (symbol === null || typeof symbol == 'undefined') {
63782 symbol = lex();
63783 }
63784 action = table[state] && table[state][symbol];
63785 }
63786 if (typeof action === 'undefined' || !action.length || !action[0]) {
63787 var errStr = '';
63788 expected = [];
63789 for (p in table[state]) {
63790 if (this.terminals_[p] && p > TERROR) {
63791 expected.push('\'' + this.terminals_[p] + '\'');
63792 }
63793 }
63794 if (lexer.showPosition) {
63795 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
63796 } else {
63797 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
63798 }
63799 this.parseError(errStr, {
63800 text: lexer.match,
63801 token: this.terminals_[symbol] || symbol,
63802 line: lexer.yylineno,
63803 loc: yyloc,
63804 expected: expected
63805 });
63806 }
63807 if (action[0] instanceof Array && action.length > 1) {
63808 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
63809 }
63810 switch (action[0]) {
63811 case 1:
63812 stack.push(symbol);
63813 vstack.push(lexer.yytext);
63814 lstack.push(lexer.yylloc);
63815 stack.push(action[1]);
63816 symbol = null;
63817 if (!preErrorSymbol) {
63818 yyleng = lexer.yyleng;
63819 yytext = lexer.yytext;
63820 yylineno = lexer.yylineno;
63821 yyloc = lexer.yylloc;
63822 if (recovering > 0) {
63823 recovering--;
63824 }
63825 } else {
63826 symbol = preErrorSymbol;
63827 preErrorSymbol = null;
63828 }
63829 break;
63830 case 2:
63831 len = this.productions_[action[1]][1];
63832 yyval.$ = vstack[vstack.length - len];
63833 yyval._$ = {
63834 first_line: lstack[lstack.length - (len || 1)].first_line,
63835 last_line: lstack[lstack.length - 1].last_line,
63836 first_column: lstack[lstack.length - (len || 1)].first_column,
63837 last_column: lstack[lstack.length - 1].last_column
63838 };
63839 if (ranges) {
63840 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
63841 }
63842 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
63843 if (typeof r !== 'undefined') {
63844 return r;
63845 }
63846 if (len) {
63847 stack = stack.slice(0, -1 * len * 2);
63848 vstack = vstack.slice(0, -1 * len);
63849 lstack = lstack.slice(0, -1 * len);
63850 }
63851 stack.push(this.productions_[action[1]][0]);
63852 vstack.push(yyval.$);
63853 lstack.push(yyval._$);
63854 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
63855 stack.push(newState);
63856 break;
63857 case 3:
63858 return true;
63859 }
63860 }
63861 return true;
63862 } };
63863
63864 /* generated by jison-lex 0.3.4 */
63865 var lexer = function () {
63866 var lexer = {
63867
63868 EOF: 1,
63869
63870 parseError: function parseError(str, hash) {
63871 if (this.yy.parser) {
63872 this.yy.parser.parseError(str, hash);
63873 } else {
63874 throw new Error(str);
63875 }
63876 },
63877
63878 // resets the lexer, sets new input
63879 setInput: function setInput(input, yy) {
63880 this.yy = yy || this.yy || {};
63881 this._input = input;
63882 this._more = this._backtrack = this.done = false;
63883 this.yylineno = this.yyleng = 0;
63884 this.yytext = this.matched = this.match = '';
63885 this.conditionStack = ['INITIAL'];
63886 this.yylloc = {
63887 first_line: 1,
63888 first_column: 0,
63889 last_line: 1,
63890 last_column: 0
63891 };
63892 if (this.options.ranges) {
63893 this.yylloc.range = [0, 0];
63894 }
63895 this.offset = 0;
63896 return this;
63897 },
63898
63899 // consumes and returns one char from the input
63900 input: function input() {
63901 var ch = this._input[0];
63902 this.yytext += ch;
63903 this.yyleng++;
63904 this.offset++;
63905 this.match += ch;
63906 this.matched += ch;
63907 var lines = ch.match(/(?:\r\n?|\n).*/g);
63908 if (lines) {
63909 this.yylineno++;
63910 this.yylloc.last_line++;
63911 } else {
63912 this.yylloc.last_column++;
63913 }
63914 if (this.options.ranges) {
63915 this.yylloc.range[1]++;
63916 }
63917
63918 this._input = this._input.slice(1);
63919 return ch;
63920 },
63921
63922 // unshifts one char (or a string) into the input
63923 unput: function unput(ch) {
63924 var len = ch.length;
63925 var lines = ch.split(/(?:\r\n?|\n)/g);
63926
63927 this._input = ch + this._input;
63928 this.yytext = this.yytext.substr(0, this.yytext.length - len);
63929 //this.yyleng -= len;
63930 this.offset -= len;
63931 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
63932 this.match = this.match.substr(0, this.match.length - 1);
63933 this.matched = this.matched.substr(0, this.matched.length - 1);
63934
63935 if (lines.length - 1) {
63936 this.yylineno -= lines.length - 1;
63937 }
63938 var r = this.yylloc.range;
63939
63940 this.yylloc = {
63941 first_line: this.yylloc.first_line,
63942 last_line: this.yylineno + 1,
63943 first_column: this.yylloc.first_column,
63944 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
63945 };
63946
63947 if (this.options.ranges) {
63948 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
63949 }
63950 this.yyleng = this.yytext.length;
63951 return this;
63952 },
63953
63954 // When called from action, caches matched text and appends it on next action
63955 more: function more() {
63956 this._more = true;
63957 return this;
63958 },
63959
63960 // 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.
63961 reject: function reject() {
63962 if (this.options.backtrack_lexer) {
63963 this._backtrack = true;
63964 } else {
63965 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(), {
63966 text: "",
63967 token: null,
63968 line: this.yylineno
63969 });
63970 }
63971 return this;
63972 },
63973
63974 // retain first n characters of the match
63975 less: function less(n) {
63976 this.unput(this.match.slice(n));
63977 },
63978
63979 // displays already matched input, i.e. for error messages
63980 pastInput: function pastInput() {
63981 var past = this.matched.substr(0, this.matched.length - this.match.length);
63982 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
63983 },
63984
63985 // displays upcoming input, i.e. for error messages
63986 upcomingInput: function upcomingInput() {
63987 var next = this.match;
63988 if (next.length < 20) {
63989 next += this._input.substr(0, 20 - next.length);
63990 }
63991 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
63992 },
63993
63994 // displays the character position where the lexing error occurred, i.e. for error messages
63995 showPosition: function showPosition() {
63996 var pre = this.pastInput();
63997 var c = new Array(pre.length + 1).join("-");
63998 return pre + this.upcomingInput() + "\n" + c + "^";
63999 },
64000
64001 // test the lexed token: return FALSE when not a match, otherwise return token
64002 test_match: function test_match(match, indexed_rule) {
64003 var token, lines, backup;
64004
64005 if (this.options.backtrack_lexer) {
64006 // save context
64007 backup = {
64008 yylineno: this.yylineno,
64009 yylloc: {
64010 first_line: this.yylloc.first_line,
64011 last_line: this.last_line,
64012 first_column: this.yylloc.first_column,
64013 last_column: this.yylloc.last_column
64014 },
64015 yytext: this.yytext,
64016 match: this.match,
64017 matches: this.matches,
64018 matched: this.matched,
64019 yyleng: this.yyleng,
64020 offset: this.offset,
64021 _more: this._more,
64022 _input: this._input,
64023 yy: this.yy,
64024 conditionStack: this.conditionStack.slice(0),
64025 done: this.done
64026 };
64027 if (this.options.ranges) {
64028 backup.yylloc.range = this.yylloc.range.slice(0);
64029 }
64030 }
64031
64032 lines = match[0].match(/(?:\r\n?|\n).*/g);
64033 if (lines) {
64034 this.yylineno += lines.length;
64035 }
64036 this.yylloc = {
64037 first_line: this.yylloc.last_line,
64038 last_line: this.yylineno + 1,
64039 first_column: this.yylloc.last_column,
64040 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
64041 };
64042 this.yytext += match[0];
64043 this.match += match[0];
64044 this.matches = match;
64045 this.yyleng = this.yytext.length;
64046 if (this.options.ranges) {
64047 this.yylloc.range = [this.offset, this.offset += this.yyleng];
64048 }
64049 this._more = false;
64050 this._backtrack = false;
64051 this._input = this._input.slice(match[0].length);
64052 this.matched += match[0];
64053 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
64054 if (this.done && this._input) {
64055 this.done = false;
64056 }
64057 if (token) {
64058 return token;
64059 } else if (this._backtrack) {
64060 // recover context
64061 for (var k in backup) {
64062 this[k] = backup[k];
64063 }
64064 return false; // rule action called reject() implying the next rule should be tested instead.
64065 }
64066 return false;
64067 },
64068
64069 // return next match in input
64070 next: function next() {
64071 if (this.done) {
64072 return this.EOF;
64073 }
64074 if (!this._input) {
64075 this.done = true;
64076 }
64077
64078 var token, match, tempMatch, index;
64079 if (!this._more) {
64080 this.yytext = '';
64081 this.match = '';
64082 }
64083 var rules = this._currentRules();
64084 for (var i = 0; i < rules.length; i++) {
64085 tempMatch = this._input.match(this.rules[rules[i]]);
64086 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
64087 match = tempMatch;
64088 index = i;
64089 if (this.options.backtrack_lexer) {
64090 token = this.test_match(tempMatch, rules[i]);
64091 if (token !== false) {
64092 return token;
64093 } else if (this._backtrack) {
64094 match = false;
64095 continue; // rule action called reject() implying a rule MISmatch.
64096 } else {
64097 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
64098 return false;
64099 }
64100 } else if (!this.options.flex) {
64101 break;
64102 }
64103 }
64104 }
64105 if (match) {
64106 token = this.test_match(match, rules[index]);
64107 if (token !== false) {
64108 return token;
64109 }
64110 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
64111 return false;
64112 }
64113 if (this._input === "") {
64114 return this.EOF;
64115 } else {
64116 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
64117 text: "",
64118 token: null,
64119 line: this.yylineno
64120 });
64121 }
64122 },
64123
64124 // return next match that has a token
64125 lex: function lex() {
64126 var r = this.next();
64127 if (r) {
64128 return r;
64129 } else {
64130 return this.lex();
64131 }
64132 },
64133
64134 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
64135 begin: function begin(condition) {
64136 this.conditionStack.push(condition);
64137 },
64138
64139 // pop the previously active lexer condition state off the condition stack
64140 popState: function popState() {
64141 var n = this.conditionStack.length - 1;
64142 if (n > 0) {
64143 return this.conditionStack.pop();
64144 } else {
64145 return this.conditionStack[0];
64146 }
64147 },
64148
64149 // produce the lexer rule set which is active for the currently active lexer condition state
64150 _currentRules: function _currentRules() {
64151 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
64152 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
64153 } else {
64154 return this.conditions["INITIAL"].rules;
64155 }
64156 },
64157
64158 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
64159 topState: function topState(n) {
64160 n = this.conditionStack.length - 1 - Math.abs(n || 0);
64161 if (n >= 0) {
64162 return this.conditionStack[n];
64163 } else {
64164 return "INITIAL";
64165 }
64166 },
64167
64168 // alias for begin(condition)
64169 pushState: function pushState(condition) {
64170 this.begin(condition);
64171 },
64172
64173 // return the number of states currently on the stack
64174 stateStackSize: function stateStackSize() {
64175 return this.conditionStack.length;
64176 },
64177 options: {},
64178 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
64179 var YYSTATE = YY_START;
64180 switch ($avoiding_name_collisions) {
64181 case 0:
64182 /* do nothing */
64183 break;
64184 case 1:
64185 return 6;
64186 break;
64187 case 2:
64188 /* skip whitespace */
64189 break;
64190 case 3:
64191 return 5;
64192 break;
64193 case 4:
64194 this.begin("struct"); /*console.log('Starting struct');*/return 17;
64195 break;
64196 case 5:
64197 /*console.log('Ending struct');*/this.popState();return 19;
64198 break;
64199 case 6:
64200 /* nothing */
64201 break;
64202 case 7:
64203 /*console.log('lex-member: ' + yy_.yytext);*/return "MEMBER";
64204 break;
64205 case 8:
64206 return 16;
64207 break;
64208 case 9:
64209 this.begin("string");
64210 break;
64211 case 10:
64212 this.popState();
64213 break;
64214 case 11:
64215 return "STR";
64216 break;
64217 case 12:
64218 return 27;
64219 break;
64220 case 13:
64221 return 27;
64222 break;
64223 case 14:
64224 return 29;
64225 break;
64226 case 15:
64227 return 29;
64228 break;
64229 case 16:
64230 return 28;
64231 break;
64232 case 17:
64233 return 26;
64234 break;
64235 case 18:
64236 return 30;
64237 break;
64238 case 19:
64239 return 31;
64240 break;
64241 case 20:
64242 return 13;
64243 break;
64244 case 21:
64245 return 43;
64246 break;
64247 case 22:
64248 return 'DOT';
64249 break;
64250 case 23:
64251 return 'PLUS';
64252 break;
64253 case 24:
64254 return 40;
64255 break;
64256 case 25:
64257 return 'EQUALS';
64258 break;
64259 case 26:
64260 return 'EQUALS';
64261 break;
64262 case 27:
64263 return 47;
64264 break;
64265 case 28:
64266 return 'PUNCTUATION';
64267 break;
64268 case 29:
64269 return 46;
64270 break;
64271 case 30:
64272 return 45;
64273 break;
64274 case 31:
64275 return 42;
64276 break;
64277 case 32:
64278 return 8;
64279 break;
64280 }
64281 },
64282 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)/, /^(?:$)/],
64283 conditions: { "string": { "rules": [10, 11], "inclusive": false }, "struct": { "rules": [5, 6, 7], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "inclusive": true } }
64284 };
64285 return lexer;
64286 }();
64287 parser.lexer = lexer;
64288 function Parser() {
64289 this.yy = {};
64290 }
64291 Parser.prototype = parser;parser.Parser = Parser;
64292 return new Parser();
64293}();
64294
64295if (true) {
64296 exports.parser = parser;
64297 exports.Parser = parser.Parser;
64298 exports.parse = function () {
64299 return parser.parse.apply(parser, arguments);
64300 };
64301 exports.main = function commonjsMain(args) {
64302 if (!args[1]) {
64303 console.log('Usage: ' + args[0] + ' FILE');
64304 process.exit(1);
64305 }
64306 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");
64307 return exports.parser.parse(source);
64308 };
64309 if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) {
64310 exports.main(process.argv.slice(1));
64311 }
64312}
64313/* 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)))
64314
64315/***/ }),
64316
64317/***/ "./src/diagrams/flowchart/flowDb.js":
64318/*!******************************************!*\
64319 !*** ./src/diagrams/flowchart/flowDb.js ***!
64320 \******************************************/
64321/*! no static exports found */
64322/***/ (function(module, exports, __webpack_require__) {
64323
64324"use strict";
64325
64326
64327Object.defineProperty(exports, "__esModule", {
64328 value: true
64329});
64330exports.getSubGraphs = exports.indexNodes = exports.getDepthFirstPos = exports.addSubGraph = exports.defaultStyle = exports.clear = exports.getClasses = exports.getEdges = exports.getVertices = exports.getDirection = exports.bindFunctions = exports.setClickEvent = exports.getTooltip = exports.setClass = exports.setDirection = exports.addClass = exports.updateLink = exports.updateLinkInterpolate = exports.addLink = exports.addVertex = undefined;
64331
64332var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
64333
64334var _d = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
64335
64336var d3 = _interopRequireWildcard(_d);
64337
64338var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
64339
64340var _utils = __webpack_require__(/*! ../../utils */ "./src/utils.js");
64341
64342var _utils2 = _interopRequireDefault(_utils);
64343
64344function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
64345
64346function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
64347
64348var vertices = {};
64349var edges = [];
64350var classes = [];
64351var subGraphs = [];
64352var tooltips = {};
64353var subCount = 0;
64354var direction = void 0;
64355// Functions to be run after graph rendering
64356var funs = [];
64357/**
64358 * Function called by parser when a node definition has been found
64359 * @param id
64360 * @param text
64361 * @param type
64362 * @param style
64363 */
64364var addVertex = exports.addVertex = function addVertex(id, text, type, style) {
64365 var txt = void 0;
64366
64367 if (typeof id === 'undefined') {
64368 return;
64369 }
64370 if (id.trim().length === 0) {
64371 return;
64372 }
64373
64374 if (typeof vertices[id] === 'undefined') {
64375 vertices[id] = { id: id, styles: [], classes: [] };
64376 }
64377 if (typeof text !== 'undefined') {
64378 txt = text.trim();
64379
64380 // strip quotes if string starts and exnds with a quote
64381 if (txt[0] === '"' && txt[txt.length - 1] === '"') {
64382 txt = txt.substring(1, txt.length - 1);
64383 }
64384
64385 vertices[id].text = txt;
64386 }
64387 if (typeof type !== 'undefined') {
64388 vertices[id].type = type;
64389 }
64390 if (typeof type !== 'undefined') {
64391 vertices[id].type = type;
64392 }
64393 if (typeof style !== 'undefined') {
64394 if (style !== null) {
64395 style.forEach(function (s) {
64396 vertices[id].styles.push(s);
64397 });
64398 }
64399 }
64400};
64401
64402/**
64403 * Function called by parser when a link/edge definition has been found
64404 * @param start
64405 * @param end
64406 * @param type
64407 * @param linktext
64408 */
64409var addLink = exports.addLink = function addLink(start, end, type, linktext) {
64410 _logger.logger.info('Got edge...', start, end);
64411 var edge = { start: start, end: end, type: undefined, text: '' };
64412 linktext = type.text;
64413
64414 if (typeof linktext !== 'undefined') {
64415 edge.text = linktext.trim();
64416
64417 // strip quotes if string starts and exnds with a quote
64418 if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
64419 edge.text = edge.text.substring(1, edge.text.length - 1);
64420 }
64421 }
64422
64423 if (typeof type !== 'undefined') {
64424 edge.type = type.type;
64425 edge.stroke = type.stroke;
64426 }
64427 edges.push(edge);
64428};
64429
64430/**
64431 * Updates a link's line interpolation algorithm
64432 * @param pos
64433 * @param interpolate
64434 */
64435var updateLinkInterpolate = exports.updateLinkInterpolate = function updateLinkInterpolate(pos, interp) {
64436 if (pos === 'default') {
64437 edges.defaultInterpolate = interp;
64438 } else {
64439 edges[pos].interpolate = interp;
64440 }
64441};
64442
64443/**
64444 * Updates a link with a style
64445 * @param pos
64446 * @param style
64447 */
64448var updateLink = exports.updateLink = function updateLink(pos, style) {
64449 if (pos === 'default') {
64450 edges.defaultStyle = style;
64451 } else {
64452 if (_utils2.default.isSubstringInArray('fill', style) === -1) {
64453 style.push('fill:none');
64454 }
64455 edges[pos].style = style;
64456 }
64457};
64458
64459var addClass = exports.addClass = function addClass(id, style) {
64460 if (typeof classes[id] === 'undefined') {
64461 classes[id] = { id: id, styles: [] };
64462 }
64463
64464 if (typeof style !== 'undefined') {
64465 if (style !== null) {
64466 style.forEach(function (s) {
64467 classes[id].styles.push(s);
64468 });
64469 }
64470 }
64471};
64472
64473/**
64474 * Called by parser when a graph definition is found, stores the direction of the chart.
64475 * @param dir
64476 */
64477var setDirection = exports.setDirection = function setDirection(dir) {
64478 direction = dir;
64479};
64480
64481/**
64482 * Called by parser when a graph definition is found, stores the direction of the chart.
64483 * @param dir
64484 */
64485var setClass = exports.setClass = function setClass(id, className) {
64486 if (id.indexOf(',') > 0) {
64487 id.split(',').forEach(function (id2) {
64488 if (typeof vertices[id2] !== 'undefined') {
64489 vertices[id2].classes.push(className);
64490 }
64491 });
64492 } else {
64493 if (typeof vertices[id] !== 'undefined') {
64494 vertices[id].classes.push(className);
64495 }
64496 }
64497};
64498
64499var setTooltip = function setTooltip(id, tooltip) {
64500 if (typeof tooltip !== 'undefined') {
64501 tooltips[id] = tooltip;
64502 }
64503};
64504
64505var setClickFun = function setClickFun(id, functionName) {
64506 if (typeof functionName === 'undefined') {
64507 return;
64508 }
64509 if (typeof vertices[id] !== 'undefined') {
64510 funs.push(function (element) {
64511 var elem = d3.select(element).select('[id="' + id + '"]');
64512 if (elem !== null) {
64513 elem.on('click', function () {
64514 window[functionName](id);
64515 });
64516 }
64517 });
64518 }
64519};
64520
64521var setLink = function setLink(id, linkStr) {
64522 if (typeof linkStr === 'undefined') {
64523 return;
64524 }
64525 if (typeof vertices[id] !== 'undefined') {
64526 funs.push(function (element) {
64527 var elem = d3.select(element).select('[id="' + id + '"]');
64528 if (elem !== null) {
64529 elem.on('click', function () {
64530 window.open(linkStr, 'newTab');
64531 });
64532 }
64533 });
64534 }
64535};
64536var getTooltip = exports.getTooltip = function getTooltip(id) {
64537 return tooltips[id];
64538};
64539
64540/**
64541 * Called by parser when a graph definition is found, stores the direction of the chart.
64542 * @param dir
64543 */
64544var setClickEvent = exports.setClickEvent = function setClickEvent(id, functionName, link, tooltip) {
64545 if (id.indexOf(',') > 0) {
64546 id.split(',').forEach(function (id2) {
64547 setTooltip(id2, tooltip);
64548 setClickFun(id2, functionName);
64549 setLink(id2, link);
64550 setClass(id, 'clickable');
64551 });
64552 } else {
64553 setTooltip(id, tooltip);
64554 setClickFun(id, functionName);
64555 setLink(id, link);
64556 setClass(id, 'clickable');
64557 }
64558};
64559
64560var bindFunctions = exports.bindFunctions = function bindFunctions(element) {
64561 funs.forEach(function (fun) {
64562 fun(element);
64563 });
64564};
64565var getDirection = exports.getDirection = function getDirection() {
64566 return direction;
64567};
64568/**
64569 * Retrieval function for fetching the found nodes after parsing has completed.
64570 * @returns {{}|*|vertices}
64571 */
64572var getVertices = exports.getVertices = function getVertices() {
64573 return vertices;
64574};
64575
64576/**
64577 * Retrieval function for fetching the found links after parsing has completed.
64578 * @returns {{}|*|edges}
64579 */
64580var getEdges = exports.getEdges = function getEdges() {
64581 return edges;
64582};
64583
64584/**
64585 * Retrieval function for fetching the found class definitions after parsing has completed.
64586 * @returns {{}|*|classes}
64587 */
64588var getClasses = exports.getClasses = function getClasses() {
64589 return classes;
64590};
64591
64592var setupToolTips = function setupToolTips(element) {
64593 var tooltipElem = d3.select('.mermaidTooltip');
64594 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
64595 tooltipElem = d3.select('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
64596 }
64597
64598 var svg = d3.select(element).select('svg');
64599
64600 var nodes = svg.selectAll('g.node');
64601 nodes.on('mouseover', function () {
64602 var el = d3.select(this);
64603 var title = el.attr('title');
64604 // Dont try to draw a tooltip if no data is provided
64605 if (title === null) {
64606 return;
64607 }
64608 var rect = this.getBoundingClientRect();
64609
64610 tooltipElem.transition().duration(200).style('opacity', '.9');
64611 tooltipElem.html(el.attr('title')).style('left', rect.left + (rect.right - rect.left) / 2 + 'px').style('top', rect.top - 14 + document.body.scrollTop + 'px');
64612 el.classed('hover', true);
64613 }).on('mouseout', function () {
64614 tooltipElem.transition().duration(500).style('opacity', 0);
64615 var el = d3.select(this);
64616 el.classed('hover', false);
64617 });
64618};
64619funs.push(setupToolTips);
64620
64621/**
64622 * Clears the internal graph db so that a new graph can be parsed.
64623 */
64624var clear = exports.clear = function clear() {
64625 vertices = {};
64626 classes = {};
64627 edges = [];
64628 funs = [];
64629 funs.push(setupToolTips);
64630 subGraphs = [];
64631 subCount = 0;
64632 tooltips = [];
64633};
64634/**
64635 *
64636 * @returns {string}
64637 */
64638var defaultStyle = exports.defaultStyle = function defaultStyle() {
64639 return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;';
64640};
64641
64642/**
64643 * Clears the internal graph db so that a new graph can be parsed.
64644 */
64645var addSubGraph = exports.addSubGraph = function addSubGraph(list, title) {
64646 function uniq(a) {
64647 var prims = { 'boolean': {}, 'number': {}, 'string': {} };
64648 var objs = [];
64649
64650 return a.filter(function (item) {
64651 var type = typeof item === 'undefined' ? 'undefined' : _typeof(item);
64652 if (item.trim() === '') {
64653 return false;
64654 }
64655 if (type in prims) {
64656 return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;
64657 } else {
64658 return objs.indexOf(item) >= 0 ? false : objs.push(item);
64659 }
64660 });
64661 }
64662
64663 var nodeList = [];
64664
64665 nodeList = uniq(nodeList.concat.apply(nodeList, list));
64666
64667 var subGraph = { id: 'subGraph' + subCount, nodes: nodeList, title: title.trim() };
64668 subGraphs.push(subGraph);
64669 subCount = subCount + 1;
64670 return subGraph.id;
64671};
64672
64673var getPosForId = function getPosForId(id) {
64674 for (var i = 0; i < subGraphs.length; i++) {
64675 if (subGraphs[i].id === id) {
64676 return i;
64677 }
64678 }
64679 return -1;
64680};
64681var secCount = -1;
64682var posCrossRef = [];
64683var indexNodes2 = function indexNodes2(id, pos) {
64684 var nodes = subGraphs[pos].nodes;
64685 secCount = secCount + 1;
64686 if (secCount > 2000) {
64687 return;
64688 }
64689 posCrossRef[secCount] = pos;
64690 // Check if match
64691 if (subGraphs[pos].id === id) {
64692 return {
64693 result: true,
64694 count: 0
64695 };
64696 }
64697
64698 var count = 0;
64699 var posCount = 1;
64700 while (count < nodes.length) {
64701 var childPos = getPosForId(nodes[count]);
64702 // Ignore regular nodes (pos will be -1)
64703 if (childPos >= 0) {
64704 var res = indexNodes2(id, childPos);
64705 if (res.result) {
64706 return {
64707 result: true,
64708 count: posCount + res.count
64709 };
64710 } else {
64711 posCount = posCount + res.count;
64712 }
64713 }
64714 count = count + 1;
64715 }
64716
64717 return {
64718 result: false,
64719 count: posCount
64720 };
64721};
64722
64723var getDepthFirstPos = exports.getDepthFirstPos = function getDepthFirstPos(pos) {
64724 return posCrossRef[pos];
64725};
64726var indexNodes = exports.indexNodes = function indexNodes() {
64727 secCount = -1;
64728 if (subGraphs.length > 0) {
64729 indexNodes2('none', subGraphs.length - 1, 0);
64730 }
64731};
64732
64733var getSubGraphs = exports.getSubGraphs = function getSubGraphs() {
64734 return subGraphs;
64735};
64736
64737exports.default = {
64738 addVertex: addVertex,
64739 addLink: addLink,
64740 updateLinkInterpolate: updateLinkInterpolate,
64741 updateLink: updateLink,
64742 addClass: addClass,
64743 setDirection: setDirection,
64744 setClass: setClass,
64745 getTooltip: getTooltip,
64746 setClickEvent: setClickEvent,
64747 bindFunctions: bindFunctions,
64748 getDirection: getDirection,
64749 getVertices: getVertices,
64750 getEdges: getEdges,
64751 getClasses: getClasses,
64752 clear: clear,
64753 defaultStyle: defaultStyle,
64754 addSubGraph: addSubGraph,
64755 getDepthFirstPos: getDepthFirstPos,
64756 indexNodes: indexNodes,
64757 getSubGraphs: getSubGraphs
64758};
64759
64760/***/ }),
64761
64762/***/ "./src/diagrams/flowchart/flowRenderer.js":
64763/*!************************************************!*\
64764 !*** ./src/diagrams/flowchart/flowRenderer.js ***!
64765 \************************************************/
64766/*! no static exports found */
64767/***/ (function(module, exports, __webpack_require__) {
64768
64769"use strict";
64770
64771
64772Object.defineProperty(exports, "__esModule", {
64773 value: true
64774});
64775exports.draw = exports.getClasses = exports.addEdges = exports.addVertices = exports.setConf = undefined;
64776
64777var _graphlibrary = __webpack_require__(/*! graphlibrary */ "./node_modules/graphlibrary/index.js");
64778
64779var _graphlibrary2 = _interopRequireDefault(_graphlibrary);
64780
64781var _d = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
64782
64783var d3 = _interopRequireWildcard(_d);
64784
64785var _flowDb = __webpack_require__(/*! ./flowDb */ "./src/diagrams/flowchart/flowDb.js");
64786
64787var _flowDb2 = _interopRequireDefault(_flowDb);
64788
64789var _flow = __webpack_require__(/*! ./parser/flow */ "./src/diagrams/flowchart/parser/flow.js");
64790
64791var _flow2 = _interopRequireDefault(_flow);
64792
64793var _dagreD3Renderer = __webpack_require__(/*! dagre-d3-renderer */ "./node_modules/dagre-d3-renderer/dist/dagre-d3.core.js");
64794
64795var _dagreD3Renderer2 = _interopRequireDefault(_dagreD3Renderer);
64796
64797var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
64798
64799var _utils = __webpack_require__(/*! ../../utils */ "./src/utils.js");
64800
64801function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
64802
64803function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
64804
64805var conf = {};
64806var setConf = exports.setConf = function setConf(cnf) {
64807 var keys = Object.keys(cnf);
64808 for (var i = 0; i < keys.length; i++) {
64809 conf[keys[i]] = cnf[keys[i]];
64810 }
64811};
64812
64813/**
64814 * Function that adds the vertices found in the graph definition to the graph to be rendered.
64815 * @param vert Object containing the vertices.
64816 * @param g The graph that is to be drawn.
64817 */
64818var addVertices = exports.addVertices = function addVertices(vert, g) {
64819 var keys = Object.keys(vert);
64820
64821 var styleFromStyleArr = function styleFromStyleArr(styleStr, arr) {
64822 // Create a compound style definition from the style definitions found for the node in the graph definition
64823 for (var i = 0; i < arr.length; i++) {
64824 if (typeof arr[i] !== 'undefined') {
64825 styleStr = styleStr + arr[i] + ';';
64826 }
64827 }
64828
64829 return styleStr;
64830 };
64831
64832 // Iterate through each item in the vertice object (containing all the vertices found) in the graph definition
64833 keys.forEach(function (id) {
64834 var vertice = vert[id];
64835 var verticeText = void 0;
64836
64837 /**
64838 * Variable for storing the classes for the vertice
64839 * @type {string}
64840 */
64841 var classStr = '';
64842 if (vertice.classes.length > 0) {
64843 classStr = vertice.classes.join(' ');
64844 }
64845
64846 /**
64847 * Variable for storing the extracted style for the vertice
64848 * @type {string}
64849 */
64850 var style = '';
64851 // Create a compound style definition from the style definitions found for the node in the graph definition
64852 style = styleFromStyleArr(style, vertice.styles);
64853
64854 // Use vertice id as text in the box if no text is provided by the graph definition
64855 if (typeof vertice.text === 'undefined') {
64856 verticeText = vertice.id;
64857 } else {
64858 verticeText = vertice.text;
64859 }
64860
64861 var labelTypeStr = '';
64862 if (conf.htmlLabels) {
64863 labelTypeStr = 'html';
64864 verticeText = verticeText.replace(/fa:fa[\w-]+/g, function (s) {
64865 return '<i class="fa ' + s.substring(3) + '"></i>';
64866 });
64867 } else {
64868 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
64869
64870 var rows = verticeText.split(/<br>/);
64871
64872 for (var j = 0; j < rows.length; j++) {
64873 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
64874 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
64875 tspan.setAttribute('dy', '1em');
64876 tspan.setAttribute('x', '1');
64877 tspan.textContent = rows[j];
64878 svgLabel.appendChild(tspan);
64879 }
64880
64881 labelTypeStr = 'svg';
64882 verticeText = svgLabel;
64883 }
64884
64885 var radious = 0;
64886 var _shape = '';
64887 // Set the shape based parameters
64888 switch (vertice.type) {
64889 case 'round':
64890 radious = 5;
64891 _shape = 'rect';
64892 break;
64893 case 'square':
64894 _shape = 'rect';
64895 break;
64896 case 'diamond':
64897 _shape = 'question';
64898 break;
64899 case 'odd':
64900 _shape = 'rect_left_inv_arrow';
64901 break;
64902 case 'odd_right':
64903 _shape = 'rect_left_inv_arrow';
64904 break;
64905 case 'circle':
64906 _shape = 'circle';
64907 break;
64908 case 'ellipse':
64909 _shape = 'ellipse';
64910 break;
64911 case 'group':
64912 _shape = 'rect';
64913 // Need to create a text node if using svg labels, see #367
64914 verticeText = conf.htmlLabels ? '' : document.createElementNS('http://www.w3.org/2000/svg', 'text');
64915 break;
64916 default:
64917 _shape = 'rect';
64918 }
64919 // Add the node
64920 g.setNode(vertice.id, { labelType: labelTypeStr, shape: _shape, label: verticeText, rx: radious, ry: radious, 'class': classStr, style: style, id: vertice.id });
64921 });
64922};
64923
64924/**
64925 * Add edges to graph based on parsed graph defninition
64926 * @param {Object} edges The edges to add to the graph
64927 * @param {Object} g The graph object
64928 */
64929var addEdges = exports.addEdges = function addEdges(edges, g) {
64930 var cnt = 0;
64931
64932 var defaultStyle = void 0;
64933 if (typeof edges.defaultStyle !== 'undefined') {
64934 defaultStyle = edges.defaultStyle.toString().replace(/,/g, ';');
64935 }
64936
64937 edges.forEach(function (edge) {
64938 cnt++;
64939 var edgeData = {};
64940
64941 // Set link type for rendering
64942 if (edge.type === 'arrow_open') {
64943 edgeData.arrowhead = 'none';
64944 } else {
64945 edgeData.arrowhead = 'normal';
64946 }
64947
64948 var style = '';
64949 if (typeof edge.style !== 'undefined') {
64950 edge.style.forEach(function (s) {
64951 style = style + s + ';';
64952 });
64953 } else {
64954 switch (edge.stroke) {
64955 case 'normal':
64956 style = 'fill:none';
64957 if (typeof defaultStyle !== 'undefined') {
64958 style = defaultStyle;
64959 }
64960 break;
64961 case 'dotted':
64962 style = 'stroke: #333; fill:none;stroke-width:2px;stroke-dasharray:3;';
64963 break;
64964 case 'thick':
64965 style = 'stroke: #333; stroke-width: 3.5px;fill:none';
64966 break;
64967 }
64968 }
64969 edgeData.style = style;
64970
64971 if (typeof edge.interpolate !== 'undefined') {
64972 edgeData.curve = (0, _utils.interpolateToCurve)(edge.interpolate, d3.curveLinear);
64973 } else if (typeof edges.defaultInterpolate !== 'undefined') {
64974 edgeData.curve = (0, _utils.interpolateToCurve)(edges.defaultInterpolate, d3.curveLinear);
64975 } else {
64976 edgeData.curve = (0, _utils.interpolateToCurve)(conf.curve, d3.curveLinear);
64977 }
64978
64979 if (typeof edge.text === 'undefined') {
64980 if (typeof edge.style !== 'undefined') {
64981 edgeData.arrowheadStyle = 'fill: #333';
64982 }
64983 } else {
64984 edgeData.arrowheadStyle = 'fill: #333';
64985 if (typeof edge.style === 'undefined') {
64986 edgeData.labelpos = 'c';
64987 if (conf.htmlLabels) {
64988 edgeData.labelType = 'html';
64989 edgeData.label = '<span class="edgeLabel">' + edge.text + '</span>';
64990 } else {
64991 edgeData.labelType = 'text';
64992 edgeData.style = 'stroke: #333; stroke-width: 1.5px;fill:none';
64993 edgeData.label = edge.text.replace(/<br>/g, '\n');
64994 }
64995 } else {
64996 edgeData.label = edge.text.replace(/<br>/g, '\n');
64997 }
64998 }
64999 // Add the edge to the graph
65000 g.setEdge(edge.start, edge.end, edgeData, cnt);
65001 });
65002};
65003
65004/**
65005 * Returns the all the styles from classDef statements in the graph definition.
65006 * @returns {object} classDef styles
65007 */
65008var getClasses = exports.getClasses = function getClasses(text) {
65009 _flowDb2.default.clear();
65010 var parser = _flow2.default.parser;
65011 parser.yy = _flowDb2.default;
65012
65013 // Parse the graph definition
65014 parser.parse(text);
65015 return _flowDb2.default.getClasses();
65016};
65017
65018/**
65019 * Draws a flowchart in the tag with id: id based on the graph definition in text.
65020 * @param text
65021 * @param id
65022 */
65023var draw = exports.draw = function draw(text, id) {
65024 _logger.logger.debug('Drawing flowchart');
65025 _flowDb2.default.clear();
65026 var parser = _flow2.default.parser;
65027 parser.yy = _flowDb2.default;
65028
65029 // Parse the graph definition
65030 try {
65031 parser.parse(text);
65032 } catch (err) {
65033 _logger.logger.debug('Parsing failed');
65034 }
65035
65036 // Fetch the default direction, use TD if none was found
65037 var dir = _flowDb2.default.getDirection();
65038 if (typeof dir === 'undefined') {
65039 dir = 'TD';
65040 }
65041
65042 // Create the input mermaid.graph
65043 var g = new _graphlibrary2.default.Graph({
65044 multigraph: true,
65045 compound: true
65046 }).setGraph({
65047 rankdir: dir,
65048 marginx: 20,
65049 marginy: 20
65050
65051 }).setDefaultEdgeLabel(function () {
65052 return {};
65053 });
65054
65055 var subG = void 0;
65056 var subGraphs = _flowDb2.default.getSubGraphs();
65057 for (var _i = subGraphs.length - 1; _i >= 0; _i--) {
65058 subG = subGraphs[_i];
65059 _flowDb2.default.addVertex(subG.id, subG.title, 'group', undefined);
65060 }
65061
65062 // Fetch the verices/nodes and edges/links from the parsed graph definition
65063 var vert = _flowDb2.default.getVertices();
65064
65065 var edges = _flowDb2.default.getEdges();
65066
65067 var i = 0;
65068 for (i = subGraphs.length - 1; i >= 0; i--) {
65069 subG = subGraphs[i];
65070
65071 d3.selectAll('cluster').append('text');
65072
65073 for (var j = 0; j < subG.nodes.length; j++) {
65074 g.setParent(subG.nodes[j], subG.id);
65075 }
65076 }
65077 addVertices(vert, g);
65078 addEdges(edges, g);
65079
65080 // Create the renderer
65081 var Render = _dagreD3Renderer2.default.render;
65082 var render = new Render();
65083
65084 // Add custom shape for rhombus type of boc (decision)
65085 render.shapes().question = function (parent, bbox, node) {
65086 var w = bbox.width;
65087 var h = bbox.height;
65088 var s = (w + h) * 0.8;
65089 var points = [{ x: s / 2, y: 0 }, { x: s, y: -s / 2 }, { x: s / 2, y: -s }, { x: 0, y: -s / 2 }];
65090 var shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
65091 return d.x + ',' + d.y;
65092 }).join(' ')).attr('rx', 5).attr('ry', 5).attr('transform', 'translate(' + -s / 2 + ',' + s * 2 / 4 + ')');
65093 node.intersect = function (point) {
65094 return _dagreD3Renderer2.default.intersect.polygon(node, points, point);
65095 };
65096 return shapeSvg;
65097 };
65098
65099 // Add custom shape for box with inverted arrow on left side
65100 render.shapes().rect_left_inv_arrow = function (parent, bbox, node) {
65101 var w = bbox.width;
65102 var h = bbox.height;
65103 var points = [{ x: -h / 2, y: 0 }, { x: w, y: 0 }, { x: w, y: -h }, { x: -h / 2, y: -h }, { x: 0, y: -h / 2 }];
65104 var shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
65105 return d.x + ',' + d.y;
65106 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
65107 node.intersect = function (point) {
65108 return _dagreD3Renderer2.default.intersect.polygon(node, points, point);
65109 };
65110 return shapeSvg;
65111 };
65112
65113 // Add custom shape for box with inverted arrow on right side
65114 render.shapes().rect_right_inv_arrow = function (parent, bbox, node) {
65115 var w = bbox.width;
65116 var h = bbox.height;
65117 var points = [{ x: 0, y: 0 }, { x: w + h / 2, y: 0 }, { x: w, y: -h / 2 }, { x: w + h / 2, y: -h }, { x: 0, y: -h }];
65118 var shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
65119 return d.x + ',' + d.y;
65120 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')');
65121 node.intersect = function (point) {
65122 return _dagreD3Renderer2.default.intersect.polygon(node, points, point);
65123 };
65124 return shapeSvg;
65125 };
65126
65127 // Add our custom arrow - an empty arrowhead
65128 render.arrows().none = function normal(parent, id, edge, type) {
65129 var 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');
65130
65131 var path = marker.append('path').attr('d', 'M 0 0 L 0 0 L 0 0 z');
65132 _dagreD3Renderer2.default.util.applyStyle(path, edge[type + 'Style']);
65133 };
65134
65135 // Override normal arrowhead defined in d3. Remove style & add class to allow css styling.
65136 render.arrows().normal = function normal(parent, id, edge, type) {
65137 var 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');
65138
65139 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');
65140 };
65141
65142 // Set up an SVG group so that we can translate the final graph.
65143 var svg = d3.select('[id="' + id + '"]');
65144
65145 // Run the renderer. This is what draws the final graph.
65146 var element = d3.select('#' + id + ' g');
65147 render(element, g);
65148
65149 element.selectAll('g.node').attr('title', function () {
65150 return _flowDb2.default.getTooltip(this.id);
65151 });
65152
65153 if (conf.useMaxWidth) {
65154 // Center the graph
65155 svg.attr('height', '100%');
65156 svg.attr('width', conf.width);
65157 svg.attr('viewBox', '0 0 ' + (g.graph().width + 64) + ' ' + (g.graph().height + 64));
65158 svg.attr('style', 'max-width:' + (g.graph().width + 64) + 'px;');
65159 } else {
65160 // Center the graph
65161 svg.attr('height', g.graph().height + 64);
65162 if (typeof conf.width === 'undefined') {
65163 svg.attr('width', g.graph().width + 64);
65164 } else {
65165 svg.attr('width', conf.width);
65166 }
65167 svg.attr('viewBox', '0 0 ' + (g.graph().width + 64) + ' ' + (g.graph().height + 64));
65168 }
65169 svg.select('g').attr('transform', 'translate(32, 32)');
65170
65171 // Index nodes
65172 _flowDb2.default.indexNodes('subGraph' + i);
65173
65174 for (i = 0; i < subGraphs.length; i++) {
65175 subG = subGraphs[i];
65176
65177 if (subG.title !== 'undefined') {
65178 var clusterRects = document.querySelectorAll('#' + id + ' #' + subG.id + ' rect');
65179 var clusterEl = document.querySelectorAll('#' + id + ' #' + subG.id);
65180
65181 var xPos = clusterRects[0].x.baseVal.value;
65182 var yPos = clusterRects[0].y.baseVal.value;
65183 var width = clusterRects[0].width.baseVal.value;
65184 var cluster = d3.select(clusterEl[0]);
65185 var te = cluster.append('text');
65186 te.attr('x', xPos + width / 2);
65187 te.attr('y', yPos + 14);
65188 te.attr('fill', 'black');
65189 te.attr('stroke', 'none');
65190 te.attr('id', id + 'Text');
65191 te.style('text-anchor', 'middle');
65192
65193 if (typeof subG.title === 'undefined') {
65194 te.text('Undef');
65195 } else {
65196 te.text(subG.title);
65197 }
65198 }
65199 }
65200
65201 // Add label rects for non html labels
65202 if (!conf.htmlLabels) {
65203 var labels = document.querySelectorAll('#' + id + ' .edgeLabel .label');
65204 for (var k = 0; k < labels.length; k++) {
65205 var label = labels[k];
65206
65207 // Get dimensions of label
65208 var dim = label.getBBox();
65209
65210 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
65211 rect.setAttribute('rx', 0);
65212 rect.setAttribute('ry', 0);
65213 rect.setAttribute('width', dim.width);
65214 rect.setAttribute('height', dim.height);
65215 rect.setAttribute('style', 'fill:#e8e8e8;');
65216
65217 label.insertBefore(rect, label.firstChild);
65218 }
65219 }
65220};
65221
65222exports.default = {
65223 setConf: setConf,
65224 addVertices: addVertices,
65225 addEdges: addEdges,
65226 getClasses: getClasses,
65227 draw: draw
65228};
65229
65230/***/ }),
65231
65232/***/ "./src/diagrams/flowchart/parser/flow.js":
65233/*!***********************************************!*\
65234 !*** ./src/diagrams/flowchart/parser/flow.js ***!
65235 \***********************************************/
65236/*! no static exports found */
65237/***/ (function(module, exports, __webpack_require__) {
65238
65239"use strict";
65240/* WEBPACK VAR INJECTION */(function(process, module) {
65241
65242/* parser generated by jison 0.4.18 */
65243/*
65244 Returns a Parser object of the following structure:
65245
65246 Parser: {
65247 yy: {}
65248 }
65249
65250 Parser.prototype: {
65251 yy: {},
65252 trace: function(),
65253 symbols_: {associative list: name ==> number},
65254 terminals_: {associative list: number ==> name},
65255 productions_: [...],
65256 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
65257 table: [...],
65258 defaultActions: {...},
65259 parseError: function(str, hash),
65260 parse: function(input),
65261
65262 lexer: {
65263 EOF: 1,
65264 parseError: function(str, hash),
65265 setInput: function(input),
65266 input: function(),
65267 unput: function(str),
65268 more: function(),
65269 less: function(n),
65270 pastInput: function(),
65271 upcomingInput: function(),
65272 showPosition: function(),
65273 test_match: function(regex_match_array, rule_index),
65274 next: function(),
65275 lex: function(),
65276 begin: function(condition),
65277 popState: function(),
65278 _currentRules: function(),
65279 topState: function(),
65280 pushState: function(condition),
65281
65282 options: {
65283 ranges: boolean (optional: true ==> token location info will include a .range[] member)
65284 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
65285 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)
65286 },
65287
65288 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
65289 rules: [...],
65290 conditions: {associative list: name ==> set},
65291 }
65292 }
65293
65294
65295 token location info (@$, _$, etc.): {
65296 first_line: n,
65297 last_line: n,
65298 first_column: n,
65299 last_column: n,
65300 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
65301 }
65302
65303
65304 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
65305 text: (matched text)
65306 token: (the produced terminal token, if any)
65307 line: (yylineno)
65308 }
65309 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
65310 loc: (yylloc)
65311 expected: (string describing the set of expected tokens)
65312 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
65313 }
65314*/
65315var parser = function () {
65316 var o = function o(k, v, _o, l) {
65317 for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o;
65318 },
65319 $V0 = [1, 4],
65320 $V1 = [1, 3],
65321 $V2 = [1, 5],
65322 $V3 = [1, 8, 9, 10, 11, 13, 18, 30, 46, 71, 72, 73, 74, 75, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98],
65323 $V4 = [2, 2],
65324 $V5 = [1, 12],
65325 $V6 = [1, 13],
65326 $V7 = [1, 14],
65327 $V8 = [1, 15],
65328 $V9 = [1, 31],
65329 $Va = [1, 33],
65330 $Vb = [1, 22],
65331 $Vc = [1, 34],
65332 $Vd = [1, 24],
65333 $Ve = [1, 25],
65334 $Vf = [1, 26],
65335 $Vg = [1, 27],
65336 $Vh = [1, 28],
65337 $Vi = [1, 38],
65338 $Vj = [1, 40],
65339 $Vk = [1, 35],
65340 $Vl = [1, 39],
65341 $Vm = [1, 45],
65342 $Vn = [1, 44],
65343 $Vo = [1, 36],
65344 $Vp = [1, 37],
65345 $Vq = [1, 41],
65346 $Vr = [1, 42],
65347 $Vs = [1, 43],
65348 $Vt = [1, 8, 9, 10, 11, 13, 18, 30, 32, 46, 71, 72, 73, 74, 75, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98],
65349 $Vu = [1, 53],
65350 $Vv = [1, 52],
65351 $Vw = [1, 54],
65352 $Vx = [1, 72],
65353 $Vy = [1, 80],
65354 $Vz = [1, 81],
65355 $VA = [1, 66],
65356 $VB = [1, 65],
65357 $VC = [1, 85],
65358 $VD = [1, 84],
65359 $VE = [1, 82],
65360 $VF = [1, 83],
65361 $VG = [1, 73],
65362 $VH = [1, 68],
65363 $VI = [1, 67],
65364 $VJ = [1, 63],
65365 $VK = [1, 75],
65366 $VL = [1, 76],
65367 $VM = [1, 77],
65368 $VN = [1, 78],
65369 $VO = [1, 79],
65370 $VP = [1, 70],
65371 $VQ = [1, 69],
65372 $VR = [8, 9, 11],
65373 $VS = [8, 9, 11, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64],
65374 $VT = [1, 115],
65375 $VU = [8, 9, 10, 11, 13, 15, 18, 36, 38, 40, 42, 46, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98],
65376 $VV = [8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 30, 32, 36, 37, 38, 39, 40, 41, 42, 43, 46, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 71, 72, 73, 74, 75, 78, 81, 84, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98],
65377 $VW = [1, 117],
65378 $VX = [1, 118],
65379 $VY = [8, 9, 10, 11, 13, 18, 30, 32, 46, 71, 72, 73, 74, 75, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98],
65380 $VZ = [8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 30, 32, 37, 39, 41, 43, 46, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 71, 72, 73, 74, 75, 78, 81, 84, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98],
65381 $V_ = [13, 18, 46, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98],
65382 $V$ = [13, 18, 46, 49, 65, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98],
65383 $V01 = [1, 191],
65384 $V11 = [1, 188],
65385 $V21 = [1, 195],
65386 $V31 = [1, 192],
65387 $V41 = [1, 189],
65388 $V51 = [1, 196],
65389 $V61 = [1, 186],
65390 $V71 = [1, 187],
65391 $V81 = [1, 190],
65392 $V91 = [1, 193],
65393 $Va1 = [1, 194],
65394 $Vb1 = [1, 213],
65395 $Vc1 = [8, 9, 11, 86],
65396 $Vd1 = [8, 9, 10, 11, 46, 71, 80, 81, 84, 86, 88, 89, 90, 91, 92];
65397 var parser = { trace: function trace() {},
65398 yy: {},
65399 symbols_: { "error": 2, "mermaidDoc": 3, "graphConfig": 4, "document": 5, "line": 6, "statement": 7, "SEMI": 8, "NEWLINE": 9, "SPACE": 10, "EOF": 11, "GRAPH": 12, "DIR": 13, "FirstStmtSeperator": 14, "TAGEND": 15, "TAGSTART": 16, "UP": 17, "DOWN": 18, "ending": 19, "endToken": 20, "spaceList": 21, "spaceListNewline": 22, "verticeStatement": 23, "separator": 24, "styleStatement": 25, "linkStyleStatement": 26, "classDefStatement": 27, "classStatement": 28, "clickStatement": 29, "subgraph": 30, "text": 31, "end": 32, "vertex": 33, "link": 34, "alphaNum": 35, "SQS": 36, "SQE": 37, "PS": 38, "PE": 39, "(-": 40, "-)": 41, "DIAMOND_START": 42, "DIAMOND_STOP": 43, "alphaNumStatement": 44, "alphaNumToken": 45, "MINUS": 46, "linkStatement": 47, "arrowText": 48, "TESTSTR": 49, "--": 50, "ARROW_POINT": 51, "ARROW_CIRCLE": 52, "ARROW_CROSS": 53, "ARROW_OPEN": 54, "-.": 55, "DOTTED_ARROW_POINT": 56, "DOTTED_ARROW_CIRCLE": 57, "DOTTED_ARROW_CROSS": 58, "DOTTED_ARROW_OPEN": 59, "==": 60, "THICK_ARROW_POINT": 61, "THICK_ARROW_CIRCLE": 62, "THICK_ARROW_CROSS": 63, "THICK_ARROW_OPEN": 64, "PIPE": 65, "textToken": 66, "STR": 67, "commentText": 68, "commentToken": 69, "keywords": 70, "STYLE": 71, "LINKSTYLE": 72, "CLASSDEF": 73, "CLASS": 74, "CLICK": 75, "textNoTags": 76, "textNoTagsToken": 77, "DEFAULT": 78, "stylesOpt": 79, "HEX": 80, "NUM": 81, "INTERPOLATE": 82, "commentStatement": 83, "PCT": 84, "style": 85, "COMMA": 86, "styleComponent": 87, "ALPHA": 88, "COLON": 89, "UNIT": 90, "BRKT": 91, "DOT": 92, "graphCodeTokens": 93, "PUNCTUATION": 94, "UNICODE_TEXT": 95, "PLUS": 96, "EQUALS": 97, "MULT": 98, "TAG_START": 99, "TAG_END": 100, "QUOTE": 101, "$accept": 0, "$end": 1 },
65400 terminals_: { 2: "error", 8: "SEMI", 9: "NEWLINE", 10: "SPACE", 11: "EOF", 12: "GRAPH", 13: "DIR", 15: "TAGEND", 16: "TAGSTART", 17: "UP", 18: "DOWN", 30: "subgraph", 32: "end", 36: "SQS", 37: "SQE", 38: "PS", 39: "PE", 40: "(-", 41: "-)", 42: "DIAMOND_START", 43: "DIAMOND_STOP", 46: "MINUS", 49: "TESTSTR", 50: "--", 51: "ARROW_POINT", 52: "ARROW_CIRCLE", 53: "ARROW_CROSS", 54: "ARROW_OPEN", 55: "-.", 56: "DOTTED_ARROW_POINT", 57: "DOTTED_ARROW_CIRCLE", 58: "DOTTED_ARROW_CROSS", 59: "DOTTED_ARROW_OPEN", 60: "==", 61: "THICK_ARROW_POINT", 62: "THICK_ARROW_CIRCLE", 63: "THICK_ARROW_CROSS", 64: "THICK_ARROW_OPEN", 65: "PIPE", 67: "STR", 71: "STYLE", 72: "LINKSTYLE", 73: "CLASSDEF", 74: "CLASS", 75: "CLICK", 78: "DEFAULT", 80: "HEX", 81: "NUM", 82: "INTERPOLATE", 84: "PCT", 86: "COMMA", 88: "ALPHA", 89: "COLON", 90: "UNIT", 91: "BRKT", 92: "DOT", 94: "PUNCTUATION", 95: "UNICODE_TEXT", 96: "PLUS", 97: "EQUALS", 98: "MULT", 99: "TAG_START", 100: "TAG_END", 101: "QUOTE" },
65401 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, 5], [7, 4], [24, 1], [24, 1], [24, 1], [23, 3], [23, 1], [33, 4], [33, 5], [33, 6], [33, 7], [33, 4], [33, 5], [33, 4], [33, 5], [33, 4], [33, 5], [33, 4], [33, 5], [33, 1], [33, 2], [35, 1], [35, 2], [44, 1], [44, 1], [44, 1], [44, 1], [34, 2], [34, 3], [34, 3], [34, 1], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [48, 3], [31, 1], [31, 2], [31, 1], [68, 1], [68, 2], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [76, 1], [76, 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], [83, 3], [79, 1], [79, 3], [85, 1], [85, 2], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [69, 1], [69, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [77, 1], [77, 1], [77, 1], [77, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1]],
65402 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
65403 /* this == yyval */
65404
65405 var $0 = $$.length - 1;
65406 switch (yystate) {
65407 case 2:
65408 this.$ = [];
65409 break;
65410 case 3:
65411
65412 if ($$[$0] !== []) {
65413 $$[$0 - 1].push($$[$0]);
65414 }
65415 this.$ = $$[$0 - 1];
65416 break;
65417 case 4:case 57:case 59:case 60:case 92:case 94:case 95:case 108:
65418 this.$ = $$[$0];
65419 break;
65420 case 11:
65421 yy.setDirection($$[$0 - 1]);this.$ = $$[$0 - 1];
65422 break;
65423 case 12:
65424 yy.setDirection("LR");this.$ = $$[$0 - 1];
65425 break;
65426 case 13:
65427 yy.setDirection("RL");this.$ = $$[$0 - 1];
65428 break;
65429 case 14:
65430 yy.setDirection("BT");this.$ = $$[$0 - 1];
65431 break;
65432 case 15:
65433 yy.setDirection("TB");this.$ = $$[$0 - 1];
65434 break;
65435 case 30:
65436 this.$ = $$[$0 - 1];
65437 break;
65438 case 31:case 32:case 33:case 34:case 35:
65439 this.$ = [];
65440 break;
65441 case 36:
65442 this.$ = yy.addSubGraph($$[$0 - 1], $$[$0 - 3]);
65443 break;
65444 case 37:
65445 this.$ = yy.addSubGraph($$[$0 - 1], undefined);
65446 break;
65447 case 41:
65448 yy.addLink($$[$0 - 2], $$[$0], $$[$0 - 1]);this.$ = [$$[$0 - 2], $$[$0]];
65449 break;
65450 case 42:
65451 this.$ = [$$[$0]];
65452 break;
65453 case 43:
65454 this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'square');
65455 break;
65456 case 44:
65457 this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'square');
65458 break;
65459 case 45:
65460 this.$ = $$[$0 - 5];yy.addVertex($$[$0 - 5], $$[$0 - 2], 'circle');
65461 break;
65462 case 46:
65463 this.$ = $$[$0 - 6];yy.addVertex($$[$0 - 6], $$[$0 - 3], 'circle');
65464 break;
65465 case 47:
65466 this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'ellipse');
65467 break;
65468 case 48:
65469 this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'ellipse');
65470 break;
65471 case 49:
65472 this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'round');
65473 break;
65474 case 50:
65475 this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'round');
65476 break;
65477 case 51:
65478 this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'diamond');
65479 break;
65480 case 52:
65481 this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'diamond');
65482 break;
65483 case 53:
65484 this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'odd');
65485 break;
65486 case 54:
65487 this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'odd');
65488 break;
65489 case 55:
65490 this.$ = $$[$0];yy.addVertex($$[$0]);
65491 break;
65492 case 56:
65493 this.$ = $$[$0 - 1];yy.addVertex($$[$0 - 1]);
65494 break;
65495 case 58:case 93:case 96:case 109:
65496 this.$ = $$[$0 - 1] + '' + $$[$0];
65497 break;
65498 case 61:
65499 this.$ = 'v';
65500 break;
65501 case 62:
65502 this.$ = '-';
65503 break;
65504 case 63:
65505 $$[$0 - 1].text = $$[$0];this.$ = $$[$0 - 1];
65506 break;
65507 case 64:case 65:
65508 $$[$0 - 2].text = $$[$0 - 1];this.$ = $$[$0 - 2];
65509 break;
65510 case 66:
65511 this.$ = $$[$0];
65512 break;
65513 case 67:
65514 this.$ = { "type": "arrow", "stroke": "normal", "text": $$[$0 - 1] };
65515 break;
65516 case 68:
65517 this.$ = { "type": "arrow_circle", "stroke": "normal", "text": $$[$0 - 1] };
65518 break;
65519 case 69:
65520 this.$ = { "type": "arrow_cross", "stroke": "normal", "text": $$[$0 - 1] };
65521 break;
65522 case 70:
65523 this.$ = { "type": "arrow_open", "stroke": "normal", "text": $$[$0 - 1] };
65524 break;
65525 case 71:
65526 this.$ = { "type": "arrow", "stroke": "dotted", "text": $$[$0 - 1] };
65527 break;
65528 case 72:
65529 this.$ = { "type": "arrow_circle", "stroke": "dotted", "text": $$[$0 - 1] };
65530 break;
65531 case 73:
65532 this.$ = { "type": "arrow_cross", "stroke": "dotted", "text": $$[$0 - 1] };
65533 break;
65534 case 74:
65535 this.$ = { "type": "arrow_open", "stroke": "dotted", "text": $$[$0 - 1] };
65536 break;
65537 case 75:
65538 this.$ = { "type": "arrow", "stroke": "thick", "text": $$[$0 - 1] };
65539 break;
65540 case 76:
65541 this.$ = { "type": "arrow_circle", "stroke": "thick", "text": $$[$0 - 1] };
65542 break;
65543 case 77:
65544 this.$ = { "type": "arrow_cross", "stroke": "thick", "text": $$[$0 - 1] };
65545 break;
65546 case 78:
65547 this.$ = { "type": "arrow_open", "stroke": "thick", "text": $$[$0 - 1] };
65548 break;
65549 case 79:
65550 this.$ = { "type": "arrow", "stroke": "normal" };
65551 break;
65552 case 80:
65553 this.$ = { "type": "arrow_circle", "stroke": "normal" };
65554 break;
65555 case 81:
65556 this.$ = { "type": "arrow_cross", "stroke": "normal" };
65557 break;
65558 case 82:
65559 this.$ = { "type": "arrow_open", "stroke": "normal" };
65560 break;
65561 case 83:
65562 this.$ = { "type": "arrow", "stroke": "dotted" };
65563 break;
65564 case 84:
65565 this.$ = { "type": "arrow_circle", "stroke": "dotted" };
65566 break;
65567 case 85:
65568 this.$ = { "type": "arrow_cross", "stroke": "dotted" };
65569 break;
65570 case 86:
65571 this.$ = { "type": "arrow_open", "stroke": "dotted" };
65572 break;
65573 case 87:
65574 this.$ = { "type": "arrow", "stroke": "thick" };
65575 break;
65576 case 88:
65577 this.$ = { "type": "arrow_circle", "stroke": "thick" };
65578 break;
65579 case 89:
65580 this.$ = { "type": "arrow_cross", "stroke": "thick" };
65581 break;
65582 case 90:
65583 this.$ = { "type": "arrow_open", "stroke": "thick" };
65584 break;
65585 case 91:
65586 this.$ = $$[$0 - 1];
65587 break;
65588 case 110:case 111:
65589 this.$ = $$[$0 - 4];yy.addClass($$[$0 - 2], $$[$0]);
65590 break;
65591 case 112:
65592 this.$ = $$[$0 - 4];yy.setClass($$[$0 - 2], $$[$0]);
65593 break;
65594 case 113:
65595 this.$ = $$[$0 - 4];yy.setClickEvent($$[$0 - 2], $$[$0], undefined, undefined);
65596 break;
65597 case 114:
65598 this.$ = $$[$0 - 6];yy.setClickEvent($$[$0 - 4], $$[$0 - 2], undefined, $$[$0]);
65599 break;
65600 case 115:
65601 this.$ = $$[$0 - 4];yy.setClickEvent($$[$0 - 2], undefined, $$[$0], undefined);
65602 break;
65603 case 116:
65604 this.$ = $$[$0 - 6];yy.setClickEvent($$[$0 - 4], undefined, $$[$0 - 2], $$[$0]);
65605 break;
65606 case 117:
65607 this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 2], undefined, undefined, $$[$0]);
65608 break;
65609 case 118:case 119:case 120:
65610 this.$ = $$[$0 - 4];yy.updateLink($$[$0 - 2], $$[$0]);
65611 break;
65612 case 121:case 122:
65613 this.$ = $$[$0 - 8];yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);yy.updateLink($$[$0 - 6], $$[$0]);
65614 break;
65615 case 123:case 124:
65616 this.$ = $$[$0 - 6];yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);
65617 break;
65618 case 126:
65619 this.$ = [$$[$0]];
65620 break;
65621 case 127:
65622 $$[$0 - 2].push($$[$0]);this.$ = $$[$0 - 2];
65623 break;
65624 case 129:
65625 this.$ = $$[$0 - 1] + $$[$0];
65626 break;
65627 }
65628 },
65629 table: [{ 3: 1, 4: 2, 9: $V0, 10: $V1, 12: $V2 }, { 1: [3] }, o($V3, $V4, { 5: 6 }), { 4: 7, 9: $V0, 10: $V1, 12: $V2 }, { 4: 8, 9: $V0, 10: $V1, 12: $V2 }, { 10: [1, 9] }, { 1: [2, 1], 6: 10, 7: 11, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 13: $V9, 18: $Va, 23: 16, 25: 17, 26: 18, 27: 19, 28: 20, 29: 21, 30: $Vb, 33: 23, 35: 29, 44: 30, 45: 32, 46: $Vc, 71: $Vd, 72: $Ve, 73: $Vf, 74: $Vg, 75: $Vh, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($V3, [2, 9]), o($V3, [2, 10]), { 13: [1, 46], 15: [1, 47], 16: [1, 48], 17: [1, 49], 18: [1, 50] }, o($Vt, [2, 3]), o($Vt, [2, 4]), o($Vt, [2, 5]), o($Vt, [2, 6]), o($Vt, [2, 7]), o($Vt, [2, 8]), { 8: $Vu, 9: $Vv, 11: $Vw, 24: 51 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 55 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 56 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 57 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 58 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 59 }, { 8: $Vu, 9: $Vv, 10: $Vx, 11: $Vw, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 24: 61, 30: $VE, 31: 60, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VR, [2, 42], { 34: 86, 47: 87, 50: [1, 88], 51: [1, 91], 52: [1, 92], 53: [1, 93], 54: [1, 94], 55: [1, 89], 56: [1, 95], 57: [1, 96], 58: [1, 97], 59: [1, 98], 60: [1, 90], 61: [1, 99], 62: [1, 100], 63: [1, 101], 64: [1, 102] }), { 10: [1, 103] }, { 10: [1, 104] }, { 10: [1, 105] }, { 10: [1, 106] }, { 10: [1, 107] }, o($VS, [2, 55], { 45: 32, 21: 113, 44: 114, 10: $VT, 13: $V9, 15: [1, 112], 18: $Va, 36: [1, 108], 38: [1, 109], 40: [1, 110], 42: [1, 111], 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VU, [2, 57]), o($VU, [2, 59]), o($VU, [2, 60]), o($VU, [2, 61]), o($VU, [2, 62]), o($VV, [2, 154]), o($VV, [2, 155]), o($VV, [2, 156]), o($VV, [2, 157]), o($VV, [2, 158]), o($VV, [2, 159]), o($VV, [2, 160]), o($VV, [2, 161]), o($VV, [2, 162]), o($VV, [2, 163]), o($VV, [2, 164]), { 8: $VW, 9: $VX, 10: $VT, 14: 116, 21: 119 }, { 8: $VW, 9: $VX, 10: $VT, 14: 120, 21: 119 }, { 8: $VW, 9: $VX, 10: $VT, 14: 121, 21: 119 }, { 8: $VW, 9: $VX, 10: $VT, 14: 122, 21: 119 }, { 8: $VW, 9: $VX, 10: $VT, 14: 123, 21: 119 }, o($Vt, [2, 30]), o($Vt, [2, 38]), o($Vt, [2, 39]), o($Vt, [2, 40]), o($Vt, [2, 31]), o($Vt, [2, 32]), o($Vt, [2, 33]), o($Vt, [2, 34]), o($Vt, [2, 35]), { 8: $Vu, 9: $Vv, 10: $Vx, 11: $Vw, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 24: 124, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VY, $V4, { 5: 126 }), o($VZ, [2, 92]), o($VZ, [2, 94]), o($VZ, [2, 143]), o($VZ, [2, 144]), o($VZ, [2, 145]), o($VZ, [2, 146]), o($VZ, [2, 147]), o($VZ, [2, 148]), o($VZ, [2, 149]), o($VZ, [2, 150]), o($VZ, [2, 151]), o($VZ, [2, 152]), o($VZ, [2, 153]), o($VZ, [2, 97]), o($VZ, [2, 98]), o($VZ, [2, 99]), o($VZ, [2, 100]), o($VZ, [2, 101]), o($VZ, [2, 102]), o($VZ, [2, 103]), o($VZ, [2, 104]), o($VZ, [2, 105]), o($VZ, [2, 106]), o($VZ, [2, 107]), { 13: $V9, 18: $Va, 33: 127, 35: 29, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($V_, [2, 66], { 48: 128, 49: [1, 129], 65: [1, 130] }), { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 131, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 132, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 133, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($V$, [2, 79]), o($V$, [2, 80]), o($V$, [2, 81]), o($V$, [2, 82]), o($V$, [2, 83]), o($V$, [2, 84]), o($V$, [2, 85]), o($V$, [2, 86]), o($V$, [2, 87]), o($V$, [2, 88]), o($V$, [2, 89]), o($V$, [2, 90]), { 13: $V9, 18: $Va, 35: 134, 44: 30, 45: 32, 46: $Vc, 80: [1, 135], 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 78: [1, 136], 81: [1, 137] }, { 13: $V9, 18: $Va, 35: 139, 44: 30, 45: 32, 46: $Vc, 78: [1, 138], 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 13: $V9, 18: $Va, 35: 140, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 13: $V9, 18: $Va, 35: 141, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 142, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 144, 32: $VF, 38: [1, 143], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 145, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 146, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 147, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VS, [2, 56]), o($VU, [2, 58]), o($VS, [2, 29], { 21: 148, 10: $VT }), o($V3, [2, 11]), o($V3, [2, 21]), o($V3, [2, 22]), { 9: [1, 149] }, o($V3, [2, 12]), o($V3, [2, 13]), o($V3, [2, 14]), o($V3, [2, 15]), o($VY, $V4, { 5: 150 }), o($VZ, [2, 93]), { 6: 10, 7: 11, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 13: $V9, 18: $Va, 23: 16, 25: 17, 26: 18, 27: 19, 28: 20, 29: 21, 30: $Vb, 32: [1, 151], 33: 23, 35: 29, 44: 30, 45: 32, 46: $Vc, 71: $Vd, 72: $Ve, 73: $Vf, 74: $Vg, 75: $Vh, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VR, [2, 41]), o($V_, [2, 63], { 10: [1, 152] }), { 10: [1, 153] }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 154, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 51: [1, 155], 52: [1, 156], 53: [1, 157], 54: [1, 158], 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 56: [1, 159], 57: [1, 160], 58: [1, 161], 59: [1, 162], 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 61: [1, 163], 62: [1, 164], 63: [1, 165], 64: [1, 166], 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: [1, 167], 13: $V9, 18: $Va, 44: 114, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: [1, 168] }, { 10: [1, 169] }, { 10: [1, 170] }, { 10: [1, 171] }, { 10: [1, 172], 13: $V9, 18: $Va, 44: 114, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: [1, 173], 13: $V9, 18: $Va, 44: 114, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: [1, 174], 13: $V9, 18: $Va, 44: 114, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 37: [1, 175], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 176, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 39: [1, 177], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 41: [1, 178], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 43: [1, 179], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 37: [1, 180], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VS, [2, 28]), o($V3, [2, 23]), { 6: 10, 7: 11, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 13: $V9, 18: $Va, 23: 16, 25: 17, 26: 18, 27: 19, 28: 20, 29: 21, 30: $Vb, 32: [1, 181], 33: 23, 35: 29, 44: 30, 45: 32, 46: $Vc, 71: $Vd, 72: $Ve, 73: $Vf, 74: $Vg, 75: $Vh, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($Vt, [2, 37]), o($V_, [2, 65]), o($V_, [2, 64]), { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 65: [1, 182], 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($V_, [2, 67]), o($V_, [2, 68]), o($V_, [2, 69]), o($V_, [2, 70]), o($V_, [2, 71]), o($V_, [2, 72]), o($V_, [2, 73]), o($V_, [2, 74]), o($V_, [2, 75]), o($V_, [2, 76]), o($V_, [2, 77]), o($V_, [2, 78]), { 10: $V01, 46: $V11, 71: $V21, 79: 183, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 197, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 198, 80: $V31, 81: $V41, 82: [1, 199], 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 200, 80: $V31, 81: $V41, 82: [1, 201], 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 202, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 203, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 13: $V9, 18: $Va, 35: 204, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 13: $V9, 18: $Va, 35: 205, 44: 30, 45: 32, 46: $Vc, 67: [1, 206], 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VS, [2, 43], { 21: 207, 10: $VT }), { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 39: [1, 208], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VS, [2, 49], { 21: 209, 10: $VT }), o($VS, [2, 47], { 21: 210, 10: $VT }), o($VS, [2, 51], { 21: 211, 10: $VT }), o($VS, [2, 53], { 21: 212, 10: $VT }), o($Vt, [2, 36]), o([10, 13, 18, 46, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], [2, 91]), o($VR, [2, 117], { 86: $Vb1 }), o($Vc1, [2, 126], { 87: 214, 10: $V01, 46: $V11, 71: $V21, 80: $V31, 81: $V41, 84: $V51, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }), o($Vd1, [2, 128]), o($Vd1, [2, 130]), o($Vd1, [2, 131]), o($Vd1, [2, 132]), o($Vd1, [2, 133]), o($Vd1, [2, 134]), o($Vd1, [2, 135]), o($Vd1, [2, 136]), o($Vd1, [2, 137]), o($Vd1, [2, 138]), o($Vd1, [2, 139]), o($Vd1, [2, 140]), o($VR, [2, 118], { 86: $Vb1 }), o($VR, [2, 119], { 86: $Vb1 }), { 10: [1, 215] }, o($VR, [2, 120], { 86: $Vb1 }), { 10: [1, 216] }, o($VR, [2, 110], { 86: $Vb1 }), o($VR, [2, 111], { 86: $Vb1 }), o($VR, [2, 112], { 45: 32, 44: 114, 13: $V9, 18: $Va, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VR, [2, 113], { 45: 32, 44: 114, 10: [1, 217], 13: $V9, 18: $Va, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VR, [2, 115], { 10: [1, 218] }), o($VS, [2, 44]), { 39: [1, 219] }, o($VS, [2, 50]), o($VS, [2, 48]), o($VS, [2, 52]), o($VS, [2, 54]), { 10: $V01, 46: $V11, 71: $V21, 80: $V31, 81: $V41, 84: $V51, 85: 220, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, o($Vd1, [2, 129]), { 13: $V9, 18: $Va, 35: 221, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 13: $V9, 18: $Va, 35: 222, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 67: [1, 223] }, { 67: [1, 224] }, o($VS, [2, 45], { 21: 225, 10: $VT }), o($Vc1, [2, 127], { 87: 214, 10: $V01, 46: $V11, 71: $V21, 80: $V31, 81: $V41, 84: $V51, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }), o($VR, [2, 123], { 45: 32, 44: 114, 10: [1, 226], 13: $V9, 18: $Va, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VR, [2, 124], { 45: 32, 44: 114, 10: [1, 227], 13: $V9, 18: $Va, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VR, [2, 114]), o($VR, [2, 116]), o($VS, [2, 46]), { 10: $V01, 46: $V11, 71: $V21, 79: 228, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 229, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, o($VR, [2, 121], { 86: $Vb1 }), o($VR, [2, 122], { 86: $Vb1 })],
65630 defaultActions: {},
65631 parseError: function parseError(str, hash) {
65632 if (hash.recoverable) {
65633 this.trace(str);
65634 } else {
65635 var error = new Error(str);
65636 error.hash = hash;
65637 throw error;
65638 }
65639 },
65640 parse: function parse(input) {
65641 var self = this,
65642 stack = [0],
65643 tstack = [],
65644 vstack = [null],
65645 lstack = [],
65646 table = this.table,
65647 yytext = '',
65648 yylineno = 0,
65649 yyleng = 0,
65650 recovering = 0,
65651 TERROR = 2,
65652 EOF = 1;
65653 var args = lstack.slice.call(arguments, 1);
65654 var lexer = Object.create(this.lexer);
65655 var sharedState = { yy: {} };
65656 for (var k in this.yy) {
65657 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
65658 sharedState.yy[k] = this.yy[k];
65659 }
65660 }
65661 lexer.setInput(input, sharedState.yy);
65662 sharedState.yy.lexer = lexer;
65663 sharedState.yy.parser = this;
65664 if (typeof lexer.yylloc == 'undefined') {
65665 lexer.yylloc = {};
65666 }
65667 var yyloc = lexer.yylloc;
65668 lstack.push(yyloc);
65669 var ranges = lexer.options && lexer.options.ranges;
65670 if (typeof sharedState.yy.parseError === 'function') {
65671 this.parseError = sharedState.yy.parseError;
65672 } else {
65673 this.parseError = Object.getPrototypeOf(this).parseError;
65674 }
65675 function popStack(n) {
65676 stack.length = stack.length - 2 * n;
65677 vstack.length = vstack.length - n;
65678 lstack.length = lstack.length - n;
65679 }
65680 function lex() {
65681 var token;
65682 token = tstack.pop() || lexer.lex() || EOF;
65683 if (typeof token !== 'number') {
65684 if (token instanceof Array) {
65685 tstack = token;
65686 token = tstack.pop();
65687 }
65688 token = self.symbols_[token] || token;
65689 }
65690 return token;
65691 }
65692 var symbol,
65693 preErrorSymbol,
65694 state,
65695 action,
65696 a,
65697 r,
65698 yyval = {},
65699 p,
65700 len,
65701 newState,
65702 expected;
65703 while (true) {
65704 state = stack[stack.length - 1];
65705 if (this.defaultActions[state]) {
65706 action = this.defaultActions[state];
65707 } else {
65708 if (symbol === null || typeof symbol == 'undefined') {
65709 symbol = lex();
65710 }
65711 action = table[state] && table[state][symbol];
65712 }
65713 if (typeof action === 'undefined' || !action.length || !action[0]) {
65714 var errStr = '';
65715 expected = [];
65716 for (p in table[state]) {
65717 if (this.terminals_[p] && p > TERROR) {
65718 expected.push('\'' + this.terminals_[p] + '\'');
65719 }
65720 }
65721 if (lexer.showPosition) {
65722 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
65723 } else {
65724 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
65725 }
65726 this.parseError(errStr, {
65727 text: lexer.match,
65728 token: this.terminals_[symbol] || symbol,
65729 line: lexer.yylineno,
65730 loc: yyloc,
65731 expected: expected
65732 });
65733 }
65734 if (action[0] instanceof Array && action.length > 1) {
65735 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
65736 }
65737 switch (action[0]) {
65738 case 1:
65739 stack.push(symbol);
65740 vstack.push(lexer.yytext);
65741 lstack.push(lexer.yylloc);
65742 stack.push(action[1]);
65743 symbol = null;
65744 if (!preErrorSymbol) {
65745 yyleng = lexer.yyleng;
65746 yytext = lexer.yytext;
65747 yylineno = lexer.yylineno;
65748 yyloc = lexer.yylloc;
65749 if (recovering > 0) {
65750 recovering--;
65751 }
65752 } else {
65753 symbol = preErrorSymbol;
65754 preErrorSymbol = null;
65755 }
65756 break;
65757 case 2:
65758 len = this.productions_[action[1]][1];
65759 yyval.$ = vstack[vstack.length - len];
65760 yyval._$ = {
65761 first_line: lstack[lstack.length - (len || 1)].first_line,
65762 last_line: lstack[lstack.length - 1].last_line,
65763 first_column: lstack[lstack.length - (len || 1)].first_column,
65764 last_column: lstack[lstack.length - 1].last_column
65765 };
65766 if (ranges) {
65767 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
65768 }
65769 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
65770 if (typeof r !== 'undefined') {
65771 return r;
65772 }
65773 if (len) {
65774 stack = stack.slice(0, -1 * len * 2);
65775 vstack = vstack.slice(0, -1 * len);
65776 lstack = lstack.slice(0, -1 * len);
65777 }
65778 stack.push(this.productions_[action[1]][0]);
65779 vstack.push(yyval.$);
65780 lstack.push(yyval._$);
65781 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
65782 stack.push(newState);
65783 break;
65784 case 3:
65785 return true;
65786 }
65787 }
65788 return true;
65789 } };
65790
65791 /* generated by jison-lex 0.3.4 */
65792 var lexer = function () {
65793 var lexer = {
65794
65795 EOF: 1,
65796
65797 parseError: function parseError(str, hash) {
65798 if (this.yy.parser) {
65799 this.yy.parser.parseError(str, hash);
65800 } else {
65801 throw new Error(str);
65802 }
65803 },
65804
65805 // resets the lexer, sets new input
65806 setInput: function setInput(input, yy) {
65807 this.yy = yy || this.yy || {};
65808 this._input = input;
65809 this._more = this._backtrack = this.done = false;
65810 this.yylineno = this.yyleng = 0;
65811 this.yytext = this.matched = this.match = '';
65812 this.conditionStack = ['INITIAL'];
65813 this.yylloc = {
65814 first_line: 1,
65815 first_column: 0,
65816 last_line: 1,
65817 last_column: 0
65818 };
65819 if (this.options.ranges) {
65820 this.yylloc.range = [0, 0];
65821 }
65822 this.offset = 0;
65823 return this;
65824 },
65825
65826 // consumes and returns one char from the input
65827 input: function input() {
65828 var ch = this._input[0];
65829 this.yytext += ch;
65830 this.yyleng++;
65831 this.offset++;
65832 this.match += ch;
65833 this.matched += ch;
65834 var lines = ch.match(/(?:\r\n?|\n).*/g);
65835 if (lines) {
65836 this.yylineno++;
65837 this.yylloc.last_line++;
65838 } else {
65839 this.yylloc.last_column++;
65840 }
65841 if (this.options.ranges) {
65842 this.yylloc.range[1]++;
65843 }
65844
65845 this._input = this._input.slice(1);
65846 return ch;
65847 },
65848
65849 // unshifts one char (or a string) into the input
65850 unput: function unput(ch) {
65851 var len = ch.length;
65852 var lines = ch.split(/(?:\r\n?|\n)/g);
65853
65854 this._input = ch + this._input;
65855 this.yytext = this.yytext.substr(0, this.yytext.length - len);
65856 //this.yyleng -= len;
65857 this.offset -= len;
65858 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
65859 this.match = this.match.substr(0, this.match.length - 1);
65860 this.matched = this.matched.substr(0, this.matched.length - 1);
65861
65862 if (lines.length - 1) {
65863 this.yylineno -= lines.length - 1;
65864 }
65865 var r = this.yylloc.range;
65866
65867 this.yylloc = {
65868 first_line: this.yylloc.first_line,
65869 last_line: this.yylineno + 1,
65870 first_column: this.yylloc.first_column,
65871 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
65872 };
65873
65874 if (this.options.ranges) {
65875 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
65876 }
65877 this.yyleng = this.yytext.length;
65878 return this;
65879 },
65880
65881 // When called from action, caches matched text and appends it on next action
65882 more: function more() {
65883 this._more = true;
65884 return this;
65885 },
65886
65887 // 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.
65888 reject: function reject() {
65889 if (this.options.backtrack_lexer) {
65890 this._backtrack = true;
65891 } else {
65892 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(), {
65893 text: "",
65894 token: null,
65895 line: this.yylineno
65896 });
65897 }
65898 return this;
65899 },
65900
65901 // retain first n characters of the match
65902 less: function less(n) {
65903 this.unput(this.match.slice(n));
65904 },
65905
65906 // displays already matched input, i.e. for error messages
65907 pastInput: function pastInput() {
65908 var past = this.matched.substr(0, this.matched.length - this.match.length);
65909 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
65910 },
65911
65912 // displays upcoming input, i.e. for error messages
65913 upcomingInput: function upcomingInput() {
65914 var next = this.match;
65915 if (next.length < 20) {
65916 next += this._input.substr(0, 20 - next.length);
65917 }
65918 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
65919 },
65920
65921 // displays the character position where the lexing error occurred, i.e. for error messages
65922 showPosition: function showPosition() {
65923 var pre = this.pastInput();
65924 var c = new Array(pre.length + 1).join("-");
65925 return pre + this.upcomingInput() + "\n" + c + "^";
65926 },
65927
65928 // test the lexed token: return FALSE when not a match, otherwise return token
65929 test_match: function test_match(match, indexed_rule) {
65930 var token, lines, backup;
65931
65932 if (this.options.backtrack_lexer) {
65933 // save context
65934 backup = {
65935 yylineno: this.yylineno,
65936 yylloc: {
65937 first_line: this.yylloc.first_line,
65938 last_line: this.last_line,
65939 first_column: this.yylloc.first_column,
65940 last_column: this.yylloc.last_column
65941 },
65942 yytext: this.yytext,
65943 match: this.match,
65944 matches: this.matches,
65945 matched: this.matched,
65946 yyleng: this.yyleng,
65947 offset: this.offset,
65948 _more: this._more,
65949 _input: this._input,
65950 yy: this.yy,
65951 conditionStack: this.conditionStack.slice(0),
65952 done: this.done
65953 };
65954 if (this.options.ranges) {
65955 backup.yylloc.range = this.yylloc.range.slice(0);
65956 }
65957 }
65958
65959 lines = match[0].match(/(?:\r\n?|\n).*/g);
65960 if (lines) {
65961 this.yylineno += lines.length;
65962 }
65963 this.yylloc = {
65964 first_line: this.yylloc.last_line,
65965 last_line: this.yylineno + 1,
65966 first_column: this.yylloc.last_column,
65967 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
65968 };
65969 this.yytext += match[0];
65970 this.match += match[0];
65971 this.matches = match;
65972 this.yyleng = this.yytext.length;
65973 if (this.options.ranges) {
65974 this.yylloc.range = [this.offset, this.offset += this.yyleng];
65975 }
65976 this._more = false;
65977 this._backtrack = false;
65978 this._input = this._input.slice(match[0].length);
65979 this.matched += match[0];
65980 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
65981 if (this.done && this._input) {
65982 this.done = false;
65983 }
65984 if (token) {
65985 return token;
65986 } else if (this._backtrack) {
65987 // recover context
65988 for (var k in backup) {
65989 this[k] = backup[k];
65990 }
65991 return false; // rule action called reject() implying the next rule should be tested instead.
65992 }
65993 return false;
65994 },
65995
65996 // return next match in input
65997 next: function next() {
65998 if (this.done) {
65999 return this.EOF;
66000 }
66001 if (!this._input) {
66002 this.done = true;
66003 }
66004
66005 var token, match, tempMatch, index;
66006 if (!this._more) {
66007 this.yytext = '';
66008 this.match = '';
66009 }
66010 var rules = this._currentRules();
66011 for (var i = 0; i < rules.length; i++) {
66012 tempMatch = this._input.match(this.rules[rules[i]]);
66013 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
66014 match = tempMatch;
66015 index = i;
66016 if (this.options.backtrack_lexer) {
66017 token = this.test_match(tempMatch, rules[i]);
66018 if (token !== false) {
66019 return token;
66020 } else if (this._backtrack) {
66021 match = false;
66022 continue; // rule action called reject() implying a rule MISmatch.
66023 } else {
66024 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
66025 return false;
66026 }
66027 } else if (!this.options.flex) {
66028 break;
66029 }
66030 }
66031 }
66032 if (match) {
66033 token = this.test_match(match, rules[index]);
66034 if (token !== false) {
66035 return token;
66036 }
66037 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
66038 return false;
66039 }
66040 if (this._input === "") {
66041 return this.EOF;
66042 } else {
66043 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
66044 text: "",
66045 token: null,
66046 line: this.yylineno
66047 });
66048 }
66049 },
66050
66051 // return next match that has a token
66052 lex: function lex() {
66053 var r = this.next();
66054 if (r) {
66055 return r;
66056 } else {
66057 return this.lex();
66058 }
66059 },
66060
66061 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
66062 begin: function begin(condition) {
66063 this.conditionStack.push(condition);
66064 },
66065
66066 // pop the previously active lexer condition state off the condition stack
66067 popState: function popState() {
66068 var n = this.conditionStack.length - 1;
66069 if (n > 0) {
66070 return this.conditionStack.pop();
66071 } else {
66072 return this.conditionStack[0];
66073 }
66074 },
66075
66076 // produce the lexer rule set which is active for the currently active lexer condition state
66077 _currentRules: function _currentRules() {
66078 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
66079 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
66080 } else {
66081 return this.conditions["INITIAL"].rules;
66082 }
66083 },
66084
66085 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
66086 topState: function topState(n) {
66087 n = this.conditionStack.length - 1 - Math.abs(n || 0);
66088 if (n >= 0) {
66089 return this.conditionStack[n];
66090 } else {
66091 return "INITIAL";
66092 }
66093 },
66094
66095 // alias for begin(condition)
66096 pushState: function pushState(condition) {
66097 this.begin(condition);
66098 },
66099
66100 // return the number of states currently on the stack
66101 stateStackSize: function stateStackSize() {
66102 return this.conditionStack.length;
66103 },
66104 options: {},
66105 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
66106 var YYSTATE = YY_START;
66107 switch ($avoiding_name_collisions) {
66108 case 0:
66109 /* do nothing */
66110 break;
66111 case 1:
66112 this.begin("string");
66113 break;
66114 case 2:
66115 this.popState();
66116 break;
66117 case 3:
66118 return "STR";
66119 break;
66120 case 4:
66121 return 71;
66122 break;
66123 case 5:
66124 return 78;
66125 break;
66126 case 6:
66127 return 72;
66128 break;
66129 case 7:
66130 return 82;
66131 break;
66132 case 8:
66133 return 73;
66134 break;
66135 case 9:
66136 return 74;
66137 break;
66138 case 10:
66139 return 75;
66140 break;
66141 case 11:
66142 return 12;
66143 break;
66144 case 12:
66145 return 30;
66146 break;
66147 case 13:
66148 return 32;
66149 break;
66150 case 14:
66151 return 13;
66152 break;
66153 case 15:
66154 return 13;
66155 break;
66156 case 16:
66157 return 13;
66158 break;
66159 case 17:
66160 return 13;
66161 break;
66162 case 18:
66163 return 13;
66164 break;
66165 case 19:
66166 return 13;
66167 break;
66168 case 20:
66169 return 81;
66170 break;
66171 case 21:
66172 return 91;
66173 break;
66174 case 22:
66175 return 89;
66176 break;
66177 case 23:
66178 return 8;
66179 break;
66180 case 24:
66181 return 86;
66182 break;
66183 case 25:
66184 return 98;
66185 break;
66186 case 26:
66187 return 16;
66188 break;
66189 case 27:
66190 return 15;
66191 break;
66192 case 28:
66193 return 17;
66194 break;
66195 case 29:
66196 return 18;
66197 break;
66198 case 30:
66199 return 53;
66200 break;
66201 case 31:
66202 return 51;
66203 break;
66204 case 32:
66205 return 52;
66206 break;
66207 case 33:
66208 return 54;
66209 break;
66210 case 34:
66211 return 58;
66212 break;
66213 case 35:
66214 return 56;
66215 break;
66216 case 36:
66217 return 57;
66218 break;
66219 case 37:
66220 return 59;
66221 break;
66222 case 38:
66223 return 58;
66224 break;
66225 case 39:
66226 return 56;
66227 break;
66228 case 40:
66229 return 57;
66230 break;
66231 case 41:
66232 return 59;
66233 break;
66234 case 42:
66235 return 63;
66236 break;
66237 case 43:
66238 return 61;
66239 break;
66240 case 44:
66241 return 62;
66242 break;
66243 case 45:
66244 return 64;
66245 break;
66246 case 46:
66247 return 50;
66248 break;
66249 case 47:
66250 return 55;
66251 break;
66252 case 48:
66253 return 60;
66254 break;
66255 case 49:
66256 return 40;
66257 break;
66258 case 50:
66259 return 41;
66260 break;
66261 case 51:
66262 return 46;
66263 break;
66264 case 52:
66265 return 92;
66266 break;
66267 case 53:
66268 return 96;
66269 break;
66270 case 54:
66271 return 84;
66272 break;
66273 case 55:
66274 return 97;
66275 break;
66276 case 56:
66277 return 97;
66278 break;
66279 case 57:
66280 return 88;
66281 break;
66282 case 58:
66283 return 94;
66284 break;
66285 case 59:
66286 return 95;
66287 break;
66288 case 60:
66289 return 65;
66290 break;
66291 case 61:
66292 return 38;
66293 break;
66294 case 62:
66295 return 39;
66296 break;
66297 case 63:
66298 return 36;
66299 break;
66300 case 64:
66301 return 37;
66302 break;
66303 case 65:
66304 return 42;
66305 break;
66306 case 66:
66307 return 43;
66308 break;
66309 case 67:
66310 return 101;
66311 break;
66312 case 68:
66313 return 9;
66314 break;
66315 case 69:
66316 return 10;
66317 break;
66318 case 70:
66319 return 11;
66320 break;
66321 }
66322 },
66323 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]+)/, /^(?:#)/, /^(?::)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:v\b)/, /^(?:\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*==[x]\s*)/, /^(?:\s*==>\s*)/, /^(?:\s*==[o]\s*)/, /^(?:\s*==[\=]\s*)/, /^(?:\s*--\s*)/, /^(?:\s*-\.\s*)/, /^(?:\s*==\s*)/, /^(?:\(-)/, /^(?:-\))/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:[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)/, /^(?:$)/],
66324 conditions: { "string": { "rules": [2, 3], "inclusive": false }, "INITIAL": { "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], "inclusive": true } }
66325 };
66326 return lexer;
66327 }();
66328 parser.lexer = lexer;
66329 function Parser() {
66330 this.yy = {};
66331 }
66332 Parser.prototype = parser;parser.Parser = Parser;
66333 return new Parser();
66334}();
66335
66336if (true) {
66337 exports.parser = parser;
66338 exports.Parser = parser.Parser;
66339 exports.parse = function () {
66340 return parser.parse.apply(parser, arguments);
66341 };
66342 exports.main = function commonjsMain(args) {
66343 if (!args[1]) {
66344 console.log('Usage: ' + args[0] + ' FILE');
66345 process.exit(1);
66346 }
66347 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");
66348 return exports.parser.parse(source);
66349 };
66350 if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) {
66351 exports.main(process.argv.slice(1));
66352 }
66353}
66354/* 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)))
66355
66356/***/ }),
66357
66358/***/ "./src/diagrams/gantt/ganttDb.js":
66359/*!***************************************!*\
66360 !*** ./src/diagrams/gantt/ganttDb.js ***!
66361 \***************************************/
66362/*! no static exports found */
66363/***/ (function(module, exports, __webpack_require__) {
66364
66365"use strict";
66366
66367
66368Object.defineProperty(exports, "__esModule", {
66369 value: true
66370});
66371exports.addTaskOrg = exports.findTaskById = exports.addTask = exports.getTasks = exports.addSection = exports.getTitle = exports.setTitle = exports.setDateFormat = exports.getAxisFormat = exports.setAxisFormat = exports.clear = undefined;
66372
66373var _moment = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js");
66374
66375var _moment2 = _interopRequireDefault(_moment);
66376
66377var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
66378
66379function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
66380
66381var dateFormat = '';
66382var axisFormat = '';
66383var title = '';
66384var sections = [];
66385var tasks = [];
66386var currentSection = '';
66387
66388var clear = exports.clear = function clear() {
66389 sections = [];
66390 tasks = [];
66391 currentSection = '';
66392 title = '';
66393 taskCnt = 0;
66394 lastTask = undefined;
66395 lastTaskID = undefined;
66396 rawTasks = [];
66397};
66398
66399var setAxisFormat = exports.setAxisFormat = function setAxisFormat(txt) {
66400 axisFormat = txt;
66401};
66402
66403var getAxisFormat = exports.getAxisFormat = function getAxisFormat() {
66404 return axisFormat;
66405};
66406
66407var setDateFormat = exports.setDateFormat = function setDateFormat(txt) {
66408 dateFormat = txt;
66409};
66410
66411var setTitle = exports.setTitle = function setTitle(txt) {
66412 title = txt;
66413};
66414
66415var getTitle = exports.getTitle = function getTitle() {
66416 return title;
66417};
66418
66419var addSection = exports.addSection = function addSection(txt) {
66420 currentSection = txt;
66421 sections.push(txt);
66422};
66423
66424var getTasks = exports.getTasks = function getTasks() {
66425 var allItemsPricessed = compileTasks();
66426 var maxDepth = 10;
66427 var iterationCount = 0;
66428 while (!allItemsPricessed && iterationCount < maxDepth) {
66429 allItemsPricessed = compileTasks();
66430 iterationCount++;
66431 }
66432
66433 tasks = rawTasks;
66434
66435 return tasks;
66436};
66437
66438var getStartDate = function getStartDate(prevTime, dateFormat, str) {
66439 str = str.trim();
66440
66441 // Test for after
66442 var re = /^after\s+([\d\w-]+)/;
66443 var afterStatement = re.exec(str.trim());
66444
66445 if (afterStatement !== null) {
66446 var task = findTaskById(afterStatement[1]);
66447
66448 if (typeof task === 'undefined') {
66449 var dt = new Date();
66450 dt.setHours(0, 0, 0, 0);
66451 return dt;
66452 }
66453 return task.endTime;
66454 }
66455
66456 // Check for actual date set
66457 if ((0, _moment2.default)(str, dateFormat.trim(), true).isValid()) {
66458 return (0, _moment2.default)(str, dateFormat.trim(), true).toDate();
66459 } else {
66460 _logger.logger.debug('Invalid date:' + str);
66461 _logger.logger.debug('With date format:' + dateFormat.trim());
66462 }
66463
66464 // Default date - now
66465 return new Date();
66466};
66467
66468var getEndDate = function getEndDate(prevTime, dateFormat, str) {
66469 str = str.trim();
66470
66471 // Check for actual date
66472 if ((0, _moment2.default)(str, dateFormat.trim(), true).isValid()) {
66473 return (0, _moment2.default)(str, dateFormat.trim()).toDate();
66474 }
66475
66476 var d = (0, _moment2.default)(prevTime);
66477 // Check for length
66478 var re = /^([\d]+)([wdhms])/;
66479 var durationStatement = re.exec(str.trim());
66480
66481 if (durationStatement !== null) {
66482 switch (durationStatement[2]) {
66483 case 's':
66484 d.add(durationStatement[1], 'seconds');
66485 break;
66486 case 'm':
66487 d.add(durationStatement[1], 'minutes');
66488 break;
66489 case 'h':
66490 d.add(durationStatement[1], 'hours');
66491 break;
66492 case 'd':
66493 d.add(durationStatement[1], 'days');
66494 break;
66495 case 'w':
66496 d.add(durationStatement[1], 'weeks');
66497 break;
66498 }
66499 return d.toDate();
66500 }
66501 // Default date - now
66502 return d.toDate();
66503};
66504
66505var taskCnt = 0;
66506var parseId = function parseId(idStr) {
66507 if (typeof idStr === 'undefined') {
66508 taskCnt = taskCnt + 1;
66509 return 'task' + taskCnt;
66510 }
66511 return idStr;
66512};
66513// id, startDate, endDate
66514// id, startDate, length
66515// id, after x, endDate
66516// id, after x, length
66517// startDate, endDate
66518// startDate, length
66519// after x, endDate
66520// after x, length
66521// endDate
66522// length
66523
66524var compileData = function compileData(prevTask, dataStr) {
66525 var ds = void 0;
66526
66527 if (dataStr.substr(0, 1) === ':') {
66528 ds = dataStr.substr(1, dataStr.length);
66529 } else {
66530 ds = dataStr;
66531 }
66532
66533 var data = ds.split(',');
66534
66535 var task = {};
66536
66537 // Get tags like active, done cand crit
66538 var matchFound = true;
66539 while (matchFound) {
66540 matchFound = false;
66541 if (data[0].match(/^\s*active\s*$/)) {
66542 task.active = true;
66543 data.shift(1);
66544 matchFound = true;
66545 }
66546 if (data[0].match(/^\s*done\s*$/)) {
66547 task.done = true;
66548 data.shift(1);
66549 matchFound = true;
66550 }
66551 if (data[0].match(/^\s*crit\s*$/)) {
66552 task.crit = true;
66553 data.shift(1);
66554 matchFound = true;
66555 }
66556 }
66557 for (var i = 0; i < data.length; i++) {
66558 data[i] = data[i].trim();
66559 }
66560
66561 switch (data.length) {
66562 case 1:
66563 task.id = parseId();
66564 task.startTime = prevTask.endTime;
66565 task.endTime = getEndDate(task.startTime, dateFormat, data[0]);
66566 break;
66567 case 2:
66568 task.id = parseId();
66569 task.startTime = getStartDate(undefined, dateFormat, data[0]);
66570 task.endTime = getEndDate(task.startTime, dateFormat, data[1]);
66571 break;
66572 case 3:
66573 task.id = parseId(data[0]);
66574 task.startTime = getStartDate(undefined, dateFormat, data[1]);
66575 task.endTime = getEndDate(task.startTime, dateFormat, data[2]);
66576 break;
66577 default:
66578 }
66579
66580 return task;
66581};
66582
66583var parseData = function parseData(prevTaskId, dataStr) {
66584 var ds = void 0;
66585 if (dataStr.substr(0, 1) === ':') {
66586 ds = dataStr.substr(1, dataStr.length);
66587 } else {
66588 ds = dataStr;
66589 }
66590
66591 var data = ds.split(',');
66592
66593 var task = {};
66594
66595 // Get tags like active, done cand crit
66596 var matchFound = true;
66597 while (matchFound) {
66598 matchFound = false;
66599 if (data[0].match(/^\s*active\s*$/)) {
66600 task.active = true;
66601 data.shift(1);
66602 matchFound = true;
66603 }
66604 if (data[0].match(/^\s*done\s*$/)) {
66605 task.done = true;
66606 data.shift(1);
66607 matchFound = true;
66608 }
66609 if (data[0].match(/^\s*crit\s*$/)) {
66610 task.crit = true;
66611 data.shift(1);
66612 matchFound = true;
66613 }
66614 }
66615 for (var i = 0; i < data.length; i++) {
66616 data[i] = data[i].trim();
66617 }
66618
66619 switch (data.length) {
66620 case 1:
66621 task.id = parseId();
66622 task.startTime = { type: 'prevTaskEnd', id: prevTaskId };
66623 task.endTime = { data: data[0] };
66624 break;
66625 case 2:
66626 task.id = parseId();
66627 task.startTime = { type: 'getStartDate', startData: data[0] };
66628 task.endTime = { data: data[1] };
66629 break;
66630 case 3:
66631 task.id = parseId(data[0]);
66632 task.startTime = { type: 'getStartDate', startData: data[1] };
66633 task.endTime = { data: data[2] };
66634 break;
66635 default:
66636 }
66637
66638 return task;
66639};
66640
66641var lastTask = void 0;
66642var lastTaskID = void 0;
66643var rawTasks = [];
66644var taskDb = {};
66645var addTask = exports.addTask = function addTask(descr, data) {
66646 var rawTask = {
66647 section: currentSection,
66648 type: currentSection,
66649 processed: false,
66650 raw: { data: data },
66651 task: descr
66652 };
66653 var taskInfo = parseData(lastTaskID, data);
66654 rawTask.raw.startTime = taskInfo.startTime;
66655 rawTask.raw.endTime = taskInfo.endTime;
66656 rawTask.id = taskInfo.id;
66657 rawTask.prevTaskId = lastTaskID;
66658 rawTask.active = taskInfo.active;
66659 rawTask.done = taskInfo.done;
66660 rawTask.crit = taskInfo.crit;
66661
66662 var pos = rawTasks.push(rawTask);
66663
66664 lastTaskID = rawTask.id;
66665 // Store cross ref
66666 taskDb[rawTask.id] = pos - 1;
66667};
66668
66669var findTaskById = exports.findTaskById = function findTaskById(id) {
66670 var pos = taskDb[id];
66671 return rawTasks[pos];
66672};
66673
66674var addTaskOrg = exports.addTaskOrg = function addTaskOrg(descr, data) {
66675 var newTask = {
66676 section: currentSection,
66677 type: currentSection,
66678 description: descr,
66679 task: descr
66680 };
66681 var taskInfo = compileData(lastTask, data);
66682 newTask.startTime = taskInfo.startTime;
66683 newTask.endTime = taskInfo.endTime;
66684 newTask.id = taskInfo.id;
66685 newTask.active = taskInfo.active;
66686 newTask.done = taskInfo.done;
66687 newTask.crit = taskInfo.crit;
66688 lastTask = newTask;
66689 tasks.push(newTask);
66690};
66691
66692var compileTasks = function compileTasks() {
66693 var compileTask = function compileTask(pos) {
66694 var task = rawTasks[pos];
66695 var startTime = '';
66696 switch (rawTasks[pos].raw.startTime.type) {
66697 case 'prevTaskEnd':
66698 var prevTask = findTaskById(task.prevTaskId);
66699 task.startTime = prevTask.endTime;
66700 break;
66701 case 'getStartDate':
66702 startTime = getStartDate(undefined, dateFormat, rawTasks[pos].raw.startTime.startData);
66703 if (startTime) {
66704 rawTasks[pos].startTime = startTime;
66705 }
66706 break;
66707 }
66708
66709 if (rawTasks[pos].startTime) {
66710 rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data);
66711 if (rawTasks[pos].endTime) {
66712 rawTasks[pos].processed = true;
66713 }
66714 }
66715
66716 return rawTasks[pos].processed;
66717 };
66718
66719 var allProcessed = true;
66720 for (var i = 0; i < rawTasks.length; i++) {
66721 compileTask(i);
66722
66723 allProcessed = allProcessed && rawTasks[i].processed;
66724 }
66725 return allProcessed;
66726};
66727
66728exports.default = {
66729 clear: clear,
66730 setDateFormat: setDateFormat,
66731 setAxisFormat: setAxisFormat,
66732 getAxisFormat: getAxisFormat,
66733 setTitle: setTitle,
66734 getTitle: getTitle,
66735 addSection: addSection,
66736 getTasks: getTasks,
66737 addTask: addTask,
66738 findTaskById: findTaskById,
66739 addTaskOrg: addTaskOrg
66740};
66741
66742/***/ }),
66743
66744/***/ "./src/diagrams/gantt/ganttRenderer.js":
66745/*!*********************************************!*\
66746 !*** ./src/diagrams/gantt/ganttRenderer.js ***!
66747 \*********************************************/
66748/*! no static exports found */
66749/***/ (function(module, exports, __webpack_require__) {
66750
66751"use strict";
66752
66753
66754Object.defineProperty(exports, "__esModule", {
66755 value: true
66756});
66757exports.draw = exports.setConf = undefined;
66758
66759var _d = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
66760
66761var d3 = _interopRequireWildcard(_d);
66762
66763var _gantt = __webpack_require__(/*! ./parser/gantt */ "./src/diagrams/gantt/parser/gantt.js");
66764
66765var _ganttDb = __webpack_require__(/*! ./ganttDb */ "./src/diagrams/gantt/ganttDb.js");
66766
66767var _ganttDb2 = _interopRequireDefault(_ganttDb);
66768
66769function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
66770
66771function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
66772
66773_gantt.parser.yy = _ganttDb2.default;
66774
66775var conf = {
66776 titleTopMargin: 25,
66777 barHeight: 20,
66778 barGap: 4,
66779 topPadding: 50,
66780 rightPadding: 75,
66781 leftPadding: 75,
66782 gridLineStartPadding: 35,
66783 fontSize: 11,
66784 fontFamily: '"Open-Sans", "sans-serif"'
66785};
66786var setConf = exports.setConf = function setConf(cnf) {
66787 var keys = Object.keys(cnf);
66788
66789 keys.forEach(function (key) {
66790 conf[key] = cnf[key];
66791 });
66792};
66793var w = void 0;
66794var draw = exports.draw = function draw(text, id) {
66795 _gantt.parser.yy.clear();
66796 _gantt.parser.parse(text);
66797
66798 var elem = document.getElementById(id);
66799 w = elem.parentElement.offsetWidth;
66800
66801 if (typeof w === 'undefined') {
66802 w = 1200;
66803 }
66804
66805 if (typeof conf.useWidth !== 'undefined') {
66806 w = conf.useWidth;
66807 }
66808
66809 var taskArray = _gantt.parser.yy.getTasks();
66810
66811 // Set height based on number of tasks
66812 var h = taskArray.length * (conf.barHeight + conf.barGap) + 2 * conf.topPadding;
66813
66814 elem.setAttribute('height', '100%');
66815 // Set viewBox
66816 elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h);
66817 var svg = d3.select('[id="' + id + '"]');
66818
66819 // Set timescale
66820 var timeScale = d3.scaleTime().domain([d3.min(taskArray, function (d) {
66821 return d.startTime;
66822 }), d3.max(taskArray, function (d) {
66823 return d.endTime;
66824 })]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
66825
66826 var categories = [];
66827
66828 for (var i = 0; i < taskArray.length; i++) {
66829 categories.push(taskArray[i].type);
66830 }
66831
66832 var catsUnfiltered = categories; // for vert labels
66833
66834 categories = checkUnique(categories);
66835
66836 makeGant(taskArray, w, h);
66837 if (typeof conf.useWidth !== 'undefined') {
66838 elem.setAttribute('width', w);
66839 }
66840
66841 svg.append('text').text(_gantt.parser.yy.getTitle()).attr('x', w / 2).attr('y', conf.titleTopMargin).attr('class', 'titleText');
66842
66843 function makeGant(tasks, pageWidth, pageHeight) {
66844 var barHeight = conf.barHeight;
66845 var gap = barHeight + conf.barGap;
66846 var topPadding = conf.topPadding;
66847 var leftPadding = conf.leftPadding;
66848
66849 var colorScale = d3.scaleLinear().domain([0, categories.length]).range(['#00B9FA', '#F95002']).interpolate(d3.interpolateHcl);
66850
66851 makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
66852 drawRects(tasks, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth, pageHeight);
66853 vertLabels(gap, topPadding, leftPadding, barHeight, colorScale);
66854 drawToday(leftPadding, topPadding, pageWidth, pageHeight);
66855 }
66856
66857 function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w, h) {
66858 svg.append('g').selectAll('rect').data(theArray).enter().append('rect').attr('x', 0).attr('y', function (d, i) {
66859 return i * theGap + theTopPad - 2;
66860 }).attr('width', function () {
66861 return w - conf.rightPadding / 2;
66862 }).attr('height', theGap).attr('class', function (d) {
66863 for (var _i = 0; _i < categories.length; _i++) {
66864 if (d.type === categories[_i]) {
66865 return 'section section' + _i % conf.numberSectionStyles;
66866 }
66867 }
66868 return 'section section0';
66869 });
66870
66871 var rectangles = svg.append('g').selectAll('rect').data(theArray).enter();
66872
66873 rectangles.append('rect').attr('rx', 3).attr('ry', 3).attr('x', function (d) {
66874 return timeScale(d.startTime) + theSidePad;
66875 }).attr('y', function (d, i) {
66876 return i * theGap + theTopPad;
66877 }).attr('width', function (d) {
66878 return timeScale(d.endTime) - timeScale(d.startTime);
66879 }).attr('height', theBarHeight).attr('class', function (d) {
66880 var res = 'task ';
66881
66882 var secNum = 0;
66883 for (var _i2 = 0; _i2 < categories.length; _i2++) {
66884 if (d.type === categories[_i2]) {
66885 secNum = _i2 % conf.numberSectionStyles;
66886 }
66887 }
66888
66889 if (d.active) {
66890 if (d.crit) {
66891 return res + ' activeCrit' + secNum;
66892 } else {
66893 return res + ' active' + secNum;
66894 }
66895 }
66896
66897 if (d.done) {
66898 if (d.crit) {
66899 return res + ' doneCrit' + secNum;
66900 } else {
66901 return res + ' done' + secNum;
66902 }
66903 }
66904
66905 if (d.crit) {
66906 return res + ' crit' + secNum;
66907 }
66908
66909 return res + ' task' + secNum;
66910 });
66911
66912 rectangles.append('text').text(function (d) {
66913 return d.task;
66914 }).attr('font-size', conf.fontSize).attr('x', function (d) {
66915 var startX = timeScale(d.startTime);
66916 var endX = timeScale(d.endTime);
66917 var textWidth = this.getBBox().width;
66918
66919 // Check id text width > width of rectangle
66920 if (textWidth > endX - startX) {
66921 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
66922 return startX + theSidePad - 5;
66923 } else {
66924 return endX + theSidePad + 5;
66925 }
66926 } else {
66927 return (endX - startX) / 2 + startX + theSidePad;
66928 }
66929 }).attr('y', function (d, i) {
66930 return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
66931 }).attr('text-height', theBarHeight).attr('class', function (d) {
66932 var startX = timeScale(d.startTime);
66933 var endX = timeScale(d.endTime);
66934 var textWidth = this.getBBox().width;
66935 var secNum = 0;
66936 for (var _i3 = 0; _i3 < categories.length; _i3++) {
66937 if (d.type === categories[_i3]) {
66938 secNum = _i3 % conf.numberSectionStyles;
66939 }
66940 }
66941
66942 var taskType = '';
66943 if (d.active) {
66944 if (d.crit) {
66945 taskType = 'activeCritText' + secNum;
66946 } else {
66947 taskType = 'activeText' + secNum;
66948 }
66949 }
66950
66951 if (d.done) {
66952 if (d.crit) {
66953 taskType = taskType + ' doneCritText' + secNum;
66954 } else {
66955 taskType = taskType + ' doneText' + secNum;
66956 }
66957 } else {
66958 if (d.crit) {
66959 taskType = taskType + ' critText' + secNum;
66960 }
66961 }
66962
66963 // Check id text width > width of rectangle
66964 if (textWidth > endX - startX) {
66965 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
66966 return 'taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType;
66967 } else {
66968 return 'taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType;
66969 }
66970 } else {
66971 return 'taskText taskText' + secNum + ' ' + taskType;
66972 }
66973 });
66974 }
66975
66976 function makeGrid(theSidePad, theTopPad, w, h) {
66977 var xAxis = d3.axisBottom(timeScale).tickSize(-h + theTopPad + conf.gridLineStartPadding).tickFormat(d3.timeFormat(_gantt.parser.yy.getAxisFormat() || conf.axisFormat || '%Y-%m-%d'));
66978
66979 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');
66980 }
66981
66982 function vertLabels(theGap, theTopPad) {
66983 var numOccurances = [];
66984 var prevGap = 0;
66985
66986 for (var _i4 = 0; _i4 < categories.length; _i4++) {
66987 numOccurances[_i4] = [categories[_i4], getCount(categories[_i4], catsUnfiltered)];
66988 }
66989
66990 svg.append('g') // without doing this, impossible to put grid lines behind text
66991 .selectAll('text').data(numOccurances).enter().append('text').text(function (d) {
66992 return d[0];
66993 }).attr('x', 10).attr('y', function (d, i) {
66994 if (i > 0) {
66995 for (var j = 0; j < i; j++) {
66996 prevGap += numOccurances[i - 1][1];
66997 return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
66998 }
66999 } else {
67000 return d[1] * theGap / 2 + theTopPad;
67001 }
67002 }).attr('class', function (d) {
67003 for (var _i5 = 0; _i5 < categories.length; _i5++) {
67004 if (d[0] === categories[_i5]) {
67005 return 'sectionTitle sectionTitle' + _i5 % conf.numberSectionStyles;
67006 }
67007 }
67008 return 'sectionTitle';
67009 });
67010 }
67011
67012 function drawToday(theSidePad, theTopPad, w, h) {
67013 var todayG = svg.append('g').attr('class', 'today');
67014
67015 var today = new Date();
67016
67017 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');
67018 }
67019
67020 // from this stackexchange question: http://stackoverflow.com/questions/1890203/unique-for-arrays-in-javascript
67021 function checkUnique(arr) {
67022 var hash = {};
67023 var result = [];
67024 for (var _i6 = 0, l = arr.length; _i6 < l; ++_i6) {
67025 if (!hash.hasOwnProperty(arr[_i6])) {
67026 // it works with objects! in FF, at least
67027 hash[arr[_i6]] = true;
67028 result.push(arr[_i6]);
67029 }
67030 }
67031 return result;
67032 }
67033
67034 // from this stackexchange question: http://stackoverflow.com/questions/14227981/count-how-many-strings-in-an-array-have-duplicates-in-the-same-array
67035 function getCounts(arr) {
67036 var i = arr.length; // const to loop over
67037 var obj = {}; // obj to store results
67038 while (i) {
67039 obj[arr[--i]] = (obj[arr[i]] || 0) + 1; // count occurrences
67040 }
67041 return obj;
67042 }
67043
67044 // get specific from everything
67045 function getCount(word, arr) {
67046 return getCounts(arr)[word] || 0;
67047 }
67048};
67049
67050exports.default = {
67051 setConf: setConf,
67052 draw: draw
67053};
67054
67055/***/ }),
67056
67057/***/ "./src/diagrams/gantt/parser/gantt.js":
67058/*!********************************************!*\
67059 !*** ./src/diagrams/gantt/parser/gantt.js ***!
67060 \********************************************/
67061/*! no static exports found */
67062/***/ (function(module, exports, __webpack_require__) {
67063
67064"use strict";
67065/* WEBPACK VAR INJECTION */(function(process, module) {
67066
67067/* parser generated by jison 0.4.18 */
67068/*
67069 Returns a Parser object of the following structure:
67070
67071 Parser: {
67072 yy: {}
67073 }
67074
67075 Parser.prototype: {
67076 yy: {},
67077 trace: function(),
67078 symbols_: {associative list: name ==> number},
67079 terminals_: {associative list: number ==> name},
67080 productions_: [...],
67081 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
67082 table: [...],
67083 defaultActions: {...},
67084 parseError: function(str, hash),
67085 parse: function(input),
67086
67087 lexer: {
67088 EOF: 1,
67089 parseError: function(str, hash),
67090 setInput: function(input),
67091 input: function(),
67092 unput: function(str),
67093 more: function(),
67094 less: function(n),
67095 pastInput: function(),
67096 upcomingInput: function(),
67097 showPosition: function(),
67098 test_match: function(regex_match_array, rule_index),
67099 next: function(),
67100 lex: function(),
67101 begin: function(condition),
67102 popState: function(),
67103 _currentRules: function(),
67104 topState: function(),
67105 pushState: function(condition),
67106
67107 options: {
67108 ranges: boolean (optional: true ==> token location info will include a .range[] member)
67109 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
67110 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)
67111 },
67112
67113 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
67114 rules: [...],
67115 conditions: {associative list: name ==> set},
67116 }
67117 }
67118
67119
67120 token location info (@$, _$, etc.): {
67121 first_line: n,
67122 last_line: n,
67123 first_column: n,
67124 last_column: n,
67125 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
67126 }
67127
67128
67129 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
67130 text: (matched text)
67131 token: (the produced terminal token, if any)
67132 line: (yylineno)
67133 }
67134 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
67135 loc: (yylloc)
67136 expected: (string describing the set of expected tokens)
67137 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
67138 }
67139*/
67140var parser = function () {
67141 var o = function o(k, v, _o, l) {
67142 for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o;
67143 },
67144 $V0 = [6, 8, 10, 11, 12, 13, 14, 15],
67145 $V1 = [1, 9],
67146 $V2 = [1, 10],
67147 $V3 = [1, 11],
67148 $V4 = [1, 12],
67149 $V5 = [1, 13];
67150 var parser = { trace: function trace() {},
67151 yy: {},
67152 symbols_: { "error": 2, "start": 3, "gantt": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NL": 10, "dateFormat": 11, "axisFormat": 12, "title": 13, "section": 14, "taskTxt": 15, "taskData": 16, "$accept": 0, "$end": 1 },
67153 terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 11: "dateFormat", 12: "axisFormat", 13: "title", 14: "section", 15: "taskTxt", 16: "taskData" },
67154 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, 2]],
67155 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
67156 /* this == yyval */
67157
67158 var $0 = $$.length - 1;
67159 switch (yystate) {
67160 case 1:
67161 return $$[$0 - 1];
67162 break;
67163 case 2:
67164 this.$ = [];
67165 break;
67166 case 3:
67167 $$[$0 - 1].push($$[$0]);this.$ = $$[$0 - 1];
67168 break;
67169 case 4:case 5:
67170 this.$ = $$[$0];
67171 break;
67172 case 6:case 7:
67173 this.$ = [];
67174 break;
67175 case 8:
67176 yy.setDateFormat($$[$0].substr(11));this.$ = $$[$0].substr(11);
67177 break;
67178 case 9:
67179 yy.setAxisFormat($$[$0].substr(11));this.$ = $$[$0].substr(11);
67180 break;
67181 case 10:
67182 yy.setTitle($$[$0].substr(6));this.$ = $$[$0].substr(6);
67183 break;
67184 case 11:
67185 yy.addSection($$[$0].substr(8));this.$ = $$[$0].substr(8);
67186 break;
67187 case 12:
67188 yy.addTask($$[$0 - 1], $$[$0]);this.$ = 'task';
67189 break;
67190 }
67191 },
67192 table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 13: $V3, 14: $V4, 15: $V5 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 14, 11: $V1, 12: $V2, 13: $V3, 14: $V4, 15: $V5 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), { 16: [1, 15] }, o($V0, [2, 4]), o($V0, [2, 12])],
67193 defaultActions: {},
67194 parseError: function parseError(str, hash) {
67195 if (hash.recoverable) {
67196 this.trace(str);
67197 } else {
67198 var error = new Error(str);
67199 error.hash = hash;
67200 throw error;
67201 }
67202 },
67203 parse: function parse(input) {
67204 var self = this,
67205 stack = [0],
67206 tstack = [],
67207 vstack = [null],
67208 lstack = [],
67209 table = this.table,
67210 yytext = '',
67211 yylineno = 0,
67212 yyleng = 0,
67213 recovering = 0,
67214 TERROR = 2,
67215 EOF = 1;
67216 var args = lstack.slice.call(arguments, 1);
67217 var lexer = Object.create(this.lexer);
67218 var sharedState = { yy: {} };
67219 for (var k in this.yy) {
67220 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
67221 sharedState.yy[k] = this.yy[k];
67222 }
67223 }
67224 lexer.setInput(input, sharedState.yy);
67225 sharedState.yy.lexer = lexer;
67226 sharedState.yy.parser = this;
67227 if (typeof lexer.yylloc == 'undefined') {
67228 lexer.yylloc = {};
67229 }
67230 var yyloc = lexer.yylloc;
67231 lstack.push(yyloc);
67232 var ranges = lexer.options && lexer.options.ranges;
67233 if (typeof sharedState.yy.parseError === 'function') {
67234 this.parseError = sharedState.yy.parseError;
67235 } else {
67236 this.parseError = Object.getPrototypeOf(this).parseError;
67237 }
67238 function popStack(n) {
67239 stack.length = stack.length - 2 * n;
67240 vstack.length = vstack.length - n;
67241 lstack.length = lstack.length - n;
67242 }
67243 function lex() {
67244 var token;
67245 token = tstack.pop() || lexer.lex() || EOF;
67246 if (typeof token !== 'number') {
67247 if (token instanceof Array) {
67248 tstack = token;
67249 token = tstack.pop();
67250 }
67251 token = self.symbols_[token] || token;
67252 }
67253 return token;
67254 }
67255 var symbol,
67256 preErrorSymbol,
67257 state,
67258 action,
67259 a,
67260 r,
67261 yyval = {},
67262 p,
67263 len,
67264 newState,
67265 expected;
67266 while (true) {
67267 state = stack[stack.length - 1];
67268 if (this.defaultActions[state]) {
67269 action = this.defaultActions[state];
67270 } else {
67271 if (symbol === null || typeof symbol == 'undefined') {
67272 symbol = lex();
67273 }
67274 action = table[state] && table[state][symbol];
67275 }
67276 if (typeof action === 'undefined' || !action.length || !action[0]) {
67277 var errStr = '';
67278 expected = [];
67279 for (p in table[state]) {
67280 if (this.terminals_[p] && p > TERROR) {
67281 expected.push('\'' + this.terminals_[p] + '\'');
67282 }
67283 }
67284 if (lexer.showPosition) {
67285 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
67286 } else {
67287 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
67288 }
67289 this.parseError(errStr, {
67290 text: lexer.match,
67291 token: this.terminals_[symbol] || symbol,
67292 line: lexer.yylineno,
67293 loc: yyloc,
67294 expected: expected
67295 });
67296 }
67297 if (action[0] instanceof Array && action.length > 1) {
67298 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
67299 }
67300 switch (action[0]) {
67301 case 1:
67302 stack.push(symbol);
67303 vstack.push(lexer.yytext);
67304 lstack.push(lexer.yylloc);
67305 stack.push(action[1]);
67306 symbol = null;
67307 if (!preErrorSymbol) {
67308 yyleng = lexer.yyleng;
67309 yytext = lexer.yytext;
67310 yylineno = lexer.yylineno;
67311 yyloc = lexer.yylloc;
67312 if (recovering > 0) {
67313 recovering--;
67314 }
67315 } else {
67316 symbol = preErrorSymbol;
67317 preErrorSymbol = null;
67318 }
67319 break;
67320 case 2:
67321 len = this.productions_[action[1]][1];
67322 yyval.$ = vstack[vstack.length - len];
67323 yyval._$ = {
67324 first_line: lstack[lstack.length - (len || 1)].first_line,
67325 last_line: lstack[lstack.length - 1].last_line,
67326 first_column: lstack[lstack.length - (len || 1)].first_column,
67327 last_column: lstack[lstack.length - 1].last_column
67328 };
67329 if (ranges) {
67330 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
67331 }
67332 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
67333 if (typeof r !== 'undefined') {
67334 return r;
67335 }
67336 if (len) {
67337 stack = stack.slice(0, -1 * len * 2);
67338 vstack = vstack.slice(0, -1 * len);
67339 lstack = lstack.slice(0, -1 * len);
67340 }
67341 stack.push(this.productions_[action[1]][0]);
67342 vstack.push(yyval.$);
67343 lstack.push(yyval._$);
67344 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
67345 stack.push(newState);
67346 break;
67347 case 3:
67348 return true;
67349 }
67350 }
67351 return true;
67352 } };
67353
67354 /* generated by jison-lex 0.3.4 */
67355 var lexer = function () {
67356 var lexer = {
67357
67358 EOF: 1,
67359
67360 parseError: function parseError(str, hash) {
67361 if (this.yy.parser) {
67362 this.yy.parser.parseError(str, hash);
67363 } else {
67364 throw new Error(str);
67365 }
67366 },
67367
67368 // resets the lexer, sets new input
67369 setInput: function setInput(input, yy) {
67370 this.yy = yy || this.yy || {};
67371 this._input = input;
67372 this._more = this._backtrack = this.done = false;
67373 this.yylineno = this.yyleng = 0;
67374 this.yytext = this.matched = this.match = '';
67375 this.conditionStack = ['INITIAL'];
67376 this.yylloc = {
67377 first_line: 1,
67378 first_column: 0,
67379 last_line: 1,
67380 last_column: 0
67381 };
67382 if (this.options.ranges) {
67383 this.yylloc.range = [0, 0];
67384 }
67385 this.offset = 0;
67386 return this;
67387 },
67388
67389 // consumes and returns one char from the input
67390 input: function input() {
67391 var ch = this._input[0];
67392 this.yytext += ch;
67393 this.yyleng++;
67394 this.offset++;
67395 this.match += ch;
67396 this.matched += ch;
67397 var lines = ch.match(/(?:\r\n?|\n).*/g);
67398 if (lines) {
67399 this.yylineno++;
67400 this.yylloc.last_line++;
67401 } else {
67402 this.yylloc.last_column++;
67403 }
67404 if (this.options.ranges) {
67405 this.yylloc.range[1]++;
67406 }
67407
67408 this._input = this._input.slice(1);
67409 return ch;
67410 },
67411
67412 // unshifts one char (or a string) into the input
67413 unput: function unput(ch) {
67414 var len = ch.length;
67415 var lines = ch.split(/(?:\r\n?|\n)/g);
67416
67417 this._input = ch + this._input;
67418 this.yytext = this.yytext.substr(0, this.yytext.length - len);
67419 //this.yyleng -= len;
67420 this.offset -= len;
67421 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
67422 this.match = this.match.substr(0, this.match.length - 1);
67423 this.matched = this.matched.substr(0, this.matched.length - 1);
67424
67425 if (lines.length - 1) {
67426 this.yylineno -= lines.length - 1;
67427 }
67428 var r = this.yylloc.range;
67429
67430 this.yylloc = {
67431 first_line: this.yylloc.first_line,
67432 last_line: this.yylineno + 1,
67433 first_column: this.yylloc.first_column,
67434 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
67435 };
67436
67437 if (this.options.ranges) {
67438 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
67439 }
67440 this.yyleng = this.yytext.length;
67441 return this;
67442 },
67443
67444 // When called from action, caches matched text and appends it on next action
67445 more: function more() {
67446 this._more = true;
67447 return this;
67448 },
67449
67450 // 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.
67451 reject: function reject() {
67452 if (this.options.backtrack_lexer) {
67453 this._backtrack = true;
67454 } else {
67455 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(), {
67456 text: "",
67457 token: null,
67458 line: this.yylineno
67459 });
67460 }
67461 return this;
67462 },
67463
67464 // retain first n characters of the match
67465 less: function less(n) {
67466 this.unput(this.match.slice(n));
67467 },
67468
67469 // displays already matched input, i.e. for error messages
67470 pastInput: function pastInput() {
67471 var past = this.matched.substr(0, this.matched.length - this.match.length);
67472 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
67473 },
67474
67475 // displays upcoming input, i.e. for error messages
67476 upcomingInput: function upcomingInput() {
67477 var next = this.match;
67478 if (next.length < 20) {
67479 next += this._input.substr(0, 20 - next.length);
67480 }
67481 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
67482 },
67483
67484 // displays the character position where the lexing error occurred, i.e. for error messages
67485 showPosition: function showPosition() {
67486 var pre = this.pastInput();
67487 var c = new Array(pre.length + 1).join("-");
67488 return pre + this.upcomingInput() + "\n" + c + "^";
67489 },
67490
67491 // test the lexed token: return FALSE when not a match, otherwise return token
67492 test_match: function test_match(match, indexed_rule) {
67493 var token, lines, backup;
67494
67495 if (this.options.backtrack_lexer) {
67496 // save context
67497 backup = {
67498 yylineno: this.yylineno,
67499 yylloc: {
67500 first_line: this.yylloc.first_line,
67501 last_line: this.last_line,
67502 first_column: this.yylloc.first_column,
67503 last_column: this.yylloc.last_column
67504 },
67505 yytext: this.yytext,
67506 match: this.match,
67507 matches: this.matches,
67508 matched: this.matched,
67509 yyleng: this.yyleng,
67510 offset: this.offset,
67511 _more: this._more,
67512 _input: this._input,
67513 yy: this.yy,
67514 conditionStack: this.conditionStack.slice(0),
67515 done: this.done
67516 };
67517 if (this.options.ranges) {
67518 backup.yylloc.range = this.yylloc.range.slice(0);
67519 }
67520 }
67521
67522 lines = match[0].match(/(?:\r\n?|\n).*/g);
67523 if (lines) {
67524 this.yylineno += lines.length;
67525 }
67526 this.yylloc = {
67527 first_line: this.yylloc.last_line,
67528 last_line: this.yylineno + 1,
67529 first_column: this.yylloc.last_column,
67530 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
67531 };
67532 this.yytext += match[0];
67533 this.match += match[0];
67534 this.matches = match;
67535 this.yyleng = this.yytext.length;
67536 if (this.options.ranges) {
67537 this.yylloc.range = [this.offset, this.offset += this.yyleng];
67538 }
67539 this._more = false;
67540 this._backtrack = false;
67541 this._input = this._input.slice(match[0].length);
67542 this.matched += match[0];
67543 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
67544 if (this.done && this._input) {
67545 this.done = false;
67546 }
67547 if (token) {
67548 return token;
67549 } else if (this._backtrack) {
67550 // recover context
67551 for (var k in backup) {
67552 this[k] = backup[k];
67553 }
67554 return false; // rule action called reject() implying the next rule should be tested instead.
67555 }
67556 return false;
67557 },
67558
67559 // return next match in input
67560 next: function next() {
67561 if (this.done) {
67562 return this.EOF;
67563 }
67564 if (!this._input) {
67565 this.done = true;
67566 }
67567
67568 var token, match, tempMatch, index;
67569 if (!this._more) {
67570 this.yytext = '';
67571 this.match = '';
67572 }
67573 var rules = this._currentRules();
67574 for (var i = 0; i < rules.length; i++) {
67575 tempMatch = this._input.match(this.rules[rules[i]]);
67576 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
67577 match = tempMatch;
67578 index = i;
67579 if (this.options.backtrack_lexer) {
67580 token = this.test_match(tempMatch, rules[i]);
67581 if (token !== false) {
67582 return token;
67583 } else if (this._backtrack) {
67584 match = false;
67585 continue; // rule action called reject() implying a rule MISmatch.
67586 } else {
67587 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
67588 return false;
67589 }
67590 } else if (!this.options.flex) {
67591 break;
67592 }
67593 }
67594 }
67595 if (match) {
67596 token = this.test_match(match, rules[index]);
67597 if (token !== false) {
67598 return token;
67599 }
67600 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
67601 return false;
67602 }
67603 if (this._input === "") {
67604 return this.EOF;
67605 } else {
67606 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
67607 text: "",
67608 token: null,
67609 line: this.yylineno
67610 });
67611 }
67612 },
67613
67614 // return next match that has a token
67615 lex: function lex() {
67616 var r = this.next();
67617 if (r) {
67618 return r;
67619 } else {
67620 return this.lex();
67621 }
67622 },
67623
67624 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
67625 begin: function begin(condition) {
67626 this.conditionStack.push(condition);
67627 },
67628
67629 // pop the previously active lexer condition state off the condition stack
67630 popState: function popState() {
67631 var n = this.conditionStack.length - 1;
67632 if (n > 0) {
67633 return this.conditionStack.pop();
67634 } else {
67635 return this.conditionStack[0];
67636 }
67637 },
67638
67639 // produce the lexer rule set which is active for the currently active lexer condition state
67640 _currentRules: function _currentRules() {
67641 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
67642 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
67643 } else {
67644 return this.conditions["INITIAL"].rules;
67645 }
67646 },
67647
67648 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
67649 topState: function topState(n) {
67650 n = this.conditionStack.length - 1 - Math.abs(n || 0);
67651 if (n >= 0) {
67652 return this.conditionStack[n];
67653 } else {
67654 return "INITIAL";
67655 }
67656 },
67657
67658 // alias for begin(condition)
67659 pushState: function pushState(condition) {
67660 this.begin(condition);
67661 },
67662
67663 // return the number of states currently on the stack
67664 stateStackSize: function stateStackSize() {
67665 return this.conditionStack.length;
67666 },
67667 options: { "case-insensitive": true },
67668 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
67669 // Pre-lexer code can go here
67670
67671 var YYSTATE = YY_START;
67672 switch ($avoiding_name_collisions) {
67673 case 0:
67674 return 10;
67675 break;
67676 case 1:
67677 /* skip whitespace */
67678 break;
67679 case 2:
67680 /* skip comments */
67681 break;
67682 case 3:
67683 /* skip comments */
67684 break;
67685 case 4:
67686 return 4;
67687 break;
67688 case 5:
67689 return 11;
67690 break;
67691 case 6:
67692 return 12;
67693 break;
67694 case 7:
67695 return 'date';
67696 break;
67697 case 8:
67698 return 13;
67699 break;
67700 case 9:
67701 return 14;
67702 break;
67703 case 10:
67704 return 15;
67705 break;
67706 case 11:
67707 return 16;
67708 break;
67709 case 12:
67710 return ':';
67711 break;
67712 case 13:
67713 return 6;
67714 break;
67715 case 14:
67716 return 'INVALID';
67717 break;
67718 }
67719 },
67720 rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:axisFormat\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],
67721 conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "inclusive": true } }
67722 };
67723 return lexer;
67724 }();
67725 parser.lexer = lexer;
67726 function Parser() {
67727 this.yy = {};
67728 }
67729 Parser.prototype = parser;parser.Parser = Parser;
67730 return new Parser();
67731}();
67732
67733if (true) {
67734 exports.parser = parser;
67735 exports.Parser = parser.Parser;
67736 exports.parse = function () {
67737 return parser.parse.apply(parser, arguments);
67738 };
67739 exports.main = function commonjsMain(args) {
67740 if (!args[1]) {
67741 console.log('Usage: ' + args[0] + ' FILE');
67742 process.exit(1);
67743 }
67744 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");
67745 return exports.parser.parse(source);
67746 };
67747 if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) {
67748 exports.main(process.argv.slice(1));
67749 }
67750}
67751/* 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)))
67752
67753/***/ }),
67754
67755/***/ "./src/diagrams/git/gitGraphAst.js":
67756/*!*****************************************!*\
67757 !*** ./src/diagrams/git/gitGraphAst.js ***!
67758 \*****************************************/
67759/*! no static exports found */
67760/***/ (function(module, exports, __webpack_require__) {
67761
67762"use strict";
67763
67764
67765Object.defineProperty(exports, "__esModule", {
67766 value: true
67767});
67768exports.getHead = exports.getDirection = exports.getCurrentBranch = exports.getCommitsArray = exports.getCommits = exports.getBranches = exports.getBranchesAsObjArray = exports.clear = exports.prettyPrint = exports.reset = exports.checkout = exports.merge = exports.branch = exports.commit = exports.getOptions = exports.setOptions = exports.setDirection = undefined;
67769
67770var _lodash = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
67771
67772var _lodash2 = _interopRequireDefault(_lodash);
67773
67774var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
67775
67776function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
67777
67778var commits = {};
67779var head = null;
67780var branches = { 'master': head };
67781var curBranch = 'master';
67782var direction = 'LR';
67783var seq = 0;
67784
67785function getRandomInt(min, max) {
67786 return Math.floor(Math.random() * (max - min)) + min;
67787}
67788
67789function getId() {
67790 var pool = '0123456789abcdef';
67791 var id = '';
67792 for (var i = 0; i < 7; i++) {
67793 id += pool[getRandomInt(0, 16)];
67794 }
67795 return id;
67796}
67797
67798function isfastforwardable(currentCommit, otherCommit) {
67799 _logger.logger.debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id);
67800 while (currentCommit.seq <= otherCommit.seq && currentCommit !== otherCommit) {
67801 // only if other branch has more commits
67802 if (otherCommit.parent == null) break;
67803 if (Array.isArray(otherCommit.parent)) {
67804 _logger.logger.debug('In merge commit:', otherCommit.parent);
67805 return isfastforwardable(currentCommit, commits[otherCommit.parent[0]]) || isfastforwardable(currentCommit, commits[otherCommit.parent[1]]);
67806 } else {
67807 otherCommit = commits[otherCommit.parent];
67808 }
67809 }
67810 _logger.logger.debug(currentCommit.id, otherCommit.id);
67811 return currentCommit.id === otherCommit.id;
67812}
67813
67814function isReachableFrom(currentCommit, otherCommit) {
67815 var currentSeq = currentCommit.seq;
67816 var otherSeq = otherCommit.seq;
67817 if (currentSeq > otherSeq) return isfastforwardable(otherCommit, currentCommit);
67818 return false;
67819}
67820
67821var setDirection = exports.setDirection = function setDirection(dir) {
67822 direction = dir;
67823};
67824var options = {};
67825var setOptions = exports.setOptions = function setOptions(rawOptString) {
67826 _logger.logger.debug('options str', rawOptString);
67827 rawOptString = rawOptString && rawOptString.trim();
67828 rawOptString = rawOptString || '{}';
67829 try {
67830 options = JSON.parse(rawOptString);
67831 } catch (e) {
67832 _logger.logger.error('error while parsing gitGraph options', e.message);
67833 }
67834};
67835
67836var getOptions = exports.getOptions = function getOptions() {
67837 return options;
67838};
67839
67840var commit = exports.commit = function commit(msg) {
67841 var commit = {
67842 id: getId(),
67843 message: msg,
67844 seq: seq++,
67845 parent: head == null ? null : head.id
67846 };
67847 head = commit;
67848 commits[commit.id] = commit;
67849 branches[curBranch] = commit.id;
67850 _logger.logger.debug('in pushCommit ' + commit.id);
67851};
67852
67853var branch = exports.branch = function branch(name) {
67854 branches[name] = head != null ? head.id : null;
67855 _logger.logger.debug('in createBranch');
67856};
67857
67858var merge = exports.merge = function merge(otherBranch) {
67859 var currentCommit = commits[branches[curBranch]];
67860 var otherCommit = commits[branches[otherBranch]];
67861 if (isReachableFrom(currentCommit, otherCommit)) {
67862 _logger.logger.debug('Already merged');
67863 return;
67864 }
67865 if (isfastforwardable(currentCommit, otherCommit)) {
67866 branches[curBranch] = branches[otherBranch];
67867 head = commits[branches[curBranch]];
67868 } else {
67869 // create merge commit
67870 var _commit = {
67871 id: getId(),
67872 message: 'merged branch ' + otherBranch + ' into ' + curBranch,
67873 seq: seq++,
67874 parent: [head == null ? null : head.id, branches[otherBranch]]
67875 };
67876 head = _commit;
67877 commits[_commit.id] = _commit;
67878 branches[curBranch] = _commit.id;
67879 }
67880 _logger.logger.debug(branches);
67881 _logger.logger.debug('in mergeBranch');
67882};
67883
67884var checkout = exports.checkout = function checkout(branch) {
67885 _logger.logger.debug('in checkout');
67886 curBranch = branch;
67887 var id = branches[curBranch];
67888 head = commits[id];
67889};
67890
67891var reset = exports.reset = function reset(commitRef) {
67892 _logger.logger.debug('in reset', commitRef);
67893 var ref = commitRef.split(':')[0];
67894 var parentCount = parseInt(commitRef.split(':')[1]);
67895 var commit = ref === 'HEAD' ? head : commits[branches[ref]];
67896 _logger.logger.debug(commit, parentCount);
67897 while (parentCount > 0) {
67898 commit = commits[commit.parent];
67899 parentCount--;
67900 if (!commit) {
67901 var err = 'Critical error - unique parent commit not found during reset';
67902 _logger.logger.error(err);
67903 throw err;
67904 }
67905 }
67906 head = commit;
67907 branches[curBranch] = commit.id;
67908};
67909
67910function upsert(arr, key, newval) {
67911 var index = arr.indexOf(key);
67912 if (index === -1) {
67913 arr.push(newval);
67914 } else {
67915 arr.splice(index, 1, newval);
67916 }
67917}
67918
67919function prettyPrintCommitHistory(commitArr) {
67920 var commit = _lodash2.default.maxBy(commitArr, 'seq');
67921 var line = '';
67922 commitArr.forEach(function (c) {
67923 if (c === commit) {
67924 line += '\t*';
67925 } else {
67926 line += '\t|';
67927 }
67928 });
67929 var label = [line, commit.id, commit.seq];
67930 _lodash2.default.each(branches, function (value, key) {
67931 if (value === commit.id) label.push(key);
67932 });
67933 _logger.logger.debug(label.join(' '));
67934 if (Array.isArray(commit.parent)) {
67935 var newCommit = commits[commit.parent[0]];
67936 upsert(commitArr, commit, newCommit);
67937 commitArr.push(commits[commit.parent[1]]);
67938 } else if (commit.parent == null) {
67939 return;
67940 } else {
67941 var nextCommit = commits[commit.parent];
67942 upsert(commitArr, commit, nextCommit);
67943 }
67944 commitArr = _lodash2.default.uniqBy(commitArr, 'id');
67945 prettyPrintCommitHistory(commitArr);
67946}
67947
67948var prettyPrint = exports.prettyPrint = function prettyPrint() {
67949 _logger.logger.debug(commits);
67950 var node = getCommitsArray()[0];
67951 prettyPrintCommitHistory([node]);
67952};
67953
67954var clear = exports.clear = function clear() {
67955 commits = {};
67956 head = null;
67957 branches = { 'master': head };
67958 curBranch = 'master';
67959 seq = 0;
67960};
67961
67962var getBranchesAsObjArray = exports.getBranchesAsObjArray = function getBranchesAsObjArray() {
67963 var branchArr = _lodash2.default.map(branches, function (value, key) {
67964 return { 'name': key, 'commit': commits[value] };
67965 });
67966 return branchArr;
67967};
67968
67969var getBranches = exports.getBranches = function getBranches() {
67970 return branches;
67971};
67972var getCommits = exports.getCommits = function getCommits() {
67973 return commits;
67974};
67975var getCommitsArray = exports.getCommitsArray = function getCommitsArray() {
67976 var commitArr = Object.keys(commits).map(function (key) {
67977 return commits[key];
67978 });
67979 commitArr.forEach(function (o) {
67980 _logger.logger.debug(o.id);
67981 });
67982 return _lodash2.default.orderBy(commitArr, ['seq'], ['desc']);
67983};
67984var getCurrentBranch = exports.getCurrentBranch = function getCurrentBranch() {
67985 return curBranch;
67986};
67987var getDirection = exports.getDirection = function getDirection() {
67988 return direction;
67989};
67990var getHead = exports.getHead = function getHead() {
67991 return head;
67992};
67993
67994exports.default = {
67995 setDirection: setDirection,
67996 setOptions: setOptions,
67997 getOptions: getOptions,
67998 commit: commit,
67999 branch: branch,
68000 merge: merge,
68001 checkout: checkout,
68002 reset: reset,
68003 prettyPrint: prettyPrint,
68004 clear: clear,
68005 getBranchesAsObjArray: getBranchesAsObjArray,
68006 getBranches: getBranches,
68007 getCommits: getCommits,
68008 getCommitsArray: getCommitsArray,
68009 getCurrentBranch: getCurrentBranch,
68010 getDirection: getDirection,
68011 getHead: getHead
68012};
68013
68014/***/ }),
68015
68016/***/ "./src/diagrams/git/gitGraphRenderer.js":
68017/*!**********************************************!*\
68018 !*** ./src/diagrams/git/gitGraphRenderer.js ***!
68019 \**********************************************/
68020/*! no static exports found */
68021/***/ (function(module, exports, __webpack_require__) {
68022
68023"use strict";
68024
68025
68026Object.defineProperty(exports, "__esModule", {
68027 value: true
68028});
68029exports.draw = exports.setConf = undefined;
68030
68031var _lodash = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
68032
68033var _lodash2 = _interopRequireDefault(_lodash);
68034
68035var _d = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
68036
68037var d3 = _interopRequireWildcard(_d);
68038
68039var _gitGraphAst = __webpack_require__(/*! ./gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
68040
68041var _gitGraphAst2 = _interopRequireDefault(_gitGraphAst);
68042
68043var _gitGraph = __webpack_require__(/*! ./parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.js");
68044
68045var _gitGraph2 = _interopRequireDefault(_gitGraph);
68046
68047var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
68048
68049var _utils = __webpack_require__(/*! ../../utils */ "./src/utils.js");
68050
68051function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
68052
68053function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
68054
68055var allCommitsDict = {};
68056var branchNum = void 0;
68057var config = {
68058 nodeSpacing: 150,
68059 nodeFillColor: 'yellow',
68060 nodeStrokeWidth: 2,
68061 nodeStrokeColor: 'grey',
68062 lineStrokeWidth: 4,
68063 branchOffset: 50,
68064 lineColor: 'grey',
68065 leftMargin: 50,
68066 branchColors: ['#442f74', '#983351', '#609732', '#AA9A39'],
68067 nodeRadius: 10,
68068 nodeLabel: {
68069 width: 75,
68070 height: 100,
68071 x: -25,
68072 y: 0
68073 }
68074};
68075var apiConfig = {};
68076var setConf = exports.setConf = function setConf(c) {
68077 apiConfig = c;
68078};
68079
68080function svgCreateDefs(svg) {
68081 svg.append('defs').append('g').attr('id', 'def-commit').append('circle').attr('r', config.nodeRadius).attr('cx', 0).attr('cy', 0);
68082 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('');
68083}
68084
68085function svgDrawLine(svg, points, colorIdx, interpolate) {
68086 var curve = (0, _utils.interpolateToCurve)(interpolate, d3.curveBasis);
68087 var color = config.branchColors[colorIdx % config.branchColors.length];
68088 var lineGen = d3.line().x(function (d) {
68089 return Math.round(d.x);
68090 }).y(function (d) {
68091 return Math.round(d.y);
68092 }).curve(curve);
68093
68094 svg.append('svg:path').attr('d', lineGen(points)).style('stroke', color).style('stroke-width', config.lineStrokeWidth).style('fill', 'none');
68095}
68096
68097// Pass in the element and its pre-transform coords
68098function getElementCoords(element, coords) {
68099 coords = coords || element.node().getBBox();
68100 var ctm = element.node().getCTM();
68101 var xn = ctm.e + coords.x * ctm.a;
68102 var yn = ctm.f + coords.y * ctm.d;
68103 return {
68104 left: xn,
68105 top: yn,
68106 width: coords.width,
68107 height: coords.height
68108 };
68109}
68110
68111function svgDrawLineForCommits(svg, fromId, toId, direction, color) {
68112 _logger.logger.debug('svgDrawLineForCommits: ', fromId, toId);
68113 var fromBbox = getElementCoords(svg.select('#node-' + fromId + ' circle'));
68114 var toBbox = getElementCoords(svg.select('#node-' + toId + ' circle'));
68115 switch (direction) {
68116 case 'LR':
68117 // (toBbox)
68118 // +--------
68119 // + (fromBbox)
68120 if (fromBbox.left - toBbox.left > config.nodeSpacing) {
68121 var lineStart = { x: fromBbox.left - config.nodeSpacing, y: toBbox.top + toBbox.height / 2 };
68122 var lineEnd = { x: toBbox.left + toBbox.width, y: toBbox.top + toBbox.height / 2 };
68123 svgDrawLine(svg, [lineStart, lineEnd], color, 'linear');
68124 svgDrawLine(svg, [{ x: fromBbox.left, y: fromBbox.top + fromBbox.height / 2 }, { x: fromBbox.left - config.nodeSpacing / 2, y: fromBbox.top + fromBbox.height / 2 }, { x: fromBbox.left - config.nodeSpacing / 2, y: lineStart.y }, lineStart], color);
68125 } else {
68126 svgDrawLine(svg, [{
68127 'x': fromBbox.left,
68128 'y': fromBbox.top + fromBbox.height / 2
68129 }, {
68130 'x': fromBbox.left - config.nodeSpacing / 2,
68131 'y': fromBbox.top + fromBbox.height / 2
68132 }, {
68133 'x': fromBbox.left - config.nodeSpacing / 2,
68134 'y': toBbox.top + toBbox.height / 2
68135 }, {
68136 'x': toBbox.left + toBbox.width,
68137 'y': toBbox.top + toBbox.height / 2
68138 }], color);
68139 }
68140 break;
68141 case 'BT':
68142 // + (fromBbox)
68143 // |
68144 // |
68145 // + (toBbox)
68146 if (toBbox.top - fromBbox.top > config.nodeSpacing) {
68147 var _lineStart = { x: toBbox.left + toBbox.width / 2, y: fromBbox.top + fromBbox.height + config.nodeSpacing };
68148 var _lineEnd = { x: toBbox.left + toBbox.width / 2, y: toBbox.top };
68149 svgDrawLine(svg, [_lineStart, _lineEnd], color, 'linear');
68150 svgDrawLine(svg, [{ x: fromBbox.left + fromBbox.width / 2, y: fromBbox.top + fromBbox.height }, { x: fromBbox.left + fromBbox.width / 2, y: fromBbox.top + fromBbox.height + config.nodeSpacing / 2 }, { x: toBbox.left + toBbox.width / 2, y: _lineStart.y - config.nodeSpacing / 2 }, _lineStart], color);
68151 } else {
68152 svgDrawLine(svg, [{
68153 'x': fromBbox.left + fromBbox.width / 2,
68154 'y': fromBbox.top + fromBbox.height
68155 }, {
68156 'x': fromBbox.left + fromBbox.width / 2,
68157 'y': fromBbox.top + config.nodeSpacing / 2
68158 }, {
68159 'x': toBbox.left + toBbox.width / 2,
68160 'y': toBbox.top - config.nodeSpacing / 2
68161 }, {
68162 'x': toBbox.left + toBbox.width / 2,
68163 'y': toBbox.top
68164 }], color);
68165 }
68166 break;
68167 }
68168}
68169
68170function cloneNode(svg, selector) {
68171 return svg.select(selector).node().cloneNode(true);
68172}
68173
68174function renderCommitHistory(svg, commitid, branches, direction) {
68175 var commit = void 0;
68176 var numCommits = Object.keys(allCommitsDict).length;
68177 if (_lodash2.default.isString(commitid)) {
68178 do {
68179 commit = allCommitsDict[commitid];
68180 _logger.logger.debug('in renderCommitHistory', commit.id, commit.seq);
68181 if (svg.select('#node-' + commitid).size() > 0) {
68182 return;
68183 }
68184 svg.append(function () {
68185 return cloneNode(svg, '#def-commit');
68186 }).attr('class', 'commit').attr('id', function () {
68187 return 'node-' + commit.id;
68188 }).attr('transform', function () {
68189 switch (direction) {
68190 case 'LR':
68191 return 'translate(' + (commit.seq * config.nodeSpacing + config.leftMargin) + ', ' + branchNum * config.branchOffset + ')';
68192 case 'BT':
68193 return 'translate(' + (branchNum * config.branchOffset + config.leftMargin) + ', ' + (numCommits - commit.seq) * config.nodeSpacing + ')';
68194 }
68195 }).attr('fill', config.nodeFillColor).attr('stroke', config.nodeStrokeColor).attr('stroke-width', config.nodeStrokeWidth);
68196
68197 var branch = _lodash2.default.find(branches, ['commit', commit]);
68198 if (branch) {
68199 _logger.logger.debug('found branch ', branch.name);
68200 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'branch-label').text(branch.name + ', ');
68201 }
68202 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-id').text(commit.id);
68203 if (commit.message !== '' && direction === 'BT') {
68204 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-msg').text(', ' + commit.message);
68205 }
68206 commitid = commit.parent;
68207 } while (commitid && allCommitsDict[commitid]);
68208 }
68209
68210 if (_lodash2.default.isArray(commitid)) {
68211 _logger.logger.debug('found merge commmit', commitid);
68212 renderCommitHistory(svg, commitid[0], branches, direction);
68213 branchNum++;
68214 renderCommitHistory(svg, commitid[1], branches, direction);
68215 branchNum--;
68216 }
68217}
68218
68219function renderLines(svg, commit, direction, branchColor) {
68220 branchColor = branchColor || 0;
68221 while (commit.seq > 0 && !commit.lineDrawn) {
68222 if (_lodash2.default.isString(commit.parent)) {
68223 svgDrawLineForCommits(svg, commit.id, commit.parent, direction, branchColor);
68224 commit.lineDrawn = true;
68225 commit = allCommitsDict[commit.parent];
68226 } else if (_lodash2.default.isArray(commit.parent)) {
68227 svgDrawLineForCommits(svg, commit.id, commit.parent[0], direction, branchColor);
68228 svgDrawLineForCommits(svg, commit.id, commit.parent[1], direction, branchColor + 1);
68229 renderLines(svg, allCommitsDict[commit.parent[1]], direction, branchColor + 1);
68230 commit.lineDrawn = true;
68231 commit = allCommitsDict[commit.parent[0]];
68232 }
68233 }
68234}
68235
68236var draw = exports.draw = function draw(txt, id, ver) {
68237 try {
68238 var parser = _gitGraph2.default.parser;
68239 parser.yy = _gitGraphAst2.default;
68240
68241 _logger.logger.debug('in gitgraph renderer', txt, id, ver);
68242 // Parse the graph definition
68243 parser.parse(txt + '\n');
68244
68245 config = _lodash2.default.extend(config, apiConfig, _gitGraphAst2.default.getOptions());
68246 _logger.logger.debug('effective options', config);
68247 var direction = _gitGraphAst2.default.getDirection();
68248 allCommitsDict = _gitGraphAst2.default.getCommits();
68249 var branches = _gitGraphAst2.default.getBranchesAsObjArray();
68250 if (direction === 'BT') {
68251 config.nodeLabel.x = branches.length * config.branchOffset;
68252 config.nodeLabel.width = '100%';
68253 config.nodeLabel.y = -1 * 2 * config.nodeRadius;
68254 }
68255 var svg = d3.select('[id="' + id + '"]');
68256 svgCreateDefs(svg);
68257 branchNum = 1;
68258 _lodash2.default.each(branches, function (v) {
68259 renderCommitHistory(svg, v.commit.id, branches, direction);
68260 renderLines(svg, v.commit, direction);
68261 branchNum++;
68262 });
68263 svg.attr('height', function () {
68264 if (direction === 'BT') return Object.keys(allCommitsDict).length * config.nodeSpacing;
68265 return (branches.length + 1) * config.branchOffset;
68266 });
68267 } catch (e) {
68268 _logger.logger.error('Error while rendering gitgraph');
68269 _logger.logger.error(e.message);
68270 }
68271};
68272
68273exports.default = {
68274 setConf: setConf,
68275 draw: draw
68276};
68277
68278/***/ }),
68279
68280/***/ "./src/diagrams/git/parser/gitGraph.js":
68281/*!*********************************************!*\
68282 !*** ./src/diagrams/git/parser/gitGraph.js ***!
68283 \*********************************************/
68284/*! no static exports found */
68285/***/ (function(module, exports, __webpack_require__) {
68286
68287"use strict";
68288/* WEBPACK VAR INJECTION */(function(process, module) {
68289
68290/* parser generated by jison 0.4.18 */
68291/*
68292 Returns a Parser object of the following structure:
68293
68294 Parser: {
68295 yy: {}
68296 }
68297
68298 Parser.prototype: {
68299 yy: {},
68300 trace: function(),
68301 symbols_: {associative list: name ==> number},
68302 terminals_: {associative list: number ==> name},
68303 productions_: [...],
68304 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
68305 table: [...],
68306 defaultActions: {...},
68307 parseError: function(str, hash),
68308 parse: function(input),
68309
68310 lexer: {
68311 EOF: 1,
68312 parseError: function(str, hash),
68313 setInput: function(input),
68314 input: function(),
68315 unput: function(str),
68316 more: function(),
68317 less: function(n),
68318 pastInput: function(),
68319 upcomingInput: function(),
68320 showPosition: function(),
68321 test_match: function(regex_match_array, rule_index),
68322 next: function(),
68323 lex: function(),
68324 begin: function(condition),
68325 popState: function(),
68326 _currentRules: function(),
68327 topState: function(),
68328 pushState: function(condition),
68329
68330 options: {
68331 ranges: boolean (optional: true ==> token location info will include a .range[] member)
68332 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
68333 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)
68334 },
68335
68336 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
68337 rules: [...],
68338 conditions: {associative list: name ==> set},
68339 }
68340 }
68341
68342
68343 token location info (@$, _$, etc.): {
68344 first_line: n,
68345 last_line: n,
68346 first_column: n,
68347 last_column: n,
68348 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
68349 }
68350
68351
68352 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
68353 text: (matched text)
68354 token: (the produced terminal token, if any)
68355 line: (yylineno)
68356 }
68357 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
68358 loc: (yylloc)
68359 expected: (string describing the set of expected tokens)
68360 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
68361 }
68362*/
68363var parser = function () {
68364 var o = function o(k, v, _o, l) {
68365 for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o;
68366 },
68367 $V0 = [2, 3],
68368 $V1 = [1, 7],
68369 $V2 = [7, 12, 15, 17, 19, 20, 21],
68370 $V3 = [7, 11, 12, 15, 17, 19, 20, 21],
68371 $V4 = [2, 20],
68372 $V5 = [1, 32];
68373 var parser = { trace: function trace() {},
68374 yy: {},
68375 symbols_: { "error": 2, "start": 3, "GG": 4, ":": 5, "document": 6, "EOF": 7, "DIR": 8, "options": 9, "body": 10, "OPT": 11, "NL": 12, "line": 13, "statement": 14, "COMMIT": 15, "commit_arg": 16, "BRANCH": 17, "ID": 18, "CHECKOUT": 19, "MERGE": 20, "RESET": 21, "reset_arg": 22, "STR": 23, "HEAD": 24, "reset_parents": 25, "CARET": 26, "$accept": 0, "$end": 1 },
68376 terminals_: { 2: "error", 4: "GG", 5: ":", 7: "EOF", 8: "DIR", 11: "OPT", 12: "NL", 15: "COMMIT", 17: "BRANCH", 18: "ID", 19: "CHECKOUT", 20: "MERGE", 21: "RESET", 23: "STR", 24: "HEAD", 26: "CARET" },
68377 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]],
68378 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
68379 /* this == yyval */
68380
68381 var $0 = $$.length - 1;
68382 switch (yystate) {
68383 case 1:
68384 return $$[$0 - 1];
68385 break;
68386 case 2:
68387 yy.setDirection($$[$0 - 3]);return $$[$0 - 1];
68388 break;
68389 case 4:
68390 yy.setOptions($$[$0 - 1]);this.$ = $$[$0];
68391 break;
68392 case 5:
68393 $$[$0 - 1] += $$[$0];this.$ = $$[$0 - 1];
68394 break;
68395 case 7:
68396 this.$ = [];
68397 break;
68398 case 8:
68399 $$[$0 - 1].push($$[$0]);this.$ = $$[$0 - 1];
68400 break;
68401 case 9:
68402 this.$ = $$[$0 - 1];
68403 break;
68404 case 11:
68405 yy.commit($$[$0]);
68406 break;
68407 case 12:
68408 yy.branch($$[$0]);
68409 break;
68410 case 13:
68411 yy.checkout($$[$0]);
68412 break;
68413 case 14:
68414 yy.merge($$[$0]);
68415 break;
68416 case 15:
68417 yy.reset($$[$0]);
68418 break;
68419 case 16:
68420 this.$ = "";
68421 break;
68422 case 17:
68423 this.$ = $$[$0];
68424 break;
68425 case 18:
68426 this.$ = $$[$0 - 1] + ":" + $$[$0];
68427 break;
68428 case 19:
68429 this.$ = $$[$0 - 1] + ":" + yy.count;yy.count = 0;
68430 break;
68431 case 20:
68432 yy.count = 0;
68433 break;
68434 case 21:
68435 yy.count += 1;
68436 break;
68437 }
68438 },
68439 table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3], 8: [1, 4] }, { 6: 5, 7: $V0, 9: 6, 12: $V1 }, { 5: [1, 8] }, { 7: [1, 9] }, o($V2, [2, 7], { 10: 10, 11: [1, 11] }), o($V3, [2, 6]), { 6: 12, 7: $V0, 9: 6, 12: $V1 }, { 1: [2, 1] }, { 7: [2, 4], 12: [1, 15], 13: 13, 14: 14, 15: [1, 16], 17: [1, 17], 19: [1, 18], 20: [1, 19], 21: [1, 20] }, o($V3, [2, 5]), { 7: [1, 21] }, o($V2, [2, 8]), { 12: [1, 22] }, o($V2, [2, 10]), { 12: [2, 16], 16: 23, 23: [1, 24] }, { 18: [1, 25] }, { 18: [1, 26] }, { 18: [1, 27] }, { 18: [1, 30], 22: 28, 24: [1, 29] }, { 1: [2, 2] }, o($V2, [2, 9]), { 12: [2, 11] }, { 12: [2, 17] }, { 12: [2, 12] }, { 12: [2, 13] }, { 12: [2, 14] }, { 12: [2, 15] }, { 12: $V4, 25: 31, 26: $V5 }, { 12: $V4, 25: 33, 26: $V5 }, { 12: [2, 18] }, { 12: $V4, 25: 34, 26: $V5 }, { 12: [2, 19] }, { 12: [2, 21] }],
68440 defaultActions: { 9: [2, 1], 21: [2, 2], 23: [2, 11], 24: [2, 17], 25: [2, 12], 26: [2, 13], 27: [2, 14], 28: [2, 15], 31: [2, 18], 33: [2, 19], 34: [2, 21] },
68441 parseError: function parseError(str, hash) {
68442 if (hash.recoverable) {
68443 this.trace(str);
68444 } else {
68445 var error = new Error(str);
68446 error.hash = hash;
68447 throw error;
68448 }
68449 },
68450 parse: function parse(input) {
68451 var self = this,
68452 stack = [0],
68453 tstack = [],
68454 vstack = [null],
68455 lstack = [],
68456 table = this.table,
68457 yytext = '',
68458 yylineno = 0,
68459 yyleng = 0,
68460 recovering = 0,
68461 TERROR = 2,
68462 EOF = 1;
68463 var args = lstack.slice.call(arguments, 1);
68464 var lexer = Object.create(this.lexer);
68465 var sharedState = { yy: {} };
68466 for (var k in this.yy) {
68467 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
68468 sharedState.yy[k] = this.yy[k];
68469 }
68470 }
68471 lexer.setInput(input, sharedState.yy);
68472 sharedState.yy.lexer = lexer;
68473 sharedState.yy.parser = this;
68474 if (typeof lexer.yylloc == 'undefined') {
68475 lexer.yylloc = {};
68476 }
68477 var yyloc = lexer.yylloc;
68478 lstack.push(yyloc);
68479 var ranges = lexer.options && lexer.options.ranges;
68480 if (typeof sharedState.yy.parseError === 'function') {
68481 this.parseError = sharedState.yy.parseError;
68482 } else {
68483 this.parseError = Object.getPrototypeOf(this).parseError;
68484 }
68485 function popStack(n) {
68486 stack.length = stack.length - 2 * n;
68487 vstack.length = vstack.length - n;
68488 lstack.length = lstack.length - n;
68489 }
68490 function lex() {
68491 var token;
68492 token = tstack.pop() || lexer.lex() || EOF;
68493 if (typeof token !== 'number') {
68494 if (token instanceof Array) {
68495 tstack = token;
68496 token = tstack.pop();
68497 }
68498 token = self.symbols_[token] || token;
68499 }
68500 return token;
68501 }
68502 var symbol,
68503 preErrorSymbol,
68504 state,
68505 action,
68506 a,
68507 r,
68508 yyval = {},
68509 p,
68510 len,
68511 newState,
68512 expected;
68513 while (true) {
68514 state = stack[stack.length - 1];
68515 if (this.defaultActions[state]) {
68516 action = this.defaultActions[state];
68517 } else {
68518 if (symbol === null || typeof symbol == 'undefined') {
68519 symbol = lex();
68520 }
68521 action = table[state] && table[state][symbol];
68522 }
68523 if (typeof action === 'undefined' || !action.length || !action[0]) {
68524 var errStr = '';
68525 expected = [];
68526 for (p in table[state]) {
68527 if (this.terminals_[p] && p > TERROR) {
68528 expected.push('\'' + this.terminals_[p] + '\'');
68529 }
68530 }
68531 if (lexer.showPosition) {
68532 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
68533 } else {
68534 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
68535 }
68536 this.parseError(errStr, {
68537 text: lexer.match,
68538 token: this.terminals_[symbol] || symbol,
68539 line: lexer.yylineno,
68540 loc: yyloc,
68541 expected: expected
68542 });
68543 }
68544 if (action[0] instanceof Array && action.length > 1) {
68545 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
68546 }
68547 switch (action[0]) {
68548 case 1:
68549 stack.push(symbol);
68550 vstack.push(lexer.yytext);
68551 lstack.push(lexer.yylloc);
68552 stack.push(action[1]);
68553 symbol = null;
68554 if (!preErrorSymbol) {
68555 yyleng = lexer.yyleng;
68556 yytext = lexer.yytext;
68557 yylineno = lexer.yylineno;
68558 yyloc = lexer.yylloc;
68559 if (recovering > 0) {
68560 recovering--;
68561 }
68562 } else {
68563 symbol = preErrorSymbol;
68564 preErrorSymbol = null;
68565 }
68566 break;
68567 case 2:
68568 len = this.productions_[action[1]][1];
68569 yyval.$ = vstack[vstack.length - len];
68570 yyval._$ = {
68571 first_line: lstack[lstack.length - (len || 1)].first_line,
68572 last_line: lstack[lstack.length - 1].last_line,
68573 first_column: lstack[lstack.length - (len || 1)].first_column,
68574 last_column: lstack[lstack.length - 1].last_column
68575 };
68576 if (ranges) {
68577 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
68578 }
68579 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
68580 if (typeof r !== 'undefined') {
68581 return r;
68582 }
68583 if (len) {
68584 stack = stack.slice(0, -1 * len * 2);
68585 vstack = vstack.slice(0, -1 * len);
68586 lstack = lstack.slice(0, -1 * len);
68587 }
68588 stack.push(this.productions_[action[1]][0]);
68589 vstack.push(yyval.$);
68590 lstack.push(yyval._$);
68591 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
68592 stack.push(newState);
68593 break;
68594 case 3:
68595 return true;
68596 }
68597 }
68598 return true;
68599 } };
68600 /* generated by jison-lex 0.3.4 */
68601 var lexer = function () {
68602 var lexer = {
68603
68604 EOF: 1,
68605
68606 parseError: function parseError(str, hash) {
68607 if (this.yy.parser) {
68608 this.yy.parser.parseError(str, hash);
68609 } else {
68610 throw new Error(str);
68611 }
68612 },
68613
68614 // resets the lexer, sets new input
68615 setInput: function setInput(input, yy) {
68616 this.yy = yy || this.yy || {};
68617 this._input = input;
68618 this._more = this._backtrack = this.done = false;
68619 this.yylineno = this.yyleng = 0;
68620 this.yytext = this.matched = this.match = '';
68621 this.conditionStack = ['INITIAL'];
68622 this.yylloc = {
68623 first_line: 1,
68624 first_column: 0,
68625 last_line: 1,
68626 last_column: 0
68627 };
68628 if (this.options.ranges) {
68629 this.yylloc.range = [0, 0];
68630 }
68631 this.offset = 0;
68632 return this;
68633 },
68634
68635 // consumes and returns one char from the input
68636 input: function input() {
68637 var ch = this._input[0];
68638 this.yytext += ch;
68639 this.yyleng++;
68640 this.offset++;
68641 this.match += ch;
68642 this.matched += ch;
68643 var lines = ch.match(/(?:\r\n?|\n).*/g);
68644 if (lines) {
68645 this.yylineno++;
68646 this.yylloc.last_line++;
68647 } else {
68648 this.yylloc.last_column++;
68649 }
68650 if (this.options.ranges) {
68651 this.yylloc.range[1]++;
68652 }
68653
68654 this._input = this._input.slice(1);
68655 return ch;
68656 },
68657
68658 // unshifts one char (or a string) into the input
68659 unput: function unput(ch) {
68660 var len = ch.length;
68661 var lines = ch.split(/(?:\r\n?|\n)/g);
68662
68663 this._input = ch + this._input;
68664 this.yytext = this.yytext.substr(0, this.yytext.length - len);
68665 //this.yyleng -= len;
68666 this.offset -= len;
68667 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
68668 this.match = this.match.substr(0, this.match.length - 1);
68669 this.matched = this.matched.substr(0, this.matched.length - 1);
68670
68671 if (lines.length - 1) {
68672 this.yylineno -= lines.length - 1;
68673 }
68674 var r = this.yylloc.range;
68675
68676 this.yylloc = {
68677 first_line: this.yylloc.first_line,
68678 last_line: this.yylineno + 1,
68679 first_column: this.yylloc.first_column,
68680 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
68681 };
68682
68683 if (this.options.ranges) {
68684 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
68685 }
68686 this.yyleng = this.yytext.length;
68687 return this;
68688 },
68689
68690 // When called from action, caches matched text and appends it on next action
68691 more: function more() {
68692 this._more = true;
68693 return this;
68694 },
68695
68696 // 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.
68697 reject: function reject() {
68698 if (this.options.backtrack_lexer) {
68699 this._backtrack = true;
68700 } else {
68701 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(), {
68702 text: "",
68703 token: null,
68704 line: this.yylineno
68705 });
68706 }
68707 return this;
68708 },
68709
68710 // retain first n characters of the match
68711 less: function less(n) {
68712 this.unput(this.match.slice(n));
68713 },
68714
68715 // displays already matched input, i.e. for error messages
68716 pastInput: function pastInput() {
68717 var past = this.matched.substr(0, this.matched.length - this.match.length);
68718 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
68719 },
68720
68721 // displays upcoming input, i.e. for error messages
68722 upcomingInput: function upcomingInput() {
68723 var next = this.match;
68724 if (next.length < 20) {
68725 next += this._input.substr(0, 20 - next.length);
68726 }
68727 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
68728 },
68729
68730 // displays the character position where the lexing error occurred, i.e. for error messages
68731 showPosition: function showPosition() {
68732 var pre = this.pastInput();
68733 var c = new Array(pre.length + 1).join("-");
68734 return pre + this.upcomingInput() + "\n" + c + "^";
68735 },
68736
68737 // test the lexed token: return FALSE when not a match, otherwise return token
68738 test_match: function test_match(match, indexed_rule) {
68739 var token, lines, backup;
68740
68741 if (this.options.backtrack_lexer) {
68742 // save context
68743 backup = {
68744 yylineno: this.yylineno,
68745 yylloc: {
68746 first_line: this.yylloc.first_line,
68747 last_line: this.last_line,
68748 first_column: this.yylloc.first_column,
68749 last_column: this.yylloc.last_column
68750 },
68751 yytext: this.yytext,
68752 match: this.match,
68753 matches: this.matches,
68754 matched: this.matched,
68755 yyleng: this.yyleng,
68756 offset: this.offset,
68757 _more: this._more,
68758 _input: this._input,
68759 yy: this.yy,
68760 conditionStack: this.conditionStack.slice(0),
68761 done: this.done
68762 };
68763 if (this.options.ranges) {
68764 backup.yylloc.range = this.yylloc.range.slice(0);
68765 }
68766 }
68767
68768 lines = match[0].match(/(?:\r\n?|\n).*/g);
68769 if (lines) {
68770 this.yylineno += lines.length;
68771 }
68772 this.yylloc = {
68773 first_line: this.yylloc.last_line,
68774 last_line: this.yylineno + 1,
68775 first_column: this.yylloc.last_column,
68776 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
68777 };
68778 this.yytext += match[0];
68779 this.match += match[0];
68780 this.matches = match;
68781 this.yyleng = this.yytext.length;
68782 if (this.options.ranges) {
68783 this.yylloc.range = [this.offset, this.offset += this.yyleng];
68784 }
68785 this._more = false;
68786 this._backtrack = false;
68787 this._input = this._input.slice(match[0].length);
68788 this.matched += match[0];
68789 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
68790 if (this.done && this._input) {
68791 this.done = false;
68792 }
68793 if (token) {
68794 return token;
68795 } else if (this._backtrack) {
68796 // recover context
68797 for (var k in backup) {
68798 this[k] = backup[k];
68799 }
68800 return false; // rule action called reject() implying the next rule should be tested instead.
68801 }
68802 return false;
68803 },
68804
68805 // return next match in input
68806 next: function next() {
68807 if (this.done) {
68808 return this.EOF;
68809 }
68810 if (!this._input) {
68811 this.done = true;
68812 }
68813
68814 var token, match, tempMatch, index;
68815 if (!this._more) {
68816 this.yytext = '';
68817 this.match = '';
68818 }
68819 var rules = this._currentRules();
68820 for (var i = 0; i < rules.length; i++) {
68821 tempMatch = this._input.match(this.rules[rules[i]]);
68822 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
68823 match = tempMatch;
68824 index = i;
68825 if (this.options.backtrack_lexer) {
68826 token = this.test_match(tempMatch, rules[i]);
68827 if (token !== false) {
68828 return token;
68829 } else if (this._backtrack) {
68830 match = false;
68831 continue; // rule action called reject() implying a rule MISmatch.
68832 } else {
68833 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
68834 return false;
68835 }
68836 } else if (!this.options.flex) {
68837 break;
68838 }
68839 }
68840 }
68841 if (match) {
68842 token = this.test_match(match, rules[index]);
68843 if (token !== false) {
68844 return token;
68845 }
68846 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
68847 return false;
68848 }
68849 if (this._input === "") {
68850 return this.EOF;
68851 } else {
68852 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
68853 text: "",
68854 token: null,
68855 line: this.yylineno
68856 });
68857 }
68858 },
68859
68860 // return next match that has a token
68861 lex: function lex() {
68862 var r = this.next();
68863 if (r) {
68864 return r;
68865 } else {
68866 return this.lex();
68867 }
68868 },
68869
68870 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
68871 begin: function begin(condition) {
68872 this.conditionStack.push(condition);
68873 },
68874
68875 // pop the previously active lexer condition state off the condition stack
68876 popState: function popState() {
68877 var n = this.conditionStack.length - 1;
68878 if (n > 0) {
68879 return this.conditionStack.pop();
68880 } else {
68881 return this.conditionStack[0];
68882 }
68883 },
68884
68885 // produce the lexer rule set which is active for the currently active lexer condition state
68886 _currentRules: function _currentRules() {
68887 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
68888 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
68889 } else {
68890 return this.conditions["INITIAL"].rules;
68891 }
68892 },
68893
68894 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
68895 topState: function topState(n) {
68896 n = this.conditionStack.length - 1 - Math.abs(n || 0);
68897 if (n >= 0) {
68898 return this.conditionStack[n];
68899 } else {
68900 return "INITIAL";
68901 }
68902 },
68903
68904 // alias for begin(condition)
68905 pushState: function pushState(condition) {
68906 this.begin(condition);
68907 },
68908
68909 // return the number of states currently on the stack
68910 stateStackSize: function stateStackSize() {
68911 return this.conditionStack.length;
68912 },
68913 options: { "case-insensitive": true },
68914 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
68915 var YYSTATE = YY_START;
68916 switch ($avoiding_name_collisions) {
68917 case 0:
68918 return 12;
68919 break;
68920 case 1:
68921 /* skip all whitespace */
68922 break;
68923 case 2:
68924 /* skip comments */
68925 break;
68926 case 3:
68927 /* skip comments */
68928 break;
68929 case 4:
68930 return 4;
68931 break;
68932 case 5:
68933 return 15;
68934 break;
68935 case 6:
68936 return 17;
68937 break;
68938 case 7:
68939 return 20;
68940 break;
68941 case 8:
68942 return 21;
68943 break;
68944 case 9:
68945 return 19;
68946 break;
68947 case 10:
68948 return 8;
68949 break;
68950 case 11:
68951 return 8;
68952 break;
68953 case 12:
68954 return 5;
68955 break;
68956 case 13:
68957 return 26;
68958 break;
68959 case 14:
68960 this.begin("options");
68961 break;
68962 case 15:
68963 this.popState();
68964 break;
68965 case 16:
68966 return 11;
68967 break;
68968 case 17:
68969 this.begin("string");
68970 break;
68971 case 18:
68972 this.popState();
68973 break;
68974 case 19:
68975 return 23;
68976 break;
68977 case 20:
68978 return 18;
68979 break;
68980 case 21:
68981 return 7;
68982 break;
68983 }
68984 },
68985 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],
68986 conditions: { "options": { "rules": [15, 16], "inclusive": false }, "string": { "rules": [18, 19], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 20, 21], "inclusive": true } }
68987 };
68988 return lexer;
68989 }();
68990 parser.lexer = lexer;
68991 function Parser() {
68992 this.yy = {};
68993 }
68994 Parser.prototype = parser;parser.Parser = Parser;
68995 return new Parser();
68996}();
68997
68998if (true) {
68999 exports.parser = parser;
69000 exports.Parser = parser.Parser;
69001 exports.parse = function () {
69002 return parser.parse.apply(parser, arguments);
69003 };
69004 exports.main = function commonjsMain(args) {
69005 if (!args[1]) {
69006 console.log('Usage: ' + args[0] + ' FILE');
69007 process.exit(1);
69008 }
69009 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");
69010 return exports.parser.parse(source);
69011 };
69012 if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) {
69013 exports.main(process.argv.slice(1));
69014 }
69015}
69016/* 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)))
69017
69018/***/ }),
69019
69020/***/ "./src/diagrams/sequence/parser/sequenceDiagram.js":
69021/*!*********************************************************!*\
69022 !*** ./src/diagrams/sequence/parser/sequenceDiagram.js ***!
69023 \*********************************************************/
69024/*! no static exports found */
69025/***/ (function(module, exports, __webpack_require__) {
69026
69027"use strict";
69028/* WEBPACK VAR INJECTION */(function(process, module) {
69029
69030/* parser generated by jison 0.4.18 */
69031/*
69032 Returns a Parser object of the following structure:
69033
69034 Parser: {
69035 yy: {}
69036 }
69037
69038 Parser.prototype: {
69039 yy: {},
69040 trace: function(),
69041 symbols_: {associative list: name ==> number},
69042 terminals_: {associative list: number ==> name},
69043 productions_: [...],
69044 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
69045 table: [...],
69046 defaultActions: {...},
69047 parseError: function(str, hash),
69048 parse: function(input),
69049
69050 lexer: {
69051 EOF: 1,
69052 parseError: function(str, hash),
69053 setInput: function(input),
69054 input: function(),
69055 unput: function(str),
69056 more: function(),
69057 less: function(n),
69058 pastInput: function(),
69059 upcomingInput: function(),
69060 showPosition: function(),
69061 test_match: function(regex_match_array, rule_index),
69062 next: function(),
69063 lex: function(),
69064 begin: function(condition),
69065 popState: function(),
69066 _currentRules: function(),
69067 topState: function(),
69068 pushState: function(condition),
69069
69070 options: {
69071 ranges: boolean (optional: true ==> token location info will include a .range[] member)
69072 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
69073 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)
69074 },
69075
69076 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
69077 rules: [...],
69078 conditions: {associative list: name ==> set},
69079 }
69080 }
69081
69082
69083 token location info (@$, _$, etc.): {
69084 first_line: n,
69085 last_line: n,
69086 first_column: n,
69087 last_column: n,
69088 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
69089 }
69090
69091
69092 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
69093 text: (matched text)
69094 token: (the produced terminal token, if any)
69095 line: (yylineno)
69096 }
69097 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
69098 loc: (yylloc)
69099 expected: (string describing the set of expected tokens)
69100 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
69101 }
69102*/
69103var parser = function () {
69104 var o = function o(k, v, _o, l) {
69105 for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o;
69106 },
69107 $V0 = [1, 2],
69108 $V1 = [1, 3],
69109 $V2 = [1, 4],
69110 $V3 = [2, 4],
69111 $V4 = [1, 9],
69112 $V5 = [1, 11],
69113 $V6 = [1, 12],
69114 $V7 = [1, 14],
69115 $V8 = [1, 15],
69116 $V9 = [1, 17],
69117 $Va = [1, 18],
69118 $Vb = [1, 19],
69119 $Vc = [1, 20],
69120 $Vd = [1, 21],
69121 $Ve = [1, 23],
69122 $Vf = [1, 24],
69123 $Vg = [1, 4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 27, 28, 29, 40],
69124 $Vh = [1, 32],
69125 $Vi = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 29, 40],
69126 $Vj = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 28, 29, 40],
69127 $Vk = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 27, 29, 40],
69128 $Vl = [38, 39, 40];
69129 var parser = { trace: function trace() {},
69130 yy: {},
69131 symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "participant": 10, "actor": 11, "AS": 12, "restOfLine": 13, "signal": 14, "activate": 15, "deactivate": 16, "note_statement": 17, "title": 18, "text2": 19, "loop": 20, "end": 21, "opt": 22, "alt": 23, "else_sections": 24, "par": 25, "par_sections": 26, "and": 27, "else": 28, "note": 29, "placement": 30, "over": 31, "actor_pair": 32, "spaceList": 33, ",": 34, "left_of": 35, "right_of": 36, "signaltype": 37, "+": 38, "-": 39, "ACTOR": 40, "SOLID_OPEN_ARROW": 41, "DOTTED_OPEN_ARROW": 42, "SOLID_ARROW": 43, "DOTTED_ARROW": 44, "SOLID_CROSS": 45, "DOTTED_CROSS": 46, "TXT": 47, "$accept": 0, "$end": 1 },
69132 terminals_: { 2: "error", 4: "SPACE", 5: "NL", 6: "SD", 10: "participant", 12: "AS", 13: "restOfLine", 15: "activate", 16: "deactivate", 18: "title", 20: "loop", 21: "end", 22: "opt", 23: "alt", 25: "par", 27: "and", 28: "else", 29: "note", 31: "over", 34: ",", 35: "left_of", 36: "right_of", 38: "+", 39: "-", 40: "ACTOR", 41: "SOLID_OPEN_ARROW", 42: "DOTTED_OPEN_ARROW", 43: "SOLID_ARROW", 44: "DOTTED_ARROW", 45: "SOLID_CROSS", 46: "DOTTED_CROSS", 47: "TXT" },
69133 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]],
69134 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
69135 /* this == yyval */
69136
69137 var $0 = $$.length - 1;
69138 switch (yystate) {
69139 case 3:
69140 yy.apply($$[$0]);return $$[$0];
69141 break;
69142 case 4:
69143 this.$ = [];
69144 break;
69145 case 5:
69146 $$[$0 - 1].push($$[$0]);this.$ = $$[$0 - 1];
69147 break;
69148 case 6:case 7:
69149 this.$ = $$[$0];
69150 break;
69151 case 8:
69152 this.$ = [];
69153 break;
69154 case 9:
69155 $$[$0 - 3].description = $$[$0 - 1];this.$ = $$[$0 - 3];
69156 break;
69157 case 10:
69158 this.$ = $$[$0 - 1];
69159 break;
69160 case 12:
69161 this.$ = { type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] };
69162 break;
69163 case 13:
69164 this.$ = { type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] };
69165 break;
69166 case 15:
69167 this.$ = [{ type: 'setTitle', text: $$[$0 - 1] }];
69168 break;
69169 case 16:
69170
69171 $$[$0 - 1].unshift({ type: 'loopStart', loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_START });
69172 $$[$0 - 1].push({ type: 'loopEnd', loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });
69173 this.$ = $$[$0 - 1];
69174 break;
69175 case 17:
69176
69177 $$[$0 - 1].unshift({ type: 'optStart', optText: $$[$0 - 2], signalType: yy.LINETYPE.OPT_START });
69178 $$[$0 - 1].push({ type: 'optEnd', optText: $$[$0 - 2], signalType: yy.LINETYPE.OPT_END });
69179 this.$ = $$[$0 - 1];
69180 break;
69181 case 18:
69182
69183 // Alt start
69184 $$[$0 - 1].unshift({ type: 'altStart', altText: $$[$0 - 2], signalType: yy.LINETYPE.ALT_START });
69185 // Content in alt is already in $$[$0-1]
69186 // End
69187 $$[$0 - 1].push({ type: 'altEnd', signalType: yy.LINETYPE.ALT_END });
69188 this.$ = $$[$0 - 1];
69189 break;
69190 case 19:
69191
69192 // Parallel start
69193 $$[$0 - 1].unshift({ type: 'parStart', parText: $$[$0 - 2], signalType: yy.LINETYPE.PAR_START });
69194 // Content in par is already in $$[$0-1]
69195 // End
69196 $$[$0 - 1].push({ type: 'parEnd', signalType: yy.LINETYPE.PAR_END });
69197 this.$ = $$[$0 - 1];
69198 break;
69199 case 21:
69200 this.$ = $$[$0 - 3].concat([{ type: 'and', parText: $$[$0 - 1], signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);
69201 break;
69202 case 23:
69203 this.$ = $$[$0 - 3].concat([{ type: 'else', altText: $$[$0 - 1], signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);
69204 break;
69205 case 24:
69206
69207 this.$ = [$$[$0 - 1], { type: 'addNote', placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];
69208 break;
69209 case 25:
69210
69211 // Coerce actor_pair into a [to, from, ...] array
69212 $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);
69213 $$[$0 - 2][0] = $$[$0 - 2][0].actor;
69214 $$[$0 - 2][1] = $$[$0 - 2][1].actor;
69215 this.$ = [$$[$0 - 1], { type: 'addNote', placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];
69216 break;
69217 case 28:
69218 this.$ = [$$[$0 - 2], $$[$0]];
69219 break;
69220 case 29:
69221 this.$ = $$[$0];
69222 break;
69223 case 30:
69224 this.$ = yy.PLACEMENT.LEFTOF;
69225 break;
69226 case 31:
69227 this.$ = yy.PLACEMENT.RIGHTOF;
69228 break;
69229 case 32:
69230 this.$ = [$$[$0 - 4], $$[$0 - 1], { type: 'addMessage', from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] }, { type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }];
69231 break;
69232 case 33:
69233 this.$ = [$$[$0 - 4], $$[$0 - 1], { type: 'addMessage', from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] }, { type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }];
69234 break;
69235 case 34:
69236 this.$ = [$$[$0 - 3], $$[$0 - 1], { type: 'addMessage', from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];
69237 break;
69238 case 35:
69239 this.$ = { type: 'addActor', actor: $$[$0] };
69240 break;
69241 case 36:
69242 this.$ = yy.LINETYPE.SOLID_OPEN;
69243 break;
69244 case 37:
69245 this.$ = yy.LINETYPE.DOTTED_OPEN;
69246 break;
69247 case 38:
69248 this.$ = yy.LINETYPE.SOLID;
69249 break;
69250 case 39:
69251 this.$ = yy.LINETYPE.DOTTED;
69252 break;
69253 case 40:
69254 this.$ = yy.LINETYPE.SOLID_CROSS;
69255 break;
69256 case 41:
69257 this.$ = yy.LINETYPE.DOTTED_CROSS;
69258 break;
69259 case 42:
69260 this.$ = $$[$0].substring(1).trim().replace(/\\n/gm, "\n");
69261 break;
69262 }
69263 },
69264 table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 10, 15, 16, 18, 20, 22, 23, 25, 29, 40], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 22: $Vb, 23: $Vc, 25: $Vd, 29: $Ve, 40: $Vf }, o($Vg, [2, 5]), { 9: 25, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 22: $Vb, 23: $Vc, 25: $Vd, 29: $Ve, 40: $Vf }, o($Vg, [2, 7]), o($Vg, [2, 8]), { 11: 26, 40: $Vf }, { 5: [1, 27] }, { 11: 28, 40: $Vf }, { 11: 29, 40: $Vf }, { 5: [1, 30] }, { 19: 31, 47: $Vh }, { 13: [1, 33] }, { 13: [1, 34] }, { 13: [1, 35] }, { 13: [1, 36] }, { 37: 37, 41: [1, 38], 42: [1, 39], 43: [1, 40], 44: [1, 41], 45: [1, 42], 46: [1, 43] }, { 30: 44, 31: [1, 45], 35: [1, 46], 36: [1, 47] }, o([5, 12, 34, 41, 42, 43, 44, 45, 46, 47], [2, 35]), o($Vg, [2, 6]), { 5: [1, 49], 12: [1, 48] }, o($Vg, [2, 11]), { 5: [1, 50] }, { 5: [1, 51] }, o($Vg, [2, 14]), { 5: [1, 52] }, { 5: [2, 42] }, o($Vi, $V3, { 7: 53 }), o($Vi, $V3, { 7: 54 }), o($Vj, $V3, { 24: 55, 7: 56 }), o($Vk, $V3, { 26: 57, 7: 58 }), { 11: 61, 38: [1, 59], 39: [1, 60], 40: $Vf }, o($Vl, [2, 36]), o($Vl, [2, 37]), o($Vl, [2, 38]), o($Vl, [2, 39]), o($Vl, [2, 40]), o($Vl, [2, 41]), { 11: 62, 40: $Vf }, { 11: 64, 32: 63, 40: $Vf }, { 40: [2, 30] }, { 40: [2, 31] }, { 13: [1, 65] }, o($Vg, [2, 10]), o($Vg, [2, 12]), o($Vg, [2, 13]), o($Vg, [2, 15]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 21: [1, 66], 22: $Vb, 23: $Vc, 25: $Vd, 29: $Ve, 40: $Vf }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 21: [1, 67], 22: $Vb, 23: $Vc, 25: $Vd, 29: $Ve, 40: $Vf }, { 21: [1, 68] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 21: [2, 22], 22: $Vb, 23: $Vc, 25: $Vd, 28: [1, 69], 29: $Ve, 40: $Vf }, { 21: [1, 70] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 21: [2, 20], 22: $Vb, 23: $Vc, 25: $Vd, 27: [1, 71], 29: $Ve, 40: $Vf }, { 11: 72, 40: $Vf }, { 11: 73, 40: $Vf }, { 19: 74, 47: $Vh }, { 19: 75, 47: $Vh }, { 19: 76, 47: $Vh }, { 34: [1, 77], 47: [2, 29] }, { 5: [1, 78] }, o($Vg, [2, 16]), o($Vg, [2, 17]), o($Vg, [2, 18]), { 13: [1, 79] }, o($Vg, [2, 19]), { 13: [1, 80] }, { 19: 81, 47: $Vh }, { 19: 82, 47: $Vh }, { 5: [2, 34] }, { 5: [2, 24] }, { 5: [2, 25] }, { 11: 83, 40: $Vf }, o($Vg, [2, 9]), o($Vj, $V3, { 7: 56, 24: 84 }), o($Vk, $V3, { 7: 58, 26: 85 }), { 5: [2, 32] }, { 5: [2, 33] }, { 47: [2, 28] }, { 21: [2, 23] }, { 21: [2, 21] }],
69265 defaultActions: { 5: [2, 1], 6: [2, 2], 32: [2, 42], 46: [2, 30], 47: [2, 31], 74: [2, 34], 75: [2, 24], 76: [2, 25], 81: [2, 32], 82: [2, 33], 83: [2, 28], 84: [2, 23], 85: [2, 21] },
69266 parseError: function parseError(str, hash) {
69267 if (hash.recoverable) {
69268 this.trace(str);
69269 } else {
69270 var error = new Error(str);
69271 error.hash = hash;
69272 throw error;
69273 }
69274 },
69275 parse: function parse(input) {
69276 var self = this,
69277 stack = [0],
69278 tstack = [],
69279 vstack = [null],
69280 lstack = [],
69281 table = this.table,
69282 yytext = '',
69283 yylineno = 0,
69284 yyleng = 0,
69285 recovering = 0,
69286 TERROR = 2,
69287 EOF = 1;
69288 var args = lstack.slice.call(arguments, 1);
69289 var lexer = Object.create(this.lexer);
69290 var sharedState = { yy: {} };
69291 for (var k in this.yy) {
69292 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
69293 sharedState.yy[k] = this.yy[k];
69294 }
69295 }
69296 lexer.setInput(input, sharedState.yy);
69297 sharedState.yy.lexer = lexer;
69298 sharedState.yy.parser = this;
69299 if (typeof lexer.yylloc == 'undefined') {
69300 lexer.yylloc = {};
69301 }
69302 var yyloc = lexer.yylloc;
69303 lstack.push(yyloc);
69304 var ranges = lexer.options && lexer.options.ranges;
69305 if (typeof sharedState.yy.parseError === 'function') {
69306 this.parseError = sharedState.yy.parseError;
69307 } else {
69308 this.parseError = Object.getPrototypeOf(this).parseError;
69309 }
69310 function popStack(n) {
69311 stack.length = stack.length - 2 * n;
69312 vstack.length = vstack.length - n;
69313 lstack.length = lstack.length - n;
69314 }
69315 function lex() {
69316 var token;
69317 token = tstack.pop() || lexer.lex() || EOF;
69318 if (typeof token !== 'number') {
69319 if (token instanceof Array) {
69320 tstack = token;
69321 token = tstack.pop();
69322 }
69323 token = self.symbols_[token] || token;
69324 }
69325 return token;
69326 }
69327 var symbol,
69328 preErrorSymbol,
69329 state,
69330 action,
69331 a,
69332 r,
69333 yyval = {},
69334 p,
69335 len,
69336 newState,
69337 expected;
69338 while (true) {
69339 state = stack[stack.length - 1];
69340 if (this.defaultActions[state]) {
69341 action = this.defaultActions[state];
69342 } else {
69343 if (symbol === null || typeof symbol == 'undefined') {
69344 symbol = lex();
69345 }
69346 action = table[state] && table[state][symbol];
69347 }
69348 if (typeof action === 'undefined' || !action.length || !action[0]) {
69349 var errStr = '';
69350 expected = [];
69351 for (p in table[state]) {
69352 if (this.terminals_[p] && p > TERROR) {
69353 expected.push('\'' + this.terminals_[p] + '\'');
69354 }
69355 }
69356 if (lexer.showPosition) {
69357 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
69358 } else {
69359 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
69360 }
69361 this.parseError(errStr, {
69362 text: lexer.match,
69363 token: this.terminals_[symbol] || symbol,
69364 line: lexer.yylineno,
69365 loc: yyloc,
69366 expected: expected
69367 });
69368 }
69369 if (action[0] instanceof Array && action.length > 1) {
69370 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
69371 }
69372 switch (action[0]) {
69373 case 1:
69374 stack.push(symbol);
69375 vstack.push(lexer.yytext);
69376 lstack.push(lexer.yylloc);
69377 stack.push(action[1]);
69378 symbol = null;
69379 if (!preErrorSymbol) {
69380 yyleng = lexer.yyleng;
69381 yytext = lexer.yytext;
69382 yylineno = lexer.yylineno;
69383 yyloc = lexer.yylloc;
69384 if (recovering > 0) {
69385 recovering--;
69386 }
69387 } else {
69388 symbol = preErrorSymbol;
69389 preErrorSymbol = null;
69390 }
69391 break;
69392 case 2:
69393 len = this.productions_[action[1]][1];
69394 yyval.$ = vstack[vstack.length - len];
69395 yyval._$ = {
69396 first_line: lstack[lstack.length - (len || 1)].first_line,
69397 last_line: lstack[lstack.length - 1].last_line,
69398 first_column: lstack[lstack.length - (len || 1)].first_column,
69399 last_column: lstack[lstack.length - 1].last_column
69400 };
69401 if (ranges) {
69402 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
69403 }
69404 r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
69405 if (typeof r !== 'undefined') {
69406 return r;
69407 }
69408 if (len) {
69409 stack = stack.slice(0, -1 * len * 2);
69410 vstack = vstack.slice(0, -1 * len);
69411 lstack = lstack.slice(0, -1 * len);
69412 }
69413 stack.push(this.productions_[action[1]][0]);
69414 vstack.push(yyval.$);
69415 lstack.push(yyval._$);
69416 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
69417 stack.push(newState);
69418 break;
69419 case 3:
69420 return true;
69421 }
69422 }
69423 return true;
69424 } };
69425
69426 /* generated by jison-lex 0.3.4 */
69427 var lexer = function () {
69428 var lexer = {
69429
69430 EOF: 1,
69431
69432 parseError: function parseError(str, hash) {
69433 if (this.yy.parser) {
69434 this.yy.parser.parseError(str, hash);
69435 } else {
69436 throw new Error(str);
69437 }
69438 },
69439
69440 // resets the lexer, sets new input
69441 setInput: function setInput(input, yy) {
69442 this.yy = yy || this.yy || {};
69443 this._input = input;
69444 this._more = this._backtrack = this.done = false;
69445 this.yylineno = this.yyleng = 0;
69446 this.yytext = this.matched = this.match = '';
69447 this.conditionStack = ['INITIAL'];
69448 this.yylloc = {
69449 first_line: 1,
69450 first_column: 0,
69451 last_line: 1,
69452 last_column: 0
69453 };
69454 if (this.options.ranges) {
69455 this.yylloc.range = [0, 0];
69456 }
69457 this.offset = 0;
69458 return this;
69459 },
69460
69461 // consumes and returns one char from the input
69462 input: function input() {
69463 var ch = this._input[0];
69464 this.yytext += ch;
69465 this.yyleng++;
69466 this.offset++;
69467 this.match += ch;
69468 this.matched += ch;
69469 var lines = ch.match(/(?:\r\n?|\n).*/g);
69470 if (lines) {
69471 this.yylineno++;
69472 this.yylloc.last_line++;
69473 } else {
69474 this.yylloc.last_column++;
69475 }
69476 if (this.options.ranges) {
69477 this.yylloc.range[1]++;
69478 }
69479
69480 this._input = this._input.slice(1);
69481 return ch;
69482 },
69483
69484 // unshifts one char (or a string) into the input
69485 unput: function unput(ch) {
69486 var len = ch.length;
69487 var lines = ch.split(/(?:\r\n?|\n)/g);
69488
69489 this._input = ch + this._input;
69490 this.yytext = this.yytext.substr(0, this.yytext.length - len);
69491 //this.yyleng -= len;
69492 this.offset -= len;
69493 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
69494 this.match = this.match.substr(0, this.match.length - 1);
69495 this.matched = this.matched.substr(0, this.matched.length - 1);
69496
69497 if (lines.length - 1) {
69498 this.yylineno -= lines.length - 1;
69499 }
69500 var r = this.yylloc.range;
69501
69502 this.yylloc = {
69503 first_line: this.yylloc.first_line,
69504 last_line: this.yylineno + 1,
69505 first_column: this.yylloc.first_column,
69506 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
69507 };
69508
69509 if (this.options.ranges) {
69510 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
69511 }
69512 this.yyleng = this.yytext.length;
69513 return this;
69514 },
69515
69516 // When called from action, caches matched text and appends it on next action
69517 more: function more() {
69518 this._more = true;
69519 return this;
69520 },
69521
69522 // 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.
69523 reject: function reject() {
69524 if (this.options.backtrack_lexer) {
69525 this._backtrack = true;
69526 } else {
69527 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(), {
69528 text: "",
69529 token: null,
69530 line: this.yylineno
69531 });
69532 }
69533 return this;
69534 },
69535
69536 // retain first n characters of the match
69537 less: function less(n) {
69538 this.unput(this.match.slice(n));
69539 },
69540
69541 // displays already matched input, i.e. for error messages
69542 pastInput: function pastInput() {
69543 var past = this.matched.substr(0, this.matched.length - this.match.length);
69544 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
69545 },
69546
69547 // displays upcoming input, i.e. for error messages
69548 upcomingInput: function upcomingInput() {
69549 var next = this.match;
69550 if (next.length < 20) {
69551 next += this._input.substr(0, 20 - next.length);
69552 }
69553 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
69554 },
69555
69556 // displays the character position where the lexing error occurred, i.e. for error messages
69557 showPosition: function showPosition() {
69558 var pre = this.pastInput();
69559 var c = new Array(pre.length + 1).join("-");
69560 return pre + this.upcomingInput() + "\n" + c + "^";
69561 },
69562
69563 // test the lexed token: return FALSE when not a match, otherwise return token
69564 test_match: function test_match(match, indexed_rule) {
69565 var token, lines, backup;
69566
69567 if (this.options.backtrack_lexer) {
69568 // save context
69569 backup = {
69570 yylineno: this.yylineno,
69571 yylloc: {
69572 first_line: this.yylloc.first_line,
69573 last_line: this.last_line,
69574 first_column: this.yylloc.first_column,
69575 last_column: this.yylloc.last_column
69576 },
69577 yytext: this.yytext,
69578 match: this.match,
69579 matches: this.matches,
69580 matched: this.matched,
69581 yyleng: this.yyleng,
69582 offset: this.offset,
69583 _more: this._more,
69584 _input: this._input,
69585 yy: this.yy,
69586 conditionStack: this.conditionStack.slice(0),
69587 done: this.done
69588 };
69589 if (this.options.ranges) {
69590 backup.yylloc.range = this.yylloc.range.slice(0);
69591 }
69592 }
69593
69594 lines = match[0].match(/(?:\r\n?|\n).*/g);
69595 if (lines) {
69596 this.yylineno += lines.length;
69597 }
69598 this.yylloc = {
69599 first_line: this.yylloc.last_line,
69600 last_line: this.yylineno + 1,
69601 first_column: this.yylloc.last_column,
69602 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
69603 };
69604 this.yytext += match[0];
69605 this.match += match[0];
69606 this.matches = match;
69607 this.yyleng = this.yytext.length;
69608 if (this.options.ranges) {
69609 this.yylloc.range = [this.offset, this.offset += this.yyleng];
69610 }
69611 this._more = false;
69612 this._backtrack = false;
69613 this._input = this._input.slice(match[0].length);
69614 this.matched += match[0];
69615 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
69616 if (this.done && this._input) {
69617 this.done = false;
69618 }
69619 if (token) {
69620 return token;
69621 } else if (this._backtrack) {
69622 // recover context
69623 for (var k in backup) {
69624 this[k] = backup[k];
69625 }
69626 return false; // rule action called reject() implying the next rule should be tested instead.
69627 }
69628 return false;
69629 },
69630
69631 // return next match in input
69632 next: function next() {
69633 if (this.done) {
69634 return this.EOF;
69635 }
69636 if (!this._input) {
69637 this.done = true;
69638 }
69639
69640 var token, match, tempMatch, index;
69641 if (!this._more) {
69642 this.yytext = '';
69643 this.match = '';
69644 }
69645 var rules = this._currentRules();
69646 for (var i = 0; i < rules.length; i++) {
69647 tempMatch = this._input.match(this.rules[rules[i]]);
69648 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
69649 match = tempMatch;
69650 index = i;
69651 if (this.options.backtrack_lexer) {
69652 token = this.test_match(tempMatch, rules[i]);
69653 if (token !== false) {
69654 return token;
69655 } else if (this._backtrack) {
69656 match = false;
69657 continue; // rule action called reject() implying a rule MISmatch.
69658 } else {
69659 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
69660 return false;
69661 }
69662 } else if (!this.options.flex) {
69663 break;
69664 }
69665 }
69666 }
69667 if (match) {
69668 token = this.test_match(match, rules[index]);
69669 if (token !== false) {
69670 return token;
69671 }
69672 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
69673 return false;
69674 }
69675 if (this._input === "") {
69676 return this.EOF;
69677 } else {
69678 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
69679 text: "",
69680 token: null,
69681 line: this.yylineno
69682 });
69683 }
69684 },
69685
69686 // return next match that has a token
69687 lex: function lex() {
69688 var r = this.next();
69689 if (r) {
69690 return r;
69691 } else {
69692 return this.lex();
69693 }
69694 },
69695
69696 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
69697 begin: function begin(condition) {
69698 this.conditionStack.push(condition);
69699 },
69700
69701 // pop the previously active lexer condition state off the condition stack
69702 popState: function popState() {
69703 var n = this.conditionStack.length - 1;
69704 if (n > 0) {
69705 return this.conditionStack.pop();
69706 } else {
69707 return this.conditionStack[0];
69708 }
69709 },
69710
69711 // produce the lexer rule set which is active for the currently active lexer condition state
69712 _currentRules: function _currentRules() {
69713 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
69714 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
69715 } else {
69716 return this.conditions["INITIAL"].rules;
69717 }
69718 },
69719
69720 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
69721 topState: function topState(n) {
69722 n = this.conditionStack.length - 1 - Math.abs(n || 0);
69723 if (n >= 0) {
69724 return this.conditionStack[n];
69725 } else {
69726 return "INITIAL";
69727 }
69728 },
69729
69730 // alias for begin(condition)
69731 pushState: function pushState(condition) {
69732 this.begin(condition);
69733 },
69734
69735 // return the number of states currently on the stack
69736 stateStackSize: function stateStackSize() {
69737 return this.conditionStack.length;
69738 },
69739 options: { "case-insensitive": true },
69740 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
69741 var YYSTATE = YY_START;
69742 switch ($avoiding_name_collisions) {
69743 case 0:
69744 return 5;
69745 break;
69746 case 1:
69747 /* skip all whitespace */
69748 break;
69749 case 2:
69750 /* skip same-line whitespace */
69751 break;
69752 case 3:
69753 /* skip comments */
69754 break;
69755 case 4:
69756 /* skip comments */
69757 break;
69758 case 5:
69759 this.begin('ID');return 10;
69760 break;
69761 case 6:
69762 this.begin('ALIAS');return 40;
69763 break;
69764 case 7:
69765 this.popState();this.popState();this.begin('LINE');return 12;
69766 break;
69767 case 8:
69768 this.popState();this.popState();return 5;
69769 break;
69770 case 9:
69771 this.begin('LINE');return 20;
69772 break;
69773 case 10:
69774 this.begin('LINE');return 22;
69775 break;
69776 case 11:
69777 this.begin('LINE');return 23;
69778 break;
69779 case 12:
69780 this.begin('LINE');return 28;
69781 break;
69782 case 13:
69783 this.begin('LINE');return 25;
69784 break;
69785 case 14:
69786 this.begin('LINE');return 27;
69787 break;
69788 case 15:
69789 this.popState();return 13;
69790 break;
69791 case 16:
69792 return 21;
69793 break;
69794 case 17:
69795 return 35;
69796 break;
69797 case 18:
69798 return 36;
69799 break;
69800 case 19:
69801 return 31;
69802 break;
69803 case 20:
69804 return 29;
69805 break;
69806 case 21:
69807 this.begin('ID');return 15;
69808 break;
69809 case 22:
69810 this.begin('ID');return 16;
69811 break;
69812 case 23:
69813 return 18;
69814 break;
69815 case 24:
69816 return 6;
69817 break;
69818 case 25:
69819 return 34;
69820 break;
69821 case 26:
69822 return 5;
69823 break;
69824 case 27:
69825 yy_.yytext = yy_.yytext.trim();return 40;
69826 break;
69827 case 28:
69828 return 43;
69829 break;
69830 case 29:
69831 return 44;
69832 break;
69833 case 30:
69834 return 41;
69835 break;
69836 case 31:
69837 return 42;
69838 break;
69839 case 32:
69840 return 45;
69841 break;
69842 case 33:
69843 return 46;
69844 break;
69845 case 34:
69846 return 47;
69847 break;
69848 case 35:
69849 return 38;
69850 break;
69851 case 36:
69852 return 39;
69853 break;
69854 case 37:
69855 return 5;
69856 break;
69857 case 38:
69858 return 'INVALID';
69859 break;
69860 }
69861 },
69862 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],
69863 conditions: { "LINE": { "rules": [2, 3, 15], "inclusive": false }, "ALIAS": { "rules": [2, 3, 7, 8], "inclusive": false }, "ID": { "rules": [2, 3, 6], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 4, 5, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "inclusive": true } }
69864 };
69865 return lexer;
69866 }();
69867 parser.lexer = lexer;
69868 function Parser() {
69869 this.yy = {};
69870 }
69871 Parser.prototype = parser;parser.Parser = Parser;
69872 return new Parser();
69873}();
69874
69875if (true) {
69876 exports.parser = parser;
69877 exports.Parser = parser.Parser;
69878 exports.parse = function () {
69879 return parser.parse.apply(parser, arguments);
69880 };
69881 exports.main = function commonjsMain(args) {
69882 if (!args[1]) {
69883 console.log('Usage: ' + args[0] + ' FILE');
69884 process.exit(1);
69885 }
69886 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");
69887 return exports.parser.parse(source);
69888 };
69889 if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) {
69890 exports.main(process.argv.slice(1));
69891 }
69892}
69893/* 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)))
69894
69895/***/ }),
69896
69897/***/ "./src/diagrams/sequence/sequenceDb.js":
69898/*!*********************************************!*\
69899 !*** ./src/diagrams/sequence/sequenceDb.js ***!
69900 \*********************************************/
69901/*! no static exports found */
69902/***/ (function(module, exports, __webpack_require__) {
69903
69904"use strict";
69905
69906
69907Object.defineProperty(exports, "__esModule", {
69908 value: true
69909});
69910exports.apply = exports.setTitle = exports.addNote = exports.PLACEMENT = exports.ARROWTYPE = exports.LINETYPE = exports.clear = exports.getTitle = exports.getActorKeys = exports.getActor = exports.getActors = exports.getMessages = exports.addSignal = exports.addMessage = exports.addActor = undefined;
69911
69912var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
69913
69914var actors = {};
69915var messages = [];
69916var notes = [];
69917var title = '';
69918
69919var addActor = exports.addActor = function addActor(id, name, description) {
69920 // Don't allow description nulling
69921 var old = actors[id];
69922 if (old && name === old.name && description == null) return;
69923
69924 // Don't allow null descriptions, either
69925 if (description == null) description = name;
69926
69927 actors[id] = { name: name, description: description };
69928};
69929
69930var addMessage = exports.addMessage = function addMessage(idFrom, idTo, message, answer) {
69931 messages.push({ from: idFrom, to: idTo, message: message, answer: answer });
69932};
69933
69934var addSignal = exports.addSignal = function addSignal(idFrom, idTo, message, messageType) {
69935 _logger.logger.debug('Adding message from=' + idFrom + ' to=' + idTo + ' message=' + message + ' type=' + messageType);
69936 messages.push({ from: idFrom, to: idTo, message: message, type: messageType });
69937};
69938
69939var getMessages = exports.getMessages = function getMessages() {
69940 return messages;
69941};
69942
69943var getActors = exports.getActors = function getActors() {
69944 return actors;
69945};
69946var getActor = exports.getActor = function getActor(id) {
69947 return actors[id];
69948};
69949var getActorKeys = exports.getActorKeys = function getActorKeys() {
69950 return Object.keys(actors);
69951};
69952var getTitle = exports.getTitle = function getTitle() {
69953 return title;
69954};
69955
69956var clear = exports.clear = function clear() {
69957 actors = {};
69958 messages = [];
69959};
69960
69961var LINETYPE = exports.LINETYPE = {
69962 SOLID: 0,
69963 DOTTED: 1,
69964 NOTE: 2,
69965 SOLID_CROSS: 3,
69966 DOTTED_CROSS: 4,
69967 SOLID_OPEN: 5,
69968 DOTTED_OPEN: 6,
69969 LOOP_START: 10,
69970 LOOP_END: 11,
69971 ALT_START: 12,
69972 ALT_ELSE: 13,
69973 ALT_END: 14,
69974 OPT_START: 15,
69975 OPT_END: 16,
69976 ACTIVE_START: 17,
69977 ACTIVE_END: 18,
69978 PAR_START: 19,
69979 PAR_AND: 20,
69980 PAR_END: 21
69981};
69982
69983var ARROWTYPE = exports.ARROWTYPE = {
69984 FILLED: 0,
69985 OPEN: 1
69986};
69987
69988var PLACEMENT = exports.PLACEMENT = {
69989 LEFTOF: 0,
69990 RIGHTOF: 1,
69991 OVER: 2
69992};
69993
69994var addNote = exports.addNote = function addNote(actor, placement, message) {
69995 var note = { actor: actor, placement: placement, message: message
69996
69997 // Coerce actor into a [to, from, ...] array
69998 };var actors = [].concat(actor, actor);
69999
70000 notes.push(note);
70001 messages.push({ from: actors[0], to: actors[1], message: message, type: LINETYPE.NOTE, placement: placement });
70002};
70003
70004var setTitle = exports.setTitle = function setTitle(titleText) {
70005 title = titleText;
70006};
70007
70008var apply = exports.apply = function apply(param) {
70009 if (param instanceof Array) {
70010 param.forEach(function (item) {
70011 apply(item);
70012 });
70013 } else {
70014 switch (param.type) {
70015 case 'addActor':
70016 addActor(param.actor, param.actor, param.description);
70017 break;
70018 case 'activeStart':
70019 addSignal(param.actor, undefined, undefined, param.signalType);
70020 break;
70021 case 'activeEnd':
70022 addSignal(param.actor, undefined, undefined, param.signalType);
70023 break;
70024 case 'addNote':
70025 addNote(param.actor, param.placement, param.text);
70026 break;
70027 case 'addMessage':
70028 addSignal(param.from, param.to, param.msg, param.signalType);
70029 break;
70030 case 'loopStart':
70031 addSignal(undefined, undefined, param.loopText, param.signalType);
70032 break;
70033 case 'loopEnd':
70034 addSignal(undefined, undefined, undefined, param.signalType);
70035 break;
70036 case 'optStart':
70037 addSignal(undefined, undefined, param.optText, param.signalType);
70038 break;
70039 case 'optEnd':
70040 addSignal(undefined, undefined, undefined, param.signalType);
70041 break;
70042 case 'altStart':
70043 addSignal(undefined, undefined, param.altText, param.signalType);
70044 break;
70045 case 'else':
70046 addSignal(undefined, undefined, param.altText, param.signalType);
70047 break;
70048 case 'altEnd':
70049 addSignal(undefined, undefined, undefined, param.signalType);
70050 break;
70051 case 'setTitle':
70052 setTitle(param.text);
70053 break;
70054 case 'parStart':
70055 addSignal(undefined, undefined, param.parText, param.signalType);
70056 break;
70057 case 'and':
70058 addSignal(undefined, undefined, param.parText, param.signalType);
70059 break;
70060 case 'parEnd':
70061 addSignal(undefined, undefined, undefined, param.signalType);
70062 break;
70063 }
70064 }
70065};
70066
70067exports.default = {
70068 addActor: addActor,
70069 addMessage: addMessage,
70070 addSignal: addSignal,
70071 getMessages: getMessages,
70072 getActors: getActors,
70073 getActor: getActor,
70074 getActorKeys: getActorKeys,
70075 getTitle: getTitle,
70076 clear: clear,
70077 LINETYPE: LINETYPE,
70078 ARROWTYPE: ARROWTYPE,
70079 PLACEMENT: PLACEMENT,
70080 addNote: addNote,
70081 setTitle: setTitle,
70082 apply: apply
70083};
70084
70085/***/ }),
70086
70087/***/ "./src/diagrams/sequence/sequenceRenderer.js":
70088/*!***************************************************!*\
70089 !*** ./src/diagrams/sequence/sequenceRenderer.js ***!
70090 \***************************************************/
70091/*! no static exports found */
70092/***/ (function(module, exports, __webpack_require__) {
70093
70094"use strict";
70095
70096
70097Object.defineProperty(exports, "__esModule", {
70098 value: true
70099});
70100exports.draw = exports.setConf = exports.drawActors = exports.bounds = undefined;
70101
70102var _d = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
70103
70104var d3 = _interopRequireWildcard(_d);
70105
70106var _svgDraw = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/sequence/svgDraw.js");
70107
70108var _svgDraw2 = _interopRequireDefault(_svgDraw);
70109
70110var _logger = __webpack_require__(/*! ../../logger */ "./src/logger.js");
70111
70112var _sequenceDiagram = __webpack_require__(/*! ./parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.js");
70113
70114var _sequenceDb = __webpack_require__(/*! ./sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
70115
70116var _sequenceDb2 = _interopRequireDefault(_sequenceDb);
70117
70118function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
70119
70120function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
70121
70122_sequenceDiagram.parser.yy = _sequenceDb2.default;
70123
70124var conf = {
70125
70126 diagramMarginX: 50,
70127 diagramMarginY: 30,
70128 // Margin between actors
70129 actorMargin: 50,
70130 // Width of actor boxes
70131 width: 150,
70132 // Height of actor boxes
70133 height: 65,
70134 // Margin around loop boxes
70135 boxMargin: 10,
70136 boxTextMargin: 5,
70137 noteMargin: 10,
70138 // Space between messages
70139 messageMargin: 35,
70140 // mirror actors under diagram
70141 mirrorActors: false,
70142 // Depending on css styling this might need adjustment
70143 // Prolongs the edge of the diagram downwards
70144 bottomMarginAdj: 1,
70145
70146 // width of activation box
70147 activationWidth: 10,
70148
70149 // text placement as: tspan | fo | old only text as before
70150 textPlacement: 'tspan'
70151};
70152
70153var bounds = exports.bounds = {
70154 data: {
70155 startx: undefined,
70156 stopx: undefined,
70157 starty: undefined,
70158 stopy: undefined
70159 },
70160 verticalPos: 0,
70161
70162 sequenceItems: [],
70163 activations: [],
70164 init: function init() {
70165 this.sequenceItems = [];
70166 this.activations = [];
70167 this.data = {
70168 startx: undefined,
70169 stopx: undefined,
70170 starty: undefined,
70171 stopy: undefined
70172 };
70173 this.verticalPos = 0;
70174 },
70175 updateVal: function updateVal(obj, key, val, fun) {
70176 if (typeof obj[key] === 'undefined') {
70177 obj[key] = val;
70178 } else {
70179 obj[key] = fun(val, obj[key]);
70180 }
70181 },
70182 updateBounds: function updateBounds(startx, starty, stopx, stopy) {
70183 var _self = this;
70184 var cnt = 0;
70185 function updateFn(type) {
70186 return function updateItemBounds(item) {
70187 cnt++;
70188 // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
70189 var n = _self.sequenceItems.length - cnt + 1;
70190
70191 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
70192 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
70193
70194 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
70195 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
70196
70197 if (!(type === 'activation')) {
70198 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
70199 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
70200
70201 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
70202 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
70203 }
70204 };
70205 }
70206
70207 this.sequenceItems.forEach(updateFn());
70208 this.activations.forEach(updateFn('activation'));
70209 },
70210 insert: function insert(startx, starty, stopx, stopy) {
70211 var _startx = Math.min(startx, stopx);
70212 var _stopx = Math.max(startx, stopx);
70213 var _starty = Math.min(starty, stopy);
70214 var _stopy = Math.max(starty, stopy);
70215
70216 this.updateVal(bounds.data, 'startx', _startx, Math.min);
70217 this.updateVal(bounds.data, 'starty', _starty, Math.min);
70218 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
70219 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
70220
70221 this.updateBounds(_startx, _starty, _stopx, _stopy);
70222 },
70223 newActivation: function newActivation(message, diagram) {
70224 var actorRect = _sequenceDiagram.parser.yy.getActors()[message.from.actor];
70225 var stackedSize = actorActivations(message.from.actor).length;
70226 var x = actorRect.x + conf.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
70227 this.activations.push({
70228 startx: x,
70229 starty: this.verticalPos + 2,
70230 stopx: x + conf.activationWidth,
70231 stopy: undefined,
70232 actor: message.from.actor,
70233 anchored: _svgDraw2.default.anchorElement(diagram)
70234 });
70235 },
70236 endActivation: function endActivation(message) {
70237 // find most recent activation for given actor
70238 var lastActorActivationIdx = this.activations.map(function (activation) {
70239 return activation.actor;
70240 }).lastIndexOf(message.from.actor);
70241 var activation = this.activations.splice(lastActorActivationIdx, 1)[0];
70242 return activation;
70243 },
70244 newLoop: function newLoop(title) {
70245 this.sequenceItems.push({ startx: undefined, starty: this.verticalPos, stopx: undefined, stopy: undefined, title: title });
70246 },
70247 endLoop: function endLoop() {
70248 var loop = this.sequenceItems.pop();
70249 return loop;
70250 },
70251 addSectionToLoop: function addSectionToLoop(message) {
70252 var loop = this.sequenceItems.pop();
70253 loop.sections = loop.sections || [];
70254 loop.sectionTitles = loop.sectionTitles || [];
70255 loop.sections.push(bounds.getVerticalPos());
70256 loop.sectionTitles.push(message);
70257 this.sequenceItems.push(loop);
70258 },
70259 bumpVerticalPos: function bumpVerticalPos(bump) {
70260 this.verticalPos = this.verticalPos + bump;
70261 this.data.stopy = this.verticalPos;
70262 },
70263 getVerticalPos: function getVerticalPos() {
70264 return this.verticalPos;
70265 },
70266 getBounds: function getBounds() {
70267 return this.data;
70268 }
70269};
70270
70271var _drawLongText = function _drawLongText(text, x, y, g, width) {
70272 var textHeight = 0;
70273 var lines = text.split(/<br\/?>/ig);
70274 var _iteratorNormalCompletion = true;
70275 var _didIteratorError = false;
70276 var _iteratorError = undefined;
70277
70278 try {
70279 for (var _iterator = lines[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
70280 var line = _step.value;
70281
70282 var textObj = _svgDraw2.default.getTextObj();
70283 textObj.x = x;
70284 textObj.y = y + textHeight;
70285 textObj.textMargin = conf.noteMargin;
70286 textObj.dy = '1em';
70287 textObj.text = line;
70288 textObj.class = 'noteText';
70289 var textElem = _svgDraw2.default.drawText(g, textObj, width);
70290 textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
70291 }
70292 } catch (err) {
70293 _didIteratorError = true;
70294 _iteratorError = err;
70295 } finally {
70296 try {
70297 if (!_iteratorNormalCompletion && _iterator.return) {
70298 _iterator.return();
70299 }
70300 } finally {
70301 if (_didIteratorError) {
70302 throw _iteratorError;
70303 }
70304 }
70305 }
70306
70307 return textHeight;
70308};
70309
70310/**
70311 * Draws an actor in the diagram with the attaced line
70312 * @param center - The center of the the actor
70313 * @param pos The position if the actor in the liost of actors
70314 * @param description The text in the box
70315 */
70316var drawNote = function drawNote(elem, startx, verticalPos, msg, forceWidth) {
70317 var rect = _svgDraw2.default.getNoteRect();
70318 rect.x = startx;
70319 rect.y = verticalPos;
70320 rect.width = forceWidth || conf.width;
70321 rect.class = 'note';
70322
70323 var g = elem.append('g');
70324 var rectElem = _svgDraw2.default.drawRect(g, rect);
70325
70326 var textHeight = _drawLongText(msg.message, startx - 4, verticalPos + 24, g, rect.width - conf.noteMargin);
70327
70328 bounds.insert(startx, verticalPos, startx + rect.width, verticalPos + 2 * conf.noteMargin + textHeight);
70329 rectElem.attr('height', textHeight + 2 * conf.noteMargin);
70330 bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);
70331};
70332
70333/**
70334 * Draws a message
70335 * @param elem
70336 * @param startx
70337 * @param stopx
70338 * @param verticalPos
70339 * @param txtCenter
70340 * @param msg
70341 */
70342var drawMessage = function drawMessage(elem, startx, stopx, verticalPos, msg) {
70343 var g = elem.append('g');
70344 var txtCenter = startx + (stopx - startx) / 2;
70345
70346 var textElem = g.append('text') // text label for the x axis
70347 .attr('x', txtCenter).attr('y', verticalPos - 7).style('text-anchor', 'middle').attr('class', 'messageText').text(msg.message);
70348
70349 var textWidth = (textElem._groups || textElem)[0][0].getBBox().width;
70350
70351 var line = void 0;
70352 if (startx === stopx) {
70353 line = g.append('path').attr('d', 'M ' + startx + ',' + verticalPos + ' C ' + (startx + 60) + ',' + (verticalPos - 10) + ' ' + (startx + 60) + ',' + (verticalPos + 30) + ' ' + startx + ',' + (verticalPos + 20));
70354
70355 bounds.bumpVerticalPos(30);
70356 var dx = Math.max(textWidth / 2, 100);
70357 bounds.insert(startx - dx, bounds.getVerticalPos() - 10, stopx + dx, bounds.getVerticalPos());
70358 } else {
70359 line = g.append('line');
70360 line.attr('x1', startx);
70361 line.attr('y1', verticalPos);
70362 line.attr('x2', stopx);
70363 line.attr('y2', verticalPos);
70364 bounds.insert(startx, bounds.getVerticalPos() - 10, stopx, bounds.getVerticalPos());
70365 }
70366 // Make an SVG Container
70367 // Draw the line
70368 if (msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED || msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED_CROSS || msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED_OPEN) {
70369 line.style('stroke-dasharray', '3, 3');
70370 line.attr('class', 'messageLine1');
70371 } else {
70372 line.attr('class', 'messageLine0');
70373 }
70374
70375 var url = '';
70376 if (conf.arrowMarkerAbsolute) {
70377 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
70378 url = url.replace(/\(/g, '\\(');
70379 url = url.replace(/\)/g, '\\)');
70380 }
70381
70382 line.attr('stroke-width', 2);
70383 line.attr('stroke', 'black');
70384 line.style('fill', 'none'); // remove any fill colour
70385 if (msg.type === _sequenceDiagram.parser.yy.LINETYPE.SOLID || msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED) {
70386 line.attr('marker-end', 'url(' + url + '#arrowhead)');
70387 }
70388
70389 if (msg.type === _sequenceDiagram.parser.yy.LINETYPE.SOLID_CROSS || msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED_CROSS) {
70390 line.attr('marker-end', 'url(' + url + '#crosshead)');
70391 }
70392};
70393
70394var drawActors = exports.drawActors = function drawActors(diagram, actors, actorKeys, verticalPos) {
70395 // Draw the actors
70396 for (var i = 0; i < actorKeys.length; i++) {
70397 var key = actorKeys[i];
70398
70399 // Add some rendering data to the object
70400 actors[key].x = i * conf.actorMargin + i * conf.width;
70401 actors[key].y = verticalPos;
70402 actors[key].width = conf.diagramMarginX;
70403 actors[key].height = conf.diagramMarginY;
70404
70405 // Draw the box with the attached line
70406 _svgDraw2.default.drawActor(diagram, actors[key].x, verticalPos, actors[key].description, conf);
70407 bounds.insert(actors[key].x, verticalPos, actors[key].x + conf.width, conf.height);
70408 }
70409
70410 // Add a margin between the actor boxes and the first arrow
70411 bounds.bumpVerticalPos(conf.height);
70412};
70413
70414var setConf = exports.setConf = function setConf(cnf) {
70415 var keys = Object.keys(cnf);
70416
70417 keys.forEach(function (key) {
70418 conf[key] = cnf[key];
70419 });
70420};
70421
70422var actorActivations = function actorActivations(actor) {
70423 return bounds.activations.filter(function (activation) {
70424 return activation.actor === actor;
70425 });
70426};
70427
70428var actorFlowVerticaBounds = function actorFlowVerticaBounds(actor) {
70429 // handle multiple stacked activations for same actor
70430 var actors = _sequenceDiagram.parser.yy.getActors();
70431 var activations = actorActivations(actor);
70432
70433 var left = activations.reduce(function (acc, activation) {
70434 return Math.min(acc, activation.startx);
70435 }, actors[actor].x + conf.width / 2);
70436 var right = activations.reduce(function (acc, activation) {
70437 return Math.max(acc, activation.stopx);
70438 }, actors[actor].x + conf.width / 2);
70439 return [left, right];
70440};
70441
70442/**
70443 * Draws a flowchart in the tag with id: id based on the graph definition in text.
70444 * @param text
70445 * @param id
70446 */
70447var draw = exports.draw = function draw(text, id) {
70448 _sequenceDiagram.parser.yy.clear();
70449 _sequenceDiagram.parser.parse(text + '\n');
70450
70451 bounds.init();
70452 var diagram = d3.select('[id="' + id + '"]');
70453
70454 var startx = void 0;
70455 var stopx = void 0;
70456 var forceWidth = void 0;
70457
70458 // Fetch data from the parsing
70459 var actors = _sequenceDiagram.parser.yy.getActors();
70460 var actorKeys = _sequenceDiagram.parser.yy.getActorKeys();
70461 var messages = _sequenceDiagram.parser.yy.getMessages();
70462 var title = _sequenceDiagram.parser.yy.getTitle();
70463 drawActors(diagram, actors, actorKeys, 0);
70464
70465 // The arrow head definition is attached to the svg once
70466 _svgDraw2.default.insertArrowHead(diagram);
70467 _svgDraw2.default.insertArrowCrossHead(diagram);
70468
70469 function activeEnd(msg, verticalPos) {
70470 var activationData = bounds.endActivation(msg);
70471 if (activationData.starty + 18 > verticalPos) {
70472 activationData.starty = verticalPos - 6;
70473 verticalPos += 12;
70474 }
70475 _svgDraw2.default.drawActivation(diagram, activationData, verticalPos, conf);
70476
70477 bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
70478 }
70479
70480 // const lastMsg
70481
70482 // Draw the messages/signals
70483 messages.forEach(function (msg) {
70484 var loopData = void 0;
70485 switch (msg.type) {
70486 case _sequenceDiagram.parser.yy.LINETYPE.NOTE:
70487 bounds.bumpVerticalPos(conf.boxMargin);
70488
70489 startx = actors[msg.from].x;
70490 stopx = actors[msg.to].x;
70491
70492 if (msg.placement === _sequenceDiagram.parser.yy.PLACEMENT.RIGHTOF) {
70493 drawNote(diagram, startx + (conf.width + conf.actorMargin) / 2, bounds.getVerticalPos(), msg);
70494 } else if (msg.placement === _sequenceDiagram.parser.yy.PLACEMENT.LEFTOF) {
70495 drawNote(diagram, startx - (conf.width + conf.actorMargin) / 2, bounds.getVerticalPos(), msg);
70496 } else if (msg.to === msg.from) {
70497 // Single-actor over
70498 drawNote(diagram, startx, bounds.getVerticalPos(), msg);
70499 } else {
70500 // Multi-actor over
70501 forceWidth = Math.abs(startx - stopx) + conf.actorMargin;
70502 drawNote(diagram, (startx + stopx + conf.width - forceWidth) / 2, bounds.getVerticalPos(), msg, forceWidth);
70503 }
70504 break;
70505 case _sequenceDiagram.parser.yy.LINETYPE.ACTIVE_START:
70506 bounds.newActivation(msg, diagram);
70507 break;
70508 case _sequenceDiagram.parser.yy.LINETYPE.ACTIVE_END:
70509 activeEnd(msg, bounds.getVerticalPos());
70510 break;
70511 case _sequenceDiagram.parser.yy.LINETYPE.LOOP_START:
70512 bounds.bumpVerticalPos(conf.boxMargin);
70513 bounds.newLoop(msg.message);
70514 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
70515 break;
70516 case _sequenceDiagram.parser.yy.LINETYPE.LOOP_END:
70517 loopData = bounds.endLoop();
70518
70519 _svgDraw2.default.drawLoop(diagram, loopData, 'loop', conf);
70520 bounds.bumpVerticalPos(conf.boxMargin);
70521 break;
70522 case _sequenceDiagram.parser.yy.LINETYPE.OPT_START:
70523 bounds.bumpVerticalPos(conf.boxMargin);
70524 bounds.newLoop(msg.message);
70525 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
70526 break;
70527 case _sequenceDiagram.parser.yy.LINETYPE.OPT_END:
70528 loopData = bounds.endLoop();
70529
70530 _svgDraw2.default.drawLoop(diagram, loopData, 'opt', conf);
70531 bounds.bumpVerticalPos(conf.boxMargin);
70532 break;
70533 case _sequenceDiagram.parser.yy.LINETYPE.ALT_START:
70534 bounds.bumpVerticalPos(conf.boxMargin);
70535 bounds.newLoop(msg.message);
70536 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
70537 break;
70538 case _sequenceDiagram.parser.yy.LINETYPE.ALT_ELSE:
70539 bounds.bumpVerticalPos(conf.boxMargin);
70540 loopData = bounds.addSectionToLoop(msg.message);
70541 bounds.bumpVerticalPos(conf.boxMargin);
70542 break;
70543 case _sequenceDiagram.parser.yy.LINETYPE.ALT_END:
70544 loopData = bounds.endLoop();
70545
70546 _svgDraw2.default.drawLoop(diagram, loopData, 'alt', conf);
70547 bounds.bumpVerticalPos(conf.boxMargin);
70548 break;
70549 case _sequenceDiagram.parser.yy.LINETYPE.PAR_START:
70550 bounds.bumpVerticalPos(conf.boxMargin);
70551 bounds.newLoop(msg.message);
70552 bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
70553 break;
70554 case _sequenceDiagram.parser.yy.LINETYPE.PAR_AND:
70555 bounds.bumpVerticalPos(conf.boxMargin);
70556 loopData = bounds.addSectionToLoop(msg.message);
70557 bounds.bumpVerticalPos(conf.boxMargin);
70558 break;
70559 case _sequenceDiagram.parser.yy.LINETYPE.PAR_END:
70560 loopData = bounds.endLoop();
70561 _svgDraw2.default.drawLoop(diagram, loopData, 'par', conf);
70562 bounds.bumpVerticalPos(conf.boxMargin);
70563 break;
70564 default:
70565 try {
70566 // lastMsg = msg
70567 bounds.bumpVerticalPos(conf.messageMargin);
70568 var fromBounds = actorFlowVerticaBounds(msg.from);
70569 var toBounds = actorFlowVerticaBounds(msg.to);
70570 var fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
70571 var toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
70572 startx = fromBounds[fromIdx];
70573 stopx = toBounds[toIdx];
70574
70575 var verticalPos = bounds.getVerticalPos();
70576 drawMessage(diagram, startx, stopx, verticalPos, msg);
70577 var allBounds = fromBounds.concat(toBounds);
70578 bounds.insert(Math.min.apply(null, allBounds), verticalPos, Math.max.apply(null, allBounds), verticalPos);
70579 } catch (e) {
70580 _logger.logger.error('error while drawing message', e);
70581 }
70582 }
70583 });
70584
70585 if (conf.mirrorActors) {
70586 // Draw actors below diagram
70587 bounds.bumpVerticalPos(conf.boxMargin * 2);
70588 drawActors(diagram, actors, actorKeys, bounds.getVerticalPos());
70589 }
70590
70591 var box = bounds.getBounds();
70592
70593 // Adjust line height of actor lines now that the height of the diagram is known
70594 _logger.logger.debug('For line height fix Querying: #' + id + ' .actor-line');
70595 var actorLines = d3.selectAll('#' + id + ' .actor-line');
70596 actorLines.attr('y2', box.stopy);
70597
70598 var height = box.stopy - box.starty + 2 * conf.diagramMarginY;
70599 if (conf.mirrorActors) {
70600 height = height - conf.boxMargin + conf.bottomMarginAdj;
70601 }
70602
70603 var width = box.stopx - box.startx + 2 * conf.diagramMarginX;
70604
70605 if (title) {
70606 diagram.append('text').text(title).attr('x', (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr('y', -25);
70607 }
70608
70609 if (conf.useMaxWidth) {
70610 diagram.attr('height', '100%');
70611 diagram.attr('width', '100%');
70612 diagram.attr('style', 'max-width:' + width + 'px;');
70613 } else {
70614 diagram.attr('height', height);
70615 diagram.attr('width', width);
70616 }
70617 var extraVertForTitle = title ? 40 : 0;
70618 diagram.attr('viewBox', box.startx - conf.diagramMarginX + ' -' + (conf.diagramMarginY + extraVertForTitle) + ' ' + width + ' ' + (height + extraVertForTitle));
70619};
70620
70621exports.default = {
70622 bounds: bounds,
70623 drawActors: drawActors,
70624 setConf: setConf,
70625 draw: draw
70626};
70627
70628/***/ }),
70629
70630/***/ "./src/diagrams/sequence/svgDraw.js":
70631/*!******************************************!*\
70632 !*** ./src/diagrams/sequence/svgDraw.js ***!
70633 \******************************************/
70634/*! no static exports found */
70635/***/ (function(module, exports, __webpack_require__) {
70636
70637"use strict";
70638
70639
70640Object.defineProperty(exports, "__esModule", {
70641 value: true
70642});
70643var drawRect = exports.drawRect = function drawRect(elem, rectData) {
70644 var rectElem = elem.append('rect');
70645 rectElem.attr('x', rectData.x);
70646 rectElem.attr('y', rectData.y);
70647 rectElem.attr('fill', rectData.fill);
70648 rectElem.attr('stroke', rectData.stroke);
70649 rectElem.attr('width', rectData.width);
70650 rectElem.attr('height', rectData.height);
70651 rectElem.attr('rx', rectData.rx);
70652 rectElem.attr('ry', rectData.ry);
70653
70654 if (typeof rectData.class !== 'undefined') {
70655 rectElem.attr('class', rectData.class);
70656 }
70657
70658 return rectElem;
70659};
70660
70661var drawText = exports.drawText = function drawText(elem, textData, width) {
70662 // Remove and ignore br:s
70663 var nText = textData.text.replace(/<br\/?>/ig, ' ');
70664
70665 var textElem = elem.append('text');
70666 textElem.attr('x', textData.x);
70667 textElem.attr('y', textData.y);
70668 textElem.style('text-anchor', textData.anchor);
70669 textElem.attr('fill', textData.fill);
70670 if (typeof textData.class !== 'undefined') {
70671 textElem.attr('class', textData.class);
70672 }
70673
70674 var span = textElem.append('tspan');
70675 span.attr('x', textData.x + textData.textMargin * 2);
70676 span.attr('fill', textData.fill);
70677 span.text(nText);
70678
70679 return textElem;
70680};
70681
70682var drawLabel = exports.drawLabel = function drawLabel(elem, txtObject) {
70683 function genPoints(x, y, width, height, cut) {
70684 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
70685 }
70686 var polygon = elem.append('polygon');
70687 polygon.attr('points', genPoints(txtObject.x, txtObject.y, 50, 20, 7));
70688 polygon.attr('class', 'labelBox');
70689
70690 txtObject.y = txtObject.y + txtObject.labelMargin;
70691 txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
70692 drawText(elem, txtObject);
70693};
70694
70695var actorCnt = -1;
70696/**
70697 * Draws an actor in the diagram with the attaced line
70698 * @param center - The center of the the actor
70699 * @param pos The position if the actor in the liost of actors
70700 * @param description The text in the box
70701 */
70702var drawActor = exports.drawActor = function drawActor(elem, left, verticalPos, description, conf) {
70703 var center = left + conf.width / 2;
70704 var g = elem.append('g');
70705 if (verticalPos === 0) {
70706 actorCnt++;
70707 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');
70708 }
70709
70710 var rect = getNoteRect();
70711 rect.x = left;
70712 rect.y = verticalPos;
70713 rect.fill = '#eaeaea';
70714 rect.width = conf.width;
70715 rect.height = conf.height;
70716 rect.class = 'actor';
70717 rect.rx = 3;
70718 rect.ry = 3;
70719 drawRect(g, rect);
70720
70721 _drawTextCandidateFunc(conf)(description, g, rect.x, rect.y, rect.width, rect.height, { 'class': 'actor' });
70722};
70723
70724var anchorElement = exports.anchorElement = function anchorElement(elem) {
70725 return elem.append('g');
70726};
70727/**
70728 * Draws an actor in the diagram with the attaced line
70729 * @param elem - element to append activation rect
70730 * @param bounds - activation box bounds
70731 * @param verticalPos - precise y cooridnate of bottom activation box edge
70732 */
70733var drawActivation = exports.drawActivation = function drawActivation(elem, bounds, verticalPos) {
70734 var rect = getNoteRect();
70735 var g = bounds.anchored;
70736 rect.x = bounds.startx;
70737 rect.y = bounds.starty;
70738 rect.fill = '#f4f4f4';
70739 rect.width = bounds.stopx - bounds.startx;
70740 rect.height = verticalPos - bounds.starty;
70741 drawRect(g, rect);
70742};
70743
70744/**
70745 * Draws an actor in the diagram with the attaced line
70746 * @param center - The center of the the actor
70747 * @param pos The position if the actor in the list of actors
70748 * @param description The text in the box
70749 */
70750var drawLoop = exports.drawLoop = function drawLoop(elem, bounds, labelText, conf) {
70751 var g = elem.append('g');
70752 var drawLoopLine = function drawLoopLine(startx, starty, stopx, stopy) {
70753 return g.append('line').attr('x1', startx).attr('y1', starty).attr('x2', stopx).attr('y2', stopy).attr('class', 'loopLine');
70754 };
70755 drawLoopLine(bounds.startx, bounds.starty, bounds.stopx, bounds.starty);
70756 drawLoopLine(bounds.stopx, bounds.starty, bounds.stopx, bounds.stopy);
70757 drawLoopLine(bounds.startx, bounds.stopy, bounds.stopx, bounds.stopy);
70758 drawLoopLine(bounds.startx, bounds.starty, bounds.startx, bounds.stopy);
70759 if (typeof bounds.sections !== 'undefined') {
70760 bounds.sections.forEach(function (item) {
70761 drawLoopLine(bounds.startx, item, bounds.stopx, item).style('stroke-dasharray', '3, 3');
70762 });
70763 }
70764
70765 var txt = getTextObj();
70766 txt.text = labelText;
70767 txt.x = bounds.startx;
70768 txt.y = bounds.starty;
70769 txt.labelMargin = 1.5 * 10; // This is the small box that says "loop"
70770 txt.class = 'labelText'; // Its size & position are fixed.
70771
70772 drawLabel(g, txt);
70773
70774 txt = getTextObj();
70775 txt.text = '[ ' + bounds.title + ' ]';
70776 txt.x = bounds.startx + (bounds.stopx - bounds.startx) / 2;
70777 txt.y = bounds.starty + 1.5 * conf.boxMargin;
70778 txt.anchor = 'middle';
70779 txt.class = 'loopText';
70780
70781 drawText(g, txt);
70782
70783 if (typeof bounds.sectionTitles !== 'undefined') {
70784 bounds.sectionTitles.forEach(function (item, idx) {
70785 if (item !== '') {
70786 txt.text = '[ ' + item + ' ]';
70787 txt.y = bounds.sections[idx] + 1.5 * conf.boxMargin;
70788 drawText(g, txt);
70789 }
70790 });
70791 }
70792};
70793
70794/**
70795 * Setup arrow head and define the marker. The result is appended to the svg.
70796 */
70797var insertArrowHead = exports.insertArrowHead = function insertArrowHead(elem) {
70798 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
70799};
70800/**
70801 * Setup arrow head and define the marker. The result is appended to the svg.
70802 */
70803var insertArrowCrossHead = exports.insertArrowCrossHead = function insertArrowCrossHead(elem) {
70804 var defs = elem.append('defs');
70805 var marker = defs.append('marker').attr('id', 'crosshead').attr('markerWidth', 15).attr('markerHeight', 8).attr('orient', 'auto').attr('refX', 16).attr('refY', 4);
70806
70807 // The arrow
70808 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');
70809
70810 // The cross
70811 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');
70812 // this is actual shape for arrowhead
70813};
70814
70815var getTextObj = exports.getTextObj = function getTextObj() {
70816 var txt = {
70817 x: 0,
70818 y: 0,
70819 'fill': 'black',
70820 'text-anchor': 'start',
70821 style: '#666',
70822 width: 100,
70823 height: 100,
70824 textMargin: 0,
70825 rx: 0,
70826 ry: 0
70827 };
70828 return txt;
70829};
70830
70831var getNoteRect = exports.getNoteRect = function getNoteRect() {
70832 var rect = {
70833 x: 0,
70834 y: 0,
70835 fill: '#EDF2AE',
70836 stroke: '#666',
70837 width: 100,
70838 anchor: 'start',
70839 height: 100,
70840 rx: 0,
70841 ry: 0
70842 };
70843 return rect;
70844};
70845
70846var _drawTextCandidateFunc = function () {
70847 function byText(content, g, x, y, width, height, textAttrs) {
70848 var text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('text-anchor', 'middle').text(content);
70849 _setTextAttrs(text, textAttrs);
70850 }
70851
70852 function byTspan(content, g, x, y, width, height, textAttrs) {
70853 var text = g.append('text').attr('x', x + width / 2).attr('y', y).style('text-anchor', 'middle');
70854 text.append('tspan').attr('x', x + width / 2).attr('dy', '0').text(content);
70855
70856 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
70857
70858 _setTextAttrs(text, textAttrs);
70859 }
70860
70861 function byFo(content, g, x, y, width, height, textAttrs) {
70862 var s = g.append('switch');
70863 var f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height);
70864
70865 var text = f.append('div').style('display', 'table').style('height', '100%').style('width', '100%');
70866
70867 text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
70868
70869 byTspan(content, s, x, y, width, height, textAttrs);
70870 _setTextAttrs(text, textAttrs);
70871 }
70872
70873 function _setTextAttrs(toText, fromTextAttrsDict) {
70874 for (var key in fromTextAttrsDict) {
70875 if (fromTextAttrsDict.hasOwnProperty(key)) {
70876 toText.attr(key, fromTextAttrsDict[key]);
70877 }
70878 }
70879 }
70880
70881 return function (conf) {
70882 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
70883 };
70884}();
70885
70886exports.default = {
70887 drawRect: drawRect,
70888 drawText: drawText,
70889 drawLabel: drawLabel,
70890 drawActor: drawActor,
70891 anchorElement: anchorElement,
70892 drawActivation: drawActivation,
70893 drawLoop: drawLoop,
70894 insertArrowHead: insertArrowHead,
70895 insertArrowCrossHead: insertArrowCrossHead,
70896 getTextObj: getTextObj,
70897 getNoteRect: getNoteRect
70898};
70899
70900/***/ }),
70901
70902/***/ "./src/logger.js":
70903/*!***********************!*\
70904 !*** ./src/logger.js ***!
70905 \***********************/
70906/*! no static exports found */
70907/***/ (function(module, exports, __webpack_require__) {
70908
70909"use strict";
70910
70911
70912Object.defineProperty(exports, "__esModule", {
70913 value: true
70914});
70915exports.setLogLevel = exports.logger = exports.LEVELS = undefined;
70916
70917var _moment = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js");
70918
70919var _moment2 = _interopRequireDefault(_moment);
70920
70921function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
70922
70923var LEVELS = exports.LEVELS = {
70924 debug: 1,
70925 info: 2,
70926 warn: 3,
70927 error: 4,
70928 fatal: 5
70929};
70930
70931var logger = exports.logger = {
70932 debug: function debug() {},
70933 info: function info() {},
70934 warn: function warn() {},
70935 error: function error() {},
70936 fatal: function fatal() {}
70937};
70938
70939var setLogLevel = exports.setLogLevel = function setLogLevel(level) {
70940 logger.debug = function () {};
70941 logger.info = function () {};
70942 logger.warn = function () {};
70943 logger.error = function () {};
70944 logger.fatal = function () {};
70945 if (level <= LEVELS.fatal) {
70946 logger.fatal = console.log.bind(console, '\x1b[35m', format('FATAL'));
70947 }
70948 if (level <= LEVELS.error) {
70949 logger.error = console.log.bind(console, '\x1b[31m', format('ERROR'));
70950 }
70951 if (level <= LEVELS.warn) {
70952 logger.warn = console.log.bind(console, '\x1B[33m', format('WARN'));
70953 }
70954 if (level <= LEVELS.info) {
70955 logger.info = console.log.bind(console, '\x1b[34m', format('INFO'));
70956 }
70957 if (level <= LEVELS.debug) {
70958 logger.debug = console.log.bind(console, '\x1b[32m', format('DEBUG'));
70959 }
70960};
70961
70962var format = function format(level) {
70963 var time = (0, _moment2.default)().format('HH:mm:ss.SSS');
70964 return time + ' : ' + level + ' : ';
70965};
70966
70967/***/ }),
70968
70969/***/ "./src/mermaid.js":
70970/*!************************!*\
70971 !*** ./src/mermaid.js ***!
70972 \************************/
70973/*! no static exports found */
70974/***/ (function(module, exports, __webpack_require__) {
70975
70976"use strict";
70977
70978
70979Object.defineProperty(exports, "__esModule", {
70980 value: true
70981});
70982
70983var _he = __webpack_require__(/*! he */ "./node_modules/he/he.js");
70984
70985var _he2 = _interopRequireDefault(_he);
70986
70987var _mermaidAPI = __webpack_require__(/*! ./mermaidAPI */ "./src/mermaidAPI.js");
70988
70989var _mermaidAPI2 = _interopRequireDefault(_mermaidAPI);
70990
70991var _logger = __webpack_require__(/*! ./logger */ "./src/logger.js");
70992
70993function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
70994
70995/**
70996 * ## init
70997 * Function that goes through the document to find the chart definitions in there and render them.
70998 *
70999 * The function tags the processed attributes with the attribute data-processed and ignores found elements with the
71000 * attribute already set. This way the init function can be triggered several times.
71001 *
71002 * Optionally, `init` can accept in the second argument one of the following:
71003 * - a DOM Node
71004 * - an array of DOM nodes (as would come from a jQuery selector)
71005 * - a W3C selector, a la `.mermaid`
71006 *
71007 * ```mermaid
71008 * graph LR;
71009 * a(Find elements)-->b{Processed}
71010 * b-->|Yes|c(Leave element)
71011 * b-->|No |d(Transform)
71012 * ```
71013 * Renders the mermaid diagrams
71014 * @param nodes a css selector or an array of nodes
71015 */
71016var init = function init() {
71017 var conf = _mermaidAPI2.default.getConfig();
71018 _logger.logger.debug('Starting rendering diagrams');
71019 var nodes = void 0;
71020 if (arguments.length >= 2) {
71021 /*! sequence config was passed as #1 */
71022 if (typeof arguments[0] !== 'undefined') {
71023 mermaid.sequenceConfig = arguments[0];
71024 }
71025
71026 nodes = arguments[1];
71027 } else {
71028 nodes = arguments[0];
71029 }
71030
71031 // if last argument is a function this is the callback function
71032 var callback = void 0;
71033 if (typeof arguments[arguments.length - 1] === 'function') {
71034 callback = arguments[arguments.length - 1];
71035 _logger.logger.debug('Callback function found');
71036 } else {
71037 if (typeof conf.mermaid !== 'undefined') {
71038 if (typeof conf.mermaid.callback === 'function') {
71039 callback = conf.mermaid.callback;
71040 _logger.logger.debug('Callback function found');
71041 } else {
71042 _logger.logger.debug('No Callback function found');
71043 }
71044 }
71045 }
71046 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
71047
71048 _logger.logger.debug('Start On Load before: ' + mermaid.startOnLoad);
71049 if (typeof mermaid.startOnLoad !== 'undefined') {
71050 _logger.logger.debug('Start On Load inner: ' + mermaid.startOnLoad);
71051 _mermaidAPI2.default.initialize({ startOnLoad: mermaid.startOnLoad });
71052 }
71053
71054 if (typeof mermaid.ganttConfig !== 'undefined') {
71055 _mermaidAPI2.default.initialize({ gantt: mermaid.ganttConfig });
71056 }
71057
71058 var txt = void 0;
71059
71060 var _loop = function _loop(i) {
71061 var element = nodes[i];
71062
71063 /*! Check if previously processed */
71064 if (!element.getAttribute('data-processed')) {
71065 element.setAttribute('data-processed', true);
71066 } else {
71067 return 'continue';
71068 }
71069
71070 var id = 'mermaid-' + Date.now();
71071
71072 // Fetch the graph definition including tags
71073 txt = element.innerHTML;
71074
71075 // transforms the html to pure text
71076 txt = _he2.default.decode(txt).trim().replace(/<br>/ig, '<br/>');
71077
71078 _mermaidAPI2.default.render(id, txt, function (svgCode, bindFunctions) {
71079 element.innerHTML = svgCode;
71080 if (typeof callback !== 'undefined') {
71081 callback(id);
71082 }
71083 bindFunctions(element);
71084 }, element);
71085 };
71086
71087 for (var i = 0; i < nodes.length; i++) {
71088 var _ret = _loop(i);
71089
71090 if (_ret === 'continue') continue;
71091 }
71092}; /**
71093 * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid functionality and to render
71094 * the diagrams to svg code.
71095 */
71096
71097
71098var initialize = function initialize(config) {
71099 _logger.logger.debug('Initializing mermaid');
71100 if (typeof config.mermaid !== 'undefined') {
71101 if (typeof config.mermaid.startOnLoad !== 'undefined') {
71102 mermaid.startOnLoad = config.mermaid.startOnLoad;
71103 }
71104 if (typeof config.mermaid.htmlLabels !== 'undefined') {
71105 mermaid.htmlLabels = config.mermaid.htmlLabels;
71106 }
71107 }
71108 _mermaidAPI2.default.initialize(config);
71109};
71110
71111/**
71112 * ##contentLoaded
71113 * Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and
71114 * calls init for rendering the mermaid diagrams on the page.
71115 */
71116var contentLoaded = function contentLoaded() {
71117 var config = void 0;
71118
71119 if (mermaid.startOnLoad) {
71120 // No config found, do check API config
71121 config = _mermaidAPI2.default.getConfig();
71122 if (config.startOnLoad) {
71123 mermaid.init();
71124 }
71125 } else {
71126 if (typeof mermaid.startOnLoad === 'undefined') {
71127 _logger.logger.debug('In start, no config');
71128 config = _mermaidAPI2.default.getConfig();
71129 if (config.startOnLoad) {
71130 mermaid.init();
71131 }
71132 }
71133 }
71134};
71135
71136if (typeof document !== 'undefined') {
71137 /*!
71138 * Wait for document loaded before starting the execution
71139 */
71140 window.addEventListener('load', function () {
71141 contentLoaded();
71142 }, false);
71143}
71144
71145var mermaid = {
71146 startOnLoad: true,
71147 htmlLabels: true,
71148
71149 mermaidAPI: _mermaidAPI2.default,
71150 parse: _mermaidAPI2.default.parse,
71151 render: _mermaidAPI2.default.render,
71152
71153 init: init,
71154 initialize: initialize,
71155
71156 contentLoaded: contentLoaded
71157};
71158
71159exports.default = mermaid;
71160
71161/***/ }),
71162
71163/***/ "./src/mermaidAPI.js":
71164/*!***************************!*\
71165 !*** ./src/mermaidAPI.js ***!
71166 \***************************/
71167/*! no static exports found */
71168/***/ (function(module, exports, __webpack_require__) {
71169
71170"use strict";
71171
71172
71173Object.defineProperty(exports, "__esModule", {
71174 value: true
71175});
71176exports.decodeEntities = exports.encodeEntities = undefined;
71177
71178var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /**
71179 * ---
71180 * title: mermaidAPI
71181 * order: 5
71182 * ---
71183 * # mermaidAPI
71184 * This is the api to be used when handling the integration with the web page instead of using the default integration
71185 * (mermaid.js).
71186 *
71187 * The core of this api is the **render** function that given a graph definitionas text renders the graph/diagram and
71188 * 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
71189 * somewhere in the page or something completely different.
71190 */
71191
71192
71193var _d = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
71194
71195var d3 = _interopRequireWildcard(_d);
71196
71197var _scopeCss = __webpack_require__(/*! scope-css */ "./node_modules/scope-css/index.js");
71198
71199var _scopeCss2 = _interopRequireDefault(_scopeCss);
71200
71201var _logger = __webpack_require__(/*! ./logger */ "./src/logger.js");
71202
71203var _utils = __webpack_require__(/*! ./utils */ "./src/utils.js");
71204
71205var _utils2 = _interopRequireDefault(_utils);
71206
71207var _flowRenderer = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js");
71208
71209var _flowRenderer2 = _interopRequireDefault(_flowRenderer);
71210
71211var _flow = __webpack_require__(/*! ./diagrams/flowchart/parser/flow */ "./src/diagrams/flowchart/parser/flow.js");
71212
71213var _flow2 = _interopRequireDefault(_flow);
71214
71215var _flowDb = __webpack_require__(/*! ./diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js");
71216
71217var _flowDb2 = _interopRequireDefault(_flowDb);
71218
71219var _sequenceRenderer = __webpack_require__(/*! ./diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js");
71220
71221var _sequenceRenderer2 = _interopRequireDefault(_sequenceRenderer);
71222
71223var _sequenceDiagram = __webpack_require__(/*! ./diagrams/sequence/parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.js");
71224
71225var _sequenceDiagram2 = _interopRequireDefault(_sequenceDiagram);
71226
71227var _sequenceDb = __webpack_require__(/*! ./diagrams/sequence/sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
71228
71229var _sequenceDb2 = _interopRequireDefault(_sequenceDb);
71230
71231var _ganttRenderer = __webpack_require__(/*! ./diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js");
71232
71233var _ganttRenderer2 = _interopRequireDefault(_ganttRenderer);
71234
71235var _gantt = __webpack_require__(/*! ./diagrams/gantt/parser/gantt */ "./src/diagrams/gantt/parser/gantt.js");
71236
71237var _gantt2 = _interopRequireDefault(_gantt);
71238
71239var _ganttDb = __webpack_require__(/*! ./diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js");
71240
71241var _ganttDb2 = _interopRequireDefault(_ganttDb);
71242
71243var _classRenderer = __webpack_require__(/*! ./diagrams/class/classRenderer */ "./src/diagrams/class/classRenderer.js");
71244
71245var _classRenderer2 = _interopRequireDefault(_classRenderer);
71246
71247var _classDiagram = __webpack_require__(/*! ./diagrams/class/parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.js");
71248
71249var _classDiagram2 = _interopRequireDefault(_classDiagram);
71250
71251var _classDb = __webpack_require__(/*! ./diagrams/class/classDb */ "./src/diagrams/class/classDb.js");
71252
71253var _classDb2 = _interopRequireDefault(_classDb);
71254
71255var _gitGraphRenderer = __webpack_require__(/*! ./diagrams/git/gitGraphRenderer */ "./src/diagrams/git/gitGraphRenderer.js");
71256
71257var _gitGraphRenderer2 = _interopRequireDefault(_gitGraphRenderer);
71258
71259var _gitGraph = __webpack_require__(/*! ./diagrams/git/parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.js");
71260
71261var _gitGraph2 = _interopRequireDefault(_gitGraph);
71262
71263var _gitGraphAst = __webpack_require__(/*! ./diagrams/git/gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
71264
71265var _gitGraphAst2 = _interopRequireDefault(_gitGraphAst);
71266
71267function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
71268
71269function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
71270
71271var themes = {};
71272var _arr = ['default', 'forest', 'dark', 'neutral'];
71273for (var _i = 0; _i < _arr.length; _i++) {
71274 var themeName = _arr[_i];
71275 themes[themeName] = __webpack_require__("./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$")("./" + themeName + '/index.scss');
71276}
71277
71278/**
71279 * ## Configuration
71280 * These are the default options which can be overridden with the initialization call as in the example below:
71281 * ```
71282 * mermaid.initialize({
71283 * flowchart:{
71284 * htmlLabels: false
71285 * }
71286 * });
71287 * ```
71288 */
71289var config = {
71290 theme: 'default',
71291 themeCSS: undefined,
71292
71293 /**
71294 * logLevel , decides the amount of logging to be used.
71295 * * debug: 1
71296 * * info: 2
71297 * * warn: 3
71298 * * error: 4
71299 * * fatal: 5
71300 */
71301 logLevel: 5,
71302
71303 /**
71304 * **startOnLoad** - This options controls whether or mermaid starts when the page loads
71305 */
71306 startOnLoad: true,
71307
71308 /**
71309 * **arrowMarkerAbsolute** - This options controls whether or arrow markers in html code will be absolute paths or
71310 * an anchor, #. This matters if you are using base tag settings.
71311 */
71312 arrowMarkerAbsolute: false,
71313
71314 /**
71315 * ### flowchart
71316 * *The object containing configurations specific for flowcharts*
71317 */
71318 flowchart: {
71319 /**
71320 * **htmlLabels** - Flag for setting whether or not a html tag should be used for rendering labels
71321 * on the edges
71322 */
71323 htmlLabels: true,
71324 /**
71325 * **useMaxWidth** - Flag for setting whether or not a all available width should be used for
71326 * the diagram.
71327 */
71328 useMaxWidth: true,
71329
71330 curve: 'linear'
71331 },
71332
71333 /**
71334 * ### sequenceDiagram
71335 * The object containing configurations specific for sequence diagrams
71336 */
71337 sequence: {
71338
71339 /**
71340 * **diagramMarginX** - margin to the right and left of the sequence diagram
71341 */
71342 diagramMarginX: 50,
71343
71344 /**
71345 * **diagramMarginY** - margin to the over and under the sequence diagram
71346 */
71347 diagramMarginY: 10,
71348
71349 /**
71350 * **actorMargin** - Margin between actors
71351 */
71352 actorMargin: 50,
71353
71354 /**
71355 * **width** - Width of actor boxes
71356 */
71357 width: 150,
71358
71359 /**
71360 * **height** - Height of actor boxes
71361 */
71362 height: 65,
71363
71364 /**
71365 * **boxMargin** - Margin around loop boxes
71366 */
71367 boxMargin: 10,
71368
71369 /**
71370 * **boxTextMargin** - margin around the text in loop/alt/opt boxes
71371 */
71372 boxTextMargin: 5,
71373
71374 /**
71375 * **noteMargin** - margin around notes
71376 */
71377 noteMargin: 10,
71378
71379 /**
71380 * **messageMargin** - Space between messages
71381 */
71382 messageMargin: 35,
71383
71384 /**
71385 * **mirrorActors** - mirror actors under diagram
71386 */
71387 mirrorActors: true,
71388
71389 /**
71390 * **bottomMarginAdj** - Depending on css styling this might need adjustment.
71391 * Prolongs the edge of the diagram downwards
71392 */
71393 bottomMarginAdj: 1,
71394
71395 /**
71396 * **useMaxWidth** - when this flag is set the height and width is set to 100% and is then scaling with the
71397 * available space if not the absolute space required is used
71398 */
71399 useMaxWidth: true
71400 },
71401
71402 /** ### gantt
71403 * The object containing configurations specific for gantt diagrams*
71404 */
71405 gantt: {
71406 /**
71407 * **titleTopMargin** - margin top for the text over the gantt diagram
71408 */
71409 titleTopMargin: 25,
71410
71411 /**
71412 * **barHeight** - the height of the bars in the graph
71413 */
71414 barHeight: 20,
71415
71416 /**
71417 * **barGap** - the margin between the different activities in the gantt diagram
71418 */
71419 barGap: 4,
71420
71421 /**
71422 * **topPadding** - margin between title and gantt diagram and between axis and gantt diagram.
71423 */
71424 topPadding: 50,
71425
71426 /**
71427 * **leftPadding** - the space allocated for the section name to the left of the activities.
71428 */
71429 leftPadding: 75,
71430
71431 /**
71432 * **gridLineStartPadding** - Vertical starting position of the grid lines
71433 */
71434 gridLineStartPadding: 35,
71435
71436 /**
71437 * **fontSize** - font size ...
71438 */
71439 fontSize: 11,
71440
71441 /**
71442 * **fontFamily** - font family ...
71443 */
71444 fontFamily: '"Open-Sans", "sans-serif"',
71445
71446 /**
71447 * **numberSectionStyles** - the number of alternating section styles
71448 */
71449 numberSectionStyles: 4,
71450
71451 /**
71452 * **axisFormat** - datetime format of the axis, this might need adjustment to match your locale and preferences
71453 */
71454 axisFormat: '%Y-%m-%d'
71455 },
71456 class: {},
71457 git: {}
71458};
71459
71460(0, _logger.setLogLevel)(config.logLevel);
71461
71462function parse(text) {
71463 var graphType = _utils2.default.detectType(text);
71464 var parser = void 0;
71465
71466 switch (graphType) {
71467 case 'git':
71468 parser = _gitGraph2.default;
71469 parser.parser.yy = _gitGraphAst2.default;
71470 break;
71471 case 'flowchart':
71472 parser = _flow2.default;
71473 parser.parser.yy = _flowDb2.default;
71474 break;
71475 case 'sequence':
71476 parser = _sequenceDiagram2.default;
71477 parser.parser.yy = _sequenceDb2.default;
71478 break;
71479 case 'gantt':
71480 parser = _gantt2.default;
71481 parser.parser.yy = _ganttDb2.default;
71482 break;
71483 case 'class':
71484 parser = _classDiagram2.default;
71485 parser.parser.yy = _classDb2.default;
71486 break;
71487 }
71488
71489 parser.parser.yy.parseError = function (str, hash) {
71490 var error = { str: str, hash: hash };
71491 throw error;
71492 };
71493
71494 parser.parse(text);
71495}
71496
71497var encodeEntities = exports.encodeEntities = function encodeEntities(text) {
71498 var txt = text;
71499
71500 txt = txt.replace(/style.*:\S*#.*;/g, function (s) {
71501 var innerTxt = s.substring(0, s.length - 1);
71502 return innerTxt;
71503 });
71504 txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) {
71505 var innerTxt = s.substring(0, s.length - 1);
71506 return innerTxt;
71507 });
71508
71509 txt = txt.replace(/#\w+;/g, function (s) {
71510 var innerTxt = s.substring(1, s.length - 1);
71511
71512 var isInt = /^\+?\d+$/.test(innerTxt);
71513 if (isInt) {
71514 return 'fl°°' + innerTxt + '¶ß';
71515 } else {
71516 return 'fl°' + innerTxt + '¶ß';
71517 }
71518 });
71519
71520 return txt;
71521};
71522
71523var decodeEntities = exports.decodeEntities = function decodeEntities(text) {
71524 var txt = text;
71525
71526 txt = txt.replace(/fl°°/g, function () {
71527 return '&#';
71528 });
71529 txt = txt.replace(/fl°/g, function () {
71530 return '&';
71531 });
71532 txt = txt.replace(/¶ß/g, function () {
71533 return ';';
71534 });
71535
71536 return txt;
71537};
71538/**
71539 * ##render
71540 * Function that renders an svg with a graph from a chart definition. Usage example below.
71541 *
71542 * ```
71543 * mermaidAPI.initialize({
71544 * startOnLoad:true
71545 * });
71546 * $(function(){
71547 * const graphDefinition = 'graph TB\na-->b';
71548 * const cb = function(svgGraph){
71549 * console.log(svgGraph);
71550 * };
71551 * mermaidAPI.render('id1',graphDefinition,cb);
71552 * });
71553 *```
71554 * @param id the id of the element to be rendered
71555 * @param txt the graph definition
71556 * @param cb callback which is called after rendering is finished with the svg code as inparam.
71557 * @param container selector to element in which a div with the graph temporarily will be inserted. In one is
71558 * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is
71559 * completed.
71560 */
71561var render = function render(id, txt, cb, container) {
71562 if (typeof container !== 'undefined') {
71563 container.innerHTML = '';
71564
71565 d3.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');
71566 } else {
71567 var _element = document.querySelector('#' + 'd' + id);
71568 if (_element) {
71569 _element.innerHTML = '';
71570 }
71571
71572 d3.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');
71573 }
71574
71575 window.txt = txt;
71576 txt = encodeEntities(txt);
71577
71578 var element = d3.select('#d' + id).node();
71579 var graphType = _utils2.default.detectType(txt);
71580
71581 // insert inline style into svg
71582 var svg = element.firstChild;
71583 var firstChild = svg.firstChild;
71584
71585 // pre-defined theme
71586 var style = themes[config.theme];
71587 if (style === undefined) {
71588 style = '';
71589 }
71590
71591 // user provided theme CSS
71592 if (config.themeCSS !== undefined) {
71593 style += '\n' + config.themeCSS;
71594 }
71595
71596 // classDef
71597 if (graphType === 'flowchart') {
71598 var classes = _flowRenderer2.default.getClasses(txt);
71599 for (var className in classes) {
71600 style += '\n.' + className + ' > * { ' + classes[className].styles.join(' !important; ') + ' !important; }';
71601 }
71602 }
71603
71604 var style1 = document.createElement('style');
71605 style1.innerHTML = (0, _scopeCss2.default)(style, '#' + id);
71606 svg.insertBefore(style1, firstChild);
71607
71608 var style2 = document.createElement('style');
71609 var cs = window.getComputedStyle(svg);
71610 style2.innerHTML = '#' + id + ' {\n color: ' + cs.color + ';\n font: ' + cs.font + ';\n }';
71611 svg.insertBefore(style2, firstChild);
71612
71613 switch (graphType) {
71614 case 'git':
71615 config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
71616 _gitGraphRenderer2.default.setConf(config.git);
71617 _gitGraphRenderer2.default.draw(txt, id, false);
71618 break;
71619 case 'flowchart':
71620 config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
71621 _flowRenderer2.default.setConf(config.flowchart);
71622 _flowRenderer2.default.draw(txt, id, false);
71623 break;
71624 case 'sequence':
71625 config.sequence.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
71626 if (config.sequenceDiagram) {
71627 // backwards compatibility
71628 _sequenceRenderer2.default.setConf(Object.assign(config.sequence, config.sequenceDiagram));
71629 console.error('`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.');
71630 } else {
71631 _sequenceRenderer2.default.setConf(config.sequence);
71632 }
71633 _sequenceRenderer2.default.draw(txt, id);
71634 break;
71635 case 'gantt':
71636 config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
71637 _ganttRenderer2.default.setConf(config.gantt);
71638 _ganttRenderer2.default.draw(txt, id);
71639 break;
71640 case 'class':
71641 config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
71642 _classRenderer2.default.setConf(config.class);
71643 _classRenderer2.default.draw(txt, id);
71644 break;
71645 }
71646
71647 d3.select('[id="' + id + '"]').selectAll('foreignobject > *').attr('xmlns', 'http://www.w3.org/1999/xhtml');
71648
71649 var url = '';
71650 if (config.arrowMarkerAbsolute) {
71651 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
71652 url = url.replace(/\(/g, '\\(');
71653 url = url.replace(/\)/g, '\\)');
71654 }
71655
71656 // Fix for when the base tag is used
71657 var svgCode = d3.select('#d' + id).node().innerHTML.replace(/url\(#arrowhead/g, 'url(' + url + '#arrowhead', 'g');
71658
71659 svgCode = decodeEntities(svgCode);
71660
71661 if (typeof cb !== 'undefined') {
71662 cb(svgCode, _flowDb2.default.bindFunctions);
71663 } else {
71664 _logger.logger.warn('CB = undefined!');
71665 }
71666
71667 var node = d3.select('#d' + id).node();
71668 if (node !== null && typeof node.remove === 'function') {
71669 d3.select('#d' + id).node().remove();
71670 }
71671
71672 return svgCode;
71673};
71674
71675var setConf = function setConf(cnf) {
71676 // Top level initially mermaid, gflow, sequenceDiagram and gantt
71677 var lvl1Keys = Object.keys(cnf);
71678 for (var i = 0; i < lvl1Keys.length; i++) {
71679 if (_typeof(cnf[lvl1Keys[i]]) === 'object' && cnf[lvl1Keys[i]] != null) {
71680 var lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);
71681
71682 for (var j = 0; j < lvl2Keys.length; j++) {
71683 _logger.logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]);
71684 if (typeof config[lvl1Keys[i]] === 'undefined') {
71685 config[lvl1Keys[i]] = {};
71686 }
71687 _logger.logger.debug('Setting config: ' + lvl1Keys[i] + ' ' + lvl2Keys[j] + ' to ' + cnf[lvl1Keys[i]][lvl2Keys[j]]);
71688 config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];
71689 }
71690 } else {
71691 config[lvl1Keys[i]] = cnf[lvl1Keys[i]];
71692 }
71693 }
71694};
71695
71696function initialize(options) {
71697 _logger.logger.debug('Initializing mermaidAPI');
71698 // Update default config with options supplied at initialization
71699 if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {
71700 setConf(options);
71701 }
71702 (0, _logger.setLogLevel)(config.logLevel);
71703}
71704
71705function getConfig() {
71706 return config;
71707}
71708
71709var mermaidAPI = {
71710 render: render,
71711 parse: parse,
71712 initialize: initialize,
71713 getConfig: getConfig
71714};
71715
71716exports.default = mermaidAPI;
71717
71718/***/ }),
71719
71720/***/ "./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$":
71721/*!***********************************************!*\
71722 !*** ./src/themes sync ^\.\/.*\/index\.scss$ ***!
71723 \***********************************************/
71724/*! no static exports found */
71725/***/ (function(module, exports, __webpack_require__) {
71726
71727var map = {
71728 "./dark/index.scss": "./src/themes/dark/index.scss",
71729 "./default/index.scss": "./src/themes/default/index.scss",
71730 "./forest/index.scss": "./src/themes/forest/index.scss",
71731 "./neutral/index.scss": "./src/themes/neutral/index.scss"
71732};
71733
71734
71735function webpackContext(req) {
71736 var id = webpackContextResolve(req);
71737 var module = __webpack_require__(id);
71738 return module;
71739}
71740function webpackContextResolve(req) {
71741 var id = map[req];
71742 if(!(id + 1)) { // check for number or string
71743 var e = new Error('Cannot find module "' + req + '".');
71744 e.code = 'MODULE_NOT_FOUND';
71745 throw e;
71746 }
71747 return id;
71748}
71749webpackContext.keys = function webpackContextKeys() {
71750 return Object.keys(map);
71751};
71752webpackContext.resolve = webpackContextResolve;
71753module.exports = webpackContext;
71754webpackContext.id = "./src/themes sync recursive ^\\.\\/.*\\/index\\.scss$";
71755
71756/***/ }),
71757
71758/***/ "./src/themes/dark/index.scss":
71759/*!************************************!*\
71760 !*** ./src/themes/dark/index.scss ***!
71761 \************************************/
71762/*! no static exports found */
71763/***/ (function(module, exports, __webpack_require__) {
71764
71765// css-to-string-loader: transforms styles from css-loader to a string output
71766
71767// Get the styles
71768var styles = __webpack_require__(/*! !../../../node_modules/css-loader!../../../node_modules/sass-loader/lib/loader.js!./index.scss */ "./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/themes/dark/index.scss");
71769
71770if (typeof styles === 'string') {
71771 // Return an existing string
71772 module.exports = styles;
71773} else {
71774 // Call the custom toString method from css-loader module
71775 module.exports = styles.toString();
71776}
71777
71778/***/ }),
71779
71780/***/ "./src/themes/default/index.scss":
71781/*!***************************************!*\
71782 !*** ./src/themes/default/index.scss ***!
71783 \***************************************/
71784/*! no static exports found */
71785/***/ (function(module, exports, __webpack_require__) {
71786
71787// css-to-string-loader: transforms styles from css-loader to a string output
71788
71789// Get the styles
71790var styles = __webpack_require__(/*! !../../../node_modules/css-loader!../../../node_modules/sass-loader/lib/loader.js!./index.scss */ "./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/themes/default/index.scss");
71791
71792if (typeof styles === 'string') {
71793 // Return an existing string
71794 module.exports = styles;
71795} else {
71796 // Call the custom toString method from css-loader module
71797 module.exports = styles.toString();
71798}
71799
71800/***/ }),
71801
71802/***/ "./src/themes/forest/index.scss":
71803/*!**************************************!*\
71804 !*** ./src/themes/forest/index.scss ***!
71805 \**************************************/
71806/*! no static exports found */
71807/***/ (function(module, exports, __webpack_require__) {
71808
71809// css-to-string-loader: transforms styles from css-loader to a string output
71810
71811// Get the styles
71812var styles = __webpack_require__(/*! !../../../node_modules/css-loader!../../../node_modules/sass-loader/lib/loader.js!./index.scss */ "./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/themes/forest/index.scss");
71813
71814if (typeof styles === 'string') {
71815 // Return an existing string
71816 module.exports = styles;
71817} else {
71818 // Call the custom toString method from css-loader module
71819 module.exports = styles.toString();
71820}
71821
71822/***/ }),
71823
71824/***/ "./src/themes/neutral/index.scss":
71825/*!***************************************!*\
71826 !*** ./src/themes/neutral/index.scss ***!
71827 \***************************************/
71828/*! no static exports found */
71829/***/ (function(module, exports, __webpack_require__) {
71830
71831// css-to-string-loader: transforms styles from css-loader to a string output
71832
71833// Get the styles
71834var styles = __webpack_require__(/*! !../../../node_modules/css-loader!../../../node_modules/sass-loader/lib/loader.js!./index.scss */ "./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/themes/neutral/index.scss");
71835
71836if (typeof styles === 'string') {
71837 // Return an existing string
71838 module.exports = styles;
71839} else {
71840 // Call the custom toString method from css-loader module
71841 module.exports = styles.toString();
71842}
71843
71844/***/ }),
71845
71846/***/ "./src/utils.js":
71847/*!**********************!*\
71848 !*** ./src/utils.js ***!
71849 \**********************/
71850/*! no static exports found */
71851/***/ (function(module, exports, __webpack_require__) {
71852
71853"use strict";
71854
71855
71856Object.defineProperty(exports, "__esModule", {
71857 value: true
71858});
71859exports.interpolateToCurve = exports.isSubstringInArray = exports.detectType = undefined;
71860
71861var _d = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
71862
71863var d3 = _interopRequireWildcard(_d);
71864
71865function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
71866
71867/**
71868 * @function detectType
71869 * Detects the type of the graph text.
71870 * ```mermaid
71871 * graph LR
71872 * a-->b
71873 * b-->c
71874 * c-->d
71875 * d-->e
71876 * e-->f
71877 * f-->g
71878 * g-->h
71879 * ```
71880 *
71881 * @param {string} text The text defining the graph
71882 * @returns {string} A graph definition key
71883 */
71884var detectType = exports.detectType = function detectType(text) {
71885 text = text.replace(/^\s*%%.*\n/g, '\n');
71886 if (text.match(/^\s*sequenceDiagram/)) {
71887 return 'sequence';
71888 }
71889
71890 if (text.match(/^\s*gantt/)) {
71891 return 'gantt';
71892 }
71893
71894 if (text.match(/^\s*classDiagram/)) {
71895 return 'class';
71896 }
71897
71898 if (text.match(/^\s*gitGraph/)) {
71899 return 'git';
71900 }
71901 return 'flowchart';
71902};
71903
71904/**
71905 * @function isSubstringInArray
71906 * Detects whether a substring in present in a given array
71907 * @param {string} str The substring to detect
71908 * @param {array} arr The array to search
71909 * @returns {number} the array index containing the substring or -1 if not present
71910 **/
71911var isSubstringInArray = exports.isSubstringInArray = function isSubstringInArray(str, arr) {
71912 for (var i = 0; i < arr.length; i++) {
71913 if (arr[i].match(str)) return i;
71914 }
71915 return -1;
71916};
71917
71918var interpolateToCurve = exports.interpolateToCurve = function interpolateToCurve(interpolate, defaultCurve) {
71919 if (!interpolate) {
71920 return defaultCurve;
71921 }
71922 var curveName = 'curve' + (interpolate.charAt(0).toUpperCase() + interpolate.slice(1));
71923 return d3[curveName] || defaultCurve;
71924};
71925
71926exports.default = {
71927 detectType: detectType,
71928 isSubstringInArray: isSubstringInArray,
71929 interpolateToCurve: interpolateToCurve
71930};
71931
71932/***/ })
71933
71934/******/ })["default"];
71935});
71936//# sourceMappingURL=mermaid.js.map
\No newline at end of file