UNPKG

2.86 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})(typeof self !== "undefined" ? self : this, function() {
11return /******/ (function(modules) { // webpackBootstrap
12/******/ // The module cache
13/******/ var installedModules = {};
14/******/
15/******/ // The require function
16/******/ function __webpack_require__(moduleId) {
17/******/
18/******/ // Check if module is in cache
19/******/ if(installedModules[moduleId]) {
20/******/ return installedModules[moduleId].exports;
21/******/ }
22/******/ // Create a new module (and put it into the cache)
23/******/ var module = installedModules[moduleId] = {
24/******/ i: moduleId,
25/******/ l: false,
26/******/ exports: {}
27/******/ };
28/******/
29/******/ // Execute the module function
30/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31/******/
32/******/ // Flag the module as loaded
33/******/ module.l = true;
34/******/
35/******/ // Return the exports of the module
36/******/ return module.exports;
37/******/ }
38/******/
39/******/
40/******/ // expose the modules object (__webpack_modules__)
41/******/ __webpack_require__.m = modules;
42/******/
43/******/ // expose the module cache
44/******/ __webpack_require__.c = installedModules;
45/******/
46/******/ // define getter function for harmony exports
47/******/ __webpack_require__.d = function(exports, name, getter) {
48/******/ if(!__webpack_require__.o(exports, name)) {
49/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
50/******/ }
51/******/ };
52/******/
53/******/ // define __esModule on exports
54/******/ __webpack_require__.r = function(exports) {
55/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57/******/ }
58/******/ Object.defineProperty(exports, '__esModule', { value: true });
59/******/ };
60/******/
61/******/ // create a fake namespace object
62/******/ // mode & 1: value is a module id, require it
63/******/ // mode & 2: merge all properties of value into the ns
64/******/ // mode & 4: return value when already ns object
65/******/ // mode & 8|1: behave like require
66/******/ __webpack_require__.t = function(value, mode) {
67/******/ if(mode & 1) value = __webpack_require__(value);
68/******/ if(mode & 8) return value;
69/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70/******/ var ns = Object.create(null);
71/******/ __webpack_require__.r(ns);
72/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74/******/ return ns;
75/******/ };
76/******/
77/******/ // getDefaultExport function for compatibility with non-harmony modules
78/******/ __webpack_require__.n = function(module) {
79/******/ var getter = module && module.__esModule ?
80/******/ function getDefault() { return module['default']; } :
81/******/ function getModuleExports() { return module; };
82/******/ __webpack_require__.d(getter, 'a', getter);
83/******/ return getter;
84/******/ };
85/******/
86/******/ // Object.prototype.hasOwnProperty.call
87/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88/******/
89/******/ // __webpack_public_path__
90/******/ __webpack_require__.p = "";
91/******/
92/******/
93/******/ // Load entry module and return exports
94/******/ return __webpack_require__(__webpack_require__.s = "./src/mermaid.js");
95/******/ })
96/************************************************************************/
97/******/ ({
98
99/***/ "./node_modules/@braintree/sanitize-url/index.js":
100/*!*******************************************************!*\
101 !*** ./node_modules/@braintree/sanitize-url/index.js ***!
102 \*******************************************************/
103/*! no static exports found */
104/***/ (function(module, exports, __webpack_require__) {
105
106"use strict";
107
108
109var invalidPrototcolRegex = /^(%20|\s)*(javascript|data)/im;
110var ctrlCharactersRegex = /[^\x20-\x7E]/gmi;
111var urlSchemeRegex = /^([^:]+):/gm;
112var relativeFirstCharacters = ['.', '/']
113
114function isRelativeUrl(url) {
115 return relativeFirstCharacters.indexOf(url[0]) > -1;
116}
117
118function sanitizeUrl(url) {
119 if (!url) {
120 return 'about:blank';
121 }
122
123 var urlScheme, urlSchemeParseResults;
124 var sanitizedUrl = url.replace(ctrlCharactersRegex, '').trim();
125
126 if (isRelativeUrl(sanitizedUrl)) {
127 return sanitizedUrl;
128 }
129
130 urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);
131
132 if (!urlSchemeParseResults) {
133 return 'about:blank';
134 }
135
136 urlScheme = urlSchemeParseResults[0];
137
138 if (invalidPrototcolRegex.test(urlScheme)) {
139 return 'about:blank';
140 }
141
142 return sanitizedUrl;
143}
144
145module.exports = {
146 sanitizeUrl: sanitizeUrl
147};
148
149
150/***/ }),
151
152/***/ "./node_modules/d3-array/src/array.js":
153/*!********************************************!*\
154 !*** ./node_modules/d3-array/src/array.js ***!
155 \********************************************/
156/*! exports provided: slice, map */
157/***/ (function(module, __webpack_exports__, __webpack_require__) {
158
159"use strict";
160__webpack_require__.r(__webpack_exports__);
161/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
162/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
163var array = Array.prototype;
164
165var slice = array.slice;
166var map = array.map;
167
168
169/***/ }),
170
171/***/ "./node_modules/d3-array/src/ascending.js":
172/*!************************************************!*\
173 !*** ./node_modules/d3-array/src/ascending.js ***!
174 \************************************************/
175/*! exports provided: default */
176/***/ (function(module, __webpack_exports__, __webpack_require__) {
177
178"use strict";
179__webpack_require__.r(__webpack_exports__);
180/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
181 return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
182});
183
184
185/***/ }),
186
187/***/ "./node_modules/d3-array/src/bisect.js":
188/*!*********************************************!*\
189 !*** ./node_modules/d3-array/src/bisect.js ***!
190 \*********************************************/
191/*! exports provided: bisectRight, bisectLeft, default */
192/***/ (function(module, __webpack_exports__, __webpack_require__) {
193
194"use strict";
195__webpack_require__.r(__webpack_exports__);
196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return bisectRight; });
197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return bisectLeft; });
198/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
199/* harmony import */ var _bisector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bisector */ "./node_modules/d3-array/src/bisector.js");
200
201
202
203var ascendingBisect = Object(_bisector__WEBPACK_IMPORTED_MODULE_1__["default"])(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"]);
204var bisectRight = ascendingBisect.right;
205var bisectLeft = ascendingBisect.left;
206/* harmony default export */ __webpack_exports__["default"] = (bisectRight);
207
208
209/***/ }),
210
211/***/ "./node_modules/d3-array/src/bisector.js":
212/*!***********************************************!*\
213 !*** ./node_modules/d3-array/src/bisector.js ***!
214 \***********************************************/
215/*! exports provided: default */
216/***/ (function(module, __webpack_exports__, __webpack_require__) {
217
218"use strict";
219__webpack_require__.r(__webpack_exports__);
220/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
221
222
223/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
224 if (compare.length === 1) compare = ascendingComparator(compare);
225 return {
226 left: function(a, x, lo, hi) {
227 if (lo == null) lo = 0;
228 if (hi == null) hi = a.length;
229 while (lo < hi) {
230 var mid = lo + hi >>> 1;
231 if (compare(a[mid], x) < 0) lo = mid + 1;
232 else hi = mid;
233 }
234 return lo;
235 },
236 right: function(a, x, lo, hi) {
237 if (lo == null) lo = 0;
238 if (hi == null) hi = a.length;
239 while (lo < hi) {
240 var mid = lo + hi >>> 1;
241 if (compare(a[mid], x) > 0) hi = mid;
242 else lo = mid + 1;
243 }
244 return lo;
245 }
246 };
247});
248
249function ascendingComparator(f) {
250 return function(d, x) {
251 return Object(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"])(f(d), x);
252 };
253}
254
255
256/***/ }),
257
258/***/ "./node_modules/d3-array/src/constant.js":
259/*!***********************************************!*\
260 !*** ./node_modules/d3-array/src/constant.js ***!
261 \***********************************************/
262/*! exports provided: default */
263/***/ (function(module, __webpack_exports__, __webpack_require__) {
264
265"use strict";
266__webpack_require__.r(__webpack_exports__);
267/* harmony default export */ __webpack_exports__["default"] = (function(x) {
268 return function() {
269 return x;
270 };
271});
272
273
274/***/ }),
275
276/***/ "./node_modules/d3-array/src/cross.js":
277/*!********************************************!*\
278 !*** ./node_modules/d3-array/src/cross.js ***!
279 \********************************************/
280/*! exports provided: default */
281/***/ (function(module, __webpack_exports__, __webpack_require__) {
282
283"use strict";
284__webpack_require__.r(__webpack_exports__);
285/* harmony import */ var _pairs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pairs */ "./node_modules/d3-array/src/pairs.js");
286
287
288/* harmony default export */ __webpack_exports__["default"] = (function(values0, values1, reduce) {
289 var n0 = values0.length,
290 n1 = values1.length,
291 values = new Array(n0 * n1),
292 i0,
293 i1,
294 i,
295 value0;
296
297 if (reduce == null) reduce = _pairs__WEBPACK_IMPORTED_MODULE_0__["pair"];
298
299 for (i0 = i = 0; i0 < n0; ++i0) {
300 for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
301 values[i] = reduce(value0, values1[i1]);
302 }
303 }
304
305 return values;
306});
307
308
309/***/ }),
310
311/***/ "./node_modules/d3-array/src/descending.js":
312/*!*************************************************!*\
313 !*** ./node_modules/d3-array/src/descending.js ***!
314 \*************************************************/
315/*! exports provided: default */
316/***/ (function(module, __webpack_exports__, __webpack_require__) {
317
318"use strict";
319__webpack_require__.r(__webpack_exports__);
320/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
321 return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
322});
323
324
325/***/ }),
326
327/***/ "./node_modules/d3-array/src/deviation.js":
328/*!************************************************!*\
329 !*** ./node_modules/d3-array/src/deviation.js ***!
330 \************************************************/
331/*! exports provided: default */
332/***/ (function(module, __webpack_exports__, __webpack_require__) {
333
334"use strict";
335__webpack_require__.r(__webpack_exports__);
336/* harmony import */ var _variance__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variance */ "./node_modules/d3-array/src/variance.js");
337
338
339/* harmony default export */ __webpack_exports__["default"] = (function(array, f) {
340 var v = Object(_variance__WEBPACK_IMPORTED_MODULE_0__["default"])(array, f);
341 return v ? Math.sqrt(v) : v;
342});
343
344
345/***/ }),
346
347/***/ "./node_modules/d3-array/src/extent.js":
348/*!*********************************************!*\
349 !*** ./node_modules/d3-array/src/extent.js ***!
350 \*********************************************/
351/*! exports provided: default */
352/***/ (function(module, __webpack_exports__, __webpack_require__) {
353
354"use strict";
355__webpack_require__.r(__webpack_exports__);
356/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
357 var n = values.length,
358 i = -1,
359 value,
360 min,
361 max;
362
363 if (valueof == null) {
364 while (++i < n) { // Find the first comparable value.
365 if ((value = values[i]) != null && value >= value) {
366 min = max = value;
367 while (++i < n) { // Compare the remaining values.
368 if ((value = values[i]) != null) {
369 if (min > value) min = value;
370 if (max < value) max = value;
371 }
372 }
373 }
374 }
375 }
376
377 else {
378 while (++i < n) { // Find the first comparable value.
379 if ((value = valueof(values[i], i, values)) != null && value >= value) {
380 min = max = value;
381 while (++i < n) { // Compare the remaining values.
382 if ((value = valueof(values[i], i, values)) != null) {
383 if (min > value) min = value;
384 if (max < value) max = value;
385 }
386 }
387 }
388 }
389 }
390
391 return [min, max];
392});
393
394
395/***/ }),
396
397/***/ "./node_modules/d3-array/src/histogram.js":
398/*!************************************************!*\
399 !*** ./node_modules/d3-array/src/histogram.js ***!
400 \************************************************/
401/*! exports provided: default */
402/***/ (function(module, __webpack_exports__, __webpack_require__) {
403
404"use strict";
405__webpack_require__.r(__webpack_exports__);
406/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-array/src/array.js");
407/* harmony import */ var _bisect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bisect */ "./node_modules/d3-array/src/bisect.js");
408/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-array/src/constant.js");
409/* harmony import */ var _extent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extent */ "./node_modules/d3-array/src/extent.js");
410/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-array/src/identity.js");
411/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./range */ "./node_modules/d3-array/src/range.js");
412/* harmony import */ var _ticks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ticks */ "./node_modules/d3-array/src/ticks.js");
413/* harmony import */ var _threshold_sturges__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./threshold/sturges */ "./node_modules/d3-array/src/threshold/sturges.js");
414
415
416
417
418
419
420
421
422
423/* harmony default export */ __webpack_exports__["default"] = (function() {
424 var value = _identity__WEBPACK_IMPORTED_MODULE_4__["default"],
425 domain = _extent__WEBPACK_IMPORTED_MODULE_3__["default"],
426 threshold = _threshold_sturges__WEBPACK_IMPORTED_MODULE_7__["default"];
427
428 function histogram(data) {
429 var i,
430 n = data.length,
431 x,
432 values = new Array(n);
433
434 for (i = 0; i < n; ++i) {
435 values[i] = value(data[i], i, data);
436 }
437
438 var xz = domain(values),
439 x0 = xz[0],
440 x1 = xz[1],
441 tz = threshold(values, x0, x1);
442
443 // Convert number of thresholds into uniform thresholds.
444 if (!Array.isArray(tz)) {
445 tz = Object(_ticks__WEBPACK_IMPORTED_MODULE_6__["tickStep"])(x0, x1, tz);
446 tz = Object(_range__WEBPACK_IMPORTED_MODULE_5__["default"])(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive
447 }
448
449 // Remove any thresholds outside the domain.
450 var m = tz.length;
451 while (tz[0] <= x0) tz.shift(), --m;
452 while (tz[m - 1] > x1) tz.pop(), --m;
453
454 var bins = new Array(m + 1),
455 bin;
456
457 // Initialize bins.
458 for (i = 0; i <= m; ++i) {
459 bin = bins[i] = [];
460 bin.x0 = i > 0 ? tz[i - 1] : x0;
461 bin.x1 = i < m ? tz[i] : x1;
462 }
463
464 // Assign data to bins by value, ignoring any outside the domain.
465 for (i = 0; i < n; ++i) {
466 x = values[i];
467 if (x0 <= x && x <= x1) {
468 bins[Object(_bisect__WEBPACK_IMPORTED_MODULE_1__["default"])(tz, x, 0, m)].push(data[i]);
469 }
470 }
471
472 return bins;
473 }
474
475 histogram.value = function(_) {
476 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(_), histogram) : value;
477 };
478
479 histogram.domain = function(_) {
480 return arguments.length ? (domain = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])([_[0], _[1]]), histogram) : domain;
481 };
482
483 histogram.thresholds = function(_) {
484 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;
485 };
486
487 return histogram;
488});
489
490
491/***/ }),
492
493/***/ "./node_modules/d3-array/src/identity.js":
494/*!***********************************************!*\
495 !*** ./node_modules/d3-array/src/identity.js ***!
496 \***********************************************/
497/*! exports provided: default */
498/***/ (function(module, __webpack_exports__, __webpack_require__) {
499
500"use strict";
501__webpack_require__.r(__webpack_exports__);
502/* harmony default export */ __webpack_exports__["default"] = (function(x) {
503 return x;
504});
505
506
507/***/ }),
508
509/***/ "./node_modules/d3-array/src/index.js":
510/*!********************************************!*\
511 !*** ./node_modules/d3-array/src/index.js ***!
512 \********************************************/
513/*! 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 */
514/***/ (function(module, __webpack_exports__, __webpack_require__) {
515
516"use strict";
517__webpack_require__.r(__webpack_exports__);
518/* harmony import */ var _bisect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bisect */ "./node_modules/d3-array/src/bisect.js");
519/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisect", function() { return _bisect__WEBPACK_IMPORTED_MODULE_0__["default"]; });
520
521/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return _bisect__WEBPACK_IMPORTED_MODULE_0__["bisectRight"]; });
522
523/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return _bisect__WEBPACK_IMPORTED_MODULE_0__["bisectLeft"]; });
524
525/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
526/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ascending", function() { return _ascending__WEBPACK_IMPORTED_MODULE_1__["default"]; });
527
528/* harmony import */ var _bisector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bisector */ "./node_modules/d3-array/src/bisector.js");
529/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisector", function() { return _bisector__WEBPACK_IMPORTED_MODULE_2__["default"]; });
530
531/* harmony import */ var _cross__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cross */ "./node_modules/d3-array/src/cross.js");
532/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cross", function() { return _cross__WEBPACK_IMPORTED_MODULE_3__["default"]; });
533
534/* harmony import */ var _descending__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./descending */ "./node_modules/d3-array/src/descending.js");
535/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "descending", function() { return _descending__WEBPACK_IMPORTED_MODULE_4__["default"]; });
536
537/* harmony import */ var _deviation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./deviation */ "./node_modules/d3-array/src/deviation.js");
538/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deviation", function() { return _deviation__WEBPACK_IMPORTED_MODULE_5__["default"]; });
539
540/* harmony import */ var _extent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./extent */ "./node_modules/d3-array/src/extent.js");
541/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extent", function() { return _extent__WEBPACK_IMPORTED_MODULE_6__["default"]; });
542
543/* harmony import */ var _histogram__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./histogram */ "./node_modules/d3-array/src/histogram.js");
544/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "histogram", function() { return _histogram__WEBPACK_IMPORTED_MODULE_7__["default"]; });
545
546/* harmony import */ var _threshold_freedmanDiaconis__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./threshold/freedmanDiaconis */ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js");
547/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdFreedmanDiaconis", function() { return _threshold_freedmanDiaconis__WEBPACK_IMPORTED_MODULE_8__["default"]; });
548
549/* harmony import */ var _threshold_scott__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./threshold/scott */ "./node_modules/d3-array/src/threshold/scott.js");
550/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdScott", function() { return _threshold_scott__WEBPACK_IMPORTED_MODULE_9__["default"]; });
551
552/* harmony import */ var _threshold_sturges__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./threshold/sturges */ "./node_modules/d3-array/src/threshold/sturges.js");
553/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdSturges", function() { return _threshold_sturges__WEBPACK_IMPORTED_MODULE_10__["default"]; });
554
555/* harmony import */ var _max__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./max */ "./node_modules/d3-array/src/max.js");
556/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _max__WEBPACK_IMPORTED_MODULE_11__["default"]; });
557
558/* harmony import */ var _mean__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./mean */ "./node_modules/d3-array/src/mean.js");
559/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mean", function() { return _mean__WEBPACK_IMPORTED_MODULE_12__["default"]; });
560
561/* harmony import */ var _median__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./median */ "./node_modules/d3-array/src/median.js");
562/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "median", function() { return _median__WEBPACK_IMPORTED_MODULE_13__["default"]; });
563
564/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./merge */ "./node_modules/d3-array/src/merge.js");
565/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _merge__WEBPACK_IMPORTED_MODULE_14__["default"]; });
566
567/* harmony import */ var _min__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./min */ "./node_modules/d3-array/src/min.js");
568/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _min__WEBPACK_IMPORTED_MODULE_15__["default"]; });
569
570/* harmony import */ var _pairs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./pairs */ "./node_modules/d3-array/src/pairs.js");
571/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return _pairs__WEBPACK_IMPORTED_MODULE_16__["default"]; });
572
573/* harmony import */ var _permute__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./permute */ "./node_modules/d3-array/src/permute.js");
574/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "permute", function() { return _permute__WEBPACK_IMPORTED_MODULE_17__["default"]; });
575
576/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./quantile */ "./node_modules/d3-array/src/quantile.js");
577/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantile", function() { return _quantile__WEBPACK_IMPORTED_MODULE_18__["default"]; });
578
579/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./range */ "./node_modules/d3-array/src/range.js");
580/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return _range__WEBPACK_IMPORTED_MODULE_19__["default"]; });
581
582/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./scan */ "./node_modules/d3-array/src/scan.js");
583/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _scan__WEBPACK_IMPORTED_MODULE_20__["default"]; });
584
585/* harmony import */ var _shuffle__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./shuffle */ "./node_modules/d3-array/src/shuffle.js");
586/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return _shuffle__WEBPACK_IMPORTED_MODULE_21__["default"]; });
587
588/* harmony import */ var _sum__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./sum */ "./node_modules/d3-array/src/sum.js");
589/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return _sum__WEBPACK_IMPORTED_MODULE_22__["default"]; });
590
591/* harmony import */ var _ticks__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./ticks */ "./node_modules/d3-array/src/ticks.js");
592/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ticks", function() { return _ticks__WEBPACK_IMPORTED_MODULE_23__["default"]; });
593
594/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return _ticks__WEBPACK_IMPORTED_MODULE_23__["tickIncrement"]; });
595
596/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return _ticks__WEBPACK_IMPORTED_MODULE_23__["tickStep"]; });
597
598/* harmony import */ var _transpose__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./transpose */ "./node_modules/d3-array/src/transpose.js");
599/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transpose", function() { return _transpose__WEBPACK_IMPORTED_MODULE_24__["default"]; });
600
601/* harmony import */ var _variance__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./variance */ "./node_modules/d3-array/src/variance.js");
602/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "variance", function() { return _variance__WEBPACK_IMPORTED_MODULE_25__["default"]; });
603
604/* harmony import */ var _zip__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./zip */ "./node_modules/d3-array/src/zip.js");
605/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _zip__WEBPACK_IMPORTED_MODULE_26__["default"]; });
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636/***/ }),
637
638/***/ "./node_modules/d3-array/src/max.js":
639/*!******************************************!*\
640 !*** ./node_modules/d3-array/src/max.js ***!
641 \******************************************/
642/*! exports provided: default */
643/***/ (function(module, __webpack_exports__, __webpack_require__) {
644
645"use strict";
646__webpack_require__.r(__webpack_exports__);
647/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
648 var n = values.length,
649 i = -1,
650 value,
651 max;
652
653 if (valueof == null) {
654 while (++i < n) { // Find the first comparable value.
655 if ((value = values[i]) != null && value >= value) {
656 max = value;
657 while (++i < n) { // Compare the remaining values.
658 if ((value = values[i]) != null && value > max) {
659 max = value;
660 }
661 }
662 }
663 }
664 }
665
666 else {
667 while (++i < n) { // Find the first comparable value.
668 if ((value = valueof(values[i], i, values)) != null && value >= value) {
669 max = value;
670 while (++i < n) { // Compare the remaining values.
671 if ((value = valueof(values[i], i, values)) != null && value > max) {
672 max = value;
673 }
674 }
675 }
676 }
677 }
678
679 return max;
680});
681
682
683/***/ }),
684
685/***/ "./node_modules/d3-array/src/mean.js":
686/*!*******************************************!*\
687 !*** ./node_modules/d3-array/src/mean.js ***!
688 \*******************************************/
689/*! exports provided: default */
690/***/ (function(module, __webpack_exports__, __webpack_require__) {
691
692"use strict";
693__webpack_require__.r(__webpack_exports__);
694/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
695
696
697/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
698 var n = values.length,
699 m = n,
700 i = -1,
701 value,
702 sum = 0;
703
704 if (valueof == null) {
705 while (++i < n) {
706 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(values[i]))) sum += value;
707 else --m;
708 }
709 }
710
711 else {
712 while (++i < n) {
713 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(valueof(values[i], i, values)))) sum += value;
714 else --m;
715 }
716 }
717
718 if (m) return sum / m;
719});
720
721
722/***/ }),
723
724/***/ "./node_modules/d3-array/src/median.js":
725/*!*********************************************!*\
726 !*** ./node_modules/d3-array/src/median.js ***!
727 \*********************************************/
728/*! exports provided: default */
729/***/ (function(module, __webpack_exports__, __webpack_require__) {
730
731"use strict";
732__webpack_require__.r(__webpack_exports__);
733/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
734/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
735/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./quantile */ "./node_modules/d3-array/src/quantile.js");
736
737
738
739
740/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
741 var n = values.length,
742 i = -1,
743 value,
744 numbers = [];
745
746 if (valueof == null) {
747 while (++i < n) {
748 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_1__["default"])(values[i]))) {
749 numbers.push(value);
750 }
751 }
752 }
753
754 else {
755 while (++i < n) {
756 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_1__["default"])(valueof(values[i], i, values)))) {
757 numbers.push(value);
758 }
759 }
760 }
761
762 return Object(_quantile__WEBPACK_IMPORTED_MODULE_2__["default"])(numbers.sort(_ascending__WEBPACK_IMPORTED_MODULE_0__["default"]), 0.5);
763});
764
765
766/***/ }),
767
768/***/ "./node_modules/d3-array/src/merge.js":
769/*!********************************************!*\
770 !*** ./node_modules/d3-array/src/merge.js ***!
771 \********************************************/
772/*! exports provided: default */
773/***/ (function(module, __webpack_exports__, __webpack_require__) {
774
775"use strict";
776__webpack_require__.r(__webpack_exports__);
777/* harmony default export */ __webpack_exports__["default"] = (function(arrays) {
778 var n = arrays.length,
779 m,
780 i = -1,
781 j = 0,
782 merged,
783 array;
784
785 while (++i < n) j += arrays[i].length;
786 merged = new Array(j);
787
788 while (--n >= 0) {
789 array = arrays[n];
790 m = array.length;
791 while (--m >= 0) {
792 merged[--j] = array[m];
793 }
794 }
795
796 return merged;
797});
798
799
800/***/ }),
801
802/***/ "./node_modules/d3-array/src/min.js":
803/*!******************************************!*\
804 !*** ./node_modules/d3-array/src/min.js ***!
805 \******************************************/
806/*! exports provided: default */
807/***/ (function(module, __webpack_exports__, __webpack_require__) {
808
809"use strict";
810__webpack_require__.r(__webpack_exports__);
811/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
812 var n = values.length,
813 i = -1,
814 value,
815 min;
816
817 if (valueof == null) {
818 while (++i < n) { // Find the first comparable value.
819 if ((value = values[i]) != null && value >= value) {
820 min = value;
821 while (++i < n) { // Compare the remaining values.
822 if ((value = values[i]) != null && min > value) {
823 min = value;
824 }
825 }
826 }
827 }
828 }
829
830 else {
831 while (++i < n) { // Find the first comparable value.
832 if ((value = valueof(values[i], i, values)) != null && value >= value) {
833 min = value;
834 while (++i < n) { // Compare the remaining values.
835 if ((value = valueof(values[i], i, values)) != null && min > value) {
836 min = value;
837 }
838 }
839 }
840 }
841 }
842
843 return min;
844});
845
846
847/***/ }),
848
849/***/ "./node_modules/d3-array/src/number.js":
850/*!*********************************************!*\
851 !*** ./node_modules/d3-array/src/number.js ***!
852 \*********************************************/
853/*! exports provided: default */
854/***/ (function(module, __webpack_exports__, __webpack_require__) {
855
856"use strict";
857__webpack_require__.r(__webpack_exports__);
858/* harmony default export */ __webpack_exports__["default"] = (function(x) {
859 return x === null ? NaN : +x;
860});
861
862
863/***/ }),
864
865/***/ "./node_modules/d3-array/src/pairs.js":
866/*!********************************************!*\
867 !*** ./node_modules/d3-array/src/pairs.js ***!
868 \********************************************/
869/*! exports provided: default, pair */
870/***/ (function(module, __webpack_exports__, __webpack_require__) {
871
872"use strict";
873__webpack_require__.r(__webpack_exports__);
874/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pair", function() { return pair; });
875/* harmony default export */ __webpack_exports__["default"] = (function(array, f) {
876 if (f == null) f = pair;
877 var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
878 while (i < n) pairs[i] = f(p, p = array[++i]);
879 return pairs;
880});
881
882function pair(a, b) {
883 return [a, b];
884}
885
886
887/***/ }),
888
889/***/ "./node_modules/d3-array/src/permute.js":
890/*!**********************************************!*\
891 !*** ./node_modules/d3-array/src/permute.js ***!
892 \**********************************************/
893/*! exports provided: default */
894/***/ (function(module, __webpack_exports__, __webpack_require__) {
895
896"use strict";
897__webpack_require__.r(__webpack_exports__);
898/* harmony default export */ __webpack_exports__["default"] = (function(array, indexes) {
899 var i = indexes.length, permutes = new Array(i);
900 while (i--) permutes[i] = array[indexes[i]];
901 return permutes;
902});
903
904
905/***/ }),
906
907/***/ "./node_modules/d3-array/src/quantile.js":
908/*!***********************************************!*\
909 !*** ./node_modules/d3-array/src/quantile.js ***!
910 \***********************************************/
911/*! exports provided: default */
912/***/ (function(module, __webpack_exports__, __webpack_require__) {
913
914"use strict";
915__webpack_require__.r(__webpack_exports__);
916/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
917
918
919/* harmony default export */ __webpack_exports__["default"] = (function(values, p, valueof) {
920 if (valueof == null) valueof = _number__WEBPACK_IMPORTED_MODULE_0__["default"];
921 if (!(n = values.length)) return;
922 if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
923 if (p >= 1) return +valueof(values[n - 1], n - 1, values);
924 var n,
925 i = (n - 1) * p,
926 i0 = Math.floor(i),
927 value0 = +valueof(values[i0], i0, values),
928 value1 = +valueof(values[i0 + 1], i0 + 1, values);
929 return value0 + (value1 - value0) * (i - i0);
930});
931
932
933/***/ }),
934
935/***/ "./node_modules/d3-array/src/range.js":
936/*!********************************************!*\
937 !*** ./node_modules/d3-array/src/range.js ***!
938 \********************************************/
939/*! exports provided: default */
940/***/ (function(module, __webpack_exports__, __webpack_require__) {
941
942"use strict";
943__webpack_require__.r(__webpack_exports__);
944/* harmony default export */ __webpack_exports__["default"] = (function(start, stop, step) {
945 start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
946
947 var i = -1,
948 n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
949 range = new Array(n);
950
951 while (++i < n) {
952 range[i] = start + i * step;
953 }
954
955 return range;
956});
957
958
959/***/ }),
960
961/***/ "./node_modules/d3-array/src/scan.js":
962/*!*******************************************!*\
963 !*** ./node_modules/d3-array/src/scan.js ***!
964 \*******************************************/
965/*! exports provided: default */
966/***/ (function(module, __webpack_exports__, __webpack_require__) {
967
968"use strict";
969__webpack_require__.r(__webpack_exports__);
970/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-array/src/ascending.js");
971
972
973/* harmony default export */ __webpack_exports__["default"] = (function(values, compare) {
974 if (!(n = values.length)) return;
975 var n,
976 i = 0,
977 j = 0,
978 xi,
979 xj = values[j];
980
981 if (compare == null) compare = _ascending__WEBPACK_IMPORTED_MODULE_0__["default"];
982
983 while (++i < n) {
984 if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
985 xj = xi, j = i;
986 }
987 }
988
989 if (compare(xj, xj) === 0) return j;
990});
991
992
993/***/ }),
994
995/***/ "./node_modules/d3-array/src/shuffle.js":
996/*!**********************************************!*\
997 !*** ./node_modules/d3-array/src/shuffle.js ***!
998 \**********************************************/
999/*! exports provided: default */
1000/***/ (function(module, __webpack_exports__, __webpack_require__) {
1001
1002"use strict";
1003__webpack_require__.r(__webpack_exports__);
1004/* harmony default export */ __webpack_exports__["default"] = (function(array, i0, i1) {
1005 var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
1006 t,
1007 i;
1008
1009 while (m) {
1010 i = Math.random() * m-- | 0;
1011 t = array[m + i0];
1012 array[m + i0] = array[i + i0];
1013 array[i + i0] = t;
1014 }
1015
1016 return array;
1017});
1018
1019
1020/***/ }),
1021
1022/***/ "./node_modules/d3-array/src/sum.js":
1023/*!******************************************!*\
1024 !*** ./node_modules/d3-array/src/sum.js ***!
1025 \******************************************/
1026/*! exports provided: default */
1027/***/ (function(module, __webpack_exports__, __webpack_require__) {
1028
1029"use strict";
1030__webpack_require__.r(__webpack_exports__);
1031/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
1032 var n = values.length,
1033 i = -1,
1034 value,
1035 sum = 0;
1036
1037 if (valueof == null) {
1038 while (++i < n) {
1039 if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
1040 }
1041 }
1042
1043 else {
1044 while (++i < n) {
1045 if (value = +valueof(values[i], i, values)) sum += value;
1046 }
1047 }
1048
1049 return sum;
1050});
1051
1052
1053/***/ }),
1054
1055/***/ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js":
1056/*!*****************************************************************!*\
1057 !*** ./node_modules/d3-array/src/threshold/freedmanDiaconis.js ***!
1058 \*****************************************************************/
1059/*! exports provided: default */
1060/***/ (function(module, __webpack_exports__, __webpack_require__) {
1061
1062"use strict";
1063__webpack_require__.r(__webpack_exports__);
1064/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array */ "./node_modules/d3-array/src/array.js");
1065/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ascending */ "./node_modules/d3-array/src/ascending.js");
1066/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../number */ "./node_modules/d3-array/src/number.js");
1067/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../quantile */ "./node_modules/d3-array/src/quantile.js");
1068
1069
1070
1071
1072
1073/* harmony default export */ __webpack_exports__["default"] = (function(values, min, max) {
1074 values = _array__WEBPACK_IMPORTED_MODULE_0__["map"].call(values, _number__WEBPACK_IMPORTED_MODULE_2__["default"]).sort(_ascending__WEBPACK_IMPORTED_MODULE_1__["default"]);
1075 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)));
1076});
1077
1078
1079/***/ }),
1080
1081/***/ "./node_modules/d3-array/src/threshold/scott.js":
1082/*!******************************************************!*\
1083 !*** ./node_modules/d3-array/src/threshold/scott.js ***!
1084 \******************************************************/
1085/*! exports provided: default */
1086/***/ (function(module, __webpack_exports__, __webpack_require__) {
1087
1088"use strict";
1089__webpack_require__.r(__webpack_exports__);
1090/* harmony import */ var _deviation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../deviation */ "./node_modules/d3-array/src/deviation.js");
1091
1092
1093/* harmony default export */ __webpack_exports__["default"] = (function(values, min, max) {
1094 return Math.ceil((max - min) / (3.5 * Object(_deviation__WEBPACK_IMPORTED_MODULE_0__["default"])(values) * Math.pow(values.length, -1 / 3)));
1095});
1096
1097
1098/***/ }),
1099
1100/***/ "./node_modules/d3-array/src/threshold/sturges.js":
1101/*!********************************************************!*\
1102 !*** ./node_modules/d3-array/src/threshold/sturges.js ***!
1103 \********************************************************/
1104/*! exports provided: default */
1105/***/ (function(module, __webpack_exports__, __webpack_require__) {
1106
1107"use strict";
1108__webpack_require__.r(__webpack_exports__);
1109/* harmony default export */ __webpack_exports__["default"] = (function(values) {
1110 return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
1111});
1112
1113
1114/***/ }),
1115
1116/***/ "./node_modules/d3-array/src/ticks.js":
1117/*!********************************************!*\
1118 !*** ./node_modules/d3-array/src/ticks.js ***!
1119 \********************************************/
1120/*! exports provided: default, tickIncrement, tickStep */
1121/***/ (function(module, __webpack_exports__, __webpack_require__) {
1122
1123"use strict";
1124__webpack_require__.r(__webpack_exports__);
1125/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return tickIncrement; });
1126/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return tickStep; });
1127var e10 = Math.sqrt(50),
1128 e5 = Math.sqrt(10),
1129 e2 = Math.sqrt(2);
1130
1131/* harmony default export */ __webpack_exports__["default"] = (function(start, stop, count) {
1132 var reverse,
1133 i = -1,
1134 n,
1135 ticks,
1136 step;
1137
1138 stop = +stop, start = +start, count = +count;
1139 if (start === stop && count > 0) return [start];
1140 if (reverse = stop < start) n = start, start = stop, stop = n;
1141 if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
1142
1143 if (step > 0) {
1144 start = Math.ceil(start / step);
1145 stop = Math.floor(stop / step);
1146 ticks = new Array(n = Math.ceil(stop - start + 1));
1147 while (++i < n) ticks[i] = (start + i) * step;
1148 } else {
1149 start = Math.floor(start * step);
1150 stop = Math.ceil(stop * step);
1151 ticks = new Array(n = Math.ceil(start - stop + 1));
1152 while (++i < n) ticks[i] = (start - i) / step;
1153 }
1154
1155 if (reverse) ticks.reverse();
1156
1157 return ticks;
1158});
1159
1160function tickIncrement(start, stop, count) {
1161 var step = (stop - start) / Math.max(0, count),
1162 power = Math.floor(Math.log(step) / Math.LN10),
1163 error = step / Math.pow(10, power);
1164 return power >= 0
1165 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
1166 : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
1167}
1168
1169function tickStep(start, stop, count) {
1170 var step0 = Math.abs(stop - start) / Math.max(0, count),
1171 step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
1172 error = step0 / step1;
1173 if (error >= e10) step1 *= 10;
1174 else if (error >= e5) step1 *= 5;
1175 else if (error >= e2) step1 *= 2;
1176 return stop < start ? -step1 : step1;
1177}
1178
1179
1180/***/ }),
1181
1182/***/ "./node_modules/d3-array/src/transpose.js":
1183/*!************************************************!*\
1184 !*** ./node_modules/d3-array/src/transpose.js ***!
1185 \************************************************/
1186/*! exports provided: default */
1187/***/ (function(module, __webpack_exports__, __webpack_require__) {
1188
1189"use strict";
1190__webpack_require__.r(__webpack_exports__);
1191/* harmony import */ var _min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./min */ "./node_modules/d3-array/src/min.js");
1192
1193
1194/* harmony default export */ __webpack_exports__["default"] = (function(matrix) {
1195 if (!(n = matrix.length)) return [];
1196 for (var i = -1, m = Object(_min__WEBPACK_IMPORTED_MODULE_0__["default"])(matrix, length), transpose = new Array(m); ++i < m;) {
1197 for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
1198 row[j] = matrix[j][i];
1199 }
1200 }
1201 return transpose;
1202});
1203
1204function length(d) {
1205 return d.length;
1206}
1207
1208
1209/***/ }),
1210
1211/***/ "./node_modules/d3-array/src/variance.js":
1212/*!***********************************************!*\
1213 !*** ./node_modules/d3-array/src/variance.js ***!
1214 \***********************************************/
1215/*! exports provided: default */
1216/***/ (function(module, __webpack_exports__, __webpack_require__) {
1217
1218"use strict";
1219__webpack_require__.r(__webpack_exports__);
1220/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ "./node_modules/d3-array/src/number.js");
1221
1222
1223/* harmony default export */ __webpack_exports__["default"] = (function(values, valueof) {
1224 var n = values.length,
1225 m = 0,
1226 i = -1,
1227 mean = 0,
1228 value,
1229 delta,
1230 sum = 0;
1231
1232 if (valueof == null) {
1233 while (++i < n) {
1234 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(values[i]))) {
1235 delta = value - mean;
1236 mean += delta / ++m;
1237 sum += delta * (value - mean);
1238 }
1239 }
1240 }
1241
1242 else {
1243 while (++i < n) {
1244 if (!isNaN(value = Object(_number__WEBPACK_IMPORTED_MODULE_0__["default"])(valueof(values[i], i, values)))) {
1245 delta = value - mean;
1246 mean += delta / ++m;
1247 sum += delta * (value - mean);
1248 }
1249 }
1250 }
1251
1252 if (m > 1) return sum / (m - 1);
1253});
1254
1255
1256/***/ }),
1257
1258/***/ "./node_modules/d3-array/src/zip.js":
1259/*!******************************************!*\
1260 !*** ./node_modules/d3-array/src/zip.js ***!
1261 \******************************************/
1262/*! exports provided: default */
1263/***/ (function(module, __webpack_exports__, __webpack_require__) {
1264
1265"use strict";
1266__webpack_require__.r(__webpack_exports__);
1267/* harmony import */ var _transpose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transpose */ "./node_modules/d3-array/src/transpose.js");
1268
1269
1270/* harmony default export */ __webpack_exports__["default"] = (function() {
1271 return Object(_transpose__WEBPACK_IMPORTED_MODULE_0__["default"])(arguments);
1272});
1273
1274
1275/***/ }),
1276
1277/***/ "./node_modules/d3-axis/src/array.js":
1278/*!*******************************************!*\
1279 !*** ./node_modules/d3-axis/src/array.js ***!
1280 \*******************************************/
1281/*! exports provided: slice */
1282/***/ (function(module, __webpack_exports__, __webpack_require__) {
1283
1284"use strict";
1285__webpack_require__.r(__webpack_exports__);
1286/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
1287var slice = Array.prototype.slice;
1288
1289
1290/***/ }),
1291
1292/***/ "./node_modules/d3-axis/src/axis.js":
1293/*!******************************************!*\
1294 !*** ./node_modules/d3-axis/src/axis.js ***!
1295 \******************************************/
1296/*! exports provided: axisTop, axisRight, axisBottom, axisLeft */
1297/***/ (function(module, __webpack_exports__, __webpack_require__) {
1298
1299"use strict";
1300__webpack_require__.r(__webpack_exports__);
1301/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return axisTop; });
1302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return axisRight; });
1303/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return axisBottom; });
1304/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return axisLeft; });
1305/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-axis/src/array.js");
1306/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-axis/src/identity.js");
1307
1308
1309
1310var top = 1,
1311 right = 2,
1312 bottom = 3,
1313 left = 4,
1314 epsilon = 1e-6;
1315
1316function translateX(x) {
1317 return "translate(" + (x + 0.5) + ",0)";
1318}
1319
1320function translateY(y) {
1321 return "translate(0," + (y + 0.5) + ")";
1322}
1323
1324function number(scale) {
1325 return function(d) {
1326 return +scale(d);
1327 };
1328}
1329
1330function center(scale) {
1331 var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.
1332 if (scale.round()) offset = Math.round(offset);
1333 return function(d) {
1334 return +scale(d) + offset;
1335 };
1336}
1337
1338function entering() {
1339 return !this.__axis;
1340}
1341
1342function axis(orient, scale) {
1343 var tickArguments = [],
1344 tickValues = null,
1345 tickFormat = null,
1346 tickSizeInner = 6,
1347 tickSizeOuter = 6,
1348 tickPadding = 3,
1349 k = orient === top || orient === left ? -1 : 1,
1350 x = orient === left || orient === right ? "x" : "y",
1351 transform = orient === top || orient === bottom ? translateX : translateY;
1352
1353 function axis(context) {
1354 var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
1355 format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : _identity__WEBPACK_IMPORTED_MODULE_1__["default"]) : tickFormat,
1356 spacing = Math.max(tickSizeInner, 0) + tickPadding,
1357 range = scale.range(),
1358 range0 = +range[0] + 0.5,
1359 range1 = +range[range.length - 1] + 0.5,
1360 position = (scale.bandwidth ? center : number)(scale.copy()),
1361 selection = context.selection ? context.selection() : context,
1362 path = selection.selectAll(".domain").data([null]),
1363 tick = selection.selectAll(".tick").data(values, scale).order(),
1364 tickExit = tick.exit(),
1365 tickEnter = tick.enter().append("g").attr("class", "tick"),
1366 line = tick.select("line"),
1367 text = tick.select("text");
1368
1369 path = path.merge(path.enter().insert("path", ".tick")
1370 .attr("class", "domain")
1371 .attr("stroke", "currentColor"));
1372
1373 tick = tick.merge(tickEnter);
1374
1375 line = line.merge(tickEnter.append("line")
1376 .attr("stroke", "currentColor")
1377 .attr(x + "2", k * tickSizeInner));
1378
1379 text = text.merge(tickEnter.append("text")
1380 .attr("fill", "currentColor")
1381 .attr(x, k * spacing)
1382 .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
1383
1384 if (context !== selection) {
1385 path = path.transition(context);
1386 tick = tick.transition(context);
1387 line = line.transition(context);
1388 text = text.transition(context);
1389
1390 tickExit = tickExit.transition(context)
1391 .attr("opacity", epsilon)
1392 .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute("transform"); });
1393
1394 tickEnter
1395 .attr("opacity", epsilon)
1396 .attr("transform", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });
1397 }
1398
1399 tickExit.remove();
1400
1401 path
1402 .attr("d", orient === left || orient == right
1403 ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H0.5V" + range1 + "H" + k * tickSizeOuter : "M0.5," + range0 + "V" + range1)
1404 : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V0.5H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + ",0.5H" + range1));
1405
1406 tick
1407 .attr("opacity", 1)
1408 .attr("transform", function(d) { return transform(position(d)); });
1409
1410 line
1411 .attr(x + "2", k * tickSizeInner);
1412
1413 text
1414 .attr(x, k * spacing)
1415 .text(format);
1416
1417 selection.filter(entering)
1418 .attr("fill", "none")
1419 .attr("font-size", 10)
1420 .attr("font-family", "sans-serif")
1421 .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
1422
1423 selection
1424 .each(function() { this.__axis = position; });
1425 }
1426
1427 axis.scale = function(_) {
1428 return arguments.length ? (scale = _, axis) : scale;
1429 };
1430
1431 axis.ticks = function() {
1432 return tickArguments = _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(arguments), axis;
1433 };
1434
1435 axis.tickArguments = function(_) {
1436 return arguments.length ? (tickArguments = _ == null ? [] : _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_), axis) : tickArguments.slice();
1437 };
1438
1439 axis.tickValues = function(_) {
1440 return arguments.length ? (tickValues = _ == null ? null : _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_), axis) : tickValues && tickValues.slice();
1441 };
1442
1443 axis.tickFormat = function(_) {
1444 return arguments.length ? (tickFormat = _, axis) : tickFormat;
1445 };
1446
1447 axis.tickSize = function(_) {
1448 return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
1449 };
1450
1451 axis.tickSizeInner = function(_) {
1452 return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
1453 };
1454
1455 axis.tickSizeOuter = function(_) {
1456 return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
1457 };
1458
1459 axis.tickPadding = function(_) {
1460 return arguments.length ? (tickPadding = +_, axis) : tickPadding;
1461 };
1462
1463 return axis;
1464}
1465
1466function axisTop(scale) {
1467 return axis(top, scale);
1468}
1469
1470function axisRight(scale) {
1471 return axis(right, scale);
1472}
1473
1474function axisBottom(scale) {
1475 return axis(bottom, scale);
1476}
1477
1478function axisLeft(scale) {
1479 return axis(left, scale);
1480}
1481
1482
1483/***/ }),
1484
1485/***/ "./node_modules/d3-axis/src/identity.js":
1486/*!**********************************************!*\
1487 !*** ./node_modules/d3-axis/src/identity.js ***!
1488 \**********************************************/
1489/*! exports provided: default */
1490/***/ (function(module, __webpack_exports__, __webpack_require__) {
1491
1492"use strict";
1493__webpack_require__.r(__webpack_exports__);
1494/* harmony default export */ __webpack_exports__["default"] = (function(x) {
1495 return x;
1496});
1497
1498
1499/***/ }),
1500
1501/***/ "./node_modules/d3-axis/src/index.js":
1502/*!*******************************************!*\
1503 !*** ./node_modules/d3-axis/src/index.js ***!
1504 \*******************************************/
1505/*! exports provided: axisTop, axisRight, axisBottom, axisLeft */
1506/***/ (function(module, __webpack_exports__, __webpack_require__) {
1507
1508"use strict";
1509__webpack_require__.r(__webpack_exports__);
1510/* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./axis */ "./node_modules/d3-axis/src/axis.js");
1511/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return _axis__WEBPACK_IMPORTED_MODULE_0__["axisTop"]; });
1512
1513/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return _axis__WEBPACK_IMPORTED_MODULE_0__["axisRight"]; });
1514
1515/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return _axis__WEBPACK_IMPORTED_MODULE_0__["axisBottom"]; });
1516
1517/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return _axis__WEBPACK_IMPORTED_MODULE_0__["axisLeft"]; });
1518
1519
1520
1521
1522/***/ }),
1523
1524/***/ "./node_modules/d3-brush/src/brush.js":
1525/*!********************************************!*\
1526 !*** ./node_modules/d3-brush/src/brush.js ***!
1527 \********************************************/
1528/*! exports provided: brushSelection, brushX, brushY, default */
1529/***/ (function(module, __webpack_exports__, __webpack_require__) {
1530
1531"use strict";
1532__webpack_require__.r(__webpack_exports__);
1533/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return brushSelection; });
1534/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return brushX; });
1535/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return brushY; });
1536/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
1537/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/index.js");
1538/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
1539/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
1540/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
1541/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-brush/src/constant.js");
1542/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./event.js */ "./node_modules/d3-brush/src/event.js");
1543/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./noevent.js */ "./node_modules/d3-brush/src/noevent.js");
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553var MODE_DRAG = {name: "drag"},
1554 MODE_SPACE = {name: "space"},
1555 MODE_HANDLE = {name: "handle"},
1556 MODE_CENTER = {name: "center"};
1557
1558function number1(e) {
1559 return [+e[0], +e[1]];
1560}
1561
1562function number2(e) {
1563 return [number1(e[0]), number1(e[1])];
1564}
1565
1566function toucher(identifier) {
1567 return function(target) {
1568 return Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["touch"])(target, d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches, identifier);
1569 };
1570}
1571
1572var X = {
1573 name: "x",
1574 handles: ["w", "e"].map(type),
1575 input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },
1576 output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
1577};
1578
1579var Y = {
1580 name: "y",
1581 handles: ["n", "s"].map(type),
1582 input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },
1583 output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
1584};
1585
1586var XY = {
1587 name: "xy",
1588 handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type),
1589 input: function(xy) { return xy == null ? null : number2(xy); },
1590 output: function(xy) { return xy; }
1591};
1592
1593var cursors = {
1594 overlay: "crosshair",
1595 selection: "move",
1596 n: "ns-resize",
1597 e: "ew-resize",
1598 s: "ns-resize",
1599 w: "ew-resize",
1600 nw: "nwse-resize",
1601 ne: "nesw-resize",
1602 se: "nwse-resize",
1603 sw: "nesw-resize"
1604};
1605
1606var flipX = {
1607 e: "w",
1608 w: "e",
1609 nw: "ne",
1610 ne: "nw",
1611 se: "sw",
1612 sw: "se"
1613};
1614
1615var flipY = {
1616 n: "s",
1617 s: "n",
1618 nw: "sw",
1619 ne: "se",
1620 se: "ne",
1621 sw: "nw"
1622};
1623
1624var signsX = {
1625 overlay: +1,
1626 selection: +1,
1627 n: null,
1628 e: +1,
1629 s: null,
1630 w: -1,
1631 nw: -1,
1632 ne: +1,
1633 se: +1,
1634 sw: -1
1635};
1636
1637var signsY = {
1638 overlay: +1,
1639 selection: +1,
1640 n: -1,
1641 e: null,
1642 s: +1,
1643 w: null,
1644 nw: -1,
1645 ne: -1,
1646 se: +1,
1647 sw: +1
1648};
1649
1650function type(t) {
1651 return {type: t};
1652}
1653
1654// Ignore right-click, since that should open the context menu.
1655function defaultFilter() {
1656 return !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].ctrlKey && !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].button;
1657}
1658
1659function defaultExtent() {
1660 var svg = this.ownerSVGElement || this;
1661 if (svg.hasAttribute("viewBox")) {
1662 svg = svg.viewBox.baseVal;
1663 return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];
1664 }
1665 return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
1666}
1667
1668function defaultTouchable() {
1669 return navigator.maxTouchPoints || ("ontouchstart" in this);
1670}
1671
1672// Like d3.local, but with the name “__brush” rather than auto-generated.
1673function local(node) {
1674 while (!node.__brush) if (!(node = node.parentNode)) return;
1675 return node.__brush;
1676}
1677
1678function empty(extent) {
1679 return extent[0][0] === extent[1][0]
1680 || extent[0][1] === extent[1][1];
1681}
1682
1683function brushSelection(node) {
1684 var state = node.__brush;
1685 return state ? state.dim.output(state.selection) : null;
1686}
1687
1688function brushX() {
1689 return brush(X);
1690}
1691
1692function brushY() {
1693 return brush(Y);
1694}
1695
1696/* harmony default export */ __webpack_exports__["default"] = (function() {
1697 return brush(XY);
1698});
1699
1700function brush(dim) {
1701 var extent = defaultExtent,
1702 filter = defaultFilter,
1703 touchable = defaultTouchable,
1704 keys = true,
1705 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "brush", "end"),
1706 handleSize = 6,
1707 touchending;
1708
1709 function brush(group) {
1710 var overlay = group
1711 .property("__brush", initialize)
1712 .selectAll(".overlay")
1713 .data([type("overlay")]);
1714
1715 overlay.enter().append("rect")
1716 .attr("class", "overlay")
1717 .attr("pointer-events", "all")
1718 .attr("cursor", cursors.overlay)
1719 .merge(overlay)
1720 .each(function() {
1721 var extent = local(this).extent;
1722 Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this)
1723 .attr("x", extent[0][0])
1724 .attr("y", extent[0][1])
1725 .attr("width", extent[1][0] - extent[0][0])
1726 .attr("height", extent[1][1] - extent[0][1]);
1727 });
1728
1729 group.selectAll(".selection")
1730 .data([type("selection")])
1731 .enter().append("rect")
1732 .attr("class", "selection")
1733 .attr("cursor", cursors.selection)
1734 .attr("fill", "#777")
1735 .attr("fill-opacity", 0.3)
1736 .attr("stroke", "#fff")
1737 .attr("shape-rendering", "crispEdges");
1738
1739 var handle = group.selectAll(".handle")
1740 .data(dim.handles, function(d) { return d.type; });
1741
1742 handle.exit().remove();
1743
1744 handle.enter().append("rect")
1745 .attr("class", function(d) { return "handle handle--" + d.type; })
1746 .attr("cursor", function(d) { return cursors[d.type]; });
1747
1748 group
1749 .each(redraw)
1750 .attr("fill", "none")
1751 .attr("pointer-events", "all")
1752 .on("mousedown.brush", started)
1753 .filter(touchable)
1754 .on("touchstart.brush", started)
1755 .on("touchmove.brush", touchmoved)
1756 .on("touchend.brush touchcancel.brush", touchended)
1757 .style("touch-action", "none")
1758 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
1759 }
1760
1761 brush.move = function(group, selection) {
1762 if (group.selection) {
1763 group
1764 .on("start.brush", function() { emitter(this, arguments).beforestart().start(); })
1765 .on("interrupt.brush end.brush", function() { emitter(this, arguments).end(); })
1766 .tween("brush", function() {
1767 var that = this,
1768 state = that.__brush,
1769 emit = emitter(that, arguments),
1770 selection0 = state.selection,
1771 selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
1772 i = Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["interpolate"])(selection0, selection1);
1773
1774 function tween(t) {
1775 state.selection = t === 1 && selection1 === null ? null : i(t);
1776 redraw.call(that);
1777 emit.brush();
1778 }
1779
1780 return selection0 !== null && selection1 !== null ? tween : tween(1);
1781 });
1782 } else {
1783 group
1784 .each(function() {
1785 var that = this,
1786 args = arguments,
1787 state = that.__brush,
1788 selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
1789 emit = emitter(that, args).beforestart();
1790
1791 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(that);
1792 state.selection = selection1 === null ? null : selection1;
1793 redraw.call(that);
1794 emit.start().brush().end();
1795 });
1796 }
1797 };
1798
1799 brush.clear = function(group) {
1800 brush.move(group, null);
1801 };
1802
1803 function redraw() {
1804 var group = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this),
1805 selection = local(this).selection;
1806
1807 if (selection) {
1808 group.selectAll(".selection")
1809 .style("display", null)
1810 .attr("x", selection[0][0])
1811 .attr("y", selection[0][1])
1812 .attr("width", selection[1][0] - selection[0][0])
1813 .attr("height", selection[1][1] - selection[0][1]);
1814
1815 group.selectAll(".handle")
1816 .style("display", null)
1817 .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
1818 .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
1819 .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
1820 .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
1821 }
1822
1823 else {
1824 group.selectAll(".selection,.handle")
1825 .style("display", "none")
1826 .attr("x", null)
1827 .attr("y", null)
1828 .attr("width", null)
1829 .attr("height", null);
1830 }
1831 }
1832
1833 function emitter(that, args, clean) {
1834 return (!clean && that.__brush.emitter) || new Emitter(that, args);
1835 }
1836
1837 function Emitter(that, args) {
1838 this.that = that;
1839 this.args = args;
1840 this.state = that.__brush;
1841 this.active = 0;
1842 }
1843
1844 Emitter.prototype = {
1845 beforestart: function() {
1846 if (++this.active === 1) this.state.emitter = this, this.starting = true;
1847 return this;
1848 },
1849 start: function() {
1850 if (this.starting) this.starting = false, this.emit("start");
1851 else this.emit("brush");
1852 return this;
1853 },
1854 brush: function() {
1855 this.emit("brush");
1856 return this;
1857 },
1858 end: function() {
1859 if (--this.active === 0) delete this.state.emitter, this.emit("end");
1860 return this;
1861 },
1862 emit: function(type) {
1863 Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["customEvent"])(new _event_js__WEBPACK_IMPORTED_MODULE_6__["default"](brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);
1864 }
1865 };
1866
1867 function started() {
1868 if (touchending && !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches) return;
1869 if (!filter.apply(this, arguments)) return;
1870
1871 var that = this,
1872 type = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].target.__data__.type,
1873 mode = (keys && d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].altKey ? MODE_CENTER : MODE_HANDLE),
1874 signX = dim === Y ? null : signsX[type],
1875 signY = dim === X ? null : signsY[type],
1876 state = local(that),
1877 extent = state.extent,
1878 selection = state.selection,
1879 W = extent[0][0], w0, w1,
1880 N = extent[0][1], n0, n1,
1881 E = extent[1][0], e0, e1,
1882 S = extent[1][1], s0, s1,
1883 dx = 0,
1884 dy = 0,
1885 moving,
1886 shifting = signX && signY && keys && d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].shiftKey,
1887 lockX,
1888 lockY,
1889 pointer = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches ? toucher(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches[0].identifier) : d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"],
1890 point0 = pointer(that),
1891 point = point0,
1892 emit = emitter(that, arguments, true).beforestart();
1893
1894 if (type === "overlay") {
1895 if (selection) moving = true;
1896 state.selection = selection = [
1897 [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],
1898 [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]
1899 ];
1900 } else {
1901 w0 = selection[0][0];
1902 n0 = selection[0][1];
1903 e0 = selection[1][0];
1904 s0 = selection[1][1];
1905 }
1906
1907 w1 = w0;
1908 n1 = n0;
1909 e1 = e0;
1910 s1 = s0;
1911
1912 var group = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(that)
1913 .attr("pointer-events", "none");
1914
1915 var overlay = group.selectAll(".overlay")
1916 .attr("cursor", cursors[type]);
1917
1918 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches) {
1919 emit.moved = moved;
1920 emit.ended = ended;
1921 } else {
1922 var view = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view)
1923 .on("mousemove.brush", moved, true)
1924 .on("mouseup.brush", ended, true);
1925 if (keys) view
1926 .on("keydown.brush", keydowned, true)
1927 .on("keyup.brush", keyupped, true)
1928
1929 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragDisable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view);
1930 }
1931
1932 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_7__["nopropagation"])();
1933 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(that);
1934 redraw.call(that);
1935 emit.start();
1936
1937 function moved() {
1938 var point1 = pointer(that);
1939 if (shifting && !lockX && !lockY) {
1940 if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;
1941 else lockX = true;
1942 }
1943 point = point1;
1944 moving = true;
1945 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_7__["default"])();
1946 move();
1947 }
1948
1949 function move() {
1950 var t;
1951
1952 dx = point[0] - point0[0];
1953 dy = point[1] - point0[1];
1954
1955 switch (mode) {
1956 case MODE_SPACE:
1957 case MODE_DRAG: {
1958 if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
1959 if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
1960 break;
1961 }
1962 case MODE_HANDLE: {
1963 if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;
1964 else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;
1965 if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;
1966 else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;
1967 break;
1968 }
1969 case MODE_CENTER: {
1970 if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));
1971 if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));
1972 break;
1973 }
1974 }
1975
1976 if (e1 < w1) {
1977 signX *= -1;
1978 t = w0, w0 = e0, e0 = t;
1979 t = w1, w1 = e1, e1 = t;
1980 if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
1981 }
1982
1983 if (s1 < n1) {
1984 signY *= -1;
1985 t = n0, n0 = s0, s0 = t;
1986 t = n1, n1 = s1, s1 = t;
1987 if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
1988 }
1989
1990 if (state.selection) selection = state.selection; // May be set by brush.move!
1991 if (lockX) w1 = selection[0][0], e1 = selection[1][0];
1992 if (lockY) n1 = selection[0][1], s1 = selection[1][1];
1993
1994 if (selection[0][0] !== w1
1995 || selection[0][1] !== n1
1996 || selection[1][0] !== e1
1997 || selection[1][1] !== s1) {
1998 state.selection = [[w1, n1], [e1, s1]];
1999 redraw.call(that);
2000 emit.brush();
2001 }
2002 }
2003
2004 function ended() {
2005 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_7__["nopropagation"])();
2006 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches) {
2007 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches.length) return;
2008 if (touchending) clearTimeout(touchending);
2009 touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
2010 } else {
2011 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragEnable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view, moving);
2012 view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
2013 }
2014 group.attr("pointer-events", "all");
2015 overlay.attr("cursor", cursors.overlay);
2016 if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
2017 if (empty(selection)) state.selection = null, redraw.call(that);
2018 emit.end();
2019 }
2020
2021 function keydowned() {
2022 switch (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].keyCode) {
2023 case 16: { // SHIFT
2024 shifting = signX && signY;
2025 break;
2026 }
2027 case 18: { // ALT
2028 if (mode === MODE_HANDLE) {
2029 if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
2030 if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
2031 mode = MODE_CENTER;
2032 move();
2033 }
2034 break;
2035 }
2036 case 32: { // SPACE; takes priority over ALT
2037 if (mode === MODE_HANDLE || mode === MODE_CENTER) {
2038 if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
2039 if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
2040 mode = MODE_SPACE;
2041 overlay.attr("cursor", cursors.selection);
2042 move();
2043 }
2044 break;
2045 }
2046 default: return;
2047 }
2048 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_7__["default"])();
2049 }
2050
2051 function keyupped() {
2052 switch (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].keyCode) {
2053 case 16: { // SHIFT
2054 if (shifting) {
2055 lockX = lockY = shifting = false;
2056 move();
2057 }
2058 break;
2059 }
2060 case 18: { // ALT
2061 if (mode === MODE_CENTER) {
2062 if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
2063 if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
2064 mode = MODE_HANDLE;
2065 move();
2066 }
2067 break;
2068 }
2069 case 32: { // SPACE
2070 if (mode === MODE_SPACE) {
2071 if (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].altKey) {
2072 if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
2073 if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
2074 mode = MODE_CENTER;
2075 } else {
2076 if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
2077 if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
2078 mode = MODE_HANDLE;
2079 }
2080 overlay.attr("cursor", cursors[type]);
2081 move();
2082 }
2083 break;
2084 }
2085 default: return;
2086 }
2087 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_7__["default"])();
2088 }
2089 }
2090
2091 function touchmoved() {
2092 emitter(this, arguments).moved();
2093 }
2094
2095 function touchended() {
2096 emitter(this, arguments).ended();
2097 }
2098
2099 function initialize() {
2100 var state = this.__brush || {selection: null};
2101 state.extent = number2(extent.apply(this, arguments));
2102 state.dim = dim;
2103 return state;
2104 }
2105
2106 brush.extent = function(_) {
2107 return arguments.length ? (extent = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_5__["default"])(number2(_)), brush) : extent;
2108 };
2109
2110 brush.filter = function(_) {
2111 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), brush) : filter;
2112 };
2113
2114 brush.touchable = function(_) {
2115 return arguments.length ? (touchable = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), brush) : touchable;
2116 };
2117
2118 brush.handleSize = function(_) {
2119 return arguments.length ? (handleSize = +_, brush) : handleSize;
2120 };
2121
2122 brush.keyModifiers = function(_) {
2123 return arguments.length ? (keys = !!_, brush) : keys;
2124 };
2125
2126 brush.on = function() {
2127 var value = listeners.on.apply(listeners, arguments);
2128 return value === listeners ? brush : value;
2129 };
2130
2131 return brush;
2132}
2133
2134
2135/***/ }),
2136
2137/***/ "./node_modules/d3-brush/src/constant.js":
2138/*!***********************************************!*\
2139 !*** ./node_modules/d3-brush/src/constant.js ***!
2140 \***********************************************/
2141/*! exports provided: default */
2142/***/ (function(module, __webpack_exports__, __webpack_require__) {
2143
2144"use strict";
2145__webpack_require__.r(__webpack_exports__);
2146/* harmony default export */ __webpack_exports__["default"] = (function(x) {
2147 return function() {
2148 return x;
2149 };
2150});
2151
2152
2153/***/ }),
2154
2155/***/ "./node_modules/d3-brush/src/event.js":
2156/*!********************************************!*\
2157 !*** ./node_modules/d3-brush/src/event.js ***!
2158 \********************************************/
2159/*! exports provided: default */
2160/***/ (function(module, __webpack_exports__, __webpack_require__) {
2161
2162"use strict";
2163__webpack_require__.r(__webpack_exports__);
2164/* harmony default export */ __webpack_exports__["default"] = (function(target, type, selection) {
2165 this.target = target;
2166 this.type = type;
2167 this.selection = selection;
2168});
2169
2170
2171/***/ }),
2172
2173/***/ "./node_modules/d3-brush/src/index.js":
2174/*!********************************************!*\
2175 !*** ./node_modules/d3-brush/src/index.js ***!
2176 \********************************************/
2177/*! exports provided: brush, brushX, brushY, brushSelection */
2178/***/ (function(module, __webpack_exports__, __webpack_require__) {
2179
2180"use strict";
2181__webpack_require__.r(__webpack_exports__);
2182/* harmony import */ var _brush_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./brush.js */ "./node_modules/d3-brush/src/brush.js");
2183/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brush", function() { return _brush_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2184
2185/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return _brush_js__WEBPACK_IMPORTED_MODULE_0__["brushX"]; });
2186
2187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return _brush_js__WEBPACK_IMPORTED_MODULE_0__["brushY"]; });
2188
2189/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return _brush_js__WEBPACK_IMPORTED_MODULE_0__["brushSelection"]; });
2190
2191
2192
2193
2194/***/ }),
2195
2196/***/ "./node_modules/d3-brush/src/noevent.js":
2197/*!**********************************************!*\
2198 !*** ./node_modules/d3-brush/src/noevent.js ***!
2199 \**********************************************/
2200/*! exports provided: nopropagation, default */
2201/***/ (function(module, __webpack_exports__, __webpack_require__) {
2202
2203"use strict";
2204__webpack_require__.r(__webpack_exports__);
2205/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
2206/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
2207
2208
2209function nopropagation() {
2210 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
2211}
2212
2213/* harmony default export */ __webpack_exports__["default"] = (function() {
2214 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
2215 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
2216});
2217
2218
2219/***/ }),
2220
2221/***/ "./node_modules/d3-chord/src/array.js":
2222/*!********************************************!*\
2223 !*** ./node_modules/d3-chord/src/array.js ***!
2224 \********************************************/
2225/*! exports provided: slice */
2226/***/ (function(module, __webpack_exports__, __webpack_require__) {
2227
2228"use strict";
2229__webpack_require__.r(__webpack_exports__);
2230/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
2231var slice = Array.prototype.slice;
2232
2233
2234/***/ }),
2235
2236/***/ "./node_modules/d3-chord/src/chord.js":
2237/*!********************************************!*\
2238 !*** ./node_modules/d3-chord/src/chord.js ***!
2239 \********************************************/
2240/*! exports provided: default */
2241/***/ (function(module, __webpack_exports__, __webpack_require__) {
2242
2243"use strict";
2244__webpack_require__.r(__webpack_exports__);
2245/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
2246/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math */ "./node_modules/d3-chord/src/math.js");
2247
2248
2249
2250function compareValue(compare) {
2251 return function(a, b) {
2252 return compare(
2253 a.source.value + a.target.value,
2254 b.source.value + b.target.value
2255 );
2256 };
2257}
2258
2259/* harmony default export */ __webpack_exports__["default"] = (function() {
2260 var padAngle = 0,
2261 sortGroups = null,
2262 sortSubgroups = null,
2263 sortChords = null;
2264
2265 function chord(matrix) {
2266 var n = matrix.length,
2267 groupSums = [],
2268 groupIndex = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n),
2269 subgroupIndex = [],
2270 chords = [],
2271 groups = chords.groups = new Array(n),
2272 subgroups = new Array(n * n),
2273 k,
2274 x,
2275 x0,
2276 dx,
2277 i,
2278 j;
2279
2280 // Compute the sum.
2281 k = 0, i = -1; while (++i < n) {
2282 x = 0, j = -1; while (++j < n) {
2283 x += matrix[i][j];
2284 }
2285 groupSums.push(x);
2286 subgroupIndex.push(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n));
2287 k += x;
2288 }
2289
2290 // Sort groups…
2291 if (sortGroups) groupIndex.sort(function(a, b) {
2292 return sortGroups(groupSums[a], groupSums[b]);
2293 });
2294
2295 // Sort subgroups…
2296 if (sortSubgroups) subgroupIndex.forEach(function(d, i) {
2297 d.sort(function(a, b) {
2298 return sortSubgroups(matrix[i][a], matrix[i][b]);
2299 });
2300 });
2301
2302 // Convert the sum to scaling factor for [0, 2pi].
2303 // TODO Allow start and end angle to be specified?
2304 // TODO Allow padding to be specified as percentage?
2305 k = Object(_math__WEBPACK_IMPORTED_MODULE_1__["max"])(0, _math__WEBPACK_IMPORTED_MODULE_1__["tau"] - padAngle * n) / k;
2306 dx = k ? padAngle : _math__WEBPACK_IMPORTED_MODULE_1__["tau"] / n;
2307
2308 // Compute the start and end angle for each group and subgroup.
2309 // Note: Opera has a bug reordering object literal properties!
2310 x = 0, i = -1; while (++i < n) {
2311 x0 = x, j = -1; while (++j < n) {
2312 var di = groupIndex[i],
2313 dj = subgroupIndex[di][j],
2314 v = matrix[di][dj],
2315 a0 = x,
2316 a1 = x += v * k;
2317 subgroups[dj * n + di] = {
2318 index: di,
2319 subindex: dj,
2320 startAngle: a0,
2321 endAngle: a1,
2322 value: v
2323 };
2324 }
2325 groups[di] = {
2326 index: di,
2327 startAngle: x0,
2328 endAngle: x,
2329 value: groupSums[di]
2330 };
2331 x += dx;
2332 }
2333
2334 // Generate chords for each (non-empty) subgroup-subgroup link.
2335 i = -1; while (++i < n) {
2336 j = i - 1; while (++j < n) {
2337 var source = subgroups[j * n + i],
2338 target = subgroups[i * n + j];
2339 if (source.value || target.value) {
2340 chords.push(source.value < target.value
2341 ? {source: target, target: source}
2342 : {source: source, target: target});
2343 }
2344 }
2345 }
2346
2347 return sortChords ? chords.sort(sortChords) : chords;
2348 }
2349
2350 chord.padAngle = function(_) {
2351 return arguments.length ? (padAngle = Object(_math__WEBPACK_IMPORTED_MODULE_1__["max"])(0, _), chord) : padAngle;
2352 };
2353
2354 chord.sortGroups = function(_) {
2355 return arguments.length ? (sortGroups = _, chord) : sortGroups;
2356 };
2357
2358 chord.sortSubgroups = function(_) {
2359 return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
2360 };
2361
2362 chord.sortChords = function(_) {
2363 return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
2364 };
2365
2366 return chord;
2367});
2368
2369
2370/***/ }),
2371
2372/***/ "./node_modules/d3-chord/src/constant.js":
2373/*!***********************************************!*\
2374 !*** ./node_modules/d3-chord/src/constant.js ***!
2375 \***********************************************/
2376/*! exports provided: default */
2377/***/ (function(module, __webpack_exports__, __webpack_require__) {
2378
2379"use strict";
2380__webpack_require__.r(__webpack_exports__);
2381/* harmony default export */ __webpack_exports__["default"] = (function(x) {
2382 return function() {
2383 return x;
2384 };
2385});
2386
2387
2388/***/ }),
2389
2390/***/ "./node_modules/d3-chord/src/index.js":
2391/*!********************************************!*\
2392 !*** ./node_modules/d3-chord/src/index.js ***!
2393 \********************************************/
2394/*! exports provided: chord, ribbon */
2395/***/ (function(module, __webpack_exports__, __webpack_require__) {
2396
2397"use strict";
2398__webpack_require__.r(__webpack_exports__);
2399/* harmony import */ var _chord__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chord */ "./node_modules/d3-chord/src/chord.js");
2400/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chord", function() { return _chord__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2401
2402/* harmony import */ var _ribbon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ribbon */ "./node_modules/d3-chord/src/ribbon.js");
2403/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ribbon", function() { return _ribbon__WEBPACK_IMPORTED_MODULE_1__["default"]; });
2404
2405
2406
2407
2408
2409/***/ }),
2410
2411/***/ "./node_modules/d3-chord/src/math.js":
2412/*!*******************************************!*\
2413 !*** ./node_modules/d3-chord/src/math.js ***!
2414 \*******************************************/
2415/*! exports provided: cos, sin, pi, halfPi, tau, max */
2416/***/ (function(module, __webpack_exports__, __webpack_require__) {
2417
2418"use strict";
2419__webpack_require__.r(__webpack_exports__);
2420/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
2421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
2422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
2423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
2424/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
2425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; });
2426var cos = Math.cos;
2427var sin = Math.sin;
2428var pi = Math.PI;
2429var halfPi = pi / 2;
2430var tau = pi * 2;
2431var max = Math.max;
2432
2433
2434/***/ }),
2435
2436/***/ "./node_modules/d3-chord/src/ribbon.js":
2437/*!*********************************************!*\
2438 !*** ./node_modules/d3-chord/src/ribbon.js ***!
2439 \*********************************************/
2440/*! exports provided: default */
2441/***/ (function(module, __webpack_exports__, __webpack_require__) {
2442
2443"use strict";
2444__webpack_require__.r(__webpack_exports__);
2445/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-chord/src/array.js");
2446/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-chord/src/constant.js");
2447/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math */ "./node_modules/d3-chord/src/math.js");
2448/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
2449
2450
2451
2452
2453
2454function defaultSource(d) {
2455 return d.source;
2456}
2457
2458function defaultTarget(d) {
2459 return d.target;
2460}
2461
2462function defaultRadius(d) {
2463 return d.radius;
2464}
2465
2466function defaultStartAngle(d) {
2467 return d.startAngle;
2468}
2469
2470function defaultEndAngle(d) {
2471 return d.endAngle;
2472}
2473
2474/* harmony default export */ __webpack_exports__["default"] = (function() {
2475 var source = defaultSource,
2476 target = defaultTarget,
2477 radius = defaultRadius,
2478 startAngle = defaultStartAngle,
2479 endAngle = defaultEndAngle,
2480 context = null;
2481
2482 function ribbon() {
2483 var buffer,
2484 argv = _array__WEBPACK_IMPORTED_MODULE_0__["slice"].call(arguments),
2485 s = source.apply(this, argv),
2486 t = target.apply(this, argv),
2487 sr = +radius.apply(this, (argv[0] = s, argv)),
2488 sa0 = startAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2489 sa1 = endAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2490 sx0 = sr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(sa0),
2491 sy0 = sr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(sa0),
2492 tr = +radius.apply(this, (argv[0] = t, argv)),
2493 ta0 = startAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
2494 ta1 = endAngle.apply(this, argv) - _math__WEBPACK_IMPORTED_MODULE_2__["halfPi"];
2495
2496 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_3__["path"])();
2497
2498 context.moveTo(sx0, sy0);
2499 context.arc(0, 0, sr, sa0, sa1);
2500 if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?
2501 context.quadraticCurveTo(0, 0, tr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["cos"])(ta0), tr * Object(_math__WEBPACK_IMPORTED_MODULE_2__["sin"])(ta0));
2502 context.arc(0, 0, tr, ta0, ta1);
2503 }
2504 context.quadraticCurveTo(0, 0, sx0, sy0);
2505 context.closePath();
2506
2507 if (buffer) return context = null, buffer + "" || null;
2508 }
2509
2510 ribbon.radius = function(_) {
2511 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : radius;
2512 };
2513
2514 ribbon.startAngle = function(_) {
2515 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : startAngle;
2516 };
2517
2518 ribbon.endAngle = function(_) {
2519 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), ribbon) : endAngle;
2520 };
2521
2522 ribbon.source = function(_) {
2523 return arguments.length ? (source = _, ribbon) : source;
2524 };
2525
2526 ribbon.target = function(_) {
2527 return arguments.length ? (target = _, ribbon) : target;
2528 };
2529
2530 ribbon.context = function(_) {
2531 return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
2532 };
2533
2534 return ribbon;
2535});
2536
2537
2538/***/ }),
2539
2540/***/ "./node_modules/d3-collection/src/entries.js":
2541/*!***************************************************!*\
2542 !*** ./node_modules/d3-collection/src/entries.js ***!
2543 \***************************************************/
2544/*! exports provided: default */
2545/***/ (function(module, __webpack_exports__, __webpack_require__) {
2546
2547"use strict";
2548__webpack_require__.r(__webpack_exports__);
2549/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2550 var entries = [];
2551 for (var key in map) entries.push({key: key, value: map[key]});
2552 return entries;
2553});
2554
2555
2556/***/ }),
2557
2558/***/ "./node_modules/d3-collection/src/index.js":
2559/*!*************************************************!*\
2560 !*** ./node_modules/d3-collection/src/index.js ***!
2561 \*************************************************/
2562/*! exports provided: nest, set, map, keys, values, entries */
2563/***/ (function(module, __webpack_exports__, __webpack_require__) {
2564
2565"use strict";
2566__webpack_require__.r(__webpack_exports__);
2567/* harmony import */ var _nest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nest */ "./node_modules/d3-collection/src/nest.js");
2568/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nest", function() { return _nest__WEBPACK_IMPORTED_MODULE_0__["default"]; });
2569
2570/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./set */ "./node_modules/d3-collection/src/set.js");
2571/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "set", function() { return _set__WEBPACK_IMPORTED_MODULE_1__["default"]; });
2572
2573/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map */ "./node_modules/d3-collection/src/map.js");
2574/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _map__WEBPACK_IMPORTED_MODULE_2__["default"]; });
2575
2576/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./keys */ "./node_modules/d3-collection/src/keys.js");
2577/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return _keys__WEBPACK_IMPORTED_MODULE_3__["default"]; });
2578
2579/* harmony import */ var _values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./values */ "./node_modules/d3-collection/src/values.js");
2580/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return _values__WEBPACK_IMPORTED_MODULE_4__["default"]; });
2581
2582/* harmony import */ var _entries__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./entries */ "./node_modules/d3-collection/src/entries.js");
2583/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "entries", function() { return _entries__WEBPACK_IMPORTED_MODULE_5__["default"]; });
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593/***/ }),
2594
2595/***/ "./node_modules/d3-collection/src/keys.js":
2596/*!************************************************!*\
2597 !*** ./node_modules/d3-collection/src/keys.js ***!
2598 \************************************************/
2599/*! exports provided: default */
2600/***/ (function(module, __webpack_exports__, __webpack_require__) {
2601
2602"use strict";
2603__webpack_require__.r(__webpack_exports__);
2604/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2605 var keys = [];
2606 for (var key in map) keys.push(key);
2607 return keys;
2608});
2609
2610
2611/***/ }),
2612
2613/***/ "./node_modules/d3-collection/src/map.js":
2614/*!***********************************************!*\
2615 !*** ./node_modules/d3-collection/src/map.js ***!
2616 \***********************************************/
2617/*! exports provided: prefix, default */
2618/***/ (function(module, __webpack_exports__, __webpack_require__) {
2619
2620"use strict";
2621__webpack_require__.r(__webpack_exports__);
2622/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefix", function() { return prefix; });
2623var prefix = "$";
2624
2625function Map() {}
2626
2627Map.prototype = map.prototype = {
2628 constructor: Map,
2629 has: function(key) {
2630 return (prefix + key) in this;
2631 },
2632 get: function(key) {
2633 return this[prefix + key];
2634 },
2635 set: function(key, value) {
2636 this[prefix + key] = value;
2637 return this;
2638 },
2639 remove: function(key) {
2640 var property = prefix + key;
2641 return property in this && delete this[property];
2642 },
2643 clear: function() {
2644 for (var property in this) if (property[0] === prefix) delete this[property];
2645 },
2646 keys: function() {
2647 var keys = [];
2648 for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));
2649 return keys;
2650 },
2651 values: function() {
2652 var values = [];
2653 for (var property in this) if (property[0] === prefix) values.push(this[property]);
2654 return values;
2655 },
2656 entries: function() {
2657 var entries = [];
2658 for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});
2659 return entries;
2660 },
2661 size: function() {
2662 var size = 0;
2663 for (var property in this) if (property[0] === prefix) ++size;
2664 return size;
2665 },
2666 empty: function() {
2667 for (var property in this) if (property[0] === prefix) return false;
2668 return true;
2669 },
2670 each: function(f) {
2671 for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);
2672 }
2673};
2674
2675function map(object, f) {
2676 var map = new Map;
2677
2678 // Copy constructor.
2679 if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });
2680
2681 // Index array by numeric index or specified key function.
2682 else if (Array.isArray(object)) {
2683 var i = -1,
2684 n = object.length,
2685 o;
2686
2687 if (f == null) while (++i < n) map.set(i, object[i]);
2688 else while (++i < n) map.set(f(o = object[i], i, object), o);
2689 }
2690
2691 // Convert object to map.
2692 else if (object) for (var key in object) map.set(key, object[key]);
2693
2694 return map;
2695}
2696
2697/* harmony default export */ __webpack_exports__["default"] = (map);
2698
2699
2700/***/ }),
2701
2702/***/ "./node_modules/d3-collection/src/nest.js":
2703/*!************************************************!*\
2704 !*** ./node_modules/d3-collection/src/nest.js ***!
2705 \************************************************/
2706/*! exports provided: default */
2707/***/ (function(module, __webpack_exports__, __webpack_require__) {
2708
2709"use strict";
2710__webpack_require__.r(__webpack_exports__);
2711/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ "./node_modules/d3-collection/src/map.js");
2712
2713
2714/* harmony default export */ __webpack_exports__["default"] = (function() {
2715 var keys = [],
2716 sortKeys = [],
2717 sortValues,
2718 rollup,
2719 nest;
2720
2721 function apply(array, depth, createResult, setResult) {
2722 if (depth >= keys.length) {
2723 if (sortValues != null) array.sort(sortValues);
2724 return rollup != null ? rollup(array) : array;
2725 }
2726
2727 var i = -1,
2728 n = array.length,
2729 key = keys[depth++],
2730 keyValue,
2731 value,
2732 valuesByKey = Object(_map__WEBPACK_IMPORTED_MODULE_0__["default"])(),
2733 values,
2734 result = createResult();
2735
2736 while (++i < n) {
2737 if (values = valuesByKey.get(keyValue = key(value = array[i]) + "")) {
2738 values.push(value);
2739 } else {
2740 valuesByKey.set(keyValue, [value]);
2741 }
2742 }
2743
2744 valuesByKey.each(function(values, key) {
2745 setResult(result, key, apply(values, depth, createResult, setResult));
2746 });
2747
2748 return result;
2749 }
2750
2751 function entries(map, depth) {
2752 if (++depth > keys.length) return map;
2753 var array, sortKey = sortKeys[depth - 1];
2754 if (rollup != null && depth >= keys.length) array = map.entries();
2755 else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });
2756 return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;
2757 }
2758
2759 return nest = {
2760 object: function(array) { return apply(array, 0, createObject, setObject); },
2761 map: function(array) { return apply(array, 0, createMap, setMap); },
2762 entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },
2763 key: function(d) { keys.push(d); return nest; },
2764 sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },
2765 sortValues: function(order) { sortValues = order; return nest; },
2766 rollup: function(f) { rollup = f; return nest; }
2767 };
2768});
2769
2770function createObject() {
2771 return {};
2772}
2773
2774function setObject(object, key, value) {
2775 object[key] = value;
2776}
2777
2778function createMap() {
2779 return Object(_map__WEBPACK_IMPORTED_MODULE_0__["default"])();
2780}
2781
2782function setMap(map, key, value) {
2783 map.set(key, value);
2784}
2785
2786
2787/***/ }),
2788
2789/***/ "./node_modules/d3-collection/src/set.js":
2790/*!***********************************************!*\
2791 !*** ./node_modules/d3-collection/src/set.js ***!
2792 \***********************************************/
2793/*! exports provided: default */
2794/***/ (function(module, __webpack_exports__, __webpack_require__) {
2795
2796"use strict";
2797__webpack_require__.r(__webpack_exports__);
2798/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ "./node_modules/d3-collection/src/map.js");
2799
2800
2801function Set() {}
2802
2803var proto = _map__WEBPACK_IMPORTED_MODULE_0__["default"].prototype;
2804
2805Set.prototype = set.prototype = {
2806 constructor: Set,
2807 has: proto.has,
2808 add: function(value) {
2809 value += "";
2810 this[_map__WEBPACK_IMPORTED_MODULE_0__["prefix"] + value] = value;
2811 return this;
2812 },
2813 remove: proto.remove,
2814 clear: proto.clear,
2815 values: proto.keys,
2816 size: proto.size,
2817 empty: proto.empty,
2818 each: proto.each
2819};
2820
2821function set(object, f) {
2822 var set = new Set;
2823
2824 // Copy constructor.
2825 if (object instanceof Set) object.each(function(value) { set.add(value); });
2826
2827 // Otherwise, assume it’s an array.
2828 else if (object) {
2829 var i = -1, n = object.length;
2830 if (f == null) while (++i < n) set.add(object[i]);
2831 else while (++i < n) set.add(f(object[i], i, object));
2832 }
2833
2834 return set;
2835}
2836
2837/* harmony default export */ __webpack_exports__["default"] = (set);
2838
2839
2840/***/ }),
2841
2842/***/ "./node_modules/d3-collection/src/values.js":
2843/*!**************************************************!*\
2844 !*** ./node_modules/d3-collection/src/values.js ***!
2845 \**************************************************/
2846/*! exports provided: default */
2847/***/ (function(module, __webpack_exports__, __webpack_require__) {
2848
2849"use strict";
2850__webpack_require__.r(__webpack_exports__);
2851/* harmony default export */ __webpack_exports__["default"] = (function(map) {
2852 var values = [];
2853 for (var key in map) values.push(map[key]);
2854 return values;
2855});
2856
2857
2858/***/ }),
2859
2860/***/ "./node_modules/d3-color/src/color.js":
2861/*!********************************************!*\
2862 !*** ./node_modules/d3-color/src/color.js ***!
2863 \********************************************/
2864/*! exports provided: Color, darker, brighter, default, rgbConvert, rgb, Rgb, hslConvert, hsl */
2865/***/ (function(module, __webpack_exports__, __webpack_require__) {
2866
2867"use strict";
2868__webpack_require__.r(__webpack_exports__);
2869/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return Color; });
2870/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "darker", function() { return darker; });
2871/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "brighter", function() { return brighter; });
2872/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return color; });
2873/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbConvert", function() { return rgbConvert; });
2874/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return rgb; });
2875/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Rgb", function() { return Rgb; });
2876/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hslConvert", function() { return hslConvert; });
2877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return hsl; });
2878/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ "./node_modules/d3-color/src/define.js");
2879
2880
2881function Color() {}
2882
2883var darker = 0.7;
2884var brighter = 1 / darker;
2885
2886var reI = "\\s*([+-]?\\d+)\\s*",
2887 reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2888 reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2889 reHex = /^#([0-9a-f]{3,8})$/,
2890 reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
2891 reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
2892 reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
2893 reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
2894 reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
2895 reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
2896
2897var named = {
2898 aliceblue: 0xf0f8ff,
2899 antiquewhite: 0xfaebd7,
2900 aqua: 0x00ffff,
2901 aquamarine: 0x7fffd4,
2902 azure: 0xf0ffff,
2903 beige: 0xf5f5dc,
2904 bisque: 0xffe4c4,
2905 black: 0x000000,
2906 blanchedalmond: 0xffebcd,
2907 blue: 0x0000ff,
2908 blueviolet: 0x8a2be2,
2909 brown: 0xa52a2a,
2910 burlywood: 0xdeb887,
2911 cadetblue: 0x5f9ea0,
2912 chartreuse: 0x7fff00,
2913 chocolate: 0xd2691e,
2914 coral: 0xff7f50,
2915 cornflowerblue: 0x6495ed,
2916 cornsilk: 0xfff8dc,
2917 crimson: 0xdc143c,
2918 cyan: 0x00ffff,
2919 darkblue: 0x00008b,
2920 darkcyan: 0x008b8b,
2921 darkgoldenrod: 0xb8860b,
2922 darkgray: 0xa9a9a9,
2923 darkgreen: 0x006400,
2924 darkgrey: 0xa9a9a9,
2925 darkkhaki: 0xbdb76b,
2926 darkmagenta: 0x8b008b,
2927 darkolivegreen: 0x556b2f,
2928 darkorange: 0xff8c00,
2929 darkorchid: 0x9932cc,
2930 darkred: 0x8b0000,
2931 darksalmon: 0xe9967a,
2932 darkseagreen: 0x8fbc8f,
2933 darkslateblue: 0x483d8b,
2934 darkslategray: 0x2f4f4f,
2935 darkslategrey: 0x2f4f4f,
2936 darkturquoise: 0x00ced1,
2937 darkviolet: 0x9400d3,
2938 deeppink: 0xff1493,
2939 deepskyblue: 0x00bfff,
2940 dimgray: 0x696969,
2941 dimgrey: 0x696969,
2942 dodgerblue: 0x1e90ff,
2943 firebrick: 0xb22222,
2944 floralwhite: 0xfffaf0,
2945 forestgreen: 0x228b22,
2946 fuchsia: 0xff00ff,
2947 gainsboro: 0xdcdcdc,
2948 ghostwhite: 0xf8f8ff,
2949 gold: 0xffd700,
2950 goldenrod: 0xdaa520,
2951 gray: 0x808080,
2952 green: 0x008000,
2953 greenyellow: 0xadff2f,
2954 grey: 0x808080,
2955 honeydew: 0xf0fff0,
2956 hotpink: 0xff69b4,
2957 indianred: 0xcd5c5c,
2958 indigo: 0x4b0082,
2959 ivory: 0xfffff0,
2960 khaki: 0xf0e68c,
2961 lavender: 0xe6e6fa,
2962 lavenderblush: 0xfff0f5,
2963 lawngreen: 0x7cfc00,
2964 lemonchiffon: 0xfffacd,
2965 lightblue: 0xadd8e6,
2966 lightcoral: 0xf08080,
2967 lightcyan: 0xe0ffff,
2968 lightgoldenrodyellow: 0xfafad2,
2969 lightgray: 0xd3d3d3,
2970 lightgreen: 0x90ee90,
2971 lightgrey: 0xd3d3d3,
2972 lightpink: 0xffb6c1,
2973 lightsalmon: 0xffa07a,
2974 lightseagreen: 0x20b2aa,
2975 lightskyblue: 0x87cefa,
2976 lightslategray: 0x778899,
2977 lightslategrey: 0x778899,
2978 lightsteelblue: 0xb0c4de,
2979 lightyellow: 0xffffe0,
2980 lime: 0x00ff00,
2981 limegreen: 0x32cd32,
2982 linen: 0xfaf0e6,
2983 magenta: 0xff00ff,
2984 maroon: 0x800000,
2985 mediumaquamarine: 0x66cdaa,
2986 mediumblue: 0x0000cd,
2987 mediumorchid: 0xba55d3,
2988 mediumpurple: 0x9370db,
2989 mediumseagreen: 0x3cb371,
2990 mediumslateblue: 0x7b68ee,
2991 mediumspringgreen: 0x00fa9a,
2992 mediumturquoise: 0x48d1cc,
2993 mediumvioletred: 0xc71585,
2994 midnightblue: 0x191970,
2995 mintcream: 0xf5fffa,
2996 mistyrose: 0xffe4e1,
2997 moccasin: 0xffe4b5,
2998 navajowhite: 0xffdead,
2999 navy: 0x000080,
3000 oldlace: 0xfdf5e6,
3001 olive: 0x808000,
3002 olivedrab: 0x6b8e23,
3003 orange: 0xffa500,
3004 orangered: 0xff4500,
3005 orchid: 0xda70d6,
3006 palegoldenrod: 0xeee8aa,
3007 palegreen: 0x98fb98,
3008 paleturquoise: 0xafeeee,
3009 palevioletred: 0xdb7093,
3010 papayawhip: 0xffefd5,
3011 peachpuff: 0xffdab9,
3012 peru: 0xcd853f,
3013 pink: 0xffc0cb,
3014 plum: 0xdda0dd,
3015 powderblue: 0xb0e0e6,
3016 purple: 0x800080,
3017 rebeccapurple: 0x663399,
3018 red: 0xff0000,
3019 rosybrown: 0xbc8f8f,
3020 royalblue: 0x4169e1,
3021 saddlebrown: 0x8b4513,
3022 salmon: 0xfa8072,
3023 sandybrown: 0xf4a460,
3024 seagreen: 0x2e8b57,
3025 seashell: 0xfff5ee,
3026 sienna: 0xa0522d,
3027 silver: 0xc0c0c0,
3028 skyblue: 0x87ceeb,
3029 slateblue: 0x6a5acd,
3030 slategray: 0x708090,
3031 slategrey: 0x708090,
3032 snow: 0xfffafa,
3033 springgreen: 0x00ff7f,
3034 steelblue: 0x4682b4,
3035 tan: 0xd2b48c,
3036 teal: 0x008080,
3037 thistle: 0xd8bfd8,
3038 tomato: 0xff6347,
3039 turquoise: 0x40e0d0,
3040 violet: 0xee82ee,
3041 wheat: 0xf5deb3,
3042 white: 0xffffff,
3043 whitesmoke: 0xf5f5f5,
3044 yellow: 0xffff00,
3045 yellowgreen: 0x9acd32
3046};
3047
3048Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Color, color, {
3049 copy: function(channels) {
3050 return Object.assign(new this.constructor, this, channels);
3051 },
3052 displayable: function() {
3053 return this.rgb().displayable();
3054 },
3055 hex: color_formatHex, // Deprecated! Use color.formatHex.
3056 formatHex: color_formatHex,
3057 formatHsl: color_formatHsl,
3058 formatRgb: color_formatRgb,
3059 toString: color_formatRgb
3060});
3061
3062function color_formatHex() {
3063 return this.rgb().formatHex();
3064}
3065
3066function color_formatHsl() {
3067 return hslConvert(this).formatHsl();
3068}
3069
3070function color_formatRgb() {
3071 return this.rgb().formatRgb();
3072}
3073
3074function color(format) {
3075 var m, l;
3076 format = (format + "").trim().toLowerCase();
3077 return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000
3078 : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00
3079 : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
3080 : l === 4 ? new Rgb((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000
3081 : null) // invalid hex
3082 : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
3083 : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
3084 : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
3085 : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
3086 : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
3087 : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
3088 : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
3089 : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
3090 : null;
3091}
3092
3093function rgbn(n) {
3094 return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
3095}
3096
3097function rgba(r, g, b, a) {
3098 if (a <= 0) r = g = b = NaN;
3099 return new Rgb(r, g, b, a);
3100}
3101
3102function rgbConvert(o) {
3103 if (!(o instanceof Color)) o = color(o);
3104 if (!o) return new Rgb;
3105 o = o.rgb();
3106 return new Rgb(o.r, o.g, o.b, o.opacity);
3107}
3108
3109function rgb(r, g, b, opacity) {
3110 return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
3111}
3112
3113function Rgb(r, g, b, opacity) {
3114 this.r = +r;
3115 this.g = +g;
3116 this.b = +b;
3117 this.opacity = +opacity;
3118}
3119
3120Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Rgb, rgb, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["extend"])(Color, {
3121 brighter: function(k) {
3122 k = k == null ? brighter : Math.pow(brighter, k);
3123 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3124 },
3125 darker: function(k) {
3126 k = k == null ? darker : Math.pow(darker, k);
3127 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3128 },
3129 rgb: function() {
3130 return this;
3131 },
3132 displayable: function() {
3133 return (-0.5 <= this.r && this.r < 255.5)
3134 && (-0.5 <= this.g && this.g < 255.5)
3135 && (-0.5 <= this.b && this.b < 255.5)
3136 && (0 <= this.opacity && this.opacity <= 1);
3137 },
3138 hex: rgb_formatHex, // Deprecated! Use color.formatHex.
3139 formatHex: rgb_formatHex,
3140 formatRgb: rgb_formatRgb,
3141 toString: rgb_formatRgb
3142}));
3143
3144function rgb_formatHex() {
3145 return "#" + hex(this.r) + hex(this.g) + hex(this.b);
3146}
3147
3148function rgb_formatRgb() {
3149 var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
3150 return (a === 1 ? "rgb(" : "rgba(")
3151 + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
3152 + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
3153 + Math.max(0, Math.min(255, Math.round(this.b) || 0))
3154 + (a === 1 ? ")" : ", " + a + ")");
3155}
3156
3157function hex(value) {
3158 value = Math.max(0, Math.min(255, Math.round(value) || 0));
3159 return (value < 16 ? "0" : "") + value.toString(16);
3160}
3161
3162function hsla(h, s, l, a) {
3163 if (a <= 0) h = s = l = NaN;
3164 else if (l <= 0 || l >= 1) h = s = NaN;
3165 else if (s <= 0) h = NaN;
3166 return new Hsl(h, s, l, a);
3167}
3168
3169function hslConvert(o) {
3170 if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
3171 if (!(o instanceof Color)) o = color(o);
3172 if (!o) return new Hsl;
3173 if (o instanceof Hsl) return o;
3174 o = o.rgb();
3175 var r = o.r / 255,
3176 g = o.g / 255,
3177 b = o.b / 255,
3178 min = Math.min(r, g, b),
3179 max = Math.max(r, g, b),
3180 h = NaN,
3181 s = max - min,
3182 l = (max + min) / 2;
3183 if (s) {
3184 if (r === max) h = (g - b) / s + (g < b) * 6;
3185 else if (g === max) h = (b - r) / s + 2;
3186 else h = (r - g) / s + 4;
3187 s /= l < 0.5 ? max + min : 2 - max - min;
3188 h *= 60;
3189 } else {
3190 s = l > 0 && l < 1 ? 0 : h;
3191 }
3192 return new Hsl(h, s, l, o.opacity);
3193}
3194
3195function hsl(h, s, l, opacity) {
3196 return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
3197}
3198
3199function Hsl(h, s, l, opacity) {
3200 this.h = +h;
3201 this.s = +s;
3202 this.l = +l;
3203 this.opacity = +opacity;
3204}
3205
3206Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Hsl, hsl, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["extend"])(Color, {
3207 brighter: function(k) {
3208 k = k == null ? brighter : Math.pow(brighter, k);
3209 return new Hsl(this.h, this.s, this.l * k, this.opacity);
3210 },
3211 darker: function(k) {
3212 k = k == null ? darker : Math.pow(darker, k);
3213 return new Hsl(this.h, this.s, this.l * k, this.opacity);
3214 },
3215 rgb: function() {
3216 var h = this.h % 360 + (this.h < 0) * 360,
3217 s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
3218 l = this.l,
3219 m2 = l + (l < 0.5 ? l : 1 - l) * s,
3220 m1 = 2 * l - m2;
3221 return new Rgb(
3222 hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
3223 hsl2rgb(h, m1, m2),
3224 hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
3225 this.opacity
3226 );
3227 },
3228 displayable: function() {
3229 return (0 <= this.s && this.s <= 1 || isNaN(this.s))
3230 && (0 <= this.l && this.l <= 1)
3231 && (0 <= this.opacity && this.opacity <= 1);
3232 },
3233 formatHsl: function() {
3234 var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
3235 return (a === 1 ? "hsl(" : "hsla(")
3236 + (this.h || 0) + ", "
3237 + (this.s || 0) * 100 + "%, "
3238 + (this.l || 0) * 100 + "%"
3239 + (a === 1 ? ")" : ", " + a + ")");
3240 }
3241}));
3242
3243/* From FvD 13.37, CSS Color Module Level 3 */
3244function hsl2rgb(h, m1, m2) {
3245 return (h < 60 ? m1 + (m2 - m1) * h / 60
3246 : h < 180 ? m2
3247 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
3248 : m1) * 255;
3249}
3250
3251
3252/***/ }),
3253
3254/***/ "./node_modules/d3-color/src/cubehelix.js":
3255/*!************************************************!*\
3256 !*** ./node_modules/d3-color/src/cubehelix.js ***!
3257 \************************************************/
3258/*! exports provided: default, Cubehelix */
3259/***/ (function(module, __webpack_exports__, __webpack_require__) {
3260
3261"use strict";
3262__webpack_require__.r(__webpack_exports__);
3263/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return cubehelix; });
3264/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Cubehelix", function() { return Cubehelix; });
3265/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ "./node_modules/d3-color/src/define.js");
3266/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-color/src/color.js");
3267/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-color/src/math.js");
3268
3269
3270
3271
3272var A = -0.14861,
3273 B = +1.78277,
3274 C = -0.29227,
3275 D = -0.90649,
3276 E = +1.97294,
3277 ED = E * D,
3278 EB = E * B,
3279 BC_DA = B * C - D * A;
3280
3281function cubehelixConvert(o) {
3282 if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
3283 if (!(o instanceof _color_js__WEBPACK_IMPORTED_MODULE_1__["Rgb"])) o = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["rgbConvert"])(o);
3284 var r = o.r / 255,
3285 g = o.g / 255,
3286 b = o.b / 255,
3287 l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
3288 bl = b - l,
3289 k = (E * (g - l) - C * bl) / D,
3290 s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
3291 h = s ? Math.atan2(k, bl) * _math_js__WEBPACK_IMPORTED_MODULE_2__["rad2deg"] - 120 : NaN;
3292 return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
3293}
3294
3295function cubehelix(h, s, l, opacity) {
3296 return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
3297}
3298
3299function Cubehelix(h, s, l, opacity) {
3300 this.h = +h;
3301 this.s = +s;
3302 this.l = +l;
3303 this.opacity = +opacity;
3304}
3305
3306Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Cubehelix, cubehelix, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color_js__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3307 brighter: function(k) {
3308 k = k == null ? _color_js__WEBPACK_IMPORTED_MODULE_1__["brighter"] : Math.pow(_color_js__WEBPACK_IMPORTED_MODULE_1__["brighter"], k);
3309 return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
3310 },
3311 darker: function(k) {
3312 k = k == null ? _color_js__WEBPACK_IMPORTED_MODULE_1__["darker"] : Math.pow(_color_js__WEBPACK_IMPORTED_MODULE_1__["darker"], k);
3313 return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
3314 },
3315 rgb: function() {
3316 var h = isNaN(this.h) ? 0 : (this.h + 120) * _math_js__WEBPACK_IMPORTED_MODULE_2__["deg2rad"],
3317 l = +this.l,
3318 a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
3319 cosh = Math.cos(h),
3320 sinh = Math.sin(h);
3321 return new _color_js__WEBPACK_IMPORTED_MODULE_1__["Rgb"](
3322 255 * (l + a * (A * cosh + B * sinh)),
3323 255 * (l + a * (C * cosh + D * sinh)),
3324 255 * (l + a * (E * cosh)),
3325 this.opacity
3326 );
3327 }
3328}));
3329
3330
3331/***/ }),
3332
3333/***/ "./node_modules/d3-color/src/define.js":
3334/*!*********************************************!*\
3335 !*** ./node_modules/d3-color/src/define.js ***!
3336 \*********************************************/
3337/*! exports provided: default, extend */
3338/***/ (function(module, __webpack_exports__, __webpack_require__) {
3339
3340"use strict";
3341__webpack_require__.r(__webpack_exports__);
3342/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; });
3343/* harmony default export */ __webpack_exports__["default"] = (function(constructor, factory, prototype) {
3344 constructor.prototype = factory.prototype = prototype;
3345 prototype.constructor = constructor;
3346});
3347
3348function extend(parent, definition) {
3349 var prototype = Object.create(parent.prototype);
3350 for (var key in definition) prototype[key] = definition[key];
3351 return prototype;
3352}
3353
3354
3355/***/ }),
3356
3357/***/ "./node_modules/d3-color/src/index.js":
3358/*!********************************************!*\
3359 !*** ./node_modules/d3-color/src/index.js ***!
3360 \********************************************/
3361/*! exports provided: color, rgb, hsl, lab, hcl, lch, gray, cubehelix */
3362/***/ (function(module, __webpack_exports__, __webpack_require__) {
3363
3364"use strict";
3365__webpack_require__.r(__webpack_exports__);
3366/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-color/src/color.js");
3367/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "color", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
3368
3369/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__["rgb"]; });
3370
3371/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__["hsl"]; });
3372
3373/* harmony import */ var _lab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lab.js */ "./node_modules/d3-color/src/lab.js");
3374/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lab", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
3375
3376/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__["hcl"]; });
3377
3378/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lch", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__["lch"]; });
3379
3380/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "gray", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__["gray"]; });
3381
3382/* harmony import */ var _cubehelix_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubehelix.js */ "./node_modules/d3-color/src/cubehelix.js");
3383/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cubehelix", function() { return _cubehelix_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
3384
3385
3386
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: gray, default, Lab, lch, 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__, "gray", function() { return gray; });
3402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return lab; });
3403/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Lab", function() { return Lab; });
3404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lch", function() { return lch; });
3405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return hcl; });
3406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Hcl", function() { return Hcl; });
3407/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ "./node_modules/d3-color/src/define.js");
3408/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-color/src/color.js");
3409/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-color/src/math.js");
3410
3411
3412
3413
3414// https://observablehq.com/@mbostock/lab-and-rgb
3415var K = 18,
3416 Xn = 0.96422,
3417 Yn = 1,
3418 Zn = 0.82521,
3419 t0 = 4 / 29,
3420 t1 = 6 / 29,
3421 t2 = 3 * t1 * t1,
3422 t3 = t1 * t1 * t1;
3423
3424function labConvert(o) {
3425 if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
3426 if (o instanceof Hcl) return hcl2lab(o);
3427 if (!(o instanceof _color_js__WEBPACK_IMPORTED_MODULE_1__["Rgb"])) o = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["rgbConvert"])(o);
3428 var r = rgb2lrgb(o.r),
3429 g = rgb2lrgb(o.g),
3430 b = rgb2lrgb(o.b),
3431 y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
3432 if (r === g && g === b) x = z = y; else {
3433 x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
3434 z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
3435 }
3436 return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
3437}
3438
3439function gray(l, opacity) {
3440 return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
3441}
3442
3443function lab(l, a, b, opacity) {
3444 return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
3445}
3446
3447function Lab(l, a, b, opacity) {
3448 this.l = +l;
3449 this.a = +a;
3450 this.b = +b;
3451 this.opacity = +opacity;
3452}
3453
3454Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Lab, lab, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color_js__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3455 brighter: function(k) {
3456 return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
3457 },
3458 darker: function(k) {
3459 return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
3460 },
3461 rgb: function() {
3462 var y = (this.l + 16) / 116,
3463 x = isNaN(this.a) ? y : y + this.a / 500,
3464 z = isNaN(this.b) ? y : y - this.b / 200;
3465 x = Xn * lab2xyz(x);
3466 y = Yn * lab2xyz(y);
3467 z = Zn * lab2xyz(z);
3468 return new _color_js__WEBPACK_IMPORTED_MODULE_1__["Rgb"](
3469 lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
3470 lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
3471 lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
3472 this.opacity
3473 );
3474 }
3475}));
3476
3477function xyz2lab(t) {
3478 return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
3479}
3480
3481function lab2xyz(t) {
3482 return t > t1 ? t * t * t : t2 * (t - t0);
3483}
3484
3485function lrgb2rgb(x) {
3486 return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
3487}
3488
3489function rgb2lrgb(x) {
3490 return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
3491}
3492
3493function hclConvert(o) {
3494 if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
3495 if (!(o instanceof Lab)) o = labConvert(o);
3496 if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
3497 var h = Math.atan2(o.b, o.a) * _math_js__WEBPACK_IMPORTED_MODULE_2__["rad2deg"];
3498 return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
3499}
3500
3501function lch(l, c, h, opacity) {
3502 return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
3503}
3504
3505function hcl(h, c, l, opacity) {
3506 return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
3507}
3508
3509function Hcl(h, c, l, opacity) {
3510 this.h = +h;
3511 this.c = +c;
3512 this.l = +l;
3513 this.opacity = +opacity;
3514}
3515
3516function hcl2lab(o) {
3517 if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
3518 var h = o.h * _math_js__WEBPACK_IMPORTED_MODULE_2__["deg2rad"];
3519 return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
3520}
3521
3522Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Hcl, hcl, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__["extend"])(_color_js__WEBPACK_IMPORTED_MODULE_1__["Color"], {
3523 brighter: function(k) {
3524 return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
3525 },
3526 darker: function(k) {
3527 return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
3528 },
3529 rgb: function() {
3530 return hcl2lab(this).rgb();
3531 }
3532}));
3533
3534
3535/***/ }),
3536
3537/***/ "./node_modules/d3-color/src/math.js":
3538/*!*******************************************!*\
3539 !*** ./node_modules/d3-color/src/math.js ***!
3540 \*******************************************/
3541/*! exports provided: deg2rad, rad2deg */
3542/***/ (function(module, __webpack_exports__, __webpack_require__) {
3543
3544"use strict";
3545__webpack_require__.r(__webpack_exports__);
3546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deg2rad", function() { return deg2rad; });
3547/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rad2deg", function() { return rad2deg; });
3548var deg2rad = Math.PI / 180;
3549var rad2deg = 180 / Math.PI;
3550
3551
3552/***/ }),
3553
3554/***/ "./node_modules/d3-contour/src/area.js":
3555/*!*********************************************!*\
3556 !*** ./node_modules/d3-contour/src/area.js ***!
3557 \*********************************************/
3558/*! exports provided: default */
3559/***/ (function(module, __webpack_exports__, __webpack_require__) {
3560
3561"use strict";
3562__webpack_require__.r(__webpack_exports__);
3563/* harmony default export */ __webpack_exports__["default"] = (function(ring) {
3564 var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];
3565 while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];
3566 return area;
3567});
3568
3569
3570/***/ }),
3571
3572/***/ "./node_modules/d3-contour/src/array.js":
3573/*!**********************************************!*\
3574 !*** ./node_modules/d3-contour/src/array.js ***!
3575 \**********************************************/
3576/*! exports provided: slice */
3577/***/ (function(module, __webpack_exports__, __webpack_require__) {
3578
3579"use strict";
3580__webpack_require__.r(__webpack_exports__);
3581/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
3582var array = Array.prototype;
3583
3584var slice = array.slice;
3585
3586
3587/***/ }),
3588
3589/***/ "./node_modules/d3-contour/src/ascending.js":
3590/*!**************************************************!*\
3591 !*** ./node_modules/d3-contour/src/ascending.js ***!
3592 \**************************************************/
3593/*! exports provided: default */
3594/***/ (function(module, __webpack_exports__, __webpack_require__) {
3595
3596"use strict";
3597__webpack_require__.r(__webpack_exports__);
3598/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
3599 return a - b;
3600});
3601
3602
3603/***/ }),
3604
3605/***/ "./node_modules/d3-contour/src/blur.js":
3606/*!*********************************************!*\
3607 !*** ./node_modules/d3-contour/src/blur.js ***!
3608 \*********************************************/
3609/*! exports provided: blurX, blurY */
3610/***/ (function(module, __webpack_exports__, __webpack_require__) {
3611
3612"use strict";
3613__webpack_require__.r(__webpack_exports__);
3614/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "blurX", function() { return blurX; });
3615/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "blurY", function() { return blurY; });
3616// TODO Optimize edge cases.
3617// TODO Optimize index calculation.
3618// TODO Optimize arguments.
3619function blurX(source, target, r) {
3620 var n = source.width,
3621 m = source.height,
3622 w = (r << 1) + 1;
3623 for (var j = 0; j < m; ++j) {
3624 for (var i = 0, sr = 0; i < n + r; ++i) {
3625 if (i < n) {
3626 sr += source.data[i + j * n];
3627 }
3628 if (i >= r) {
3629 if (i >= w) {
3630 sr -= source.data[i - w + j * n];
3631 }
3632 target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);
3633 }
3634 }
3635 }
3636}
3637
3638// TODO Optimize edge cases.
3639// TODO Optimize index calculation.
3640// TODO Optimize arguments.
3641function blurY(source, target, r) {
3642 var n = source.width,
3643 m = source.height,
3644 w = (r << 1) + 1;
3645 for (var i = 0; i < n; ++i) {
3646 for (var j = 0, sr = 0; j < m + r; ++j) {
3647 if (j < m) {
3648 sr += source.data[i + j * n];
3649 }
3650 if (j >= r) {
3651 if (j >= w) {
3652 sr -= source.data[i + (j - w) * n];
3653 }
3654 target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);
3655 }
3656 }
3657 }
3658}
3659
3660
3661/***/ }),
3662
3663/***/ "./node_modules/d3-contour/src/constant.js":
3664/*!*************************************************!*\
3665 !*** ./node_modules/d3-contour/src/constant.js ***!
3666 \*************************************************/
3667/*! exports provided: default */
3668/***/ (function(module, __webpack_exports__, __webpack_require__) {
3669
3670"use strict";
3671__webpack_require__.r(__webpack_exports__);
3672/* harmony default export */ __webpack_exports__["default"] = (function(x) {
3673 return function() {
3674 return x;
3675 };
3676});
3677
3678
3679/***/ }),
3680
3681/***/ "./node_modules/d3-contour/src/contains.js":
3682/*!*************************************************!*\
3683 !*** ./node_modules/d3-contour/src/contains.js ***!
3684 \*************************************************/
3685/*! exports provided: default */
3686/***/ (function(module, __webpack_exports__, __webpack_require__) {
3687
3688"use strict";
3689__webpack_require__.r(__webpack_exports__);
3690/* harmony default export */ __webpack_exports__["default"] = (function(ring, hole) {
3691 var i = -1, n = hole.length, c;
3692 while (++i < n) if (c = ringContains(ring, hole[i])) return c;
3693 return 0;
3694});
3695
3696function ringContains(ring, point) {
3697 var x = point[0], y = point[1], contains = -1;
3698 for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {
3699 var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];
3700 if (segmentContains(pi, pj, point)) return 0;
3701 if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;
3702 }
3703 return contains;
3704}
3705
3706function segmentContains(a, b, c) {
3707 var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);
3708}
3709
3710function collinear(a, b, c) {
3711 return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);
3712}
3713
3714function within(p, q, r) {
3715 return p <= q && q <= r || r <= q && q <= p;
3716}
3717
3718
3719/***/ }),
3720
3721/***/ "./node_modules/d3-contour/src/contours.js":
3722/*!*************************************************!*\
3723 !*** ./node_modules/d3-contour/src/contours.js ***!
3724 \*************************************************/
3725/*! exports provided: default */
3726/***/ (function(module, __webpack_exports__, __webpack_require__) {
3727
3728"use strict";
3729__webpack_require__.r(__webpack_exports__);
3730/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
3731/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-contour/src/array.js");
3732/* harmony import */ var _ascending__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ascending */ "./node_modules/d3-contour/src/ascending.js");
3733/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./area */ "./node_modules/d3-contour/src/area.js");
3734/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-contour/src/constant.js");
3735/* harmony import */ var _contains__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contains */ "./node_modules/d3-contour/src/contains.js");
3736/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./noop */ "./node_modules/d3-contour/src/noop.js");
3737
3738
3739
3740
3741
3742
3743
3744
3745var cases = [
3746 [],
3747 [[[1.0, 1.5], [0.5, 1.0]]],
3748 [[[1.5, 1.0], [1.0, 1.5]]],
3749 [[[1.5, 1.0], [0.5, 1.0]]],
3750 [[[1.0, 0.5], [1.5, 1.0]]],
3751 [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],
3752 [[[1.0, 0.5], [1.0, 1.5]]],
3753 [[[1.0, 0.5], [0.5, 1.0]]],
3754 [[[0.5, 1.0], [1.0, 0.5]]],
3755 [[[1.0, 1.5], [1.0, 0.5]]],
3756 [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],
3757 [[[1.5, 1.0], [1.0, 0.5]]],
3758 [[[0.5, 1.0], [1.5, 1.0]]],
3759 [[[1.0, 1.5], [1.5, 1.0]]],
3760 [[[0.5, 1.0], [1.0, 1.5]]],
3761 []
3762];
3763
3764/* harmony default export */ __webpack_exports__["default"] = (function() {
3765 var dx = 1,
3766 dy = 1,
3767 threshold = d3_array__WEBPACK_IMPORTED_MODULE_0__["thresholdSturges"],
3768 smooth = smoothLinear;
3769
3770 function contours(values) {
3771 var tz = threshold(values);
3772
3773 // Convert number of thresholds into uniform thresholds.
3774 if (!Array.isArray(tz)) {
3775 var domain = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["extent"])(values), start = domain[0], stop = domain[1];
3776 tz = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start, stop, tz);
3777 tz = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);
3778 } else {
3779 tz = tz.slice().sort(_ascending__WEBPACK_IMPORTED_MODULE_2__["default"]);
3780 }
3781
3782 return tz.map(function(value) {
3783 return contour(values, value);
3784 });
3785 }
3786
3787 // Accumulate, smooth contour rings, assign holes to exterior rings.
3788 // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
3789 function contour(values, value) {
3790 var polygons = [],
3791 holes = [];
3792
3793 isorings(values, value, function(ring) {
3794 smooth(ring, values, value);
3795 if (Object(_area__WEBPACK_IMPORTED_MODULE_3__["default"])(ring) > 0) polygons.push([ring]);
3796 else holes.push(ring);
3797 });
3798
3799 holes.forEach(function(hole) {
3800 for (var i = 0, n = polygons.length, polygon; i < n; ++i) {
3801 if (Object(_contains__WEBPACK_IMPORTED_MODULE_5__["default"])((polygon = polygons[i])[0], hole) !== -1) {
3802 polygon.push(hole);
3803 return;
3804 }
3805 }
3806 });
3807
3808 return {
3809 type: "MultiPolygon",
3810 value: value,
3811 coordinates: polygons
3812 };
3813 }
3814
3815 // Marching squares with isolines stitched into rings.
3816 // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js
3817 function isorings(values, value, callback) {
3818 var fragmentByStart = new Array,
3819 fragmentByEnd = new Array,
3820 x, y, t0, t1, t2, t3;
3821
3822 // Special case for the first row (y = -1, t2 = t3 = 0).
3823 x = y = -1;
3824 t1 = values[0] >= value;
3825 cases[t1 << 1].forEach(stitch);
3826 while (++x < dx - 1) {
3827 t0 = t1, t1 = values[x + 1] >= value;
3828 cases[t0 | t1 << 1].forEach(stitch);
3829 }
3830 cases[t1 << 0].forEach(stitch);
3831
3832 // General case for the intermediate rows.
3833 while (++y < dy - 1) {
3834 x = -1;
3835 t1 = values[y * dx + dx] >= value;
3836 t2 = values[y * dx] >= value;
3837 cases[t1 << 1 | t2 << 2].forEach(stitch);
3838 while (++x < dx - 1) {
3839 t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;
3840 t3 = t2, t2 = values[y * dx + x + 1] >= value;
3841 cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
3842 }
3843 cases[t1 | t2 << 3].forEach(stitch);
3844 }
3845
3846 // Special case for the last row (y = dy - 1, t0 = t1 = 0).
3847 x = -1;
3848 t2 = values[y * dx] >= value;
3849 cases[t2 << 2].forEach(stitch);
3850 while (++x < dx - 1) {
3851 t3 = t2, t2 = values[y * dx + x + 1] >= value;
3852 cases[t2 << 2 | t3 << 3].forEach(stitch);
3853 }
3854 cases[t2 << 3].forEach(stitch);
3855
3856 function stitch(line) {
3857 var start = [line[0][0] + x, line[0][1] + y],
3858 end = [line[1][0] + x, line[1][1] + y],
3859 startIndex = index(start),
3860 endIndex = index(end),
3861 f, g;
3862 if (f = fragmentByEnd[startIndex]) {
3863 if (g = fragmentByStart[endIndex]) {
3864 delete fragmentByEnd[f.end];
3865 delete fragmentByStart[g.start];
3866 if (f === g) {
3867 f.ring.push(end);
3868 callback(f.ring);
3869 } else {
3870 fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};
3871 }
3872 } else {
3873 delete fragmentByEnd[f.end];
3874 f.ring.push(end);
3875 fragmentByEnd[f.end = endIndex] = f;
3876 }
3877 } else if (f = fragmentByStart[endIndex]) {
3878 if (g = fragmentByEnd[startIndex]) {
3879 delete fragmentByStart[f.start];
3880 delete fragmentByEnd[g.end];
3881 if (f === g) {
3882 f.ring.push(end);
3883 callback(f.ring);
3884 } else {
3885 fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};
3886 }
3887 } else {
3888 delete fragmentByStart[f.start];
3889 f.ring.unshift(start);
3890 fragmentByStart[f.start = startIndex] = f;
3891 }
3892 } else {
3893 fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};
3894 }
3895 }
3896 }
3897
3898 function index(point) {
3899 return point[0] * 2 + point[1] * (dx + 1) * 4;
3900 }
3901
3902 function smoothLinear(ring, values, value) {
3903 ring.forEach(function(point) {
3904 var x = point[0],
3905 y = point[1],
3906 xt = x | 0,
3907 yt = y | 0,
3908 v0,
3909 v1 = values[yt * dx + xt];
3910 if (x > 0 && x < dx && xt === x) {
3911 v0 = values[yt * dx + xt - 1];
3912 point[0] = x + (value - v0) / (v1 - v0) - 0.5;
3913 }
3914 if (y > 0 && y < dy && yt === y) {
3915 v0 = values[(yt - 1) * dx + xt];
3916 point[1] = y + (value - v0) / (v1 - v0) - 0.5;
3917 }
3918 });
3919 }
3920
3921 contours.contour = contour;
3922
3923 contours.size = function(_) {
3924 if (!arguments.length) return [dx, dy];
3925 var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);
3926 if (!(_0 > 0) || !(_1 > 0)) throw new Error("invalid size");
3927 return dx = _0, dy = _1, contours;
3928 };
3929
3930 contours.thresholds = function(_) {
3931 return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(_array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_)) : Object(_constant__WEBPACK_IMPORTED_MODULE_4__["default"])(_), contours) : threshold;
3932 };
3933
3934 contours.smooth = function(_) {
3935 return arguments.length ? (smooth = _ ? smoothLinear : _noop__WEBPACK_IMPORTED_MODULE_6__["default"], contours) : smooth === smoothLinear;
3936 };
3937
3938 return contours;
3939});
3940
3941
3942/***/ }),
3943
3944/***/ "./node_modules/d3-contour/src/density.js":
3945/*!************************************************!*\
3946 !*** ./node_modules/d3-contour/src/density.js ***!
3947 \************************************************/
3948/*! exports provided: default */
3949/***/ (function(module, __webpack_exports__, __webpack_require__) {
3950
3951"use strict";
3952__webpack_require__.r(__webpack_exports__);
3953/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
3954/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-contour/src/array.js");
3955/* harmony import */ var _blur__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blur */ "./node_modules/d3-contour/src/blur.js");
3956/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-contour/src/constant.js");
3957/* harmony import */ var _contours__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./contours */ "./node_modules/d3-contour/src/contours.js");
3958
3959
3960
3961
3962
3963
3964function defaultX(d) {
3965 return d[0];
3966}
3967
3968function defaultY(d) {
3969 return d[1];
3970}
3971
3972function defaultWeight() {
3973 return 1;
3974}
3975
3976/* harmony default export */ __webpack_exports__["default"] = (function() {
3977 var x = defaultX,
3978 y = defaultY,
3979 weight = defaultWeight,
3980 dx = 960,
3981 dy = 500,
3982 r = 20, // blur radius
3983 k = 2, // log2(grid cell size)
3984 o = r * 3, // grid offset, to pad for blur
3985 n = (dx + o * 2) >> k, // grid width
3986 m = (dy + o * 2) >> k, // grid height
3987 threshold = Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(20);
3988
3989 function density(data) {
3990 var values0 = new Float32Array(n * m),
3991 values1 = new Float32Array(n * m);
3992
3993 data.forEach(function(d, i, data) {
3994 var xi = (+x(d, i, data) + o) >> k,
3995 yi = (+y(d, i, data) + o) >> k,
3996 wi = +weight(d, i, data);
3997 if (xi >= 0 && xi < n && yi >= 0 && yi < m) {
3998 values0[xi + yi * n] += wi;
3999 }
4000 });
4001
4002 // TODO Optimize.
4003 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurX"])({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
4004 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurY"])({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
4005 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurX"])({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
4006 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurY"])({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
4007 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurX"])({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
4008 Object(_blur__WEBPACK_IMPORTED_MODULE_2__["blurY"])({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
4009
4010 var tz = threshold(values0);
4011
4012 // Convert number of thresholds into uniform thresholds.
4013 if (!Array.isArray(tz)) {
4014 var stop = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["max"])(values0);
4015 tz = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(0, stop, tz);
4016 tz = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(0, Math.floor(stop / tz) * tz, tz);
4017 tz.shift();
4018 }
4019
4020 return Object(_contours__WEBPACK_IMPORTED_MODULE_4__["default"])()
4021 .thresholds(tz)
4022 .size([n, m])
4023 (values0)
4024 .map(transform);
4025 }
4026
4027 function transform(geometry) {
4028 geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.
4029 geometry.coordinates.forEach(transformPolygon);
4030 return geometry;
4031 }
4032
4033 function transformPolygon(coordinates) {
4034 coordinates.forEach(transformRing);
4035 }
4036
4037 function transformRing(coordinates) {
4038 coordinates.forEach(transformPoint);
4039 }
4040
4041 // TODO Optimize.
4042 function transformPoint(coordinates) {
4043 coordinates[0] = coordinates[0] * Math.pow(2, k) - o;
4044 coordinates[1] = coordinates[1] * Math.pow(2, k) - o;
4045 }
4046
4047 function resize() {
4048 o = r * 3;
4049 n = (dx + o * 2) >> k;
4050 m = (dy + o * 2) >> k;
4051 return density;
4052 }
4053
4054 density.x = function(_) {
4055 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), density) : x;
4056 };
4057
4058 density.y = function(_) {
4059 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), density) : y;
4060 };
4061
4062 density.weight = function(_) {
4063 return arguments.length ? (weight = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), density) : weight;
4064 };
4065
4066 density.size = function(_) {
4067 if (!arguments.length) return [dx, dy];
4068 var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);
4069 if (!(_0 >= 0) && !(_0 >= 0)) throw new Error("invalid size");
4070 return dx = _0, dy = _1, resize();
4071 };
4072
4073 density.cellSize = function(_) {
4074 if (!arguments.length) return 1 << k;
4075 if (!((_ = +_) >= 1)) throw new Error("invalid cell size");
4076 return k = Math.floor(Math.log(_) / Math.LN2), resize();
4077 };
4078
4079 density.thresholds = function(_) {
4080 return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(_array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_)) : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(_), density) : threshold;
4081 };
4082
4083 density.bandwidth = function(_) {
4084 if (!arguments.length) return Math.sqrt(r * (r + 1));
4085 if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth");
4086 return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();
4087 };
4088
4089 return density;
4090});
4091
4092
4093/***/ }),
4094
4095/***/ "./node_modules/d3-contour/src/index.js":
4096/*!**********************************************!*\
4097 !*** ./node_modules/d3-contour/src/index.js ***!
4098 \**********************************************/
4099/*! exports provided: contours, contourDensity */
4100/***/ (function(module, __webpack_exports__, __webpack_require__) {
4101
4102"use strict";
4103__webpack_require__.r(__webpack_exports__);
4104/* harmony import */ var _contours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./contours */ "./node_modules/d3-contour/src/contours.js");
4105/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contours", function() { return _contours__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4106
4107/* harmony import */ var _density__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./density */ "./node_modules/d3-contour/src/density.js");
4108/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contourDensity", function() { return _density__WEBPACK_IMPORTED_MODULE_1__["default"]; });
4109
4110
4111
4112
4113
4114/***/ }),
4115
4116/***/ "./node_modules/d3-contour/src/noop.js":
4117/*!*********************************************!*\
4118 !*** ./node_modules/d3-contour/src/noop.js ***!
4119 \*********************************************/
4120/*! exports provided: default */
4121/***/ (function(module, __webpack_exports__, __webpack_require__) {
4122
4123"use strict";
4124__webpack_require__.r(__webpack_exports__);
4125/* harmony default export */ __webpack_exports__["default"] = (function() {});
4126
4127
4128/***/ }),
4129
4130/***/ "./node_modules/d3-dispatch/src/dispatch.js":
4131/*!**************************************************!*\
4132 !*** ./node_modules/d3-dispatch/src/dispatch.js ***!
4133 \**************************************************/
4134/*! exports provided: default */
4135/***/ (function(module, __webpack_exports__, __webpack_require__) {
4136
4137"use strict";
4138__webpack_require__.r(__webpack_exports__);
4139var noop = {value: function() {}};
4140
4141function dispatch() {
4142 for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
4143 if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
4144 _[t] = [];
4145 }
4146 return new Dispatch(_);
4147}
4148
4149function Dispatch(_) {
4150 this._ = _;
4151}
4152
4153function parseTypenames(typenames, types) {
4154 return typenames.trim().split(/^|\s+/).map(function(t) {
4155 var name = "", i = t.indexOf(".");
4156 if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
4157 if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
4158 return {type: t, name: name};
4159 });
4160}
4161
4162Dispatch.prototype = dispatch.prototype = {
4163 constructor: Dispatch,
4164 on: function(typename, callback) {
4165 var _ = this._,
4166 T = parseTypenames(typename + "", _),
4167 t,
4168 i = -1,
4169 n = T.length;
4170
4171 // If no callback was specified, return the callback of the given type and name.
4172 if (arguments.length < 2) {
4173 while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
4174 return;
4175 }
4176
4177 // If a type was specified, set the callback for the given type and name.
4178 // Otherwise, if a null callback was specified, remove callbacks of the given name.
4179 if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
4180 while (++i < n) {
4181 if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
4182 else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
4183 }
4184
4185 return this;
4186 },
4187 copy: function() {
4188 var copy = {}, _ = this._;
4189 for (var t in _) copy[t] = _[t].slice();
4190 return new Dispatch(copy);
4191 },
4192 call: function(type, that) {
4193 if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
4194 if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
4195 for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
4196 },
4197 apply: function(type, that, args) {
4198 if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
4199 for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
4200 }
4201};
4202
4203function get(type, name) {
4204 for (var i = 0, n = type.length, c; i < n; ++i) {
4205 if ((c = type[i]).name === name) {
4206 return c.value;
4207 }
4208 }
4209}
4210
4211function set(type, name, callback) {
4212 for (var i = 0, n = type.length; i < n; ++i) {
4213 if (type[i].name === name) {
4214 type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
4215 break;
4216 }
4217 }
4218 if (callback != null) type.push({name: name, value: callback});
4219 return type;
4220}
4221
4222/* harmony default export */ __webpack_exports__["default"] = (dispatch);
4223
4224
4225/***/ }),
4226
4227/***/ "./node_modules/d3-dispatch/src/index.js":
4228/*!***********************************************!*\
4229 !*** ./node_modules/d3-dispatch/src/index.js ***!
4230 \***********************************************/
4231/*! exports provided: dispatch */
4232/***/ (function(module, __webpack_exports__, __webpack_require__) {
4233
4234"use strict";
4235__webpack_require__.r(__webpack_exports__);
4236/* harmony import */ var _dispatch_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dispatch.js */ "./node_modules/d3-dispatch/src/dispatch.js");
4237/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return _dispatch_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4238
4239
4240
4241
4242/***/ }),
4243
4244/***/ "./node_modules/d3-drag/src/constant.js":
4245/*!**********************************************!*\
4246 !*** ./node_modules/d3-drag/src/constant.js ***!
4247 \**********************************************/
4248/*! exports provided: default */
4249/***/ (function(module, __webpack_exports__, __webpack_require__) {
4250
4251"use strict";
4252__webpack_require__.r(__webpack_exports__);
4253/* harmony default export */ __webpack_exports__["default"] = (function(x) {
4254 return function() {
4255 return x;
4256 };
4257});
4258
4259
4260/***/ }),
4261
4262/***/ "./node_modules/d3-drag/src/drag.js":
4263/*!******************************************!*\
4264 !*** ./node_modules/d3-drag/src/drag.js ***!
4265 \******************************************/
4266/*! exports provided: default */
4267/***/ (function(module, __webpack_exports__, __webpack_require__) {
4268
4269"use strict";
4270__webpack_require__.r(__webpack_exports__);
4271/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
4272/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
4273/* harmony import */ var _nodrag_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nodrag.js */ "./node_modules/d3-drag/src/nodrag.js");
4274/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./noevent.js */ "./node_modules/d3-drag/src/noevent.js");
4275/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-drag/src/constant.js");
4276/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event.js */ "./node_modules/d3-drag/src/event.js");
4277
4278
4279
4280
4281
4282
4283
4284// Ignore right-click, since that should open the context menu.
4285function defaultFilter() {
4286 return !d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].ctrlKey && !d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].button;
4287}
4288
4289function defaultContainer() {
4290 return this.parentNode;
4291}
4292
4293function defaultSubject(d) {
4294 return d == null ? {x: d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].x, y: d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].y} : d;
4295}
4296
4297function defaultTouchable() {
4298 return navigator.maxTouchPoints || ("ontouchstart" in this);
4299}
4300
4301/* harmony default export */ __webpack_exports__["default"] = (function() {
4302 var filter = defaultFilter,
4303 container = defaultContainer,
4304 subject = defaultSubject,
4305 touchable = defaultTouchable,
4306 gestures = {},
4307 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "drag", "end"),
4308 active = 0,
4309 mousedownx,
4310 mousedowny,
4311 mousemoving,
4312 touchending,
4313 clickDistance2 = 0;
4314
4315 function drag(selection) {
4316 selection
4317 .on("mousedown.drag", mousedowned)
4318 .filter(touchable)
4319 .on("touchstart.drag", touchstarted)
4320 .on("touchmove.drag", touchmoved)
4321 .on("touchend.drag touchcancel.drag", touchended)
4322 .style("touch-action", "none")
4323 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
4324 }
4325
4326 function mousedowned() {
4327 if (touchending || !filter.apply(this, arguments)) return;
4328 var gesture = beforestart("mouse", container.apply(this, arguments), d3_selection__WEBPACK_IMPORTED_MODULE_1__["mouse"], this, arguments);
4329 if (!gesture) return;
4330 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);
4331 Object(_nodrag_js__WEBPACK_IMPORTED_MODULE_2__["default"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view);
4332 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
4333 mousemoving = false;
4334 mousedownx = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientX;
4335 mousedowny = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientY;
4336 gesture("start");
4337 }
4338
4339 function mousemoved() {
4340 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_3__["default"])();
4341 if (!mousemoving) {
4342 var dx = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientX - mousedownx, dy = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].clientY - mousedowny;
4343 mousemoving = dx * dx + dy * dy > clickDistance2;
4344 }
4345 gestures.mouse("drag");
4346 }
4347
4348 function mouseupped() {
4349 Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["select"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view).on("mousemove.drag mouseup.drag", null);
4350 Object(_nodrag_js__WEBPACK_IMPORTED_MODULE_2__["yesdrag"])(d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].view, mousemoving);
4351 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_3__["default"])();
4352 gestures.mouse("end");
4353 }
4354
4355 function touchstarted() {
4356 if (!filter.apply(this, arguments)) return;
4357 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
4358 c = container.apply(this, arguments),
4359 n = touches.length, i, gesture;
4360
4361 for (i = 0; i < n; ++i) {
4362 if (gesture = beforestart(touches[i].identifier, c, d3_selection__WEBPACK_IMPORTED_MODULE_1__["touch"], this, arguments)) {
4363 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
4364 gesture("start");
4365 }
4366 }
4367 }
4368
4369 function touchmoved() {
4370 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
4371 n = touches.length, i, gesture;
4372
4373 for (i = 0; i < n; ++i) {
4374 if (gesture = gestures[touches[i].identifier]) {
4375 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_3__["default"])();
4376 gesture("drag");
4377 }
4378 }
4379 }
4380
4381 function touchended() {
4382 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].changedTouches,
4383 n = touches.length, i, gesture;
4384
4385 if (touchending) clearTimeout(touchending);
4386 touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
4387 for (i = 0; i < n; ++i) {
4388 if (gesture = gestures[touches[i].identifier]) {
4389 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_3__["nopropagation"])();
4390 gesture("end");
4391 }
4392 }
4393 }
4394
4395 function beforestart(id, container, point, that, args) {
4396 var p = point(container, id), s, dx, dy,
4397 sublisteners = listeners.copy();
4398
4399 if (!Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["customEvent"])(new _event_js__WEBPACK_IMPORTED_MODULE_5__["default"](drag, "beforestart", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {
4400 if ((d3_selection__WEBPACK_IMPORTED_MODULE_1__["event"].subject = s = subject.apply(that, args)) == null) return false;
4401 dx = s.x - p[0] || 0;
4402 dy = s.y - p[1] || 0;
4403 return true;
4404 })) return;
4405
4406 return function gesture(type) {
4407 var p0 = p, n;
4408 switch (type) {
4409 case "start": gestures[id] = gesture, n = active++; break;
4410 case "end": delete gestures[id], --active; // nobreak
4411 case "drag": p = point(container, id), n = active; break;
4412 }
4413 Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["customEvent"])(new _event_js__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]);
4414 };
4415 }
4416
4417 drag.filter = function(_) {
4418 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_4__["default"])(!!_), drag) : filter;
4419 };
4420
4421 drag.container = function(_) {
4422 return arguments.length ? (container = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_4__["default"])(_), drag) : container;
4423 };
4424
4425 drag.subject = function(_) {
4426 return arguments.length ? (subject = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_4__["default"])(_), drag) : subject;
4427 };
4428
4429 drag.touchable = function(_) {
4430 return arguments.length ? (touchable = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_4__["default"])(!!_), drag) : touchable;
4431 };
4432
4433 drag.on = function() {
4434 var value = listeners.on.apply(listeners, arguments);
4435 return value === listeners ? drag : value;
4436 };
4437
4438 drag.clickDistance = function(_) {
4439 return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
4440 };
4441
4442 return drag;
4443});
4444
4445
4446/***/ }),
4447
4448/***/ "./node_modules/d3-drag/src/event.js":
4449/*!*******************************************!*\
4450 !*** ./node_modules/d3-drag/src/event.js ***!
4451 \*******************************************/
4452/*! exports provided: default */
4453/***/ (function(module, __webpack_exports__, __webpack_require__) {
4454
4455"use strict";
4456__webpack_require__.r(__webpack_exports__);
4457/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return DragEvent; });
4458function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {
4459 this.target = target;
4460 this.type = type;
4461 this.subject = subject;
4462 this.identifier = id;
4463 this.active = active;
4464 this.x = x;
4465 this.y = y;
4466 this.dx = dx;
4467 this.dy = dy;
4468 this._ = dispatch;
4469}
4470
4471DragEvent.prototype.on = function() {
4472 var value = this._.on.apply(this._, arguments);
4473 return value === this._ ? this : value;
4474};
4475
4476
4477/***/ }),
4478
4479/***/ "./node_modules/d3-drag/src/index.js":
4480/*!*******************************************!*\
4481 !*** ./node_modules/d3-drag/src/index.js ***!
4482 \*******************************************/
4483/*! exports provided: drag, dragDisable, dragEnable */
4484/***/ (function(module, __webpack_exports__, __webpack_require__) {
4485
4486"use strict";
4487__webpack_require__.r(__webpack_exports__);
4488/* harmony import */ var _drag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag.js */ "./node_modules/d3-drag/src/drag.js");
4489/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "drag", function() { return _drag_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4490
4491/* harmony import */ var _nodrag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nodrag.js */ "./node_modules/d3-drag/src/nodrag.js");
4492/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragDisable", function() { return _nodrag_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
4493
4494/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragEnable", function() { return _nodrag_js__WEBPACK_IMPORTED_MODULE_1__["yesdrag"]; });
4495
4496
4497
4498
4499
4500/***/ }),
4501
4502/***/ "./node_modules/d3-drag/src/nodrag.js":
4503/*!********************************************!*\
4504 !*** ./node_modules/d3-drag/src/nodrag.js ***!
4505 \********************************************/
4506/*! exports provided: default, yesdrag */
4507/***/ (function(module, __webpack_exports__, __webpack_require__) {
4508
4509"use strict";
4510__webpack_require__.r(__webpack_exports__);
4511/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yesdrag", function() { return yesdrag; });
4512/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
4513/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noevent.js */ "./node_modules/d3-drag/src/noevent.js");
4514
4515
4516
4517/* harmony default export */ __webpack_exports__["default"] = (function(view) {
4518 var root = view.document.documentElement,
4519 selection = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["select"])(view).on("dragstart.drag", _noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"], true);
4520 if ("onselectstart" in root) {
4521 selection.on("selectstart.drag", _noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"], true);
4522 } else {
4523 root.__noselect = root.style.MozUserSelect;
4524 root.style.MozUserSelect = "none";
4525 }
4526});
4527
4528function yesdrag(view, noclick) {
4529 var root = view.document.documentElement,
4530 selection = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["select"])(view).on("dragstart.drag", null);
4531 if (noclick) {
4532 selection.on("click.drag", _noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"], true);
4533 setTimeout(function() { selection.on("click.drag", null); }, 0);
4534 }
4535 if ("onselectstart" in root) {
4536 selection.on("selectstart.drag", null);
4537 } else {
4538 root.style.MozUserSelect = root.__noselect;
4539 delete root.__noselect;
4540 }
4541}
4542
4543
4544/***/ }),
4545
4546/***/ "./node_modules/d3-drag/src/noevent.js":
4547/*!*********************************************!*\
4548 !*** ./node_modules/d3-drag/src/noevent.js ***!
4549 \*********************************************/
4550/*! exports provided: nopropagation, default */
4551/***/ (function(module, __webpack_exports__, __webpack_require__) {
4552
4553"use strict";
4554__webpack_require__.r(__webpack_exports__);
4555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
4556/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
4557
4558
4559function nopropagation() {
4560 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
4561}
4562
4563/* harmony default export */ __webpack_exports__["default"] = (function() {
4564 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
4565 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
4566});
4567
4568
4569/***/ }),
4570
4571/***/ "./node_modules/d3-dsv/src/autoType.js":
4572/*!*********************************************!*\
4573 !*** ./node_modules/d3-dsv/src/autoType.js ***!
4574 \*********************************************/
4575/*! exports provided: default */
4576/***/ (function(module, __webpack_exports__, __webpack_require__) {
4577
4578"use strict";
4579__webpack_require__.r(__webpack_exports__);
4580/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return autoType; });
4581function autoType(object) {
4582 for (var key in object) {
4583 var value = object[key].trim(), number, m;
4584 if (!value) value = null;
4585 else if (value === "true") value = true;
4586 else if (value === "false") value = false;
4587 else if (value === "NaN") value = NaN;
4588 else if (!isNaN(number = +value)) value = number;
4589 else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) {
4590 if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " ");
4591 value = new Date(value);
4592 }
4593 else continue;
4594 object[key] = value;
4595 }
4596 return object;
4597}
4598
4599// https://github.com/d3/d3-dsv/issues/45
4600var fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours();
4601
4602/***/ }),
4603
4604/***/ "./node_modules/d3-dsv/src/csv.js":
4605/*!****************************************!*\
4606 !*** ./node_modules/d3-dsv/src/csv.js ***!
4607 \****************************************/
4608/*! exports provided: csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue */
4609/***/ (function(module, __webpack_exports__, __webpack_require__) {
4610
4611"use strict";
4612__webpack_require__.r(__webpack_exports__);
4613/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return csvParse; });
4614/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return csvParseRows; });
4615/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return csvFormat; });
4616/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormatBody", function() { return csvFormatBody; });
4617/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return csvFormatRows; });
4618/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormatRow", function() { return csvFormatRow; });
4619/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csvFormatValue", function() { return csvFormatValue; });
4620/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ "./node_modules/d3-dsv/src/dsv.js");
4621
4622
4623var csv = Object(_dsv_js__WEBPACK_IMPORTED_MODULE_0__["default"])(",");
4624
4625var csvParse = csv.parse;
4626var csvParseRows = csv.parseRows;
4627var csvFormat = csv.format;
4628var csvFormatBody = csv.formatBody;
4629var csvFormatRows = csv.formatRows;
4630var csvFormatRow = csv.formatRow;
4631var csvFormatValue = csv.formatValue;
4632
4633
4634/***/ }),
4635
4636/***/ "./node_modules/d3-dsv/src/dsv.js":
4637/*!****************************************!*\
4638 !*** ./node_modules/d3-dsv/src/dsv.js ***!
4639 \****************************************/
4640/*! exports provided: default */
4641/***/ (function(module, __webpack_exports__, __webpack_require__) {
4642
4643"use strict";
4644__webpack_require__.r(__webpack_exports__);
4645var EOL = {},
4646 EOF = {},
4647 QUOTE = 34,
4648 NEWLINE = 10,
4649 RETURN = 13;
4650
4651function objectConverter(columns) {
4652 return new Function("d", "return {" + columns.map(function(name, i) {
4653 return JSON.stringify(name) + ": d[" + i + "] || \"\"";
4654 }).join(",") + "}");
4655}
4656
4657function customConverter(columns, f) {
4658 var object = objectConverter(columns);
4659 return function(row, i) {
4660 return f(object(row), i, columns);
4661 };
4662}
4663
4664// Compute unique columns in order of discovery.
4665function inferColumns(rows) {
4666 var columnSet = Object.create(null),
4667 columns = [];
4668
4669 rows.forEach(function(row) {
4670 for (var column in row) {
4671 if (!(column in columnSet)) {
4672 columns.push(columnSet[column] = column);
4673 }
4674 }
4675 });
4676
4677 return columns;
4678}
4679
4680function pad(value, width) {
4681 var s = value + "", length = s.length;
4682 return length < width ? new Array(width - length + 1).join(0) + s : s;
4683}
4684
4685function formatYear(year) {
4686 return year < 0 ? "-" + pad(-year, 6)
4687 : year > 9999 ? "+" + pad(year, 6)
4688 : pad(year, 4);
4689}
4690
4691function formatDate(date) {
4692 var hours = date.getUTCHours(),
4693 minutes = date.getUTCMinutes(),
4694 seconds = date.getUTCSeconds(),
4695 milliseconds = date.getUTCMilliseconds();
4696 return isNaN(date) ? "Invalid Date"
4697 : formatYear(date.getUTCFullYear(), 4) + "-" + pad(date.getUTCMonth() + 1, 2) + "-" + pad(date.getUTCDate(), 2)
4698 + (milliseconds ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + ":" + pad(seconds, 2) + "." + pad(milliseconds, 3) + "Z"
4699 : seconds ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + ":" + pad(seconds, 2) + "Z"
4700 : minutes || hours ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + "Z"
4701 : "");
4702}
4703
4704/* harmony default export */ __webpack_exports__["default"] = (function(delimiter) {
4705 var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
4706 DELIMITER = delimiter.charCodeAt(0);
4707
4708 function parse(text, f) {
4709 var convert, columns, rows = parseRows(text, function(row, i) {
4710 if (convert) return convert(row, i - 1);
4711 columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
4712 });
4713 rows.columns = columns || [];
4714 return rows;
4715 }
4716
4717 function parseRows(text, f) {
4718 var rows = [], // output rows
4719 N = text.length,
4720 I = 0, // current character index
4721 n = 0, // current line number
4722 t, // current token
4723 eof = N <= 0, // current token followed by EOF?
4724 eol = false; // current token followed by EOL?
4725
4726 // Strip the trailing newline.
4727 if (text.charCodeAt(N - 1) === NEWLINE) --N;
4728 if (text.charCodeAt(N - 1) === RETURN) --N;
4729
4730 function token() {
4731 if (eof) return EOF;
4732 if (eol) return eol = false, EOL;
4733
4734 // Unescape quotes.
4735 var i, j = I, c;
4736 if (text.charCodeAt(j) === QUOTE) {
4737 while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
4738 if ((i = I) >= N) eof = true;
4739 else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
4740 else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
4741 return text.slice(j + 1, i - 1).replace(/""/g, "\"");
4742 }
4743
4744 // Find next delimiter or newline.
4745 while (I < N) {
4746 if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
4747 else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
4748 else if (c !== DELIMITER) continue;
4749 return text.slice(j, i);
4750 }
4751
4752 // Return last token before EOF.
4753 return eof = true, text.slice(j, N);
4754 }
4755
4756 while ((t = token()) !== EOF) {
4757 var row = [];
4758 while (t !== EOL && t !== EOF) row.push(t), t = token();
4759 if (f && (row = f(row, n++)) == null) continue;
4760 rows.push(row);
4761 }
4762
4763 return rows;
4764 }
4765
4766 function preformatBody(rows, columns) {
4767 return rows.map(function(row) {
4768 return columns.map(function(column) {
4769 return formatValue(row[column]);
4770 }).join(delimiter);
4771 });
4772 }
4773
4774 function format(rows, columns) {
4775 if (columns == null) columns = inferColumns(rows);
4776 return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n");
4777 }
4778
4779 function formatBody(rows, columns) {
4780 if (columns == null) columns = inferColumns(rows);
4781 return preformatBody(rows, columns).join("\n");
4782 }
4783
4784 function formatRows(rows) {
4785 return rows.map(formatRow).join("\n");
4786 }
4787
4788 function formatRow(row) {
4789 return row.map(formatValue).join(delimiter);
4790 }
4791
4792 function formatValue(value) {
4793 return value == null ? ""
4794 : value instanceof Date ? formatDate(value)
4795 : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\""
4796 : value;
4797 }
4798
4799 return {
4800 parse: parse,
4801 parseRows: parseRows,
4802 format: format,
4803 formatBody: formatBody,
4804 formatRows: formatRows,
4805 formatRow: formatRow,
4806 formatValue: formatValue
4807 };
4808});
4809
4810
4811/***/ }),
4812
4813/***/ "./node_modules/d3-dsv/src/index.js":
4814/*!******************************************!*\
4815 !*** ./node_modules/d3-dsv/src/index.js ***!
4816 \******************************************/
4817/*! exports provided: dsvFormat, csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue, tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue, autoType */
4818/***/ (function(module, __webpack_exports__, __webpack_require__) {
4819
4820"use strict";
4821__webpack_require__.r(__webpack_exports__);
4822/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ "./node_modules/d3-dsv/src/dsv.js");
4823/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsvFormat", function() { return _dsv_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
4824
4825/* harmony import */ var _csv_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./csv.js */ "./node_modules/d3-dsv/src/csv.js");
4826/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__["csvParse"]; });
4827
4828/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__["csvParseRows"]; });
4829
4830/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__["csvFormat"]; });
4831
4832/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatBody", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__["csvFormatBody"]; });
4833
4834/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__["csvFormatRows"]; });
4835
4836/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatRow", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__["csvFormatRow"]; });
4837
4838/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatValue", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__["csvFormatValue"]; });
4839
4840/* harmony import */ var _tsv_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tsv.js */ "./node_modules/d3-dsv/src/tsv.js");
4841/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__["tsvParse"]; });
4842
4843/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__["tsvParseRows"]; });
4844
4845/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__["tsvFormat"]; });
4846
4847/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatBody", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__["tsvFormatBody"]; });
4848
4849/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__["tsvFormatRows"]; });
4850
4851/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRow", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__["tsvFormatRow"]; });
4852
4853/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatValue", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__["tsvFormatValue"]; });
4854
4855/* harmony import */ var _autoType_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./autoType.js */ "./node_modules/d3-dsv/src/autoType.js");
4856/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "autoType", function() { return _autoType_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
4857
4858
4859
4860
4861
4862
4863
4864/***/ }),
4865
4866/***/ "./node_modules/d3-dsv/src/tsv.js":
4867/*!****************************************!*\
4868 !*** ./node_modules/d3-dsv/src/tsv.js ***!
4869 \****************************************/
4870/*! exports provided: tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue */
4871/***/ (function(module, __webpack_exports__, __webpack_require__) {
4872
4873"use strict";
4874__webpack_require__.r(__webpack_exports__);
4875/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return tsvParse; });
4876/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return tsvParseRows; });
4877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return tsvFormat; });
4878/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormatBody", function() { return tsvFormatBody; });
4879/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return tsvFormatRows; });
4880/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRow", function() { return tsvFormatRow; });
4881/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsvFormatValue", function() { return tsvFormatValue; });
4882/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ "./node_modules/d3-dsv/src/dsv.js");
4883
4884
4885var tsv = Object(_dsv_js__WEBPACK_IMPORTED_MODULE_0__["default"])("\t");
4886
4887var tsvParse = tsv.parse;
4888var tsvParseRows = tsv.parseRows;
4889var tsvFormat = tsv.format;
4890var tsvFormatBody = tsv.formatBody;
4891var tsvFormatRows = tsv.formatRows;
4892var tsvFormatRow = tsv.formatRow;
4893var tsvFormatValue = tsv.formatValue;
4894
4895
4896/***/ }),
4897
4898/***/ "./node_modules/d3-ease/src/back.js":
4899/*!******************************************!*\
4900 !*** ./node_modules/d3-ease/src/back.js ***!
4901 \******************************************/
4902/*! exports provided: backIn, backOut, backInOut */
4903/***/ (function(module, __webpack_exports__, __webpack_require__) {
4904
4905"use strict";
4906__webpack_require__.r(__webpack_exports__);
4907/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backIn", function() { return backIn; });
4908/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backOut", function() { return backOut; });
4909/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "backInOut", function() { return backInOut; });
4910var overshoot = 1.70158;
4911
4912var backIn = (function custom(s) {
4913 s = +s;
4914
4915 function backIn(t) {
4916 return t * t * ((s + 1) * t - s);
4917 }
4918
4919 backIn.overshoot = custom;
4920
4921 return backIn;
4922})(overshoot);
4923
4924var backOut = (function custom(s) {
4925 s = +s;
4926
4927 function backOut(t) {
4928 return --t * t * ((s + 1) * t + s) + 1;
4929 }
4930
4931 backOut.overshoot = custom;
4932
4933 return backOut;
4934})(overshoot);
4935
4936var backInOut = (function custom(s) {
4937 s = +s;
4938
4939 function backInOut(t) {
4940 return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
4941 }
4942
4943 backInOut.overshoot = custom;
4944
4945 return backInOut;
4946})(overshoot);
4947
4948
4949/***/ }),
4950
4951/***/ "./node_modules/d3-ease/src/bounce.js":
4952/*!********************************************!*\
4953 !*** ./node_modules/d3-ease/src/bounce.js ***!
4954 \********************************************/
4955/*! exports provided: bounceIn, bounceOut, bounceInOut */
4956/***/ (function(module, __webpack_exports__, __webpack_require__) {
4957
4958"use strict";
4959__webpack_require__.r(__webpack_exports__);
4960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceIn", function() { return bounceIn; });
4961/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceOut", function() { return bounceOut; });
4962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounceInOut", function() { return bounceInOut; });
4963var b1 = 4 / 11,
4964 b2 = 6 / 11,
4965 b3 = 8 / 11,
4966 b4 = 3 / 4,
4967 b5 = 9 / 11,
4968 b6 = 10 / 11,
4969 b7 = 15 / 16,
4970 b8 = 21 / 22,
4971 b9 = 63 / 64,
4972 b0 = 1 / b1 / b1;
4973
4974function bounceIn(t) {
4975 return 1 - bounceOut(1 - t);
4976}
4977
4978function bounceOut(t) {
4979 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;
4980}
4981
4982function bounceInOut(t) {
4983 return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
4984}
4985
4986
4987/***/ }),
4988
4989/***/ "./node_modules/d3-ease/src/circle.js":
4990/*!********************************************!*\
4991 !*** ./node_modules/d3-ease/src/circle.js ***!
4992 \********************************************/
4993/*! exports provided: circleIn, circleOut, circleInOut */
4994/***/ (function(module, __webpack_exports__, __webpack_require__) {
4995
4996"use strict";
4997__webpack_require__.r(__webpack_exports__);
4998/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleIn", function() { return circleIn; });
4999/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleOut", function() { return circleOut; });
5000/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleInOut", function() { return circleInOut; });
5001function circleIn(t) {
5002 return 1 - Math.sqrt(1 - t * t);
5003}
5004
5005function circleOut(t) {
5006 return Math.sqrt(1 - --t * t);
5007}
5008
5009function circleInOut(t) {
5010 return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
5011}
5012
5013
5014/***/ }),
5015
5016/***/ "./node_modules/d3-ease/src/cubic.js":
5017/*!*******************************************!*\
5018 !*** ./node_modules/d3-ease/src/cubic.js ***!
5019 \*******************************************/
5020/*! exports provided: cubicIn, cubicOut, cubicInOut */
5021/***/ (function(module, __webpack_exports__, __webpack_require__) {
5022
5023"use strict";
5024__webpack_require__.r(__webpack_exports__);
5025/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicIn", function() { return cubicIn; });
5026/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicOut", function() { return cubicOut; });
5027/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubicInOut", function() { return cubicInOut; });
5028function cubicIn(t) {
5029 return t * t * t;
5030}
5031
5032function cubicOut(t) {
5033 return --t * t * t + 1;
5034}
5035
5036function cubicInOut(t) {
5037 return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
5038}
5039
5040
5041/***/ }),
5042
5043/***/ "./node_modules/d3-ease/src/elastic.js":
5044/*!*********************************************!*\
5045 !*** ./node_modules/d3-ease/src/elastic.js ***!
5046 \*********************************************/
5047/*! exports provided: elasticIn, elasticOut, elasticInOut */
5048/***/ (function(module, __webpack_exports__, __webpack_require__) {
5049
5050"use strict";
5051__webpack_require__.r(__webpack_exports__);
5052/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticIn", function() { return elasticIn; });
5053/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticOut", function() { return elasticOut; });
5054/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elasticInOut", function() { return elasticInOut; });
5055var tau = 2 * Math.PI,
5056 amplitude = 1,
5057 period = 0.3;
5058
5059var elasticIn = (function custom(a, p) {
5060 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
5061
5062 function elasticIn(t) {
5063 return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);
5064 }
5065
5066 elasticIn.amplitude = function(a) { return custom(a, p * tau); };
5067 elasticIn.period = function(p) { return custom(a, p); };
5068
5069 return elasticIn;
5070})(amplitude, period);
5071
5072var elasticOut = (function custom(a, p) {
5073 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
5074
5075 function elasticOut(t) {
5076 return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);
5077 }
5078
5079 elasticOut.amplitude = function(a) { return custom(a, p * tau); };
5080 elasticOut.period = function(p) { return custom(a, p); };
5081
5082 return elasticOut;
5083})(amplitude, period);
5084
5085var elasticInOut = (function custom(a, p) {
5086 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
5087
5088 function elasticInOut(t) {
5089 return ((t = t * 2 - 1) < 0
5090 ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)
5091 : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;
5092 }
5093
5094 elasticInOut.amplitude = function(a) { return custom(a, p * tau); };
5095 elasticInOut.period = function(p) { return custom(a, p); };
5096
5097 return elasticInOut;
5098})(amplitude, period);
5099
5100
5101/***/ }),
5102
5103/***/ "./node_modules/d3-ease/src/exp.js":
5104/*!*****************************************!*\
5105 !*** ./node_modules/d3-ease/src/exp.js ***!
5106 \*****************************************/
5107/*! exports provided: expIn, expOut, expInOut */
5108/***/ (function(module, __webpack_exports__, __webpack_require__) {
5109
5110"use strict";
5111__webpack_require__.r(__webpack_exports__);
5112/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expIn", function() { return expIn; });
5113/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expOut", function() { return expOut; });
5114/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expInOut", function() { return expInOut; });
5115function expIn(t) {
5116 return Math.pow(2, 10 * t - 10);
5117}
5118
5119function expOut(t) {
5120 return 1 - Math.pow(2, -10 * t);
5121}
5122
5123function expInOut(t) {
5124 return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;
5125}
5126
5127
5128/***/ }),
5129
5130/***/ "./node_modules/d3-ease/src/index.js":
5131/*!*******************************************!*\
5132 !*** ./node_modules/d3-ease/src/index.js ***!
5133 \*******************************************/
5134/*! 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 */
5135/***/ (function(module, __webpack_exports__, __webpack_require__) {
5136
5137"use strict";
5138__webpack_require__.r(__webpack_exports__);
5139/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-ease/src/linear.js");
5140/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeLinear", function() { return _linear_js__WEBPACK_IMPORTED_MODULE_0__["linear"]; });
5141
5142/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./quad.js */ "./node_modules/d3-ease/src/quad.js");
5143/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuad", function() { return _quad_js__WEBPACK_IMPORTED_MODULE_1__["quadInOut"]; });
5144
5145/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadIn", function() { return _quad_js__WEBPACK_IMPORTED_MODULE_1__["quadIn"]; });
5146
5147/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadOut", function() { return _quad_js__WEBPACK_IMPORTED_MODULE_1__["quadOut"]; });
5148
5149/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadInOut", function() { return _quad_js__WEBPACK_IMPORTED_MODULE_1__["quadInOut"]; });
5150
5151/* harmony import */ var _cubic_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubic.js */ "./node_modules/d3-ease/src/cubic.js");
5152/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubic", function() { return _cubic_js__WEBPACK_IMPORTED_MODULE_2__["cubicInOut"]; });
5153
5154/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicIn", function() { return _cubic_js__WEBPACK_IMPORTED_MODULE_2__["cubicIn"]; });
5155
5156/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicOut", function() { return _cubic_js__WEBPACK_IMPORTED_MODULE_2__["cubicOut"]; });
5157
5158/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicInOut", function() { return _cubic_js__WEBPACK_IMPORTED_MODULE_2__["cubicInOut"]; });
5159
5160/* harmony import */ var _poly_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./poly.js */ "./node_modules/d3-ease/src/poly.js");
5161/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePoly", function() { return _poly_js__WEBPACK_IMPORTED_MODULE_3__["polyInOut"]; });
5162
5163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyIn", function() { return _poly_js__WEBPACK_IMPORTED_MODULE_3__["polyIn"]; });
5164
5165/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyOut", function() { return _poly_js__WEBPACK_IMPORTED_MODULE_3__["polyOut"]; });
5166
5167/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyInOut", function() { return _poly_js__WEBPACK_IMPORTED_MODULE_3__["polyInOut"]; });
5168
5169/* harmony import */ var _sin_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sin.js */ "./node_modules/d3-ease/src/sin.js");
5170/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSin", function() { return _sin_js__WEBPACK_IMPORTED_MODULE_4__["sinInOut"]; });
5171
5172/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinIn", function() { return _sin_js__WEBPACK_IMPORTED_MODULE_4__["sinIn"]; });
5173
5174/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinOut", function() { return _sin_js__WEBPACK_IMPORTED_MODULE_4__["sinOut"]; });
5175
5176/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinInOut", function() { return _sin_js__WEBPACK_IMPORTED_MODULE_4__["sinInOut"]; });
5177
5178/* harmony import */ var _exp_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exp.js */ "./node_modules/d3-ease/src/exp.js");
5179/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExp", function() { return _exp_js__WEBPACK_IMPORTED_MODULE_5__["expInOut"]; });
5180
5181/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpIn", function() { return _exp_js__WEBPACK_IMPORTED_MODULE_5__["expIn"]; });
5182
5183/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpOut", function() { return _exp_js__WEBPACK_IMPORTED_MODULE_5__["expOut"]; });
5184
5185/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpInOut", function() { return _exp_js__WEBPACK_IMPORTED_MODULE_5__["expInOut"]; });
5186
5187/* harmony import */ var _circle_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./circle.js */ "./node_modules/d3-ease/src/circle.js");
5188/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircle", function() { return _circle_js__WEBPACK_IMPORTED_MODULE_6__["circleInOut"]; });
5189
5190/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleIn", function() { return _circle_js__WEBPACK_IMPORTED_MODULE_6__["circleIn"]; });
5191
5192/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleOut", function() { return _circle_js__WEBPACK_IMPORTED_MODULE_6__["circleOut"]; });
5193
5194/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleInOut", function() { return _circle_js__WEBPACK_IMPORTED_MODULE_6__["circleInOut"]; });
5195
5196/* harmony import */ var _bounce_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./bounce.js */ "./node_modules/d3-ease/src/bounce.js");
5197/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounce", function() { return _bounce_js__WEBPACK_IMPORTED_MODULE_7__["bounceOut"]; });
5198
5199/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceIn", function() { return _bounce_js__WEBPACK_IMPORTED_MODULE_7__["bounceIn"]; });
5200
5201/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceOut", function() { return _bounce_js__WEBPACK_IMPORTED_MODULE_7__["bounceOut"]; });
5202
5203/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceInOut", function() { return _bounce_js__WEBPACK_IMPORTED_MODULE_7__["bounceInOut"]; });
5204
5205/* harmony import */ var _back_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./back.js */ "./node_modules/d3-ease/src/back.js");
5206/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBack", function() { return _back_js__WEBPACK_IMPORTED_MODULE_8__["backInOut"]; });
5207
5208/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackIn", function() { return _back_js__WEBPACK_IMPORTED_MODULE_8__["backIn"]; });
5209
5210/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackOut", function() { return _back_js__WEBPACK_IMPORTED_MODULE_8__["backOut"]; });
5211
5212/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackInOut", function() { return _back_js__WEBPACK_IMPORTED_MODULE_8__["backInOut"]; });
5213
5214/* harmony import */ var _elastic_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./elastic.js */ "./node_modules/d3-ease/src/elastic.js");
5215/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElastic", function() { return _elastic_js__WEBPACK_IMPORTED_MODULE_9__["elasticOut"]; });
5216
5217/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticIn", function() { return _elastic_js__WEBPACK_IMPORTED_MODULE_9__["elasticIn"]; });
5218
5219/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticOut", function() { return _elastic_js__WEBPACK_IMPORTED_MODULE_9__["elasticOut"]; });
5220
5221/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticInOut", function() { return _elastic_js__WEBPACK_IMPORTED_MODULE_9__["elasticInOut"]; });
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244/***/ }),
5245
5246/***/ "./node_modules/d3-ease/src/linear.js":
5247/*!********************************************!*\
5248 !*** ./node_modules/d3-ease/src/linear.js ***!
5249 \********************************************/
5250/*! exports provided: linear */
5251/***/ (function(module, __webpack_exports__, __webpack_require__) {
5252
5253"use strict";
5254__webpack_require__.r(__webpack_exports__);
5255/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linear", function() { return linear; });
5256function linear(t) {
5257 return +t;
5258}
5259
5260
5261/***/ }),
5262
5263/***/ "./node_modules/d3-ease/src/poly.js":
5264/*!******************************************!*\
5265 !*** ./node_modules/d3-ease/src/poly.js ***!
5266 \******************************************/
5267/*! exports provided: polyIn, polyOut, polyInOut */
5268/***/ (function(module, __webpack_exports__, __webpack_require__) {
5269
5270"use strict";
5271__webpack_require__.r(__webpack_exports__);
5272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyIn", function() { return polyIn; });
5273/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyOut", function() { return polyOut; });
5274/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyInOut", function() { return polyInOut; });
5275var exponent = 3;
5276
5277var polyIn = (function custom(e) {
5278 e = +e;
5279
5280 function polyIn(t) {
5281 return Math.pow(t, e);
5282 }
5283
5284 polyIn.exponent = custom;
5285
5286 return polyIn;
5287})(exponent);
5288
5289var polyOut = (function custom(e) {
5290 e = +e;
5291
5292 function polyOut(t) {
5293 return 1 - Math.pow(1 - t, e);
5294 }
5295
5296 polyOut.exponent = custom;
5297
5298 return polyOut;
5299})(exponent);
5300
5301var polyInOut = (function custom(e) {
5302 e = +e;
5303
5304 function polyInOut(t) {
5305 return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
5306 }
5307
5308 polyInOut.exponent = custom;
5309
5310 return polyInOut;
5311})(exponent);
5312
5313
5314/***/ }),
5315
5316/***/ "./node_modules/d3-ease/src/quad.js":
5317/*!******************************************!*\
5318 !*** ./node_modules/d3-ease/src/quad.js ***!
5319 \******************************************/
5320/*! exports provided: quadIn, quadOut, quadInOut */
5321/***/ (function(module, __webpack_exports__, __webpack_require__) {
5322
5323"use strict";
5324__webpack_require__.r(__webpack_exports__);
5325/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadIn", function() { return quadIn; });
5326/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadOut", function() { return quadOut; });
5327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quadInOut", function() { return quadInOut; });
5328function quadIn(t) {
5329 return t * t;
5330}
5331
5332function quadOut(t) {
5333 return t * (2 - t);
5334}
5335
5336function quadInOut(t) {
5337 return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
5338}
5339
5340
5341/***/ }),
5342
5343/***/ "./node_modules/d3-ease/src/sin.js":
5344/*!*****************************************!*\
5345 !*** ./node_modules/d3-ease/src/sin.js ***!
5346 \*****************************************/
5347/*! exports provided: sinIn, sinOut, sinInOut */
5348/***/ (function(module, __webpack_exports__, __webpack_require__) {
5349
5350"use strict";
5351__webpack_require__.r(__webpack_exports__);
5352/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinIn", function() { return sinIn; });
5353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinOut", function() { return sinOut; });
5354/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sinInOut", function() { return sinInOut; });
5355var pi = Math.PI,
5356 halfPi = pi / 2;
5357
5358function sinIn(t) {
5359 return 1 - Math.cos(t * halfPi);
5360}
5361
5362function sinOut(t) {
5363 return Math.sin(t * halfPi);
5364}
5365
5366function sinInOut(t) {
5367 return (1 - Math.cos(pi * t)) / 2;
5368}
5369
5370
5371/***/ }),
5372
5373/***/ "./node_modules/d3-fetch/src/blob.js":
5374/*!*******************************************!*\
5375 !*** ./node_modules/d3-fetch/src/blob.js ***!
5376 \*******************************************/
5377/*! exports provided: default */
5378/***/ (function(module, __webpack_exports__, __webpack_require__) {
5379
5380"use strict";
5381__webpack_require__.r(__webpack_exports__);
5382function responseBlob(response) {
5383 if (!response.ok) throw new Error(response.status + " " + response.statusText);
5384 return response.blob();
5385}
5386
5387/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5388 return fetch(input, init).then(responseBlob);
5389});
5390
5391
5392/***/ }),
5393
5394/***/ "./node_modules/d3-fetch/src/buffer.js":
5395/*!*********************************************!*\
5396 !*** ./node_modules/d3-fetch/src/buffer.js ***!
5397 \*********************************************/
5398/*! exports provided: default */
5399/***/ (function(module, __webpack_exports__, __webpack_require__) {
5400
5401"use strict";
5402__webpack_require__.r(__webpack_exports__);
5403function responseArrayBuffer(response) {
5404 if (!response.ok) throw new Error(response.status + " " + response.statusText);
5405 return response.arrayBuffer();
5406}
5407
5408/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5409 return fetch(input, init).then(responseArrayBuffer);
5410});
5411
5412
5413/***/ }),
5414
5415/***/ "./node_modules/d3-fetch/src/dsv.js":
5416/*!******************************************!*\
5417 !*** ./node_modules/d3-fetch/src/dsv.js ***!
5418 \******************************************/
5419/*! exports provided: default, csv, tsv */
5420/***/ (function(module, __webpack_exports__, __webpack_require__) {
5421
5422"use strict";
5423__webpack_require__.r(__webpack_exports__);
5424/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return dsv; });
5425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "csv", function() { return csv; });
5426/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsv", function() { return tsv; });
5427/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/src/index.js");
5428/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text */ "./node_modules/d3-fetch/src/text.js");
5429
5430
5431
5432function dsvParse(parse) {
5433 return function(input, init, row) {
5434 if (arguments.length === 2 && typeof init === "function") row = init, init = undefined;
5435 return Object(_text__WEBPACK_IMPORTED_MODULE_1__["default"])(input, init).then(function(response) {
5436 return parse(response, row);
5437 });
5438 };
5439}
5440
5441function dsv(delimiter, input, init, row) {
5442 if (arguments.length === 3 && typeof init === "function") row = init, init = undefined;
5443 var format = Object(d3_dsv__WEBPACK_IMPORTED_MODULE_0__["dsvFormat"])(delimiter);
5444 return Object(_text__WEBPACK_IMPORTED_MODULE_1__["default"])(input, init).then(function(response) {
5445 return format.parse(response, row);
5446 });
5447}
5448
5449var csv = dsvParse(d3_dsv__WEBPACK_IMPORTED_MODULE_0__["csvParse"]);
5450var tsv = dsvParse(d3_dsv__WEBPACK_IMPORTED_MODULE_0__["tsvParse"]);
5451
5452
5453/***/ }),
5454
5455/***/ "./node_modules/d3-fetch/src/image.js":
5456/*!********************************************!*\
5457 !*** ./node_modules/d3-fetch/src/image.js ***!
5458 \********************************************/
5459/*! exports provided: default */
5460/***/ (function(module, __webpack_exports__, __webpack_require__) {
5461
5462"use strict";
5463__webpack_require__.r(__webpack_exports__);
5464/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5465 return new Promise(function(resolve, reject) {
5466 var image = new Image;
5467 for (var key in init) image[key] = init[key];
5468 image.onerror = reject;
5469 image.onload = function() { resolve(image); };
5470 image.src = input;
5471 });
5472});
5473
5474
5475/***/ }),
5476
5477/***/ "./node_modules/d3-fetch/src/index.js":
5478/*!********************************************!*\
5479 !*** ./node_modules/d3-fetch/src/index.js ***!
5480 \********************************************/
5481/*! exports provided: blob, buffer, dsv, csv, tsv, image, json, text, xml, html, svg */
5482/***/ (function(module, __webpack_exports__, __webpack_require__) {
5483
5484"use strict";
5485__webpack_require__.r(__webpack_exports__);
5486/* harmony import */ var _blob__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blob */ "./node_modules/d3-fetch/src/blob.js");
5487/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "blob", function() { return _blob__WEBPACK_IMPORTED_MODULE_0__["default"]; });
5488
5489/* harmony import */ var _buffer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buffer */ "./node_modules/d3-fetch/src/buffer.js");
5490/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _buffer__WEBPACK_IMPORTED_MODULE_1__["default"]; });
5491
5492/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dsv */ "./node_modules/d3-fetch/src/dsv.js");
5493/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsv", function() { return _dsv__WEBPACK_IMPORTED_MODULE_2__["default"]; });
5494
5495/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csv", function() { return _dsv__WEBPACK_IMPORTED_MODULE_2__["csv"]; });
5496
5497/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsv", function() { return _dsv__WEBPACK_IMPORTED_MODULE_2__["tsv"]; });
5498
5499/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./image */ "./node_modules/d3-fetch/src/image.js");
5500/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "image", function() { return _image__WEBPACK_IMPORTED_MODULE_3__["default"]; });
5501
5502/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./json */ "./node_modules/d3-fetch/src/json.js");
5503/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "json", function() { return _json__WEBPACK_IMPORTED_MODULE_4__["default"]; });
5504
5505/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./text */ "./node_modules/d3-fetch/src/text.js");
5506/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "text", function() { return _text__WEBPACK_IMPORTED_MODULE_5__["default"]; });
5507
5508/* harmony import */ var _xml__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./xml */ "./node_modules/d3-fetch/src/xml.js");
5509/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "xml", function() { return _xml__WEBPACK_IMPORTED_MODULE_6__["default"]; });
5510
5511/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "html", function() { return _xml__WEBPACK_IMPORTED_MODULE_6__["html"]; });
5512
5513/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "svg", function() { return _xml__WEBPACK_IMPORTED_MODULE_6__["svg"]; });
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524/***/ }),
5525
5526/***/ "./node_modules/d3-fetch/src/json.js":
5527/*!*******************************************!*\
5528 !*** ./node_modules/d3-fetch/src/json.js ***!
5529 \*******************************************/
5530/*! exports provided: default */
5531/***/ (function(module, __webpack_exports__, __webpack_require__) {
5532
5533"use strict";
5534__webpack_require__.r(__webpack_exports__);
5535function responseJson(response) {
5536 if (!response.ok) throw new Error(response.status + " " + response.statusText);
5537 return response.json();
5538}
5539
5540/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5541 return fetch(input, init).then(responseJson);
5542});
5543
5544
5545/***/ }),
5546
5547/***/ "./node_modules/d3-fetch/src/text.js":
5548/*!*******************************************!*\
5549 !*** ./node_modules/d3-fetch/src/text.js ***!
5550 \*******************************************/
5551/*! exports provided: default */
5552/***/ (function(module, __webpack_exports__, __webpack_require__) {
5553
5554"use strict";
5555__webpack_require__.r(__webpack_exports__);
5556function responseText(response) {
5557 if (!response.ok) throw new Error(response.status + " " + response.statusText);
5558 return response.text();
5559}
5560
5561/* harmony default export */ __webpack_exports__["default"] = (function(input, init) {
5562 return fetch(input, init).then(responseText);
5563});
5564
5565
5566/***/ }),
5567
5568/***/ "./node_modules/d3-fetch/src/xml.js":
5569/*!******************************************!*\
5570 !*** ./node_modules/d3-fetch/src/xml.js ***!
5571 \******************************************/
5572/*! exports provided: default, html, svg */
5573/***/ (function(module, __webpack_exports__, __webpack_require__) {
5574
5575"use strict";
5576__webpack_require__.r(__webpack_exports__);
5577/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "html", function() { return html; });
5578/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "svg", function() { return svg; });
5579/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./text */ "./node_modules/d3-fetch/src/text.js");
5580
5581
5582function parser(type) {
5583 return function(input, init) {
5584 return Object(_text__WEBPACK_IMPORTED_MODULE_0__["default"])(input, init).then(function(text) {
5585 return (new DOMParser).parseFromString(text, type);
5586 });
5587 };
5588}
5589
5590/* harmony default export */ __webpack_exports__["default"] = (parser("application/xml"));
5591
5592var html = parser("text/html");
5593
5594var svg = parser("image/svg+xml");
5595
5596
5597/***/ }),
5598
5599/***/ "./node_modules/d3-force/src/center.js":
5600/*!*********************************************!*\
5601 !*** ./node_modules/d3-force/src/center.js ***!
5602 \*********************************************/
5603/*! exports provided: default */
5604/***/ (function(module, __webpack_exports__, __webpack_require__) {
5605
5606"use strict";
5607__webpack_require__.r(__webpack_exports__);
5608/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
5609 var nodes;
5610
5611 if (x == null) x = 0;
5612 if (y == null) y = 0;
5613
5614 function force() {
5615 var i,
5616 n = nodes.length,
5617 node,
5618 sx = 0,
5619 sy = 0;
5620
5621 for (i = 0; i < n; ++i) {
5622 node = nodes[i], sx += node.x, sy += node.y;
5623 }
5624
5625 for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {
5626 node = nodes[i], node.x -= sx, node.y -= sy;
5627 }
5628 }
5629
5630 force.initialize = function(_) {
5631 nodes = _;
5632 };
5633
5634 force.x = function(_) {
5635 return arguments.length ? (x = +_, force) : x;
5636 };
5637
5638 force.y = function(_) {
5639 return arguments.length ? (y = +_, force) : y;
5640 };
5641
5642 return force;
5643});
5644
5645
5646/***/ }),
5647
5648/***/ "./node_modules/d3-force/src/collide.js":
5649/*!**********************************************!*\
5650 !*** ./node_modules/d3-force/src/collide.js ***!
5651 \**********************************************/
5652/*! exports provided: default */
5653/***/ (function(module, __webpack_exports__, __webpack_require__) {
5654
5655"use strict";
5656__webpack_require__.r(__webpack_exports__);
5657/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5658/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
5659/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/index.js");
5660
5661
5662
5663
5664function x(d) {
5665 return d.x + d.vx;
5666}
5667
5668function y(d) {
5669 return d.y + d.vy;
5670}
5671
5672/* harmony default export */ __webpack_exports__["default"] = (function(radius) {
5673 var nodes,
5674 radii,
5675 strength = 1,
5676 iterations = 1;
5677
5678 if (typeof radius !== "function") radius = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(radius == null ? 1 : +radius);
5679
5680 function force() {
5681 var i, n = nodes.length,
5682 tree,
5683 node,
5684 xi,
5685 yi,
5686 ri,
5687 ri2;
5688
5689 for (var k = 0; k < iterations; ++k) {
5690 tree = Object(d3_quadtree__WEBPACK_IMPORTED_MODULE_2__["quadtree"])(nodes, x, y).visitAfter(prepare);
5691 for (i = 0; i < n; ++i) {
5692 node = nodes[i];
5693 ri = radii[node.index], ri2 = ri * ri;
5694 xi = node.x + node.vx;
5695 yi = node.y + node.vy;
5696 tree.visit(apply);
5697 }
5698 }
5699
5700 function apply(quad, x0, y0, x1, y1) {
5701 var data = quad.data, rj = quad.r, r = ri + rj;
5702 if (data) {
5703 if (data.index > node.index) {
5704 var x = xi - data.x - data.vx,
5705 y = yi - data.y - data.vy,
5706 l = x * x + y * y;
5707 if (l < r * r) {
5708 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
5709 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
5710 l = (r - (l = Math.sqrt(l))) / l * strength;
5711 node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
5712 node.vy += (y *= l) * r;
5713 data.vx -= x * (r = 1 - r);
5714 data.vy -= y * r;
5715 }
5716 }
5717 return;
5718 }
5719 return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
5720 }
5721 }
5722
5723 function prepare(quad) {
5724 if (quad.data) return quad.r = radii[quad.data.index];
5725 for (var i = quad.r = 0; i < 4; ++i) {
5726 if (quad[i] && quad[i].r > quad.r) {
5727 quad.r = quad[i].r;
5728 }
5729 }
5730 }
5731
5732 function initialize() {
5733 if (!nodes) return;
5734 var i, n = nodes.length, node;
5735 radii = new Array(n);
5736 for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
5737 }
5738
5739 force.initialize = function(_) {
5740 nodes = _;
5741 initialize();
5742 };
5743
5744 force.iterations = function(_) {
5745 return arguments.length ? (iterations = +_, force) : iterations;
5746 };
5747
5748 force.strength = function(_) {
5749 return arguments.length ? (strength = +_, force) : strength;
5750 };
5751
5752 force.radius = function(_) {
5753 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : radius;
5754 };
5755
5756 return force;
5757});
5758
5759
5760/***/ }),
5761
5762/***/ "./node_modules/d3-force/src/constant.js":
5763/*!***********************************************!*\
5764 !*** ./node_modules/d3-force/src/constant.js ***!
5765 \***********************************************/
5766/*! exports provided: default */
5767/***/ (function(module, __webpack_exports__, __webpack_require__) {
5768
5769"use strict";
5770__webpack_require__.r(__webpack_exports__);
5771/* harmony default export */ __webpack_exports__["default"] = (function(x) {
5772 return function() {
5773 return x;
5774 };
5775});
5776
5777
5778/***/ }),
5779
5780/***/ "./node_modules/d3-force/src/index.js":
5781/*!********************************************!*\
5782 !*** ./node_modules/d3-force/src/index.js ***!
5783 \********************************************/
5784/*! exports provided: forceCenter, forceCollide, forceLink, forceManyBody, forceRadial, forceSimulation, forceX, forceY */
5785/***/ (function(module, __webpack_exports__, __webpack_require__) {
5786
5787"use strict";
5788__webpack_require__.r(__webpack_exports__);
5789/* harmony import */ var _center__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./center */ "./node_modules/d3-force/src/center.js");
5790/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCenter", function() { return _center__WEBPACK_IMPORTED_MODULE_0__["default"]; });
5791
5792/* harmony import */ var _collide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./collide */ "./node_modules/d3-force/src/collide.js");
5793/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCollide", function() { return _collide__WEBPACK_IMPORTED_MODULE_1__["default"]; });
5794
5795/* harmony import */ var _link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./link */ "./node_modules/d3-force/src/link.js");
5796/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceLink", function() { return _link__WEBPACK_IMPORTED_MODULE_2__["default"]; });
5797
5798/* harmony import */ var _manyBody__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./manyBody */ "./node_modules/d3-force/src/manyBody.js");
5799/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceManyBody", function() { return _manyBody__WEBPACK_IMPORTED_MODULE_3__["default"]; });
5800
5801/* harmony import */ var _radial__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./radial */ "./node_modules/d3-force/src/radial.js");
5802/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceRadial", function() { return _radial__WEBPACK_IMPORTED_MODULE_4__["default"]; });
5803
5804/* harmony import */ var _simulation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./simulation */ "./node_modules/d3-force/src/simulation.js");
5805/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceSimulation", function() { return _simulation__WEBPACK_IMPORTED_MODULE_5__["default"]; });
5806
5807/* harmony import */ var _x__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./x */ "./node_modules/d3-force/src/x.js");
5808/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceX", function() { return _x__WEBPACK_IMPORTED_MODULE_6__["default"]; });
5809
5810/* harmony import */ var _y__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./y */ "./node_modules/d3-force/src/y.js");
5811/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceY", function() { return _y__WEBPACK_IMPORTED_MODULE_7__["default"]; });
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823/***/ }),
5824
5825/***/ "./node_modules/d3-force/src/jiggle.js":
5826/*!*********************************************!*\
5827 !*** ./node_modules/d3-force/src/jiggle.js ***!
5828 \*********************************************/
5829/*! exports provided: default */
5830/***/ (function(module, __webpack_exports__, __webpack_require__) {
5831
5832"use strict";
5833__webpack_require__.r(__webpack_exports__);
5834/* harmony default export */ __webpack_exports__["default"] = (function() {
5835 return (Math.random() - 0.5) * 1e-6;
5836});
5837
5838
5839/***/ }),
5840
5841/***/ "./node_modules/d3-force/src/link.js":
5842/*!*******************************************!*\
5843 !*** ./node_modules/d3-force/src/link.js ***!
5844 \*******************************************/
5845/*! exports provided: default */
5846/***/ (function(module, __webpack_exports__, __webpack_require__) {
5847
5848"use strict";
5849__webpack_require__.r(__webpack_exports__);
5850/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5851/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
5852/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/src/index.js");
5853
5854
5855
5856
5857function index(d) {
5858 return d.index;
5859}
5860
5861function find(nodeById, nodeId) {
5862 var node = nodeById.get(nodeId);
5863 if (!node) throw new Error("missing: " + nodeId);
5864 return node;
5865}
5866
5867/* harmony default export */ __webpack_exports__["default"] = (function(links) {
5868 var id = index,
5869 strength = defaultStrength,
5870 strengths,
5871 distance = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(30),
5872 distances,
5873 nodes,
5874 count,
5875 bias,
5876 iterations = 1;
5877
5878 if (links == null) links = [];
5879
5880 function defaultStrength(link) {
5881 return 1 / Math.min(count[link.source.index], count[link.target.index]);
5882 }
5883
5884 function force(alpha) {
5885 for (var k = 0, n = links.length; k < iterations; ++k) {
5886 for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
5887 link = links[i], source = link.source, target = link.target;
5888 x = target.x + target.vx - source.x - source.vx || Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])();
5889 y = target.y + target.vy - source.y - source.vy || Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])();
5890 l = Math.sqrt(x * x + y * y);
5891 l = (l - distances[i]) / l * alpha * strengths[i];
5892 x *= l, y *= l;
5893 target.vx -= x * (b = bias[i]);
5894 target.vy -= y * b;
5895 source.vx += x * (b = 1 - b);
5896 source.vy += y * b;
5897 }
5898 }
5899 }
5900
5901 function initialize() {
5902 if (!nodes) return;
5903
5904 var i,
5905 n = nodes.length,
5906 m = links.length,
5907 nodeById = Object(d3_collection__WEBPACK_IMPORTED_MODULE_2__["map"])(nodes, id),
5908 link;
5909
5910 for (i = 0, count = new Array(n); i < m; ++i) {
5911 link = links[i], link.index = i;
5912 if (typeof link.source !== "object") link.source = find(nodeById, link.source);
5913 if (typeof link.target !== "object") link.target = find(nodeById, link.target);
5914 count[link.source.index] = (count[link.source.index] || 0) + 1;
5915 count[link.target.index] = (count[link.target.index] || 0) + 1;
5916 }
5917
5918 for (i = 0, bias = new Array(m); i < m; ++i) {
5919 link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
5920 }
5921
5922 strengths = new Array(m), initializeStrength();
5923 distances = new Array(m), initializeDistance();
5924 }
5925
5926 function initializeStrength() {
5927 if (!nodes) return;
5928
5929 for (var i = 0, n = links.length; i < n; ++i) {
5930 strengths[i] = +strength(links[i], i, links);
5931 }
5932 }
5933
5934 function initializeDistance() {
5935 if (!nodes) return;
5936
5937 for (var i = 0, n = links.length; i < n; ++i) {
5938 distances[i] = +distance(links[i], i, links);
5939 }
5940 }
5941
5942 force.initialize = function(_) {
5943 nodes = _;
5944 initialize();
5945 };
5946
5947 force.links = function(_) {
5948 return arguments.length ? (links = _, initialize(), force) : links;
5949 };
5950
5951 force.id = function(_) {
5952 return arguments.length ? (id = _, force) : id;
5953 };
5954
5955 force.iterations = function(_) {
5956 return arguments.length ? (iterations = +_, force) : iterations;
5957 };
5958
5959 force.strength = function(_) {
5960 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initializeStrength(), force) : strength;
5961 };
5962
5963 force.distance = function(_) {
5964 return arguments.length ? (distance = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initializeDistance(), force) : distance;
5965 };
5966
5967 return force;
5968});
5969
5970
5971/***/ }),
5972
5973/***/ "./node_modules/d3-force/src/manyBody.js":
5974/*!***********************************************!*\
5975 !*** ./node_modules/d3-force/src/manyBody.js ***!
5976 \***********************************************/
5977/*! exports provided: default */
5978/***/ (function(module, __webpack_exports__, __webpack_require__) {
5979
5980"use strict";
5981__webpack_require__.r(__webpack_exports__);
5982/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
5983/* harmony import */ var _jiggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle */ "./node_modules/d3-force/src/jiggle.js");
5984/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/index.js");
5985/* harmony import */ var _simulation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./simulation */ "./node_modules/d3-force/src/simulation.js");
5986
5987
5988
5989
5990
5991/* harmony default export */ __webpack_exports__["default"] = (function() {
5992 var nodes,
5993 node,
5994 alpha,
5995 strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(-30),
5996 strengths,
5997 distanceMin2 = 1,
5998 distanceMax2 = Infinity,
5999 theta2 = 0.81;
6000
6001 function force(_) {
6002 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);
6003 for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
6004 }
6005
6006 function initialize() {
6007 if (!nodes) return;
6008 var i, n = nodes.length, node;
6009 strengths = new Array(n);
6010 for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
6011 }
6012
6013 function accumulate(quad) {
6014 var strength = 0, q, c, weight = 0, x, y, i;
6015
6016 // For internal nodes, accumulate forces from child quadrants.
6017 if (quad.length) {
6018 for (x = y = i = 0; i < 4; ++i) {
6019 if ((q = quad[i]) && (c = Math.abs(q.value))) {
6020 strength += q.value, weight += c, x += c * q.x, y += c * q.y;
6021 }
6022 }
6023 quad.x = x / weight;
6024 quad.y = y / weight;
6025 }
6026
6027 // For leaf nodes, accumulate forces from coincident quadrants.
6028 else {
6029 q = quad;
6030 q.x = q.data.x;
6031 q.y = q.data.y;
6032 do strength += strengths[q.data.index];
6033 while (q = q.next);
6034 }
6035
6036 quad.value = strength;
6037 }
6038
6039 function apply(quad, x1, _, x2) {
6040 if (!quad.value) return true;
6041
6042 var x = quad.x - node.x,
6043 y = quad.y - node.y,
6044 w = x2 - x1,
6045 l = x * x + y * y;
6046
6047 // Apply the Barnes-Hut approximation if possible.
6048 // Limit forces for very close nodes; randomize direction if coincident.
6049 if (w * w / theta2 < l) {
6050 if (l < distanceMax2) {
6051 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
6052 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
6053 if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
6054 node.vx += x * quad.value * alpha / l;
6055 node.vy += y * quad.value * alpha / l;
6056 }
6057 return true;
6058 }
6059
6060 // Otherwise, process points directly.
6061 else if (quad.length || l >= distanceMax2) return;
6062
6063 // Limit forces for very close nodes; randomize direction if coincident.
6064 if (quad.data !== node || quad.next) {
6065 if (x === 0) x = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += x * x;
6066 if (y === 0) y = Object(_jiggle__WEBPACK_IMPORTED_MODULE_1__["default"])(), l += y * y;
6067 if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
6068 }
6069
6070 do if (quad.data !== node) {
6071 w = strengths[quad.data.index] * alpha / l;
6072 node.vx += x * w;
6073 node.vy += y * w;
6074 } while (quad = quad.next);
6075 }
6076
6077 force.initialize = function(_) {
6078 nodes = _;
6079 initialize();
6080 };
6081
6082 force.strength = function(_) {
6083 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
6084 };
6085
6086 force.distanceMin = function(_) {
6087 return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
6088 };
6089
6090 force.distanceMax = function(_) {
6091 return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
6092 };
6093
6094 force.theta = function(_) {
6095 return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
6096 };
6097
6098 return force;
6099});
6100
6101
6102/***/ }),
6103
6104/***/ "./node_modules/d3-force/src/radial.js":
6105/*!*********************************************!*\
6106 !*** ./node_modules/d3-force/src/radial.js ***!
6107 \*********************************************/
6108/*! exports provided: default */
6109/***/ (function(module, __webpack_exports__, __webpack_require__) {
6110
6111"use strict";
6112__webpack_require__.r(__webpack_exports__);
6113/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
6114
6115
6116/* harmony default export */ __webpack_exports__["default"] = (function(radius, x, y) {
6117 var nodes,
6118 strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
6119 strengths,
6120 radiuses;
6121
6122 if (typeof radius !== "function") radius = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+radius);
6123 if (x == null) x = 0;
6124 if (y == null) y = 0;
6125
6126 function force(alpha) {
6127 for (var i = 0, n = nodes.length; i < n; ++i) {
6128 var node = nodes[i],
6129 dx = node.x - x || 1e-6,
6130 dy = node.y - y || 1e-6,
6131 r = Math.sqrt(dx * dx + dy * dy),
6132 k = (radiuses[i] - r) * strengths[i] * alpha / r;
6133 node.vx += dx * k;
6134 node.vy += dy * k;
6135 }
6136 }
6137
6138 function initialize() {
6139 if (!nodes) return;
6140 var i, n = nodes.length;
6141 strengths = new Array(n);
6142 radiuses = new Array(n);
6143 for (i = 0; i < n; ++i) {
6144 radiuses[i] = +radius(nodes[i], i, nodes);
6145 strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
6146 }
6147 }
6148
6149 force.initialize = function(_) {
6150 nodes = _, initialize();
6151 };
6152
6153 force.strength = function(_) {
6154 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
6155 };
6156
6157 force.radius = function(_) {
6158 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : radius;
6159 };
6160
6161 force.x = function(_) {
6162 return arguments.length ? (x = +_, force) : x;
6163 };
6164
6165 force.y = function(_) {
6166 return arguments.length ? (y = +_, force) : y;
6167 };
6168
6169 return force;
6170});
6171
6172
6173/***/ }),
6174
6175/***/ "./node_modules/d3-force/src/simulation.js":
6176/*!*************************************************!*\
6177 !*** ./node_modules/d3-force/src/simulation.js ***!
6178 \*************************************************/
6179/*! exports provided: x, y, default */
6180/***/ (function(module, __webpack_exports__, __webpack_require__) {
6181
6182"use strict";
6183__webpack_require__.r(__webpack_exports__);
6184/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
6185/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
6186/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
6187/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/src/index.js");
6188/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
6189
6190
6191
6192
6193function x(d) {
6194 return d.x;
6195}
6196
6197function y(d) {
6198 return d.y;
6199}
6200
6201var initialRadius = 10,
6202 initialAngle = Math.PI * (3 - Math.sqrt(5));
6203
6204/* harmony default export */ __webpack_exports__["default"] = (function(nodes) {
6205 var simulation,
6206 alpha = 1,
6207 alphaMin = 0.001,
6208 alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
6209 alphaTarget = 0,
6210 velocityDecay = 0.6,
6211 forces = Object(d3_collection__WEBPACK_IMPORTED_MODULE_1__["map"])(),
6212 stepper = Object(d3_timer__WEBPACK_IMPORTED_MODULE_2__["timer"])(step),
6213 event = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("tick", "end");
6214
6215 if (nodes == null) nodes = [];
6216
6217 function step() {
6218 tick();
6219 event.call("tick", simulation);
6220 if (alpha < alphaMin) {
6221 stepper.stop();
6222 event.call("end", simulation);
6223 }
6224 }
6225
6226 function tick(iterations) {
6227 var i, n = nodes.length, node;
6228
6229 if (iterations === undefined) iterations = 1;
6230
6231 for (var k = 0; k < iterations; ++k) {
6232 alpha += (alphaTarget - alpha) * alphaDecay;
6233
6234 forces.each(function (force) {
6235 force(alpha);
6236 });
6237
6238 for (i = 0; i < n; ++i) {
6239 node = nodes[i];
6240 if (node.fx == null) node.x += node.vx *= velocityDecay;
6241 else node.x = node.fx, node.vx = 0;
6242 if (node.fy == null) node.y += node.vy *= velocityDecay;
6243 else node.y = node.fy, node.vy = 0;
6244 }
6245 }
6246
6247 return simulation;
6248 }
6249
6250 function initializeNodes() {
6251 for (var i = 0, n = nodes.length, node; i < n; ++i) {
6252 node = nodes[i], node.index = i;
6253 if (node.fx != null) node.x = node.fx;
6254 if (node.fy != null) node.y = node.fy;
6255 if (isNaN(node.x) || isNaN(node.y)) {
6256 var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;
6257 node.x = radius * Math.cos(angle);
6258 node.y = radius * Math.sin(angle);
6259 }
6260 if (isNaN(node.vx) || isNaN(node.vy)) {
6261 node.vx = node.vy = 0;
6262 }
6263 }
6264 }
6265
6266 function initializeForce(force) {
6267 if (force.initialize) force.initialize(nodes);
6268 return force;
6269 }
6270
6271 initializeNodes();
6272
6273 return simulation = {
6274 tick: tick,
6275
6276 restart: function() {
6277 return stepper.restart(step), simulation;
6278 },
6279
6280 stop: function() {
6281 return stepper.stop(), simulation;
6282 },
6283
6284 nodes: function(_) {
6285 return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;
6286 },
6287
6288 alpha: function(_) {
6289 return arguments.length ? (alpha = +_, simulation) : alpha;
6290 },
6291
6292 alphaMin: function(_) {
6293 return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
6294 },
6295
6296 alphaDecay: function(_) {
6297 return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
6298 },
6299
6300 alphaTarget: function(_) {
6301 return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
6302 },
6303
6304 velocityDecay: function(_) {
6305 return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
6306 },
6307
6308 force: function(name, _) {
6309 return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
6310 },
6311
6312 find: function(x, y, radius) {
6313 var i = 0,
6314 n = nodes.length,
6315 dx,
6316 dy,
6317 d2,
6318 node,
6319 closest;
6320
6321 if (radius == null) radius = Infinity;
6322 else radius *= radius;
6323
6324 for (i = 0; i < n; ++i) {
6325 node = nodes[i];
6326 dx = x - node.x;
6327 dy = y - node.y;
6328 d2 = dx * dx + dy * dy;
6329 if (d2 < radius) closest = node, radius = d2;
6330 }
6331
6332 return closest;
6333 },
6334
6335 on: function(name, _) {
6336 return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
6337 }
6338 };
6339});
6340
6341
6342/***/ }),
6343
6344/***/ "./node_modules/d3-force/src/x.js":
6345/*!****************************************!*\
6346 !*** ./node_modules/d3-force/src/x.js ***!
6347 \****************************************/
6348/*! exports provided: default */
6349/***/ (function(module, __webpack_exports__, __webpack_require__) {
6350
6351"use strict";
6352__webpack_require__.r(__webpack_exports__);
6353/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
6354
6355
6356/* harmony default export */ __webpack_exports__["default"] = (function(x) {
6357 var strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
6358 nodes,
6359 strengths,
6360 xz;
6361
6362 if (typeof x !== "function") x = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(x == null ? 0 : +x);
6363
6364 function force(alpha) {
6365 for (var i = 0, n = nodes.length, node; i < n; ++i) {
6366 node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
6367 }
6368 }
6369
6370 function initialize() {
6371 if (!nodes) return;
6372 var i, n = nodes.length;
6373 strengths = new Array(n);
6374 xz = new Array(n);
6375 for (i = 0; i < n; ++i) {
6376 strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
6377 }
6378 }
6379
6380 force.initialize = function(_) {
6381 nodes = _;
6382 initialize();
6383 };
6384
6385 force.strength = function(_) {
6386 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
6387 };
6388
6389 force.x = function(_) {
6390 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : x;
6391 };
6392
6393 return force;
6394});
6395
6396
6397/***/ }),
6398
6399/***/ "./node_modules/d3-force/src/y.js":
6400/*!****************************************!*\
6401 !*** ./node_modules/d3-force/src/y.js ***!
6402 \****************************************/
6403/*! exports provided: default */
6404/***/ (function(module, __webpack_exports__, __webpack_require__) {
6405
6406"use strict";
6407__webpack_require__.r(__webpack_exports__);
6408/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-force/src/constant.js");
6409
6410
6411/* harmony default export */ __webpack_exports__["default"] = (function(y) {
6412 var strength = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
6413 nodes,
6414 strengths,
6415 yz;
6416
6417 if (typeof y !== "function") y = Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(y == null ? 0 : +y);
6418
6419 function force(alpha) {
6420 for (var i = 0, n = nodes.length, node; i < n; ++i) {
6421 node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
6422 }
6423 }
6424
6425 function initialize() {
6426 if (!nodes) return;
6427 var i, n = nodes.length;
6428 strengths = new Array(n);
6429 yz = new Array(n);
6430 for (i = 0; i < n; ++i) {
6431 strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
6432 }
6433 }
6434
6435 force.initialize = function(_) {
6436 nodes = _;
6437 initialize();
6438 };
6439
6440 force.strength = function(_) {
6441 return arguments.length ? (strength = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
6442 };
6443
6444 force.y = function(_) {
6445 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : y;
6446 };
6447
6448 return force;
6449});
6450
6451
6452/***/ }),
6453
6454/***/ "./node_modules/d3-format/src/defaultLocale.js":
6455/*!*****************************************************!*\
6456 !*** ./node_modules/d3-format/src/defaultLocale.js ***!
6457 \*****************************************************/
6458/*! exports provided: format, formatPrefix, default */
6459/***/ (function(module, __webpack_exports__, __webpack_require__) {
6460
6461"use strict";
6462__webpack_require__.r(__webpack_exports__);
6463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "format", function() { return format; });
6464/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return formatPrefix; });
6465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return defaultLocale; });
6466/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ "./node_modules/d3-format/src/locale.js");
6467
6468
6469var locale;
6470var format;
6471var formatPrefix;
6472
6473defaultLocale({
6474 decimal: ".",
6475 thousands: ",",
6476 grouping: [3],
6477 currency: ["$", ""],
6478 minus: "-"
6479});
6480
6481function defaultLocale(definition) {
6482 locale = Object(_locale_js__WEBPACK_IMPORTED_MODULE_0__["default"])(definition);
6483 format = locale.format;
6484 formatPrefix = locale.formatPrefix;
6485 return locale;
6486}
6487
6488
6489/***/ }),
6490
6491/***/ "./node_modules/d3-format/src/exponent.js":
6492/*!************************************************!*\
6493 !*** ./node_modules/d3-format/src/exponent.js ***!
6494 \************************************************/
6495/*! exports provided: default */
6496/***/ (function(module, __webpack_exports__, __webpack_require__) {
6497
6498"use strict";
6499__webpack_require__.r(__webpack_exports__);
6500/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ "./node_modules/d3-format/src/formatDecimal.js");
6501
6502
6503/* harmony default export */ __webpack_exports__["default"] = (function(x) {
6504 return x = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(x)), x ? x[1] : NaN;
6505});
6506
6507
6508/***/ }),
6509
6510/***/ "./node_modules/d3-format/src/formatDecimal.js":
6511/*!*****************************************************!*\
6512 !*** ./node_modules/d3-format/src/formatDecimal.js ***!
6513 \*****************************************************/
6514/*! exports provided: default */
6515/***/ (function(module, __webpack_exports__, __webpack_require__) {
6516
6517"use strict";
6518__webpack_require__.r(__webpack_exports__);
6519// Computes the decimal coefficient and exponent of the specified number x with
6520// significant digits p, where x is positive and p is in [1, 21] or undefined.
6521// For example, formatDecimal(1.23) returns ["123", 0].
6522/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
6523 if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
6524 var i, coefficient = x.slice(0, i);
6525
6526 // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
6527 // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
6528 return [
6529 coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
6530 +x.slice(i + 1)
6531 ];
6532});
6533
6534
6535/***/ }),
6536
6537/***/ "./node_modules/d3-format/src/formatGroup.js":
6538/*!***************************************************!*\
6539 !*** ./node_modules/d3-format/src/formatGroup.js ***!
6540 \***************************************************/
6541/*! exports provided: default */
6542/***/ (function(module, __webpack_exports__, __webpack_require__) {
6543
6544"use strict";
6545__webpack_require__.r(__webpack_exports__);
6546/* harmony default export */ __webpack_exports__["default"] = (function(grouping, thousands) {
6547 return function(value, width) {
6548 var i = value.length,
6549 t = [],
6550 j = 0,
6551 g = grouping[0],
6552 length = 0;
6553
6554 while (i > 0 && g > 0) {
6555 if (length + g + 1 > width) g = Math.max(1, width - length);
6556 t.push(value.substring(i -= g, i + g));
6557 if ((length += g + 1) > width) break;
6558 g = grouping[j = (j + 1) % grouping.length];
6559 }
6560
6561 return t.reverse().join(thousands);
6562 };
6563});
6564
6565
6566/***/ }),
6567
6568/***/ "./node_modules/d3-format/src/formatNumerals.js":
6569/*!******************************************************!*\
6570 !*** ./node_modules/d3-format/src/formatNumerals.js ***!
6571 \******************************************************/
6572/*! exports provided: default */
6573/***/ (function(module, __webpack_exports__, __webpack_require__) {
6574
6575"use strict";
6576__webpack_require__.r(__webpack_exports__);
6577/* harmony default export */ __webpack_exports__["default"] = (function(numerals) {
6578 return function(value) {
6579 return value.replace(/[0-9]/g, function(i) {
6580 return numerals[+i];
6581 });
6582 };
6583});
6584
6585
6586/***/ }),
6587
6588/***/ "./node_modules/d3-format/src/formatPrefixAuto.js":
6589/*!********************************************************!*\
6590 !*** ./node_modules/d3-format/src/formatPrefixAuto.js ***!
6591 \********************************************************/
6592/*! exports provided: prefixExponent, default */
6593/***/ (function(module, __webpack_exports__, __webpack_require__) {
6594
6595"use strict";
6596__webpack_require__.r(__webpack_exports__);
6597/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefixExponent", function() { return prefixExponent; });
6598/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ "./node_modules/d3-format/src/formatDecimal.js");
6599
6600
6601var prefixExponent;
6602
6603/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
6604 var d = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__["default"])(x, p);
6605 if (!d) return x + "";
6606 var coefficient = d[0],
6607 exponent = d[1],
6608 i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
6609 n = coefficient.length;
6610 return i === n ? coefficient
6611 : i > n ? coefficient + new Array(i - n + 1).join("0")
6612 : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
6613 : "0." + new Array(1 - i).join("0") + Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__["default"])(x, Math.max(0, p + i - 1))[0]; // less than 1y!
6614});
6615
6616
6617/***/ }),
6618
6619/***/ "./node_modules/d3-format/src/formatRounded.js":
6620/*!*****************************************************!*\
6621 !*** ./node_modules/d3-format/src/formatRounded.js ***!
6622 \*****************************************************/
6623/*! exports provided: default */
6624/***/ (function(module, __webpack_exports__, __webpack_require__) {
6625
6626"use strict";
6627__webpack_require__.r(__webpack_exports__);
6628/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ "./node_modules/d3-format/src/formatDecimal.js");
6629
6630
6631/* harmony default export */ __webpack_exports__["default"] = (function(x, p) {
6632 var d = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__["default"])(x, p);
6633 if (!d) return x + "";
6634 var coefficient = d[0],
6635 exponent = d[1];
6636 return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
6637 : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
6638 : coefficient + new Array(exponent - coefficient.length + 2).join("0");
6639});
6640
6641
6642/***/ }),
6643
6644/***/ "./node_modules/d3-format/src/formatSpecifier.js":
6645/*!*******************************************************!*\
6646 !*** ./node_modules/d3-format/src/formatSpecifier.js ***!
6647 \*******************************************************/
6648/*! exports provided: default, FormatSpecifier */
6649/***/ (function(module, __webpack_exports__, __webpack_require__) {
6650
6651"use strict";
6652__webpack_require__.r(__webpack_exports__);
6653/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatSpecifier; });
6654/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormatSpecifier", function() { return FormatSpecifier; });
6655// [[fill]align][sign][symbol][0][width][,][.precision][~][type]
6656var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
6657
6658function formatSpecifier(specifier) {
6659 if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
6660 var match;
6661 return new FormatSpecifier({
6662 fill: match[1],
6663 align: match[2],
6664 sign: match[3],
6665 symbol: match[4],
6666 zero: match[5],
6667 width: match[6],
6668 comma: match[7],
6669 precision: match[8] && match[8].slice(1),
6670 trim: match[9],
6671 type: match[10]
6672 });
6673}
6674
6675formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
6676
6677function FormatSpecifier(specifier) {
6678 this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
6679 this.align = specifier.align === undefined ? ">" : specifier.align + "";
6680 this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
6681 this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + "";
6682 this.zero = !!specifier.zero;
6683 this.width = specifier.width === undefined ? undefined : +specifier.width;
6684 this.comma = !!specifier.comma;
6685 this.precision = specifier.precision === undefined ? undefined : +specifier.precision;
6686 this.trim = !!specifier.trim;
6687 this.type = specifier.type === undefined ? "" : specifier.type + "";
6688}
6689
6690FormatSpecifier.prototype.toString = function() {
6691 return this.fill
6692 + this.align
6693 + this.sign
6694 + this.symbol
6695 + (this.zero ? "0" : "")
6696 + (this.width === undefined ? "" : Math.max(1, this.width | 0))
6697 + (this.comma ? "," : "")
6698 + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0))
6699 + (this.trim ? "~" : "")
6700 + this.type;
6701};
6702
6703
6704/***/ }),
6705
6706/***/ "./node_modules/d3-format/src/formatTrim.js":
6707/*!**************************************************!*\
6708 !*** ./node_modules/d3-format/src/formatTrim.js ***!
6709 \**************************************************/
6710/*! exports provided: default */
6711/***/ (function(module, __webpack_exports__, __webpack_require__) {
6712
6713"use strict";
6714__webpack_require__.r(__webpack_exports__);
6715// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
6716/* harmony default export */ __webpack_exports__["default"] = (function(s) {
6717 out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
6718 switch (s[i]) {
6719 case ".": i0 = i1 = i; break;
6720 case "0": if (i0 === 0) i0 = i; i1 = i; break;
6721 default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;
6722 }
6723 }
6724 return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
6725});
6726
6727
6728/***/ }),
6729
6730/***/ "./node_modules/d3-format/src/formatTypes.js":
6731/*!***************************************************!*\
6732 !*** ./node_modules/d3-format/src/formatTypes.js ***!
6733 \***************************************************/
6734/*! exports provided: default */
6735/***/ (function(module, __webpack_exports__, __webpack_require__) {
6736
6737"use strict";
6738__webpack_require__.r(__webpack_exports__);
6739/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatPrefixAuto.js */ "./node_modules/d3-format/src/formatPrefixAuto.js");
6740/* harmony import */ var _formatRounded_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatRounded.js */ "./node_modules/d3-format/src/formatRounded.js");
6741
6742
6743
6744/* harmony default export */ __webpack_exports__["default"] = ({
6745 "%": function(x, p) { return (x * 100).toFixed(p); },
6746 "b": function(x) { return Math.round(x).toString(2); },
6747 "c": function(x) { return x + ""; },
6748 "d": function(x) { return Math.round(x).toString(10); },
6749 "e": function(x, p) { return x.toExponential(p); },
6750 "f": function(x, p) { return x.toFixed(p); },
6751 "g": function(x, p) { return x.toPrecision(p); },
6752 "o": function(x) { return Math.round(x).toString(8); },
6753 "p": function(x, p) { return Object(_formatRounded_js__WEBPACK_IMPORTED_MODULE_1__["default"])(x * 100, p); },
6754 "r": _formatRounded_js__WEBPACK_IMPORTED_MODULE_1__["default"],
6755 "s": _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_0__["default"],
6756 "X": function(x) { return Math.round(x).toString(16).toUpperCase(); },
6757 "x": function(x) { return Math.round(x).toString(16); }
6758});
6759
6760
6761/***/ }),
6762
6763/***/ "./node_modules/d3-format/src/identity.js":
6764/*!************************************************!*\
6765 !*** ./node_modules/d3-format/src/identity.js ***!
6766 \************************************************/
6767/*! exports provided: default */
6768/***/ (function(module, __webpack_exports__, __webpack_require__) {
6769
6770"use strict";
6771__webpack_require__.r(__webpack_exports__);
6772/* harmony default export */ __webpack_exports__["default"] = (function(x) {
6773 return x;
6774});
6775
6776
6777/***/ }),
6778
6779/***/ "./node_modules/d3-format/src/index.js":
6780/*!*********************************************!*\
6781 !*** ./node_modules/d3-format/src/index.js ***!
6782 \*********************************************/
6783/*! exports provided: formatDefaultLocale, format, formatPrefix, formatLocale, formatSpecifier, FormatSpecifier, precisionFixed, precisionPrefix, precisionRound */
6784/***/ (function(module, __webpack_exports__, __webpack_require__) {
6785
6786"use strict";
6787__webpack_require__.r(__webpack_exports__);
6788/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ "./node_modules/d3-format/src/defaultLocale.js");
6789/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatDefaultLocale", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
6790
6791/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["format"]; });
6792
6793/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["formatPrefix"]; });
6794
6795/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale.js */ "./node_modules/d3-format/src/locale.js");
6796/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatLocale", function() { return _locale_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
6797
6798/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatSpecifier.js */ "./node_modules/d3-format/src/formatSpecifier.js");
6799/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatSpecifier", function() { return _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
6800
6801/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FormatSpecifier", function() { return _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__["FormatSpecifier"]; });
6802
6803/* harmony import */ var _precisionFixed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./precisionFixed.js */ "./node_modules/d3-format/src/precisionFixed.js");
6804/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionFixed", function() { return _precisionFixed_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
6805
6806/* harmony import */ var _precisionPrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./precisionPrefix.js */ "./node_modules/d3-format/src/precisionPrefix.js");
6807/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionPrefix", function() { return _precisionPrefix_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
6808
6809/* harmony import */ var _precisionRound_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./precisionRound.js */ "./node_modules/d3-format/src/precisionRound.js");
6810/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return _precisionRound_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820/***/ }),
6821
6822/***/ "./node_modules/d3-format/src/locale.js":
6823/*!**********************************************!*\
6824 !*** ./node_modules/d3-format/src/locale.js ***!
6825 \**********************************************/
6826/*! exports provided: default */
6827/***/ (function(module, __webpack_exports__, __webpack_require__) {
6828
6829"use strict";
6830__webpack_require__.r(__webpack_exports__);
6831/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ "./node_modules/d3-format/src/exponent.js");
6832/* harmony import */ var _formatGroup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatGroup.js */ "./node_modules/d3-format/src/formatGroup.js");
6833/* harmony import */ var _formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatNumerals.js */ "./node_modules/d3-format/src/formatNumerals.js");
6834/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formatSpecifier.js */ "./node_modules/d3-format/src/formatSpecifier.js");
6835/* harmony import */ var _formatTrim_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatTrim.js */ "./node_modules/d3-format/src/formatTrim.js");
6836/* harmony import */ var _formatTypes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatTypes.js */ "./node_modules/d3-format/src/formatTypes.js");
6837/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./formatPrefixAuto.js */ "./node_modules/d3-format/src/formatPrefixAuto.js");
6838/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./identity.js */ "./node_modules/d3-format/src/identity.js");
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848var map = Array.prototype.map,
6849 prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
6850
6851/* harmony default export */ __webpack_exports__["default"] = (function(locale) {
6852 var group = locale.grouping === undefined || locale.thousands === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_7__["default"] : Object(_formatGroup_js__WEBPACK_IMPORTED_MODULE_1__["default"])(map.call(locale.grouping, Number), locale.thousands + ""),
6853 currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
6854 currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
6855 decimal = locale.decimal === undefined ? "." : locale.decimal + "",
6856 numerals = locale.numerals === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_7__["default"] : Object(_formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__["default"])(map.call(locale.numerals, String)),
6857 percent = locale.percent === undefined ? "%" : locale.percent + "",
6858 minus = locale.minus === undefined ? "-" : locale.minus + "",
6859 nan = locale.nan === undefined ? "NaN" : locale.nan + "";
6860
6861 function newFormat(specifier) {
6862 specifier = Object(_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__["default"])(specifier);
6863
6864 var fill = specifier.fill,
6865 align = specifier.align,
6866 sign = specifier.sign,
6867 symbol = specifier.symbol,
6868 zero = specifier.zero,
6869 width = specifier.width,
6870 comma = specifier.comma,
6871 precision = specifier.precision,
6872 trim = specifier.trim,
6873 type = specifier.type;
6874
6875 // The "n" type is an alias for ",g".
6876 if (type === "n") comma = true, type = "g";
6877
6878 // The "" type, and any invalid type, is an alias for ".12~g".
6879 else if (!_formatTypes_js__WEBPACK_IMPORTED_MODULE_5__["default"][type]) precision === undefined && (precision = 12), trim = true, type = "g";
6880
6881 // If zero fill is specified, padding goes after sign and before digits.
6882 if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
6883
6884 // Compute the prefix and suffix.
6885 // For SI-prefix, the suffix is lazily computed.
6886 var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
6887 suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "";
6888
6889 // What format function should we use?
6890 // Is this an integer type?
6891 // Can this type generate exponential notation?
6892 var formatType = _formatTypes_js__WEBPACK_IMPORTED_MODULE_5__["default"][type],
6893 maybeSuffix = /[defgprs%]/.test(type);
6894
6895 // Set the default precision if not specified,
6896 // or clamp the specified precision to the supported range.
6897 // For significant precision, it must be in [1, 21].
6898 // For fixed precision, it must be in [0, 20].
6899 precision = precision === undefined ? 6
6900 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
6901 : Math.max(0, Math.min(20, precision));
6902
6903 function format(value) {
6904 var valuePrefix = prefix,
6905 valueSuffix = suffix,
6906 i, n, c;
6907
6908 if (type === "c") {
6909 valueSuffix = formatType(value) + valueSuffix;
6910 value = "";
6911 } else {
6912 value = +value;
6913
6914 // Perform the initial formatting.
6915 var valueNegative = value < 0;
6916 value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
6917
6918 // Trim insignificant zeros.
6919 if (trim) value = Object(_formatTrim_js__WEBPACK_IMPORTED_MODULE_4__["default"])(value);
6920
6921 // If a negative value rounds to zero during formatting, treat as positive.
6922 if (valueNegative && +value === 0) valueNegative = false;
6923
6924 // Compute the prefix and suffix.
6925 valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
6926
6927 valueSuffix = (type === "s" ? prefixes[8 + _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__["prefixExponent"] / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
6928
6929 // Break the formatted value into the integer “value” part that can be
6930 // grouped, and fractional or exponential “suffix” part that is not.
6931 if (maybeSuffix) {
6932 i = -1, n = value.length;
6933 while (++i < n) {
6934 if (c = value.charCodeAt(i), 48 > c || c > 57) {
6935 valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
6936 value = value.slice(0, i);
6937 break;
6938 }
6939 }
6940 }
6941 }
6942
6943 // If the fill character is not "0", grouping is applied before padding.
6944 if (comma && !zero) value = group(value, Infinity);
6945
6946 // Compute the padding.
6947 var length = valuePrefix.length + value.length + valueSuffix.length,
6948 padding = length < width ? new Array(width - length + 1).join(fill) : "";
6949
6950 // If the fill character is "0", grouping is applied after padding.
6951 if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
6952
6953 // Reconstruct the final output based on the desired alignment.
6954 switch (align) {
6955 case "<": value = valuePrefix + value + valueSuffix + padding; break;
6956 case "=": value = valuePrefix + padding + value + valueSuffix; break;
6957 case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
6958 default: value = padding + valuePrefix + value + valueSuffix; break;
6959 }
6960
6961 return numerals(value);
6962 }
6963
6964 format.toString = function() {
6965 return specifier + "";
6966 };
6967
6968 return format;
6969 }
6970
6971 function formatPrefix(specifier, value) {
6972 var f = newFormat((specifier = Object(_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__["default"])(specifier), specifier.type = "f", specifier)),
6973 e = Math.max(-8, Math.min(8, Math.floor(Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) / 3))) * 3,
6974 k = Math.pow(10, -e),
6975 prefix = prefixes[8 + e / 3];
6976 return function(value) {
6977 return f(k * value) + prefix;
6978 };
6979 }
6980
6981 return {
6982 format: newFormat,
6983 formatPrefix: formatPrefix
6984 };
6985});
6986
6987
6988/***/ }),
6989
6990/***/ "./node_modules/d3-format/src/precisionFixed.js":
6991/*!******************************************************!*\
6992 !*** ./node_modules/d3-format/src/precisionFixed.js ***!
6993 \******************************************************/
6994/*! exports provided: default */
6995/***/ (function(module, __webpack_exports__, __webpack_require__) {
6996
6997"use strict";
6998__webpack_require__.r(__webpack_exports__);
6999/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ "./node_modules/d3-format/src/exponent.js");
7000
7001
7002/* harmony default export */ __webpack_exports__["default"] = (function(step) {
7003 return Math.max(0, -Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(step)));
7004});
7005
7006
7007/***/ }),
7008
7009/***/ "./node_modules/d3-format/src/precisionPrefix.js":
7010/*!*******************************************************!*\
7011 !*** ./node_modules/d3-format/src/precisionPrefix.js ***!
7012 \*******************************************************/
7013/*! exports provided: default */
7014/***/ (function(module, __webpack_exports__, __webpack_require__) {
7015
7016"use strict";
7017__webpack_require__.r(__webpack_exports__);
7018/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ "./node_modules/d3-format/src/exponent.js");
7019
7020
7021/* harmony default export */ __webpack_exports__["default"] = (function(step, value) {
7022 return Math.max(0, Math.max(-8, Math.min(8, Math.floor(Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) / 3))) * 3 - Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(step)));
7023});
7024
7025
7026/***/ }),
7027
7028/***/ "./node_modules/d3-format/src/precisionRound.js":
7029/*!******************************************************!*\
7030 !*** ./node_modules/d3-format/src/precisionRound.js ***!
7031 \******************************************************/
7032/*! exports provided: default */
7033/***/ (function(module, __webpack_exports__, __webpack_require__) {
7034
7035"use strict";
7036__webpack_require__.r(__webpack_exports__);
7037/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ "./node_modules/d3-format/src/exponent.js");
7038
7039
7040/* harmony default export */ __webpack_exports__["default"] = (function(step, max) {
7041 step = Math.abs(step), max = Math.abs(max) - step;
7042 return Math.max(0, Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(max) - Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(step)) + 1;
7043});
7044
7045
7046/***/ }),
7047
7048/***/ "./node_modules/d3-geo/src/adder.js":
7049/*!******************************************!*\
7050 !*** ./node_modules/d3-geo/src/adder.js ***!
7051 \******************************************/
7052/*! exports provided: default */
7053/***/ (function(module, __webpack_exports__, __webpack_require__) {
7054
7055"use strict";
7056__webpack_require__.r(__webpack_exports__);
7057// Adds floating point numbers with twice the normal precision.
7058// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and
7059// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)
7060// 305–363 (1997).
7061// Code adapted from GeographicLib by Charles F. F. Karney,
7062// http://geographiclib.sourceforge.net/
7063
7064/* harmony default export */ __webpack_exports__["default"] = (function() {
7065 return new Adder;
7066});
7067
7068function Adder() {
7069 this.reset();
7070}
7071
7072Adder.prototype = {
7073 constructor: Adder,
7074 reset: function() {
7075 this.s = // rounded value
7076 this.t = 0; // exact error
7077 },
7078 add: function(y) {
7079 add(temp, y, this.t);
7080 add(this, temp.s, this.s);
7081 if (this.s) this.t += temp.t;
7082 else this.s = temp.t;
7083 },
7084 valueOf: function() {
7085 return this.s;
7086 }
7087};
7088
7089var temp = new Adder;
7090
7091function add(adder, a, b) {
7092 var x = adder.s = a + b,
7093 bv = x - a,
7094 av = x - bv;
7095 adder.t = (a - av) + (b - bv);
7096}
7097
7098
7099/***/ }),
7100
7101/***/ "./node_modules/d3-geo/src/area.js":
7102/*!*****************************************!*\
7103 !*** ./node_modules/d3-geo/src/area.js ***!
7104 \*****************************************/
7105/*! exports provided: areaRingSum, areaStream, default */
7106/***/ (function(module, __webpack_exports__, __webpack_require__) {
7107
7108"use strict";
7109__webpack_require__.r(__webpack_exports__);
7110/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areaRingSum", function() { return areaRingSum; });
7111/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areaStream", function() { return areaStream; });
7112/* harmony import */ var _adder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder.js */ "./node_modules/d3-geo/src/adder.js");
7113/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
7114/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop.js */ "./node_modules/d3-geo/src/noop.js");
7115/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
7116
7117
7118
7119
7120
7121var areaRingSum = Object(_adder_js__WEBPACK_IMPORTED_MODULE_0__["default"])();
7122
7123var areaSum = Object(_adder_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
7124 lambda00,
7125 phi00,
7126 lambda0,
7127 cosPhi0,
7128 sinPhi0;
7129
7130var areaStream = {
7131 point: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
7132 lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
7133 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
7134 polygonStart: function() {
7135 areaRingSum.reset();
7136 areaStream.lineStart = areaRingStart;
7137 areaStream.lineEnd = areaRingEnd;
7138 },
7139 polygonEnd: function() {
7140 var areaRing = +areaRingSum;
7141 areaSum.add(areaRing < 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__["tau"] + areaRing : areaRing);
7142 this.lineStart = this.lineEnd = this.point = _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"];
7143 },
7144 sphere: function() {
7145 areaSum.add(_math_js__WEBPACK_IMPORTED_MODULE_1__["tau"]);
7146 }
7147};
7148
7149function areaRingStart() {
7150 areaStream.point = areaPointFirst;
7151}
7152
7153function areaRingEnd() {
7154 areaPoint(lambda00, phi00);
7155}
7156
7157function areaPointFirst(lambda, phi) {
7158 areaStream.point = areaPoint;
7159 lambda00 = lambda, phi00 = phi;
7160 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"];
7161 lambda0 = lambda, cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi = phi / 2 + _math_js__WEBPACK_IMPORTED_MODULE_1__["quarterPi"]), sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi);
7162}
7163
7164function areaPoint(lambda, phi) {
7165 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"];
7166 phi = phi / 2 + _math_js__WEBPACK_IMPORTED_MODULE_1__["quarterPi"]; // half the angular distance from south pole
7167
7168 // Spherical excess E for a spherical triangle with vertices: south pole,
7169 // previous point, current point. Uses a formula derived from Cagnoli’s
7170 // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
7171 var dLambda = lambda - lambda0,
7172 sdLambda = dLambda >= 0 ? 1 : -1,
7173 adLambda = sdLambda * dLambda,
7174 cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
7175 sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
7176 k = sinPhi0 * sinPhi,
7177 u = cosPhi0 * cosPhi + k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(adLambda),
7178 v = k * sdLambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(adLambda);
7179 areaRingSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["atan2"])(v, u));
7180
7181 // Advance the previous points.
7182 lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;
7183}
7184
7185/* harmony default export */ __webpack_exports__["default"] = (function(object) {
7186 areaSum.reset();
7187 Object(_stream_js__WEBPACK_IMPORTED_MODULE_3__["default"])(object, areaStream);
7188 return areaSum * 2;
7189});
7190
7191
7192/***/ }),
7193
7194/***/ "./node_modules/d3-geo/src/bounds.js":
7195/*!*******************************************!*\
7196 !*** ./node_modules/d3-geo/src/bounds.js ***!
7197 \*******************************************/
7198/*! exports provided: default */
7199/***/ (function(module, __webpack_exports__, __webpack_require__) {
7200
7201"use strict";
7202__webpack_require__.r(__webpack_exports__);
7203/* harmony import */ var _adder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder.js */ "./node_modules/d3-geo/src/adder.js");
7204/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-geo/src/area.js");
7205/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
7206/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
7207/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
7208
7209
7210
7211
7212
7213
7214var lambda0, phi0, lambda1, phi1, // bounds
7215 lambda2, // previous lambda-coordinate
7216 lambda00, phi00, // first point
7217 p0, // previous 3D point
7218 deltaSum = Object(_adder_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
7219 ranges,
7220 range;
7221
7222var boundsStream = {
7223 point: boundsPoint,
7224 lineStart: boundsLineStart,
7225 lineEnd: boundsLineEnd,
7226 polygonStart: function() {
7227 boundsStream.point = boundsRingPoint;
7228 boundsStream.lineStart = boundsRingStart;
7229 boundsStream.lineEnd = boundsRingEnd;
7230 deltaSum.reset();
7231 _area_js__WEBPACK_IMPORTED_MODULE_1__["areaStream"].polygonStart();
7232 },
7233 polygonEnd: function() {
7234 _area_js__WEBPACK_IMPORTED_MODULE_1__["areaStream"].polygonEnd();
7235 boundsStream.point = boundsPoint;
7236 boundsStream.lineStart = boundsLineStart;
7237 boundsStream.lineEnd = boundsLineEnd;
7238 if (_area_js__WEBPACK_IMPORTED_MODULE_1__["areaRingSum"] < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);
7239 else if (deltaSum > _math_js__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) phi1 = 90;
7240 else if (deltaSum < -_math_js__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) phi0 = -90;
7241 range[0] = lambda0, range[1] = lambda1;
7242 },
7243 sphere: function() {
7244 lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);
7245 }
7246};
7247
7248function boundsPoint(lambda, phi) {
7249 ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
7250 if (phi < phi0) phi0 = phi;
7251 if (phi > phi1) phi1 = phi;
7252}
7253
7254function linePoint(lambda, phi) {
7255 var p = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__["cartesian"])([lambda * _math_js__WEBPACK_IMPORTED_MODULE_3__["radians"], phi * _math_js__WEBPACK_IMPORTED_MODULE_3__["radians"]]);
7256 if (p0) {
7257 var normal = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__["cartesianCross"])(p0, p),
7258 equatorial = [normal[1], -normal[0], 0],
7259 inflection = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__["cartesianCross"])(equatorial, normal);
7260 Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__["cartesianNormalizeInPlace"])(inflection);
7261 inflection = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__["spherical"])(inflection);
7262 var delta = lambda - lambda2,
7263 sign = delta > 0 ? 1 : -1,
7264 lambdai = inflection[0] * _math_js__WEBPACK_IMPORTED_MODULE_3__["degrees"] * sign,
7265 phii,
7266 antimeridian = Object(_math_js__WEBPACK_IMPORTED_MODULE_3__["abs"])(delta) > 180;
7267 if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
7268 phii = inflection[1] * _math_js__WEBPACK_IMPORTED_MODULE_3__["degrees"];
7269 if (phii > phi1) phi1 = phii;
7270 } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
7271 phii = -inflection[1] * _math_js__WEBPACK_IMPORTED_MODULE_3__["degrees"];
7272 if (phii < phi0) phi0 = phii;
7273 } else {
7274 if (phi < phi0) phi0 = phi;
7275 if (phi > phi1) phi1 = phi;
7276 }
7277 if (antimeridian) {
7278 if (lambda < lambda2) {
7279 if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
7280 } else {
7281 if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
7282 }
7283 } else {
7284 if (lambda1 >= lambda0) {
7285 if (lambda < lambda0) lambda0 = lambda;
7286 if (lambda > lambda1) lambda1 = lambda;
7287 } else {
7288 if (lambda > lambda2) {
7289 if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
7290 } else {
7291 if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
7292 }
7293 }
7294 }
7295 } else {
7296 ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
7297 }
7298 if (phi < phi0) phi0 = phi;
7299 if (phi > phi1) phi1 = phi;
7300 p0 = p, lambda2 = lambda;
7301}
7302
7303function boundsLineStart() {
7304 boundsStream.point = linePoint;
7305}
7306
7307function boundsLineEnd() {
7308 range[0] = lambda0, range[1] = lambda1;
7309 boundsStream.point = boundsPoint;
7310 p0 = null;
7311}
7312
7313function boundsRingPoint(lambda, phi) {
7314 if (p0) {
7315 var delta = lambda - lambda2;
7316 deltaSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_3__["abs"])(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
7317 } else {
7318 lambda00 = lambda, phi00 = phi;
7319 }
7320 _area_js__WEBPACK_IMPORTED_MODULE_1__["areaStream"].point(lambda, phi);
7321 linePoint(lambda, phi);
7322}
7323
7324function boundsRingStart() {
7325 _area_js__WEBPACK_IMPORTED_MODULE_1__["areaStream"].lineStart();
7326}
7327
7328function boundsRingEnd() {
7329 boundsRingPoint(lambda00, phi00);
7330 _area_js__WEBPACK_IMPORTED_MODULE_1__["areaStream"].lineEnd();
7331 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_3__["abs"])(deltaSum) > _math_js__WEBPACK_IMPORTED_MODULE_3__["epsilon"]) lambda0 = -(lambda1 = 180);
7332 range[0] = lambda0, range[1] = lambda1;
7333 p0 = null;
7334}
7335
7336// Finds the left-right distance between two longitudes.
7337// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
7338// the distance between ±180° to be 360°.
7339function angle(lambda0, lambda1) {
7340 return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
7341}
7342
7343function rangeCompare(a, b) {
7344 return a[0] - b[0];
7345}
7346
7347function rangeContains(range, x) {
7348 return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
7349}
7350
7351/* harmony default export */ __webpack_exports__["default"] = (function(feature) {
7352 var i, n, a, b, merged, deltaMax, delta;
7353
7354 phi1 = lambda1 = -(lambda0 = phi0 = Infinity);
7355 ranges = [];
7356 Object(_stream_js__WEBPACK_IMPORTED_MODULE_4__["default"])(feature, boundsStream);
7357
7358 // First, sort ranges by their minimum longitudes.
7359 if (n = ranges.length) {
7360 ranges.sort(rangeCompare);
7361
7362 // Then, merge any ranges that overlap.
7363 for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
7364 b = ranges[i];
7365 if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
7366 if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
7367 if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
7368 } else {
7369 merged.push(a = b);
7370 }
7371 }
7372
7373 // Finally, find the largest gap between the merged ranges.
7374 // The final bounding box will be the inverse of this gap.
7375 for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
7376 b = merged[i];
7377 if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];
7378 }
7379 }
7380
7381 ranges = range = null;
7382
7383 return lambda0 === Infinity || phi0 === Infinity
7384 ? [[NaN, NaN], [NaN, NaN]]
7385 : [[lambda0, phi0], [lambda1, phi1]];
7386});
7387
7388
7389/***/ }),
7390
7391/***/ "./node_modules/d3-geo/src/cartesian.js":
7392/*!**********************************************!*\
7393 !*** ./node_modules/d3-geo/src/cartesian.js ***!
7394 \**********************************************/
7395/*! exports provided: spherical, cartesian, cartesianDot, cartesianCross, cartesianAddInPlace, cartesianScale, cartesianNormalizeInPlace */
7396/***/ (function(module, __webpack_exports__, __webpack_require__) {
7397
7398"use strict";
7399__webpack_require__.r(__webpack_exports__);
7400/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spherical", function() { return spherical; });
7401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesian", function() { return cartesian; });
7402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianDot", function() { return cartesianDot; });
7403/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianCross", function() { return cartesianCross; });
7404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianAddInPlace", function() { return cartesianAddInPlace; });
7405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianScale", function() { return cartesianScale; });
7406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cartesianNormalizeInPlace", function() { return cartesianNormalizeInPlace; });
7407/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
7408
7409
7410function spherical(cartesian) {
7411 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(cartesian[1], cartesian[0]), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"])(cartesian[2])];
7412}
7413
7414function cartesian(spherical) {
7415 var lambda = spherical[0], phi = spherical[1], cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
7416 return [cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda), cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi)];
7417}
7418
7419function cartesianDot(a, b) {
7420 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
7421}
7422
7423function cartesianCross(a, b) {
7424 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]];
7425}
7426
7427// TODO return a
7428function cartesianAddInPlace(a, b) {
7429 a[0] += b[0], a[1] += b[1], a[2] += b[2];
7430}
7431
7432function cartesianScale(vector, k) {
7433 return [vector[0] * k, vector[1] * k, vector[2] * k];
7434}
7435
7436// TODO return d
7437function cartesianNormalizeInPlace(d) {
7438 var l = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
7439 d[0] /= l, d[1] /= l, d[2] /= l;
7440}
7441
7442
7443/***/ }),
7444
7445/***/ "./node_modules/d3-geo/src/centroid.js":
7446/*!*********************************************!*\
7447 !*** ./node_modules/d3-geo/src/centroid.js ***!
7448 \*********************************************/
7449/*! exports provided: default */
7450/***/ (function(module, __webpack_exports__, __webpack_require__) {
7451
7452"use strict";
7453__webpack_require__.r(__webpack_exports__);
7454/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
7455/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noop.js */ "./node_modules/d3-geo/src/noop.js");
7456/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
7457
7458
7459
7460
7461var W0, W1,
7462 X0, Y0, Z0,
7463 X1, Y1, Z1,
7464 X2, Y2, Z2,
7465 lambda00, phi00, // first point
7466 x0, y0, z0; // previous point
7467
7468var centroidStream = {
7469 sphere: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
7470 point: centroidPoint,
7471 lineStart: centroidLineStart,
7472 lineEnd: centroidLineEnd,
7473 polygonStart: function() {
7474 centroidStream.lineStart = centroidRingStart;
7475 centroidStream.lineEnd = centroidRingEnd;
7476 },
7477 polygonEnd: function() {
7478 centroidStream.lineStart = centroidLineStart;
7479 centroidStream.lineEnd = centroidLineEnd;
7480 }
7481};
7482
7483// Arithmetic mean of Cartesian vectors.
7484function centroidPoint(lambda, phi) {
7485 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"];
7486 var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
7487 centroidPointCartesian(cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda), cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi));
7488}
7489
7490function centroidPointCartesian(x, y, z) {
7491 ++W0;
7492 X0 += (x - X0) / W0;
7493 Y0 += (y - Y0) / W0;
7494 Z0 += (z - Z0) / W0;
7495}
7496
7497function centroidLineStart() {
7498 centroidStream.point = centroidLinePointFirst;
7499}
7500
7501function centroidLinePointFirst(lambda, phi) {
7502 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"];
7503 var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
7504 x0 = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda);
7505 y0 = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda);
7506 z0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi);
7507 centroidStream.point = centroidLinePoint;
7508 centroidPointCartesian(x0, y0, z0);
7509}
7510
7511function centroidLinePoint(lambda, phi) {
7512 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"];
7513 var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi),
7514 x = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda),
7515 y = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda),
7516 z = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi),
7517 w = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(Object(_math_js__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);
7518 W1 += w;
7519 X1 += w * (x0 + (x0 = x));
7520 Y1 += w * (y0 + (y0 = y));
7521 Z1 += w * (z0 + (z0 = z));
7522 centroidPointCartesian(x0, y0, z0);
7523}
7524
7525function centroidLineEnd() {
7526 centroidStream.point = centroidPoint;
7527}
7528
7529// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
7530// J. Applied Mechanics 42, 239 (1975).
7531function centroidRingStart() {
7532 centroidStream.point = centroidRingPointFirst;
7533}
7534
7535function centroidRingEnd() {
7536 centroidRingPoint(lambda00, phi00);
7537 centroidStream.point = centroidPoint;
7538}
7539
7540function centroidRingPointFirst(lambda, phi) {
7541 lambda00 = lambda, phi00 = phi;
7542 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"];
7543 centroidStream.point = centroidRingPoint;
7544 var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi);
7545 x0 = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda);
7546 y0 = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda);
7547 z0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi);
7548 centroidPointCartesian(x0, y0, z0);
7549}
7550
7551function centroidRingPoint(lambda, phi) {
7552 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"];
7553 var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi),
7554 x = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(lambda),
7555 y = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(lambda),
7556 z = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi),
7557 cx = y0 * z - z0 * y,
7558 cy = z0 * x - x0 * z,
7559 cz = x0 * y - y0 * x,
7560 m = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(cx * cx + cy * cy + cz * cz),
7561 w = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"])(m), // line weight = angle
7562 v = m && -w / m; // area weight multiplier
7563 X2 += v * cx;
7564 Y2 += v * cy;
7565 Z2 += v * cz;
7566 W1 += w;
7567 X1 += w * (x0 + (x0 = x));
7568 Y1 += w * (y0 + (y0 = y));
7569 Z1 += w * (z0 + (z0 = z));
7570 centroidPointCartesian(x0, y0, z0);
7571}
7572
7573/* harmony default export */ __webpack_exports__["default"] = (function(object) {
7574 W0 = W1 =
7575 X0 = Y0 = Z0 =
7576 X1 = Y1 = Z1 =
7577 X2 = Y2 = Z2 = 0;
7578 Object(_stream_js__WEBPACK_IMPORTED_MODULE_2__["default"])(object, centroidStream);
7579
7580 var x = X2,
7581 y = Y2,
7582 z = Z2,
7583 m = x * x + y * y + z * z;
7584
7585 // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
7586 if (m < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon2"]) {
7587 x = X1, y = Y1, z = Z1;
7588 // If the feature has zero length, fall back to arithmetic mean of point vectors.
7589 if (W1 < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) x = X0, y = Y0, z = Z0;
7590 m = x * x + y * y + z * z;
7591 // If the feature still has an undefined ccentroid, then return.
7592 if (m < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon2"]) return [NaN, NaN];
7593 }
7594
7595 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(y, x) * _math_js__WEBPACK_IMPORTED_MODULE_0__["degrees"], Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"])(z / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(m)) * _math_js__WEBPACK_IMPORTED_MODULE_0__["degrees"]];
7596});
7597
7598
7599/***/ }),
7600
7601/***/ "./node_modules/d3-geo/src/circle.js":
7602/*!*******************************************!*\
7603 !*** ./node_modules/d3-geo/src/circle.js ***!
7604 \*******************************************/
7605/*! exports provided: circleStream, default */
7606/***/ (function(module, __webpack_exports__, __webpack_require__) {
7607
7608"use strict";
7609__webpack_require__.r(__webpack_exports__);
7610/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circleStream", function() { return circleStream; });
7611/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
7612/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-geo/src/constant.js");
7613/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
7614/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rotation.js */ "./node_modules/d3-geo/src/rotation.js");
7615
7616
7617
7618
7619
7620// Generates a circle centered at [0°, 0°], with a given radius and precision.
7621function circleStream(stream, radius, delta, direction, t0, t1) {
7622 if (!delta) return;
7623 var cosRadius = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(radius),
7624 sinRadius = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(radius),
7625 step = direction * delta;
7626 if (t0 == null) {
7627 t0 = radius + direction * _math_js__WEBPACK_IMPORTED_MODULE_2__["tau"];
7628 t1 = radius - step / 2;
7629 } else {
7630 t0 = circleRadius(cosRadius, t0);
7631 t1 = circleRadius(cosRadius, t1);
7632 if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * _math_js__WEBPACK_IMPORTED_MODULE_2__["tau"];
7633 }
7634 for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
7635 point = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["spherical"])([cosRadius, -sinRadius * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(t), -sinRadius * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(t)]);
7636 stream.point(point[0], point[1]);
7637 }
7638}
7639
7640// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
7641function circleRadius(cosRadius, point) {
7642 point = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(point), point[0] -= cosRadius;
7643 Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianNormalizeInPlace"])(point);
7644 var radius = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["acos"])(-point[1]);
7645 return ((-point[2] < 0 ? -radius : radius) + _math_js__WEBPACK_IMPORTED_MODULE_2__["tau"] - _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) % _math_js__WEBPACK_IMPORTED_MODULE_2__["tau"];
7646}
7647
7648/* harmony default export */ __webpack_exports__["default"] = (function() {
7649 var center = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])([0, 0]),
7650 radius = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(90),
7651 precision = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(6),
7652 ring,
7653 rotate,
7654 stream = {point: point};
7655
7656 function point(x, y) {
7657 ring.push(x = rotate(x, y));
7658 x[0] *= _math_js__WEBPACK_IMPORTED_MODULE_2__["degrees"], x[1] *= _math_js__WEBPACK_IMPORTED_MODULE_2__["degrees"];
7659 }
7660
7661 function circle() {
7662 var c = center.apply(this, arguments),
7663 r = radius.apply(this, arguments) * _math_js__WEBPACK_IMPORTED_MODULE_2__["radians"],
7664 p = precision.apply(this, arguments) * _math_js__WEBPACK_IMPORTED_MODULE_2__["radians"];
7665 ring = [];
7666 rotate = Object(_rotation_js__WEBPACK_IMPORTED_MODULE_3__["rotateRadians"])(-c[0] * _math_js__WEBPACK_IMPORTED_MODULE_2__["radians"], -c[1] * _math_js__WEBPACK_IMPORTED_MODULE_2__["radians"], 0).invert;
7667 circleStream(stream, r, p, 1);
7668 c = {type: "Polygon", coordinates: [ring]};
7669 ring = rotate = null;
7670 return c;
7671 }
7672
7673 circle.center = function(_) {
7674 return arguments.length ? (center = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])([+_[0], +_[1]]), circle) : center;
7675 };
7676
7677 circle.radius = function(_) {
7678 return arguments.length ? (radius = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), circle) : radius;
7679 };
7680
7681 circle.precision = function(_) {
7682 return arguments.length ? (precision = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), circle) : precision;
7683 };
7684
7685 return circle;
7686});
7687
7688
7689/***/ }),
7690
7691/***/ "./node_modules/d3-geo/src/clip/antimeridian.js":
7692/*!******************************************************!*\
7693 !*** ./node_modules/d3-geo/src/clip/antimeridian.js ***!
7694 \******************************************************/
7695/*! exports provided: default */
7696/***/ (function(module, __webpack_exports__, __webpack_require__) {
7697
7698"use strict";
7699__webpack_require__.r(__webpack_exports__);
7700/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/clip/index.js");
7701/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
7702
7703
7704
7705/* harmony default export */ __webpack_exports__["default"] = (Object(_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(
7706 function() { return true; },
7707 clipAntimeridianLine,
7708 clipAntimeridianInterpolate,
7709 [-_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"], -_math_js__WEBPACK_IMPORTED_MODULE_1__["halfPi"]]
7710));
7711
7712// Takes a line and cuts into visible segments. Return values: 0 - there were
7713// intersections or the line was empty; 1 - no intersections; 2 - there were
7714// intersections, and the first and last segments should be rejoined.
7715function clipAntimeridianLine(stream) {
7716 var lambda0 = NaN,
7717 phi0 = NaN,
7718 sign0 = NaN,
7719 clean; // no intersections
7720
7721 return {
7722 lineStart: function() {
7723 stream.lineStart();
7724 clean = 1;
7725 },
7726 point: function(lambda1, phi1) {
7727 var sign1 = lambda1 > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__["pi"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"],
7728 delta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda1 - lambda0);
7729 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(delta - _math_js__WEBPACK_IMPORTED_MODULE_1__["pi"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) { // line crosses a pole
7730 stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__["halfPi"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__["halfPi"]);
7731 stream.point(sign0, phi0);
7732 stream.lineEnd();
7733 stream.lineStart();
7734 stream.point(sign1, phi0);
7735 stream.point(lambda1, phi0);
7736 clean = 0;
7737 } else if (sign0 !== sign1 && delta >= _math_js__WEBPACK_IMPORTED_MODULE_1__["pi"]) { // line crosses antimeridian
7738 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda0 - sign0) < _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) lambda0 -= sign0 * _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]; // handle degeneracies
7739 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda1 - sign1) < _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) lambda1 -= sign1 * _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"];
7740 phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
7741 stream.point(sign0, phi0);
7742 stream.lineEnd();
7743 stream.lineStart();
7744 stream.point(sign1, phi0);
7745 clean = 0;
7746 }
7747 stream.point(lambda0 = lambda1, phi0 = phi1);
7748 sign0 = sign1;
7749 },
7750 lineEnd: function() {
7751 stream.lineEnd();
7752 lambda0 = phi0 = NaN;
7753 },
7754 clean: function() {
7755 return 2 - clean; // if intersections, rejoin first and last segments
7756 }
7757 };
7758}
7759
7760function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
7761 var cosPhi0,
7762 cosPhi1,
7763 sinLambda0Lambda1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda0 - lambda1);
7764 return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(sinLambda0Lambda1) > _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]
7765 ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["atan"])((Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi0) * (cosPhi1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi1)) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda1)
7766 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi1) * (cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi0)) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda0))
7767 / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
7768 : (phi0 + phi1) / 2;
7769}
7770
7771function clipAntimeridianInterpolate(from, to, direction, stream) {
7772 var phi;
7773 if (from == null) {
7774 phi = direction * _math_js__WEBPACK_IMPORTED_MODULE_1__["halfPi"];
7775 stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7776 stream.point(0, phi);
7777 stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7778 stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"], 0);
7779 stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"], -phi);
7780 stream.point(0, -phi);
7781 stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"], -phi);
7782 stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"], 0);
7783 stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"], phi);
7784 } else if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(from[0] - to[0]) > _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) {
7785 var lambda = from[0] < to[0] ? _math_js__WEBPACK_IMPORTED_MODULE_1__["pi"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"];
7786 phi = direction * lambda / 2;
7787 stream.point(-lambda, phi);
7788 stream.point(0, phi);
7789 stream.point(lambda, phi);
7790 } else {
7791 stream.point(to[0], to[1]);
7792 }
7793}
7794
7795
7796/***/ }),
7797
7798/***/ "./node_modules/d3-geo/src/clip/buffer.js":
7799/*!************************************************!*\
7800 !*** ./node_modules/d3-geo/src/clip/buffer.js ***!
7801 \************************************************/
7802/*! exports provided: default */
7803/***/ (function(module, __webpack_exports__, __webpack_require__) {
7804
7805"use strict";
7806__webpack_require__.r(__webpack_exports__);
7807/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
7808
7809
7810/* harmony default export */ __webpack_exports__["default"] = (function() {
7811 var lines = [],
7812 line;
7813 return {
7814 point: function(x, y) {
7815 line.push([x, y]);
7816 },
7817 lineStart: function() {
7818 lines.push(line = []);
7819 },
7820 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
7821 rejoin: function() {
7822 if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
7823 },
7824 result: function() {
7825 var result = lines;
7826 lines = [];
7827 line = null;
7828 return result;
7829 }
7830 };
7831});
7832
7833
7834/***/ }),
7835
7836/***/ "./node_modules/d3-geo/src/clip/circle.js":
7837/*!************************************************!*\
7838 !*** ./node_modules/d3-geo/src/clip/circle.js ***!
7839 \************************************************/
7840/*! exports provided: default */
7841/***/ (function(module, __webpack_exports__, __webpack_require__) {
7842
7843"use strict";
7844__webpack_require__.r(__webpack_exports__);
7845/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
7846/* harmony import */ var _circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../circle.js */ "./node_modules/d3-geo/src/circle.js");
7847/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
7848/* harmony import */ var _pointEqual_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../pointEqual.js */ "./node_modules/d3-geo/src/pointEqual.js");
7849/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/clip/index.js");
7850
7851
7852
7853
7854
7855
7856/* harmony default export */ __webpack_exports__["default"] = (function(radius) {
7857 var cr = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(radius),
7858 delta = 6 * _math_js__WEBPACK_IMPORTED_MODULE_2__["radians"],
7859 smallRadius = cr > 0,
7860 notHemisphere = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["abs"])(cr) > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]; // TODO optimise for this common case
7861
7862 function interpolate(from, to, direction, stream) {
7863 Object(_circle_js__WEBPACK_IMPORTED_MODULE_1__["circleStream"])(stream, radius, delta, direction, from, to);
7864 }
7865
7866 function visible(lambda, phi) {
7867 return Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(lambda) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi) > cr;
7868 }
7869
7870 // Takes a line and cuts into visible segments. Return values used for polygon
7871 // clipping: 0 - there were intersections or the line was empty; 1 - no
7872 // intersections 2 - there were intersections, and the first and last segments
7873 // should be rejoined.
7874 function clipLine(stream) {
7875 var point0, // previous point
7876 c0, // code for previous point
7877 v0, // visibility of previous point
7878 v00, // visibility of first point
7879 clean; // no intersections
7880 return {
7881 lineStart: function() {
7882 v00 = v0 = false;
7883 clean = 1;
7884 },
7885 point: function(lambda, phi) {
7886 var point1 = [lambda, phi],
7887 point2,
7888 v = visible(lambda, phi),
7889 c = smallRadius
7890 ? v ? 0 : code(lambda, phi)
7891 : v ? code(lambda + (lambda < 0 ? _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"] : -_math_js__WEBPACK_IMPORTED_MODULE_2__["pi"]), phi) : 0;
7892 if (!point0 && (v00 = v0 = v)) stream.lineStart();
7893 // Handle degeneracies.
7894 // TODO ignore if not clipping polygons.
7895 if (v !== v0) {
7896 point2 = intersect(point0, point1);
7897 if (!point2 || Object(_pointEqual_js__WEBPACK_IMPORTED_MODULE_3__["default"])(point0, point2) || Object(_pointEqual_js__WEBPACK_IMPORTED_MODULE_3__["default"])(point1, point2)) {
7898 point1[0] += _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7899 point1[1] += _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
7900 v = visible(point1[0], point1[1]);
7901 }
7902 }
7903 if (v !== v0) {
7904 clean = 0;
7905 if (v) {
7906 // outside going in
7907 stream.lineStart();
7908 point2 = intersect(point1, point0);
7909 stream.point(point2[0], point2[1]);
7910 } else {
7911 // inside going out
7912 point2 = intersect(point0, point1);
7913 stream.point(point2[0], point2[1]);
7914 stream.lineEnd();
7915 }
7916 point0 = point2;
7917 } else if (notHemisphere && point0 && smallRadius ^ v) {
7918 var t;
7919 // If the codes for two points are different, or are both zero,
7920 // and there this segment intersects with the small circle.
7921 if (!(c & c0) && (t = intersect(point1, point0, true))) {
7922 clean = 0;
7923 if (smallRadius) {
7924 stream.lineStart();
7925 stream.point(t[0][0], t[0][1]);
7926 stream.point(t[1][0], t[1][1]);
7927 stream.lineEnd();
7928 } else {
7929 stream.point(t[1][0], t[1][1]);
7930 stream.lineEnd();
7931 stream.lineStart();
7932 stream.point(t[0][0], t[0][1]);
7933 }
7934 }
7935 }
7936 if (v && (!point0 || !Object(_pointEqual_js__WEBPACK_IMPORTED_MODULE_3__["default"])(point0, point1))) {
7937 stream.point(point1[0], point1[1]);
7938 }
7939 point0 = point1, v0 = v, c0 = c;
7940 },
7941 lineEnd: function() {
7942 if (v0) stream.lineEnd();
7943 point0 = null;
7944 },
7945 // Rejoin first and last segments if there were intersections and the first
7946 // and last points were visible.
7947 clean: function() {
7948 return clean | ((v00 && v0) << 1);
7949 }
7950 };
7951 }
7952
7953 // Intersects the great circle between a and b with the clip circle.
7954 function intersect(a, b, two) {
7955 var pa = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(a),
7956 pb = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesian"])(b);
7957
7958 // We have two planes, n1.p = d1 and n2.p = d2.
7959 // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
7960 var n1 = [1, 0, 0], // normal
7961 n2 = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianCross"])(pa, pb),
7962 n2n2 = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(n2, n2),
7963 n1n2 = n2[0], // cartesianDot(n1, n2),
7964 determinant = n2n2 - n1n2 * n1n2;
7965
7966 // Two polar points.
7967 if (!determinant) return !two && a;
7968
7969 var c1 = cr * n2n2 / determinant,
7970 c2 = -cr * n1n2 / determinant,
7971 n1xn2 = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianCross"])(n1, n2),
7972 A = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(n1, c1),
7973 B = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(n2, c2);
7974 Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(A, B);
7975
7976 // Solve |p(t)|^2 = 1.
7977 var u = n1xn2,
7978 w = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(A, u),
7979 uu = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(u, u),
7980 t2 = w * w - uu * (Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianDot"])(A, A) - 1);
7981
7982 if (t2 < 0) return;
7983
7984 var t = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(t2),
7985 q = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(u, (-w - t) / uu);
7986 Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(q, A);
7987 q = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["spherical"])(q);
7988
7989 if (!two) return q;
7990
7991 // Two intersection points.
7992 var lambda0 = a[0],
7993 lambda1 = b[0],
7994 phi0 = a[1],
7995 phi1 = b[1],
7996 z;
7997
7998 if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;
7999
8000 var delta = lambda1 - lambda0,
8001 polar = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["abs"])(delta - _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"]) < _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"],
8002 meridian = polar || delta < _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
8003
8004 if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;
8005
8006 // Check that the first point is between a and b.
8007 if (meridian
8008 ? polar
8009 ? phi0 + phi1 > 0 ^ q[1] < (Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["abs"])(q[0] - lambda0) < _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"] ? phi0 : phi1)
8010 : phi0 <= q[1] && q[1] <= phi1
8011 : delta > _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"] ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
8012 var q1 = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianScale"])(u, (-w + t) / uu);
8013 Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesianAddInPlace"])(q1, A);
8014 return [q, Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["spherical"])(q1)];
8015 }
8016 }
8017
8018 // Generates a 4-bit vector representing the location of a point relative to
8019 // the small circle's bounding box.
8020 function code(lambda, phi) {
8021 var r = smallRadius ? radius : _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"] - radius,
8022 code = 0;
8023 if (lambda < -r) code |= 1; // left
8024 else if (lambda > r) code |= 2; // right
8025 if (phi < -r) code |= 4; // below
8026 else if (phi > r) code |= 8; // above
8027 return code;
8028 }
8029
8030 return Object(_index_js__WEBPACK_IMPORTED_MODULE_4__["default"])(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-_math_js__WEBPACK_IMPORTED_MODULE_2__["pi"], radius - _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"]]);
8031});
8032
8033
8034/***/ }),
8035
8036/***/ "./node_modules/d3-geo/src/clip/extent.js":
8037/*!************************************************!*\
8038 !*** ./node_modules/d3-geo/src/clip/extent.js ***!
8039 \************************************************/
8040/*! exports provided: default */
8041/***/ (function(module, __webpack_exports__, __webpack_require__) {
8042
8043"use strict";
8044__webpack_require__.r(__webpack_exports__);
8045/* harmony import */ var _rectangle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rectangle.js */ "./node_modules/d3-geo/src/clip/rectangle.js");
8046
8047
8048/* harmony default export */ __webpack_exports__["default"] = (function() {
8049 var x0 = 0,
8050 y0 = 0,
8051 x1 = 960,
8052 y1 = 500,
8053 cache,
8054 cacheStream,
8055 clip;
8056
8057 return clip = {
8058 stream: function(stream) {
8059 return cache && cacheStream === stream ? cache : cache = Object(_rectangle_js__WEBPACK_IMPORTED_MODULE_0__["default"])(x0, y0, x1, y1)(cacheStream = stream);
8060 },
8061 extent: function(_) {
8062 return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
8063 }
8064 };
8065});
8066
8067
8068/***/ }),
8069
8070/***/ "./node_modules/d3-geo/src/clip/index.js":
8071/*!***********************************************!*\
8072 !*** ./node_modules/d3-geo/src/clip/index.js ***!
8073 \***********************************************/
8074/*! exports provided: default */
8075/***/ (function(module, __webpack_exports__, __webpack_require__) {
8076
8077"use strict";
8078__webpack_require__.r(__webpack_exports__);
8079/* harmony import */ var _buffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./buffer.js */ "./node_modules/d3-geo/src/clip/buffer.js");
8080/* harmony import */ var _rejoin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rejoin.js */ "./node_modules/d3-geo/src/clip/rejoin.js");
8081/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
8082/* harmony import */ var _polygonContains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../polygonContains.js */ "./node_modules/d3-geo/src/polygonContains.js");
8083/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
8084
8085
8086
8087
8088
8089
8090/* harmony default export */ __webpack_exports__["default"] = (function(pointVisible, clipLine, interpolate, start) {
8091 return function(sink) {
8092 var line = clipLine(sink),
8093 ringBuffer = Object(_buffer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
8094 ringSink = clipLine(ringBuffer),
8095 polygonStarted = false,
8096 polygon,
8097 segments,
8098 ring;
8099
8100 var clip = {
8101 point: point,
8102 lineStart: lineStart,
8103 lineEnd: lineEnd,
8104 polygonStart: function() {
8105 clip.point = pointRing;
8106 clip.lineStart = ringStart;
8107 clip.lineEnd = ringEnd;
8108 segments = [];
8109 polygon = [];
8110 },
8111 polygonEnd: function() {
8112 clip.point = point;
8113 clip.lineStart = lineStart;
8114 clip.lineEnd = lineEnd;
8115 segments = Object(d3_array__WEBPACK_IMPORTED_MODULE_4__["merge"])(segments);
8116 var startInside = Object(_polygonContains_js__WEBPACK_IMPORTED_MODULE_3__["default"])(polygon, start);
8117 if (segments.length) {
8118 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
8119 Object(_rejoin_js__WEBPACK_IMPORTED_MODULE_1__["default"])(segments, compareIntersection, startInside, interpolate, sink);
8120 } else if (startInside) {
8121 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
8122 sink.lineStart();
8123 interpolate(null, null, 1, sink);
8124 sink.lineEnd();
8125 }
8126 if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
8127 segments = polygon = null;
8128 },
8129 sphere: function() {
8130 sink.polygonStart();
8131 sink.lineStart();
8132 interpolate(null, null, 1, sink);
8133 sink.lineEnd();
8134 sink.polygonEnd();
8135 }
8136 };
8137
8138 function point(lambda, phi) {
8139 if (pointVisible(lambda, phi)) sink.point(lambda, phi);
8140 }
8141
8142 function pointLine(lambda, phi) {
8143 line.point(lambda, phi);
8144 }
8145
8146 function lineStart() {
8147 clip.point = pointLine;
8148 line.lineStart();
8149 }
8150
8151 function lineEnd() {
8152 clip.point = point;
8153 line.lineEnd();
8154 }
8155
8156 function pointRing(lambda, phi) {
8157 ring.push([lambda, phi]);
8158 ringSink.point(lambda, phi);
8159 }
8160
8161 function ringStart() {
8162 ringSink.lineStart();
8163 ring = [];
8164 }
8165
8166 function ringEnd() {
8167 pointRing(ring[0][0], ring[0][1]);
8168 ringSink.lineEnd();
8169
8170 var clean = ringSink.clean(),
8171 ringSegments = ringBuffer.result(),
8172 i, n = ringSegments.length, m,
8173 segment,
8174 point;
8175
8176 ring.pop();
8177 polygon.push(ring);
8178 ring = null;
8179
8180 if (!n) return;
8181
8182 // No intersections.
8183 if (clean & 1) {
8184 segment = ringSegments[0];
8185 if ((m = segment.length - 1) > 0) {
8186 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
8187 sink.lineStart();
8188 for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
8189 sink.lineEnd();
8190 }
8191 return;
8192 }
8193
8194 // Rejoin connected segments.
8195 // TODO reuse ringBuffer.rejoin()?
8196 if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
8197
8198 segments.push(ringSegments.filter(validSegment));
8199 }
8200
8201 return clip;
8202 };
8203});
8204
8205function validSegment(segment) {
8206 return segment.length > 1;
8207}
8208
8209// Intersections are sorted along the clip edge. For both antimeridian cutting
8210// and circle clipping, the same comparison is used.
8211function compareIntersection(a, b) {
8212 return ((a = a.x)[0] < 0 ? a[1] - _math_js__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"] : _math_js__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - a[1])
8213 - ((b = b.x)[0] < 0 ? b[1] - _math_js__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"] : _math_js__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - b[1]);
8214}
8215
8216
8217/***/ }),
8218
8219/***/ "./node_modules/d3-geo/src/clip/line.js":
8220/*!**********************************************!*\
8221 !*** ./node_modules/d3-geo/src/clip/line.js ***!
8222 \**********************************************/
8223/*! exports provided: default */
8224/***/ (function(module, __webpack_exports__, __webpack_require__) {
8225
8226"use strict";
8227__webpack_require__.r(__webpack_exports__);
8228/* harmony default export */ __webpack_exports__["default"] = (function(a, b, x0, y0, x1, y1) {
8229 var ax = a[0],
8230 ay = a[1],
8231 bx = b[0],
8232 by = b[1],
8233 t0 = 0,
8234 t1 = 1,
8235 dx = bx - ax,
8236 dy = by - ay,
8237 r;
8238
8239 r = x0 - ax;
8240 if (!dx && r > 0) return;
8241 r /= dx;
8242 if (dx < 0) {
8243 if (r < t0) return;
8244 if (r < t1) t1 = r;
8245 } else if (dx > 0) {
8246 if (r > t1) return;
8247 if (r > t0) t0 = r;
8248 }
8249
8250 r = x1 - ax;
8251 if (!dx && r < 0) return;
8252 r /= dx;
8253 if (dx < 0) {
8254 if (r > t1) return;
8255 if (r > t0) t0 = r;
8256 } else if (dx > 0) {
8257 if (r < t0) return;
8258 if (r < t1) t1 = r;
8259 }
8260
8261 r = y0 - ay;
8262 if (!dy && r > 0) return;
8263 r /= dy;
8264 if (dy < 0) {
8265 if (r < t0) return;
8266 if (r < t1) t1 = r;
8267 } else if (dy > 0) {
8268 if (r > t1) return;
8269 if (r > t0) t0 = r;
8270 }
8271
8272 r = y1 - ay;
8273 if (!dy && r < 0) return;
8274 r /= dy;
8275 if (dy < 0) {
8276 if (r > t1) return;
8277 if (r > t0) t0 = r;
8278 } else if (dy > 0) {
8279 if (r < t0) return;
8280 if (r < t1) t1 = r;
8281 }
8282
8283 if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
8284 if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
8285 return true;
8286});
8287
8288
8289/***/ }),
8290
8291/***/ "./node_modules/d3-geo/src/clip/rectangle.js":
8292/*!***************************************************!*\
8293 !*** ./node_modules/d3-geo/src/clip/rectangle.js ***!
8294 \***************************************************/
8295/*! exports provided: default */
8296/***/ (function(module, __webpack_exports__, __webpack_require__) {
8297
8298"use strict";
8299__webpack_require__.r(__webpack_exports__);
8300/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return clipRectangle; });
8301/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
8302/* harmony import */ var _buffer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buffer.js */ "./node_modules/d3-geo/src/clip/buffer.js");
8303/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line.js */ "./node_modules/d3-geo/src/clip/line.js");
8304/* harmony import */ var _rejoin_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rejoin.js */ "./node_modules/d3-geo/src/clip/rejoin.js");
8305/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
8306
8307
8308
8309
8310
8311
8312var clipMax = 1e9, clipMin = -clipMax;
8313
8314// TODO Use d3-polygon’s polygonContains here for the ring check?
8315// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?
8316
8317function clipRectangle(x0, y0, x1, y1) {
8318
8319 function visible(x, y) {
8320 return x0 <= x && x <= x1 && y0 <= y && y <= y1;
8321 }
8322
8323 function interpolate(from, to, direction, stream) {
8324 var a = 0, a1 = 0;
8325 if (from == null
8326 || (a = corner(from, direction)) !== (a1 = corner(to, direction))
8327 || comparePoint(from, to) < 0 ^ direction > 0) {
8328 do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
8329 while ((a = (a + direction + 4) % 4) !== a1);
8330 } else {
8331 stream.point(to[0], to[1]);
8332 }
8333 }
8334
8335 function corner(p, direction) {
8336 return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[0] - x0) < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 0 : 3
8337 : Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[0] - x1) < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 2 : 1
8338 : Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(p[1] - y0) < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"] ? direction > 0 ? 1 : 0
8339 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
8340 }
8341
8342 function compareIntersection(a, b) {
8343 return comparePoint(a.x, b.x);
8344 }
8345
8346 function comparePoint(a, b) {
8347 var ca = corner(a, 1),
8348 cb = corner(b, 1);
8349 return ca !== cb ? ca - cb
8350 : ca === 0 ? b[1] - a[1]
8351 : ca === 1 ? a[0] - b[0]
8352 : ca === 2 ? a[1] - b[1]
8353 : b[0] - a[0];
8354 }
8355
8356 return function(stream) {
8357 var activeStream = stream,
8358 bufferStream = Object(_buffer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(),
8359 segments,
8360 polygon,
8361 ring,
8362 x__, y__, v__, // first point
8363 x_, y_, v_, // previous point
8364 first,
8365 clean;
8366
8367 var clipStream = {
8368 point: point,
8369 lineStart: lineStart,
8370 lineEnd: lineEnd,
8371 polygonStart: polygonStart,
8372 polygonEnd: polygonEnd
8373 };
8374
8375 function point(x, y) {
8376 if (visible(x, y)) activeStream.point(x, y);
8377 }
8378
8379 function polygonInside() {
8380 var winding = 0;
8381
8382 for (var i = 0, n = polygon.length; i < n; ++i) {
8383 for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
8384 a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
8385 if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
8386 else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
8387 }
8388 }
8389
8390 return winding;
8391 }
8392
8393 // Buffer geometry within a polygon and then clip it en masse.
8394 function polygonStart() {
8395 activeStream = bufferStream, segments = [], polygon = [], clean = true;
8396 }
8397
8398 function polygonEnd() {
8399 var startInside = polygonInside(),
8400 cleanInside = clean && startInside,
8401 visible = (segments = Object(d3_array__WEBPACK_IMPORTED_MODULE_4__["merge"])(segments)).length;
8402 if (cleanInside || visible) {
8403 stream.polygonStart();
8404 if (cleanInside) {
8405 stream.lineStart();
8406 interpolate(null, null, 1, stream);
8407 stream.lineEnd();
8408 }
8409 if (visible) {
8410 Object(_rejoin_js__WEBPACK_IMPORTED_MODULE_3__["default"])(segments, compareIntersection, startInside, interpolate, stream);
8411 }
8412 stream.polygonEnd();
8413 }
8414 activeStream = stream, segments = polygon = ring = null;
8415 }
8416
8417 function lineStart() {
8418 clipStream.point = linePoint;
8419 if (polygon) polygon.push(ring = []);
8420 first = true;
8421 v_ = false;
8422 x_ = y_ = NaN;
8423 }
8424
8425 // TODO rather than special-case polygons, simply handle them separately.
8426 // Ideally, coincident intersection points should be jittered to avoid
8427 // clipping issues.
8428 function lineEnd() {
8429 if (segments) {
8430 linePoint(x__, y__);
8431 if (v__ && v_) bufferStream.rejoin();
8432 segments.push(bufferStream.result());
8433 }
8434 clipStream.point = point;
8435 if (v_) activeStream.lineEnd();
8436 }
8437
8438 function linePoint(x, y) {
8439 var v = visible(x, y);
8440 if (polygon) ring.push([x, y]);
8441 if (first) {
8442 x__ = x, y__ = y, v__ = v;
8443 first = false;
8444 if (v) {
8445 activeStream.lineStart();
8446 activeStream.point(x, y);
8447 }
8448 } else {
8449 if (v && v_) activeStream.point(x, y);
8450 else {
8451 var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
8452 b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
8453 if (Object(_line_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a, b, x0, y0, x1, y1)) {
8454 if (!v_) {
8455 activeStream.lineStart();
8456 activeStream.point(a[0], a[1]);
8457 }
8458 activeStream.point(b[0], b[1]);
8459 if (!v) activeStream.lineEnd();
8460 clean = false;
8461 } else if (v) {
8462 activeStream.lineStart();
8463 activeStream.point(x, y);
8464 clean = false;
8465 }
8466 }
8467 }
8468 x_ = x, y_ = y, v_ = v;
8469 }
8470
8471 return clipStream;
8472 };
8473}
8474
8475
8476/***/ }),
8477
8478/***/ "./node_modules/d3-geo/src/clip/rejoin.js":
8479/*!************************************************!*\
8480 !*** ./node_modules/d3-geo/src/clip/rejoin.js ***!
8481 \************************************************/
8482/*! exports provided: default */
8483/***/ (function(module, __webpack_exports__, __webpack_require__) {
8484
8485"use strict";
8486__webpack_require__.r(__webpack_exports__);
8487/* harmony import */ var _pointEqual_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../pointEqual.js */ "./node_modules/d3-geo/src/pointEqual.js");
8488
8489
8490function Intersection(point, points, other, entry) {
8491 this.x = point;
8492 this.z = points;
8493 this.o = other; // another intersection
8494 this.e = entry; // is an entry?
8495 this.v = false; // visited
8496 this.n = this.p = null; // next & previous
8497}
8498
8499// A generalized polygon clipping algorithm: given a polygon that has been cut
8500// into its visible line segments, and rejoins the segments by interpolating
8501// along the clip edge.
8502/* harmony default export */ __webpack_exports__["default"] = (function(segments, compareIntersection, startInside, interpolate, stream) {
8503 var subject = [],
8504 clip = [],
8505 i,
8506 n;
8507
8508 segments.forEach(function(segment) {
8509 if ((n = segment.length - 1) <= 0) return;
8510 var n, p0 = segment[0], p1 = segment[n], x;
8511
8512 // If the first and last points of a segment are coincident, then treat as a
8513 // closed ring. TODO if all rings are closed, then the winding order of the
8514 // exterior ring should be checked.
8515 if (Object(_pointEqual_js__WEBPACK_IMPORTED_MODULE_0__["default"])(p0, p1)) {
8516 stream.lineStart();
8517 for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
8518 stream.lineEnd();
8519 return;
8520 }
8521
8522 subject.push(x = new Intersection(p0, segment, null, true));
8523 clip.push(x.o = new Intersection(p0, null, x, false));
8524 subject.push(x = new Intersection(p1, segment, null, false));
8525 clip.push(x.o = new Intersection(p1, null, x, true));
8526 });
8527
8528 if (!subject.length) return;
8529
8530 clip.sort(compareIntersection);
8531 link(subject);
8532 link(clip);
8533
8534 for (i = 0, n = clip.length; i < n; ++i) {
8535 clip[i].e = startInside = !startInside;
8536 }
8537
8538 var start = subject[0],
8539 points,
8540 point;
8541
8542 while (1) {
8543 // Find first unvisited intersection.
8544 var current = start,
8545 isSubject = true;
8546 while (current.v) if ((current = current.n) === start) return;
8547 points = current.z;
8548 stream.lineStart();
8549 do {
8550 current.v = current.o.v = true;
8551 if (current.e) {
8552 if (isSubject) {
8553 for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
8554 } else {
8555 interpolate(current.x, current.n.x, 1, stream);
8556 }
8557 current = current.n;
8558 } else {
8559 if (isSubject) {
8560 points = current.p.z;
8561 for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
8562 } else {
8563 interpolate(current.x, current.p.x, -1, stream);
8564 }
8565 current = current.p;
8566 }
8567 current = current.o;
8568 points = current.z;
8569 isSubject = !isSubject;
8570 } while (!current.v);
8571 stream.lineEnd();
8572 }
8573});
8574
8575function link(array) {
8576 if (!(n = array.length)) return;
8577 var n,
8578 i = 0,
8579 a = array[0],
8580 b;
8581 while (++i < n) {
8582 a.n = b = array[i];
8583 b.p = a;
8584 a = b;
8585 }
8586 a.n = b = array[0];
8587 b.p = a;
8588}
8589
8590
8591/***/ }),
8592
8593/***/ "./node_modules/d3-geo/src/compose.js":
8594/*!********************************************!*\
8595 !*** ./node_modules/d3-geo/src/compose.js ***!
8596 \********************************************/
8597/*! exports provided: default */
8598/***/ (function(module, __webpack_exports__, __webpack_require__) {
8599
8600"use strict";
8601__webpack_require__.r(__webpack_exports__);
8602/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
8603
8604 function compose(x, y) {
8605 return x = a(x, y), b(x[0], x[1]);
8606 }
8607
8608 if (a.invert && b.invert) compose.invert = function(x, y) {
8609 return x = b.invert(x, y), x && a.invert(x[0], x[1]);
8610 };
8611
8612 return compose;
8613});
8614
8615
8616/***/ }),
8617
8618/***/ "./node_modules/d3-geo/src/constant.js":
8619/*!*********************************************!*\
8620 !*** ./node_modules/d3-geo/src/constant.js ***!
8621 \*********************************************/
8622/*! exports provided: default */
8623/***/ (function(module, __webpack_exports__, __webpack_require__) {
8624
8625"use strict";
8626__webpack_require__.r(__webpack_exports__);
8627/* harmony default export */ __webpack_exports__["default"] = (function(x) {
8628 return function() {
8629 return x;
8630 };
8631});
8632
8633
8634/***/ }),
8635
8636/***/ "./node_modules/d3-geo/src/contains.js":
8637/*!*********************************************!*\
8638 !*** ./node_modules/d3-geo/src/contains.js ***!
8639 \*********************************************/
8640/*! exports provided: default */
8641/***/ (function(module, __webpack_exports__, __webpack_require__) {
8642
8643"use strict";
8644__webpack_require__.r(__webpack_exports__);
8645/* harmony import */ var _polygonContains_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./polygonContains.js */ "./node_modules/d3-geo/src/polygonContains.js");
8646/* harmony import */ var _distance_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./distance.js */ "./node_modules/d3-geo/src/distance.js");
8647/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
8648
8649
8650
8651
8652var containsObjectType = {
8653 Feature: function(object, point) {
8654 return containsGeometry(object.geometry, point);
8655 },
8656 FeatureCollection: function(object, point) {
8657 var features = object.features, i = -1, n = features.length;
8658 while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
8659 return false;
8660 }
8661};
8662
8663var containsGeometryType = {
8664 Sphere: function() {
8665 return true;
8666 },
8667 Point: function(object, point) {
8668 return containsPoint(object.coordinates, point);
8669 },
8670 MultiPoint: function(object, point) {
8671 var coordinates = object.coordinates, i = -1, n = coordinates.length;
8672 while (++i < n) if (containsPoint(coordinates[i], point)) return true;
8673 return false;
8674 },
8675 LineString: function(object, point) {
8676 return containsLine(object.coordinates, point);
8677 },
8678 MultiLineString: function(object, point) {
8679 var coordinates = object.coordinates, i = -1, n = coordinates.length;
8680 while (++i < n) if (containsLine(coordinates[i], point)) return true;
8681 return false;
8682 },
8683 Polygon: function(object, point) {
8684 return containsPolygon(object.coordinates, point);
8685 },
8686 MultiPolygon: function(object, point) {
8687 var coordinates = object.coordinates, i = -1, n = coordinates.length;
8688 while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
8689 return false;
8690 },
8691 GeometryCollection: function(object, point) {
8692 var geometries = object.geometries, i = -1, n = geometries.length;
8693 while (++i < n) if (containsGeometry(geometries[i], point)) return true;
8694 return false;
8695 }
8696};
8697
8698function containsGeometry(geometry, point) {
8699 return geometry && containsGeometryType.hasOwnProperty(geometry.type)
8700 ? containsGeometryType[geometry.type](geometry, point)
8701 : false;
8702}
8703
8704function containsPoint(coordinates, point) {
8705 return Object(_distance_js__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates, point) === 0;
8706}
8707
8708function containsLine(coordinates, point) {
8709 var ao, bo, ab;
8710 for (var i = 0, n = coordinates.length; i < n; i++) {
8711 bo = Object(_distance_js__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates[i], point);
8712 if (bo === 0) return true;
8713 if (i > 0) {
8714 ab = Object(_distance_js__WEBPACK_IMPORTED_MODULE_1__["default"])(coordinates[i], coordinates[i - 1]);
8715 if (
8716 ab > 0 &&
8717 ao <= ab &&
8718 bo <= ab &&
8719 (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon2"] * ab
8720 )
8721 return true;
8722 }
8723 ao = bo;
8724 }
8725 return false;
8726}
8727
8728function containsPolygon(coordinates, point) {
8729 return !!Object(_polygonContains_js__WEBPACK_IMPORTED_MODULE_0__["default"])(coordinates.map(ringRadians), pointRadians(point));
8730}
8731
8732function ringRadians(ring) {
8733 return ring = ring.map(pointRadians), ring.pop(), ring;
8734}
8735
8736function pointRadians(point) {
8737 return [point[0] * _math_js__WEBPACK_IMPORTED_MODULE_2__["radians"], point[1] * _math_js__WEBPACK_IMPORTED_MODULE_2__["radians"]];
8738}
8739
8740/* harmony default export */ __webpack_exports__["default"] = (function(object, point) {
8741 return (object && containsObjectType.hasOwnProperty(object.type)
8742 ? containsObjectType[object.type]
8743 : containsGeometry)(object, point);
8744});
8745
8746
8747/***/ }),
8748
8749/***/ "./node_modules/d3-geo/src/distance.js":
8750/*!*********************************************!*\
8751 !*** ./node_modules/d3-geo/src/distance.js ***!
8752 \*********************************************/
8753/*! exports provided: default */
8754/***/ (function(module, __webpack_exports__, __webpack_require__) {
8755
8756"use strict";
8757__webpack_require__.r(__webpack_exports__);
8758/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./length.js */ "./node_modules/d3-geo/src/length.js");
8759
8760
8761var coordinates = [null, null],
8762 object = {type: "LineString", coordinates: coordinates};
8763
8764/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
8765 coordinates[0] = a;
8766 coordinates[1] = b;
8767 return Object(_length_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object);
8768});
8769
8770
8771/***/ }),
8772
8773/***/ "./node_modules/d3-geo/src/graticule.js":
8774/*!**********************************************!*\
8775 !*** ./node_modules/d3-geo/src/graticule.js ***!
8776 \**********************************************/
8777/*! exports provided: default, graticule10 */
8778/***/ (function(module, __webpack_exports__, __webpack_require__) {
8779
8780"use strict";
8781__webpack_require__.r(__webpack_exports__);
8782/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return graticule; });
8783/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "graticule10", function() { return graticule10; });
8784/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
8785/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
8786
8787
8788
8789function graticuleX(y0, y1, dy) {
8790 var y = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(y0, y1 - _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"], dy).concat(y1);
8791 return function(x) { return y.map(function(y) { return [x, y]; }); };
8792}
8793
8794function graticuleY(x0, x1, dx) {
8795 var x = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(x0, x1 - _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"], dx).concat(x1);
8796 return function(y) { return x.map(function(x) { return [x, y]; }); };
8797}
8798
8799function graticule() {
8800 var x1, x0, X1, X0,
8801 y1, y0, Y1, Y0,
8802 dx = 10, dy = dx, DX = 90, DY = 360,
8803 x, y, X, Y,
8804 precision = 2.5;
8805
8806 function graticule() {
8807 return {type: "MultiLineString", coordinates: lines()};
8808 }
8809
8810 function lines() {
8811 return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["ceil"])(X0 / DX) * DX, X1, DX).map(X)
8812 .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["ceil"])(Y0 / DY) * DY, Y1, DY).map(Y))
8813 .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["ceil"])(x0 / dx) * dx, x1, dx).filter(function(x) { return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(x % DX) > _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]; }).map(x))
8814 .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["ceil"])(y0 / dy) * dy, y1, dy).filter(function(y) { return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(y % DY) > _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]; }).map(y));
8815 }
8816
8817 graticule.lines = function() {
8818 return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
8819 };
8820
8821 graticule.outline = function() {
8822 return {
8823 type: "Polygon",
8824 coordinates: [
8825 X(X0).concat(
8826 Y(Y1).slice(1),
8827 X(X1).reverse().slice(1),
8828 Y(Y0).reverse().slice(1))
8829 ]
8830 };
8831 };
8832
8833 graticule.extent = function(_) {
8834 if (!arguments.length) return graticule.extentMinor();
8835 return graticule.extentMajor(_).extentMinor(_);
8836 };
8837
8838 graticule.extentMajor = function(_) {
8839 if (!arguments.length) return [[X0, Y0], [X1, Y1]];
8840 X0 = +_[0][0], X1 = +_[1][0];
8841 Y0 = +_[0][1], Y1 = +_[1][1];
8842 if (X0 > X1) _ = X0, X0 = X1, X1 = _;
8843 if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
8844 return graticule.precision(precision);
8845 };
8846
8847 graticule.extentMinor = function(_) {
8848 if (!arguments.length) return [[x0, y0], [x1, y1]];
8849 x0 = +_[0][0], x1 = +_[1][0];
8850 y0 = +_[0][1], y1 = +_[1][1];
8851 if (x0 > x1) _ = x0, x0 = x1, x1 = _;
8852 if (y0 > y1) _ = y0, y0 = y1, y1 = _;
8853 return graticule.precision(precision);
8854 };
8855
8856 graticule.step = function(_) {
8857 if (!arguments.length) return graticule.stepMinor();
8858 return graticule.stepMajor(_).stepMinor(_);
8859 };
8860
8861 graticule.stepMajor = function(_) {
8862 if (!arguments.length) return [DX, DY];
8863 DX = +_[0], DY = +_[1];
8864 return graticule;
8865 };
8866
8867 graticule.stepMinor = function(_) {
8868 if (!arguments.length) return [dx, dy];
8869 dx = +_[0], dy = +_[1];
8870 return graticule;
8871 };
8872
8873 graticule.precision = function(_) {
8874 if (!arguments.length) return precision;
8875 precision = +_;
8876 x = graticuleX(y0, y1, 90);
8877 y = graticuleY(x0, x1, precision);
8878 X = graticuleX(Y0, Y1, 90);
8879 Y = graticuleY(X0, X1, precision);
8880 return graticule;
8881 };
8882
8883 return graticule
8884 .extentMajor([[-180, -90 + _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]], [180, 90 - _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]]])
8885 .extentMinor([[-180, -80 - _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]], [180, 80 + _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"]]]);
8886}
8887
8888function graticule10() {
8889 return graticule()();
8890}
8891
8892
8893/***/ }),
8894
8895/***/ "./node_modules/d3-geo/src/identity.js":
8896/*!*********************************************!*\
8897 !*** ./node_modules/d3-geo/src/identity.js ***!
8898 \*********************************************/
8899/*! exports provided: default */
8900/***/ (function(module, __webpack_exports__, __webpack_require__) {
8901
8902"use strict";
8903__webpack_require__.r(__webpack_exports__);
8904/* harmony default export */ __webpack_exports__["default"] = (function(x) {
8905 return x;
8906});
8907
8908
8909/***/ }),
8910
8911/***/ "./node_modules/d3-geo/src/index.js":
8912/*!******************************************!*\
8913 !*** ./node_modules/d3-geo/src/index.js ***!
8914 \******************************************/
8915/*! exports provided: geoArea, geoBounds, geoCentroid, geoCircle, geoClipAntimeridian, geoClipCircle, geoClipExtent, geoClipRectangle, geoContains, geoDistance, geoGraticule, geoGraticule10, geoInterpolate, geoLength, geoPath, geoAlbers, geoAlbersUsa, geoAzimuthalEqualArea, geoAzimuthalEqualAreaRaw, geoAzimuthalEquidistant, geoAzimuthalEquidistantRaw, geoConicConformal, geoConicConformalRaw, geoConicEqualArea, geoConicEqualAreaRaw, geoConicEquidistant, geoConicEquidistantRaw, geoEqualEarth, geoEqualEarthRaw, geoEquirectangular, geoEquirectangularRaw, geoGnomonic, geoGnomonicRaw, geoIdentity, geoProjection, geoProjectionMutator, geoMercator, geoMercatorRaw, geoNaturalEarth1, geoNaturalEarth1Raw, geoOrthographic, geoOrthographicRaw, geoStereographic, geoStereographicRaw, geoTransverseMercator, geoTransverseMercatorRaw, geoRotation, geoStream, geoTransform */
8916/***/ (function(module, __webpack_exports__, __webpack_require__) {
8917
8918"use strict";
8919__webpack_require__.r(__webpack_exports__);
8920/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-geo/src/area.js");
8921/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoArea", function() { return _area_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
8922
8923/* harmony import */ var _bounds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bounds.js */ "./node_modules/d3-geo/src/bounds.js");
8924/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoBounds", function() { return _bounds_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
8925
8926/* harmony import */ var _centroid_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./centroid.js */ "./node_modules/d3-geo/src/centroid.js");
8927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCentroid", function() { return _centroid_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
8928
8929/* harmony import */ var _circle_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./circle.js */ "./node_modules/d3-geo/src/circle.js");
8930/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCircle", function() { return _circle_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
8931
8932/* harmony import */ var _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./clip/antimeridian.js */ "./node_modules/d3-geo/src/clip/antimeridian.js");
8933/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipAntimeridian", function() { return _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
8934
8935/* harmony import */ var _clip_circle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./clip/circle.js */ "./node_modules/d3-geo/src/clip/circle.js");
8936/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipCircle", function() { return _clip_circle_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });
8937
8938/* harmony import */ var _clip_extent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./clip/extent.js */ "./node_modules/d3-geo/src/clip/extent.js");
8939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipExtent", function() { return _clip_extent_js__WEBPACK_IMPORTED_MODULE_6__["default"]; });
8940
8941/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./clip/rectangle.js */ "./node_modules/d3-geo/src/clip/rectangle.js");
8942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipRectangle", function() { return _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_7__["default"]; });
8943
8944/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./contains.js */ "./node_modules/d3-geo/src/contains.js");
8945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoContains", function() { return _contains_js__WEBPACK_IMPORTED_MODULE_8__["default"]; });
8946
8947/* harmony import */ var _distance_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./distance.js */ "./node_modules/d3-geo/src/distance.js");
8948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoDistance", function() { return _distance_js__WEBPACK_IMPORTED_MODULE_9__["default"]; });
8949
8950/* harmony import */ var _graticule_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./graticule.js */ "./node_modules/d3-geo/src/graticule.js");
8951/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule", function() { return _graticule_js__WEBPACK_IMPORTED_MODULE_10__["default"]; });
8952
8953/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule10", function() { return _graticule_js__WEBPACK_IMPORTED_MODULE_10__["graticule10"]; });
8954
8955/* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./interpolate.js */ "./node_modules/d3-geo/src/interpolate.js");
8956/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoInterpolate", function() { return _interpolate_js__WEBPACK_IMPORTED_MODULE_11__["default"]; });
8957
8958/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./length.js */ "./node_modules/d3-geo/src/length.js");
8959/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoLength", function() { return _length_js__WEBPACK_IMPORTED_MODULE_12__["default"]; });
8960
8961/* harmony import */ var _path_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./path/index.js */ "./node_modules/d3-geo/src/path/index.js");
8962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoPath", function() { return _path_index_js__WEBPACK_IMPORTED_MODULE_13__["default"]; });
8963
8964/* harmony import */ var _projection_albers_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./projection/albers.js */ "./node_modules/d3-geo/src/projection/albers.js");
8965/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbers", function() { return _projection_albers_js__WEBPACK_IMPORTED_MODULE_14__["default"]; });
8966
8967/* harmony import */ var _projection_albersUsa_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./projection/albersUsa.js */ "./node_modules/d3-geo/src/projection/albersUsa.js");
8968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbersUsa", function() { return _projection_albersUsa_js__WEBPACK_IMPORTED_MODULE_15__["default"]; });
8969
8970/* harmony import */ var _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./projection/azimuthalEqualArea.js */ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js");
8971/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualArea", function() { return _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__["default"]; });
8972
8973/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualAreaRaw", function() { return _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__["azimuthalEqualAreaRaw"]; });
8974
8975/* harmony import */ var _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./projection/azimuthalEquidistant.js */ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js");
8976/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistant", function() { return _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__["default"]; });
8977
8978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistantRaw", function() { return _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__["azimuthalEquidistantRaw"]; });
8979
8980/* harmony import */ var _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./projection/conicConformal.js */ "./node_modules/d3-geo/src/projection/conicConformal.js");
8981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformal", function() { return _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__["default"]; });
8982
8983/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformalRaw", function() { return _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__["conicConformalRaw"]; });
8984
8985/* harmony import */ var _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./projection/conicEqualArea.js */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
8986/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualArea", function() { return _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__["default"]; });
8987
8988/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualAreaRaw", function() { return _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__["conicEqualAreaRaw"]; });
8989
8990/* harmony import */ var _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./projection/conicEquidistant.js */ "./node_modules/d3-geo/src/projection/conicEquidistant.js");
8991/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistant", function() { return _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__["default"]; });
8992
8993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistantRaw", function() { return _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__["conicEquidistantRaw"]; });
8994
8995/* harmony import */ var _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./projection/equalEarth.js */ "./node_modules/d3-geo/src/projection/equalEarth.js");
8996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEqualEarth", function() { return _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__["default"]; });
8997
8998/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEqualEarthRaw", function() { return _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__["equalEarthRaw"]; });
8999
9000/* harmony import */ var _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./projection/equirectangular.js */ "./node_modules/d3-geo/src/projection/equirectangular.js");
9001/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangular", function() { return _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__["default"]; });
9002
9003/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangularRaw", function() { return _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__["equirectangularRaw"]; });
9004
9005/* harmony import */ var _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./projection/gnomonic.js */ "./node_modules/d3-geo/src/projection/gnomonic.js");
9006/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonic", function() { return _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__["default"]; });
9007
9008/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonicRaw", function() { return _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__["gnomonicRaw"]; });
9009
9010/* harmony import */ var _projection_identity_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./projection/identity.js */ "./node_modules/d3-geo/src/projection/identity.js");
9011/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoIdentity", function() { return _projection_identity_js__WEBPACK_IMPORTED_MODULE_24__["default"]; });
9012
9013/* harmony import */ var _projection_index_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./projection/index.js */ "./node_modules/d3-geo/src/projection/index.js");
9014/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjection", function() { return _projection_index_js__WEBPACK_IMPORTED_MODULE_25__["default"]; });
9015
9016/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjectionMutator", function() { return _projection_index_js__WEBPACK_IMPORTED_MODULE_25__["projectionMutator"]; });
9017
9018/* harmony import */ var _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./projection/mercator.js */ "./node_modules/d3-geo/src/projection/mercator.js");
9019/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercator", function() { return _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__["default"]; });
9020
9021/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercatorRaw", function() { return _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__["mercatorRaw"]; });
9022
9023/* harmony import */ var _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./projection/naturalEarth1.js */ "./node_modules/d3-geo/src/projection/naturalEarth1.js");
9024/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1", function() { return _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__["default"]; });
9025
9026/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1Raw", function() { return _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__["naturalEarth1Raw"]; });
9027
9028/* harmony import */ var _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./projection/orthographic.js */ "./node_modules/d3-geo/src/projection/orthographic.js");
9029/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographic", function() { return _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__["default"]; });
9030
9031/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographicRaw", function() { return _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__["orthographicRaw"]; });
9032
9033/* harmony import */ var _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./projection/stereographic.js */ "./node_modules/d3-geo/src/projection/stereographic.js");
9034/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographic", function() { return _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__["default"]; });
9035
9036/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographicRaw", function() { return _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__["stereographicRaw"]; });
9037
9038/* harmony import */ var _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./projection/transverseMercator.js */ "./node_modules/d3-geo/src/projection/transverseMercator.js");
9039/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercator", function() { return _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__["default"]; });
9040
9041/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercatorRaw", function() { return _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__["transverseMercatorRaw"]; });
9042
9043/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./rotation.js */ "./node_modules/d3-geo/src/rotation.js");
9044/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoRotation", function() { return _rotation_js__WEBPACK_IMPORTED_MODULE_31__["default"]; });
9045
9046/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
9047/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStream", function() { return _stream_js__WEBPACK_IMPORTED_MODULE_32__["default"]; });
9048
9049/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./transform.js */ "./node_modules/d3-geo/src/transform.js");
9050/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransform", function() { return _transform_js__WEBPACK_IMPORTED_MODULE_33__["default"]; });
9051
9052
9053
9054
9055
9056
9057
9058 // DEPRECATED! Use d3.geoIdentity().clipExtent(…).
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088/***/ }),
9089
9090/***/ "./node_modules/d3-geo/src/interpolate.js":
9091/*!************************************************!*\
9092 !*** ./node_modules/d3-geo/src/interpolate.js ***!
9093 \************************************************/
9094/*! exports provided: default */
9095/***/ (function(module, __webpack_exports__, __webpack_require__) {
9096
9097"use strict";
9098__webpack_require__.r(__webpack_exports__);
9099/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
9100
9101
9102/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
9103 var x0 = a[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"],
9104 y0 = a[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"],
9105 x1 = b[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"],
9106 y1 = b[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"],
9107 cy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
9108 sy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0),
9109 cy1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y1),
9110 sy1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y1),
9111 kx0 = cy0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(x0),
9112 ky0 = cy0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(x0),
9113 kx1 = cy1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(x1),
9114 ky1 = cy1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(x1),
9115 d = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["haversin"])(y1 - y0) + cy0 * cy1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["haversin"])(x1 - x0))),
9116 k = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(d);
9117
9118 var interpolate = d ? function(t) {
9119 var B = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(t *= d) / k,
9120 A = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(d - t) / k,
9121 x = A * kx0 + B * kx1,
9122 y = A * ky0 + B * ky1,
9123 z = A * sy0 + B * sy1;
9124 return [
9125 Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(y, x) * _math_js__WEBPACK_IMPORTED_MODULE_0__["degrees"],
9126 Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(z, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + y * y)) * _math_js__WEBPACK_IMPORTED_MODULE_0__["degrees"]
9127 ];
9128 } : function() {
9129 return [x0 * _math_js__WEBPACK_IMPORTED_MODULE_0__["degrees"], y0 * _math_js__WEBPACK_IMPORTED_MODULE_0__["degrees"]];
9130 };
9131
9132 interpolate.distance = d;
9133
9134 return interpolate;
9135});
9136
9137
9138/***/ }),
9139
9140/***/ "./node_modules/d3-geo/src/length.js":
9141/*!*******************************************!*\
9142 !*** ./node_modules/d3-geo/src/length.js ***!
9143 \*******************************************/
9144/*! exports provided: default */
9145/***/ (function(module, __webpack_exports__, __webpack_require__) {
9146
9147"use strict";
9148__webpack_require__.r(__webpack_exports__);
9149/* harmony import */ var _adder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder.js */ "./node_modules/d3-geo/src/adder.js");
9150/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
9151/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop.js */ "./node_modules/d3-geo/src/noop.js");
9152/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
9153
9154
9155
9156
9157
9158var lengthSum = Object(_adder_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
9159 lambda0,
9160 sinPhi0,
9161 cosPhi0;
9162
9163var lengthStream = {
9164 sphere: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
9165 point: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
9166 lineStart: lengthLineStart,
9167 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
9168 polygonStart: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
9169 polygonEnd: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"]
9170};
9171
9172function lengthLineStart() {
9173 lengthStream.point = lengthPointFirst;
9174 lengthStream.lineEnd = lengthLineEnd;
9175}
9176
9177function lengthLineEnd() {
9178 lengthStream.point = lengthStream.lineEnd = _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"];
9179}
9180
9181function lengthPointFirst(lambda, phi) {
9182 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"];
9183 lambda0 = lambda, sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi), cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi);
9184 lengthStream.point = lengthPoint;
9185}
9186
9187function lengthPoint(lambda, phi) {
9188 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"];
9189 var sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
9190 cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
9191 delta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda - lambda0),
9192 cosDelta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(delta),
9193 sinDelta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(delta),
9194 x = cosPhi * sinDelta,
9195 y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,
9196 z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;
9197 lengthSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["atan2"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(x * x + y * y), z));
9198 lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;
9199}
9200
9201/* harmony default export */ __webpack_exports__["default"] = (function(object) {
9202 lengthSum.reset();
9203 Object(_stream_js__WEBPACK_IMPORTED_MODULE_3__["default"])(object, lengthStream);
9204 return +lengthSum;
9205});
9206
9207
9208/***/ }),
9209
9210/***/ "./node_modules/d3-geo/src/math.js":
9211/*!*****************************************!*\
9212 !*** ./node_modules/d3-geo/src/math.js ***!
9213 \*****************************************/
9214/*! 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 */
9215/***/ (function(module, __webpack_exports__, __webpack_require__) {
9216
9217"use strict";
9218__webpack_require__.r(__webpack_exports__);
9219/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
9220/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon2", function() { return epsilon2; });
9221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
9222/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
9223/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quarterPi", function() { return quarterPi; });
9224/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
9225/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "degrees", function() { return degrees; });
9226/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "radians", function() { return radians; });
9227/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "abs", function() { return abs; });
9228/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan", function() { return atan; });
9229/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan2", function() { return atan2; });
9230/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
9231/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ceil", function() { return ceil; });
9232/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exp", function() { return exp; });
9233/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "floor", function() { return floor; });
9234/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
9235/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pow", function() { return pow; });
9236/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
9237/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sign", function() { return sign; });
9238/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
9239/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tan", function() { return tan; });
9240/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "acos", function() { return acos; });
9241/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asin", function() { return asin; });
9242/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "haversin", function() { return haversin; });
9243var epsilon = 1e-6;
9244var epsilon2 = 1e-12;
9245var pi = Math.PI;
9246var halfPi = pi / 2;
9247var quarterPi = pi / 4;
9248var tau = pi * 2;
9249
9250var degrees = 180 / pi;
9251var radians = pi / 180;
9252
9253var abs = Math.abs;
9254var atan = Math.atan;
9255var atan2 = Math.atan2;
9256var cos = Math.cos;
9257var ceil = Math.ceil;
9258var exp = Math.exp;
9259var floor = Math.floor;
9260var log = Math.log;
9261var pow = Math.pow;
9262var sin = Math.sin;
9263var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
9264var sqrt = Math.sqrt;
9265var tan = Math.tan;
9266
9267function acos(x) {
9268 return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
9269}
9270
9271function asin(x) {
9272 return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);
9273}
9274
9275function haversin(x) {
9276 return (x = sin(x / 2)) * x;
9277}
9278
9279
9280/***/ }),
9281
9282/***/ "./node_modules/d3-geo/src/noop.js":
9283/*!*****************************************!*\
9284 !*** ./node_modules/d3-geo/src/noop.js ***!
9285 \*****************************************/
9286/*! exports provided: default */
9287/***/ (function(module, __webpack_exports__, __webpack_require__) {
9288
9289"use strict";
9290__webpack_require__.r(__webpack_exports__);
9291/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return noop; });
9292function noop() {}
9293
9294
9295/***/ }),
9296
9297/***/ "./node_modules/d3-geo/src/path/area.js":
9298/*!**********************************************!*\
9299 !*** ./node_modules/d3-geo/src/path/area.js ***!
9300 \**********************************************/
9301/*! exports provided: default */
9302/***/ (function(module, __webpack_exports__, __webpack_require__) {
9303
9304"use strict";
9305__webpack_require__.r(__webpack_exports__);
9306/* harmony import */ var _adder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../adder.js */ "./node_modules/d3-geo/src/adder.js");
9307/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
9308/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
9309
9310
9311
9312
9313var areaSum = Object(_adder_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
9314 areaRingSum = Object(_adder_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
9315 x00,
9316 y00,
9317 x0,
9318 y0;
9319
9320var areaStream = {
9321 point: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
9322 lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
9323 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
9324 polygonStart: function() {
9325 areaStream.lineStart = areaRingStart;
9326 areaStream.lineEnd = areaRingEnd;
9327 },
9328 polygonEnd: function() {
9329 areaStream.lineStart = areaStream.lineEnd = areaStream.point = _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"];
9330 areaSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(areaRingSum));
9331 areaRingSum.reset();
9332 },
9333 result: function() {
9334 var area = areaSum / 2;
9335 areaSum.reset();
9336 return area;
9337 }
9338};
9339
9340function areaRingStart() {
9341 areaStream.point = areaPointFirst;
9342}
9343
9344function areaPointFirst(x, y) {
9345 areaStream.point = areaPoint;
9346 x00 = x0 = x, y00 = y0 = y;
9347}
9348
9349function areaPoint(x, y) {
9350 areaRingSum.add(y0 * x - x0 * y);
9351 x0 = x, y0 = y;
9352}
9353
9354function areaRingEnd() {
9355 areaPoint(x00, y00);
9356}
9357
9358/* harmony default export */ __webpack_exports__["default"] = (areaStream);
9359
9360
9361/***/ }),
9362
9363/***/ "./node_modules/d3-geo/src/path/bounds.js":
9364/*!************************************************!*\
9365 !*** ./node_modules/d3-geo/src/path/bounds.js ***!
9366 \************************************************/
9367/*! exports provided: default */
9368/***/ (function(module, __webpack_exports__, __webpack_require__) {
9369
9370"use strict";
9371__webpack_require__.r(__webpack_exports__);
9372/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
9373
9374
9375var x0 = Infinity,
9376 y0 = x0,
9377 x1 = -x0,
9378 y1 = x1;
9379
9380var boundsStream = {
9381 point: boundsPoint,
9382 lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
9383 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
9384 polygonStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
9385 polygonEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
9386 result: function() {
9387 var bounds = [[x0, y0], [x1, y1]];
9388 x1 = y1 = -(y0 = x0 = Infinity);
9389 return bounds;
9390 }
9391};
9392
9393function boundsPoint(x, y) {
9394 if (x < x0) x0 = x;
9395 if (x > x1) x1 = x;
9396 if (y < y0) y0 = y;
9397 if (y > y1) y1 = y;
9398}
9399
9400/* harmony default export */ __webpack_exports__["default"] = (boundsStream);
9401
9402
9403/***/ }),
9404
9405/***/ "./node_modules/d3-geo/src/path/centroid.js":
9406/*!**************************************************!*\
9407 !*** ./node_modules/d3-geo/src/path/centroid.js ***!
9408 \**************************************************/
9409/*! exports provided: default */
9410/***/ (function(module, __webpack_exports__, __webpack_require__) {
9411
9412"use strict";
9413__webpack_require__.r(__webpack_exports__);
9414/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
9415
9416
9417// TODO Enforce positive area for exterior, negative area for interior?
9418
9419var X0 = 0,
9420 Y0 = 0,
9421 Z0 = 0,
9422 X1 = 0,
9423 Y1 = 0,
9424 Z1 = 0,
9425 X2 = 0,
9426 Y2 = 0,
9427 Z2 = 0,
9428 x00,
9429 y00,
9430 x0,
9431 y0;
9432
9433var centroidStream = {
9434 point: centroidPoint,
9435 lineStart: centroidLineStart,
9436 lineEnd: centroidLineEnd,
9437 polygonStart: function() {
9438 centroidStream.lineStart = centroidRingStart;
9439 centroidStream.lineEnd = centroidRingEnd;
9440 },
9441 polygonEnd: function() {
9442 centroidStream.point = centroidPoint;
9443 centroidStream.lineStart = centroidLineStart;
9444 centroidStream.lineEnd = centroidLineEnd;
9445 },
9446 result: function() {
9447 var centroid = Z2 ? [X2 / Z2, Y2 / Z2]
9448 : Z1 ? [X1 / Z1, Y1 / Z1]
9449 : Z0 ? [X0 / Z0, Y0 / Z0]
9450 : [NaN, NaN];
9451 X0 = Y0 = Z0 =
9452 X1 = Y1 = Z1 =
9453 X2 = Y2 = Z2 = 0;
9454 return centroid;
9455 }
9456};
9457
9458function centroidPoint(x, y) {
9459 X0 += x;
9460 Y0 += y;
9461 ++Z0;
9462}
9463
9464function centroidLineStart() {
9465 centroidStream.point = centroidPointFirstLine;
9466}
9467
9468function centroidPointFirstLine(x, y) {
9469 centroidStream.point = centroidPointLine;
9470 centroidPoint(x0 = x, y0 = y);
9471}
9472
9473function centroidPointLine(x, y) {
9474 var dx = x - x0, dy = y - y0, z = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(dx * dx + dy * dy);
9475 X1 += z * (x0 + x) / 2;
9476 Y1 += z * (y0 + y) / 2;
9477 Z1 += z;
9478 centroidPoint(x0 = x, y0 = y);
9479}
9480
9481function centroidLineEnd() {
9482 centroidStream.point = centroidPoint;
9483}
9484
9485function centroidRingStart() {
9486 centroidStream.point = centroidPointFirstRing;
9487}
9488
9489function centroidRingEnd() {
9490 centroidPointRing(x00, y00);
9491}
9492
9493function centroidPointFirstRing(x, y) {
9494 centroidStream.point = centroidPointRing;
9495 centroidPoint(x00 = x0 = x, y00 = y0 = y);
9496}
9497
9498function centroidPointRing(x, y) {
9499 var dx = x - x0,
9500 dy = y - y0,
9501 z = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(dx * dx + dy * dy);
9502
9503 X1 += z * (x0 + x) / 2;
9504 Y1 += z * (y0 + y) / 2;
9505 Z1 += z;
9506
9507 z = y0 * x - x0 * y;
9508 X2 += z * (x0 + x);
9509 Y2 += z * (y0 + y);
9510 Z2 += z * 3;
9511 centroidPoint(x0 = x, y0 = y);
9512}
9513
9514/* harmony default export */ __webpack_exports__["default"] = (centroidStream);
9515
9516
9517/***/ }),
9518
9519/***/ "./node_modules/d3-geo/src/path/context.js":
9520/*!*************************************************!*\
9521 !*** ./node_modules/d3-geo/src/path/context.js ***!
9522 \*************************************************/
9523/*! exports provided: default */
9524/***/ (function(module, __webpack_exports__, __webpack_require__) {
9525
9526"use strict";
9527__webpack_require__.r(__webpack_exports__);
9528/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return PathContext; });
9529/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
9530/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
9531
9532
9533
9534function PathContext(context) {
9535 this._context = context;
9536}
9537
9538PathContext.prototype = {
9539 _radius: 4.5,
9540 pointRadius: function(_) {
9541 return this._radius = _, this;
9542 },
9543 polygonStart: function() {
9544 this._line = 0;
9545 },
9546 polygonEnd: function() {
9547 this._line = NaN;
9548 },
9549 lineStart: function() {
9550 this._point = 0;
9551 },
9552 lineEnd: function() {
9553 if (this._line === 0) this._context.closePath();
9554 this._point = NaN;
9555 },
9556 point: function(x, y) {
9557 switch (this._point) {
9558 case 0: {
9559 this._context.moveTo(x, y);
9560 this._point = 1;
9561 break;
9562 }
9563 case 1: {
9564 this._context.lineTo(x, y);
9565 break;
9566 }
9567 default: {
9568 this._context.moveTo(x + this._radius, y);
9569 this._context.arc(x, y, this._radius, 0, _math_js__WEBPACK_IMPORTED_MODULE_0__["tau"]);
9570 break;
9571 }
9572 }
9573 },
9574 result: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"]
9575};
9576
9577
9578/***/ }),
9579
9580/***/ "./node_modules/d3-geo/src/path/index.js":
9581/*!***********************************************!*\
9582 !*** ./node_modules/d3-geo/src/path/index.js ***!
9583 \***********************************************/
9584/*! exports provided: default */
9585/***/ (function(module, __webpack_exports__, __webpack_require__) {
9586
9587"use strict";
9588__webpack_require__.r(__webpack_exports__);
9589/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../identity.js */ "./node_modules/d3-geo/src/identity.js");
9590/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stream.js */ "./node_modules/d3-geo/src/stream.js");
9591/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-geo/src/path/area.js");
9592/* harmony import */ var _bounds_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bounds.js */ "./node_modules/d3-geo/src/path/bounds.js");
9593/* harmony import */ var _centroid_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./centroid.js */ "./node_modules/d3-geo/src/path/centroid.js");
9594/* harmony import */ var _context_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./context.js */ "./node_modules/d3-geo/src/path/context.js");
9595/* harmony import */ var _measure_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./measure.js */ "./node_modules/d3-geo/src/path/measure.js");
9596/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./string.js */ "./node_modules/d3-geo/src/path/string.js");
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606/* harmony default export */ __webpack_exports__["default"] = (function(projection, context) {
9607 var pointRadius = 4.5,
9608 projectionStream,
9609 contextStream;
9610
9611 function path(object) {
9612 if (object) {
9613 if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
9614 Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(contextStream));
9615 }
9616 return contextStream.result();
9617 }
9618
9619 path.area = function(object) {
9620 Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_area_js__WEBPACK_IMPORTED_MODULE_2__["default"]));
9621 return _area_js__WEBPACK_IMPORTED_MODULE_2__["default"].result();
9622 };
9623
9624 path.measure = function(object) {
9625 Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_measure_js__WEBPACK_IMPORTED_MODULE_6__["default"]));
9626 return _measure_js__WEBPACK_IMPORTED_MODULE_6__["default"].result();
9627 };
9628
9629 path.bounds = function(object) {
9630 Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_bounds_js__WEBPACK_IMPORTED_MODULE_3__["default"]));
9631 return _bounds_js__WEBPACK_IMPORTED_MODULE_3__["default"].result();
9632 };
9633
9634 path.centroid = function(object) {
9635 Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__["default"])(object, projectionStream(_centroid_js__WEBPACK_IMPORTED_MODULE_4__["default"]));
9636 return _centroid_js__WEBPACK_IMPORTED_MODULE_4__["default"].result();
9637 };
9638
9639 path.projection = function(_) {
9640 return arguments.length ? (projectionStream = _ == null ? (projection = null, _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"]) : (projection = _).stream, path) : projection;
9641 };
9642
9643 path.context = function(_) {
9644 if (!arguments.length) return context;
9645 contextStream = _ == null ? (context = null, new _string_js__WEBPACK_IMPORTED_MODULE_7__["default"]) : new _context_js__WEBPACK_IMPORTED_MODULE_5__["default"](context = _);
9646 if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
9647 return path;
9648 };
9649
9650 path.pointRadius = function(_) {
9651 if (!arguments.length) return pointRadius;
9652 pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
9653 return path;
9654 };
9655
9656 return path.projection(projection).context(context);
9657});
9658
9659
9660/***/ }),
9661
9662/***/ "./node_modules/d3-geo/src/path/measure.js":
9663/*!*************************************************!*\
9664 !*** ./node_modules/d3-geo/src/path/measure.js ***!
9665 \*************************************************/
9666/*! exports provided: default */
9667/***/ (function(module, __webpack_exports__, __webpack_require__) {
9668
9669"use strict";
9670__webpack_require__.r(__webpack_exports__);
9671/* harmony import */ var _adder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../adder.js */ "./node_modules/d3-geo/src/adder.js");
9672/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
9673/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
9674
9675
9676
9677
9678var lengthSum = Object(_adder_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
9679 lengthRing,
9680 x00,
9681 y00,
9682 x0,
9683 y0;
9684
9685var lengthStream = {
9686 point: _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"],
9687 lineStart: function() {
9688 lengthStream.point = lengthPointFirst;
9689 },
9690 lineEnd: function() {
9691 if (lengthRing) lengthPoint(x00, y00);
9692 lengthStream.point = _noop_js__WEBPACK_IMPORTED_MODULE_2__["default"];
9693 },
9694 polygonStart: function() {
9695 lengthRing = true;
9696 },
9697 polygonEnd: function() {
9698 lengthRing = null;
9699 },
9700 result: function() {
9701 var length = +lengthSum;
9702 lengthSum.reset();
9703 return length;
9704 }
9705};
9706
9707function lengthPointFirst(x, y) {
9708 lengthStream.point = lengthPoint;
9709 x00 = x0 = x, y00 = y0 = y;
9710}
9711
9712function lengthPoint(x, y) {
9713 x0 -= x, y0 -= y;
9714 lengthSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(x0 * x0 + y0 * y0));
9715 x0 = x, y0 = y;
9716}
9717
9718/* harmony default export */ __webpack_exports__["default"] = (lengthStream);
9719
9720
9721/***/ }),
9722
9723/***/ "./node_modules/d3-geo/src/path/string.js":
9724/*!************************************************!*\
9725 !*** ./node_modules/d3-geo/src/path/string.js ***!
9726 \************************************************/
9727/*! exports provided: default */
9728/***/ (function(module, __webpack_exports__, __webpack_require__) {
9729
9730"use strict";
9731__webpack_require__.r(__webpack_exports__);
9732/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return PathString; });
9733function PathString() {
9734 this._string = [];
9735}
9736
9737PathString.prototype = {
9738 _radius: 4.5,
9739 _circle: circle(4.5),
9740 pointRadius: function(_) {
9741 if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;
9742 return this;
9743 },
9744 polygonStart: function() {
9745 this._line = 0;
9746 },
9747 polygonEnd: function() {
9748 this._line = NaN;
9749 },
9750 lineStart: function() {
9751 this._point = 0;
9752 },
9753 lineEnd: function() {
9754 if (this._line === 0) this._string.push("Z");
9755 this._point = NaN;
9756 },
9757 point: function(x, y) {
9758 switch (this._point) {
9759 case 0: {
9760 this._string.push("M", x, ",", y);
9761 this._point = 1;
9762 break;
9763 }
9764 case 1: {
9765 this._string.push("L", x, ",", y);
9766 break;
9767 }
9768 default: {
9769 if (this._circle == null) this._circle = circle(this._radius);
9770 this._string.push("M", x, ",", y, this._circle);
9771 break;
9772 }
9773 }
9774 },
9775 result: function() {
9776 if (this._string.length) {
9777 var result = this._string.join("");
9778 this._string = [];
9779 return result;
9780 } else {
9781 return null;
9782 }
9783 }
9784};
9785
9786function circle(radius) {
9787 return "m0," + radius
9788 + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius
9789 + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius
9790 + "z";
9791}
9792
9793
9794/***/ }),
9795
9796/***/ "./node_modules/d3-geo/src/pointEqual.js":
9797/*!***********************************************!*\
9798 !*** ./node_modules/d3-geo/src/pointEqual.js ***!
9799 \***********************************************/
9800/*! exports provided: default */
9801/***/ (function(module, __webpack_exports__, __webpack_require__) {
9802
9803"use strict";
9804__webpack_require__.r(__webpack_exports__);
9805/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
9806
9807
9808/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
9809 return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(a[0] - b[0]) < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"] && Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(a[1] - b[1]) < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"];
9810});
9811
9812
9813/***/ }),
9814
9815/***/ "./node_modules/d3-geo/src/polygonContains.js":
9816/*!****************************************************!*\
9817 !*** ./node_modules/d3-geo/src/polygonContains.js ***!
9818 \****************************************************/
9819/*! exports provided: default */
9820/***/ (function(module, __webpack_exports__, __webpack_require__) {
9821
9822"use strict";
9823__webpack_require__.r(__webpack_exports__);
9824/* harmony import */ var _adder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adder.js */ "./node_modules/d3-geo/src/adder.js");
9825/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
9826/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
9827
9828
9829
9830
9831var sum = Object(_adder_js__WEBPACK_IMPORTED_MODULE_0__["default"])();
9832
9833function longitude(point) {
9834 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["abs"])(point[0]) <= _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"])
9835 return point[0];
9836 else
9837 return Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sign"])(point[0]) * ((Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["abs"])(point[0]) + _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"]) % _math_js__WEBPACK_IMPORTED_MODULE_2__["tau"] - _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"]);
9838}
9839
9840/* harmony default export */ __webpack_exports__["default"] = (function(polygon, point) {
9841 var lambda = longitude(point),
9842 phi = point[1],
9843 sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(phi),
9844 normal = [Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(lambda), -Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(lambda), 0],
9845 angle = 0,
9846 winding = 0;
9847
9848 sum.reset();
9849
9850 if (sinPhi === 1) phi = _math_js__WEBPACK_IMPORTED_MODULE_2__["halfPi"] + _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
9851 else if (sinPhi === -1) phi = -_math_js__WEBPACK_IMPORTED_MODULE_2__["halfPi"] - _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"];
9852
9853 for (var i = 0, n = polygon.length; i < n; ++i) {
9854 if (!(m = (ring = polygon[i]).length)) continue;
9855 var ring,
9856 m,
9857 point0 = ring[m - 1],
9858 lambda0 = longitude(point0),
9859 phi0 = point0[1] / 2 + _math_js__WEBPACK_IMPORTED_MODULE_2__["quarterPi"],
9860 sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(phi0),
9861 cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi0);
9862
9863 for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
9864 var point1 = ring[j],
9865 lambda1 = longitude(point1),
9866 phi1 = point1[1] / 2 + _math_js__WEBPACK_IMPORTED_MODULE_2__["quarterPi"],
9867 sinPhi1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(phi1),
9868 cosPhi1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(phi1),
9869 delta = lambda1 - lambda0,
9870 sign = delta >= 0 ? 1 : -1,
9871 absDelta = sign * delta,
9872 antimeridian = absDelta > _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"],
9873 k = sinPhi0 * sinPhi1;
9874
9875 sum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(k * sign * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(absDelta), cosPhi0 * cosPhi1 + k * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(absDelta)));
9876 angle += antimeridian ? delta + sign * _math_js__WEBPACK_IMPORTED_MODULE_2__["tau"] : delta;
9877
9878 // Are the longitudes either side of the point’s meridian (lambda),
9879 // and are the latitudes smaller than the parallel (phi)?
9880 if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
9881 var arc = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__["cartesianCross"])(Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__["cartesian"])(point0), Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__["cartesian"])(point1));
9882 Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__["cartesianNormalizeInPlace"])(arc);
9883 var intersection = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__["cartesianCross"])(normal, arc);
9884 Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__["cartesianNormalizeInPlace"])(intersection);
9885 var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["asin"])(intersection[2]);
9886 if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
9887 winding += antimeridian ^ delta >= 0 ? 1 : -1;
9888 }
9889 }
9890 }
9891 }
9892
9893 // First, determine whether the South pole is inside or outside:
9894 //
9895 // It is inside if:
9896 // * the polygon winds around it in a clockwise direction.
9897 // * the polygon does not (cumulatively) wind around it, but has a negative
9898 // (counter-clockwise) area.
9899 //
9900 // Second, count the (signed) number of times a segment crosses a lambda
9901 // from the point to the South pole. If it is zero, then the point is the
9902 // same side as the South pole.
9903
9904 return (angle < -_math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"] || angle < _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"] && sum < -_math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) ^ (winding & 1);
9905});
9906
9907
9908/***/ }),
9909
9910/***/ "./node_modules/d3-geo/src/projection/albers.js":
9911/*!******************************************************!*\
9912 !*** ./node_modules/d3-geo/src/projection/albers.js ***!
9913 \******************************************************/
9914/*! exports provided: default */
9915/***/ (function(module, __webpack_exports__, __webpack_require__) {
9916
9917"use strict";
9918__webpack_require__.r(__webpack_exports__);
9919/* harmony import */ var _conicEqualArea_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./conicEqualArea.js */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
9920
9921
9922/* harmony default export */ __webpack_exports__["default"] = (function() {
9923 return Object(_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_0__["default"])()
9924 .parallels([29.5, 45.5])
9925 .scale(1070)
9926 .translate([480, 250])
9927 .rotate([96, 0])
9928 .center([-0.6, 38.7]);
9929});
9930
9931
9932/***/ }),
9933
9934/***/ "./node_modules/d3-geo/src/projection/albersUsa.js":
9935/*!*********************************************************!*\
9936 !*** ./node_modules/d3-geo/src/projection/albersUsa.js ***!
9937 \*********************************************************/
9938/*! exports provided: default */
9939/***/ (function(module, __webpack_exports__, __webpack_require__) {
9940
9941"use strict";
9942__webpack_require__.r(__webpack_exports__);
9943/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
9944/* harmony import */ var _albers_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./albers.js */ "./node_modules/d3-geo/src/projection/albers.js");
9945/* harmony import */ var _conicEqualArea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./conicEqualArea.js */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
9946/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit.js */ "./node_modules/d3-geo/src/projection/fit.js");
9947
9948
9949
9950
9951
9952// The projections must have mutually exclusive clip regions on the sphere,
9953// as this will avoid emitting interleaving lines and polygons.
9954function multiplex(streams) {
9955 var n = streams.length;
9956 return {
9957 point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
9958 sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
9959 lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
9960 lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
9961 polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
9962 polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
9963 };
9964}
9965
9966// A composite projection for the United States, configured by default for
9967// 960×500. The projection also works quite well at 960×600 if you change the
9968// scale to 1285 and adjust the translate accordingly. The set of standard
9969// parallels for each region comes from USGS, which is published here:
9970// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
9971/* harmony default export */ __webpack_exports__["default"] = (function() {
9972 var cache,
9973 cacheStream,
9974 lower48 = Object(_albers_js__WEBPACK_IMPORTED_MODULE_1__["default"])(), lower48Point,
9975 alaska = Object(_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_2__["default"])().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
9976 hawaii = Object(_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_2__["default"])().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
9977 point, pointStream = {point: function(x, y) { point = [x, y]; }};
9978
9979 function albersUsa(coordinates) {
9980 var x = coordinates[0], y = coordinates[1];
9981 return point = null,
9982 (lower48Point.point(x, y), point)
9983 || (alaskaPoint.point(x, y), point)
9984 || (hawaiiPoint.point(x, y), point);
9985 }
9986
9987 albersUsa.invert = function(coordinates) {
9988 var k = lower48.scale(),
9989 t = lower48.translate(),
9990 x = (coordinates[0] - t[0]) / k,
9991 y = (coordinates[1] - t[1]) / k;
9992 return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
9993 : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
9994 : lower48).invert(coordinates);
9995 };
9996
9997 albersUsa.stream = function(stream) {
9998 return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
9999 };
10000
10001 albersUsa.precision = function(_) {
10002 if (!arguments.length) return lower48.precision();
10003 lower48.precision(_), alaska.precision(_), hawaii.precision(_);
10004 return reset();
10005 };
10006
10007 albersUsa.scale = function(_) {
10008 if (!arguments.length) return lower48.scale();
10009 lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
10010 return albersUsa.translate(lower48.translate());
10011 };
10012
10013 albersUsa.translate = function(_) {
10014 if (!arguments.length) return lower48.translate();
10015 var k = lower48.scale(), x = +_[0], y = +_[1];
10016
10017 lower48Point = lower48
10018 .translate(_)
10019 .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
10020 .stream(pointStream);
10021
10022 alaskaPoint = alaska
10023 .translate([x - 0.307 * k, y + 0.201 * k])
10024 .clipExtent([[x - 0.425 * k + _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"], y + 0.120 * k + _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]], [x - 0.214 * k - _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"], y + 0.234 * k - _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]]])
10025 .stream(pointStream);
10026
10027 hawaiiPoint = hawaii
10028 .translate([x - 0.205 * k, y + 0.212 * k])
10029 .clipExtent([[x - 0.214 * k + _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"], y + 0.166 * k + _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]], [x - 0.115 * k - _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"], y + 0.234 * k - _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]]])
10030 .stream(pointStream);
10031
10032 return reset();
10033 };
10034
10035 albersUsa.fitExtent = function(extent, object) {
10036 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__["fitExtent"])(albersUsa, extent, object);
10037 };
10038
10039 albersUsa.fitSize = function(size, object) {
10040 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__["fitSize"])(albersUsa, size, object);
10041 };
10042
10043 albersUsa.fitWidth = function(width, object) {
10044 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__["fitWidth"])(albersUsa, width, object);
10045 };
10046
10047 albersUsa.fitHeight = function(height, object) {
10048 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__["fitHeight"])(albersUsa, height, object);
10049 };
10050
10051 function reset() {
10052 cache = cacheStream = null;
10053 return albersUsa;
10054 }
10055
10056 return albersUsa.scale(1070);
10057});
10058
10059
10060/***/ }),
10061
10062/***/ "./node_modules/d3-geo/src/projection/azimuthal.js":
10063/*!*********************************************************!*\
10064 !*** ./node_modules/d3-geo/src/projection/azimuthal.js ***!
10065 \*********************************************************/
10066/*! exports provided: azimuthalRaw, azimuthalInvert */
10067/***/ (function(module, __webpack_exports__, __webpack_require__) {
10068
10069"use strict";
10070__webpack_require__.r(__webpack_exports__);
10071/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalRaw", function() { return azimuthalRaw; });
10072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalInvert", function() { return azimuthalInvert; });
10073/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10074
10075
10076function azimuthalRaw(scale) {
10077 return function(x, y) {
10078 var cx = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(x),
10079 cy = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y),
10080 k = scale(cx * cy);
10081 return [
10082 k * cy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(x),
10083 k * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y)
10084 ];
10085 }
10086}
10087
10088function azimuthalInvert(angle) {
10089 return function(x, y) {
10090 var z = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + y * y),
10091 c = angle(z),
10092 sc = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(c),
10093 cc = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(c);
10094 return [
10095 Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x * sc, z * cc),
10096 Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"])(z && y * sc / z)
10097 ];
10098 }
10099}
10100
10101
10102/***/ }),
10103
10104/***/ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js":
10105/*!******************************************************************!*\
10106 !*** ./node_modules/d3-geo/src/projection/azimuthalEqualArea.js ***!
10107 \******************************************************************/
10108/*! exports provided: azimuthalEqualAreaRaw, default */
10109/***/ (function(module, __webpack_exports__, __webpack_require__) {
10110
10111"use strict";
10112__webpack_require__.r(__webpack_exports__);
10113/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalEqualAreaRaw", function() { return azimuthalEqualAreaRaw; });
10114/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10115/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10116/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10117
10118
10119
10120
10121var azimuthalEqualAreaRaw = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__["azimuthalRaw"])(function(cxcy) {
10122 return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(2 / (1 + cxcy));
10123});
10124
10125azimuthalEqualAreaRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
10126 return 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"])(z / 2);
10127});
10128
10129/* harmony default export */ __webpack_exports__["default"] = (function() {
10130 return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(azimuthalEqualAreaRaw)
10131 .scale(124.75)
10132 .clipAngle(180 - 1e-3);
10133});
10134
10135
10136/***/ }),
10137
10138/***/ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js":
10139/*!********************************************************************!*\
10140 !*** ./node_modules/d3-geo/src/projection/azimuthalEquidistant.js ***!
10141 \********************************************************************/
10142/*! exports provided: azimuthalEquidistantRaw, default */
10143/***/ (function(module, __webpack_exports__, __webpack_require__) {
10144
10145"use strict";
10146__webpack_require__.r(__webpack_exports__);
10147/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "azimuthalEquidistantRaw", function() { return azimuthalEquidistantRaw; });
10148/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10149/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10150/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10151
10152
10153
10154
10155var azimuthalEquidistantRaw = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__["azimuthalRaw"])(function(c) {
10156 return (c = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["acos"])(c)) && c / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(c);
10157});
10158
10159azimuthalEquidistantRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
10160 return z;
10161});
10162
10163/* harmony default export */ __webpack_exports__["default"] = (function() {
10164 return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(azimuthalEquidistantRaw)
10165 .scale(79.4188)
10166 .clipAngle(180 - 1e-3);
10167});
10168
10169
10170/***/ }),
10171
10172/***/ "./node_modules/d3-geo/src/projection/conic.js":
10173/*!*****************************************************!*\
10174 !*** ./node_modules/d3-geo/src/projection/conic.js ***!
10175 \*****************************************************/
10176/*! exports provided: conicProjection */
10177/***/ (function(module, __webpack_exports__, __webpack_require__) {
10178
10179"use strict";
10180__webpack_require__.r(__webpack_exports__);
10181/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicProjection", function() { return conicProjection; });
10182/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10183/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10184
10185
10186
10187function conicProjection(projectAt) {
10188 var phi0 = 0,
10189 phi1 = _math_js__WEBPACK_IMPORTED_MODULE_0__["pi"] / 3,
10190 m = Object(_index_js__WEBPACK_IMPORTED_MODULE_1__["projectionMutator"])(projectAt),
10191 p = m(phi0, phi1);
10192
10193 p.parallels = function(_) {
10194 return arguments.length ? m(phi0 = _[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"], phi1 = _[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__["radians"]) : [phi0 * _math_js__WEBPACK_IMPORTED_MODULE_0__["degrees"], phi1 * _math_js__WEBPACK_IMPORTED_MODULE_0__["degrees"]];
10195 };
10196
10197 return p;
10198}
10199
10200
10201/***/ }),
10202
10203/***/ "./node_modules/d3-geo/src/projection/conicConformal.js":
10204/*!**************************************************************!*\
10205 !*** ./node_modules/d3-geo/src/projection/conicConformal.js ***!
10206 \**************************************************************/
10207/*! exports provided: conicConformalRaw, default */
10208/***/ (function(module, __webpack_exports__, __webpack_require__) {
10209
10210"use strict";
10211__webpack_require__.r(__webpack_exports__);
10212/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicConformalRaw", function() { return conicConformalRaw; });
10213/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10214/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic.js */ "./node_modules/d3-geo/src/projection/conic.js");
10215/* harmony import */ var _mercator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mercator.js */ "./node_modules/d3-geo/src/projection/mercator.js");
10216
10217
10218
10219
10220function tany(y) {
10221 return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + y) / 2);
10222}
10223
10224function conicConformalRaw(y0, y1) {
10225 var cy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
10226 n = y0 === y1 ? Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0) : Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["log"])(cy0 / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y1)) / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["log"])(tany(y1) / tany(y0)),
10227 f = cy0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["pow"])(tany(y0), n) / n;
10228
10229 if (!n) return _mercator_js__WEBPACK_IMPORTED_MODULE_2__["mercatorRaw"];
10230
10231 function project(x, y) {
10232 if (f > 0) { if (y < -_math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) y = -_math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]; }
10233 else { if (y > _math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"] - _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) y = _math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"] - _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]; }
10234 var r = f / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["pow"])(tany(y), n);
10235 return [r * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(n * x), f - r * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(n * x)];
10236 }
10237
10238 project.invert = function(x, y) {
10239 var fy = f - y, r = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sign"])(n) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + fy * fy);
10240 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(fy)) / n * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sign"])(fy), 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["pow"])(f / r, 1 / n)) - _math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"]];
10241 };
10242
10243 return project;
10244}
10245
10246/* harmony default export */ __webpack_exports__["default"] = (function() {
10247 return Object(_conic_js__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicConformalRaw)
10248 .scale(109.5)
10249 .parallels([30, 30]);
10250});
10251
10252
10253/***/ }),
10254
10255/***/ "./node_modules/d3-geo/src/projection/conicEqualArea.js":
10256/*!**************************************************************!*\
10257 !*** ./node_modules/d3-geo/src/projection/conicEqualArea.js ***!
10258 \**************************************************************/
10259/*! exports provided: conicEqualAreaRaw, default */
10260/***/ (function(module, __webpack_exports__, __webpack_require__) {
10261
10262"use strict";
10263__webpack_require__.r(__webpack_exports__);
10264/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicEqualAreaRaw", function() { return conicEqualAreaRaw; });
10265/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10266/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic.js */ "./node_modules/d3-geo/src/projection/conic.js");
10267/* harmony import */ var _cylindricalEqualArea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cylindricalEqualArea.js */ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js");
10268
10269
10270
10271
10272function conicEqualAreaRaw(y0, y1) {
10273 var sy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0), n = (sy0 + Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y1)) / 2;
10274
10275 // Are the parallels symmetrical around the Equator?
10276 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(n) < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) return Object(_cylindricalEqualArea_js__WEBPACK_IMPORTED_MODULE_2__["cylindricalEqualAreaRaw"])(y0);
10277
10278 var c = 1 + sy0 * (2 * n - sy0), r0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(c) / n;
10279
10280 function project(x, y) {
10281 var r = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(c - 2 * n * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y)) / n;
10282 return [r * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(x *= n), r0 - r * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(x)];
10283 }
10284
10285 project.invert = function(x, y) {
10286 var r0y = r0 - y;
10287 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(r0y)) / n * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sign"])(r0y), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"])((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
10288 };
10289
10290 return project;
10291}
10292
10293/* harmony default export */ __webpack_exports__["default"] = (function() {
10294 return Object(_conic_js__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicEqualAreaRaw)
10295 .scale(155.424)
10296 .center([0, 33.6442]);
10297});
10298
10299
10300/***/ }),
10301
10302/***/ "./node_modules/d3-geo/src/projection/conicEquidistant.js":
10303/*!****************************************************************!*\
10304 !*** ./node_modules/d3-geo/src/projection/conicEquidistant.js ***!
10305 \****************************************************************/
10306/*! exports provided: conicEquidistantRaw, default */
10307/***/ (function(module, __webpack_exports__, __webpack_require__) {
10308
10309"use strict";
10310__webpack_require__.r(__webpack_exports__);
10311/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conicEquidistantRaw", function() { return conicEquidistantRaw; });
10312/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10313/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic.js */ "./node_modules/d3-geo/src/projection/conic.js");
10314/* harmony import */ var _equirectangular_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equirectangular.js */ "./node_modules/d3-geo/src/projection/equirectangular.js");
10315
10316
10317
10318
10319function conicEquidistantRaw(y0, y1) {
10320 var cy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y0),
10321 n = y0 === y1 ? Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y0) : (cy0 - Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y1)) / (y1 - y0),
10322 g = cy0 / n + y0;
10323
10324 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(n) < _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) return _equirectangular_js__WEBPACK_IMPORTED_MODULE_2__["equirectangularRaw"];
10325
10326 function project(x, y) {
10327 var gy = g - y, nx = n * x;
10328 return [gy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(nx), g - gy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(nx)];
10329 }
10330
10331 project.invert = function(x, y) {
10332 var gy = g - y;
10333 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan2"])(x, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["abs"])(gy)) / n * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sign"])(gy), g - Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sign"])(n) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sqrt"])(x * x + gy * gy)];
10334 };
10335
10336 return project;
10337}
10338
10339/* harmony default export */ __webpack_exports__["default"] = (function() {
10340 return Object(_conic_js__WEBPACK_IMPORTED_MODULE_1__["conicProjection"])(conicEquidistantRaw)
10341 .scale(131.154)
10342 .center([0, 13.9389]);
10343});
10344
10345
10346/***/ }),
10347
10348/***/ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js":
10349/*!********************************************************************!*\
10350 !*** ./node_modules/d3-geo/src/projection/cylindricalEqualArea.js ***!
10351 \********************************************************************/
10352/*! exports provided: cylindricalEqualAreaRaw */
10353/***/ (function(module, __webpack_exports__, __webpack_require__) {
10354
10355"use strict";
10356__webpack_require__.r(__webpack_exports__);
10357/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cylindricalEqualAreaRaw", function() { return cylindricalEqualAreaRaw; });
10358/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10359
10360
10361function cylindricalEqualAreaRaw(phi0) {
10362 var cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(phi0);
10363
10364 function forward(lambda, phi) {
10365 return [lambda * cosPhi0, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(phi) / cosPhi0];
10366 }
10367
10368 forward.invert = function(x, y) {
10369 return [x / cosPhi0, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"])(y * cosPhi0)];
10370 };
10371
10372 return forward;
10373}
10374
10375
10376/***/ }),
10377
10378/***/ "./node_modules/d3-geo/src/projection/equalEarth.js":
10379/*!**********************************************************!*\
10380 !*** ./node_modules/d3-geo/src/projection/equalEarth.js ***!
10381 \**********************************************************/
10382/*! exports provided: equalEarthRaw, default */
10383/***/ (function(module, __webpack_exports__, __webpack_require__) {
10384
10385"use strict";
10386__webpack_require__.r(__webpack_exports__);
10387/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "equalEarthRaw", function() { return equalEarthRaw; });
10388/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10389/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10390
10391
10392
10393var A1 = 1.340264,
10394 A2 = -0.081106,
10395 A3 = 0.000893,
10396 A4 = 0.003796,
10397 M = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(3) / 2,
10398 iterations = 12;
10399
10400function equalEarthRaw(lambda, phi) {
10401 var l = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["asin"])(M * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi)), l2 = l * l, l6 = l2 * l2 * l2;
10402 return [
10403 lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),
10404 l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))
10405 ];
10406}
10407
10408equalEarthRaw.invert = function(x, y) {
10409 var l = y, l2 = l * l, l6 = l2 * l2 * l2;
10410 for (var i = 0, delta, fy, fpy; i < iterations; ++i) {
10411 fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;
10412 fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);
10413 l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;
10414 if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(delta) < _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon2"]) break;
10415 }
10416 return [
10417 M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(l),
10418 Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["asin"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(l) / M)
10419 ];
10420};
10421
10422/* harmony default export */ __webpack_exports__["default"] = (function() {
10423 return Object(_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(equalEarthRaw)
10424 .scale(177.158);
10425});
10426
10427
10428/***/ }),
10429
10430/***/ "./node_modules/d3-geo/src/projection/equirectangular.js":
10431/*!***************************************************************!*\
10432 !*** ./node_modules/d3-geo/src/projection/equirectangular.js ***!
10433 \***************************************************************/
10434/*! exports provided: equirectangularRaw, default */
10435/***/ (function(module, __webpack_exports__, __webpack_require__) {
10436
10437"use strict";
10438__webpack_require__.r(__webpack_exports__);
10439/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "equirectangularRaw", function() { return equirectangularRaw; });
10440/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10441
10442
10443function equirectangularRaw(lambda, phi) {
10444 return [lambda, phi];
10445}
10446
10447equirectangularRaw.invert = equirectangularRaw;
10448
10449/* harmony default export */ __webpack_exports__["default"] = (function() {
10450 return Object(_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(equirectangularRaw)
10451 .scale(152.63);
10452});
10453
10454
10455/***/ }),
10456
10457/***/ "./node_modules/d3-geo/src/projection/fit.js":
10458/*!***************************************************!*\
10459 !*** ./node_modules/d3-geo/src/projection/fit.js ***!
10460 \***************************************************/
10461/*! exports provided: fitExtent, fitSize, fitWidth, fitHeight */
10462/***/ (function(module, __webpack_exports__, __webpack_require__) {
10463
10464"use strict";
10465__webpack_require__.r(__webpack_exports__);
10466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitExtent", function() { return fitExtent; });
10467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitSize", function() { return fitSize; });
10468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitWidth", function() { return fitWidth; });
10469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitHeight", function() { return fitHeight; });
10470/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stream.js */ "./node_modules/d3-geo/src/stream.js");
10471/* harmony import */ var _path_bounds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../path/bounds.js */ "./node_modules/d3-geo/src/path/bounds.js");
10472
10473
10474
10475function fit(projection, fitBounds, object) {
10476 var clip = projection.clipExtent && projection.clipExtent();
10477 projection.scale(150).translate([0, 0]);
10478 if (clip != null) projection.clipExtent(null);
10479 Object(_stream_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projection.stream(_path_bounds_js__WEBPACK_IMPORTED_MODULE_1__["default"]));
10480 fitBounds(_path_bounds_js__WEBPACK_IMPORTED_MODULE_1__["default"].result());
10481 if (clip != null) projection.clipExtent(clip);
10482 return projection;
10483}
10484
10485function fitExtent(projection, extent, object) {
10486 return fit(projection, function(b) {
10487 var w = extent[1][0] - extent[0][0],
10488 h = extent[1][1] - extent[0][1],
10489 k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
10490 x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
10491 y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
10492 projection.scale(150 * k).translate([x, y]);
10493 }, object);
10494}
10495
10496function fitSize(projection, size, object) {
10497 return fitExtent(projection, [[0, 0], size], object);
10498}
10499
10500function fitWidth(projection, width, object) {
10501 return fit(projection, function(b) {
10502 var w = +width,
10503 k = w / (b[1][0] - b[0][0]),
10504 x = (w - k * (b[1][0] + b[0][0])) / 2,
10505 y = -k * b[0][1];
10506 projection.scale(150 * k).translate([x, y]);
10507 }, object);
10508}
10509
10510function fitHeight(projection, height, object) {
10511 return fit(projection, function(b) {
10512 var h = +height,
10513 k = h / (b[1][1] - b[0][1]),
10514 x = -k * b[0][0],
10515 y = (h - k * (b[1][1] + b[0][1])) / 2;
10516 projection.scale(150 * k).translate([x, y]);
10517 }, object);
10518}
10519
10520
10521/***/ }),
10522
10523/***/ "./node_modules/d3-geo/src/projection/gnomonic.js":
10524/*!********************************************************!*\
10525 !*** ./node_modules/d3-geo/src/projection/gnomonic.js ***!
10526 \********************************************************/
10527/*! exports provided: gnomonicRaw, default */
10528/***/ (function(module, __webpack_exports__, __webpack_require__) {
10529
10530"use strict";
10531__webpack_require__.r(__webpack_exports__);
10532/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "gnomonicRaw", function() { return gnomonicRaw; });
10533/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10534/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10535/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10536
10537
10538
10539
10540function gnomonicRaw(x, y) {
10541 var cy = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y), k = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(x) * cy;
10542 return [cy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(x) / k, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y) / k];
10543}
10544
10545gnomonicRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan"]);
10546
10547/* harmony default export */ __webpack_exports__["default"] = (function() {
10548 return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(gnomonicRaw)
10549 .scale(144.049)
10550 .clipAngle(60);
10551});
10552
10553
10554/***/ }),
10555
10556/***/ "./node_modules/d3-geo/src/projection/identity.js":
10557/*!********************************************************!*\
10558 !*** ./node_modules/d3-geo/src/projection/identity.js ***!
10559 \********************************************************/
10560/*! exports provided: default */
10561/***/ (function(module, __webpack_exports__, __webpack_require__) {
10562
10563"use strict";
10564__webpack_require__.r(__webpack_exports__);
10565/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clip/rectangle.js */ "./node_modules/d3-geo/src/clip/rectangle.js");
10566/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../identity.js */ "./node_modules/d3-geo/src/identity.js");
10567/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transform.js */ "./node_modules/d3-geo/src/transform.js");
10568/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit.js */ "./node_modules/d3-geo/src/projection/fit.js");
10569
10570
10571
10572
10573
10574function scaleTranslate(kx, ky, tx, ty) {
10575 return kx === 1 && ky === 1 && tx === 0 && ty === 0 ? _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"] : Object(_transform_js__WEBPACK_IMPORTED_MODULE_2__["transformer"])({
10576 point: function(x, y) {
10577 this.stream.point(x * kx + tx, y * ky + ty);
10578 }
10579 });
10580}
10581
10582/* harmony default export */ __webpack_exports__["default"] = (function() {
10583 var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, transform = _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"], // scale, translate and reflect
10584 x0 = null, y0, x1, y1, // clip extent
10585 postclip = _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"],
10586 cache,
10587 cacheStream,
10588 projection;
10589
10590 function reset() {
10591 cache = cacheStream = null;
10592 return projection;
10593 }
10594
10595 return projection = {
10596 stream: function(stream) {
10597 return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));
10598 },
10599 postclip: function(_) {
10600 return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
10601 },
10602 clipExtent: function(_) {
10603 return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"]) : Object(_clip_rectangle_js__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]];
10604 },
10605 scale: function(_) {
10606 return arguments.length ? (transform = scaleTranslate((k = +_) * sx, k * sy, tx, ty), reset()) : k;
10607 },
10608 translate: function(_) {
10609 return arguments.length ? (transform = scaleTranslate(k * sx, k * sy, tx = +_[0], ty = +_[1]), reset()) : [tx, ty];
10610 },
10611 reflectX: function(_) {
10612 return arguments.length ? (transform = scaleTranslate(k * (sx = _ ? -1 : 1), k * sy, tx, ty), reset()) : sx < 0;
10613 },
10614 reflectY: function(_) {
10615 return arguments.length ? (transform = scaleTranslate(k * sx, k * (sy = _ ? -1 : 1), tx, ty), reset()) : sy < 0;
10616 },
10617 fitExtent: function(extent, object) {
10618 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__["fitExtent"])(projection, extent, object);
10619 },
10620 fitSize: function(size, object) {
10621 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__["fitSize"])(projection, size, object);
10622 },
10623 fitWidth: function(width, object) {
10624 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__["fitWidth"])(projection, width, object);
10625 },
10626 fitHeight: function(height, object) {
10627 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__["fitHeight"])(projection, height, object);
10628 }
10629 };
10630});
10631
10632
10633/***/ }),
10634
10635/***/ "./node_modules/d3-geo/src/projection/index.js":
10636/*!*****************************************************!*\
10637 !*** ./node_modules/d3-geo/src/projection/index.js ***!
10638 \*****************************************************/
10639/*! exports provided: default, projectionMutator */
10640/***/ (function(module, __webpack_exports__, __webpack_require__) {
10641
10642"use strict";
10643__webpack_require__.r(__webpack_exports__);
10644/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return projection; });
10645/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "projectionMutator", function() { return projectionMutator; });
10646/* harmony import */ var _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clip/antimeridian.js */ "./node_modules/d3-geo/src/clip/antimeridian.js");
10647/* harmony import */ var _clip_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../clip/circle.js */ "./node_modules/d3-geo/src/clip/circle.js");
10648/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../clip/rectangle.js */ "./node_modules/d3-geo/src/clip/rectangle.js");
10649/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../compose.js */ "./node_modules/d3-geo/src/compose.js");
10650/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../identity.js */ "./node_modules/d3-geo/src/identity.js");
10651/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10652/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../rotation.js */ "./node_modules/d3-geo/src/rotation.js");
10653/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../transform.js */ "./node_modules/d3-geo/src/transform.js");
10654/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./fit.js */ "./node_modules/d3-geo/src/projection/fit.js");
10655/* harmony import */ var _resample_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./resample.js */ "./node_modules/d3-geo/src/projection/resample.js");
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667var transformRadians = Object(_transform_js__WEBPACK_IMPORTED_MODULE_7__["transformer"])({
10668 point: function(x, y) {
10669 this.stream.point(x * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"], y * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"]);
10670 }
10671});
10672
10673function transformRotate(rotate) {
10674 return Object(_transform_js__WEBPACK_IMPORTED_MODULE_7__["transformer"])({
10675 point: function(x, y) {
10676 var r = rotate(x, y);
10677 return this.stream.point(r[0], r[1]);
10678 }
10679 });
10680}
10681
10682function scaleTranslate(k, dx, dy) {
10683 function transform(x, y) {
10684 return [dx + k * x, dy - k * y];
10685 }
10686 transform.invert = function(x, y) {
10687 return [(x - dx) / k, (dy - y) / k];
10688 };
10689 return transform;
10690}
10691
10692function scaleTranslateRotate(k, dx, dy, alpha) {
10693 var cosAlpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_5__["cos"])(alpha),
10694 sinAlpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_5__["sin"])(alpha),
10695 a = cosAlpha * k,
10696 b = sinAlpha * k,
10697 ai = cosAlpha / k,
10698 bi = sinAlpha / k,
10699 ci = (sinAlpha * dy - cosAlpha * dx) / k,
10700 fi = (sinAlpha * dx + cosAlpha * dy) / k;
10701 function transform(x, y) {
10702 return [a * x - b * y + dx, dy - b * x - a * y];
10703 }
10704 transform.invert = function(x, y) {
10705 return [ai * x - bi * y + ci, fi - bi * x - ai * y];
10706 };
10707 return transform;
10708}
10709
10710function projection(project) {
10711 return projectionMutator(function() { return project; })();
10712}
10713
10714function projectionMutator(projectAt) {
10715 var project,
10716 k = 150, // scale
10717 x = 480, y = 250, // translate
10718 lambda = 0, phi = 0, // center
10719 deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate
10720 alpha = 0, // post-rotate
10721 theta = null, preclip = _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_0__["default"], // pre-clip angle
10722 x0 = null, y0, x1, y1, postclip = _identity_js__WEBPACK_IMPORTED_MODULE_4__["default"], // post-clip extent
10723 delta2 = 0.5, // precision
10724 projectResample,
10725 projectTransform,
10726 projectRotateTransform,
10727 cache,
10728 cacheStream;
10729
10730 function projection(point) {
10731 return projectRotateTransform(point[0] * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"], point[1] * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"]);
10732 }
10733
10734 function invert(point) {
10735 point = projectRotateTransform.invert(point[0], point[1]);
10736 return point && [point[0] * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"], point[1] * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"]];
10737 }
10738
10739 projection.stream = function(stream) {
10740 return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
10741 };
10742
10743 projection.preclip = function(_) {
10744 return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;
10745 };
10746
10747 projection.postclip = function(_) {
10748 return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
10749 };
10750
10751 projection.clipAngle = function(_) {
10752 return arguments.length ? (preclip = +_ ? Object(_clip_circle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(theta = _ * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"]) : (theta = null, _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_0__["default"]), reset()) : theta * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"];
10753 };
10754
10755 projection.clipExtent = function(_) {
10756 return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, _identity_js__WEBPACK_IMPORTED_MODULE_4__["default"]) : Object(_clip_rectangle_js__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]];
10757 };
10758
10759 projection.scale = function(_) {
10760 return arguments.length ? (k = +_, recenter()) : k;
10761 };
10762
10763 projection.translate = function(_) {
10764 return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
10765 };
10766
10767 projection.center = function(_) {
10768 return arguments.length ? (lambda = _[0] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"], phi = _[1] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"], recenter()) : [lambda * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"], phi * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"]];
10769 };
10770
10771 projection.rotate = function(_) {
10772 return arguments.length ? (deltaLambda = _[0] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"], deltaPhi = _[1] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"], deltaGamma = _.length > 2 ? _[2] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"] : 0, recenter()) : [deltaLambda * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"], deltaPhi * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"], deltaGamma * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"]];
10773 };
10774
10775 projection.angle = function(_) {
10776 return arguments.length ? (alpha = _ % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__["radians"], recenter()) : alpha * _math_js__WEBPACK_IMPORTED_MODULE_5__["degrees"];
10777 };
10778
10779 projection.precision = function(_) {
10780 return arguments.length ? (projectResample = Object(_resample_js__WEBPACK_IMPORTED_MODULE_9__["default"])(projectTransform, delta2 = _ * _), reset()) : Object(_math_js__WEBPACK_IMPORTED_MODULE_5__["sqrt"])(delta2);
10781 };
10782
10783 projection.fitExtent = function(extent, object) {
10784 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_8__["fitExtent"])(projection, extent, object);
10785 };
10786
10787 projection.fitSize = function(size, object) {
10788 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_8__["fitSize"])(projection, size, object);
10789 };
10790
10791 projection.fitWidth = function(width, object) {
10792 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_8__["fitWidth"])(projection, width, object);
10793 };
10794
10795 projection.fitHeight = function(height, object) {
10796 return Object(_fit_js__WEBPACK_IMPORTED_MODULE_8__["fitHeight"])(projection, height, object);
10797 };
10798
10799 function recenter() {
10800 var center = scaleTranslateRotate(k, 0, 0, alpha).apply(null, project(lambda, phi)),
10801 transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], alpha);
10802 rotate = Object(_rotation_js__WEBPACK_IMPORTED_MODULE_6__["rotateRadians"])(deltaLambda, deltaPhi, deltaGamma);
10803 projectTransform = Object(_compose_js__WEBPACK_IMPORTED_MODULE_3__["default"])(project, transform);
10804 projectRotateTransform = Object(_compose_js__WEBPACK_IMPORTED_MODULE_3__["default"])(rotate, projectTransform);
10805 projectResample = Object(_resample_js__WEBPACK_IMPORTED_MODULE_9__["default"])(projectTransform, delta2);
10806 return reset();
10807 }
10808
10809 function reset() {
10810 cache = cacheStream = null;
10811 return projection;
10812 }
10813
10814 return function() {
10815 project = projectAt.apply(this, arguments);
10816 projection.invert = project.invert && invert;
10817 return recenter();
10818 };
10819}
10820
10821
10822/***/ }),
10823
10824/***/ "./node_modules/d3-geo/src/projection/mercator.js":
10825/*!********************************************************!*\
10826 !*** ./node_modules/d3-geo/src/projection/mercator.js ***!
10827 \********************************************************/
10828/*! exports provided: mercatorRaw, default, mercatorProjection */
10829/***/ (function(module, __webpack_exports__, __webpack_require__) {
10830
10831"use strict";
10832__webpack_require__.r(__webpack_exports__);
10833/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mercatorRaw", function() { return mercatorRaw; });
10834/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mercatorProjection", function() { return mercatorProjection; });
10835/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10836/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rotation.js */ "./node_modules/d3-geo/src/rotation.js");
10837/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10838
10839
10840
10841
10842function mercatorRaw(lambda, phi) {
10843 return [lambda, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["log"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + phi) / 2))];
10844}
10845
10846mercatorRaw.invert = function(x, y) {
10847 return [x, 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["exp"])(y)) - _math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"]];
10848};
10849
10850/* harmony default export */ __webpack_exports__["default"] = (function() {
10851 return mercatorProjection(mercatorRaw)
10852 .scale(961 / _math_js__WEBPACK_IMPORTED_MODULE_0__["tau"]);
10853});
10854
10855function mercatorProjection(project) {
10856 var m = Object(_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(project),
10857 center = m.center,
10858 scale = m.scale,
10859 translate = m.translate,
10860 clipExtent = m.clipExtent,
10861 x0 = null, y0, x1, y1; // clip extent
10862
10863 m.scale = function(_) {
10864 return arguments.length ? (scale(_), reclip()) : scale();
10865 };
10866
10867 m.translate = function(_) {
10868 return arguments.length ? (translate(_), reclip()) : translate();
10869 };
10870
10871 m.center = function(_) {
10872 return arguments.length ? (center(_), reclip()) : center();
10873 };
10874
10875 m.clipExtent = function(_) {
10876 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]];
10877 };
10878
10879 function reclip() {
10880 var k = _math_js__WEBPACK_IMPORTED_MODULE_0__["pi"] * scale(),
10881 t = m(Object(_rotation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(m.rotate()).invert([0, 0]));
10882 return clipExtent(x0 == null
10883 ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
10884 ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
10885 : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
10886 }
10887
10888 return reclip();
10889}
10890
10891
10892/***/ }),
10893
10894/***/ "./node_modules/d3-geo/src/projection/naturalEarth1.js":
10895/*!*************************************************************!*\
10896 !*** ./node_modules/d3-geo/src/projection/naturalEarth1.js ***!
10897 \*************************************************************/
10898/*! exports provided: naturalEarth1Raw, default */
10899/***/ (function(module, __webpack_exports__, __webpack_require__) {
10900
10901"use strict";
10902__webpack_require__.r(__webpack_exports__);
10903/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "naturalEarth1Raw", function() { return naturalEarth1Raw; });
10904/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10905/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10906
10907
10908
10909function naturalEarth1Raw(lambda, phi) {
10910 var phi2 = phi * phi, phi4 = phi2 * phi2;
10911 return [
10912 lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
10913 phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
10914 ];
10915}
10916
10917naturalEarth1Raw.invert = function(x, y) {
10918 var phi = y, i = 25, delta;
10919 do {
10920 var phi2 = phi * phi, phi4 = phi2 * phi2;
10921 phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
10922 (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
10923 } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"] && --i > 0);
10924 return [
10925 x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
10926 phi
10927 ];
10928};
10929
10930/* harmony default export */ __webpack_exports__["default"] = (function() {
10931 return Object(_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(naturalEarth1Raw)
10932 .scale(175.295);
10933});
10934
10935
10936/***/ }),
10937
10938/***/ "./node_modules/d3-geo/src/projection/orthographic.js":
10939/*!************************************************************!*\
10940 !*** ./node_modules/d3-geo/src/projection/orthographic.js ***!
10941 \************************************************************/
10942/*! exports provided: orthographicRaw, default */
10943/***/ (function(module, __webpack_exports__, __webpack_require__) {
10944
10945"use strict";
10946__webpack_require__.r(__webpack_exports__);
10947/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "orthographicRaw", function() { return orthographicRaw; });
10948/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10949/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
10950/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
10951
10952
10953
10954
10955function orthographicRaw(x, y) {
10956 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(x), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y)];
10957}
10958
10959orthographicRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(_math_js__WEBPACK_IMPORTED_MODULE_0__["asin"]);
10960
10961/* harmony default export */ __webpack_exports__["default"] = (function() {
10962 return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(orthographicRaw)
10963 .scale(249.5)
10964 .clipAngle(90 + _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]);
10965});
10966
10967
10968/***/ }),
10969
10970/***/ "./node_modules/d3-geo/src/projection/resample.js":
10971/*!********************************************************!*\
10972 !*** ./node_modules/d3-geo/src/projection/resample.js ***!
10973 \********************************************************/
10974/*! exports provided: default */
10975/***/ (function(module, __webpack_exports__, __webpack_require__) {
10976
10977"use strict";
10978__webpack_require__.r(__webpack_exports__);
10979/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
10980/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
10981/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transform.js */ "./node_modules/d3-geo/src/transform.js");
10982
10983
10984
10985
10986var maxDepth = 16, // maximum depth of subdivision
10987 cosMinDistance = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(30 * _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"]); // cos(minimum angular distance)
10988
10989/* harmony default export */ __webpack_exports__["default"] = (function(project, delta2) {
10990 return +delta2 ? resample(project, delta2) : resampleNone(project);
10991});
10992
10993function resampleNone(project) {
10994 return Object(_transform_js__WEBPACK_IMPORTED_MODULE_2__["transformer"])({
10995 point: function(x, y) {
10996 x = project(x, y);
10997 this.stream.point(x[0], x[1]);
10998 }
10999 });
11000}
11001
11002function resample(project, delta2) {
11003
11004 function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
11005 var dx = x1 - x0,
11006 dy = y1 - y0,
11007 d2 = dx * dx + dy * dy;
11008 if (d2 > 4 * delta2 && depth--) {
11009 var a = a0 + a1,
11010 b = b0 + b1,
11011 c = c0 + c1,
11012 m = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sqrt"])(a * a + b * b + c * c),
11013 phi2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["asin"])(c /= m),
11014 lambda2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(c) - 1) < _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda0 - lambda1) < _math_js__WEBPACK_IMPORTED_MODULE_1__["epsilon"] ? (lambda0 + lambda1) / 2 : Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["atan2"])(b, a),
11015 p = project(lambda2, phi2),
11016 x2 = p[0],
11017 y2 = p[1],
11018 dx2 = x2 - x0,
11019 dy2 = y2 - y0,
11020 dz = dy * dx2 - dx * dy2;
11021 if (dz * dz / d2 > delta2 // perpendicular projected distance
11022 || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
11023 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
11024 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
11025 stream.point(x2, y2);
11026 resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
11027 }
11028 }
11029 }
11030 return function(stream) {
11031 var lambda00, x00, y00, a00, b00, c00, // first point
11032 lambda0, x0, y0, a0, b0, c0; // previous point
11033
11034 var resampleStream = {
11035 point: point,
11036 lineStart: lineStart,
11037 lineEnd: lineEnd,
11038 polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
11039 polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
11040 };
11041
11042 function point(x, y) {
11043 x = project(x, y);
11044 stream.point(x[0], x[1]);
11045 }
11046
11047 function lineStart() {
11048 x0 = NaN;
11049 resampleStream.point = linePoint;
11050 stream.lineStart();
11051 }
11052
11053 function linePoint(lambda, phi) {
11054 var c = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__["cartesian"])([lambda, phi]), p = project(lambda, phi);
11055 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);
11056 stream.point(x0, y0);
11057 }
11058
11059 function lineEnd() {
11060 resampleStream.point = point;
11061 stream.lineEnd();
11062 }
11063
11064 function ringStart() {
11065 lineStart();
11066 resampleStream.point = ringPoint;
11067 resampleStream.lineEnd = ringEnd;
11068 }
11069
11070 function ringPoint(lambda, phi) {
11071 linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
11072 resampleStream.point = linePoint;
11073 }
11074
11075 function ringEnd() {
11076 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
11077 resampleStream.lineEnd = lineEnd;
11078 lineEnd();
11079 }
11080
11081 return resampleStream;
11082 };
11083}
11084
11085
11086/***/ }),
11087
11088/***/ "./node_modules/d3-geo/src/projection/stereographic.js":
11089/*!*************************************************************!*\
11090 !*** ./node_modules/d3-geo/src/projection/stereographic.js ***!
11091 \*************************************************************/
11092/*! exports provided: stereographicRaw, default */
11093/***/ (function(module, __webpack_exports__, __webpack_require__) {
11094
11095"use strict";
11096__webpack_require__.r(__webpack_exports__);
11097/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stereographicRaw", function() { return stereographicRaw; });
11098/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
11099/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
11100/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
11101
11102
11103
11104
11105function stereographicRaw(x, y) {
11106 var cy = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(y), k = 1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["cos"])(x) * cy;
11107 return [cy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(x) / k, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["sin"])(y) / k];
11108}
11109
11110stereographicRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__["azimuthalInvert"])(function(z) {
11111 return 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan"])(z);
11112});
11113
11114/* harmony default export */ __webpack_exports__["default"] = (function() {
11115 return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(stereographicRaw)
11116 .scale(250)
11117 .clipAngle(142);
11118});
11119
11120
11121/***/ }),
11122
11123/***/ "./node_modules/d3-geo/src/projection/transverseMercator.js":
11124/*!******************************************************************!*\
11125 !*** ./node_modules/d3-geo/src/projection/transverseMercator.js ***!
11126 \******************************************************************/
11127/*! exports provided: transverseMercatorRaw, default */
11128/***/ (function(module, __webpack_exports__, __webpack_require__) {
11129
11130"use strict";
11131__webpack_require__.r(__webpack_exports__);
11132/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transverseMercatorRaw", function() { return transverseMercatorRaw; });
11133/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
11134/* harmony import */ var _mercator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mercator.js */ "./node_modules/d3-geo/src/projection/mercator.js");
11135
11136
11137
11138function transverseMercatorRaw(lambda, phi) {
11139 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["log"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["tan"])((_math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"] + phi) / 2)), -lambda];
11140}
11141
11142transverseMercatorRaw.invert = function(x, y) {
11143 return [-y, 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["atan"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__["exp"])(x)) - _math_js__WEBPACK_IMPORTED_MODULE_0__["halfPi"]];
11144};
11145
11146/* harmony default export */ __webpack_exports__["default"] = (function() {
11147 var m = Object(_mercator_js__WEBPACK_IMPORTED_MODULE_1__["mercatorProjection"])(transverseMercatorRaw),
11148 center = m.center,
11149 rotate = m.rotate;
11150
11151 m.center = function(_) {
11152 return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
11153 };
11154
11155 m.rotate = function(_) {
11156 return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
11157 };
11158
11159 return rotate([0, 0, 90])
11160 .scale(159.155);
11161});
11162
11163
11164/***/ }),
11165
11166/***/ "./node_modules/d3-geo/src/rotation.js":
11167/*!*********************************************!*\
11168 !*** ./node_modules/d3-geo/src/rotation.js ***!
11169 \*********************************************/
11170/*! exports provided: rotateRadians, default */
11171/***/ (function(module, __webpack_exports__, __webpack_require__) {
11172
11173"use strict";
11174__webpack_require__.r(__webpack_exports__);
11175/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rotateRadians", function() { return rotateRadians; });
11176/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./compose.js */ "./node_modules/d3-geo/src/compose.js");
11177/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
11178
11179
11180
11181function rotationIdentity(lambda, phi) {
11182 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["abs"])(lambda) > _math_js__WEBPACK_IMPORTED_MODULE_1__["pi"] ? lambda + Math.round(-lambda / _math_js__WEBPACK_IMPORTED_MODULE_1__["tau"]) * _math_js__WEBPACK_IMPORTED_MODULE_1__["tau"] : lambda, phi];
11183}
11184
11185rotationIdentity.invert = rotationIdentity;
11186
11187function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
11188 return (deltaLambda %= _math_js__WEBPACK_IMPORTED_MODULE_1__["tau"]) ? (deltaPhi || deltaGamma ? Object(_compose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
11189 : rotationLambda(deltaLambda))
11190 : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
11191 : rotationIdentity);
11192}
11193
11194function forwardRotationLambda(deltaLambda) {
11195 return function(lambda, phi) {
11196 return lambda += deltaLambda, [lambda > _math_js__WEBPACK_IMPORTED_MODULE_1__["pi"] ? lambda - _math_js__WEBPACK_IMPORTED_MODULE_1__["tau"] : lambda < -_math_js__WEBPACK_IMPORTED_MODULE_1__["pi"] ? lambda + _math_js__WEBPACK_IMPORTED_MODULE_1__["tau"] : lambda, phi];
11197 };
11198}
11199
11200function rotationLambda(deltaLambda) {
11201 var rotation = forwardRotationLambda(deltaLambda);
11202 rotation.invert = forwardRotationLambda(-deltaLambda);
11203 return rotation;
11204}
11205
11206function rotationPhiGamma(deltaPhi, deltaGamma) {
11207 var cosDeltaPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(deltaPhi),
11208 sinDeltaPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(deltaPhi),
11209 cosDeltaGamma = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(deltaGamma),
11210 sinDeltaGamma = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(deltaGamma);
11211
11212 function rotation(lambda, phi) {
11213 var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
11214 x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(lambda) * cosPhi,
11215 y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda) * cosPhi,
11216 z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
11217 k = z * cosDeltaPhi + x * sinDeltaPhi;
11218 return [
11219 Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["atan2"])(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
11220 Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["asin"])(k * cosDeltaGamma + y * sinDeltaGamma)
11221 ];
11222 }
11223
11224 rotation.invert = function(lambda, phi) {
11225 var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(phi),
11226 x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["cos"])(lambda) * cosPhi,
11227 y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(lambda) * cosPhi,
11228 z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["sin"])(phi),
11229 k = z * cosDeltaGamma - y * sinDeltaGamma;
11230 return [
11231 Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["atan2"])(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
11232 Object(_math_js__WEBPACK_IMPORTED_MODULE_1__["asin"])(k * cosDeltaPhi - x * sinDeltaPhi)
11233 ];
11234 };
11235
11236 return rotation;
11237}
11238
11239/* harmony default export */ __webpack_exports__["default"] = (function(rotate) {
11240 rotate = rotateRadians(rotate[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"], rotate[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"], rotate.length > 2 ? rotate[2] * _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"] : 0);
11241
11242 function forward(coordinates) {
11243 coordinates = rotate(coordinates[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"], coordinates[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"]);
11244 return coordinates[0] *= _math_js__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates[1] *= _math_js__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates;
11245 }
11246
11247 forward.invert = function(coordinates) {
11248 coordinates = rotate.invert(coordinates[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"], coordinates[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__["radians"]);
11249 return coordinates[0] *= _math_js__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates[1] *= _math_js__WEBPACK_IMPORTED_MODULE_1__["degrees"], coordinates;
11250 };
11251
11252 return forward;
11253});
11254
11255
11256/***/ }),
11257
11258/***/ "./node_modules/d3-geo/src/stream.js":
11259/*!*******************************************!*\
11260 !*** ./node_modules/d3-geo/src/stream.js ***!
11261 \*******************************************/
11262/*! exports provided: default */
11263/***/ (function(module, __webpack_exports__, __webpack_require__) {
11264
11265"use strict";
11266__webpack_require__.r(__webpack_exports__);
11267function streamGeometry(geometry, stream) {
11268 if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
11269 streamGeometryType[geometry.type](geometry, stream);
11270 }
11271}
11272
11273var streamObjectType = {
11274 Feature: function(object, stream) {
11275 streamGeometry(object.geometry, stream);
11276 },
11277 FeatureCollection: function(object, stream) {
11278 var features = object.features, i = -1, n = features.length;
11279 while (++i < n) streamGeometry(features[i].geometry, stream);
11280 }
11281};
11282
11283var streamGeometryType = {
11284 Sphere: function(object, stream) {
11285 stream.sphere();
11286 },
11287 Point: function(object, stream) {
11288 object = object.coordinates;
11289 stream.point(object[0], object[1], object[2]);
11290 },
11291 MultiPoint: function(object, stream) {
11292 var coordinates = object.coordinates, i = -1, n = coordinates.length;
11293 while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
11294 },
11295 LineString: function(object, stream) {
11296 streamLine(object.coordinates, stream, 0);
11297 },
11298 MultiLineString: function(object, stream) {
11299 var coordinates = object.coordinates, i = -1, n = coordinates.length;
11300 while (++i < n) streamLine(coordinates[i], stream, 0);
11301 },
11302 Polygon: function(object, stream) {
11303 streamPolygon(object.coordinates, stream);
11304 },
11305 MultiPolygon: function(object, stream) {
11306 var coordinates = object.coordinates, i = -1, n = coordinates.length;
11307 while (++i < n) streamPolygon(coordinates[i], stream);
11308 },
11309 GeometryCollection: function(object, stream) {
11310 var geometries = object.geometries, i = -1, n = geometries.length;
11311 while (++i < n) streamGeometry(geometries[i], stream);
11312 }
11313};
11314
11315function streamLine(coordinates, stream, closed) {
11316 var i = -1, n = coordinates.length - closed, coordinate;
11317 stream.lineStart();
11318 while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
11319 stream.lineEnd();
11320}
11321
11322function streamPolygon(coordinates, stream) {
11323 var i = -1, n = coordinates.length;
11324 stream.polygonStart();
11325 while (++i < n) streamLine(coordinates[i], stream, 1);
11326 stream.polygonEnd();
11327}
11328
11329/* harmony default export */ __webpack_exports__["default"] = (function(object, stream) {
11330 if (object && streamObjectType.hasOwnProperty(object.type)) {
11331 streamObjectType[object.type](object, stream);
11332 } else {
11333 streamGeometry(object, stream);
11334 }
11335});
11336
11337
11338/***/ }),
11339
11340/***/ "./node_modules/d3-geo/src/transform.js":
11341/*!**********************************************!*\
11342 !*** ./node_modules/d3-geo/src/transform.js ***!
11343 \**********************************************/
11344/*! exports provided: default, transformer */
11345/***/ (function(module, __webpack_exports__, __webpack_require__) {
11346
11347"use strict";
11348__webpack_require__.r(__webpack_exports__);
11349/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformer", function() { return transformer; });
11350/* harmony default export */ __webpack_exports__["default"] = (function(methods) {
11351 return {
11352 stream: transformer(methods)
11353 };
11354});
11355
11356function transformer(methods) {
11357 return function(stream) {
11358 var s = new TransformStream;
11359 for (var key in methods) s[key] = methods[key];
11360 s.stream = stream;
11361 return s;
11362 };
11363}
11364
11365function TransformStream() {}
11366
11367TransformStream.prototype = {
11368 constructor: TransformStream,
11369 point: function(x, y) { this.stream.point(x, y); },
11370 sphere: function() { this.stream.sphere(); },
11371 lineStart: function() { this.stream.lineStart(); },
11372 lineEnd: function() { this.stream.lineEnd(); },
11373 polygonStart: function() { this.stream.polygonStart(); },
11374 polygonEnd: function() { this.stream.polygonEnd(); }
11375};
11376
11377
11378/***/ }),
11379
11380/***/ "./node_modules/d3-hierarchy/src/accessors.js":
11381/*!****************************************************!*\
11382 !*** ./node_modules/d3-hierarchy/src/accessors.js ***!
11383 \****************************************************/
11384/*! exports provided: optional, required */
11385/***/ (function(module, __webpack_exports__, __webpack_require__) {
11386
11387"use strict";
11388__webpack_require__.r(__webpack_exports__);
11389/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "optional", function() { return optional; });
11390/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "required", function() { return required; });
11391function optional(f) {
11392 return f == null ? null : required(f);
11393}
11394
11395function required(f) {
11396 if (typeof f !== "function") throw new Error;
11397 return f;
11398}
11399
11400
11401/***/ }),
11402
11403/***/ "./node_modules/d3-hierarchy/src/array.js":
11404/*!************************************************!*\
11405 !*** ./node_modules/d3-hierarchy/src/array.js ***!
11406 \************************************************/
11407/*! exports provided: slice, shuffle */
11408/***/ (function(module, __webpack_exports__, __webpack_require__) {
11409
11410"use strict";
11411__webpack_require__.r(__webpack_exports__);
11412/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
11413/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return shuffle; });
11414var slice = Array.prototype.slice;
11415
11416function shuffle(array) {
11417 var m = array.length,
11418 t,
11419 i;
11420
11421 while (m) {
11422 i = Math.random() * m-- | 0;
11423 t = array[m];
11424 array[m] = array[i];
11425 array[i] = t;
11426 }
11427
11428 return array;
11429}
11430
11431
11432/***/ }),
11433
11434/***/ "./node_modules/d3-hierarchy/src/cluster.js":
11435/*!**************************************************!*\
11436 !*** ./node_modules/d3-hierarchy/src/cluster.js ***!
11437 \**************************************************/
11438/*! exports provided: default */
11439/***/ (function(module, __webpack_exports__, __webpack_require__) {
11440
11441"use strict";
11442__webpack_require__.r(__webpack_exports__);
11443function defaultSeparation(a, b) {
11444 return a.parent === b.parent ? 1 : 2;
11445}
11446
11447function meanX(children) {
11448 return children.reduce(meanXReduce, 0) / children.length;
11449}
11450
11451function meanXReduce(x, c) {
11452 return x + c.x;
11453}
11454
11455function maxY(children) {
11456 return 1 + children.reduce(maxYReduce, 0);
11457}
11458
11459function maxYReduce(y, c) {
11460 return Math.max(y, c.y);
11461}
11462
11463function leafLeft(node) {
11464 var children;
11465 while (children = node.children) node = children[0];
11466 return node;
11467}
11468
11469function leafRight(node) {
11470 var children;
11471 while (children = node.children) node = children[children.length - 1];
11472 return node;
11473}
11474
11475/* harmony default export */ __webpack_exports__["default"] = (function() {
11476 var separation = defaultSeparation,
11477 dx = 1,
11478 dy = 1,
11479 nodeSize = false;
11480
11481 function cluster(root) {
11482 var previousNode,
11483 x = 0;
11484
11485 // First walk, computing the initial x & y values.
11486 root.eachAfter(function(node) {
11487 var children = node.children;
11488 if (children) {
11489 node.x = meanX(children);
11490 node.y = maxY(children);
11491 } else {
11492 node.x = previousNode ? x += separation(node, previousNode) : 0;
11493 node.y = 0;
11494 previousNode = node;
11495 }
11496 });
11497
11498 var left = leafLeft(root),
11499 right = leafRight(root),
11500 x0 = left.x - separation(left, right) / 2,
11501 x1 = right.x + separation(right, left) / 2;
11502
11503 // Second walk, normalizing x & y to the desired size.
11504 return root.eachAfter(nodeSize ? function(node) {
11505 node.x = (node.x - root.x) * dx;
11506 node.y = (root.y - node.y) * dy;
11507 } : function(node) {
11508 node.x = (node.x - x0) / (x1 - x0) * dx;
11509 node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;
11510 });
11511 }
11512
11513 cluster.separation = function(x) {
11514 return arguments.length ? (separation = x, cluster) : separation;
11515 };
11516
11517 cluster.size = function(x) {
11518 return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);
11519 };
11520
11521 cluster.nodeSize = function(x) {
11522 return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);
11523 };
11524
11525 return cluster;
11526});
11527
11528
11529/***/ }),
11530
11531/***/ "./node_modules/d3-hierarchy/src/constant.js":
11532/*!***************************************************!*\
11533 !*** ./node_modules/d3-hierarchy/src/constant.js ***!
11534 \***************************************************/
11535/*! exports provided: constantZero, default */
11536/***/ (function(module, __webpack_exports__, __webpack_require__) {
11537
11538"use strict";
11539__webpack_require__.r(__webpack_exports__);
11540/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "constantZero", function() { return constantZero; });
11541function constantZero() {
11542 return 0;
11543}
11544
11545/* harmony default export */ __webpack_exports__["default"] = (function(x) {
11546 return function() {
11547 return x;
11548 };
11549});
11550
11551
11552/***/ }),
11553
11554/***/ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js":
11555/*!**************************************************************!*\
11556 !*** ./node_modules/d3-hierarchy/src/hierarchy/ancestors.js ***!
11557 \**************************************************************/
11558/*! exports provided: default */
11559/***/ (function(module, __webpack_exports__, __webpack_require__) {
11560
11561"use strict";
11562__webpack_require__.r(__webpack_exports__);
11563/* harmony default export */ __webpack_exports__["default"] = (function() {
11564 var node = this, nodes = [node];
11565 while (node = node.parent) {
11566 nodes.push(node);
11567 }
11568 return nodes;
11569});
11570
11571
11572/***/ }),
11573
11574/***/ "./node_modules/d3-hierarchy/src/hierarchy/count.js":
11575/*!**********************************************************!*\
11576 !*** ./node_modules/d3-hierarchy/src/hierarchy/count.js ***!
11577 \**********************************************************/
11578/*! exports provided: default */
11579/***/ (function(module, __webpack_exports__, __webpack_require__) {
11580
11581"use strict";
11582__webpack_require__.r(__webpack_exports__);
11583function count(node) {
11584 var sum = 0,
11585 children = node.children,
11586 i = children && children.length;
11587 if (!i) sum = 1;
11588 else while (--i >= 0) sum += children[i].value;
11589 node.value = sum;
11590}
11591
11592/* harmony default export */ __webpack_exports__["default"] = (function() {
11593 return this.eachAfter(count);
11594});
11595
11596
11597/***/ }),
11598
11599/***/ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js":
11600/*!****************************************************************!*\
11601 !*** ./node_modules/d3-hierarchy/src/hierarchy/descendants.js ***!
11602 \****************************************************************/
11603/*! exports provided: default */
11604/***/ (function(module, __webpack_exports__, __webpack_require__) {
11605
11606"use strict";
11607__webpack_require__.r(__webpack_exports__);
11608/* harmony default export */ __webpack_exports__["default"] = (function() {
11609 var nodes = [];
11610 this.each(function(node) {
11611 nodes.push(node);
11612 });
11613 return nodes;
11614});
11615
11616
11617/***/ }),
11618
11619/***/ "./node_modules/d3-hierarchy/src/hierarchy/each.js":
11620/*!*********************************************************!*\
11621 !*** ./node_modules/d3-hierarchy/src/hierarchy/each.js ***!
11622 \*********************************************************/
11623/*! exports provided: default */
11624/***/ (function(module, __webpack_exports__, __webpack_require__) {
11625
11626"use strict";
11627__webpack_require__.r(__webpack_exports__);
11628/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
11629 var node = this, current, next = [node], children, i, n;
11630 do {
11631 current = next.reverse(), next = [];
11632 while (node = current.pop()) {
11633 callback(node), children = node.children;
11634 if (children) for (i = 0, n = children.length; i < n; ++i) {
11635 next.push(children[i]);
11636 }
11637 }
11638 } while (next.length);
11639 return this;
11640});
11641
11642
11643/***/ }),
11644
11645/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js":
11646/*!**************************************************************!*\
11647 !*** ./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js ***!
11648 \**************************************************************/
11649/*! exports provided: default */
11650/***/ (function(module, __webpack_exports__, __webpack_require__) {
11651
11652"use strict";
11653__webpack_require__.r(__webpack_exports__);
11654/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
11655 var node = this, nodes = [node], next = [], children, i, n;
11656 while (node = nodes.pop()) {
11657 next.push(node), children = node.children;
11658 if (children) for (i = 0, n = children.length; i < n; ++i) {
11659 nodes.push(children[i]);
11660 }
11661 }
11662 while (node = next.pop()) {
11663 callback(node);
11664 }
11665 return this;
11666});
11667
11668
11669/***/ }),
11670
11671/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js":
11672/*!***************************************************************!*\
11673 !*** ./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js ***!
11674 \***************************************************************/
11675/*! exports provided: default */
11676/***/ (function(module, __webpack_exports__, __webpack_require__) {
11677
11678"use strict";
11679__webpack_require__.r(__webpack_exports__);
11680/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
11681 var node = this, nodes = [node], children, i;
11682 while (node = nodes.pop()) {
11683 callback(node), children = node.children;
11684 if (children) for (i = children.length - 1; i >= 0; --i) {
11685 nodes.push(children[i]);
11686 }
11687 }
11688 return this;
11689});
11690
11691
11692/***/ }),
11693
11694/***/ "./node_modules/d3-hierarchy/src/hierarchy/index.js":
11695/*!**********************************************************!*\
11696 !*** ./node_modules/d3-hierarchy/src/hierarchy/index.js ***!
11697 \**********************************************************/
11698/*! exports provided: default, computeHeight, Node */
11699/***/ (function(module, __webpack_exports__, __webpack_require__) {
11700
11701"use strict";
11702__webpack_require__.r(__webpack_exports__);
11703/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return hierarchy; });
11704/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeHeight", function() { return computeHeight; });
11705/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Node", function() { return Node; });
11706/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./count.js */ "./node_modules/d3-hierarchy/src/hierarchy/count.js");
11707/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ "./node_modules/d3-hierarchy/src/hierarchy/each.js");
11708/* harmony import */ var _eachBefore_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./eachBefore.js */ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js");
11709/* harmony import */ var _eachAfter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eachAfter.js */ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js");
11710/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sum.js */ "./node_modules/d3-hierarchy/src/hierarchy/sum.js");
11711/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sort.js */ "./node_modules/d3-hierarchy/src/hierarchy/sort.js");
11712/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./path.js */ "./node_modules/d3-hierarchy/src/hierarchy/path.js");
11713/* harmony import */ var _ancestors_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ancestors.js */ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js");
11714/* harmony import */ var _descendants_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./descendants.js */ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js");
11715/* harmony import */ var _leaves_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./leaves.js */ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js");
11716/* harmony import */ var _links_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./links.js */ "./node_modules/d3-hierarchy/src/hierarchy/links.js");
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729function hierarchy(data, children) {
11730 var root = new Node(data),
11731 valued = +data.value && (root.value = data.value),
11732 node,
11733 nodes = [root],
11734 child,
11735 childs,
11736 i,
11737 n;
11738
11739 if (children == null) children = defaultChildren;
11740
11741 while (node = nodes.pop()) {
11742 if (valued) node.value = +node.data.value;
11743 if ((childs = children(node.data)) && (n = childs.length)) {
11744 node.children = new Array(n);
11745 for (i = n - 1; i >= 0; --i) {
11746 nodes.push(child = node.children[i] = new Node(childs[i]));
11747 child.parent = node;
11748 child.depth = node.depth + 1;
11749 }
11750 }
11751 }
11752
11753 return root.eachBefore(computeHeight);
11754}
11755
11756function node_copy() {
11757 return hierarchy(this).eachBefore(copyData);
11758}
11759
11760function defaultChildren(d) {
11761 return d.children;
11762}
11763
11764function copyData(node) {
11765 node.data = node.data.data;
11766}
11767
11768function computeHeight(node) {
11769 var height = 0;
11770 do node.height = height;
11771 while ((node = node.parent) && (node.height < ++height));
11772}
11773
11774function Node(data) {
11775 this.data = data;
11776 this.depth =
11777 this.height = 0;
11778 this.parent = null;
11779}
11780
11781Node.prototype = hierarchy.prototype = {
11782 constructor: Node,
11783 count: _count_js__WEBPACK_IMPORTED_MODULE_0__["default"],
11784 each: _each_js__WEBPACK_IMPORTED_MODULE_1__["default"],
11785 eachAfter: _eachAfter_js__WEBPACK_IMPORTED_MODULE_3__["default"],
11786 eachBefore: _eachBefore_js__WEBPACK_IMPORTED_MODULE_2__["default"],
11787 sum: _sum_js__WEBPACK_IMPORTED_MODULE_4__["default"],
11788 sort: _sort_js__WEBPACK_IMPORTED_MODULE_5__["default"],
11789 path: _path_js__WEBPACK_IMPORTED_MODULE_6__["default"],
11790 ancestors: _ancestors_js__WEBPACK_IMPORTED_MODULE_7__["default"],
11791 descendants: _descendants_js__WEBPACK_IMPORTED_MODULE_8__["default"],
11792 leaves: _leaves_js__WEBPACK_IMPORTED_MODULE_9__["default"],
11793 links: _links_js__WEBPACK_IMPORTED_MODULE_10__["default"],
11794 copy: node_copy
11795};
11796
11797
11798/***/ }),
11799
11800/***/ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js":
11801/*!***********************************************************!*\
11802 !*** ./node_modules/d3-hierarchy/src/hierarchy/leaves.js ***!
11803 \***********************************************************/
11804/*! exports provided: default */
11805/***/ (function(module, __webpack_exports__, __webpack_require__) {
11806
11807"use strict";
11808__webpack_require__.r(__webpack_exports__);
11809/* harmony default export */ __webpack_exports__["default"] = (function() {
11810 var leaves = [];
11811 this.eachBefore(function(node) {
11812 if (!node.children) {
11813 leaves.push(node);
11814 }
11815 });
11816 return leaves;
11817});
11818
11819
11820/***/ }),
11821
11822/***/ "./node_modules/d3-hierarchy/src/hierarchy/links.js":
11823/*!**********************************************************!*\
11824 !*** ./node_modules/d3-hierarchy/src/hierarchy/links.js ***!
11825 \**********************************************************/
11826/*! exports provided: default */
11827/***/ (function(module, __webpack_exports__, __webpack_require__) {
11828
11829"use strict";
11830__webpack_require__.r(__webpack_exports__);
11831/* harmony default export */ __webpack_exports__["default"] = (function() {
11832 var root = this, links = [];
11833 root.each(function(node) {
11834 if (node !== root) { // Don’t include the root’s parent, if any.
11835 links.push({source: node.parent, target: node});
11836 }
11837 });
11838 return links;
11839});
11840
11841
11842/***/ }),
11843
11844/***/ "./node_modules/d3-hierarchy/src/hierarchy/path.js":
11845/*!*********************************************************!*\
11846 !*** ./node_modules/d3-hierarchy/src/hierarchy/path.js ***!
11847 \*********************************************************/
11848/*! exports provided: default */
11849/***/ (function(module, __webpack_exports__, __webpack_require__) {
11850
11851"use strict";
11852__webpack_require__.r(__webpack_exports__);
11853/* harmony default export */ __webpack_exports__["default"] = (function(end) {
11854 var start = this,
11855 ancestor = leastCommonAncestor(start, end),
11856 nodes = [start];
11857 while (start !== ancestor) {
11858 start = start.parent;
11859 nodes.push(start);
11860 }
11861 var k = nodes.length;
11862 while (end !== ancestor) {
11863 nodes.splice(k, 0, end);
11864 end = end.parent;
11865 }
11866 return nodes;
11867});
11868
11869function leastCommonAncestor(a, b) {
11870 if (a === b) return a;
11871 var aNodes = a.ancestors(),
11872 bNodes = b.ancestors(),
11873 c = null;
11874 a = aNodes.pop();
11875 b = bNodes.pop();
11876 while (a === b) {
11877 c = a;
11878 a = aNodes.pop();
11879 b = bNodes.pop();
11880 }
11881 return c;
11882}
11883
11884
11885/***/ }),
11886
11887/***/ "./node_modules/d3-hierarchy/src/hierarchy/sort.js":
11888/*!*********************************************************!*\
11889 !*** ./node_modules/d3-hierarchy/src/hierarchy/sort.js ***!
11890 \*********************************************************/
11891/*! exports provided: default */
11892/***/ (function(module, __webpack_exports__, __webpack_require__) {
11893
11894"use strict";
11895__webpack_require__.r(__webpack_exports__);
11896/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
11897 return this.eachBefore(function(node) {
11898 if (node.children) {
11899 node.children.sort(compare);
11900 }
11901 });
11902});
11903
11904
11905/***/ }),
11906
11907/***/ "./node_modules/d3-hierarchy/src/hierarchy/sum.js":
11908/*!********************************************************!*\
11909 !*** ./node_modules/d3-hierarchy/src/hierarchy/sum.js ***!
11910 \********************************************************/
11911/*! exports provided: default */
11912/***/ (function(module, __webpack_exports__, __webpack_require__) {
11913
11914"use strict";
11915__webpack_require__.r(__webpack_exports__);
11916/* harmony default export */ __webpack_exports__["default"] = (function(value) {
11917 return this.eachAfter(function(node) {
11918 var sum = +value(node.data) || 0,
11919 children = node.children,
11920 i = children && children.length;
11921 while (--i >= 0) sum += children[i].value;
11922 node.value = sum;
11923 });
11924});
11925
11926
11927/***/ }),
11928
11929/***/ "./node_modules/d3-hierarchy/src/index.js":
11930/*!************************************************!*\
11931 !*** ./node_modules/d3-hierarchy/src/index.js ***!
11932 \************************************************/
11933/*! exports provided: cluster, hierarchy, pack, packSiblings, packEnclose, partition, stratify, tree, treemap, treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify */
11934/***/ (function(module, __webpack_exports__, __webpack_require__) {
11935
11936"use strict";
11937__webpack_require__.r(__webpack_exports__);
11938/* harmony import */ var _cluster_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cluster.js */ "./node_modules/d3-hierarchy/src/cluster.js");
11939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cluster", function() { return _cluster_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
11940
11941/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hierarchy/index.js */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
11942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hierarchy", function() { return _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
11943
11944/* harmony import */ var _pack_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pack/index.js */ "./node_modules/d3-hierarchy/src/pack/index.js");
11945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pack", function() { return _pack_index_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
11946
11947/* harmony import */ var _pack_siblings_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pack/siblings.js */ "./node_modules/d3-hierarchy/src/pack/siblings.js");
11948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packSiblings", function() { return _pack_siblings_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
11949
11950/* harmony import */ var _pack_enclose_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pack/enclose.js */ "./node_modules/d3-hierarchy/src/pack/enclose.js");
11951/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return _pack_enclose_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
11952
11953/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./partition.js */ "./node_modules/d3-hierarchy/src/partition.js");
11954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _partition_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });
11955
11956/* harmony import */ var _stratify_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./stratify.js */ "./node_modules/d3-hierarchy/src/stratify.js");
11957/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stratify", function() { return _stratify_js__WEBPACK_IMPORTED_MODULE_6__["default"]; });
11958
11959/* harmony import */ var _tree_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tree.js */ "./node_modules/d3-hierarchy/src/tree.js");
11960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tree", function() { return _tree_js__WEBPACK_IMPORTED_MODULE_7__["default"]; });
11961
11962/* harmony import */ var _treemap_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./treemap/index.js */ "./node_modules/d3-hierarchy/src/treemap/index.js");
11963/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemap", function() { return _treemap_index_js__WEBPACK_IMPORTED_MODULE_8__["default"]; });
11964
11965/* harmony import */ var _treemap_binary_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./treemap/binary.js */ "./node_modules/d3-hierarchy/src/treemap/binary.js");
11966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapBinary", function() { return _treemap_binary_js__WEBPACK_IMPORTED_MODULE_9__["default"]; });
11967
11968/* harmony import */ var _treemap_dice_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./treemap/dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
11969/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapDice", function() { return _treemap_dice_js__WEBPACK_IMPORTED_MODULE_10__["default"]; });
11970
11971/* harmony import */ var _treemap_slice_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./treemap/slice.js */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
11972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSlice", function() { return _treemap_slice_js__WEBPACK_IMPORTED_MODULE_11__["default"]; });
11973
11974/* harmony import */ var _treemap_sliceDice_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./treemap/sliceDice.js */ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js");
11975/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSliceDice", function() { return _treemap_sliceDice_js__WEBPACK_IMPORTED_MODULE_12__["default"]; });
11976
11977/* harmony import */ var _treemap_squarify_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./treemap/squarify.js */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
11978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSquarify", function() { return _treemap_squarify_js__WEBPACK_IMPORTED_MODULE_13__["default"]; });
11979
11980/* harmony import */ var _treemap_resquarify_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./treemap/resquarify.js */ "./node_modules/d3-hierarchy/src/treemap/resquarify.js");
11981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapResquarify", function() { return _treemap_resquarify_js__WEBPACK_IMPORTED_MODULE_14__["default"]; });
11982
11983
11984
11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000/***/ }),
12001
12002/***/ "./node_modules/d3-hierarchy/src/pack/enclose.js":
12003/*!*******************************************************!*\
12004 !*** ./node_modules/d3-hierarchy/src/pack/enclose.js ***!
12005 \*******************************************************/
12006/*! exports provided: default */
12007/***/ (function(module, __webpack_exports__, __webpack_require__) {
12008
12009"use strict";
12010__webpack_require__.r(__webpack_exports__);
12011/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array.js */ "./node_modules/d3-hierarchy/src/array.js");
12012
12013
12014/* harmony default export */ __webpack_exports__["default"] = (function(circles) {
12015 var i = 0, n = (circles = Object(_array_js__WEBPACK_IMPORTED_MODULE_0__["shuffle"])(_array_js__WEBPACK_IMPORTED_MODULE_0__["slice"].call(circles))).length, B = [], p, e;
12016
12017 while (i < n) {
12018 p = circles[i];
12019 if (e && enclosesWeak(e, p)) ++i;
12020 else e = encloseBasis(B = extendBasis(B, p)), i = 0;
12021 }
12022
12023 return e;
12024});
12025
12026function extendBasis(B, p) {
12027 var i, j;
12028
12029 if (enclosesWeakAll(p, B)) return [p];
12030
12031 // If we get here then B must have at least one element.
12032 for (i = 0; i < B.length; ++i) {
12033 if (enclosesNot(p, B[i])
12034 && enclosesWeakAll(encloseBasis2(B[i], p), B)) {
12035 return [B[i], p];
12036 }
12037 }
12038
12039 // If we get here then B must have at least two elements.
12040 for (i = 0; i < B.length - 1; ++i) {
12041 for (j = i + 1; j < B.length; ++j) {
12042 if (enclosesNot(encloseBasis2(B[i], B[j]), p)
12043 && enclosesNot(encloseBasis2(B[i], p), B[j])
12044 && enclosesNot(encloseBasis2(B[j], p), B[i])
12045 && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {
12046 return [B[i], B[j], p];
12047 }
12048 }
12049 }
12050
12051 // If we get here then something is very wrong.
12052 throw new Error;
12053}
12054
12055function enclosesNot(a, b) {
12056 var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;
12057 return dr < 0 || dr * dr < dx * dx + dy * dy;
12058}
12059
12060function enclosesWeak(a, b) {
12061 var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;
12062 return dr > 0 && dr * dr > dx * dx + dy * dy;
12063}
12064
12065function enclosesWeakAll(a, B) {
12066 for (var i = 0; i < B.length; ++i) {
12067 if (!enclosesWeak(a, B[i])) {
12068 return false;
12069 }
12070 }
12071 return true;
12072}
12073
12074function encloseBasis(B) {
12075 switch (B.length) {
12076 case 1: return encloseBasis1(B[0]);
12077 case 2: return encloseBasis2(B[0], B[1]);
12078 case 3: return encloseBasis3(B[0], B[1], B[2]);
12079 }
12080}
12081
12082function encloseBasis1(a) {
12083 return {
12084 x: a.x,
12085 y: a.y,
12086 r: a.r
12087 };
12088}
12089
12090function encloseBasis2(a, b) {
12091 var x1 = a.x, y1 = a.y, r1 = a.r,
12092 x2 = b.x, y2 = b.y, r2 = b.r,
12093 x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,
12094 l = Math.sqrt(x21 * x21 + y21 * y21);
12095 return {
12096 x: (x1 + x2 + x21 / l * r21) / 2,
12097 y: (y1 + y2 + y21 / l * r21) / 2,
12098 r: (l + r1 + r2) / 2
12099 };
12100}
12101
12102function encloseBasis3(a, b, c) {
12103 var x1 = a.x, y1 = a.y, r1 = a.r,
12104 x2 = b.x, y2 = b.y, r2 = b.r,
12105 x3 = c.x, y3 = c.y, r3 = c.r,
12106 a2 = x1 - x2,
12107 a3 = x1 - x3,
12108 b2 = y1 - y2,
12109 b3 = y1 - y3,
12110 c2 = r2 - r1,
12111 c3 = r3 - r1,
12112 d1 = x1 * x1 + y1 * y1 - r1 * r1,
12113 d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
12114 d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
12115 ab = a3 * b2 - a2 * b3,
12116 xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
12117 xb = (b3 * c2 - b2 * c3) / ab,
12118 ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
12119 yb = (a2 * c3 - a3 * c2) / ab,
12120 A = xb * xb + yb * yb - 1,
12121 B = 2 * (r1 + xa * xb + ya * yb),
12122 C = xa * xa + ya * ya - r1 * r1,
12123 r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
12124 return {
12125 x: x1 + xa + xb * r,
12126 y: y1 + ya + yb * r,
12127 r: r
12128 };
12129}
12130
12131
12132/***/ }),
12133
12134/***/ "./node_modules/d3-hierarchy/src/pack/index.js":
12135/*!*****************************************************!*\
12136 !*** ./node_modules/d3-hierarchy/src/pack/index.js ***!
12137 \*****************************************************/
12138/*! exports provided: default */
12139/***/ (function(module, __webpack_exports__, __webpack_require__) {
12140
12141"use strict";
12142__webpack_require__.r(__webpack_exports__);
12143/* harmony import */ var _siblings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./siblings.js */ "./node_modules/d3-hierarchy/src/pack/siblings.js");
12144/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../accessors.js */ "./node_modules/d3-hierarchy/src/accessors.js");
12145/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant.js */ "./node_modules/d3-hierarchy/src/constant.js");
12146
12147
12148
12149
12150function defaultRadius(d) {
12151 return Math.sqrt(d.value);
12152}
12153
12154/* harmony default export */ __webpack_exports__["default"] = (function() {
12155 var radius = null,
12156 dx = 1,
12157 dy = 1,
12158 padding = _constant_js__WEBPACK_IMPORTED_MODULE_2__["constantZero"];
12159
12160 function pack(root) {
12161 root.x = dx / 2, root.y = dy / 2;
12162 if (radius) {
12163 root.eachBefore(radiusLeaf(radius))
12164 .eachAfter(packChildren(padding, 0.5))
12165 .eachBefore(translateChild(1));
12166 } else {
12167 root.eachBefore(radiusLeaf(defaultRadius))
12168 .eachAfter(packChildren(_constant_js__WEBPACK_IMPORTED_MODULE_2__["constantZero"], 1))
12169 .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))
12170 .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
12171 }
12172 return root;
12173 }
12174
12175 pack.radius = function(x) {
12176 return arguments.length ? (radius = Object(_accessors_js__WEBPACK_IMPORTED_MODULE_1__["optional"])(x), pack) : radius;
12177 };
12178
12179 pack.size = function(x) {
12180 return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
12181 };
12182
12183 pack.padding = function(x) {
12184 return arguments.length ? (padding = typeof x === "function" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+x), pack) : padding;
12185 };
12186
12187 return pack;
12188});
12189
12190function radiusLeaf(radius) {
12191 return function(node) {
12192 if (!node.children) {
12193 node.r = Math.max(0, +radius(node) || 0);
12194 }
12195 };
12196}
12197
12198function packChildren(padding, k) {
12199 return function(node) {
12200 if (children = node.children) {
12201 var children,
12202 i,
12203 n = children.length,
12204 r = padding(node) * k || 0,
12205 e;
12206
12207 if (r) for (i = 0; i < n; ++i) children[i].r += r;
12208 e = Object(_siblings_js__WEBPACK_IMPORTED_MODULE_0__["packEnclose"])(children);
12209 if (r) for (i = 0; i < n; ++i) children[i].r -= r;
12210 node.r = e + r;
12211 }
12212 };
12213}
12214
12215function translateChild(k) {
12216 return function(node) {
12217 var parent = node.parent;
12218 node.r *= k;
12219 if (parent) {
12220 node.x = parent.x + k * node.x;
12221 node.y = parent.y + k * node.y;
12222 }
12223 };
12224}
12225
12226
12227/***/ }),
12228
12229/***/ "./node_modules/d3-hierarchy/src/pack/siblings.js":
12230/*!********************************************************!*\
12231 !*** ./node_modules/d3-hierarchy/src/pack/siblings.js ***!
12232 \********************************************************/
12233/*! exports provided: packEnclose, default */
12234/***/ (function(module, __webpack_exports__, __webpack_require__) {
12235
12236"use strict";
12237__webpack_require__.r(__webpack_exports__);
12238/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return packEnclose; });
12239/* harmony import */ var _enclose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enclose.js */ "./node_modules/d3-hierarchy/src/pack/enclose.js");
12240
12241
12242function place(b, a, c) {
12243 var dx = b.x - a.x, x, a2,
12244 dy = b.y - a.y, y, b2,
12245 d2 = dx * dx + dy * dy;
12246 if (d2) {
12247 a2 = a.r + c.r, a2 *= a2;
12248 b2 = b.r + c.r, b2 *= b2;
12249 if (a2 > b2) {
12250 x = (d2 + b2 - a2) / (2 * d2);
12251 y = Math.sqrt(Math.max(0, b2 / d2 - x * x));
12252 c.x = b.x - x * dx - y * dy;
12253 c.y = b.y - x * dy + y * dx;
12254 } else {
12255 x = (d2 + a2 - b2) / (2 * d2);
12256 y = Math.sqrt(Math.max(0, a2 / d2 - x * x));
12257 c.x = a.x + x * dx - y * dy;
12258 c.y = a.y + x * dy + y * dx;
12259 }
12260 } else {
12261 c.x = a.x + c.r;
12262 c.y = a.y;
12263 }
12264}
12265
12266function intersects(a, b) {
12267 var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;
12268 return dr > 0 && dr * dr > dx * dx + dy * dy;
12269}
12270
12271function score(node) {
12272 var a = node._,
12273 b = node.next._,
12274 ab = a.r + b.r,
12275 dx = (a.x * b.r + b.x * a.r) / ab,
12276 dy = (a.y * b.r + b.y * a.r) / ab;
12277 return dx * dx + dy * dy;
12278}
12279
12280function Node(circle) {
12281 this._ = circle;
12282 this.next = null;
12283 this.previous = null;
12284}
12285
12286function packEnclose(circles) {
12287 if (!(n = circles.length)) return 0;
12288
12289 var a, b, c, n, aa, ca, i, j, k, sj, sk;
12290
12291 // Place the first circle.
12292 a = circles[0], a.x = 0, a.y = 0;
12293 if (!(n > 1)) return a.r;
12294
12295 // Place the second circle.
12296 b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;
12297 if (!(n > 2)) return a.r + b.r;
12298
12299 // Place the third circle.
12300 place(b, a, c = circles[2]);
12301
12302 // Initialize the front-chain using the first three circles a, b and c.
12303 a = new Node(a), b = new Node(b), c = new Node(c);
12304 a.next = c.previous = b;
12305 b.next = a.previous = c;
12306 c.next = b.previous = a;
12307
12308 // Attempt to place each remaining circle…
12309 pack: for (i = 3; i < n; ++i) {
12310 place(a._, b._, c = circles[i]), c = new Node(c);
12311
12312 // Find the closest intersecting circle on the front-chain, if any.
12313 // “Closeness” is determined by linear distance along the front-chain.
12314 // “Ahead” or “behind” is likewise determined by linear distance.
12315 j = b.next, k = a.previous, sj = b._.r, sk = a._.r;
12316 do {
12317 if (sj <= sk) {
12318 if (intersects(j._, c._)) {
12319 b = j, a.next = b, b.previous = a, --i;
12320 continue pack;
12321 }
12322 sj += j._.r, j = j.next;
12323 } else {
12324 if (intersects(k._, c._)) {
12325 a = k, a.next = b, b.previous = a, --i;
12326 continue pack;
12327 }
12328 sk += k._.r, k = k.previous;
12329 }
12330 } while (j !== k.next);
12331
12332 // Success! Insert the new circle c between a and b.
12333 c.previous = a, c.next = b, a.next = b.previous = b = c;
12334
12335 // Compute the new closest circle pair to the centroid.
12336 aa = score(a);
12337 while ((c = c.next) !== b) {
12338 if ((ca = score(c)) < aa) {
12339 a = c, aa = ca;
12340 }
12341 }
12342 b = a.next;
12343 }
12344
12345 // Compute the enclosing circle of the front chain.
12346 a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = Object(_enclose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a);
12347
12348 // Translate the circles to put the enclosing circle around the origin.
12349 for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;
12350
12351 return c.r;
12352}
12353
12354/* harmony default export */ __webpack_exports__["default"] = (function(circles) {
12355 packEnclose(circles);
12356 return circles;
12357});
12358
12359
12360/***/ }),
12361
12362/***/ "./node_modules/d3-hierarchy/src/partition.js":
12363/*!****************************************************!*\
12364 !*** ./node_modules/d3-hierarchy/src/partition.js ***!
12365 \****************************************************/
12366/*! exports provided: default */
12367/***/ (function(module, __webpack_exports__, __webpack_require__) {
12368
12369"use strict";
12370__webpack_require__.r(__webpack_exports__);
12371/* harmony import */ var _treemap_round_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./treemap/round.js */ "./node_modules/d3-hierarchy/src/treemap/round.js");
12372/* harmony import */ var _treemap_dice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./treemap/dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
12373
12374
12375
12376/* harmony default export */ __webpack_exports__["default"] = (function() {
12377 var dx = 1,
12378 dy = 1,
12379 padding = 0,
12380 round = false;
12381
12382 function partition(root) {
12383 var n = root.height + 1;
12384 root.x0 =
12385 root.y0 = padding;
12386 root.x1 = dx;
12387 root.y1 = dy / n;
12388 root.eachBefore(positionNode(dy, n));
12389 if (round) root.eachBefore(_treemap_round_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
12390 return root;
12391 }
12392
12393 function positionNode(dy, n) {
12394 return function(node) {
12395 if (node.children) {
12396 Object(_treemap_dice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);
12397 }
12398 var x0 = node.x0,
12399 y0 = node.y0,
12400 x1 = node.x1 - padding,
12401 y1 = node.y1 - padding;
12402 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
12403 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
12404 node.x0 = x0;
12405 node.y0 = y0;
12406 node.x1 = x1;
12407 node.y1 = y1;
12408 };
12409 }
12410
12411 partition.round = function(x) {
12412 return arguments.length ? (round = !!x, partition) : round;
12413 };
12414
12415 partition.size = function(x) {
12416 return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];
12417 };
12418
12419 partition.padding = function(x) {
12420 return arguments.length ? (padding = +x, partition) : padding;
12421 };
12422
12423 return partition;
12424});
12425
12426
12427/***/ }),
12428
12429/***/ "./node_modules/d3-hierarchy/src/stratify.js":
12430/*!***************************************************!*\
12431 !*** ./node_modules/d3-hierarchy/src/stratify.js ***!
12432 \***************************************************/
12433/*! exports provided: default */
12434/***/ (function(module, __webpack_exports__, __webpack_require__) {
12435
12436"use strict";
12437__webpack_require__.r(__webpack_exports__);
12438/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./accessors.js */ "./node_modules/d3-hierarchy/src/accessors.js");
12439/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hierarchy/index.js */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
12440
12441
12442
12443var keyPrefix = "$", // Protect against keys like “__proto__”.
12444 preroot = {depth: -1},
12445 ambiguous = {};
12446
12447function defaultId(d) {
12448 return d.id;
12449}
12450
12451function defaultParentId(d) {
12452 return d.parentId;
12453}
12454
12455/* harmony default export */ __webpack_exports__["default"] = (function() {
12456 var id = defaultId,
12457 parentId = defaultParentId;
12458
12459 function stratify(data) {
12460 var d,
12461 i,
12462 n = data.length,
12463 root,
12464 parent,
12465 node,
12466 nodes = new Array(n),
12467 nodeId,
12468 nodeKey,
12469 nodeByKey = {};
12470
12471 for (i = 0; i < n; ++i) {
12472 d = data[i], node = nodes[i] = new _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__["Node"](d);
12473 if ((nodeId = id(d, i, data)) != null && (nodeId += "")) {
12474 nodeKey = keyPrefix + (node.id = nodeId);
12475 nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;
12476 }
12477 }
12478
12479 for (i = 0; i < n; ++i) {
12480 node = nodes[i], nodeId = parentId(data[i], i, data);
12481 if (nodeId == null || !(nodeId += "")) {
12482 if (root) throw new Error("multiple roots");
12483 root = node;
12484 } else {
12485 parent = nodeByKey[keyPrefix + nodeId];
12486 if (!parent) throw new Error("missing: " + nodeId);
12487 if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
12488 if (parent.children) parent.children.push(node);
12489 else parent.children = [node];
12490 node.parent = parent;
12491 }
12492 }
12493
12494 if (!root) throw new Error("no root");
12495 root.parent = preroot;
12496 root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(_hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__["computeHeight"]);
12497 root.parent = null;
12498 if (n > 0) throw new Error("cycle");
12499
12500 return root;
12501 }
12502
12503 stratify.id = function(x) {
12504 return arguments.length ? (id = Object(_accessors_js__WEBPACK_IMPORTED_MODULE_0__["required"])(x), stratify) : id;
12505 };
12506
12507 stratify.parentId = function(x) {
12508 return arguments.length ? (parentId = Object(_accessors_js__WEBPACK_IMPORTED_MODULE_0__["required"])(x), stratify) : parentId;
12509 };
12510
12511 return stratify;
12512});
12513
12514
12515/***/ }),
12516
12517/***/ "./node_modules/d3-hierarchy/src/tree.js":
12518/*!***********************************************!*\
12519 !*** ./node_modules/d3-hierarchy/src/tree.js ***!
12520 \***********************************************/
12521/*! exports provided: default */
12522/***/ (function(module, __webpack_exports__, __webpack_require__) {
12523
12524"use strict";
12525__webpack_require__.r(__webpack_exports__);
12526/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hierarchy/index.js */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
12527
12528
12529function defaultSeparation(a, b) {
12530 return a.parent === b.parent ? 1 : 2;
12531}
12532
12533// function radialSeparation(a, b) {
12534// return (a.parent === b.parent ? 1 : 2) / a.depth;
12535// }
12536
12537// This function is used to traverse the left contour of a subtree (or
12538// subforest). It returns the successor of v on this contour. This successor is
12539// either given by the leftmost child of v or by the thread of v. The function
12540// returns null if and only if v is on the highest level of its subtree.
12541function nextLeft(v) {
12542 var children = v.children;
12543 return children ? children[0] : v.t;
12544}
12545
12546// This function works analogously to nextLeft.
12547function nextRight(v) {
12548 var children = v.children;
12549 return children ? children[children.length - 1] : v.t;
12550}
12551
12552// Shifts the current subtree rooted at w+. This is done by increasing
12553// prelim(w+) and mod(w+) by shift.
12554function moveSubtree(wm, wp, shift) {
12555 var change = shift / (wp.i - wm.i);
12556 wp.c -= change;
12557 wp.s += shift;
12558 wm.c += change;
12559 wp.z += shift;
12560 wp.m += shift;
12561}
12562
12563// All other shifts, applied to the smaller subtrees between w- and w+, are
12564// performed by this function. To prepare the shifts, we have to adjust
12565// change(w+), shift(w+), and change(w-).
12566function executeShifts(v) {
12567 var shift = 0,
12568 change = 0,
12569 children = v.children,
12570 i = children.length,
12571 w;
12572 while (--i >= 0) {
12573 w = children[i];
12574 w.z += shift;
12575 w.m += shift;
12576 shift += w.s + (change += w.c);
12577 }
12578}
12579
12580// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,
12581// returns the specified (default) ancestor.
12582function nextAncestor(vim, v, ancestor) {
12583 return vim.a.parent === v.parent ? vim.a : ancestor;
12584}
12585
12586function TreeNode(node, i) {
12587 this._ = node;
12588 this.parent = null;
12589 this.children = null;
12590 this.A = null; // default ancestor
12591 this.a = this; // ancestor
12592 this.z = 0; // prelim
12593 this.m = 0; // mod
12594 this.c = 0; // change
12595 this.s = 0; // shift
12596 this.t = null; // thread
12597 this.i = i; // number
12598}
12599
12600TreeNode.prototype = Object.create(_hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__["Node"].prototype);
12601
12602function treeRoot(root) {
12603 var tree = new TreeNode(root, 0),
12604 node,
12605 nodes = [tree],
12606 child,
12607 children,
12608 i,
12609 n;
12610
12611 while (node = nodes.pop()) {
12612 if (children = node._.children) {
12613 node.children = new Array(n = children.length);
12614 for (i = n - 1; i >= 0; --i) {
12615 nodes.push(child = node.children[i] = new TreeNode(children[i], i));
12616 child.parent = node;
12617 }
12618 }
12619 }
12620
12621 (tree.parent = new TreeNode(null, 0)).children = [tree];
12622 return tree;
12623}
12624
12625// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
12626/* harmony default export */ __webpack_exports__["default"] = (function() {
12627 var separation = defaultSeparation,
12628 dx = 1,
12629 dy = 1,
12630 nodeSize = null;
12631
12632 function tree(root) {
12633 var t = treeRoot(root);
12634
12635 // Compute the layout using Buchheim et al.’s algorithm.
12636 t.eachAfter(firstWalk), t.parent.m = -t.z;
12637 t.eachBefore(secondWalk);
12638
12639 // If a fixed node size is specified, scale x and y.
12640 if (nodeSize) root.eachBefore(sizeNode);
12641
12642 // If a fixed tree size is specified, scale x and y based on the extent.
12643 // Compute the left-most, right-most, and depth-most nodes for extents.
12644 else {
12645 var left = root,
12646 right = root,
12647 bottom = root;
12648 root.eachBefore(function(node) {
12649 if (node.x < left.x) left = node;
12650 if (node.x > right.x) right = node;
12651 if (node.depth > bottom.depth) bottom = node;
12652 });
12653 var s = left === right ? 1 : separation(left, right) / 2,
12654 tx = s - left.x,
12655 kx = dx / (right.x + s + tx),
12656 ky = dy / (bottom.depth || 1);
12657 root.eachBefore(function(node) {
12658 node.x = (node.x + tx) * kx;
12659 node.y = node.depth * ky;
12660 });
12661 }
12662
12663 return root;
12664 }
12665
12666 // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is
12667 // applied recursively to the children of v, as well as the function
12668 // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the
12669 // node v is placed to the midpoint of its outermost children.
12670 function firstWalk(v) {
12671 var children = v.children,
12672 siblings = v.parent.children,
12673 w = v.i ? siblings[v.i - 1] : null;
12674 if (children) {
12675 executeShifts(v);
12676 var midpoint = (children[0].z + children[children.length - 1].z) / 2;
12677 if (w) {
12678 v.z = w.z + separation(v._, w._);
12679 v.m = v.z - midpoint;
12680 } else {
12681 v.z = midpoint;
12682 }
12683 } else if (w) {
12684 v.z = w.z + separation(v._, w._);
12685 }
12686 v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
12687 }
12688
12689 // Computes all real x-coordinates by summing up the modifiers recursively.
12690 function secondWalk(v) {
12691 v._.x = v.z + v.parent.m;
12692 v.m += v.parent.m;
12693 }
12694
12695 // The core of the algorithm. Here, a new subtree is combined with the
12696 // previous subtrees. Threads are used to traverse the inside and outside
12697 // contours of the left and right subtree up to the highest common level. The
12698 // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the
12699 // superscript o means outside and i means inside, the subscript - means left
12700 // subtree and + means right subtree. For summing up the modifiers along the
12701 // contour, we use respective variables si+, si-, so-, and so+. Whenever two
12702 // nodes of the inside contours conflict, we compute the left one of the
12703 // greatest uncommon ancestors using the function ANCESTOR and call MOVE
12704 // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.
12705 // Finally, we add a new thread (if necessary).
12706 function apportion(v, w, ancestor) {
12707 if (w) {
12708 var vip = v,
12709 vop = v,
12710 vim = w,
12711 vom = vip.parent.children[0],
12712 sip = vip.m,
12713 sop = vop.m,
12714 sim = vim.m,
12715 som = vom.m,
12716 shift;
12717 while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
12718 vom = nextLeft(vom);
12719 vop = nextRight(vop);
12720 vop.a = v;
12721 shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
12722 if (shift > 0) {
12723 moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
12724 sip += shift;
12725 sop += shift;
12726 }
12727 sim += vim.m;
12728 sip += vip.m;
12729 som += vom.m;
12730 sop += vop.m;
12731 }
12732 if (vim && !nextRight(vop)) {
12733 vop.t = vim;
12734 vop.m += sim - sop;
12735 }
12736 if (vip && !nextLeft(vom)) {
12737 vom.t = vip;
12738 vom.m += sip - som;
12739 ancestor = v;
12740 }
12741 }
12742 return ancestor;
12743 }
12744
12745 function sizeNode(node) {
12746 node.x *= dx;
12747 node.y = node.depth * dy;
12748 }
12749
12750 tree.separation = function(x) {
12751 return arguments.length ? (separation = x, tree) : separation;
12752 };
12753
12754 tree.size = function(x) {
12755 return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);
12756 };
12757
12758 tree.nodeSize = function(x) {
12759 return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);
12760 };
12761
12762 return tree;
12763});
12764
12765
12766/***/ }),
12767
12768/***/ "./node_modules/d3-hierarchy/src/treemap/binary.js":
12769/*!*********************************************************!*\
12770 !*** ./node_modules/d3-hierarchy/src/treemap/binary.js ***!
12771 \*********************************************************/
12772/*! exports provided: default */
12773/***/ (function(module, __webpack_exports__, __webpack_require__) {
12774
12775"use strict";
12776__webpack_require__.r(__webpack_exports__);
12777/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
12778 var nodes = parent.children,
12779 i, n = nodes.length,
12780 sum, sums = new Array(n + 1);
12781
12782 for (sums[0] = sum = i = 0; i < n; ++i) {
12783 sums[i + 1] = sum += nodes[i].value;
12784 }
12785
12786 partition(0, n, parent.value, x0, y0, x1, y1);
12787
12788 function partition(i, j, value, x0, y0, x1, y1) {
12789 if (i >= j - 1) {
12790 var node = nodes[i];
12791 node.x0 = x0, node.y0 = y0;
12792 node.x1 = x1, node.y1 = y1;
12793 return;
12794 }
12795
12796 var valueOffset = sums[i],
12797 valueTarget = (value / 2) + valueOffset,
12798 k = i + 1,
12799 hi = j - 1;
12800
12801 while (k < hi) {
12802 var mid = k + hi >>> 1;
12803 if (sums[mid] < valueTarget) k = mid + 1;
12804 else hi = mid;
12805 }
12806
12807 if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;
12808
12809 var valueLeft = sums[k] - valueOffset,
12810 valueRight = value - valueLeft;
12811
12812 if ((x1 - x0) > (y1 - y0)) {
12813 var xk = (x0 * valueRight + x1 * valueLeft) / value;
12814 partition(i, k, valueLeft, x0, y0, xk, y1);
12815 partition(k, j, valueRight, xk, y0, x1, y1);
12816 } else {
12817 var yk = (y0 * valueRight + y1 * valueLeft) / value;
12818 partition(i, k, valueLeft, x0, y0, x1, yk);
12819 partition(k, j, valueRight, x0, yk, x1, y1);
12820 }
12821 }
12822});
12823
12824
12825/***/ }),
12826
12827/***/ "./node_modules/d3-hierarchy/src/treemap/dice.js":
12828/*!*******************************************************!*\
12829 !*** ./node_modules/d3-hierarchy/src/treemap/dice.js ***!
12830 \*******************************************************/
12831/*! exports provided: default */
12832/***/ (function(module, __webpack_exports__, __webpack_require__) {
12833
12834"use strict";
12835__webpack_require__.r(__webpack_exports__);
12836/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
12837 var nodes = parent.children,
12838 node,
12839 i = -1,
12840 n = nodes.length,
12841 k = parent.value && (x1 - x0) / parent.value;
12842
12843 while (++i < n) {
12844 node = nodes[i], node.y0 = y0, node.y1 = y1;
12845 node.x0 = x0, node.x1 = x0 += node.value * k;
12846 }
12847});
12848
12849
12850/***/ }),
12851
12852/***/ "./node_modules/d3-hierarchy/src/treemap/index.js":
12853/*!********************************************************!*\
12854 !*** ./node_modules/d3-hierarchy/src/treemap/index.js ***!
12855 \********************************************************/
12856/*! exports provided: default */
12857/***/ (function(module, __webpack_exports__, __webpack_require__) {
12858
12859"use strict";
12860__webpack_require__.r(__webpack_exports__);
12861/* harmony import */ var _round_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./round.js */ "./node_modules/d3-hierarchy/src/treemap/round.js");
12862/* harmony import */ var _squarify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./squarify.js */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
12863/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../accessors.js */ "./node_modules/d3-hierarchy/src/accessors.js");
12864/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constant.js */ "./node_modules/d3-hierarchy/src/constant.js");
12865
12866
12867
12868
12869
12870/* harmony default export */ __webpack_exports__["default"] = (function() {
12871 var tile = _squarify_js__WEBPACK_IMPORTED_MODULE_1__["default"],
12872 round = false,
12873 dx = 1,
12874 dy = 1,
12875 paddingStack = [0],
12876 paddingInner = _constant_js__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
12877 paddingTop = _constant_js__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
12878 paddingRight = _constant_js__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
12879 paddingBottom = _constant_js__WEBPACK_IMPORTED_MODULE_3__["constantZero"],
12880 paddingLeft = _constant_js__WEBPACK_IMPORTED_MODULE_3__["constantZero"];
12881
12882 function treemap(root) {
12883 root.x0 =
12884 root.y0 = 0;
12885 root.x1 = dx;
12886 root.y1 = dy;
12887 root.eachBefore(positionNode);
12888 paddingStack = [0];
12889 if (round) root.eachBefore(_round_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
12890 return root;
12891 }
12892
12893 function positionNode(node) {
12894 var p = paddingStack[node.depth],
12895 x0 = node.x0 + p,
12896 y0 = node.y0 + p,
12897 x1 = node.x1 - p,
12898 y1 = node.y1 - p;
12899 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
12900 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
12901 node.x0 = x0;
12902 node.y0 = y0;
12903 node.x1 = x1;
12904 node.y1 = y1;
12905 if (node.children) {
12906 p = paddingStack[node.depth + 1] = paddingInner(node) / 2;
12907 x0 += paddingLeft(node) - p;
12908 y0 += paddingTop(node) - p;
12909 x1 -= paddingRight(node) - p;
12910 y1 -= paddingBottom(node) - p;
12911 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
12912 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
12913 tile(node, x0, y0, x1, y1);
12914 }
12915 }
12916
12917 treemap.round = function(x) {
12918 return arguments.length ? (round = !!x, treemap) : round;
12919 };
12920
12921 treemap.size = function(x) {
12922 return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];
12923 };
12924
12925 treemap.tile = function(x) {
12926 return arguments.length ? (tile = Object(_accessors_js__WEBPACK_IMPORTED_MODULE_2__["required"])(x), treemap) : tile;
12927 };
12928
12929 treemap.padding = function(x) {
12930 return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();
12931 };
12932
12933 treemap.paddingInner = function(x) {
12934 return arguments.length ? (paddingInner = typeof x === "function" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingInner;
12935 };
12936
12937 treemap.paddingOuter = function(x) {
12938 return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();
12939 };
12940
12941 treemap.paddingTop = function(x) {
12942 return arguments.length ? (paddingTop = typeof x === "function" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingTop;
12943 };
12944
12945 treemap.paddingRight = function(x) {
12946 return arguments.length ? (paddingRight = typeof x === "function" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingRight;
12947 };
12948
12949 treemap.paddingBottom = function(x) {
12950 return arguments.length ? (paddingBottom = typeof x === "function" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingBottom;
12951 };
12952
12953 treemap.paddingLeft = function(x) {
12954 return arguments.length ? (paddingLeft = typeof x === "function" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+x), treemap) : paddingLeft;
12955 };
12956
12957 return treemap;
12958});
12959
12960
12961/***/ }),
12962
12963/***/ "./node_modules/d3-hierarchy/src/treemap/resquarify.js":
12964/*!*************************************************************!*\
12965 !*** ./node_modules/d3-hierarchy/src/treemap/resquarify.js ***!
12966 \*************************************************************/
12967/*! exports provided: default */
12968/***/ (function(module, __webpack_exports__, __webpack_require__) {
12969
12970"use strict";
12971__webpack_require__.r(__webpack_exports__);
12972/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
12973/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
12974/* harmony import */ var _squarify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./squarify.js */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
12975
12976
12977
12978
12979/* harmony default export */ __webpack_exports__["default"] = ((function custom(ratio) {
12980
12981 function resquarify(parent, x0, y0, x1, y1) {
12982 if ((rows = parent._squarify) && (rows.ratio === ratio)) {
12983 var rows,
12984 row,
12985 nodes,
12986 i,
12987 j = -1,
12988 n,
12989 m = rows.length,
12990 value = parent.value;
12991
12992 while (++j < m) {
12993 row = rows[j], nodes = row.children;
12994 for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;
12995 if (row.dice) Object(_dice_js__WEBPACK_IMPORTED_MODULE_0__["default"])(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);
12996 else Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);
12997 value -= row.value;
12998 }
12999 } else {
13000 parent._squarify = rows = Object(_squarify_js__WEBPACK_IMPORTED_MODULE_2__["squarifyRatio"])(ratio, parent, x0, y0, x1, y1);
13001 rows.ratio = ratio;
13002 }
13003 }
13004
13005 resquarify.ratio = function(x) {
13006 return custom((x = +x) > 1 ? x : 1);
13007 };
13008
13009 return resquarify;
13010})(_squarify_js__WEBPACK_IMPORTED_MODULE_2__["phi"]));
13011
13012
13013/***/ }),
13014
13015/***/ "./node_modules/d3-hierarchy/src/treemap/round.js":
13016/*!********************************************************!*\
13017 !*** ./node_modules/d3-hierarchy/src/treemap/round.js ***!
13018 \********************************************************/
13019/*! exports provided: default */
13020/***/ (function(module, __webpack_exports__, __webpack_require__) {
13021
13022"use strict";
13023__webpack_require__.r(__webpack_exports__);
13024/* harmony default export */ __webpack_exports__["default"] = (function(node) {
13025 node.x0 = Math.round(node.x0);
13026 node.y0 = Math.round(node.y0);
13027 node.x1 = Math.round(node.x1);
13028 node.y1 = Math.round(node.y1);
13029});
13030
13031
13032/***/ }),
13033
13034/***/ "./node_modules/d3-hierarchy/src/treemap/slice.js":
13035/*!********************************************************!*\
13036 !*** ./node_modules/d3-hierarchy/src/treemap/slice.js ***!
13037 \********************************************************/
13038/*! exports provided: default */
13039/***/ (function(module, __webpack_exports__, __webpack_require__) {
13040
13041"use strict";
13042__webpack_require__.r(__webpack_exports__);
13043/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
13044 var nodes = parent.children,
13045 node,
13046 i = -1,
13047 n = nodes.length,
13048 k = parent.value && (y1 - y0) / parent.value;
13049
13050 while (++i < n) {
13051 node = nodes[i], node.x0 = x0, node.x1 = x1;
13052 node.y0 = y0, node.y1 = y0 += node.value * k;
13053 }
13054});
13055
13056
13057/***/ }),
13058
13059/***/ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js":
13060/*!************************************************************!*\
13061 !*** ./node_modules/d3-hierarchy/src/treemap/sliceDice.js ***!
13062 \************************************************************/
13063/*! exports provided: default */
13064/***/ (function(module, __webpack_exports__, __webpack_require__) {
13065
13066"use strict";
13067__webpack_require__.r(__webpack_exports__);
13068/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
13069/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
13070
13071
13072
13073/* harmony default export */ __webpack_exports__["default"] = (function(parent, x0, y0, x1, y1) {
13074 (parent.depth & 1 ? _slice_js__WEBPACK_IMPORTED_MODULE_1__["default"] : _dice_js__WEBPACK_IMPORTED_MODULE_0__["default"])(parent, x0, y0, x1, y1);
13075});
13076
13077
13078/***/ }),
13079
13080/***/ "./node_modules/d3-hierarchy/src/treemap/squarify.js":
13081/*!***********************************************************!*\
13082 !*** ./node_modules/d3-hierarchy/src/treemap/squarify.js ***!
13083 \***********************************************************/
13084/*! exports provided: phi, squarifyRatio, default */
13085/***/ (function(module, __webpack_exports__, __webpack_require__) {
13086
13087"use strict";
13088__webpack_require__.r(__webpack_exports__);
13089/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "phi", function() { return phi; });
13090/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "squarifyRatio", function() { return squarifyRatio; });
13091/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
13092/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
13093
13094
13095
13096var phi = (1 + Math.sqrt(5)) / 2;
13097
13098function squarifyRatio(ratio, parent, x0, y0, x1, y1) {
13099 var rows = [],
13100 nodes = parent.children,
13101 row,
13102 nodeValue,
13103 i0 = 0,
13104 i1 = 0,
13105 n = nodes.length,
13106 dx, dy,
13107 value = parent.value,
13108 sumValue,
13109 minValue,
13110 maxValue,
13111 newRatio,
13112 minRatio,
13113 alpha,
13114 beta;
13115
13116 while (i0 < n) {
13117 dx = x1 - x0, dy = y1 - y0;
13118
13119 // Find the next non-empty node.
13120 do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);
13121 minValue = maxValue = sumValue;
13122 alpha = Math.max(dy / dx, dx / dy) / (value * ratio);
13123 beta = sumValue * sumValue * alpha;
13124 minRatio = Math.max(maxValue / beta, beta / minValue);
13125
13126 // Keep adding nodes while the aspect ratio maintains or improves.
13127 for (; i1 < n; ++i1) {
13128 sumValue += nodeValue = nodes[i1].value;
13129 if (nodeValue < minValue) minValue = nodeValue;
13130 if (nodeValue > maxValue) maxValue = nodeValue;
13131 beta = sumValue * sumValue * alpha;
13132 newRatio = Math.max(maxValue / beta, beta / minValue);
13133 if (newRatio > minRatio) { sumValue -= nodeValue; break; }
13134 minRatio = newRatio;
13135 }
13136
13137 // Position and record the row orientation.
13138 rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});
13139 if (row.dice) Object(_dice_js__WEBPACK_IMPORTED_MODULE_0__["default"])(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);
13140 else Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);
13141 value -= sumValue, i0 = i1;
13142 }
13143
13144 return rows;
13145}
13146
13147/* harmony default export */ __webpack_exports__["default"] = ((function custom(ratio) {
13148
13149 function squarify(parent, x0, y0, x1, y1) {
13150 squarifyRatio(ratio, parent, x0, y0, x1, y1);
13151 }
13152
13153 squarify.ratio = function(x) {
13154 return custom((x = +x) > 1 ? x : 1);
13155 };
13156
13157 return squarify;
13158})(phi));
13159
13160
13161/***/ }),
13162
13163/***/ "./node_modules/d3-interpolate/src/array.js":
13164/*!**************************************************!*\
13165 !*** ./node_modules/d3-interpolate/src/array.js ***!
13166 \**************************************************/
13167/*! exports provided: default, genericArray */
13168/***/ (function(module, __webpack_exports__, __webpack_require__) {
13169
13170"use strict";
13171__webpack_require__.r(__webpack_exports__);
13172/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "genericArray", function() { return genericArray; });
13173/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ "./node_modules/d3-interpolate/src/value.js");
13174/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./numberArray.js */ "./node_modules/d3-interpolate/src/numberArray.js");
13175
13176
13177
13178/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13179 return (Object(_numberArray_js__WEBPACK_IMPORTED_MODULE_1__["isNumberArray"])(b) ? _numberArray_js__WEBPACK_IMPORTED_MODULE_1__["default"] : genericArray)(a, b);
13180});
13181
13182function genericArray(a, b) {
13183 var nb = b ? b.length : 0,
13184 na = a ? Math.min(nb, a.length) : 0,
13185 x = new Array(na),
13186 c = new Array(nb),
13187 i;
13188
13189 for (i = 0; i < na; ++i) x[i] = Object(_value_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a[i], b[i]);
13190 for (; i < nb; ++i) c[i] = b[i];
13191
13192 return function(t) {
13193 for (i = 0; i < na; ++i) c[i] = x[i](t);
13194 return c;
13195 };
13196}
13197
13198
13199/***/ }),
13200
13201/***/ "./node_modules/d3-interpolate/src/basis.js":
13202/*!**************************************************!*\
13203 !*** ./node_modules/d3-interpolate/src/basis.js ***!
13204 \**************************************************/
13205/*! exports provided: basis, default */
13206/***/ (function(module, __webpack_exports__, __webpack_require__) {
13207
13208"use strict";
13209__webpack_require__.r(__webpack_exports__);
13210/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "basis", function() { return basis; });
13211function basis(t1, v0, v1, v2, v3) {
13212 var t2 = t1 * t1, t3 = t2 * t1;
13213 return ((1 - 3 * t1 + 3 * t2 - t3) * v0
13214 + (4 - 6 * t2 + 3 * t3) * v1
13215 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
13216 + t3 * v3) / 6;
13217}
13218
13219/* harmony default export */ __webpack_exports__["default"] = (function(values) {
13220 var n = values.length - 1;
13221 return function(t) {
13222 var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
13223 v1 = values[i],
13224 v2 = values[i + 1],
13225 v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
13226 v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
13227 return basis((t - i / n) * n, v0, v1, v2, v3);
13228 };
13229});
13230
13231
13232/***/ }),
13233
13234/***/ "./node_modules/d3-interpolate/src/basisClosed.js":
13235/*!********************************************************!*\
13236 !*** ./node_modules/d3-interpolate/src/basisClosed.js ***!
13237 \********************************************************/
13238/*! exports provided: default */
13239/***/ (function(module, __webpack_exports__, __webpack_require__) {
13240
13241"use strict";
13242__webpack_require__.r(__webpack_exports__);
13243/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-interpolate/src/basis.js");
13244
13245
13246/* harmony default export */ __webpack_exports__["default"] = (function(values) {
13247 var n = values.length;
13248 return function(t) {
13249 var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
13250 v0 = values[(i + n - 1) % n],
13251 v1 = values[i % n],
13252 v2 = values[(i + 1) % n],
13253 v3 = values[(i + 2) % n];
13254 return Object(_basis_js__WEBPACK_IMPORTED_MODULE_0__["basis"])((t - i / n) * n, v0, v1, v2, v3);
13255 };
13256});
13257
13258
13259/***/ }),
13260
13261/***/ "./node_modules/d3-interpolate/src/color.js":
13262/*!**************************************************!*\
13263 !*** ./node_modules/d3-interpolate/src/color.js ***!
13264 \**************************************************/
13265/*! exports provided: hue, gamma, default */
13266/***/ (function(module, __webpack_exports__, __webpack_require__) {
13267
13268"use strict";
13269__webpack_require__.r(__webpack_exports__);
13270/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hue", function() { return hue; });
13271/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "gamma", function() { return gamma; });
13272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return nogamma; });
13273/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-interpolate/src/constant.js");
13274
13275
13276function linear(a, d) {
13277 return function(t) {
13278 return a + t * d;
13279 };
13280}
13281
13282function exponential(a, b, y) {
13283 return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
13284 return Math.pow(a + t * b, y);
13285 };
13286}
13287
13288function hue(a, b) {
13289 var d = b - a;
13290 return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
13291}
13292
13293function gamma(y) {
13294 return (y = +y) === 1 ? nogamma : function(a, b) {
13295 return b - a ? exponential(a, b, y) : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
13296 };
13297}
13298
13299function nogamma(a, b) {
13300 var d = b - a;
13301 return d ? linear(a, d) : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
13302}
13303
13304
13305/***/ }),
13306
13307/***/ "./node_modules/d3-interpolate/src/constant.js":
13308/*!*****************************************************!*\
13309 !*** ./node_modules/d3-interpolate/src/constant.js ***!
13310 \*****************************************************/
13311/*! exports provided: default */
13312/***/ (function(module, __webpack_exports__, __webpack_require__) {
13313
13314"use strict";
13315__webpack_require__.r(__webpack_exports__);
13316/* harmony default export */ __webpack_exports__["default"] = (function(x) {
13317 return function() {
13318 return x;
13319 };
13320});
13321
13322
13323/***/ }),
13324
13325/***/ "./node_modules/d3-interpolate/src/cubehelix.js":
13326/*!******************************************************!*\
13327 !*** ./node_modules/d3-interpolate/src/cubehelix.js ***!
13328 \******************************************************/
13329/*! exports provided: default, cubehelixLong */
13330/***/ (function(module, __webpack_exports__, __webpack_require__) {
13331
13332"use strict";
13333__webpack_require__.r(__webpack_exports__);
13334/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cubehelixLong", function() { return cubehelixLong; });
13335/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13336/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
13337
13338
13339
13340function cubehelix(hue) {
13341 return (function cubehelixGamma(y) {
13342 y = +y;
13343
13344 function cubehelix(start, end) {
13345 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),
13346 s = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.s, end.s),
13347 l = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
13348 opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
13349 return function(t) {
13350 start.h = h(t);
13351 start.s = s(t);
13352 start.l = l(Math.pow(t, y));
13353 start.opacity = opacity(t);
13354 return start + "";
13355 };
13356 }
13357
13358 cubehelix.gamma = cubehelixGamma;
13359
13360 return cubehelix;
13361 })(1);
13362}
13363
13364/* harmony default export */ __webpack_exports__["default"] = (cubehelix(_color_js__WEBPACK_IMPORTED_MODULE_1__["hue"]));
13365var cubehelixLong = cubehelix(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
13366
13367
13368/***/ }),
13369
13370/***/ "./node_modules/d3-interpolate/src/date.js":
13371/*!*************************************************!*\
13372 !*** ./node_modules/d3-interpolate/src/date.js ***!
13373 \*************************************************/
13374/*! exports provided: default */
13375/***/ (function(module, __webpack_exports__, __webpack_require__) {
13376
13377"use strict";
13378__webpack_require__.r(__webpack_exports__);
13379/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13380 var d = new Date;
13381 return a = +a, b = +b, function(t) {
13382 return d.setTime(a * (1 - t) + b * t), d;
13383 };
13384});
13385
13386
13387/***/ }),
13388
13389/***/ "./node_modules/d3-interpolate/src/discrete.js":
13390/*!*****************************************************!*\
13391 !*** ./node_modules/d3-interpolate/src/discrete.js ***!
13392 \*****************************************************/
13393/*! exports provided: default */
13394/***/ (function(module, __webpack_exports__, __webpack_require__) {
13395
13396"use strict";
13397__webpack_require__.r(__webpack_exports__);
13398/* harmony default export */ __webpack_exports__["default"] = (function(range) {
13399 var n = range.length;
13400 return function(t) {
13401 return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
13402 };
13403});
13404
13405
13406/***/ }),
13407
13408/***/ "./node_modules/d3-interpolate/src/hcl.js":
13409/*!************************************************!*\
13410 !*** ./node_modules/d3-interpolate/src/hcl.js ***!
13411 \************************************************/
13412/*! exports provided: default, hclLong */
13413/***/ (function(module, __webpack_exports__, __webpack_require__) {
13414
13415"use strict";
13416__webpack_require__.r(__webpack_exports__);
13417/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hclLong", function() { return hclLong; });
13418/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13419/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
13420
13421
13422
13423function hcl(hue) {
13424 return function(start, end) {
13425 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),
13426 c = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.c, end.c),
13427 l = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
13428 opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
13429 return function(t) {
13430 start.h = h(t);
13431 start.c = c(t);
13432 start.l = l(t);
13433 start.opacity = opacity(t);
13434 return start + "";
13435 };
13436 }
13437}
13438
13439/* harmony default export */ __webpack_exports__["default"] = (hcl(_color_js__WEBPACK_IMPORTED_MODULE_1__["hue"]));
13440var hclLong = hcl(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
13441
13442
13443/***/ }),
13444
13445/***/ "./node_modules/d3-interpolate/src/hsl.js":
13446/*!************************************************!*\
13447 !*** ./node_modules/d3-interpolate/src/hsl.js ***!
13448 \************************************************/
13449/*! exports provided: default, hslLong */
13450/***/ (function(module, __webpack_exports__, __webpack_require__) {
13451
13452"use strict";
13453__webpack_require__.r(__webpack_exports__);
13454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hslLong", function() { return hslLong; });
13455/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13456/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
13457
13458
13459
13460function hsl(hue) {
13461 return function(start, end) {
13462 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),
13463 s = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.s, end.s),
13464 l = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
13465 opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
13466 return function(t) {
13467 start.h = h(t);
13468 start.s = s(t);
13469 start.l = l(t);
13470 start.opacity = opacity(t);
13471 return start + "";
13472 };
13473 }
13474}
13475
13476/* harmony default export */ __webpack_exports__["default"] = (hsl(_color_js__WEBPACK_IMPORTED_MODULE_1__["hue"]));
13477var hslLong = hsl(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
13478
13479
13480/***/ }),
13481
13482/***/ "./node_modules/d3-interpolate/src/hue.js":
13483/*!************************************************!*\
13484 !*** ./node_modules/d3-interpolate/src/hue.js ***!
13485 \************************************************/
13486/*! exports provided: default */
13487/***/ (function(module, __webpack_exports__, __webpack_require__) {
13488
13489"use strict";
13490__webpack_require__.r(__webpack_exports__);
13491/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
13492
13493
13494/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13495 var i = Object(_color_js__WEBPACK_IMPORTED_MODULE_0__["hue"])(+a, +b);
13496 return function(t) {
13497 var x = i(t);
13498 return x - 360 * Math.floor(x / 360);
13499 };
13500});
13501
13502
13503/***/ }),
13504
13505/***/ "./node_modules/d3-interpolate/src/index.js":
13506/*!**************************************************!*\
13507 !*** ./node_modules/d3-interpolate/src/index.js ***!
13508 \**************************************************/
13509/*! exports provided: interpolate, interpolateArray, interpolateBasis, interpolateBasisClosed, interpolateDate, interpolateDiscrete, interpolateHue, interpolateNumber, interpolateNumberArray, interpolateObject, interpolateRound, interpolateString, interpolateTransformCss, interpolateTransformSvg, interpolateZoom, interpolateRgb, interpolateRgbBasis, interpolateRgbBasisClosed, interpolateHsl, interpolateHslLong, interpolateLab, interpolateHcl, interpolateHclLong, interpolateCubehelix, interpolateCubehelixLong, piecewise, quantize */
13510/***/ (function(module, __webpack_exports__, __webpack_require__) {
13511
13512"use strict";
13513__webpack_require__.r(__webpack_exports__);
13514/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ "./node_modules/d3-interpolate/src/value.js");
13515/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolate", function() { return _value_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
13516
13517/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-interpolate/src/array.js");
13518/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateArray", function() { return _array_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
13519
13520/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-interpolate/src/basis.js");
13521/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasis", function() { return _basis_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
13522
13523/* harmony import */ var _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basisClosed.js */ "./node_modules/d3-interpolate/src/basisClosed.js");
13524/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasisClosed", function() { return _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
13525
13526/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./date.js */ "./node_modules/d3-interpolate/src/date.js");
13527/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDate", function() { return _date_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
13528
13529/* harmony import */ var _discrete_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./discrete.js */ "./node_modules/d3-interpolate/src/discrete.js");
13530/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDiscrete", function() { return _discrete_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });
13531
13532/* harmony import */ var _hue_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./hue.js */ "./node_modules/d3-interpolate/src/hue.js");
13533/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHue", function() { return _hue_js__WEBPACK_IMPORTED_MODULE_6__["default"]; });
13534
13535/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-interpolate/src/number.js");
13536/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateNumber", function() { return _number_js__WEBPACK_IMPORTED_MODULE_7__["default"]; });
13537
13538/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./numberArray.js */ "./node_modules/d3-interpolate/src/numberArray.js");
13539/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateNumberArray", function() { return _numberArray_js__WEBPACK_IMPORTED_MODULE_8__["default"]; });
13540
13541/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./object.js */ "./node_modules/d3-interpolate/src/object.js");
13542/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateObject", function() { return _object_js__WEBPACK_IMPORTED_MODULE_9__["default"]; });
13543
13544/* harmony import */ var _round_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./round.js */ "./node_modules/d3-interpolate/src/round.js");
13545/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRound", function() { return _round_js__WEBPACK_IMPORTED_MODULE_10__["default"]; });
13546
13547/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./string.js */ "./node_modules/d3-interpolate/src/string.js");
13548/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateString", function() { return _string_js__WEBPACK_IMPORTED_MODULE_11__["default"]; });
13549
13550/* harmony import */ var _transform_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./transform/index.js */ "./node_modules/d3-interpolate/src/transform/index.js");
13551/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return _transform_index_js__WEBPACK_IMPORTED_MODULE_12__["interpolateTransformCss"]; });
13552
13553/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return _transform_index_js__WEBPACK_IMPORTED_MODULE_12__["interpolateTransformSvg"]; });
13554
13555/* harmony import */ var _zoom_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./zoom.js */ "./node_modules/d3-interpolate/src/zoom.js");
13556/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateZoom", function() { return _zoom_js__WEBPACK_IMPORTED_MODULE_13__["default"]; });
13557
13558/* harmony import */ var _rgb_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./rgb.js */ "./node_modules/d3-interpolate/src/rgb.js");
13559/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgb", function() { return _rgb_js__WEBPACK_IMPORTED_MODULE_14__["default"]; });
13560
13561/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasis", function() { return _rgb_js__WEBPACK_IMPORTED_MODULE_14__["rgbBasis"]; });
13562
13563/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasisClosed", function() { return _rgb_js__WEBPACK_IMPORTED_MODULE_14__["rgbBasisClosed"]; });
13564
13565/* harmony import */ var _hsl_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hsl.js */ "./node_modules/d3-interpolate/src/hsl.js");
13566/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHsl", function() { return _hsl_js__WEBPACK_IMPORTED_MODULE_15__["default"]; });
13567
13568/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHslLong", function() { return _hsl_js__WEBPACK_IMPORTED_MODULE_15__["hslLong"]; });
13569
13570/* harmony import */ var _lab_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./lab.js */ "./node_modules/d3-interpolate/src/lab.js");
13571/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateLab", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_16__["default"]; });
13572
13573/* harmony import */ var _hcl_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./hcl.js */ "./node_modules/d3-interpolate/src/hcl.js");
13574/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHcl", function() { return _hcl_js__WEBPACK_IMPORTED_MODULE_17__["default"]; });
13575
13576/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHclLong", function() { return _hcl_js__WEBPACK_IMPORTED_MODULE_17__["hclLong"]; });
13577
13578/* harmony import */ var _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./cubehelix.js */ "./node_modules/d3-interpolate/src/cubehelix.js");
13579/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelix", function() { return _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__["default"]; });
13580
13581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixLong", function() { return _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__["cubehelixLong"]; });
13582
13583/* harmony import */ var _piecewise_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./piecewise.js */ "./node_modules/d3-interpolate/src/piecewise.js");
13584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "piecewise", function() { return _piecewise_js__WEBPACK_IMPORTED_MODULE_19__["default"]; });
13585
13586/* harmony import */ var _quantize_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./quantize.js */ "./node_modules/d3-interpolate/src/quantize.js");
13587/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantize", function() { return _quantize_js__WEBPACK_IMPORTED_MODULE_20__["default"]; });
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612/***/ }),
13613
13614/***/ "./node_modules/d3-interpolate/src/lab.js":
13615/*!************************************************!*\
13616 !*** ./node_modules/d3-interpolate/src/lab.js ***!
13617 \************************************************/
13618/*! exports provided: default */
13619/***/ (function(module, __webpack_exports__, __webpack_require__) {
13620
13621"use strict";
13622__webpack_require__.r(__webpack_exports__);
13623/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return lab; });
13624/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13625/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
13626
13627
13628
13629function lab(start, end) {
13630 var l = Object(_color_js__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),
13631 a = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.a, end.a),
13632 b = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.b, end.b),
13633 opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
13634 return function(t) {
13635 start.l = l(t);
13636 start.a = a(t);
13637 start.b = b(t);
13638 start.opacity = opacity(t);
13639 return start + "";
13640 };
13641}
13642
13643
13644/***/ }),
13645
13646/***/ "./node_modules/d3-interpolate/src/number.js":
13647/*!***************************************************!*\
13648 !*** ./node_modules/d3-interpolate/src/number.js ***!
13649 \***************************************************/
13650/*! exports provided: default */
13651/***/ (function(module, __webpack_exports__, __webpack_require__) {
13652
13653"use strict";
13654__webpack_require__.r(__webpack_exports__);
13655/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13656 return a = +a, b = +b, function(t) {
13657 return a * (1 - t) + b * t;
13658 };
13659});
13660
13661
13662/***/ }),
13663
13664/***/ "./node_modules/d3-interpolate/src/numberArray.js":
13665/*!********************************************************!*\
13666 !*** ./node_modules/d3-interpolate/src/numberArray.js ***!
13667 \********************************************************/
13668/*! exports provided: default, isNumberArray */
13669/***/ (function(module, __webpack_exports__, __webpack_require__) {
13670
13671"use strict";
13672__webpack_require__.r(__webpack_exports__);
13673/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumberArray", function() { return isNumberArray; });
13674/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13675 if (!b) b = [];
13676 var n = a ? Math.min(b.length, a.length) : 0,
13677 c = b.slice(),
13678 i;
13679 return function(t) {
13680 for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
13681 return c;
13682 };
13683});
13684
13685function isNumberArray(x) {
13686 return ArrayBuffer.isView(x) && !(x instanceof DataView);
13687}
13688
13689
13690/***/ }),
13691
13692/***/ "./node_modules/d3-interpolate/src/object.js":
13693/*!***************************************************!*\
13694 !*** ./node_modules/d3-interpolate/src/object.js ***!
13695 \***************************************************/
13696/*! exports provided: default */
13697/***/ (function(module, __webpack_exports__, __webpack_require__) {
13698
13699"use strict";
13700__webpack_require__.r(__webpack_exports__);
13701/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ "./node_modules/d3-interpolate/src/value.js");
13702
13703
13704/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13705 var i = {},
13706 c = {},
13707 k;
13708
13709 if (a === null || typeof a !== "object") a = {};
13710 if (b === null || typeof b !== "object") b = {};
13711
13712 for (k in b) {
13713 if (k in a) {
13714 i[k] = Object(_value_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a[k], b[k]);
13715 } else {
13716 c[k] = b[k];
13717 }
13718 }
13719
13720 return function(t) {
13721 for (k in i) c[k] = i[k](t);
13722 return c;
13723 };
13724});
13725
13726
13727/***/ }),
13728
13729/***/ "./node_modules/d3-interpolate/src/piecewise.js":
13730/*!******************************************************!*\
13731 !*** ./node_modules/d3-interpolate/src/piecewise.js ***!
13732 \******************************************************/
13733/*! exports provided: default */
13734/***/ (function(module, __webpack_exports__, __webpack_require__) {
13735
13736"use strict";
13737__webpack_require__.r(__webpack_exports__);
13738/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return piecewise; });
13739function piecewise(interpolate, values) {
13740 var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);
13741 while (i < n) I[i] = interpolate(v, v = values[++i]);
13742 return function(t) {
13743 var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
13744 return I[i](t - i);
13745 };
13746}
13747
13748
13749/***/ }),
13750
13751/***/ "./node_modules/d3-interpolate/src/quantize.js":
13752/*!*****************************************************!*\
13753 !*** ./node_modules/d3-interpolate/src/quantize.js ***!
13754 \*****************************************************/
13755/*! exports provided: default */
13756/***/ (function(module, __webpack_exports__, __webpack_require__) {
13757
13758"use strict";
13759__webpack_require__.r(__webpack_exports__);
13760/* harmony default export */ __webpack_exports__["default"] = (function(interpolator, n) {
13761 var samples = new Array(n);
13762 for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
13763 return samples;
13764});
13765
13766
13767/***/ }),
13768
13769/***/ "./node_modules/d3-interpolate/src/rgb.js":
13770/*!************************************************!*\
13771 !*** ./node_modules/d3-interpolate/src/rgb.js ***!
13772 \************************************************/
13773/*! exports provided: default, rgbBasis, rgbBasisClosed */
13774/***/ (function(module, __webpack_exports__, __webpack_require__) {
13775
13776"use strict";
13777__webpack_require__.r(__webpack_exports__);
13778/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbBasis", function() { return rgbBasis; });
13779/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbBasisClosed", function() { return rgbBasisClosed; });
13780/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
13781/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-interpolate/src/basis.js");
13782/* harmony import */ var _basisClosed_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basisClosed.js */ "./node_modules/d3-interpolate/src/basisClosed.js");
13783/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
13784
13785
13786
13787
13788
13789/* harmony default export */ __webpack_exports__["default"] = ((function rgbGamma(y) {
13790 var color = Object(_color_js__WEBPACK_IMPORTED_MODULE_3__["gamma"])(y);
13791
13792 function rgb(start, end) {
13793 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),
13794 g = color(start.g, end.g),
13795 b = color(start.b, end.b),
13796 opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_3__["default"])(start.opacity, end.opacity);
13797 return function(t) {
13798 start.r = r(t);
13799 start.g = g(t);
13800 start.b = b(t);
13801 start.opacity = opacity(t);
13802 return start + "";
13803 };
13804 }
13805
13806 rgb.gamma = rgbGamma;
13807
13808 return rgb;
13809})(1));
13810
13811function rgbSpline(spline) {
13812 return function(colors) {
13813 var n = colors.length,
13814 r = new Array(n),
13815 g = new Array(n),
13816 b = new Array(n),
13817 i, color;
13818 for (i = 0; i < n; ++i) {
13819 color = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["rgb"])(colors[i]);
13820 r[i] = color.r || 0;
13821 g[i] = color.g || 0;
13822 b[i] = color.b || 0;
13823 }
13824 r = spline(r);
13825 g = spline(g);
13826 b = spline(b);
13827 color.opacity = 1;
13828 return function(t) {
13829 color.r = r(t);
13830 color.g = g(t);
13831 color.b = b(t);
13832 return color + "";
13833 };
13834 };
13835}
13836
13837var rgbBasis = rgbSpline(_basis_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
13838var rgbBasisClosed = rgbSpline(_basisClosed_js__WEBPACK_IMPORTED_MODULE_2__["default"]);
13839
13840
13841/***/ }),
13842
13843/***/ "./node_modules/d3-interpolate/src/round.js":
13844/*!**************************************************!*\
13845 !*** ./node_modules/d3-interpolate/src/round.js ***!
13846 \**************************************************/
13847/*! exports provided: default */
13848/***/ (function(module, __webpack_exports__, __webpack_require__) {
13849
13850"use strict";
13851__webpack_require__.r(__webpack_exports__);
13852/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13853 return a = +a, b = +b, function(t) {
13854 return Math.round(a * (1 - t) + b * t);
13855 };
13856});
13857
13858
13859/***/ }),
13860
13861/***/ "./node_modules/d3-interpolate/src/string.js":
13862/*!***************************************************!*\
13863 !*** ./node_modules/d3-interpolate/src/string.js ***!
13864 \***************************************************/
13865/*! exports provided: default */
13866/***/ (function(module, __webpack_exports__, __webpack_require__) {
13867
13868"use strict";
13869__webpack_require__.r(__webpack_exports__);
13870/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-interpolate/src/number.js");
13871
13872
13873var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
13874 reB = new RegExp(reA.source, "g");
13875
13876function zero(b) {
13877 return function() {
13878 return b;
13879 };
13880}
13881
13882function one(b) {
13883 return function(t) {
13884 return b(t) + "";
13885 };
13886}
13887
13888/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
13889 var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
13890 am, // current match in a
13891 bm, // current match in b
13892 bs, // string preceding current number in b, if any
13893 i = -1, // index in s
13894 s = [], // string constants and placeholders
13895 q = []; // number interpolators
13896
13897 // Coerce inputs to strings.
13898 a = a + "", b = b + "";
13899
13900 // Interpolate pairs of numbers in a & b.
13901 while ((am = reA.exec(a))
13902 && (bm = reB.exec(b))) {
13903 if ((bs = bm.index) > bi) { // a string precedes the next number in b
13904 bs = b.slice(bi, bs);
13905 if (s[i]) s[i] += bs; // coalesce with previous string
13906 else s[++i] = bs;
13907 }
13908 if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
13909 if (s[i]) s[i] += bm; // coalesce with previous string
13910 else s[++i] = bm;
13911 } else { // interpolate non-matching numbers
13912 s[++i] = null;
13913 q.push({i: i, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(am, bm)});
13914 }
13915 bi = reB.lastIndex;
13916 }
13917
13918 // Add remains of b.
13919 if (bi < b.length) {
13920 bs = b.slice(bi);
13921 if (s[i]) s[i] += bs; // coalesce with previous string
13922 else s[++i] = bs;
13923 }
13924
13925 // Special optimization for only a single match.
13926 // Otherwise, interpolate each of the numbers and rejoin the string.
13927 return s.length < 2 ? (q[0]
13928 ? one(q[0].x)
13929 : zero(b))
13930 : (b = q.length, function(t) {
13931 for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
13932 return s.join("");
13933 });
13934});
13935
13936
13937/***/ }),
13938
13939/***/ "./node_modules/d3-interpolate/src/transform/decompose.js":
13940/*!****************************************************************!*\
13941 !*** ./node_modules/d3-interpolate/src/transform/decompose.js ***!
13942 \****************************************************************/
13943/*! exports provided: identity, default */
13944/***/ (function(module, __webpack_exports__, __webpack_require__) {
13945
13946"use strict";
13947__webpack_require__.r(__webpack_exports__);
13948/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
13949var degrees = 180 / Math.PI;
13950
13951var identity = {
13952 translateX: 0,
13953 translateY: 0,
13954 rotate: 0,
13955 skewX: 0,
13956 scaleX: 1,
13957 scaleY: 1
13958};
13959
13960/* harmony default export */ __webpack_exports__["default"] = (function(a, b, c, d, e, f) {
13961 var scaleX, scaleY, skewX;
13962 if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
13963 if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
13964 if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
13965 if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
13966 return {
13967 translateX: e,
13968 translateY: f,
13969 rotate: Math.atan2(b, a) * degrees,
13970 skewX: Math.atan(skewX) * degrees,
13971 scaleX: scaleX,
13972 scaleY: scaleY
13973 };
13974});
13975
13976
13977/***/ }),
13978
13979/***/ "./node_modules/d3-interpolate/src/transform/index.js":
13980/*!************************************************************!*\
13981 !*** ./node_modules/d3-interpolate/src/transform/index.js ***!
13982 \************************************************************/
13983/*! exports provided: interpolateTransformCss, interpolateTransformSvg */
13984/***/ (function(module, __webpack_exports__, __webpack_require__) {
13985
13986"use strict";
13987__webpack_require__.r(__webpack_exports__);
13988/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return interpolateTransformCss; });
13989/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return interpolateTransformSvg; });
13990/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../number.js */ "./node_modules/d3-interpolate/src/number.js");
13991/* harmony import */ var _parse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse.js */ "./node_modules/d3-interpolate/src/transform/parse.js");
13992
13993
13994
13995function interpolateTransform(parse, pxComma, pxParen, degParen) {
13996
13997 function pop(s) {
13998 return s.length ? s.pop() + " " : "";
13999 }
14000
14001 function translate(xa, ya, xb, yb, s, q) {
14002 if (xa !== xb || ya !== yb) {
14003 var i = s.push("translate(", null, pxComma, null, pxParen);
14004 q.push({i: i - 4, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(xa, xb)}, {i: i - 2, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(ya, yb)});
14005 } else if (xb || yb) {
14006 s.push("translate(" + xb + pxComma + yb + pxParen);
14007 }
14008 }
14009
14010 function rotate(a, b, s, q) {
14011 if (a !== b) {
14012 if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
14013 q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)});
14014 } else if (b) {
14015 s.push(pop(s) + "rotate(" + b + degParen);
14016 }
14017 }
14018
14019 function skewX(a, b, s, q) {
14020 if (a !== b) {
14021 q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)});
14022 } else if (b) {
14023 s.push(pop(s) + "skewX(" + b + degParen);
14024 }
14025 }
14026
14027 function scale(xa, ya, xb, yb, s, q) {
14028 if (xa !== xb || ya !== yb) {
14029 var i = s.push(pop(s) + "scale(", null, ",", null, ")");
14030 q.push({i: i - 4, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(xa, xb)}, {i: i - 2, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(ya, yb)});
14031 } else if (xb !== 1 || yb !== 1) {
14032 s.push(pop(s) + "scale(" + xb + "," + yb + ")");
14033 }
14034 }
14035
14036 return function(a, b) {
14037 var s = [], // string constants and placeholders
14038 q = []; // number interpolators
14039 a = parse(a), b = parse(b);
14040 translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
14041 rotate(a.rotate, b.rotate, s, q);
14042 skewX(a.skewX, b.skewX, s, q);
14043 scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
14044 a = b = null; // gc
14045 return function(t) {
14046 var i = -1, n = q.length, o;
14047 while (++i < n) s[(o = q[i]).i] = o.x(t);
14048 return s.join("");
14049 };
14050 };
14051}
14052
14053var interpolateTransformCss = interpolateTransform(_parse_js__WEBPACK_IMPORTED_MODULE_1__["parseCss"], "px, ", "px)", "deg)");
14054var interpolateTransformSvg = interpolateTransform(_parse_js__WEBPACK_IMPORTED_MODULE_1__["parseSvg"], ", ", ")", ")");
14055
14056
14057/***/ }),
14058
14059/***/ "./node_modules/d3-interpolate/src/transform/parse.js":
14060/*!************************************************************!*\
14061 !*** ./node_modules/d3-interpolate/src/transform/parse.js ***!
14062 \************************************************************/
14063/*! exports provided: parseCss, parseSvg */
14064/***/ (function(module, __webpack_exports__, __webpack_require__) {
14065
14066"use strict";
14067__webpack_require__.r(__webpack_exports__);
14068/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseCss", function() { return parseCss; });
14069/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseSvg", function() { return parseSvg; });
14070/* harmony import */ var _decompose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./decompose.js */ "./node_modules/d3-interpolate/src/transform/decompose.js");
14071
14072
14073var cssNode,
14074 cssRoot,
14075 cssView,
14076 svgNode;
14077
14078function parseCss(value) {
14079 if (value === "none") return _decompose_js__WEBPACK_IMPORTED_MODULE_0__["identity"];
14080 if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView;
14081 cssNode.style.transform = value;
14082 value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform");
14083 cssRoot.removeChild(cssNode);
14084 value = value.slice(7, -1).split(",");
14085 return Object(_decompose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);
14086}
14087
14088function parseSvg(value) {
14089 if (value == null) return _decompose_js__WEBPACK_IMPORTED_MODULE_0__["identity"];
14090 if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
14091 svgNode.setAttribute("transform", value);
14092 if (!(value = svgNode.transform.baseVal.consolidate())) return _decompose_js__WEBPACK_IMPORTED_MODULE_0__["identity"];
14093 value = value.matrix;
14094 return Object(_decompose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value.a, value.b, value.c, value.d, value.e, value.f);
14095}
14096
14097
14098/***/ }),
14099
14100/***/ "./node_modules/d3-interpolate/src/value.js":
14101/*!**************************************************!*\
14102 !*** ./node_modules/d3-interpolate/src/value.js ***!
14103 \**************************************************/
14104/*! exports provided: default */
14105/***/ (function(module, __webpack_exports__, __webpack_require__) {
14106
14107"use strict";
14108__webpack_require__.r(__webpack_exports__);
14109/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
14110/* harmony import */ var _rgb_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgb.js */ "./node_modules/d3-interpolate/src/rgb.js");
14111/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-interpolate/src/array.js");
14112/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./date.js */ "./node_modules/d3-interpolate/src/date.js");
14113/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-interpolate/src/number.js");
14114/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./object.js */ "./node_modules/d3-interpolate/src/object.js");
14115/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./string.js */ "./node_modules/d3-interpolate/src/string.js");
14116/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-interpolate/src/constant.js");
14117/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./numberArray.js */ "./node_modules/d3-interpolate/src/numberArray.js");
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
14129 var t = typeof b, c;
14130 return b == null || t === "boolean" ? Object(_constant_js__WEBPACK_IMPORTED_MODULE_7__["default"])(b)
14131 : (t === "number" ? _number_js__WEBPACK_IMPORTED_MODULE_4__["default"]
14132 : t === "string" ? ((c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["color"])(b)) ? (b = c, _rgb_js__WEBPACK_IMPORTED_MODULE_1__["default"]) : _string_js__WEBPACK_IMPORTED_MODULE_6__["default"])
14133 : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_0__["color"] ? _rgb_js__WEBPACK_IMPORTED_MODULE_1__["default"]
14134 : b instanceof Date ? _date_js__WEBPACK_IMPORTED_MODULE_3__["default"]
14135 : Object(_numberArray_js__WEBPACK_IMPORTED_MODULE_8__["isNumberArray"])(b) ? _numberArray_js__WEBPACK_IMPORTED_MODULE_8__["default"]
14136 : Array.isArray(b) ? _array_js__WEBPACK_IMPORTED_MODULE_2__["genericArray"]
14137 : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? _object_js__WEBPACK_IMPORTED_MODULE_5__["default"]
14138 : _number_js__WEBPACK_IMPORTED_MODULE_4__["default"])(a, b);
14139});
14140
14141
14142/***/ }),
14143
14144/***/ "./node_modules/d3-interpolate/src/zoom.js":
14145/*!*************************************************!*\
14146 !*** ./node_modules/d3-interpolate/src/zoom.js ***!
14147 \*************************************************/
14148/*! exports provided: default */
14149/***/ (function(module, __webpack_exports__, __webpack_require__) {
14150
14151"use strict";
14152__webpack_require__.r(__webpack_exports__);
14153var rho = Math.SQRT2,
14154 rho2 = 2,
14155 rho4 = 4,
14156 epsilon2 = 1e-12;
14157
14158function cosh(x) {
14159 return ((x = Math.exp(x)) + 1 / x) / 2;
14160}
14161
14162function sinh(x) {
14163 return ((x = Math.exp(x)) - 1 / x) / 2;
14164}
14165
14166function tanh(x) {
14167 return ((x = Math.exp(2 * x)) - 1) / (x + 1);
14168}
14169
14170// p0 = [ux0, uy0, w0]
14171// p1 = [ux1, uy1, w1]
14172/* harmony default export */ __webpack_exports__["default"] = (function(p0, p1) {
14173 var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
14174 ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
14175 dx = ux1 - ux0,
14176 dy = uy1 - uy0,
14177 d2 = dx * dx + dy * dy,
14178 i,
14179 S;
14180
14181 // Special case for u0 ≅ u1.
14182 if (d2 < epsilon2) {
14183 S = Math.log(w1 / w0) / rho;
14184 i = function(t) {
14185 return [
14186 ux0 + t * dx,
14187 uy0 + t * dy,
14188 w0 * Math.exp(rho * t * S)
14189 ];
14190 }
14191 }
14192
14193 // General case.
14194 else {
14195 var d1 = Math.sqrt(d2),
14196 b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
14197 b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
14198 r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
14199 r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
14200 S = (r1 - r0) / rho;
14201 i = function(t) {
14202 var s = t * S,
14203 coshr0 = cosh(r0),
14204 u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
14205 return [
14206 ux0 + u * dx,
14207 uy0 + u * dy,
14208 w0 * coshr0 / cosh(rho * s + r0)
14209 ];
14210 }
14211 }
14212
14213 i.duration = S * 1000;
14214
14215 return i;
14216});
14217
14218
14219/***/ }),
14220
14221/***/ "./node_modules/d3-path/src/index.js":
14222/*!*******************************************!*\
14223 !*** ./node_modules/d3-path/src/index.js ***!
14224 \*******************************************/
14225/*! exports provided: path */
14226/***/ (function(module, __webpack_exports__, __webpack_require__) {
14227
14228"use strict";
14229__webpack_require__.r(__webpack_exports__);
14230/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./path.js */ "./node_modules/d3-path/src/path.js");
14231/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "path", function() { return _path_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14232
14233
14234
14235
14236/***/ }),
14237
14238/***/ "./node_modules/d3-path/src/path.js":
14239/*!******************************************!*\
14240 !*** ./node_modules/d3-path/src/path.js ***!
14241 \******************************************/
14242/*! exports provided: default */
14243/***/ (function(module, __webpack_exports__, __webpack_require__) {
14244
14245"use strict";
14246__webpack_require__.r(__webpack_exports__);
14247var pi = Math.PI,
14248 tau = 2 * pi,
14249 epsilon = 1e-6,
14250 tauEpsilon = tau - epsilon;
14251
14252function Path() {
14253 this._x0 = this._y0 = // start of current subpath
14254 this._x1 = this._y1 = null; // end of current subpath
14255 this._ = "";
14256}
14257
14258function path() {
14259 return new Path;
14260}
14261
14262Path.prototype = path.prototype = {
14263 constructor: Path,
14264 moveTo: function(x, y) {
14265 this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
14266 },
14267 closePath: function() {
14268 if (this._x1 !== null) {
14269 this._x1 = this._x0, this._y1 = this._y0;
14270 this._ += "Z";
14271 }
14272 },
14273 lineTo: function(x, y) {
14274 this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
14275 },
14276 quadraticCurveTo: function(x1, y1, x, y) {
14277 this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
14278 },
14279 bezierCurveTo: function(x1, y1, x2, y2, x, y) {
14280 this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
14281 },
14282 arcTo: function(x1, y1, x2, y2, r) {
14283 x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
14284 var x0 = this._x1,
14285 y0 = this._y1,
14286 x21 = x2 - x1,
14287 y21 = y2 - y1,
14288 x01 = x0 - x1,
14289 y01 = y0 - y1,
14290 l01_2 = x01 * x01 + y01 * y01;
14291
14292 // Is the radius negative? Error.
14293 if (r < 0) throw new Error("negative radius: " + r);
14294
14295 // Is this path empty? Move to (x1,y1).
14296 if (this._x1 === null) {
14297 this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
14298 }
14299
14300 // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
14301 else if (!(l01_2 > epsilon));
14302
14303 // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
14304 // Equivalently, is (x1,y1) coincident with (x2,y2)?
14305 // Or, is the radius zero? Line to (x1,y1).
14306 else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
14307 this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
14308 }
14309
14310 // Otherwise, draw an arc!
14311 else {
14312 var x20 = x2 - x0,
14313 y20 = y2 - y0,
14314 l21_2 = x21 * x21 + y21 * y21,
14315 l20_2 = x20 * x20 + y20 * y20,
14316 l21 = Math.sqrt(l21_2),
14317 l01 = Math.sqrt(l01_2),
14318 l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
14319 t01 = l / l01,
14320 t21 = l / l21;
14321
14322 // If the start tangent is not coincident with (x0,y0), line to.
14323 if (Math.abs(t01 - 1) > epsilon) {
14324 this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
14325 }
14326
14327 this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
14328 }
14329 },
14330 arc: function(x, y, r, a0, a1, ccw) {
14331 x = +x, y = +y, r = +r, ccw = !!ccw;
14332 var dx = r * Math.cos(a0),
14333 dy = r * Math.sin(a0),
14334 x0 = x + dx,
14335 y0 = y + dy,
14336 cw = 1 ^ ccw,
14337 da = ccw ? a0 - a1 : a1 - a0;
14338
14339 // Is the radius negative? Error.
14340 if (r < 0) throw new Error("negative radius: " + r);
14341
14342 // Is this path empty? Move to (x0,y0).
14343 if (this._x1 === null) {
14344 this._ += "M" + x0 + "," + y0;
14345 }
14346
14347 // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
14348 else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
14349 this._ += "L" + x0 + "," + y0;
14350 }
14351
14352 // Is this arc empty? We’re done.
14353 if (!r) return;
14354
14355 // Does the angle go the wrong way? Flip the direction.
14356 if (da < 0) da = da % tau + tau;
14357
14358 // Is this a complete circle? Draw two arcs to complete the circle.
14359 if (da > tauEpsilon) {
14360 this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
14361 }
14362
14363 // Is this arc non-empty? Draw an arc!
14364 else if (da > epsilon) {
14365 this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
14366 }
14367 },
14368 rect: function(x, y, w, h) {
14369 this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z";
14370 },
14371 toString: function() {
14372 return this._;
14373 }
14374};
14375
14376/* harmony default export */ __webpack_exports__["default"] = (path);
14377
14378
14379/***/ }),
14380
14381/***/ "./node_modules/d3-polygon/src/area.js":
14382/*!*********************************************!*\
14383 !*** ./node_modules/d3-polygon/src/area.js ***!
14384 \*********************************************/
14385/*! exports provided: default */
14386/***/ (function(module, __webpack_exports__, __webpack_require__) {
14387
14388"use strict";
14389__webpack_require__.r(__webpack_exports__);
14390/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
14391 var i = -1,
14392 n = polygon.length,
14393 a,
14394 b = polygon[n - 1],
14395 area = 0;
14396
14397 while (++i < n) {
14398 a = b;
14399 b = polygon[i];
14400 area += a[1] * b[0] - a[0] * b[1];
14401 }
14402
14403 return area / 2;
14404});
14405
14406
14407/***/ }),
14408
14409/***/ "./node_modules/d3-polygon/src/centroid.js":
14410/*!*************************************************!*\
14411 !*** ./node_modules/d3-polygon/src/centroid.js ***!
14412 \*************************************************/
14413/*! exports provided: default */
14414/***/ (function(module, __webpack_exports__, __webpack_require__) {
14415
14416"use strict";
14417__webpack_require__.r(__webpack_exports__);
14418/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
14419 var i = -1,
14420 n = polygon.length,
14421 x = 0,
14422 y = 0,
14423 a,
14424 b = polygon[n - 1],
14425 c,
14426 k = 0;
14427
14428 while (++i < n) {
14429 a = b;
14430 b = polygon[i];
14431 k += c = a[0] * b[1] - b[0] * a[1];
14432 x += (a[0] + b[0]) * c;
14433 y += (a[1] + b[1]) * c;
14434 }
14435
14436 return k *= 3, [x / k, y / k];
14437});
14438
14439
14440/***/ }),
14441
14442/***/ "./node_modules/d3-polygon/src/contains.js":
14443/*!*************************************************!*\
14444 !*** ./node_modules/d3-polygon/src/contains.js ***!
14445 \*************************************************/
14446/*! exports provided: default */
14447/***/ (function(module, __webpack_exports__, __webpack_require__) {
14448
14449"use strict";
14450__webpack_require__.r(__webpack_exports__);
14451/* harmony default export */ __webpack_exports__["default"] = (function(polygon, point) {
14452 var n = polygon.length,
14453 p = polygon[n - 1],
14454 x = point[0], y = point[1],
14455 x0 = p[0], y0 = p[1],
14456 x1, y1,
14457 inside = false;
14458
14459 for (var i = 0; i < n; ++i) {
14460 p = polygon[i], x1 = p[0], y1 = p[1];
14461 if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;
14462 x0 = x1, y0 = y1;
14463 }
14464
14465 return inside;
14466});
14467
14468
14469/***/ }),
14470
14471/***/ "./node_modules/d3-polygon/src/cross.js":
14472/*!**********************************************!*\
14473 !*** ./node_modules/d3-polygon/src/cross.js ***!
14474 \**********************************************/
14475/*! exports provided: default */
14476/***/ (function(module, __webpack_exports__, __webpack_require__) {
14477
14478"use strict";
14479__webpack_require__.r(__webpack_exports__);
14480// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
14481// the 3D cross product in a quadrant I Cartesian coordinate system (+x is
14482// right, +y is up). Returns a positive value if ABC is counter-clockwise,
14483// negative if clockwise, and zero if the points are collinear.
14484/* harmony default export */ __webpack_exports__["default"] = (function(a, b, c) {
14485 return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
14486});
14487
14488
14489/***/ }),
14490
14491/***/ "./node_modules/d3-polygon/src/hull.js":
14492/*!*********************************************!*\
14493 !*** ./node_modules/d3-polygon/src/hull.js ***!
14494 \*********************************************/
14495/*! exports provided: default */
14496/***/ (function(module, __webpack_exports__, __webpack_require__) {
14497
14498"use strict";
14499__webpack_require__.r(__webpack_exports__);
14500/* harmony import */ var _cross_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cross.js */ "./node_modules/d3-polygon/src/cross.js");
14501
14502
14503function lexicographicOrder(a, b) {
14504 return a[0] - b[0] || a[1] - b[1];
14505}
14506
14507// Computes the upper convex hull per the monotone chain algorithm.
14508// Assumes points.length >= 3, is sorted by x, unique in y.
14509// Returns an array of indices into points in left-to-right order.
14510function computeUpperHullIndexes(points) {
14511 var n = points.length,
14512 indexes = [0, 1],
14513 size = 2;
14514
14515 for (var i = 2; i < n; ++i) {
14516 while (size > 1 && Object(_cross_js__WEBPACK_IMPORTED_MODULE_0__["default"])(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;
14517 indexes[size++] = i;
14518 }
14519
14520 return indexes.slice(0, size); // remove popped points
14521}
14522
14523/* harmony default export */ __webpack_exports__["default"] = (function(points) {
14524 if ((n = points.length) < 3) return null;
14525
14526 var i,
14527 n,
14528 sortedPoints = new Array(n),
14529 flippedPoints = new Array(n);
14530
14531 for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];
14532 sortedPoints.sort(lexicographicOrder);
14533 for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];
14534
14535 var upperIndexes = computeUpperHullIndexes(sortedPoints),
14536 lowerIndexes = computeUpperHullIndexes(flippedPoints);
14537
14538 // Construct the hull polygon, removing possible duplicate endpoints.
14539 var skipLeft = lowerIndexes[0] === upperIndexes[0],
14540 skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],
14541 hull = [];
14542
14543 // Add upper hull in right-to-l order.
14544 // Then add lower hull in left-to-right order.
14545 for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);
14546 for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);
14547
14548 return hull;
14549});
14550
14551
14552/***/ }),
14553
14554/***/ "./node_modules/d3-polygon/src/index.js":
14555/*!**********************************************!*\
14556 !*** ./node_modules/d3-polygon/src/index.js ***!
14557 \**********************************************/
14558/*! exports provided: polygonArea, polygonCentroid, polygonHull, polygonContains, polygonLength */
14559/***/ (function(module, __webpack_exports__, __webpack_require__) {
14560
14561"use strict";
14562__webpack_require__.r(__webpack_exports__);
14563/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-polygon/src/area.js");
14564/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonArea", function() { return _area_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14565
14566/* harmony import */ var _centroid_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./centroid.js */ "./node_modules/d3-polygon/src/centroid.js");
14567/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonCentroid", function() { return _centroid_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
14568
14569/* harmony import */ var _hull_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hull.js */ "./node_modules/d3-polygon/src/hull.js");
14570/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonHull", function() { return _hull_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
14571
14572/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contains.js */ "./node_modules/d3-polygon/src/contains.js");
14573/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonContains", function() { return _contains_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
14574
14575/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./length.js */ "./node_modules/d3-polygon/src/length.js");
14576/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonLength", function() { return _length_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
14577
14578
14579
14580
14581
14582
14583
14584
14585/***/ }),
14586
14587/***/ "./node_modules/d3-polygon/src/length.js":
14588/*!***********************************************!*\
14589 !*** ./node_modules/d3-polygon/src/length.js ***!
14590 \***********************************************/
14591/*! exports provided: default */
14592/***/ (function(module, __webpack_exports__, __webpack_require__) {
14593
14594"use strict";
14595__webpack_require__.r(__webpack_exports__);
14596/* harmony default export */ __webpack_exports__["default"] = (function(polygon) {
14597 var i = -1,
14598 n = polygon.length,
14599 b = polygon[n - 1],
14600 xa,
14601 ya,
14602 xb = b[0],
14603 yb = b[1],
14604 perimeter = 0;
14605
14606 while (++i < n) {
14607 xa = xb;
14608 ya = yb;
14609 b = polygon[i];
14610 xb = b[0];
14611 yb = b[1];
14612 xa -= xb;
14613 ya -= yb;
14614 perimeter += Math.sqrt(xa * xa + ya * ya);
14615 }
14616
14617 return perimeter;
14618});
14619
14620
14621/***/ }),
14622
14623/***/ "./node_modules/d3-quadtree/src/add.js":
14624/*!*********************************************!*\
14625 !*** ./node_modules/d3-quadtree/src/add.js ***!
14626 \*********************************************/
14627/*! exports provided: default, addAll */
14628/***/ (function(module, __webpack_exports__, __webpack_require__) {
14629
14630"use strict";
14631__webpack_require__.r(__webpack_exports__);
14632/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addAll", function() { return addAll; });
14633/* harmony default export */ __webpack_exports__["default"] = (function(d) {
14634 var x = +this._x.call(null, d),
14635 y = +this._y.call(null, d);
14636 return add(this.cover(x, y), x, y, d);
14637});
14638
14639function add(tree, x, y, d) {
14640 if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
14641
14642 var parent,
14643 node = tree._root,
14644 leaf = {data: d},
14645 x0 = tree._x0,
14646 y0 = tree._y0,
14647 x1 = tree._x1,
14648 y1 = tree._y1,
14649 xm,
14650 ym,
14651 xp,
14652 yp,
14653 right,
14654 bottom,
14655 i,
14656 j;
14657
14658 // If the tree is empty, initialize the root as a leaf.
14659 if (!node) return tree._root = leaf, tree;
14660
14661 // Find the existing leaf for the new point, or add it.
14662 while (node.length) {
14663 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
14664 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
14665 if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
14666 }
14667
14668 // Is the new point is exactly coincident with the existing point?
14669 xp = +tree._x.call(null, node.data);
14670 yp = +tree._y.call(null, node.data);
14671 if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;
14672
14673 // Otherwise, split the leaf node until the old and new point are separated.
14674 do {
14675 parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
14676 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
14677 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
14678 } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
14679 return parent[j] = node, parent[i] = leaf, tree;
14680}
14681
14682function addAll(data) {
14683 var d, i, n = data.length,
14684 x,
14685 y,
14686 xz = new Array(n),
14687 yz = new Array(n),
14688 x0 = Infinity,
14689 y0 = Infinity,
14690 x1 = -Infinity,
14691 y1 = -Infinity;
14692
14693 // Compute the points and their extent.
14694 for (i = 0; i < n; ++i) {
14695 if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
14696 xz[i] = x;
14697 yz[i] = y;
14698 if (x < x0) x0 = x;
14699 if (x > x1) x1 = x;
14700 if (y < y0) y0 = y;
14701 if (y > y1) y1 = y;
14702 }
14703
14704 // If there were no (valid) points, abort.
14705 if (x0 > x1 || y0 > y1) return this;
14706
14707 // Expand the tree to cover the new points.
14708 this.cover(x0, y0).cover(x1, y1);
14709
14710 // Add the new points.
14711 for (i = 0; i < n; ++i) {
14712 add(this, xz[i], yz[i], data[i]);
14713 }
14714
14715 return this;
14716}
14717
14718
14719/***/ }),
14720
14721/***/ "./node_modules/d3-quadtree/src/cover.js":
14722/*!***********************************************!*\
14723 !*** ./node_modules/d3-quadtree/src/cover.js ***!
14724 \***********************************************/
14725/*! exports provided: default */
14726/***/ (function(module, __webpack_exports__, __webpack_require__) {
14727
14728"use strict";
14729__webpack_require__.r(__webpack_exports__);
14730/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
14731 if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
14732
14733 var x0 = this._x0,
14734 y0 = this._y0,
14735 x1 = this._x1,
14736 y1 = this._y1;
14737
14738 // If the quadtree has no extent, initialize them.
14739 // Integer extent are necessary so that if we later double the extent,
14740 // the existing quadrant boundaries don’t change due to floating point error!
14741 if (isNaN(x0)) {
14742 x1 = (x0 = Math.floor(x)) + 1;
14743 y1 = (y0 = Math.floor(y)) + 1;
14744 }
14745
14746 // Otherwise, double repeatedly to cover.
14747 else {
14748 var z = x1 - x0,
14749 node = this._root,
14750 parent,
14751 i;
14752
14753 while (x0 > x || x >= x1 || y0 > y || y >= y1) {
14754 i = (y < y0) << 1 | (x < x0);
14755 parent = new Array(4), parent[i] = node, node = parent, z *= 2;
14756 switch (i) {
14757 case 0: x1 = x0 + z, y1 = y0 + z; break;
14758 case 1: x0 = x1 - z, y1 = y0 + z; break;
14759 case 2: x1 = x0 + z, y0 = y1 - z; break;
14760 case 3: x0 = x1 - z, y0 = y1 - z; break;
14761 }
14762 }
14763
14764 if (this._root && this._root.length) this._root = node;
14765 }
14766
14767 this._x0 = x0;
14768 this._y0 = y0;
14769 this._x1 = x1;
14770 this._y1 = y1;
14771 return this;
14772});
14773
14774
14775/***/ }),
14776
14777/***/ "./node_modules/d3-quadtree/src/data.js":
14778/*!**********************************************!*\
14779 !*** ./node_modules/d3-quadtree/src/data.js ***!
14780 \**********************************************/
14781/*! exports provided: default */
14782/***/ (function(module, __webpack_exports__, __webpack_require__) {
14783
14784"use strict";
14785__webpack_require__.r(__webpack_exports__);
14786/* harmony default export */ __webpack_exports__["default"] = (function() {
14787 var data = [];
14788 this.visit(function(node) {
14789 if (!node.length) do data.push(node.data); while (node = node.next)
14790 });
14791 return data;
14792});
14793
14794
14795/***/ }),
14796
14797/***/ "./node_modules/d3-quadtree/src/extent.js":
14798/*!************************************************!*\
14799 !*** ./node_modules/d3-quadtree/src/extent.js ***!
14800 \************************************************/
14801/*! exports provided: default */
14802/***/ (function(module, __webpack_exports__, __webpack_require__) {
14803
14804"use strict";
14805__webpack_require__.r(__webpack_exports__);
14806/* harmony default export */ __webpack_exports__["default"] = (function(_) {
14807 return arguments.length
14808 ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
14809 : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
14810});
14811
14812
14813/***/ }),
14814
14815/***/ "./node_modules/d3-quadtree/src/find.js":
14816/*!**********************************************!*\
14817 !*** ./node_modules/d3-quadtree/src/find.js ***!
14818 \**********************************************/
14819/*! exports provided: default */
14820/***/ (function(module, __webpack_exports__, __webpack_require__) {
14821
14822"use strict";
14823__webpack_require__.r(__webpack_exports__);
14824/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ "./node_modules/d3-quadtree/src/quad.js");
14825
14826
14827/* harmony default export */ __webpack_exports__["default"] = (function(x, y, radius) {
14828 var data,
14829 x0 = this._x0,
14830 y0 = this._y0,
14831 x1,
14832 y1,
14833 x2,
14834 y2,
14835 x3 = this._x1,
14836 y3 = this._y1,
14837 quads = [],
14838 node = this._root,
14839 q,
14840 i;
14841
14842 if (node) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node, x0, y0, x3, y3));
14843 if (radius == null) radius = Infinity;
14844 else {
14845 x0 = x - radius, y0 = y - radius;
14846 x3 = x + radius, y3 = y + radius;
14847 radius *= radius;
14848 }
14849
14850 while (q = quads.pop()) {
14851
14852 // Stop searching if this quadrant can’t contain a closer node.
14853 if (!(node = q.node)
14854 || (x1 = q.x0) > x3
14855 || (y1 = q.y0) > y3
14856 || (x2 = q.x1) < x0
14857 || (y2 = q.y1) < y0) continue;
14858
14859 // Bisect the current quadrant.
14860 if (node.length) {
14861 var xm = (x1 + x2) / 2,
14862 ym = (y1 + y2) / 2;
14863
14864 quads.push(
14865 new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node[3], xm, ym, x2, y2),
14866 new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node[2], x1, ym, xm, y2),
14867 new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node[1], xm, y1, x2, ym),
14868 new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node[0], x1, y1, xm, ym)
14869 );
14870
14871 // Visit the closest quadrant first.
14872 if (i = (y >= ym) << 1 | (x >= xm)) {
14873 q = quads[quads.length - 1];
14874 quads[quads.length - 1] = quads[quads.length - 1 - i];
14875 quads[quads.length - 1 - i] = q;
14876 }
14877 }
14878
14879 // Visit this point. (Visiting coincident points isn’t necessary!)
14880 else {
14881 var dx = x - +this._x.call(null, node.data),
14882 dy = y - +this._y.call(null, node.data),
14883 d2 = dx * dx + dy * dy;
14884 if (d2 < radius) {
14885 var d = Math.sqrt(radius = d2);
14886 x0 = x - d, y0 = y - d;
14887 x3 = x + d, y3 = y + d;
14888 data = node.data;
14889 }
14890 }
14891 }
14892
14893 return data;
14894});
14895
14896
14897/***/ }),
14898
14899/***/ "./node_modules/d3-quadtree/src/index.js":
14900/*!***********************************************!*\
14901 !*** ./node_modules/d3-quadtree/src/index.js ***!
14902 \***********************************************/
14903/*! exports provided: quadtree */
14904/***/ (function(module, __webpack_exports__, __webpack_require__) {
14905
14906"use strict";
14907__webpack_require__.r(__webpack_exports__);
14908/* harmony import */ var _quadtree_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quadtree.js */ "./node_modules/d3-quadtree/src/quadtree.js");
14909/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quadtree", function() { return _quadtree_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
14910
14911
14912
14913
14914/***/ }),
14915
14916/***/ "./node_modules/d3-quadtree/src/quad.js":
14917/*!**********************************************!*\
14918 !*** ./node_modules/d3-quadtree/src/quad.js ***!
14919 \**********************************************/
14920/*! exports provided: default */
14921/***/ (function(module, __webpack_exports__, __webpack_require__) {
14922
14923"use strict";
14924__webpack_require__.r(__webpack_exports__);
14925/* harmony default export */ __webpack_exports__["default"] = (function(node, x0, y0, x1, y1) {
14926 this.node = node;
14927 this.x0 = x0;
14928 this.y0 = y0;
14929 this.x1 = x1;
14930 this.y1 = y1;
14931});
14932
14933
14934/***/ }),
14935
14936/***/ "./node_modules/d3-quadtree/src/quadtree.js":
14937/*!**************************************************!*\
14938 !*** ./node_modules/d3-quadtree/src/quadtree.js ***!
14939 \**************************************************/
14940/*! exports provided: default */
14941/***/ (function(module, __webpack_exports__, __webpack_require__) {
14942
14943"use strict";
14944__webpack_require__.r(__webpack_exports__);
14945/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quadtree; });
14946/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ "./node_modules/d3-quadtree/src/add.js");
14947/* harmony import */ var _cover_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cover.js */ "./node_modules/d3-quadtree/src/cover.js");
14948/* harmony import */ var _data_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data.js */ "./node_modules/d3-quadtree/src/data.js");
14949/* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extent.js */ "./node_modules/d3-quadtree/src/extent.js");
14950/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./find.js */ "./node_modules/d3-quadtree/src/find.js");
14951/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remove.js */ "./node_modules/d3-quadtree/src/remove.js");
14952/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./root.js */ "./node_modules/d3-quadtree/src/root.js");
14953/* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./size.js */ "./node_modules/d3-quadtree/src/size.js");
14954/* harmony import */ var _visit_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./visit.js */ "./node_modules/d3-quadtree/src/visit.js");
14955/* harmony import */ var _visitAfter_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./visitAfter.js */ "./node_modules/d3-quadtree/src/visitAfter.js");
14956/* harmony import */ var _x_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./x.js */ "./node_modules/d3-quadtree/src/x.js");
14957/* harmony import */ var _y_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./y.js */ "./node_modules/d3-quadtree/src/y.js");
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971function quadtree(nodes, x, y) {
14972 var tree = new Quadtree(x == null ? _x_js__WEBPACK_IMPORTED_MODULE_10__["defaultX"] : x, y == null ? _y_js__WEBPACK_IMPORTED_MODULE_11__["defaultY"] : y, NaN, NaN, NaN, NaN);
14973 return nodes == null ? tree : tree.addAll(nodes);
14974}
14975
14976function Quadtree(x, y, x0, y0, x1, y1) {
14977 this._x = x;
14978 this._y = y;
14979 this._x0 = x0;
14980 this._y0 = y0;
14981 this._x1 = x1;
14982 this._y1 = y1;
14983 this._root = undefined;
14984}
14985
14986function leaf_copy(leaf) {
14987 var copy = {data: leaf.data}, next = copy;
14988 while (leaf = leaf.next) next = next.next = {data: leaf.data};
14989 return copy;
14990}
14991
14992var treeProto = quadtree.prototype = Quadtree.prototype;
14993
14994treeProto.copy = function() {
14995 var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
14996 node = this._root,
14997 nodes,
14998 child;
14999
15000 if (!node) return copy;
15001
15002 if (!node.length) return copy._root = leaf_copy(node), copy;
15003
15004 nodes = [{source: node, target: copy._root = new Array(4)}];
15005 while (node = nodes.pop()) {
15006 for (var i = 0; i < 4; ++i) {
15007 if (child = node.source[i]) {
15008 if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
15009 else node.target[i] = leaf_copy(child);
15010 }
15011 }
15012 }
15013
15014 return copy;
15015};
15016
15017treeProto.add = _add_js__WEBPACK_IMPORTED_MODULE_0__["default"];
15018treeProto.addAll = _add_js__WEBPACK_IMPORTED_MODULE_0__["addAll"];
15019treeProto.cover = _cover_js__WEBPACK_IMPORTED_MODULE_1__["default"];
15020treeProto.data = _data_js__WEBPACK_IMPORTED_MODULE_2__["default"];
15021treeProto.extent = _extent_js__WEBPACK_IMPORTED_MODULE_3__["default"];
15022treeProto.find = _find_js__WEBPACK_IMPORTED_MODULE_4__["default"];
15023treeProto.remove = _remove_js__WEBPACK_IMPORTED_MODULE_5__["default"];
15024treeProto.removeAll = _remove_js__WEBPACK_IMPORTED_MODULE_5__["removeAll"];
15025treeProto.root = _root_js__WEBPACK_IMPORTED_MODULE_6__["default"];
15026treeProto.size = _size_js__WEBPACK_IMPORTED_MODULE_7__["default"];
15027treeProto.visit = _visit_js__WEBPACK_IMPORTED_MODULE_8__["default"];
15028treeProto.visitAfter = _visitAfter_js__WEBPACK_IMPORTED_MODULE_9__["default"];
15029treeProto.x = _x_js__WEBPACK_IMPORTED_MODULE_10__["default"];
15030treeProto.y = _y_js__WEBPACK_IMPORTED_MODULE_11__["default"];
15031
15032
15033/***/ }),
15034
15035/***/ "./node_modules/d3-quadtree/src/remove.js":
15036/*!************************************************!*\
15037 !*** ./node_modules/d3-quadtree/src/remove.js ***!
15038 \************************************************/
15039/*! exports provided: default, removeAll */
15040/***/ (function(module, __webpack_exports__, __webpack_require__) {
15041
15042"use strict";
15043__webpack_require__.r(__webpack_exports__);
15044/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAll", function() { return removeAll; });
15045/* harmony default export */ __webpack_exports__["default"] = (function(d) {
15046 if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
15047
15048 var parent,
15049 node = this._root,
15050 retainer,
15051 previous,
15052 next,
15053 x0 = this._x0,
15054 y0 = this._y0,
15055 x1 = this._x1,
15056 y1 = this._y1,
15057 x,
15058 y,
15059 xm,
15060 ym,
15061 right,
15062 bottom,
15063 i,
15064 j;
15065
15066 // If the tree is empty, initialize the root as a leaf.
15067 if (!node) return this;
15068
15069 // Find the leaf node for the point.
15070 // While descending, also retain the deepest parent with a non-removed sibling.
15071 if (node.length) while (true) {
15072 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
15073 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
15074 if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
15075 if (!node.length) break;
15076 if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
15077 }
15078
15079 // Find the point to remove.
15080 while (node.data !== d) if (!(previous = node, node = node.next)) return this;
15081 if (next = node.next) delete node.next;
15082
15083 // If there are multiple coincident points, remove just the point.
15084 if (previous) return (next ? previous.next = next : delete previous.next), this;
15085
15086 // If this is the root point, remove it.
15087 if (!parent) return this._root = next, this;
15088
15089 // Remove this leaf.
15090 next ? parent[i] = next : delete parent[i];
15091
15092 // If the parent now contains exactly one leaf, collapse superfluous parents.
15093 if ((node = parent[0] || parent[1] || parent[2] || parent[3])
15094 && node === (parent[3] || parent[2] || parent[1] || parent[0])
15095 && !node.length) {
15096 if (retainer) retainer[j] = node;
15097 else this._root = node;
15098 }
15099
15100 return this;
15101});
15102
15103function removeAll(data) {
15104 for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
15105 return this;
15106}
15107
15108
15109/***/ }),
15110
15111/***/ "./node_modules/d3-quadtree/src/root.js":
15112/*!**********************************************!*\
15113 !*** ./node_modules/d3-quadtree/src/root.js ***!
15114 \**********************************************/
15115/*! exports provided: default */
15116/***/ (function(module, __webpack_exports__, __webpack_require__) {
15117
15118"use strict";
15119__webpack_require__.r(__webpack_exports__);
15120/* harmony default export */ __webpack_exports__["default"] = (function() {
15121 return this._root;
15122});
15123
15124
15125/***/ }),
15126
15127/***/ "./node_modules/d3-quadtree/src/size.js":
15128/*!**********************************************!*\
15129 !*** ./node_modules/d3-quadtree/src/size.js ***!
15130 \**********************************************/
15131/*! exports provided: default */
15132/***/ (function(module, __webpack_exports__, __webpack_require__) {
15133
15134"use strict";
15135__webpack_require__.r(__webpack_exports__);
15136/* harmony default export */ __webpack_exports__["default"] = (function() {
15137 var size = 0;
15138 this.visit(function(node) {
15139 if (!node.length) do ++size; while (node = node.next)
15140 });
15141 return size;
15142});
15143
15144
15145/***/ }),
15146
15147/***/ "./node_modules/d3-quadtree/src/visit.js":
15148/*!***********************************************!*\
15149 !*** ./node_modules/d3-quadtree/src/visit.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 _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ "./node_modules/d3-quadtree/src/quad.js");
15157
15158
15159/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
15160 var quads = [], q, node = this._root, child, x0, y0, x1, y1;
15161 if (node) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node, this._x0, this._y0, this._x1, this._y1));
15162 while (q = quads.pop()) {
15163 if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
15164 var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
15165 if (child = node[3]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, ym, x1, y1));
15166 if (child = node[2]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, ym, xm, y1));
15167 if (child = node[1]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, y0, x1, ym));
15168 if (child = node[0]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, y0, xm, ym));
15169 }
15170 }
15171 return this;
15172});
15173
15174
15175/***/ }),
15176
15177/***/ "./node_modules/d3-quadtree/src/visitAfter.js":
15178/*!****************************************************!*\
15179 !*** ./node_modules/d3-quadtree/src/visitAfter.js ***!
15180 \****************************************************/
15181/*! exports provided: default */
15182/***/ (function(module, __webpack_exports__, __webpack_require__) {
15183
15184"use strict";
15185__webpack_require__.r(__webpack_exports__);
15186/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ "./node_modules/d3-quadtree/src/quad.js");
15187
15188
15189/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
15190 var quads = [], next = [], q;
15191 if (this._root) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](this._root, this._x0, this._y0, this._x1, this._y1));
15192 while (q = quads.pop()) {
15193 var node = q.node;
15194 if (node.length) {
15195 var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
15196 if (child = node[0]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, y0, xm, ym));
15197 if (child = node[1]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, y0, x1, ym));
15198 if (child = node[2]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, ym, xm, y1));
15199 if (child = node[3]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, ym, x1, y1));
15200 }
15201 next.push(q);
15202 }
15203 while (q = next.pop()) {
15204 callback(q.node, q.x0, q.y0, q.x1, q.y1);
15205 }
15206 return this;
15207});
15208
15209
15210/***/ }),
15211
15212/***/ "./node_modules/d3-quadtree/src/x.js":
15213/*!*******************************************!*\
15214 !*** ./node_modules/d3-quadtree/src/x.js ***!
15215 \*******************************************/
15216/*! exports provided: defaultX, default */
15217/***/ (function(module, __webpack_exports__, __webpack_require__) {
15218
15219"use strict";
15220__webpack_require__.r(__webpack_exports__);
15221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultX", function() { return defaultX; });
15222function defaultX(d) {
15223 return d[0];
15224}
15225
15226/* harmony default export */ __webpack_exports__["default"] = (function(_) {
15227 return arguments.length ? (this._x = _, this) : this._x;
15228});
15229
15230
15231/***/ }),
15232
15233/***/ "./node_modules/d3-quadtree/src/y.js":
15234/*!*******************************************!*\
15235 !*** ./node_modules/d3-quadtree/src/y.js ***!
15236 \*******************************************/
15237/*! exports provided: defaultY, default */
15238/***/ (function(module, __webpack_exports__, __webpack_require__) {
15239
15240"use strict";
15241__webpack_require__.r(__webpack_exports__);
15242/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultY", function() { return defaultY; });
15243function defaultY(d) {
15244 return d[1];
15245}
15246
15247/* harmony default export */ __webpack_exports__["default"] = (function(_) {
15248 return arguments.length ? (this._y = _, this) : this._y;
15249});
15250
15251
15252/***/ }),
15253
15254/***/ "./node_modules/d3-random/src/bates.js":
15255/*!*********************************************!*\
15256 !*** ./node_modules/d3-random/src/bates.js ***!
15257 \*********************************************/
15258/*! exports provided: default */
15259/***/ (function(module, __webpack_exports__, __webpack_require__) {
15260
15261"use strict";
15262__webpack_require__.r(__webpack_exports__);
15263/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15264/* harmony import */ var _irwinHall__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./irwinHall */ "./node_modules/d3-random/src/irwinHall.js");
15265
15266
15267
15268/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomBates(source) {
15269 function randomBates(n) {
15270 var randomIrwinHall = _irwinHall__WEBPACK_IMPORTED_MODULE_1__["default"].source(source)(n);
15271 return function() {
15272 return randomIrwinHall() / n;
15273 };
15274 }
15275
15276 randomBates.source = sourceRandomBates;
15277
15278 return randomBates;
15279})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15280
15281
15282/***/ }),
15283
15284/***/ "./node_modules/d3-random/src/defaultSource.js":
15285/*!*****************************************************!*\
15286 !*** ./node_modules/d3-random/src/defaultSource.js ***!
15287 \*****************************************************/
15288/*! exports provided: default */
15289/***/ (function(module, __webpack_exports__, __webpack_require__) {
15290
15291"use strict";
15292__webpack_require__.r(__webpack_exports__);
15293/* harmony default export */ __webpack_exports__["default"] = (function() {
15294 return Math.random();
15295});
15296
15297
15298/***/ }),
15299
15300/***/ "./node_modules/d3-random/src/exponential.js":
15301/*!***************************************************!*\
15302 !*** ./node_modules/d3-random/src/exponential.js ***!
15303 \***************************************************/
15304/*! exports provided: default */
15305/***/ (function(module, __webpack_exports__, __webpack_require__) {
15306
15307"use strict";
15308__webpack_require__.r(__webpack_exports__);
15309/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15310
15311
15312/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomExponential(source) {
15313 function randomExponential(lambda) {
15314 return function() {
15315 return -Math.log(1 - source()) / lambda;
15316 };
15317 }
15318
15319 randomExponential.source = sourceRandomExponential;
15320
15321 return randomExponential;
15322})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15323
15324
15325/***/ }),
15326
15327/***/ "./node_modules/d3-random/src/index.js":
15328/*!*********************************************!*\
15329 !*** ./node_modules/d3-random/src/index.js ***!
15330 \*********************************************/
15331/*! exports provided: randomUniform, randomNormal, randomLogNormal, randomBates, randomIrwinHall, randomExponential */
15332/***/ (function(module, __webpack_exports__, __webpack_require__) {
15333
15334"use strict";
15335__webpack_require__.r(__webpack_exports__);
15336/* harmony import */ var _uniform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uniform */ "./node_modules/d3-random/src/uniform.js");
15337/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomUniform", function() { return _uniform__WEBPACK_IMPORTED_MODULE_0__["default"]; });
15338
15339/* harmony import */ var _normal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normal */ "./node_modules/d3-random/src/normal.js");
15340/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomNormal", function() { return _normal__WEBPACK_IMPORTED_MODULE_1__["default"]; });
15341
15342/* harmony import */ var _logNormal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logNormal */ "./node_modules/d3-random/src/logNormal.js");
15343/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomLogNormal", function() { return _logNormal__WEBPACK_IMPORTED_MODULE_2__["default"]; });
15344
15345/* harmony import */ var _bates__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bates */ "./node_modules/d3-random/src/bates.js");
15346/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomBates", function() { return _bates__WEBPACK_IMPORTED_MODULE_3__["default"]; });
15347
15348/* harmony import */ var _irwinHall__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./irwinHall */ "./node_modules/d3-random/src/irwinHall.js");
15349/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomIrwinHall", function() { return _irwinHall__WEBPACK_IMPORTED_MODULE_4__["default"]; });
15350
15351/* harmony import */ var _exponential__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exponential */ "./node_modules/d3-random/src/exponential.js");
15352/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomExponential", function() { return _exponential__WEBPACK_IMPORTED_MODULE_5__["default"]; });
15353
15354
15355
15356
15357
15358
15359
15360
15361
15362/***/ }),
15363
15364/***/ "./node_modules/d3-random/src/irwinHall.js":
15365/*!*************************************************!*\
15366 !*** ./node_modules/d3-random/src/irwinHall.js ***!
15367 \*************************************************/
15368/*! exports provided: default */
15369/***/ (function(module, __webpack_exports__, __webpack_require__) {
15370
15371"use strict";
15372__webpack_require__.r(__webpack_exports__);
15373/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15374
15375
15376/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomIrwinHall(source) {
15377 function randomIrwinHall(n) {
15378 return function() {
15379 for (var sum = 0, i = 0; i < n; ++i) sum += source();
15380 return sum;
15381 };
15382 }
15383
15384 randomIrwinHall.source = sourceRandomIrwinHall;
15385
15386 return randomIrwinHall;
15387})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15388
15389
15390/***/ }),
15391
15392/***/ "./node_modules/d3-random/src/logNormal.js":
15393/*!*************************************************!*\
15394 !*** ./node_modules/d3-random/src/logNormal.js ***!
15395 \*************************************************/
15396/*! exports provided: default */
15397/***/ (function(module, __webpack_exports__, __webpack_require__) {
15398
15399"use strict";
15400__webpack_require__.r(__webpack_exports__);
15401/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15402/* harmony import */ var _normal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normal */ "./node_modules/d3-random/src/normal.js");
15403
15404
15405
15406/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomLogNormal(source) {
15407 function randomLogNormal() {
15408 var randomNormal = _normal__WEBPACK_IMPORTED_MODULE_1__["default"].source(source).apply(this, arguments);
15409 return function() {
15410 return Math.exp(randomNormal());
15411 };
15412 }
15413
15414 randomLogNormal.source = sourceRandomLogNormal;
15415
15416 return randomLogNormal;
15417})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15418
15419
15420/***/ }),
15421
15422/***/ "./node_modules/d3-random/src/normal.js":
15423/*!**********************************************!*\
15424 !*** ./node_modules/d3-random/src/normal.js ***!
15425 \**********************************************/
15426/*! exports provided: default */
15427/***/ (function(module, __webpack_exports__, __webpack_require__) {
15428
15429"use strict";
15430__webpack_require__.r(__webpack_exports__);
15431/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15432
15433
15434/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomNormal(source) {
15435 function randomNormal(mu, sigma) {
15436 var x, r;
15437 mu = mu == null ? 0 : +mu;
15438 sigma = sigma == null ? 1 : +sigma;
15439 return function() {
15440 var y;
15441
15442 // If available, use the second previously-generated uniform random.
15443 if (x != null) y = x, x = null;
15444
15445 // Otherwise, generate a new x and y.
15446 else do {
15447 x = source() * 2 - 1;
15448 y = source() * 2 - 1;
15449 r = x * x + y * y;
15450 } while (!r || r > 1);
15451
15452 return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
15453 };
15454 }
15455
15456 randomNormal.source = sourceRandomNormal;
15457
15458 return randomNormal;
15459})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15460
15461
15462/***/ }),
15463
15464/***/ "./node_modules/d3-random/src/uniform.js":
15465/*!***********************************************!*\
15466 !*** ./node_modules/d3-random/src/uniform.js ***!
15467 \***********************************************/
15468/*! exports provided: default */
15469/***/ (function(module, __webpack_exports__, __webpack_require__) {
15470
15471"use strict";
15472__webpack_require__.r(__webpack_exports__);
15473/* harmony import */ var _defaultSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource */ "./node_modules/d3-random/src/defaultSource.js");
15474
15475
15476/* harmony default export */ __webpack_exports__["default"] = ((function sourceRandomUniform(source) {
15477 function randomUniform(min, max) {
15478 min = min == null ? 0 : +min;
15479 max = max == null ? 1 : +max;
15480 if (arguments.length === 1) max = min, min = 0;
15481 else max -= min;
15482 return function() {
15483 return source() * max + min;
15484 };
15485 }
15486
15487 randomUniform.source = sourceRandomUniform;
15488
15489 return randomUniform;
15490})(_defaultSource__WEBPACK_IMPORTED_MODULE_0__["default"]));
15491
15492
15493/***/ }),
15494
15495/***/ "./node_modules/d3-scale-chromatic/src/categorical/Accent.js":
15496/*!*******************************************************************!*\
15497 !*** ./node_modules/d3-scale-chromatic/src/categorical/Accent.js ***!
15498 \*******************************************************************/
15499/*! exports provided: default */
15500/***/ (function(module, __webpack_exports__, __webpack_require__) {
15501
15502"use strict";
15503__webpack_require__.r(__webpack_exports__);
15504/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15505
15506
15507/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"));
15508
15509
15510/***/ }),
15511
15512/***/ "./node_modules/d3-scale-chromatic/src/categorical/Dark2.js":
15513/*!******************************************************************!*\
15514 !*** ./node_modules/d3-scale-chromatic/src/categorical/Dark2.js ***!
15515 \******************************************************************/
15516/*! exports provided: default */
15517/***/ (function(module, __webpack_exports__, __webpack_require__) {
15518
15519"use strict";
15520__webpack_require__.r(__webpack_exports__);
15521/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15522
15523
15524/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"));
15525
15526
15527/***/ }),
15528
15529/***/ "./node_modules/d3-scale-chromatic/src/categorical/Paired.js":
15530/*!*******************************************************************!*\
15531 !*** ./node_modules/d3-scale-chromatic/src/categorical/Paired.js ***!
15532 \*******************************************************************/
15533/*! exports provided: default */
15534/***/ (function(module, __webpack_exports__, __webpack_require__) {
15535
15536"use strict";
15537__webpack_require__.r(__webpack_exports__);
15538/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15539
15540
15541/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"));
15542
15543
15544/***/ }),
15545
15546/***/ "./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js":
15547/*!********************************************************************!*\
15548 !*** ./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js ***!
15549 \********************************************************************/
15550/*! exports provided: default */
15551/***/ (function(module, __webpack_exports__, __webpack_require__) {
15552
15553"use strict";
15554__webpack_require__.r(__webpack_exports__);
15555/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15556
15557
15558/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"));
15559
15560
15561/***/ }),
15562
15563/***/ "./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js":
15564/*!********************************************************************!*\
15565 !*** ./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js ***!
15566 \********************************************************************/
15567/*! exports provided: default */
15568/***/ (function(module, __webpack_exports__, __webpack_require__) {
15569
15570"use strict";
15571__webpack_require__.r(__webpack_exports__);
15572/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15573
15574
15575/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"));
15576
15577
15578/***/ }),
15579
15580/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set1.js":
15581/*!*****************************************************************!*\
15582 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set1.js ***!
15583 \*****************************************************************/
15584/*! exports provided: default */
15585/***/ (function(module, __webpack_exports__, __webpack_require__) {
15586
15587"use strict";
15588__webpack_require__.r(__webpack_exports__);
15589/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15590
15591
15592/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"));
15593
15594
15595/***/ }),
15596
15597/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set2.js":
15598/*!*****************************************************************!*\
15599 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set2.js ***!
15600 \*****************************************************************/
15601/*! exports provided: default */
15602/***/ (function(module, __webpack_exports__, __webpack_require__) {
15603
15604"use strict";
15605__webpack_require__.r(__webpack_exports__);
15606/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15607
15608
15609/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"));
15610
15611
15612/***/ }),
15613
15614/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set3.js":
15615/*!*****************************************************************!*\
15616 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set3.js ***!
15617 \*****************************************************************/
15618/*! exports provided: default */
15619/***/ (function(module, __webpack_exports__, __webpack_require__) {
15620
15621"use strict";
15622__webpack_require__.r(__webpack_exports__);
15623/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15624
15625
15626/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"));
15627
15628
15629/***/ }),
15630
15631/***/ "./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js":
15632/*!**********************************************************************!*\
15633 !*** ./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js ***!
15634 \**********************************************************************/
15635/*! exports provided: default */
15636/***/ (function(module, __webpack_exports__, __webpack_require__) {
15637
15638"use strict";
15639__webpack_require__.r(__webpack_exports__);
15640/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15641
15642
15643/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"));
15644
15645
15646/***/ }),
15647
15648/***/ "./node_modules/d3-scale-chromatic/src/categorical/category10.js":
15649/*!***********************************************************************!*\
15650 !*** ./node_modules/d3-scale-chromatic/src/categorical/category10.js ***!
15651 \***********************************************************************/
15652/*! exports provided: default */
15653/***/ (function(module, __webpack_exports__, __webpack_require__) {
15654
15655"use strict";
15656__webpack_require__.r(__webpack_exports__);
15657/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15658
15659
15660/* harmony default export */ __webpack_exports__["default"] = (Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"));
15661
15662
15663/***/ }),
15664
15665/***/ "./node_modules/d3-scale-chromatic/src/colors.js":
15666/*!*******************************************************!*\
15667 !*** ./node_modules/d3-scale-chromatic/src/colors.js ***!
15668 \*******************************************************/
15669/*! exports provided: default */
15670/***/ (function(module, __webpack_exports__, __webpack_require__) {
15671
15672"use strict";
15673__webpack_require__.r(__webpack_exports__);
15674/* harmony default export */ __webpack_exports__["default"] = (function(specifier) {
15675 var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;
15676 while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6);
15677 return colors;
15678});
15679
15680
15681/***/ }),
15682
15683/***/ "./node_modules/d3-scale-chromatic/src/diverging/BrBG.js":
15684/*!***************************************************************!*\
15685 !*** ./node_modules/d3-scale-chromatic/src/diverging/BrBG.js ***!
15686 \***************************************************************/
15687/*! exports provided: scheme, default */
15688/***/ (function(module, __webpack_exports__, __webpack_require__) {
15689
15690"use strict";
15691__webpack_require__.r(__webpack_exports__);
15692/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15693/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15694/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15695
15696
15697
15698var scheme = new Array(3).concat(
15699 "d8b365f5f5f55ab4ac",
15700 "a6611adfc27d80cdc1018571",
15701 "a6611adfc27df5f5f580cdc1018571",
15702 "8c510ad8b365f6e8c3c7eae55ab4ac01665e",
15703 "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
15704 "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
15705 "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
15706 "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
15707 "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30"
15708).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15709
15710/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15711
15712
15713/***/ }),
15714
15715/***/ "./node_modules/d3-scale-chromatic/src/diverging/PRGn.js":
15716/*!***************************************************************!*\
15717 !*** ./node_modules/d3-scale-chromatic/src/diverging/PRGn.js ***!
15718 \***************************************************************/
15719/*! exports provided: scheme, default */
15720/***/ (function(module, __webpack_exports__, __webpack_require__) {
15721
15722"use strict";
15723__webpack_require__.r(__webpack_exports__);
15724/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15725/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15726/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15727
15728
15729
15730var scheme = new Array(3).concat(
15731 "af8dc3f7f7f77fbf7b",
15732 "7b3294c2a5cfa6dba0008837",
15733 "7b3294c2a5cff7f7f7a6dba0008837",
15734 "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
15735 "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
15736 "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
15737 "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
15738 "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
15739 "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b"
15740).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15741
15742/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15743
15744
15745/***/ }),
15746
15747/***/ "./node_modules/d3-scale-chromatic/src/diverging/PiYG.js":
15748/*!***************************************************************!*\
15749 !*** ./node_modules/d3-scale-chromatic/src/diverging/PiYG.js ***!
15750 \***************************************************************/
15751/*! exports provided: scheme, default */
15752/***/ (function(module, __webpack_exports__, __webpack_require__) {
15753
15754"use strict";
15755__webpack_require__.r(__webpack_exports__);
15756/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15757/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15758/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15759
15760
15761
15762var scheme = new Array(3).concat(
15763 "e9a3c9f7f7f7a1d76a",
15764 "d01c8bf1b6dab8e1864dac26",
15765 "d01c8bf1b6daf7f7f7b8e1864dac26",
15766 "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
15767 "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
15768 "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
15769 "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
15770 "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
15771 "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419"
15772).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15773
15774/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15775
15776
15777/***/ }),
15778
15779/***/ "./node_modules/d3-scale-chromatic/src/diverging/PuOr.js":
15780/*!***************************************************************!*\
15781 !*** ./node_modules/d3-scale-chromatic/src/diverging/PuOr.js ***!
15782 \***************************************************************/
15783/*! exports provided: scheme, default */
15784/***/ (function(module, __webpack_exports__, __webpack_require__) {
15785
15786"use strict";
15787__webpack_require__.r(__webpack_exports__);
15788/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15789/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15790/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15791
15792
15793
15794var scheme = new Array(3).concat(
15795 "998ec3f7f7f7f1a340",
15796 "5e3c99b2abd2fdb863e66101",
15797 "5e3c99b2abd2f7f7f7fdb863e66101",
15798 "542788998ec3d8daebfee0b6f1a340b35806",
15799 "542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
15800 "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
15801 "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
15802 "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
15803 "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08"
15804).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15805
15806/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15807
15808
15809/***/ }),
15810
15811/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdBu.js":
15812/*!***************************************************************!*\
15813 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdBu.js ***!
15814 \***************************************************************/
15815/*! exports provided: scheme, default */
15816/***/ (function(module, __webpack_exports__, __webpack_require__) {
15817
15818"use strict";
15819__webpack_require__.r(__webpack_exports__);
15820/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15821/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15822/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15823
15824
15825
15826var scheme = new Array(3).concat(
15827 "ef8a62f7f7f767a9cf",
15828 "ca0020f4a58292c5de0571b0",
15829 "ca0020f4a582f7f7f792c5de0571b0",
15830 "b2182bef8a62fddbc7d1e5f067a9cf2166ac",
15831 "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
15832 "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
15833 "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
15834 "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
15835 "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061"
15836).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15837
15838/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15839
15840
15841/***/ }),
15842
15843/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdGy.js":
15844/*!***************************************************************!*\
15845 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdGy.js ***!
15846 \***************************************************************/
15847/*! exports provided: scheme, default */
15848/***/ (function(module, __webpack_exports__, __webpack_require__) {
15849
15850"use strict";
15851__webpack_require__.r(__webpack_exports__);
15852/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15853/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15854/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15855
15856
15857
15858var scheme = new Array(3).concat(
15859 "ef8a62ffffff999999",
15860 "ca0020f4a582bababa404040",
15861 "ca0020f4a582ffffffbababa404040",
15862 "b2182bef8a62fddbc7e0e0e09999994d4d4d",
15863 "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
15864 "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
15865 "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
15866 "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
15867 "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a"
15868).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15869
15870/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15871
15872
15873/***/ }),
15874
15875/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js":
15876/*!*****************************************************************!*\
15877 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js ***!
15878 \*****************************************************************/
15879/*! exports provided: scheme, default */
15880/***/ (function(module, __webpack_exports__, __webpack_require__) {
15881
15882"use strict";
15883__webpack_require__.r(__webpack_exports__);
15884/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15885/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15886/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15887
15888
15889
15890var scheme = new Array(3).concat(
15891 "fc8d59ffffbf91bfdb",
15892 "d7191cfdae61abd9e92c7bb6",
15893 "d7191cfdae61ffffbfabd9e92c7bb6",
15894 "d73027fc8d59fee090e0f3f891bfdb4575b4",
15895 "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
15896 "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
15897 "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
15898 "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
15899 "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695"
15900).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15901
15902/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15903
15904
15905/***/ }),
15906
15907/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js":
15908/*!*****************************************************************!*\
15909 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js ***!
15910 \*****************************************************************/
15911/*! exports provided: scheme, default */
15912/***/ (function(module, __webpack_exports__, __webpack_require__) {
15913
15914"use strict";
15915__webpack_require__.r(__webpack_exports__);
15916/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15917/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15918/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15919
15920
15921
15922var scheme = new Array(3).concat(
15923 "fc8d59ffffbf91cf60",
15924 "d7191cfdae61a6d96a1a9641",
15925 "d7191cfdae61ffffbfa6d96a1a9641",
15926 "d73027fc8d59fee08bd9ef8b91cf601a9850",
15927 "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
15928 "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
15929 "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
15930 "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
15931 "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837"
15932).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15933
15934/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15935
15936
15937/***/ }),
15938
15939/***/ "./node_modules/d3-scale-chromatic/src/diverging/Spectral.js":
15940/*!*******************************************************************!*\
15941 !*** ./node_modules/d3-scale-chromatic/src/diverging/Spectral.js ***!
15942 \*******************************************************************/
15943/*! exports provided: scheme, default */
15944/***/ (function(module, __webpack_exports__, __webpack_require__) {
15945
15946"use strict";
15947__webpack_require__.r(__webpack_exports__);
15948/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
15949/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
15950/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
15951
15952
15953
15954var scheme = new Array(3).concat(
15955 "fc8d59ffffbf99d594",
15956 "d7191cfdae61abdda42b83ba",
15957 "d7191cfdae61ffffbfabdda42b83ba",
15958 "d53e4ffc8d59fee08be6f59899d5943288bd",
15959 "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
15960 "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
15961 "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
15962 "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
15963 "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2"
15964).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
15965
15966/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
15967
15968
15969/***/ }),
15970
15971/***/ "./node_modules/d3-scale-chromatic/src/index.js":
15972/*!******************************************************!*\
15973 !*** ./node_modules/d3-scale-chromatic/src/index.js ***!
15974 \******************************************************/
15975/*! exports provided: schemeCategory10, schemeAccent, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, schemeTableau10, interpolateBrBG, schemeBrBG, interpolatePRGn, schemePRGn, interpolatePiYG, schemePiYG, interpolatePuOr, schemePuOr, interpolateRdBu, schemeRdBu, interpolateRdGy, schemeRdGy, interpolateRdYlBu, schemeRdYlBu, interpolateRdYlGn, schemeRdYlGn, interpolateSpectral, schemeSpectral, interpolateBuGn, schemeBuGn, interpolateBuPu, schemeBuPu, interpolateGnBu, schemeGnBu, interpolateOrRd, schemeOrRd, interpolatePuBuGn, schemePuBuGn, interpolatePuBu, schemePuBu, interpolatePuRd, schemePuRd, interpolateRdPu, schemeRdPu, interpolateYlGnBu, schemeYlGnBu, interpolateYlGn, schemeYlGn, interpolateYlOrBr, schemeYlOrBr, interpolateYlOrRd, schemeYlOrRd, interpolateBlues, schemeBlues, interpolateGreens, schemeGreens, interpolateGreys, schemeGreys, interpolatePurples, schemePurples, interpolateReds, schemeReds, interpolateOranges, schemeOranges, interpolateCividis, interpolateCubehelixDefault, interpolateRainbow, interpolateWarm, interpolateCool, interpolateSinebow, interpolateTurbo, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma */
15976/***/ (function(module, __webpack_exports__, __webpack_require__) {
15977
15978"use strict";
15979__webpack_require__.r(__webpack_exports__);
15980/* harmony import */ var _categorical_category10_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorical/category10.js */ "./node_modules/d3-scale-chromatic/src/categorical/category10.js");
15981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory10", function() { return _categorical_category10_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
15982
15983/* harmony import */ var _categorical_Accent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categorical/Accent.js */ "./node_modules/d3-scale-chromatic/src/categorical/Accent.js");
15984/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeAccent", function() { return _categorical_Accent_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
15985
15986/* harmony import */ var _categorical_Dark2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./categorical/Dark2.js */ "./node_modules/d3-scale-chromatic/src/categorical/Dark2.js");
15987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeDark2", function() { return _categorical_Dark2_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
15988
15989/* harmony import */ var _categorical_Paired_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./categorical/Paired.js */ "./node_modules/d3-scale-chromatic/src/categorical/Paired.js");
15990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePaired", function() { return _categorical_Paired_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
15991
15992/* harmony import */ var _categorical_Pastel1_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./categorical/Pastel1.js */ "./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js");
15993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePastel1", function() { return _categorical_Pastel1_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
15994
15995/* harmony import */ var _categorical_Pastel2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./categorical/Pastel2.js */ "./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js");
15996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePastel2", function() { return _categorical_Pastel2_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });
15997
15998/* harmony import */ var _categorical_Set1_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./categorical/Set1.js */ "./node_modules/d3-scale-chromatic/src/categorical/Set1.js");
15999/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet1", function() { return _categorical_Set1_js__WEBPACK_IMPORTED_MODULE_6__["default"]; });
16000
16001/* harmony import */ var _categorical_Set2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./categorical/Set2.js */ "./node_modules/d3-scale-chromatic/src/categorical/Set2.js");
16002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet2", function() { return _categorical_Set2_js__WEBPACK_IMPORTED_MODULE_7__["default"]; });
16003
16004/* harmony import */ var _categorical_Set3_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./categorical/Set3.js */ "./node_modules/d3-scale-chromatic/src/categorical/Set3.js");
16005/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet3", function() { return _categorical_Set3_js__WEBPACK_IMPORTED_MODULE_8__["default"]; });
16006
16007/* harmony import */ var _categorical_Tableau10_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./categorical/Tableau10.js */ "./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js");
16008/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeTableau10", function() { return _categorical_Tableau10_js__WEBPACK_IMPORTED_MODULE_9__["default"]; });
16009
16010/* harmony import */ var _diverging_BrBG_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diverging/BrBG.js */ "./node_modules/d3-scale-chromatic/src/diverging/BrBG.js");
16011/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBrBG", function() { return _diverging_BrBG_js__WEBPACK_IMPORTED_MODULE_10__["default"]; });
16012
16013/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBrBG", function() { return _diverging_BrBG_js__WEBPACK_IMPORTED_MODULE_10__["scheme"]; });
16014
16015/* harmony import */ var _diverging_PRGn_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diverging/PRGn.js */ "./node_modules/d3-scale-chromatic/src/diverging/PRGn.js");
16016/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePRGn", function() { return _diverging_PRGn_js__WEBPACK_IMPORTED_MODULE_11__["default"]; });
16017
16018/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePRGn", function() { return _diverging_PRGn_js__WEBPACK_IMPORTED_MODULE_11__["scheme"]; });
16019
16020/* harmony import */ var _diverging_PiYG_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diverging/PiYG.js */ "./node_modules/d3-scale-chromatic/src/diverging/PiYG.js");
16021/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePiYG", function() { return _diverging_PiYG_js__WEBPACK_IMPORTED_MODULE_12__["default"]; });
16022
16023/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePiYG", function() { return _diverging_PiYG_js__WEBPACK_IMPORTED_MODULE_12__["scheme"]; });
16024
16025/* harmony import */ var _diverging_PuOr_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diverging/PuOr.js */ "./node_modules/d3-scale-chromatic/src/diverging/PuOr.js");
16026/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuOr", function() { return _diverging_PuOr_js__WEBPACK_IMPORTED_MODULE_13__["default"]; });
16027
16028/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuOr", function() { return _diverging_PuOr_js__WEBPACK_IMPORTED_MODULE_13__["scheme"]; });
16029
16030/* harmony import */ var _diverging_RdBu_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diverging/RdBu.js */ "./node_modules/d3-scale-chromatic/src/diverging/RdBu.js");
16031/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdBu", function() { return _diverging_RdBu_js__WEBPACK_IMPORTED_MODULE_14__["default"]; });
16032
16033/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdBu", function() { return _diverging_RdBu_js__WEBPACK_IMPORTED_MODULE_14__["scheme"]; });
16034
16035/* harmony import */ var _diverging_RdGy_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diverging/RdGy.js */ "./node_modules/d3-scale-chromatic/src/diverging/RdGy.js");
16036/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdGy", function() { return _diverging_RdGy_js__WEBPACK_IMPORTED_MODULE_15__["default"]; });
16037
16038/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdGy", function() { return _diverging_RdGy_js__WEBPACK_IMPORTED_MODULE_15__["scheme"]; });
16039
16040/* harmony import */ var _diverging_RdYlBu_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./diverging/RdYlBu.js */ "./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js");
16041/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdYlBu", function() { return _diverging_RdYlBu_js__WEBPACK_IMPORTED_MODULE_16__["default"]; });
16042
16043/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdYlBu", function() { return _diverging_RdYlBu_js__WEBPACK_IMPORTED_MODULE_16__["scheme"]; });
16044
16045/* harmony import */ var _diverging_RdYlGn_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diverging/RdYlGn.js */ "./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js");
16046/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdYlGn", function() { return _diverging_RdYlGn_js__WEBPACK_IMPORTED_MODULE_17__["default"]; });
16047
16048/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdYlGn", function() { return _diverging_RdYlGn_js__WEBPACK_IMPORTED_MODULE_17__["scheme"]; });
16049
16050/* harmony import */ var _diverging_Spectral_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diverging/Spectral.js */ "./node_modules/d3-scale-chromatic/src/diverging/Spectral.js");
16051/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateSpectral", function() { return _diverging_Spectral_js__WEBPACK_IMPORTED_MODULE_18__["default"]; });
16052
16053/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSpectral", function() { return _diverging_Spectral_js__WEBPACK_IMPORTED_MODULE_18__["scheme"]; });
16054
16055/* harmony import */ var _sequential_multi_BuGn_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./sequential-multi/BuGn.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js");
16056/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBuGn", function() { return _sequential_multi_BuGn_js__WEBPACK_IMPORTED_MODULE_19__["default"]; });
16057
16058/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBuGn", function() { return _sequential_multi_BuGn_js__WEBPACK_IMPORTED_MODULE_19__["scheme"]; });
16059
16060/* harmony import */ var _sequential_multi_BuPu_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./sequential-multi/BuPu.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js");
16061/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBuPu", function() { return _sequential_multi_BuPu_js__WEBPACK_IMPORTED_MODULE_20__["default"]; });
16062
16063/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBuPu", function() { return _sequential_multi_BuPu_js__WEBPACK_IMPORTED_MODULE_20__["scheme"]; });
16064
16065/* harmony import */ var _sequential_multi_GnBu_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./sequential-multi/GnBu.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js");
16066/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGnBu", function() { return _sequential_multi_GnBu_js__WEBPACK_IMPORTED_MODULE_21__["default"]; });
16067
16068/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGnBu", function() { return _sequential_multi_GnBu_js__WEBPACK_IMPORTED_MODULE_21__["scheme"]; });
16069
16070/* harmony import */ var _sequential_multi_OrRd_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./sequential-multi/OrRd.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js");
16071/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateOrRd", function() { return _sequential_multi_OrRd_js__WEBPACK_IMPORTED_MODULE_22__["default"]; });
16072
16073/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeOrRd", function() { return _sequential_multi_OrRd_js__WEBPACK_IMPORTED_MODULE_22__["scheme"]; });
16074
16075/* harmony import */ var _sequential_multi_PuBuGn_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./sequential-multi/PuBuGn.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js");
16076/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuBuGn", function() { return _sequential_multi_PuBuGn_js__WEBPACK_IMPORTED_MODULE_23__["default"]; });
16077
16078/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuBuGn", function() { return _sequential_multi_PuBuGn_js__WEBPACK_IMPORTED_MODULE_23__["scheme"]; });
16079
16080/* harmony import */ var _sequential_multi_PuBu_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./sequential-multi/PuBu.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js");
16081/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuBu", function() { return _sequential_multi_PuBu_js__WEBPACK_IMPORTED_MODULE_24__["default"]; });
16082
16083/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuBu", function() { return _sequential_multi_PuBu_js__WEBPACK_IMPORTED_MODULE_24__["scheme"]; });
16084
16085/* harmony import */ var _sequential_multi_PuRd_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./sequential-multi/PuRd.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js");
16086/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuRd", function() { return _sequential_multi_PuRd_js__WEBPACK_IMPORTED_MODULE_25__["default"]; });
16087
16088/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuRd", function() { return _sequential_multi_PuRd_js__WEBPACK_IMPORTED_MODULE_25__["scheme"]; });
16089
16090/* harmony import */ var _sequential_multi_RdPu_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./sequential-multi/RdPu.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js");
16091/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdPu", function() { return _sequential_multi_RdPu_js__WEBPACK_IMPORTED_MODULE_26__["default"]; });
16092
16093/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdPu", function() { return _sequential_multi_RdPu_js__WEBPACK_IMPORTED_MODULE_26__["scheme"]; });
16094
16095/* harmony import */ var _sequential_multi_YlGnBu_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./sequential-multi/YlGnBu.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js");
16096/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlGnBu", function() { return _sequential_multi_YlGnBu_js__WEBPACK_IMPORTED_MODULE_27__["default"]; });
16097
16098/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlGnBu", function() { return _sequential_multi_YlGnBu_js__WEBPACK_IMPORTED_MODULE_27__["scheme"]; });
16099
16100/* harmony import */ var _sequential_multi_YlGn_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./sequential-multi/YlGn.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js");
16101/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlGn", function() { return _sequential_multi_YlGn_js__WEBPACK_IMPORTED_MODULE_28__["default"]; });
16102
16103/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlGn", function() { return _sequential_multi_YlGn_js__WEBPACK_IMPORTED_MODULE_28__["scheme"]; });
16104
16105/* harmony import */ var _sequential_multi_YlOrBr_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./sequential-multi/YlOrBr.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js");
16106/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlOrBr", function() { return _sequential_multi_YlOrBr_js__WEBPACK_IMPORTED_MODULE_29__["default"]; });
16107
16108/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlOrBr", function() { return _sequential_multi_YlOrBr_js__WEBPACK_IMPORTED_MODULE_29__["scheme"]; });
16109
16110/* harmony import */ var _sequential_multi_YlOrRd_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./sequential-multi/YlOrRd.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js");
16111/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlOrRd", function() { return _sequential_multi_YlOrRd_js__WEBPACK_IMPORTED_MODULE_30__["default"]; });
16112
16113/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlOrRd", function() { return _sequential_multi_YlOrRd_js__WEBPACK_IMPORTED_MODULE_30__["scheme"]; });
16114
16115/* harmony import */ var _sequential_single_Blues_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./sequential-single/Blues.js */ "./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js");
16116/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBlues", function() { return _sequential_single_Blues_js__WEBPACK_IMPORTED_MODULE_31__["default"]; });
16117
16118/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBlues", function() { return _sequential_single_Blues_js__WEBPACK_IMPORTED_MODULE_31__["scheme"]; });
16119
16120/* harmony import */ var _sequential_single_Greens_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./sequential-single/Greens.js */ "./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js");
16121/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGreens", function() { return _sequential_single_Greens_js__WEBPACK_IMPORTED_MODULE_32__["default"]; });
16122
16123/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGreens", function() { return _sequential_single_Greens_js__WEBPACK_IMPORTED_MODULE_32__["scheme"]; });
16124
16125/* harmony import */ var _sequential_single_Greys_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./sequential-single/Greys.js */ "./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js");
16126/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGreys", function() { return _sequential_single_Greys_js__WEBPACK_IMPORTED_MODULE_33__["default"]; });
16127
16128/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGreys", function() { return _sequential_single_Greys_js__WEBPACK_IMPORTED_MODULE_33__["scheme"]; });
16129
16130/* harmony import */ var _sequential_single_Purples_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./sequential-single/Purples.js */ "./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js");
16131/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePurples", function() { return _sequential_single_Purples_js__WEBPACK_IMPORTED_MODULE_34__["default"]; });
16132
16133/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePurples", function() { return _sequential_single_Purples_js__WEBPACK_IMPORTED_MODULE_34__["scheme"]; });
16134
16135/* harmony import */ var _sequential_single_Reds_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./sequential-single/Reds.js */ "./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js");
16136/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateReds", function() { return _sequential_single_Reds_js__WEBPACK_IMPORTED_MODULE_35__["default"]; });
16137
16138/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeReds", function() { return _sequential_single_Reds_js__WEBPACK_IMPORTED_MODULE_35__["scheme"]; });
16139
16140/* harmony import */ var _sequential_single_Oranges_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./sequential-single/Oranges.js */ "./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js");
16141/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateOranges", function() { return _sequential_single_Oranges_js__WEBPACK_IMPORTED_MODULE_36__["default"]; });
16142
16143/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeOranges", function() { return _sequential_single_Oranges_js__WEBPACK_IMPORTED_MODULE_36__["scheme"]; });
16144
16145/* harmony import */ var _sequential_multi_cividis_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./sequential-multi/cividis.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js");
16146/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCividis", function() { return _sequential_multi_cividis_js__WEBPACK_IMPORTED_MODULE_37__["default"]; });
16147
16148/* harmony import */ var _sequential_multi_cubehelix_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./sequential-multi/cubehelix.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js");
16149/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixDefault", function() { return _sequential_multi_cubehelix_js__WEBPACK_IMPORTED_MODULE_38__["default"]; });
16150
16151/* harmony import */ var _sequential_multi_rainbow_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./sequential-multi/rainbow.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js");
16152/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRainbow", function() { return _sequential_multi_rainbow_js__WEBPACK_IMPORTED_MODULE_39__["default"]; });
16153
16154/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateWarm", function() { return _sequential_multi_rainbow_js__WEBPACK_IMPORTED_MODULE_39__["warm"]; });
16155
16156/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCool", function() { return _sequential_multi_rainbow_js__WEBPACK_IMPORTED_MODULE_39__["cool"]; });
16157
16158/* harmony import */ var _sequential_multi_sinebow_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./sequential-multi/sinebow.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js");
16159/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateSinebow", function() { return _sequential_multi_sinebow_js__WEBPACK_IMPORTED_MODULE_40__["default"]; });
16160
16161/* harmony import */ var _sequential_multi_turbo_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./sequential-multi/turbo.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js");
16162/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTurbo", function() { return _sequential_multi_turbo_js__WEBPACK_IMPORTED_MODULE_41__["default"]; });
16163
16164/* harmony import */ var _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./sequential-multi/viridis.js */ "./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js");
16165/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateViridis", function() { return _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__["default"]; });
16166
16167/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateMagma", function() { return _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__["magma"]; });
16168
16169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateInferno", function() { return _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__["inferno"]; });
16170
16171/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePlasma", function() { return _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__["plasma"]; });
16172
16173
16174
16175
16176
16177
16178
16179
16180
16181
16182
16183
16184
16185
16186
16187
16188
16189
16190
16191
16192
16193
16194
16195
16196
16197
16198
16199
16200
16201
16202
16203
16204
16205
16206
16207
16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218/***/ }),
16219
16220/***/ "./node_modules/d3-scale-chromatic/src/ramp.js":
16221/*!*****************************************************!*\
16222 !*** ./node_modules/d3-scale-chromatic/src/ramp.js ***!
16223 \*****************************************************/
16224/*! exports provided: default */
16225/***/ (function(module, __webpack_exports__, __webpack_require__) {
16226
16227"use strict";
16228__webpack_require__.r(__webpack_exports__);
16229/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
16230
16231
16232/* harmony default export */ __webpack_exports__["default"] = (function(scheme) {
16233 return Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["interpolateRgbBasis"])(scheme[scheme.length - 1]);
16234});
16235
16236
16237/***/ }),
16238
16239/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js":
16240/*!**********************************************************************!*\
16241 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js ***!
16242 \**********************************************************************/
16243/*! exports provided: scheme, default */
16244/***/ (function(module, __webpack_exports__, __webpack_require__) {
16245
16246"use strict";
16247__webpack_require__.r(__webpack_exports__);
16248/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16249/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16250/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16251
16252
16253
16254var scheme = new Array(3).concat(
16255 "e5f5f999d8c92ca25f",
16256 "edf8fbb2e2e266c2a4238b45",
16257 "edf8fbb2e2e266c2a42ca25f006d2c",
16258 "edf8fbccece699d8c966c2a42ca25f006d2c",
16259 "edf8fbccece699d8c966c2a441ae76238b45005824",
16260 "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
16261 "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b"
16262).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16263
16264/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16265
16266
16267/***/ }),
16268
16269/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js":
16270/*!**********************************************************************!*\
16271 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js ***!
16272 \**********************************************************************/
16273/*! exports provided: scheme, default */
16274/***/ (function(module, __webpack_exports__, __webpack_require__) {
16275
16276"use strict";
16277__webpack_require__.r(__webpack_exports__);
16278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16279/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16280/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16281
16282
16283
16284var scheme = new Array(3).concat(
16285 "e0ecf49ebcda8856a7",
16286 "edf8fbb3cde38c96c688419d",
16287 "edf8fbb3cde38c96c68856a7810f7c",
16288 "edf8fbbfd3e69ebcda8c96c68856a7810f7c",
16289 "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
16290 "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
16291 "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b"
16292).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16293
16294/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16295
16296
16297/***/ }),
16298
16299/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js":
16300/*!**********************************************************************!*\
16301 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js ***!
16302 \**********************************************************************/
16303/*! exports provided: scheme, default */
16304/***/ (function(module, __webpack_exports__, __webpack_require__) {
16305
16306"use strict";
16307__webpack_require__.r(__webpack_exports__);
16308/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16309/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16310/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16311
16312
16313
16314var scheme = new Array(3).concat(
16315 "e0f3dba8ddb543a2ca",
16316 "f0f9e8bae4bc7bccc42b8cbe",
16317 "f0f9e8bae4bc7bccc443a2ca0868ac",
16318 "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
16319 "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
16320 "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
16321 "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081"
16322).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16323
16324/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16325
16326
16327/***/ }),
16328
16329/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js":
16330/*!**********************************************************************!*\
16331 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js ***!
16332 \**********************************************************************/
16333/*! exports provided: scheme, default */
16334/***/ (function(module, __webpack_exports__, __webpack_require__) {
16335
16336"use strict";
16337__webpack_require__.r(__webpack_exports__);
16338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16339/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16340/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16341
16342
16343
16344var scheme = new Array(3).concat(
16345 "fee8c8fdbb84e34a33",
16346 "fef0d9fdcc8afc8d59d7301f",
16347 "fef0d9fdcc8afc8d59e34a33b30000",
16348 "fef0d9fdd49efdbb84fc8d59e34a33b30000",
16349 "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
16350 "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
16351 "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000"
16352).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16353
16354/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16355
16356
16357/***/ }),
16358
16359/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js":
16360/*!**********************************************************************!*\
16361 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js ***!
16362 \**********************************************************************/
16363/*! exports provided: scheme, default */
16364/***/ (function(module, __webpack_exports__, __webpack_require__) {
16365
16366"use strict";
16367__webpack_require__.r(__webpack_exports__);
16368/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16369/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16370/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16371
16372
16373
16374var scheme = new Array(3).concat(
16375 "ece7f2a6bddb2b8cbe",
16376 "f1eef6bdc9e174a9cf0570b0",
16377 "f1eef6bdc9e174a9cf2b8cbe045a8d",
16378 "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
16379 "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
16380 "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
16381 "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858"
16382).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16383
16384/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16385
16386
16387/***/ }),
16388
16389/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js":
16390/*!************************************************************************!*\
16391 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js ***!
16392 \************************************************************************/
16393/*! exports provided: scheme, default */
16394/***/ (function(module, __webpack_exports__, __webpack_require__) {
16395
16396"use strict";
16397__webpack_require__.r(__webpack_exports__);
16398/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16399/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16400/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16401
16402
16403
16404var scheme = new Array(3).concat(
16405 "ece2f0a6bddb1c9099",
16406 "f6eff7bdc9e167a9cf02818a",
16407 "f6eff7bdc9e167a9cf1c9099016c59",
16408 "f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
16409 "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
16410 "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
16411 "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636"
16412).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16413
16414/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16415
16416
16417/***/ }),
16418
16419/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js":
16420/*!**********************************************************************!*\
16421 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js ***!
16422 \**********************************************************************/
16423/*! exports provided: scheme, default */
16424/***/ (function(module, __webpack_exports__, __webpack_require__) {
16425
16426"use strict";
16427__webpack_require__.r(__webpack_exports__);
16428/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16429/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16430/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16431
16432
16433
16434var scheme = new Array(3).concat(
16435 "e7e1efc994c7dd1c77",
16436 "f1eef6d7b5d8df65b0ce1256",
16437 "f1eef6d7b5d8df65b0dd1c77980043",
16438 "f1eef6d4b9dac994c7df65b0dd1c77980043",
16439 "f1eef6d4b9dac994c7df65b0e7298ace125691003f",
16440 "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
16441 "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f"
16442).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16443
16444/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16445
16446
16447/***/ }),
16448
16449/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js":
16450/*!**********************************************************************!*\
16451 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js ***!
16452 \**********************************************************************/
16453/*! exports provided: scheme, default */
16454/***/ (function(module, __webpack_exports__, __webpack_require__) {
16455
16456"use strict";
16457__webpack_require__.r(__webpack_exports__);
16458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16459/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16460/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16461
16462
16463
16464var scheme = new Array(3).concat(
16465 "fde0ddfa9fb5c51b8a",
16466 "feebe2fbb4b9f768a1ae017e",
16467 "feebe2fbb4b9f768a1c51b8a7a0177",
16468 "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
16469 "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
16470 "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
16471 "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a"
16472).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16473
16474/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16475
16476
16477/***/ }),
16478
16479/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js":
16480/*!**********************************************************************!*\
16481 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js ***!
16482 \**********************************************************************/
16483/*! exports provided: scheme, default */
16484/***/ (function(module, __webpack_exports__, __webpack_require__) {
16485
16486"use strict";
16487__webpack_require__.r(__webpack_exports__);
16488/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16489/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16490/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16491
16492
16493
16494var scheme = new Array(3).concat(
16495 "f7fcb9addd8e31a354",
16496 "ffffccc2e69978c679238443",
16497 "ffffccc2e69978c67931a354006837",
16498 "ffffccd9f0a3addd8e78c67931a354006837",
16499 "ffffccd9f0a3addd8e78c67941ab5d238443005a32",
16500 "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
16501 "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529"
16502).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16503
16504/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16505
16506
16507/***/ }),
16508
16509/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js":
16510/*!************************************************************************!*\
16511 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js ***!
16512 \************************************************************************/
16513/*! exports provided: scheme, default */
16514/***/ (function(module, __webpack_exports__, __webpack_require__) {
16515
16516"use strict";
16517__webpack_require__.r(__webpack_exports__);
16518/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16519/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16520/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16521
16522
16523
16524var scheme = new Array(3).concat(
16525 "edf8b17fcdbb2c7fb8",
16526 "ffffcca1dab441b6c4225ea8",
16527 "ffffcca1dab441b6c42c7fb8253494",
16528 "ffffccc7e9b47fcdbb41b6c42c7fb8253494",
16529 "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
16530 "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
16531 "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58"
16532).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16533
16534/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16535
16536
16537/***/ }),
16538
16539/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js":
16540/*!************************************************************************!*\
16541 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js ***!
16542 \************************************************************************/
16543/*! exports provided: scheme, default */
16544/***/ (function(module, __webpack_exports__, __webpack_require__) {
16545
16546"use strict";
16547__webpack_require__.r(__webpack_exports__);
16548/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16549/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16550/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16551
16552
16553
16554var scheme = new Array(3).concat(
16555 "fff7bcfec44fd95f0e",
16556 "ffffd4fed98efe9929cc4c02",
16557 "ffffd4fed98efe9929d95f0e993404",
16558 "ffffd4fee391fec44ffe9929d95f0e993404",
16559 "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
16560 "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
16561 "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506"
16562).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16563
16564/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16565
16566
16567/***/ }),
16568
16569/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js":
16570/*!************************************************************************!*\
16571 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js ***!
16572 \************************************************************************/
16573/*! exports provided: scheme, default */
16574/***/ (function(module, __webpack_exports__, __webpack_require__) {
16575
16576"use strict";
16577__webpack_require__.r(__webpack_exports__);
16578/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16579/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16580/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16581
16582
16583
16584var scheme = new Array(3).concat(
16585 "ffeda0feb24cf03b20",
16586 "ffffb2fecc5cfd8d3ce31a1c",
16587 "ffffb2fecc5cfd8d3cf03b20bd0026",
16588 "ffffb2fed976feb24cfd8d3cf03b20bd0026",
16589 "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
16590 "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
16591 "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026"
16592).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16593
16594/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16595
16596
16597/***/ }),
16598
16599/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js":
16600/*!*************************************************************************!*\
16601 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js ***!
16602 \*************************************************************************/
16603/*! exports provided: default */
16604/***/ (function(module, __webpack_exports__, __webpack_require__) {
16605
16606"use strict";
16607__webpack_require__.r(__webpack_exports__);
16608/* harmony default export */ __webpack_exports__["default"] = (function(t) {
16609 t = Math.max(0, Math.min(1, t));
16610 return "rgb("
16611 + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", "
16612 + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", "
16613 + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))
16614 + ")";
16615});
16616
16617
16618/***/ }),
16619
16620/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js":
16621/*!***************************************************************************!*\
16622 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js ***!
16623 \***************************************************************************/
16624/*! exports provided: default */
16625/***/ (function(module, __webpack_exports__, __webpack_require__) {
16626
16627"use strict";
16628__webpack_require__.r(__webpack_exports__);
16629/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
16630/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
16631
16632
16633
16634/* 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)));
16635
16636
16637/***/ }),
16638
16639/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js":
16640/*!*************************************************************************!*\
16641 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js ***!
16642 \*************************************************************************/
16643/*! exports provided: warm, cool, default */
16644/***/ (function(module, __webpack_exports__, __webpack_require__) {
16645
16646"use strict";
16647__webpack_require__.r(__webpack_exports__);
16648/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warm", function() { return warm; });
16649/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cool", function() { return cool; });
16650/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
16651/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
16652
16653
16654
16655var 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));
16656
16657var 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));
16658
16659var c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["cubehelix"])();
16660
16661/* harmony default export */ __webpack_exports__["default"] = (function(t) {
16662 if (t < 0 || t > 1) t -= Math.floor(t);
16663 var ts = Math.abs(t - 0.5);
16664 c.h = 360 * t - 100;
16665 c.s = 1.5 - 1.5 * ts;
16666 c.l = 0.8 - 0.9 * ts;
16667 return c + "";
16668});
16669
16670
16671/***/ }),
16672
16673/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js":
16674/*!*************************************************************************!*\
16675 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js ***!
16676 \*************************************************************************/
16677/*! exports provided: default */
16678/***/ (function(module, __webpack_exports__, __webpack_require__) {
16679
16680"use strict";
16681__webpack_require__.r(__webpack_exports__);
16682/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
16683
16684
16685var c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["rgb"])(),
16686 pi_1_3 = Math.PI / 3,
16687 pi_2_3 = Math.PI * 2 / 3;
16688
16689/* harmony default export */ __webpack_exports__["default"] = (function(t) {
16690 var x;
16691 t = (0.5 - t) * Math.PI;
16692 c.r = 255 * (x = Math.sin(t)) * x;
16693 c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;
16694 c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;
16695 return c + "";
16696});
16697
16698
16699/***/ }),
16700
16701/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js":
16702/*!***********************************************************************!*\
16703 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js ***!
16704 \***********************************************************************/
16705/*! exports provided: default */
16706/***/ (function(module, __webpack_exports__, __webpack_require__) {
16707
16708"use strict";
16709__webpack_require__.r(__webpack_exports__);
16710/* harmony default export */ __webpack_exports__["default"] = (function(t) {
16711 t = Math.max(0, Math.min(1, t));
16712 return "rgb("
16713 + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", "
16714 + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", "
16715 + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))
16716 + ")";
16717});
16718
16719
16720/***/ }),
16721
16722/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js":
16723/*!*************************************************************************!*\
16724 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js ***!
16725 \*************************************************************************/
16726/*! exports provided: default, magma, inferno, plasma */
16727/***/ (function(module, __webpack_exports__, __webpack_require__) {
16728
16729"use strict";
16730__webpack_require__.r(__webpack_exports__);
16731/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "magma", function() { return magma; });
16732/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inferno", function() { return inferno; });
16733/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "plasma", function() { return plasma; });
16734/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16735
16736
16737function ramp(range) {
16738 var n = range.length;
16739 return function(t) {
16740 return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
16741 };
16742}
16743
16744/* harmony default export */ __webpack_exports__["default"] = (ramp(Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")));
16745
16746var magma = ramp(Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));
16747
16748var inferno = ramp(Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));
16749
16750var plasma = ramp(Object(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));
16751
16752
16753/***/ }),
16754
16755/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js":
16756/*!************************************************************************!*\
16757 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js ***!
16758 \************************************************************************/
16759/*! exports provided: scheme, default */
16760/***/ (function(module, __webpack_exports__, __webpack_require__) {
16761
16762"use strict";
16763__webpack_require__.r(__webpack_exports__);
16764/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16765/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16766/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16767
16768
16769
16770var scheme = new Array(3).concat(
16771 "deebf79ecae13182bd",
16772 "eff3ffbdd7e76baed62171b5",
16773 "eff3ffbdd7e76baed63182bd08519c",
16774 "eff3ffc6dbef9ecae16baed63182bd08519c",
16775 "eff3ffc6dbef9ecae16baed64292c62171b5084594",
16776 "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
16777 "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b"
16778).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16779
16780/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16781
16782
16783/***/ }),
16784
16785/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js":
16786/*!*************************************************************************!*\
16787 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js ***!
16788 \*************************************************************************/
16789/*! exports provided: scheme, default */
16790/***/ (function(module, __webpack_exports__, __webpack_require__) {
16791
16792"use strict";
16793__webpack_require__.r(__webpack_exports__);
16794/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16795/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16796/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16797
16798
16799
16800var scheme = new Array(3).concat(
16801 "e5f5e0a1d99b31a354",
16802 "edf8e9bae4b374c476238b45",
16803 "edf8e9bae4b374c47631a354006d2c",
16804 "edf8e9c7e9c0a1d99b74c47631a354006d2c",
16805 "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
16806 "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
16807 "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b"
16808).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16809
16810/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16811
16812
16813/***/ }),
16814
16815/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js":
16816/*!************************************************************************!*\
16817 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js ***!
16818 \************************************************************************/
16819/*! exports provided: scheme, default */
16820/***/ (function(module, __webpack_exports__, __webpack_require__) {
16821
16822"use strict";
16823__webpack_require__.r(__webpack_exports__);
16824/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16825/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16826/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16827
16828
16829
16830var scheme = new Array(3).concat(
16831 "f0f0f0bdbdbd636363",
16832 "f7f7f7cccccc969696525252",
16833 "f7f7f7cccccc969696636363252525",
16834 "f7f7f7d9d9d9bdbdbd969696636363252525",
16835 "f7f7f7d9d9d9bdbdbd969696737373525252252525",
16836 "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
16837 "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000"
16838).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16839
16840/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16841
16842
16843/***/ }),
16844
16845/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js":
16846/*!**************************************************************************!*\
16847 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js ***!
16848 \**************************************************************************/
16849/*! exports provided: scheme, default */
16850/***/ (function(module, __webpack_exports__, __webpack_require__) {
16851
16852"use strict";
16853__webpack_require__.r(__webpack_exports__);
16854/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16855/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16856/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16857
16858
16859
16860var scheme = new Array(3).concat(
16861 "fee6cefdae6be6550d",
16862 "feeddefdbe85fd8d3cd94701",
16863 "feeddefdbe85fd8d3ce6550da63603",
16864 "feeddefdd0a2fdae6bfd8d3ce6550da63603",
16865 "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
16866 "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
16867 "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704"
16868).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16869
16870/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16871
16872
16873/***/ }),
16874
16875/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js":
16876/*!**************************************************************************!*\
16877 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js ***!
16878 \**************************************************************************/
16879/*! exports provided: scheme, default */
16880/***/ (function(module, __webpack_exports__, __webpack_require__) {
16881
16882"use strict";
16883__webpack_require__.r(__webpack_exports__);
16884/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16885/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16886/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16887
16888
16889
16890var scheme = new Array(3).concat(
16891 "efedf5bcbddc756bb1",
16892 "f2f0f7cbc9e29e9ac86a51a3",
16893 "f2f0f7cbc9e29e9ac8756bb154278f",
16894 "f2f0f7dadaebbcbddc9e9ac8756bb154278f",
16895 "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
16896 "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
16897 "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d"
16898).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16899
16900/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16901
16902
16903/***/ }),
16904
16905/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js":
16906/*!***********************************************************************!*\
16907 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js ***!
16908 \***********************************************************************/
16909/*! exports provided: scheme, default */
16910/***/ (function(module, __webpack_exports__, __webpack_require__) {
16911
16912"use strict";
16913__webpack_require__.r(__webpack_exports__);
16914/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheme", function() { return scheme; });
16915/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
16916/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
16917
16918
16919
16920var scheme = new Array(3).concat(
16921 "fee0d2fc9272de2d26",
16922 "fee5d9fcae91fb6a4acb181d",
16923 "fee5d9fcae91fb6a4ade2d26a50f15",
16924 "fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
16925 "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
16926 "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
16927 "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d"
16928).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
16929
16930/* harmony default export */ __webpack_exports__["default"] = (Object(_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
16931
16932
16933/***/ }),
16934
16935/***/ "./node_modules/d3-scale/src/array.js":
16936/*!********************************************!*\
16937 !*** ./node_modules/d3-scale/src/array.js ***!
16938 \********************************************/
16939/*! exports provided: map, slice */
16940/***/ (function(module, __webpack_exports__, __webpack_require__) {
16941
16942"use strict";
16943__webpack_require__.r(__webpack_exports__);
16944/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
16945/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
16946var array = Array.prototype;
16947
16948var map = array.map;
16949var slice = array.slice;
16950
16951
16952/***/ }),
16953
16954/***/ "./node_modules/d3-scale/src/band.js":
16955/*!*******************************************!*\
16956 !*** ./node_modules/d3-scale/src/band.js ***!
16957 \*******************************************/
16958/*! exports provided: default, point */
16959/***/ (function(module, __webpack_exports__, __webpack_require__) {
16960
16961"use strict";
16962__webpack_require__.r(__webpack_exports__);
16963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return band; });
16964/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
16965/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
16966/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
16967/* harmony import */ var _ordinal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ordinal */ "./node_modules/d3-scale/src/ordinal.js");
16968
16969
16970
16971
16972function band() {
16973 var scale = Object(_ordinal__WEBPACK_IMPORTED_MODULE_2__["default"])().unknown(undefined),
16974 domain = scale.domain,
16975 ordinalRange = scale.range,
16976 range = [0, 1],
16977 step,
16978 bandwidth,
16979 round = false,
16980 paddingInner = 0,
16981 paddingOuter = 0,
16982 align = 0.5;
16983
16984 delete scale.unknown;
16985
16986 function rescale() {
16987 var n = domain().length,
16988 reverse = range[1] < range[0],
16989 start = range[reverse - 0],
16990 stop = range[1 - reverse];
16991 step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
16992 if (round) step = Math.floor(step);
16993 start += (stop - start - step * (n - paddingInner)) * align;
16994 bandwidth = step * (1 - paddingInner);
16995 if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
16996 var values = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["range"])(n).map(function(i) { return start + step * i; });
16997 return ordinalRange(reverse ? values.reverse() : values);
16998 }
16999
17000 scale.domain = function(_) {
17001 return arguments.length ? (domain(_), rescale()) : domain();
17002 };
17003
17004 scale.range = function(_) {
17005 return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();
17006 };
17007
17008 scale.rangeRound = function(_) {
17009 return range = [+_[0], +_[1]], round = true, rescale();
17010 };
17011
17012 scale.bandwidth = function() {
17013 return bandwidth;
17014 };
17015
17016 scale.step = function() {
17017 return step;
17018 };
17019
17020 scale.round = function(_) {
17021 return arguments.length ? (round = !!_, rescale()) : round;
17022 };
17023
17024 scale.padding = function(_) {
17025 return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
17026 };
17027
17028 scale.paddingInner = function(_) {
17029 return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
17030 };
17031
17032 scale.paddingOuter = function(_) {
17033 return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
17034 };
17035
17036 scale.align = function(_) {
17037 return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
17038 };
17039
17040 scale.copy = function() {
17041 return band(domain(), range)
17042 .round(round)
17043 .paddingInner(paddingInner)
17044 .paddingOuter(paddingOuter)
17045 .align(align);
17046 };
17047
17048 return _init__WEBPACK_IMPORTED_MODULE_1__["initRange"].apply(rescale(), arguments);
17049}
17050
17051function pointish(scale) {
17052 var copy = scale.copy;
17053
17054 scale.padding = scale.paddingOuter;
17055 delete scale.paddingInner;
17056 delete scale.paddingOuter;
17057
17058 scale.copy = function() {
17059 return pointish(copy());
17060 };
17061
17062 return scale;
17063}
17064
17065function point() {
17066 return pointish(band.apply(null, arguments).paddingInner(1));
17067}
17068
17069
17070/***/ }),
17071
17072/***/ "./node_modules/d3-scale/src/constant.js":
17073/*!***********************************************!*\
17074 !*** ./node_modules/d3-scale/src/constant.js ***!
17075 \***********************************************/
17076/*! exports provided: default */
17077/***/ (function(module, __webpack_exports__, __webpack_require__) {
17078
17079"use strict";
17080__webpack_require__.r(__webpack_exports__);
17081/* harmony default export */ __webpack_exports__["default"] = (function(x) {
17082 return function() {
17083 return x;
17084 };
17085});
17086
17087
17088/***/ }),
17089
17090/***/ "./node_modules/d3-scale/src/continuous.js":
17091/*!*************************************************!*\
17092 !*** ./node_modules/d3-scale/src/continuous.js ***!
17093 \*************************************************/
17094/*! exports provided: identity, copy, transformer, default */
17095/***/ (function(module, __webpack_exports__, __webpack_require__) {
17096
17097"use strict";
17098__webpack_require__.r(__webpack_exports__);
17099/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
17100/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copy", function() { return copy; });
17101/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformer", function() { return transformer; });
17102/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return continuous; });
17103/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17104/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
17105/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17106/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-scale/src/constant.js");
17107/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number */ "./node_modules/d3-scale/src/number.js");
17108
17109
17110
17111
17112
17113
17114var unit = [0, 1];
17115
17116function identity(x) {
17117 return x;
17118}
17119
17120function normalize(a, b) {
17121 return (b -= (a = +a))
17122 ? function(x) { return (x - a) / b; }
17123 : Object(_constant__WEBPACK_IMPORTED_MODULE_3__["default"])(isNaN(b) ? NaN : 0.5);
17124}
17125
17126function clamper(domain) {
17127 var a = domain[0], b = domain[domain.length - 1], t;
17128 if (a > b) t = a, a = b, b = t;
17129 return function(x) { return Math.max(a, Math.min(b, x)); };
17130}
17131
17132// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
17133// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].
17134function bimap(domain, range, interpolate) {
17135 var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
17136 if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);
17137 else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);
17138 return function(x) { return r0(d0(x)); };
17139}
17140
17141function polymap(domain, range, interpolate) {
17142 var j = Math.min(domain.length, range.length) - 1,
17143 d = new Array(j),
17144 r = new Array(j),
17145 i = -1;
17146
17147 // Reverse descending domains.
17148 if (domain[j] < domain[0]) {
17149 domain = domain.slice().reverse();
17150 range = range.slice().reverse();
17151 }
17152
17153 while (++i < j) {
17154 d[i] = normalize(domain[i], domain[i + 1]);
17155 r[i] = interpolate(range[i], range[i + 1]);
17156 }
17157
17158 return function(x) {
17159 var i = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 1, j) - 1;
17160 return r[i](d[i](x));
17161 };
17162}
17163
17164function copy(source, target) {
17165 return target
17166 .domain(source.domain())
17167 .range(source.range())
17168 .interpolate(source.interpolate())
17169 .clamp(source.clamp())
17170 .unknown(source.unknown());
17171}
17172
17173function transformer() {
17174 var domain = unit,
17175 range = unit,
17176 interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolate"],
17177 transform,
17178 untransform,
17179 unknown,
17180 clamp = identity,
17181 piecewise,
17182 output,
17183 input;
17184
17185 function rescale() {
17186 piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;
17187 output = input = null;
17188 return scale;
17189 }
17190
17191 function scale(x) {
17192 return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));
17193 }
17194
17195 scale.invert = function(y) {
17196 return clamp(untransform((input || (input = piecewise(range, domain.map(transform), d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateNumber"])))(y)));
17197 };
17198
17199 scale.domain = function(_) {
17200 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_2__["map"].call(_, _number__WEBPACK_IMPORTED_MODULE_4__["default"]), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();
17201 };
17202
17203 scale.range = function(_) {
17204 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_2__["slice"].call(_), rescale()) : range.slice();
17205 };
17206
17207 scale.rangeRound = function(_) {
17208 return range = _array__WEBPACK_IMPORTED_MODULE_2__["slice"].call(_), interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRound"], rescale();
17209 };
17210
17211 scale.clamp = function(_) {
17212 return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;
17213 };
17214
17215 scale.interpolate = function(_) {
17216 return arguments.length ? (interpolate = _, rescale()) : interpolate;
17217 };
17218
17219 scale.unknown = function(_) {
17220 return arguments.length ? (unknown = _, scale) : unknown;
17221 };
17222
17223 return function(t, u) {
17224 transform = t, untransform = u;
17225 return rescale();
17226 };
17227}
17228
17229function continuous(transform, untransform) {
17230 return transformer()(transform, untransform);
17231}
17232
17233
17234/***/ }),
17235
17236/***/ "./node_modules/d3-scale/src/diverging.js":
17237/*!************************************************!*\
17238 !*** ./node_modules/d3-scale/src/diverging.js ***!
17239 \************************************************/
17240/*! exports provided: default, divergingLog, divergingSymlog, divergingPow, divergingSqrt */
17241/***/ (function(module, __webpack_exports__, __webpack_require__) {
17242
17243"use strict";
17244__webpack_require__.r(__webpack_exports__);
17245/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return diverging; });
17246/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "divergingLog", function() { return divergingLog; });
17247/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "divergingSymlog", function() { return divergingSymlog; });
17248/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "divergingPow", function() { return divergingPow; });
17249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "divergingSqrt", function() { return divergingSqrt; });
17250/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
17251/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
17252/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17253/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log */ "./node_modules/d3-scale/src/log.js");
17254/* harmony import */ var _sequential__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sequential */ "./node_modules/d3-scale/src/sequential.js");
17255/* harmony import */ var _symlog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./symlog */ "./node_modules/d3-scale/src/symlog.js");
17256/* harmony import */ var _pow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pow */ "./node_modules/d3-scale/src/pow.js");
17257
17258
17259
17260
17261
17262
17263
17264
17265function transformer() {
17266 var x0 = 0,
17267 x1 = 0.5,
17268 x2 = 1,
17269 t0,
17270 t1,
17271 t2,
17272 k10,
17273 k21,
17274 interpolator = _continuous__WEBPACK_IMPORTED_MODULE_0__["identity"],
17275 transform,
17276 clamp = false,
17277 unknown;
17278
17279 function scale(x) {
17280 return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));
17281 }
17282
17283 scale.domain = function(_) {
17284 return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];
17285 };
17286
17287 scale.clamp = function(_) {
17288 return arguments.length ? (clamp = !!_, scale) : clamp;
17289 };
17290
17291 scale.interpolator = function(_) {
17292 return arguments.length ? (interpolator = _, scale) : interpolator;
17293 };
17294
17295 scale.unknown = function(_) {
17296 return arguments.length ? (unknown = _, scale) : unknown;
17297 };
17298
17299 return function(t) {
17300 transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);
17301 return scale;
17302 };
17303}
17304
17305function diverging() {
17306 var scale = Object(_linear__WEBPACK_IMPORTED_MODULE_2__["linearish"])(transformer()(_continuous__WEBPACK_IMPORTED_MODULE_0__["identity"]));
17307
17308 scale.copy = function() {
17309 return Object(_sequential__WEBPACK_IMPORTED_MODULE_4__["copy"])(scale, diverging());
17310 };
17311
17312 return _init__WEBPACK_IMPORTED_MODULE_1__["initInterpolator"].apply(scale, arguments);
17313}
17314
17315function divergingLog() {
17316 var scale = Object(_log__WEBPACK_IMPORTED_MODULE_3__["loggish"])(transformer()).domain([0.1, 1, 10]);
17317
17318 scale.copy = function() {
17319 return Object(_sequential__WEBPACK_IMPORTED_MODULE_4__["copy"])(scale, divergingLog()).base(scale.base());
17320 };
17321
17322 return _init__WEBPACK_IMPORTED_MODULE_1__["initInterpolator"].apply(scale, arguments);
17323}
17324
17325function divergingSymlog() {
17326 var scale = Object(_symlog__WEBPACK_IMPORTED_MODULE_5__["symlogish"])(transformer());
17327
17328 scale.copy = function() {
17329 return Object(_sequential__WEBPACK_IMPORTED_MODULE_4__["copy"])(scale, divergingSymlog()).constant(scale.constant());
17330 };
17331
17332 return _init__WEBPACK_IMPORTED_MODULE_1__["initInterpolator"].apply(scale, arguments);
17333}
17334
17335function divergingPow() {
17336 var scale = Object(_pow__WEBPACK_IMPORTED_MODULE_6__["powish"])(transformer());
17337
17338 scale.copy = function() {
17339 return Object(_sequential__WEBPACK_IMPORTED_MODULE_4__["copy"])(scale, divergingPow()).exponent(scale.exponent());
17340 };
17341
17342 return _init__WEBPACK_IMPORTED_MODULE_1__["initInterpolator"].apply(scale, arguments);
17343}
17344
17345function divergingSqrt() {
17346 return divergingPow.apply(null, arguments).exponent(0.5);
17347}
17348
17349
17350/***/ }),
17351
17352/***/ "./node_modules/d3-scale/src/identity.js":
17353/*!***********************************************!*\
17354 !*** ./node_modules/d3-scale/src/identity.js ***!
17355 \***********************************************/
17356/*! exports provided: default */
17357/***/ (function(module, __webpack_exports__, __webpack_require__) {
17358
17359"use strict";
17360__webpack_require__.r(__webpack_exports__);
17361/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return identity; });
17362/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17363/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17364/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./number */ "./node_modules/d3-scale/src/number.js");
17365
17366
17367
17368
17369function identity(domain) {
17370 var unknown;
17371
17372 function scale(x) {
17373 return isNaN(x = +x) ? unknown : x;
17374 }
17375
17376 scale.invert = scale;
17377
17378 scale.domain = scale.range = function(_) {
17379 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_0__["map"].call(_, _number__WEBPACK_IMPORTED_MODULE_2__["default"]), scale) : domain.slice();
17380 };
17381
17382 scale.unknown = function(_) {
17383 return arguments.length ? (unknown = _, scale) : unknown;
17384 };
17385
17386 scale.copy = function() {
17387 return identity(domain).unknown(unknown);
17388 };
17389
17390 domain = arguments.length ? _array__WEBPACK_IMPORTED_MODULE_0__["map"].call(domain, _number__WEBPACK_IMPORTED_MODULE_2__["default"]) : [0, 1];
17391
17392 return Object(_linear__WEBPACK_IMPORTED_MODULE_1__["linearish"])(scale);
17393}
17394
17395
17396/***/ }),
17397
17398/***/ "./node_modules/d3-scale/src/index.js":
17399/*!********************************************!*\
17400 !*** ./node_modules/d3-scale/src/index.js ***!
17401 \********************************************/
17402/*! exports provided: scaleBand, scalePoint, scaleIdentity, scaleLinear, scaleLog, scaleSymlog, scaleOrdinal, scaleImplicit, scalePow, scaleSqrt, scaleQuantile, scaleQuantize, scaleThreshold, scaleTime, scaleUtc, scaleSequential, scaleSequentialLog, scaleSequentialPow, scaleSequentialSqrt, scaleSequentialSymlog, scaleSequentialQuantile, scaleDiverging, scaleDivergingLog, scaleDivergingPow, scaleDivergingSqrt, scaleDivergingSymlog, tickFormat */
17403/***/ (function(module, __webpack_exports__, __webpack_require__) {
17404
17405"use strict";
17406__webpack_require__.r(__webpack_exports__);
17407/* harmony import */ var _band__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./band */ "./node_modules/d3-scale/src/band.js");
17408/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleBand", function() { return _band__WEBPACK_IMPORTED_MODULE_0__["default"]; });
17409
17410/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePoint", function() { return _band__WEBPACK_IMPORTED_MODULE_0__["point"]; });
17411
17412/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity */ "./node_modules/d3-scale/src/identity.js");
17413/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return _identity__WEBPACK_IMPORTED_MODULE_1__["default"]; });
17414
17415/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17416/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return _linear__WEBPACK_IMPORTED_MODULE_2__["default"]; });
17417
17418/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log */ "./node_modules/d3-scale/src/log.js");
17419/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLog", function() { return _log__WEBPACK_IMPORTED_MODULE_3__["default"]; });
17420
17421/* harmony import */ var _symlog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symlog */ "./node_modules/d3-scale/src/symlog.js");
17422/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSymlog", function() { return _symlog__WEBPACK_IMPORTED_MODULE_4__["default"]; });
17423
17424/* harmony import */ var _ordinal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ordinal */ "./node_modules/d3-scale/src/ordinal.js");
17425/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return _ordinal__WEBPACK_IMPORTED_MODULE_5__["default"]; });
17426
17427/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return _ordinal__WEBPACK_IMPORTED_MODULE_5__["implicit"]; });
17428
17429/* harmony import */ var _pow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pow */ "./node_modules/d3-scale/src/pow.js");
17430/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePow", function() { return _pow__WEBPACK_IMPORTED_MODULE_6__["default"]; });
17431
17432/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return _pow__WEBPACK_IMPORTED_MODULE_6__["sqrt"]; });
17433
17434/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./quantile */ "./node_modules/d3-scale/src/quantile.js");
17435/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return _quantile__WEBPACK_IMPORTED_MODULE_7__["default"]; });
17436
17437/* harmony import */ var _quantize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./quantize */ "./node_modules/d3-scale/src/quantize.js");
17438/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return _quantize__WEBPACK_IMPORTED_MODULE_8__["default"]; });
17439
17440/* harmony import */ var _threshold__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./threshold */ "./node_modules/d3-scale/src/threshold.js");
17441/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return _threshold__WEBPACK_IMPORTED_MODULE_9__["default"]; });
17442
17443/* harmony import */ var _time__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./time */ "./node_modules/d3-scale/src/time.js");
17444/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleTime", function() { return _time__WEBPACK_IMPORTED_MODULE_10__["default"]; });
17445
17446/* harmony import */ var _utcTime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utcTime */ "./node_modules/d3-scale/src/utcTime.js");
17447/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return _utcTime__WEBPACK_IMPORTED_MODULE_11__["default"]; });
17448
17449/* harmony import */ var _sequential__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./sequential */ "./node_modules/d3-scale/src/sequential.js");
17450/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return _sequential__WEBPACK_IMPORTED_MODULE_12__["default"]; });
17451
17452/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialLog", function() { return _sequential__WEBPACK_IMPORTED_MODULE_12__["sequentialLog"]; });
17453
17454/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialPow", function() { return _sequential__WEBPACK_IMPORTED_MODULE_12__["sequentialPow"]; });
17455
17456/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialSqrt", function() { return _sequential__WEBPACK_IMPORTED_MODULE_12__["sequentialSqrt"]; });
17457
17458/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialSymlog", function() { return _sequential__WEBPACK_IMPORTED_MODULE_12__["sequentialSymlog"]; });
17459
17460/* harmony import */ var _sequentialQuantile__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./sequentialQuantile */ "./node_modules/d3-scale/src/sequentialQuantile.js");
17461/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialQuantile", function() { return _sequentialQuantile__WEBPACK_IMPORTED_MODULE_13__["default"]; });
17462
17463/* harmony import */ var _diverging__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diverging */ "./node_modules/d3-scale/src/diverging.js");
17464/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDiverging", function() { return _diverging__WEBPACK_IMPORTED_MODULE_14__["default"]; });
17465
17466/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDivergingLog", function() { return _diverging__WEBPACK_IMPORTED_MODULE_14__["divergingLog"]; });
17467
17468/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDivergingPow", function() { return _diverging__WEBPACK_IMPORTED_MODULE_14__["divergingPow"]; });
17469
17470/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDivergingSqrt", function() { return _diverging__WEBPACK_IMPORTED_MODULE_14__["divergingSqrt"]; });
17471
17472/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDivergingSymlog", function() { return _diverging__WEBPACK_IMPORTED_MODULE_14__["divergingSymlog"]; });
17473
17474/* harmony import */ var _tickFormat__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./tickFormat */ "./node_modules/d3-scale/src/tickFormat.js");
17475/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickFormat", function() { return _tickFormat__WEBPACK_IMPORTED_MODULE_15__["default"]; });
17476
17477
17478
17479
17480
17481
17482
17483
17484
17485
17486
17487
17488
17489
17490
17491
17492
17493
17494
17495
17496
17497
17498
17499
17500
17501
17502
17503
17504
17505
17506
17507
17508
17509
17510/***/ }),
17511
17512/***/ "./node_modules/d3-scale/src/init.js":
17513/*!*******************************************!*\
17514 !*** ./node_modules/d3-scale/src/init.js ***!
17515 \*******************************************/
17516/*! exports provided: initRange, initInterpolator */
17517/***/ (function(module, __webpack_exports__, __webpack_require__) {
17518
17519"use strict";
17520__webpack_require__.r(__webpack_exports__);
17521/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initRange", function() { return initRange; });
17522/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initInterpolator", function() { return initInterpolator; });
17523function initRange(domain, range) {
17524 switch (arguments.length) {
17525 case 0: break;
17526 case 1: this.range(domain); break;
17527 default: this.range(range).domain(domain); break;
17528 }
17529 return this;
17530}
17531
17532function initInterpolator(domain, interpolator) {
17533 switch (arguments.length) {
17534 case 0: break;
17535 case 1: this.interpolator(domain); break;
17536 default: this.interpolator(interpolator).domain(domain); break;
17537 }
17538 return this;
17539}
17540
17541
17542/***/ }),
17543
17544/***/ "./node_modules/d3-scale/src/linear.js":
17545/*!*********************************************!*\
17546 !*** ./node_modules/d3-scale/src/linear.js ***!
17547 \*********************************************/
17548/*! exports provided: linearish, default */
17549/***/ (function(module, __webpack_exports__, __webpack_require__) {
17550
17551"use strict";
17552__webpack_require__.r(__webpack_exports__);
17553/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linearish", function() { return linearish; });
17554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return linear; });
17555/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17556/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
17557/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
17558/* harmony import */ var _tickFormat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tickFormat */ "./node_modules/d3-scale/src/tickFormat.js");
17559
17560
17561
17562
17563
17564function linearish(scale) {
17565 var domain = scale.domain;
17566
17567 scale.ticks = function(count) {
17568 var d = domain();
17569 return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["ticks"])(d[0], d[d.length - 1], count == null ? 10 : count);
17570 };
17571
17572 scale.tickFormat = function(count, specifier) {
17573 var d = domain();
17574 return Object(_tickFormat__WEBPACK_IMPORTED_MODULE_3__["default"])(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
17575 };
17576
17577 scale.nice = function(count) {
17578 if (count == null) count = 10;
17579
17580 var d = domain(),
17581 i0 = 0,
17582 i1 = d.length - 1,
17583 start = d[i0],
17584 stop = d[i1],
17585 step;
17586
17587 if (stop < start) {
17588 step = start, start = stop, stop = step;
17589 step = i0, i0 = i1, i1 = step;
17590 }
17591
17592 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
17593
17594 if (step > 0) {
17595 start = Math.floor(start / step) * step;
17596 stop = Math.ceil(stop / step) * step;
17597 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
17598 } else if (step < 0) {
17599 start = Math.ceil(start * step) / step;
17600 stop = Math.floor(stop * step) / step;
17601 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickIncrement"])(start, stop, count);
17602 }
17603
17604 if (step > 0) {
17605 d[i0] = Math.floor(start / step) * step;
17606 d[i1] = Math.ceil(stop / step) * step;
17607 domain(d);
17608 } else if (step < 0) {
17609 d[i0] = Math.ceil(start * step) / step;
17610 d[i1] = Math.floor(stop * step) / step;
17611 domain(d);
17612 }
17613
17614 return scale;
17615 };
17616
17617 return scale;
17618}
17619
17620function linear() {
17621 var scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_1__["default"])(_continuous__WEBPACK_IMPORTED_MODULE_1__["identity"], _continuous__WEBPACK_IMPORTED_MODULE_1__["identity"]);
17622
17623 scale.copy = function() {
17624 return Object(_continuous__WEBPACK_IMPORTED_MODULE_1__["copy"])(scale, linear());
17625 };
17626
17627 _init__WEBPACK_IMPORTED_MODULE_2__["initRange"].apply(scale, arguments);
17628
17629 return linearish(scale);
17630}
17631
17632
17633/***/ }),
17634
17635/***/ "./node_modules/d3-scale/src/log.js":
17636/*!******************************************!*\
17637 !*** ./node_modules/d3-scale/src/log.js ***!
17638 \******************************************/
17639/*! exports provided: loggish, default */
17640/***/ (function(module, __webpack_exports__, __webpack_require__) {
17641
17642"use strict";
17643__webpack_require__.r(__webpack_exports__);
17644/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loggish", function() { return loggish; });
17645/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return log; });
17646/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17647/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/index.js");
17648/* harmony import */ var _nice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nice */ "./node_modules/d3-scale/src/nice.js");
17649/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
17650/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
17651
17652
17653
17654
17655
17656
17657function transformLog(x) {
17658 return Math.log(x);
17659}
17660
17661function transformExp(x) {
17662 return Math.exp(x);
17663}
17664
17665function transformLogn(x) {
17666 return -Math.log(-x);
17667}
17668
17669function transformExpn(x) {
17670 return -Math.exp(-x);
17671}
17672
17673function pow10(x) {
17674 return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
17675}
17676
17677function powp(base) {
17678 return base === 10 ? pow10
17679 : base === Math.E ? Math.exp
17680 : function(x) { return Math.pow(base, x); };
17681}
17682
17683function logp(base) {
17684 return base === Math.E ? Math.log
17685 : base === 10 && Math.log10
17686 || base === 2 && Math.log2
17687 || (base = Math.log(base), function(x) { return Math.log(x) / base; });
17688}
17689
17690function reflect(f) {
17691 return function(x) {
17692 return -f(-x);
17693 };
17694}
17695
17696function loggish(transform) {
17697 var scale = transform(transformLog, transformExp),
17698 domain = scale.domain,
17699 base = 10,
17700 logs,
17701 pows;
17702
17703 function rescale() {
17704 logs = logp(base), pows = powp(base);
17705 if (domain()[0] < 0) {
17706 logs = reflect(logs), pows = reflect(pows);
17707 transform(transformLogn, transformExpn);
17708 } else {
17709 transform(transformLog, transformExp);
17710 }
17711 return scale;
17712 }
17713
17714 scale.base = function(_) {
17715 return arguments.length ? (base = +_, rescale()) : base;
17716 };
17717
17718 scale.domain = function(_) {
17719 return arguments.length ? (domain(_), rescale()) : domain();
17720 };
17721
17722 scale.ticks = function(count) {
17723 var d = domain(),
17724 u = d[0],
17725 v = d[d.length - 1],
17726 r;
17727
17728 if (r = v < u) i = u, u = v, v = i;
17729
17730 var i = logs(u),
17731 j = logs(v),
17732 p,
17733 k,
17734 t,
17735 n = count == null ? 10 : +count,
17736 z = [];
17737
17738 if (!(base % 1) && j - i < n) {
17739 i = Math.round(i) - 1, j = Math.round(j) + 1;
17740 if (u > 0) for (; i < j; ++i) {
17741 for (k = 1, p = pows(i); k < base; ++k) {
17742 t = p * k;
17743 if (t < u) continue;
17744 if (t > v) break;
17745 z.push(t);
17746 }
17747 } else for (; i < j; ++i) {
17748 for (k = base - 1, p = pows(i); k >= 1; --k) {
17749 t = p * k;
17750 if (t < u) continue;
17751 if (t > v) break;
17752 z.push(t);
17753 }
17754 }
17755 } else {
17756 z = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["ticks"])(i, j, Math.min(j - i, n)).map(pows);
17757 }
17758
17759 return r ? z.reverse() : z;
17760 };
17761
17762 scale.tickFormat = function(count, specifier) {
17763 if (specifier == null) specifier = base === 10 ? ".0e" : ",";
17764 if (typeof specifier !== "function") specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["format"])(specifier);
17765 if (count === Infinity) return specifier;
17766 if (count == null) count = 10;
17767 var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
17768 return function(d) {
17769 var i = d / pows(Math.round(logs(d)));
17770 if (i * base < base - 0.5) i *= base;
17771 return i <= k ? specifier(d) : "";
17772 };
17773 };
17774
17775 scale.nice = function() {
17776 return domain(Object(_nice__WEBPACK_IMPORTED_MODULE_2__["default"])(domain(), {
17777 floor: function(x) { return pows(Math.floor(logs(x))); },
17778 ceil: function(x) { return pows(Math.ceil(logs(x))); }
17779 }));
17780 };
17781
17782 return scale;
17783}
17784
17785function log() {
17786 var scale = loggish(Object(_continuous__WEBPACK_IMPORTED_MODULE_3__["transformer"])()).domain([1, 10]);
17787
17788 scale.copy = function() {
17789 return Object(_continuous__WEBPACK_IMPORTED_MODULE_3__["copy"])(scale, log()).base(scale.base());
17790 };
17791
17792 _init__WEBPACK_IMPORTED_MODULE_4__["initRange"].apply(scale, arguments);
17793
17794 return scale;
17795}
17796
17797
17798/***/ }),
17799
17800/***/ "./node_modules/d3-scale/src/nice.js":
17801/*!*******************************************!*\
17802 !*** ./node_modules/d3-scale/src/nice.js ***!
17803 \*******************************************/
17804/*! exports provided: default */
17805/***/ (function(module, __webpack_exports__, __webpack_require__) {
17806
17807"use strict";
17808__webpack_require__.r(__webpack_exports__);
17809/* harmony default export */ __webpack_exports__["default"] = (function(domain, interval) {
17810 domain = domain.slice();
17811
17812 var i0 = 0,
17813 i1 = domain.length - 1,
17814 x0 = domain[i0],
17815 x1 = domain[i1],
17816 t;
17817
17818 if (x1 < x0) {
17819 t = i0, i0 = i1, i1 = t;
17820 t = x0, x0 = x1, x1 = t;
17821 }
17822
17823 domain[i0] = interval.floor(x0);
17824 domain[i1] = interval.ceil(x1);
17825 return domain;
17826});
17827
17828
17829/***/ }),
17830
17831/***/ "./node_modules/d3-scale/src/number.js":
17832/*!*********************************************!*\
17833 !*** ./node_modules/d3-scale/src/number.js ***!
17834 \*********************************************/
17835/*! exports provided: default */
17836/***/ (function(module, __webpack_exports__, __webpack_require__) {
17837
17838"use strict";
17839__webpack_require__.r(__webpack_exports__);
17840/* harmony default export */ __webpack_exports__["default"] = (function(x) {
17841 return +x;
17842});
17843
17844
17845/***/ }),
17846
17847/***/ "./node_modules/d3-scale/src/ordinal.js":
17848/*!**********************************************!*\
17849 !*** ./node_modules/d3-scale/src/ordinal.js ***!
17850 \**********************************************/
17851/*! exports provided: implicit, default */
17852/***/ (function(module, __webpack_exports__, __webpack_require__) {
17853
17854"use strict";
17855__webpack_require__.r(__webpack_exports__);
17856/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "implicit", function() { return implicit; });
17857/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ordinal; });
17858/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/src/index.js");
17859/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17860/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
17861
17862
17863
17864
17865var implicit = {name: "implicit"};
17866
17867function ordinal() {
17868 var index = Object(d3_collection__WEBPACK_IMPORTED_MODULE_0__["map"])(),
17869 domain = [],
17870 range = [],
17871 unknown = implicit;
17872
17873 function scale(d) {
17874 var key = d + "", i = index.get(key);
17875 if (!i) {
17876 if (unknown !== implicit) return unknown;
17877 index.set(key, i = domain.push(d));
17878 }
17879 return range[(i - 1) % range.length];
17880 }
17881
17882 scale.domain = function(_) {
17883 if (!arguments.length) return domain.slice();
17884 domain = [], index = Object(d3_collection__WEBPACK_IMPORTED_MODULE_0__["map"])();
17885 var i = -1, n = _.length, d, key;
17886 while (++i < n) if (!index.has(key = (d = _[i]) + "")) index.set(key, domain.push(d));
17887 return scale;
17888 };
17889
17890 scale.range = function(_) {
17891 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), scale) : range.slice();
17892 };
17893
17894 scale.unknown = function(_) {
17895 return arguments.length ? (unknown = _, scale) : unknown;
17896 };
17897
17898 scale.copy = function() {
17899 return ordinal(domain, range).unknown(unknown);
17900 };
17901
17902 _init__WEBPACK_IMPORTED_MODULE_2__["initRange"].apply(scale, arguments);
17903
17904 return scale;
17905}
17906
17907
17908/***/ }),
17909
17910/***/ "./node_modules/d3-scale/src/pow.js":
17911/*!******************************************!*\
17912 !*** ./node_modules/d3-scale/src/pow.js ***!
17913 \******************************************/
17914/*! exports provided: powish, default, sqrt */
17915/***/ (function(module, __webpack_exports__, __webpack_require__) {
17916
17917"use strict";
17918__webpack_require__.r(__webpack_exports__);
17919/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "powish", function() { return powish; });
17920/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return pow; });
17921/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
17922/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
17923/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
17924/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
17925
17926
17927
17928
17929function transformPow(exponent) {
17930 return function(x) {
17931 return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
17932 };
17933}
17934
17935function transformSqrt(x) {
17936 return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);
17937}
17938
17939function transformSquare(x) {
17940 return x < 0 ? -x * x : x * x;
17941}
17942
17943function powish(transform) {
17944 var scale = transform(_continuous__WEBPACK_IMPORTED_MODULE_1__["identity"], _continuous__WEBPACK_IMPORTED_MODULE_1__["identity"]),
17945 exponent = 1;
17946
17947 function rescale() {
17948 return exponent === 1 ? transform(_continuous__WEBPACK_IMPORTED_MODULE_1__["identity"], _continuous__WEBPACK_IMPORTED_MODULE_1__["identity"])
17949 : exponent === 0.5 ? transform(transformSqrt, transformSquare)
17950 : transform(transformPow(exponent), transformPow(1 / exponent));
17951 }
17952
17953 scale.exponent = function(_) {
17954 return arguments.length ? (exponent = +_, rescale()) : exponent;
17955 };
17956
17957 return Object(_linear__WEBPACK_IMPORTED_MODULE_0__["linearish"])(scale);
17958}
17959
17960function pow() {
17961 var scale = powish(Object(_continuous__WEBPACK_IMPORTED_MODULE_1__["transformer"])());
17962
17963 scale.copy = function() {
17964 return Object(_continuous__WEBPACK_IMPORTED_MODULE_1__["copy"])(scale, pow()).exponent(scale.exponent());
17965 };
17966
17967 _init__WEBPACK_IMPORTED_MODULE_2__["initRange"].apply(scale, arguments);
17968
17969 return scale;
17970}
17971
17972function sqrt() {
17973 return pow.apply(null, arguments).exponent(0.5);
17974}
17975
17976
17977/***/ }),
17978
17979/***/ "./node_modules/d3-scale/src/quantile.js":
17980/*!***********************************************!*\
17981 !*** ./node_modules/d3-scale/src/quantile.js ***!
17982 \***********************************************/
17983/*! exports provided: default */
17984/***/ (function(module, __webpack_exports__, __webpack_require__) {
17985
17986"use strict";
17987__webpack_require__.r(__webpack_exports__);
17988/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quantile; });
17989/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
17990/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
17991/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
17992
17993
17994
17995
17996function quantile() {
17997 var domain = [],
17998 range = [],
17999 thresholds = [],
18000 unknown;
18001
18002 function rescale() {
18003 var i = 0, n = Math.max(1, range.length);
18004 thresholds = new Array(n - 1);
18005 while (++i < n) thresholds[i - 1] = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["quantile"])(domain, i / n);
18006 return scale;
18007 }
18008
18009 function scale(x) {
18010 return isNaN(x = +x) ? unknown : range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(thresholds, x)];
18011 }
18012
18013 scale.invertExtent = function(y) {
18014 var i = range.indexOf(y);
18015 return i < 0 ? [NaN, NaN] : [
18016 i > 0 ? thresholds[i - 1] : domain[0],
18017 i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
18018 ];
18019 };
18020
18021 scale.domain = function(_) {
18022 if (!arguments.length) return domain.slice();
18023 domain = [];
18024 for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);
18025 domain.sort(d3_array__WEBPACK_IMPORTED_MODULE_0__["ascending"]);
18026 return rescale();
18027 };
18028
18029 scale.range = function(_) {
18030 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), rescale()) : range.slice();
18031 };
18032
18033 scale.unknown = function(_) {
18034 return arguments.length ? (unknown = _, scale) : unknown;
18035 };
18036
18037 scale.quantiles = function() {
18038 return thresholds.slice();
18039 };
18040
18041 scale.copy = function() {
18042 return quantile()
18043 .domain(domain)
18044 .range(range)
18045 .unknown(unknown);
18046 };
18047
18048 return _init__WEBPACK_IMPORTED_MODULE_2__["initRange"].apply(scale, arguments);
18049}
18050
18051
18052/***/ }),
18053
18054/***/ "./node_modules/d3-scale/src/quantize.js":
18055/*!***********************************************!*\
18056 !*** ./node_modules/d3-scale/src/quantize.js ***!
18057 \***********************************************/
18058/*! exports provided: default */
18059/***/ (function(module, __webpack_exports__, __webpack_require__) {
18060
18061"use strict";
18062__webpack_require__.r(__webpack_exports__);
18063/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return quantize; });
18064/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
18065/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
18066/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
18067/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
18068
18069
18070
18071
18072
18073function quantize() {
18074 var x0 = 0,
18075 x1 = 1,
18076 n = 1,
18077 domain = [0.5],
18078 range = [0, 1],
18079 unknown;
18080
18081 function scale(x) {
18082 return x <= x ? range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 0, n)] : unknown;
18083 }
18084
18085 function rescale() {
18086 var i = -1;
18087 domain = new Array(n);
18088 while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
18089 return scale;
18090 }
18091
18092 scale.domain = function(_) {
18093 return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];
18094 };
18095
18096 scale.range = function(_) {
18097 return arguments.length ? (n = (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_)).length - 1, rescale()) : range.slice();
18098 };
18099
18100 scale.invertExtent = function(y) {
18101 var i = range.indexOf(y);
18102 return i < 0 ? [NaN, NaN]
18103 : i < 1 ? [x0, domain[0]]
18104 : i >= n ? [domain[n - 1], x1]
18105 : [domain[i - 1], domain[i]];
18106 };
18107
18108 scale.unknown = function(_) {
18109 return arguments.length ? (unknown = _, scale) : scale;
18110 };
18111
18112 scale.thresholds = function() {
18113 return domain.slice();
18114 };
18115
18116 scale.copy = function() {
18117 return quantize()
18118 .domain([x0, x1])
18119 .range(range)
18120 .unknown(unknown);
18121 };
18122
18123 return _init__WEBPACK_IMPORTED_MODULE_3__["initRange"].apply(Object(_linear__WEBPACK_IMPORTED_MODULE_2__["linearish"])(scale), arguments);
18124}
18125
18126
18127/***/ }),
18128
18129/***/ "./node_modules/d3-scale/src/sequential.js":
18130/*!*************************************************!*\
18131 !*** ./node_modules/d3-scale/src/sequential.js ***!
18132 \*************************************************/
18133/*! exports provided: copy, default, sequentialLog, sequentialSymlog, sequentialPow, sequentialSqrt */
18134/***/ (function(module, __webpack_exports__, __webpack_require__) {
18135
18136"use strict";
18137__webpack_require__.r(__webpack_exports__);
18138/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copy", function() { return copy; });
18139/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return sequential; });
18140/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequentialLog", function() { return sequentialLog; });
18141/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequentialSymlog", function() { return sequentialSymlog; });
18142/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequentialPow", function() { return sequentialPow; });
18143/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequentialSqrt", function() { return sequentialSqrt; });
18144/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
18145/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
18146/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
18147/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log */ "./node_modules/d3-scale/src/log.js");
18148/* harmony import */ var _symlog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symlog */ "./node_modules/d3-scale/src/symlog.js");
18149/* harmony import */ var _pow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pow */ "./node_modules/d3-scale/src/pow.js");
18150
18151
18152
18153
18154
18155
18156
18157function transformer() {
18158 var x0 = 0,
18159 x1 = 1,
18160 t0,
18161 t1,
18162 k10,
18163 transform,
18164 interpolator = _continuous__WEBPACK_IMPORTED_MODULE_0__["identity"],
18165 clamp = false,
18166 unknown;
18167
18168 function scale(x) {
18169 return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));
18170 }
18171
18172 scale.domain = function(_) {
18173 return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];
18174 };
18175
18176 scale.clamp = function(_) {
18177 return arguments.length ? (clamp = !!_, scale) : clamp;
18178 };
18179
18180 scale.interpolator = function(_) {
18181 return arguments.length ? (interpolator = _, scale) : interpolator;
18182 };
18183
18184 scale.unknown = function(_) {
18185 return arguments.length ? (unknown = _, scale) : unknown;
18186 };
18187
18188 return function(t) {
18189 transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);
18190 return scale;
18191 };
18192}
18193
18194function copy(source, target) {
18195 return target
18196 .domain(source.domain())
18197 .interpolator(source.interpolator())
18198 .clamp(source.clamp())
18199 .unknown(source.unknown());
18200}
18201
18202function sequential() {
18203 var scale = Object(_linear__WEBPACK_IMPORTED_MODULE_2__["linearish"])(transformer()(_continuous__WEBPACK_IMPORTED_MODULE_0__["identity"]));
18204
18205 scale.copy = function() {
18206 return copy(scale, sequential());
18207 };
18208
18209 return _init__WEBPACK_IMPORTED_MODULE_1__["initInterpolator"].apply(scale, arguments);
18210}
18211
18212function sequentialLog() {
18213 var scale = Object(_log__WEBPACK_IMPORTED_MODULE_3__["loggish"])(transformer()).domain([1, 10]);
18214
18215 scale.copy = function() {
18216 return copy(scale, sequentialLog()).base(scale.base());
18217 };
18218
18219 return _init__WEBPACK_IMPORTED_MODULE_1__["initInterpolator"].apply(scale, arguments);
18220}
18221
18222function sequentialSymlog() {
18223 var scale = Object(_symlog__WEBPACK_IMPORTED_MODULE_4__["symlogish"])(transformer());
18224
18225 scale.copy = function() {
18226 return copy(scale, sequentialSymlog()).constant(scale.constant());
18227 };
18228
18229 return _init__WEBPACK_IMPORTED_MODULE_1__["initInterpolator"].apply(scale, arguments);
18230}
18231
18232function sequentialPow() {
18233 var scale = Object(_pow__WEBPACK_IMPORTED_MODULE_5__["powish"])(transformer());
18234
18235 scale.copy = function() {
18236 return copy(scale, sequentialPow()).exponent(scale.exponent());
18237 };
18238
18239 return _init__WEBPACK_IMPORTED_MODULE_1__["initInterpolator"].apply(scale, arguments);
18240}
18241
18242function sequentialSqrt() {
18243 return sequentialPow.apply(null, arguments).exponent(0.5);
18244}
18245
18246
18247/***/ }),
18248
18249/***/ "./node_modules/d3-scale/src/sequentialQuantile.js":
18250/*!*********************************************************!*\
18251 !*** ./node_modules/d3-scale/src/sequentialQuantile.js ***!
18252 \*********************************************************/
18253/*! exports provided: default */
18254/***/ (function(module, __webpack_exports__, __webpack_require__) {
18255
18256"use strict";
18257__webpack_require__.r(__webpack_exports__);
18258/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return sequentialQuantile; });
18259/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
18260/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
18261/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
18262
18263
18264
18265
18266function sequentialQuantile() {
18267 var domain = [],
18268 interpolator = _continuous__WEBPACK_IMPORTED_MODULE_1__["identity"];
18269
18270 function scale(x) {
18271 if (!isNaN(x = +x)) return interpolator((Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x) - 1) / (domain.length - 1));
18272 }
18273
18274 scale.domain = function(_) {
18275 if (!arguments.length) return domain.slice();
18276 domain = [];
18277 for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);
18278 domain.sort(d3_array__WEBPACK_IMPORTED_MODULE_0__["ascending"]);
18279 return scale;
18280 };
18281
18282 scale.interpolator = function(_) {
18283 return arguments.length ? (interpolator = _, scale) : interpolator;
18284 };
18285
18286 scale.copy = function() {
18287 return sequentialQuantile(interpolator).domain(domain);
18288 };
18289
18290 return _init__WEBPACK_IMPORTED_MODULE_2__["initInterpolator"].apply(scale, arguments);
18291}
18292
18293
18294/***/ }),
18295
18296/***/ "./node_modules/d3-scale/src/symlog.js":
18297/*!*********************************************!*\
18298 !*** ./node_modules/d3-scale/src/symlog.js ***!
18299 \*********************************************/
18300/*! exports provided: symlogish, default */
18301/***/ (function(module, __webpack_exports__, __webpack_require__) {
18302
18303"use strict";
18304__webpack_require__.r(__webpack_exports__);
18305/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "symlogish", function() { return symlogish; });
18306/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symlog; });
18307/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ "./node_modules/d3-scale/src/linear.js");
18308/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
18309/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
18310
18311
18312
18313
18314function transformSymlog(c) {
18315 return function(x) {
18316 return Math.sign(x) * Math.log1p(Math.abs(x / c));
18317 };
18318}
18319
18320function transformSymexp(c) {
18321 return function(x) {
18322 return Math.sign(x) * Math.expm1(Math.abs(x)) * c;
18323 };
18324}
18325
18326function symlogish(transform) {
18327 var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));
18328
18329 scale.constant = function(_) {
18330 return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;
18331 };
18332
18333 return Object(_linear__WEBPACK_IMPORTED_MODULE_0__["linearish"])(scale);
18334}
18335
18336function symlog() {
18337 var scale = symlogish(Object(_continuous__WEBPACK_IMPORTED_MODULE_1__["transformer"])());
18338
18339 scale.copy = function() {
18340 return Object(_continuous__WEBPACK_IMPORTED_MODULE_1__["copy"])(scale, symlog()).constant(scale.constant());
18341 };
18342
18343 return _init__WEBPACK_IMPORTED_MODULE_2__["initRange"].apply(scale, arguments);
18344}
18345
18346
18347/***/ }),
18348
18349/***/ "./node_modules/d3-scale/src/threshold.js":
18350/*!************************************************!*\
18351 !*** ./node_modules/d3-scale/src/threshold.js ***!
18352 \************************************************/
18353/*! exports provided: default */
18354/***/ (function(module, __webpack_exports__, __webpack_require__) {
18355
18356"use strict";
18357__webpack_require__.r(__webpack_exports__);
18358/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return threshold; });
18359/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
18360/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
18361/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
18362
18363
18364
18365
18366function threshold() {
18367 var domain = [0.5],
18368 range = [0, 1],
18369 unknown,
18370 n = 1;
18371
18372 function scale(x) {
18373 return x <= x ? range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisect"])(domain, x, 0, n)] : unknown;
18374 }
18375
18376 scale.domain = function(_) {
18377 return arguments.length ? (domain = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
18378 };
18379
18380 scale.range = function(_) {
18381 return arguments.length ? (range = _array__WEBPACK_IMPORTED_MODULE_1__["slice"].call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
18382 };
18383
18384 scale.invertExtent = function(y) {
18385 var i = range.indexOf(y);
18386 return [domain[i - 1], domain[i]];
18387 };
18388
18389 scale.unknown = function(_) {
18390 return arguments.length ? (unknown = _, scale) : unknown;
18391 };
18392
18393 scale.copy = function() {
18394 return threshold()
18395 .domain(domain)
18396 .range(range)
18397 .unknown(unknown);
18398 };
18399
18400 return _init__WEBPACK_IMPORTED_MODULE_2__["initRange"].apply(scale, arguments);
18401}
18402
18403
18404/***/ }),
18405
18406/***/ "./node_modules/d3-scale/src/tickFormat.js":
18407/*!*************************************************!*\
18408 !*** ./node_modules/d3-scale/src/tickFormat.js ***!
18409 \*************************************************/
18410/*! exports provided: default */
18411/***/ (function(module, __webpack_exports__, __webpack_require__) {
18412
18413"use strict";
18414__webpack_require__.r(__webpack_exports__);
18415/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
18416/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/index.js");
18417
18418
18419
18420/* harmony default export */ __webpack_exports__["default"] = (function(start, stop, count, specifier) {
18421 var step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start, stop, count),
18422 precision;
18423 specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["formatSpecifier"])(specifier == null ? ",f" : specifier);
18424 switch (specifier.type) {
18425 case "s": {
18426 var value = Math.max(Math.abs(start), Math.abs(stop));
18427 if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["precisionPrefix"])(step, value))) specifier.precision = precision;
18428 return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["formatPrefix"])(specifier, value);
18429 }
18430 case "":
18431 case "e":
18432 case "g":
18433 case "p":
18434 case "r": {
18435 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");
18436 break;
18437 }
18438 case "f":
18439 case "%": {
18440 if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["precisionFixed"])(step))) specifier.precision = precision - (specifier.type === "%") * 2;
18441 break;
18442 }
18443 }
18444 return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__["format"])(specifier);
18445});
18446
18447
18448/***/ }),
18449
18450/***/ "./node_modules/d3-scale/src/time.js":
18451/*!*******************************************!*\
18452 !*** ./node_modules/d3-scale/src/time.js ***!
18453 \*******************************************/
18454/*! exports provided: calendar, default */
18455/***/ (function(module, __webpack_exports__, __webpack_require__) {
18456
18457"use strict";
18458__webpack_require__.r(__webpack_exports__);
18459/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calendar", function() { return calendar; });
18460/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
18461/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
18462/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/index.js");
18463/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./array */ "./node_modules/d3-scale/src/array.js");
18464/* harmony import */ var _continuous__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./continuous */ "./node_modules/d3-scale/src/continuous.js");
18465/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
18466/* harmony import */ var _nice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./nice */ "./node_modules/d3-scale/src/nice.js");
18467
18468
18469
18470
18471
18472
18473
18474
18475var durationSecond = 1000,
18476 durationMinute = durationSecond * 60,
18477 durationHour = durationMinute * 60,
18478 durationDay = durationHour * 24,
18479 durationWeek = durationDay * 7,
18480 durationMonth = durationDay * 30,
18481 durationYear = durationDay * 365;
18482
18483function date(t) {
18484 return new Date(t);
18485}
18486
18487function number(t) {
18488 return t instanceof Date ? +t : +new Date(+t);
18489}
18490
18491function calendar(year, month, week, day, hour, minute, second, millisecond, format) {
18492 var scale = Object(_continuous__WEBPACK_IMPORTED_MODULE_4__["default"])(_continuous__WEBPACK_IMPORTED_MODULE_4__["identity"], _continuous__WEBPACK_IMPORTED_MODULE_4__["identity"]),
18493 invert = scale.invert,
18494 domain = scale.domain;
18495
18496 var formatMillisecond = format(".%L"),
18497 formatSecond = format(":%S"),
18498 formatMinute = format("%I:%M"),
18499 formatHour = format("%I %p"),
18500 formatDay = format("%a %d"),
18501 formatWeek = format("%b %d"),
18502 formatMonth = format("%B"),
18503 formatYear = format("%Y");
18504
18505 var tickIntervals = [
18506 [second, 1, durationSecond],
18507 [second, 5, 5 * durationSecond],
18508 [second, 15, 15 * durationSecond],
18509 [second, 30, 30 * durationSecond],
18510 [minute, 1, durationMinute],
18511 [minute, 5, 5 * durationMinute],
18512 [minute, 15, 15 * durationMinute],
18513 [minute, 30, 30 * durationMinute],
18514 [ hour, 1, durationHour ],
18515 [ hour, 3, 3 * durationHour ],
18516 [ hour, 6, 6 * durationHour ],
18517 [ hour, 12, 12 * durationHour ],
18518 [ day, 1, durationDay ],
18519 [ day, 2, 2 * durationDay ],
18520 [ week, 1, durationWeek ],
18521 [ month, 1, durationMonth ],
18522 [ month, 3, 3 * durationMonth ],
18523 [ year, 1, durationYear ]
18524 ];
18525
18526 function tickFormat(date) {
18527 return (second(date) < date ? formatMillisecond
18528 : minute(date) < date ? formatSecond
18529 : hour(date) < date ? formatMinute
18530 : day(date) < date ? formatHour
18531 : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
18532 : year(date) < date ? formatMonth
18533 : formatYear)(date);
18534 }
18535
18536 function tickInterval(interval, start, stop, step) {
18537 if (interval == null) interval = 10;
18538
18539 // If a desired tick count is specified, pick a reasonable tick interval
18540 // based on the extent of the domain and a rough estimate of tick size.
18541 // Otherwise, assume interval is already a time interval and use it.
18542 if (typeof interval === "number") {
18543 var target = Math.abs(stop - start) / interval,
18544 i = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["bisector"])(function(i) { return i[2]; }).right(tickIntervals, target);
18545 if (i === tickIntervals.length) {
18546 step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start / durationYear, stop / durationYear, interval);
18547 interval = year;
18548 } else if (i) {
18549 i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
18550 step = i[1];
18551 interval = i[0];
18552 } else {
18553 step = Math.max(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["tickStep"])(start, stop, interval), 1);
18554 interval = millisecond;
18555 }
18556 }
18557
18558 return step == null ? interval : interval.every(step);
18559 }
18560
18561 scale.invert = function(y) {
18562 return new Date(invert(y));
18563 };
18564
18565 scale.domain = function(_) {
18566 return arguments.length ? domain(_array__WEBPACK_IMPORTED_MODULE_3__["map"].call(_, number)) : domain().map(date);
18567 };
18568
18569 scale.ticks = function(interval, step) {
18570 var d = domain(),
18571 t0 = d[0],
18572 t1 = d[d.length - 1],
18573 r = t1 < t0,
18574 t;
18575 if (r) t = t0, t0 = t1, t1 = t;
18576 t = tickInterval(interval, t0, t1, step);
18577 t = t ? t.range(t0, t1 + 1) : []; // inclusive stop
18578 return r ? t.reverse() : t;
18579 };
18580
18581 scale.tickFormat = function(count, specifier) {
18582 return specifier == null ? tickFormat : format(specifier);
18583 };
18584
18585 scale.nice = function(interval, step) {
18586 var d = domain();
18587 return (interval = tickInterval(interval, d[0], d[d.length - 1], step))
18588 ? domain(Object(_nice__WEBPACK_IMPORTED_MODULE_6__["default"])(d, interval))
18589 : scale;
18590 };
18591
18592 scale.copy = function() {
18593 return Object(_continuous__WEBPACK_IMPORTED_MODULE_4__["copy"])(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));
18594 };
18595
18596 return scale;
18597}
18598
18599/* harmony default export */ __webpack_exports__["default"] = (function() {
18600 return _init__WEBPACK_IMPORTED_MODULE_5__["initRange"].apply(calendar(d3_time__WEBPACK_IMPORTED_MODULE_1__["timeYear"], d3_time__WEBPACK_IMPORTED_MODULE_1__["timeMonth"], d3_time__WEBPACK_IMPORTED_MODULE_1__["timeWeek"], d3_time__WEBPACK_IMPORTED_MODULE_1__["timeDay"], d3_time__WEBPACK_IMPORTED_MODULE_1__["timeHour"], d3_time__WEBPACK_IMPORTED_MODULE_1__["timeMinute"], d3_time__WEBPACK_IMPORTED_MODULE_1__["timeSecond"], d3_time__WEBPACK_IMPORTED_MODULE_1__["timeMillisecond"], d3_time_format__WEBPACK_IMPORTED_MODULE_2__["timeFormat"]).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);
18601});
18602
18603
18604/***/ }),
18605
18606/***/ "./node_modules/d3-scale/src/utcTime.js":
18607/*!**********************************************!*\
18608 !*** ./node_modules/d3-scale/src/utcTime.js ***!
18609 \**********************************************/
18610/*! exports provided: default */
18611/***/ (function(module, __webpack_exports__, __webpack_require__) {
18612
18613"use strict";
18614__webpack_require__.r(__webpack_exports__);
18615/* harmony import */ var _time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./time */ "./node_modules/d3-scale/src/time.js");
18616/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/index.js");
18617/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
18618/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./init */ "./node_modules/d3-scale/src/init.js");
18619
18620
18621
18622
18623
18624/* harmony default export */ __webpack_exports__["default"] = (function() {
18625 return _init__WEBPACK_IMPORTED_MODULE_3__["initRange"].apply(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)]), arguments);
18626});
18627
18628
18629/***/ }),
18630
18631/***/ "./node_modules/d3-selection/src/constant.js":
18632/*!***************************************************!*\
18633 !*** ./node_modules/d3-selection/src/constant.js ***!
18634 \***************************************************/
18635/*! exports provided: default */
18636/***/ (function(module, __webpack_exports__, __webpack_require__) {
18637
18638"use strict";
18639__webpack_require__.r(__webpack_exports__);
18640/* harmony default export */ __webpack_exports__["default"] = (function(x) {
18641 return function() {
18642 return x;
18643 };
18644});
18645
18646
18647/***/ }),
18648
18649/***/ "./node_modules/d3-selection/src/create.js":
18650/*!*************************************************!*\
18651 !*** ./node_modules/d3-selection/src/create.js ***!
18652 \*************************************************/
18653/*! exports provided: default */
18654/***/ (function(module, __webpack_exports__, __webpack_require__) {
18655
18656"use strict";
18657__webpack_require__.r(__webpack_exports__);
18658/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./creator */ "./node_modules/d3-selection/src/creator.js");
18659/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select */ "./node_modules/d3-selection/src/select.js");
18660
18661
18662
18663/* harmony default export */ __webpack_exports__["default"] = (function(name) {
18664 return Object(_select__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name).call(document.documentElement));
18665});
18666
18667
18668/***/ }),
18669
18670/***/ "./node_modules/d3-selection/src/creator.js":
18671/*!**************************************************!*\
18672 !*** ./node_modules/d3-selection/src/creator.js ***!
18673 \**************************************************/
18674/*! exports provided: default */
18675/***/ (function(module, __webpack_exports__, __webpack_require__) {
18676
18677"use strict";
18678__webpack_require__.r(__webpack_exports__);
18679/* harmony import */ var _namespace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespace */ "./node_modules/d3-selection/src/namespace.js");
18680/* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./namespaces */ "./node_modules/d3-selection/src/namespaces.js");
18681
18682
18683
18684function creatorInherit(name) {
18685 return function() {
18686 var document = this.ownerDocument,
18687 uri = this.namespaceURI;
18688 return uri === _namespaces__WEBPACK_IMPORTED_MODULE_1__["xhtml"] && document.documentElement.namespaceURI === _namespaces__WEBPACK_IMPORTED_MODULE_1__["xhtml"]
18689 ? document.createElement(name)
18690 : document.createElementNS(uri, name);
18691 };
18692}
18693
18694function creatorFixed(fullname) {
18695 return function() {
18696 return this.ownerDocument.createElementNS(fullname.space, fullname.local);
18697 };
18698}
18699
18700/* harmony default export */ __webpack_exports__["default"] = (function(name) {
18701 var fullname = Object(_namespace__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
18702 return (fullname.local
18703 ? creatorFixed
18704 : creatorInherit)(fullname);
18705});
18706
18707
18708/***/ }),
18709
18710/***/ "./node_modules/d3-selection/src/index.js":
18711/*!************************************************!*\
18712 !*** ./node_modules/d3-selection/src/index.js ***!
18713 \************************************************/
18714/*! exports provided: create, creator, local, matcher, mouse, namespace, namespaces, clientPoint, select, selectAll, selection, selector, selectorAll, style, touch, touches, window, event, customEvent */
18715/***/ (function(module, __webpack_exports__, __webpack_require__) {
18716
18717"use strict";
18718__webpack_require__.r(__webpack_exports__);
18719/* harmony import */ var _create__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create */ "./node_modules/d3-selection/src/create.js");
18720/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "create", function() { return _create__WEBPACK_IMPORTED_MODULE_0__["default"]; });
18721
18722/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./creator */ "./node_modules/d3-selection/src/creator.js");
18723/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "creator", function() { return _creator__WEBPACK_IMPORTED_MODULE_1__["default"]; });
18724
18725/* harmony import */ var _local__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./local */ "./node_modules/d3-selection/src/local.js");
18726/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "local", function() { return _local__WEBPACK_IMPORTED_MODULE_2__["default"]; });
18727
18728/* harmony import */ var _matcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./matcher */ "./node_modules/d3-selection/src/matcher.js");
18729/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return _matcher__WEBPACK_IMPORTED_MODULE_3__["default"]; });
18730
18731/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mouse */ "./node_modules/d3-selection/src/mouse.js");
18732/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mouse", function() { return _mouse__WEBPACK_IMPORTED_MODULE_4__["default"]; });
18733
18734/* harmony import */ var _namespace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./namespace */ "./node_modules/d3-selection/src/namespace.js");
18735/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return _namespace__WEBPACK_IMPORTED_MODULE_5__["default"]; });
18736
18737/* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./namespaces */ "./node_modules/d3-selection/src/namespaces.js");
18738/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespaces", function() { return _namespaces__WEBPACK_IMPORTED_MODULE_6__["default"]; });
18739
18740/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
18741/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clientPoint", function() { return _point__WEBPACK_IMPORTED_MODULE_7__["default"]; });
18742
18743/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./select */ "./node_modules/d3-selection/src/select.js");
18744/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "select", function() { return _select__WEBPACK_IMPORTED_MODULE_8__["default"]; });
18745
18746/* harmony import */ var _selectAll__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectAll */ "./node_modules/d3-selection/src/selectAll.js");
18747/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectAll", function() { return _selectAll__WEBPACK_IMPORTED_MODULE_9__["default"]; });
18748
18749/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-selection/src/selection/index.js");
18750/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selection", function() { return _selection_index__WEBPACK_IMPORTED_MODULE_10__["default"]; });
18751
18752/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./selector */ "./node_modules/d3-selection/src/selector.js");
18753/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selector", function() { return _selector__WEBPACK_IMPORTED_MODULE_11__["default"]; });
18754
18755/* harmony import */ var _selectorAll__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./selectorAll */ "./node_modules/d3-selection/src/selectorAll.js");
18756/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectorAll", function() { return _selectorAll__WEBPACK_IMPORTED_MODULE_12__["default"]; });
18757
18758/* harmony import */ var _selection_style__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./selection/style */ "./node_modules/d3-selection/src/selection/style.js");
18759/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "style", function() { return _selection_style__WEBPACK_IMPORTED_MODULE_13__["styleValue"]; });
18760
18761/* harmony import */ var _touch__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./touch */ "./node_modules/d3-selection/src/touch.js");
18762/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touch", function() { return _touch__WEBPACK_IMPORTED_MODULE_14__["default"]; });
18763
18764/* harmony import */ var _touches__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./touches */ "./node_modules/d3-selection/src/touches.js");
18765/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touches", function() { return _touches__WEBPACK_IMPORTED_MODULE_15__["default"]; });
18766
18767/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./window */ "./node_modules/d3-selection/src/window.js");
18768/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _window__WEBPACK_IMPORTED_MODULE_16__["default"]; });
18769
18770/* harmony import */ var _selection_on__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./selection/on */ "./node_modules/d3-selection/src/selection/on.js");
18771/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "event", function() { return _selection_on__WEBPACK_IMPORTED_MODULE_17__["event"]; });
18772
18773/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return _selection_on__WEBPACK_IMPORTED_MODULE_17__["customEvent"]; });
18774
18775
18776
18777
18778
18779
18780
18781
18782
18783
18784
18785
18786
18787
18788
18789
18790
18791
18792
18793
18794
18795/***/ }),
18796
18797/***/ "./node_modules/d3-selection/src/local.js":
18798/*!************************************************!*\
18799 !*** ./node_modules/d3-selection/src/local.js ***!
18800 \************************************************/
18801/*! exports provided: default */
18802/***/ (function(module, __webpack_exports__, __webpack_require__) {
18803
18804"use strict";
18805__webpack_require__.r(__webpack_exports__);
18806/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return local; });
18807var nextId = 0;
18808
18809function local() {
18810 return new Local;
18811}
18812
18813function Local() {
18814 this._ = "@" + (++nextId).toString(36);
18815}
18816
18817Local.prototype = local.prototype = {
18818 constructor: Local,
18819 get: function(node) {
18820 var id = this._;
18821 while (!(id in node)) if (!(node = node.parentNode)) return;
18822 return node[id];
18823 },
18824 set: function(node, value) {
18825 return node[this._] = value;
18826 },
18827 remove: function(node) {
18828 return this._ in node && delete node[this._];
18829 },
18830 toString: function() {
18831 return this._;
18832 }
18833};
18834
18835
18836/***/ }),
18837
18838/***/ "./node_modules/d3-selection/src/matcher.js":
18839/*!**************************************************!*\
18840 !*** ./node_modules/d3-selection/src/matcher.js ***!
18841 \**************************************************/
18842/*! exports provided: default */
18843/***/ (function(module, __webpack_exports__, __webpack_require__) {
18844
18845"use strict";
18846__webpack_require__.r(__webpack_exports__);
18847/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
18848 return function() {
18849 return this.matches(selector);
18850 };
18851});
18852
18853
18854/***/ }),
18855
18856/***/ "./node_modules/d3-selection/src/mouse.js":
18857/*!************************************************!*\
18858 !*** ./node_modules/d3-selection/src/mouse.js ***!
18859 \************************************************/
18860/*! exports provided: default */
18861/***/ (function(module, __webpack_exports__, __webpack_require__) {
18862
18863"use strict";
18864__webpack_require__.r(__webpack_exports__);
18865/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
18866/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
18867
18868
18869
18870/* harmony default export */ __webpack_exports__["default"] = (function(node) {
18871 var event = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])();
18872 if (event.changedTouches) event = event.changedTouches[0];
18873 return Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, event);
18874});
18875
18876
18877/***/ }),
18878
18879/***/ "./node_modules/d3-selection/src/namespace.js":
18880/*!****************************************************!*\
18881 !*** ./node_modules/d3-selection/src/namespace.js ***!
18882 \****************************************************/
18883/*! exports provided: default */
18884/***/ (function(module, __webpack_exports__, __webpack_require__) {
18885
18886"use strict";
18887__webpack_require__.r(__webpack_exports__);
18888/* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespaces */ "./node_modules/d3-selection/src/namespaces.js");
18889
18890
18891/* harmony default export */ __webpack_exports__["default"] = (function(name) {
18892 var prefix = name += "", i = prefix.indexOf(":");
18893 if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
18894 return _namespaces__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProperty(prefix) ? {space: _namespaces__WEBPACK_IMPORTED_MODULE_0__["default"][prefix], local: name} : name;
18895});
18896
18897
18898/***/ }),
18899
18900/***/ "./node_modules/d3-selection/src/namespaces.js":
18901/*!*****************************************************!*\
18902 !*** ./node_modules/d3-selection/src/namespaces.js ***!
18903 \*****************************************************/
18904/*! exports provided: xhtml, default */
18905/***/ (function(module, __webpack_exports__, __webpack_require__) {
18906
18907"use strict";
18908__webpack_require__.r(__webpack_exports__);
18909/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "xhtml", function() { return xhtml; });
18910var xhtml = "http://www.w3.org/1999/xhtml";
18911
18912/* harmony default export */ __webpack_exports__["default"] = ({
18913 svg: "http://www.w3.org/2000/svg",
18914 xhtml: xhtml,
18915 xlink: "http://www.w3.org/1999/xlink",
18916 xml: "http://www.w3.org/XML/1998/namespace",
18917 xmlns: "http://www.w3.org/2000/xmlns/"
18918});
18919
18920
18921/***/ }),
18922
18923/***/ "./node_modules/d3-selection/src/point.js":
18924/*!************************************************!*\
18925 !*** ./node_modules/d3-selection/src/point.js ***!
18926 \************************************************/
18927/*! exports provided: default */
18928/***/ (function(module, __webpack_exports__, __webpack_require__) {
18929
18930"use strict";
18931__webpack_require__.r(__webpack_exports__);
18932/* harmony default export */ __webpack_exports__["default"] = (function(node, event) {
18933 var svg = node.ownerSVGElement || node;
18934
18935 if (svg.createSVGPoint) {
18936 var point = svg.createSVGPoint();
18937 point.x = event.clientX, point.y = event.clientY;
18938 point = point.matrixTransform(node.getScreenCTM().inverse());
18939 return [point.x, point.y];
18940 }
18941
18942 var rect = node.getBoundingClientRect();
18943 return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
18944});
18945
18946
18947/***/ }),
18948
18949/***/ "./node_modules/d3-selection/src/select.js":
18950/*!*************************************************!*\
18951 !*** ./node_modules/d3-selection/src/select.js ***!
18952 \*************************************************/
18953/*! exports provided: default */
18954/***/ (function(module, __webpack_exports__, __webpack_require__) {
18955
18956"use strict";
18957__webpack_require__.r(__webpack_exports__);
18958/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-selection/src/selection/index.js");
18959
18960
18961/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
18962 return typeof selector === "string"
18963 ? new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([[document.querySelector(selector)]], [document.documentElement])
18964 : new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([[selector]], _selection_index__WEBPACK_IMPORTED_MODULE_0__["root"]);
18965});
18966
18967
18968/***/ }),
18969
18970/***/ "./node_modules/d3-selection/src/selectAll.js":
18971/*!****************************************************!*\
18972 !*** ./node_modules/d3-selection/src/selectAll.js ***!
18973 \****************************************************/
18974/*! exports provided: default */
18975/***/ (function(module, __webpack_exports__, __webpack_require__) {
18976
18977"use strict";
18978__webpack_require__.r(__webpack_exports__);
18979/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index */ "./node_modules/d3-selection/src/selection/index.js");
18980
18981
18982/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
18983 return typeof selector === "string"
18984 ? new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([document.querySelectorAll(selector)], [document.documentElement])
18985 : new _selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]([selector == null ? [] : selector], _selection_index__WEBPACK_IMPORTED_MODULE_0__["root"]);
18986});
18987
18988
18989/***/ }),
18990
18991/***/ "./node_modules/d3-selection/src/selection/append.js":
18992/*!***********************************************************!*\
18993 !*** ./node_modules/d3-selection/src/selection/append.js ***!
18994 \***********************************************************/
18995/*! exports provided: default */
18996/***/ (function(module, __webpack_exports__, __webpack_require__) {
18997
18998"use strict";
18999__webpack_require__.r(__webpack_exports__);
19000/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator */ "./node_modules/d3-selection/src/creator.js");
19001
19002
19003/* harmony default export */ __webpack_exports__["default"] = (function(name) {
19004 var create = typeof name === "function" ? name : Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
19005 return this.select(function() {
19006 return this.appendChild(create.apply(this, arguments));
19007 });
19008});
19009
19010
19011/***/ }),
19012
19013/***/ "./node_modules/d3-selection/src/selection/attr.js":
19014/*!*********************************************************!*\
19015 !*** ./node_modules/d3-selection/src/selection/attr.js ***!
19016 \*********************************************************/
19017/*! exports provided: default */
19018/***/ (function(module, __webpack_exports__, __webpack_require__) {
19019
19020"use strict";
19021__webpack_require__.r(__webpack_exports__);
19022/* harmony import */ var _namespace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../namespace */ "./node_modules/d3-selection/src/namespace.js");
19023
19024
19025function attrRemove(name) {
19026 return function() {
19027 this.removeAttribute(name);
19028 };
19029}
19030
19031function attrRemoveNS(fullname) {
19032 return function() {
19033 this.removeAttributeNS(fullname.space, fullname.local);
19034 };
19035}
19036
19037function attrConstant(name, value) {
19038 return function() {
19039 this.setAttribute(name, value);
19040 };
19041}
19042
19043function attrConstantNS(fullname, value) {
19044 return function() {
19045 this.setAttributeNS(fullname.space, fullname.local, value);
19046 };
19047}
19048
19049function attrFunction(name, value) {
19050 return function() {
19051 var v = value.apply(this, arguments);
19052 if (v == null) this.removeAttribute(name);
19053 else this.setAttribute(name, v);
19054 };
19055}
19056
19057function attrFunctionNS(fullname, value) {
19058 return function() {
19059 var v = value.apply(this, arguments);
19060 if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
19061 else this.setAttributeNS(fullname.space, fullname.local, v);
19062 };
19063}
19064
19065/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
19066 var fullname = Object(_namespace__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
19067
19068 if (arguments.length < 2) {
19069 var node = this.node();
19070 return fullname.local
19071 ? node.getAttributeNS(fullname.space, fullname.local)
19072 : node.getAttribute(fullname);
19073 }
19074
19075 return this.each((value == null
19076 ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
19077 ? (fullname.local ? attrFunctionNS : attrFunction)
19078 : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
19079});
19080
19081
19082/***/ }),
19083
19084/***/ "./node_modules/d3-selection/src/selection/call.js":
19085/*!*********************************************************!*\
19086 !*** ./node_modules/d3-selection/src/selection/call.js ***!
19087 \*********************************************************/
19088/*! exports provided: default */
19089/***/ (function(module, __webpack_exports__, __webpack_require__) {
19090
19091"use strict";
19092__webpack_require__.r(__webpack_exports__);
19093/* harmony default export */ __webpack_exports__["default"] = (function() {
19094 var callback = arguments[0];
19095 arguments[0] = this;
19096 callback.apply(null, arguments);
19097 return this;
19098});
19099
19100
19101/***/ }),
19102
19103/***/ "./node_modules/d3-selection/src/selection/classed.js":
19104/*!************************************************************!*\
19105 !*** ./node_modules/d3-selection/src/selection/classed.js ***!
19106 \************************************************************/
19107/*! exports provided: default */
19108/***/ (function(module, __webpack_exports__, __webpack_require__) {
19109
19110"use strict";
19111__webpack_require__.r(__webpack_exports__);
19112function classArray(string) {
19113 return string.trim().split(/^|\s+/);
19114}
19115
19116function classList(node) {
19117 return node.classList || new ClassList(node);
19118}
19119
19120function ClassList(node) {
19121 this._node = node;
19122 this._names = classArray(node.getAttribute("class") || "");
19123}
19124
19125ClassList.prototype = {
19126 add: function(name) {
19127 var i = this._names.indexOf(name);
19128 if (i < 0) {
19129 this._names.push(name);
19130 this._node.setAttribute("class", this._names.join(" "));
19131 }
19132 },
19133 remove: function(name) {
19134 var i = this._names.indexOf(name);
19135 if (i >= 0) {
19136 this._names.splice(i, 1);
19137 this._node.setAttribute("class", this._names.join(" "));
19138 }
19139 },
19140 contains: function(name) {
19141 return this._names.indexOf(name) >= 0;
19142 }
19143};
19144
19145function classedAdd(node, names) {
19146 var list = classList(node), i = -1, n = names.length;
19147 while (++i < n) list.add(names[i]);
19148}
19149
19150function classedRemove(node, names) {
19151 var list = classList(node), i = -1, n = names.length;
19152 while (++i < n) list.remove(names[i]);
19153}
19154
19155function classedTrue(names) {
19156 return function() {
19157 classedAdd(this, names);
19158 };
19159}
19160
19161function classedFalse(names) {
19162 return function() {
19163 classedRemove(this, names);
19164 };
19165}
19166
19167function classedFunction(names, value) {
19168 return function() {
19169 (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
19170 };
19171}
19172
19173/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
19174 var names = classArray(name + "");
19175
19176 if (arguments.length < 2) {
19177 var list = classList(this.node()), i = -1, n = names.length;
19178 while (++i < n) if (!list.contains(names[i])) return false;
19179 return true;
19180 }
19181
19182 return this.each((typeof value === "function"
19183 ? classedFunction : value
19184 ? classedTrue
19185 : classedFalse)(names, value));
19186});
19187
19188
19189/***/ }),
19190
19191/***/ "./node_modules/d3-selection/src/selection/clone.js":
19192/*!**********************************************************!*\
19193 !*** ./node_modules/d3-selection/src/selection/clone.js ***!
19194 \**********************************************************/
19195/*! exports provided: default */
19196/***/ (function(module, __webpack_exports__, __webpack_require__) {
19197
19198"use strict";
19199__webpack_require__.r(__webpack_exports__);
19200function selection_cloneShallow() {
19201 var clone = this.cloneNode(false), parent = this.parentNode;
19202 return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
19203}
19204
19205function selection_cloneDeep() {
19206 var clone = this.cloneNode(true), parent = this.parentNode;
19207 return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
19208}
19209
19210/* harmony default export */ __webpack_exports__["default"] = (function(deep) {
19211 return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
19212});
19213
19214
19215/***/ }),
19216
19217/***/ "./node_modules/d3-selection/src/selection/data.js":
19218/*!*********************************************************!*\
19219 !*** ./node_modules/d3-selection/src/selection/data.js ***!
19220 \*********************************************************/
19221/*! exports provided: default */
19222/***/ (function(module, __webpack_exports__, __webpack_require__) {
19223
19224"use strict";
19225__webpack_require__.r(__webpack_exports__);
19226/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19227/* harmony import */ var _enter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enter */ "./node_modules/d3-selection/src/selection/enter.js");
19228/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant */ "./node_modules/d3-selection/src/constant.js");
19229
19230
19231
19232
19233var keyPrefix = "$"; // Protect against keys like “__proto__”.
19234
19235function bindIndex(parent, group, enter, update, exit, data) {
19236 var i = 0,
19237 node,
19238 groupLength = group.length,
19239 dataLength = data.length;
19240
19241 // Put any non-null nodes that fit into update.
19242 // Put any null nodes into enter.
19243 // Put any remaining data into enter.
19244 for (; i < dataLength; ++i) {
19245 if (node = group[i]) {
19246 node.__data__ = data[i];
19247 update[i] = node;
19248 } else {
19249 enter[i] = new _enter__WEBPACK_IMPORTED_MODULE_1__["EnterNode"](parent, data[i]);
19250 }
19251 }
19252
19253 // Put any non-null nodes that don’t fit into exit.
19254 for (; i < groupLength; ++i) {
19255 if (node = group[i]) {
19256 exit[i] = node;
19257 }
19258 }
19259}
19260
19261function bindKey(parent, group, enter, update, exit, data, key) {
19262 var i,
19263 node,
19264 nodeByKeyValue = {},
19265 groupLength = group.length,
19266 dataLength = data.length,
19267 keyValues = new Array(groupLength),
19268 keyValue;
19269
19270 // Compute the key for each node.
19271 // If multiple nodes have the same key, the duplicates are added to exit.
19272 for (i = 0; i < groupLength; ++i) {
19273 if (node = group[i]) {
19274 keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);
19275 if (keyValue in nodeByKeyValue) {
19276 exit[i] = node;
19277 } else {
19278 nodeByKeyValue[keyValue] = node;
19279 }
19280 }
19281 }
19282
19283 // Compute the key for each datum.
19284 // If there a node associated with this key, join and add it to update.
19285 // If there is not (or the key is a duplicate), add it to enter.
19286 for (i = 0; i < dataLength; ++i) {
19287 keyValue = keyPrefix + key.call(parent, data[i], i, data);
19288 if (node = nodeByKeyValue[keyValue]) {
19289 update[i] = node;
19290 node.__data__ = data[i];
19291 nodeByKeyValue[keyValue] = null;
19292 } else {
19293 enter[i] = new _enter__WEBPACK_IMPORTED_MODULE_1__["EnterNode"](parent, data[i]);
19294 }
19295 }
19296
19297 // Add any remaining nodes that were not bound to data to exit.
19298 for (i = 0; i < groupLength; ++i) {
19299 if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {
19300 exit[i] = node;
19301 }
19302 }
19303}
19304
19305/* harmony default export */ __webpack_exports__["default"] = (function(value, key) {
19306 if (!value) {
19307 data = new Array(this.size()), j = -1;
19308 this.each(function(d) { data[++j] = d; });
19309 return data;
19310 }
19311
19312 var bind = key ? bindKey : bindIndex,
19313 parents = this._parents,
19314 groups = this._groups;
19315
19316 if (typeof value !== "function") value = Object(_constant__WEBPACK_IMPORTED_MODULE_2__["default"])(value);
19317
19318 for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
19319 var parent = parents[j],
19320 group = groups[j],
19321 groupLength = group.length,
19322 data = value.call(parent, parent && parent.__data__, j, parents),
19323 dataLength = data.length,
19324 enterGroup = enter[j] = new Array(dataLength),
19325 updateGroup = update[j] = new Array(dataLength),
19326 exitGroup = exit[j] = new Array(groupLength);
19327
19328 bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
19329
19330 // Now connect the enter nodes to their following update node, such that
19331 // appendChild can insert the materialized enter node before this node,
19332 // rather than at the end of the parent node.
19333 for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
19334 if (previous = enterGroup[i0]) {
19335 if (i0 >= i1) i1 = i0 + 1;
19336 while (!(next = updateGroup[i1]) && ++i1 < dataLength);
19337 previous._next = next || null;
19338 }
19339 }
19340 }
19341
19342 update = new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](update, parents);
19343 update._enter = enter;
19344 update._exit = exit;
19345 return update;
19346});
19347
19348
19349/***/ }),
19350
19351/***/ "./node_modules/d3-selection/src/selection/datum.js":
19352/*!**********************************************************!*\
19353 !*** ./node_modules/d3-selection/src/selection/datum.js ***!
19354 \**********************************************************/
19355/*! exports provided: default */
19356/***/ (function(module, __webpack_exports__, __webpack_require__) {
19357
19358"use strict";
19359__webpack_require__.r(__webpack_exports__);
19360/* harmony default export */ __webpack_exports__["default"] = (function(value) {
19361 return arguments.length
19362 ? this.property("__data__", value)
19363 : this.node().__data__;
19364});
19365
19366
19367/***/ }),
19368
19369/***/ "./node_modules/d3-selection/src/selection/dispatch.js":
19370/*!*************************************************************!*\
19371 !*** ./node_modules/d3-selection/src/selection/dispatch.js ***!
19372 \*************************************************************/
19373/*! exports provided: default */
19374/***/ (function(module, __webpack_exports__, __webpack_require__) {
19375
19376"use strict";
19377__webpack_require__.r(__webpack_exports__);
19378/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window */ "./node_modules/d3-selection/src/window.js");
19379
19380
19381function dispatchEvent(node, type, params) {
19382 var window = Object(_window__WEBPACK_IMPORTED_MODULE_0__["default"])(node),
19383 event = window.CustomEvent;
19384
19385 if (typeof event === "function") {
19386 event = new event(type, params);
19387 } else {
19388 event = window.document.createEvent("Event");
19389 if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
19390 else event.initEvent(type, false, false);
19391 }
19392
19393 node.dispatchEvent(event);
19394}
19395
19396function dispatchConstant(type, params) {
19397 return function() {
19398 return dispatchEvent(this, type, params);
19399 };
19400}
19401
19402function dispatchFunction(type, params) {
19403 return function() {
19404 return dispatchEvent(this, type, params.apply(this, arguments));
19405 };
19406}
19407
19408/* harmony default export */ __webpack_exports__["default"] = (function(type, params) {
19409 return this.each((typeof params === "function"
19410 ? dispatchFunction
19411 : dispatchConstant)(type, params));
19412});
19413
19414
19415/***/ }),
19416
19417/***/ "./node_modules/d3-selection/src/selection/each.js":
19418/*!*********************************************************!*\
19419 !*** ./node_modules/d3-selection/src/selection/each.js ***!
19420 \*********************************************************/
19421/*! exports provided: default */
19422/***/ (function(module, __webpack_exports__, __webpack_require__) {
19423
19424"use strict";
19425__webpack_require__.r(__webpack_exports__);
19426/* harmony default export */ __webpack_exports__["default"] = (function(callback) {
19427
19428 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
19429 for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
19430 if (node = group[i]) callback.call(node, node.__data__, i, group);
19431 }
19432 }
19433
19434 return this;
19435});
19436
19437
19438/***/ }),
19439
19440/***/ "./node_modules/d3-selection/src/selection/empty.js":
19441/*!**********************************************************!*\
19442 !*** ./node_modules/d3-selection/src/selection/empty.js ***!
19443 \**********************************************************/
19444/*! exports provided: default */
19445/***/ (function(module, __webpack_exports__, __webpack_require__) {
19446
19447"use strict";
19448__webpack_require__.r(__webpack_exports__);
19449/* harmony default export */ __webpack_exports__["default"] = (function() {
19450 return !this.node();
19451});
19452
19453
19454/***/ }),
19455
19456/***/ "./node_modules/d3-selection/src/selection/enter.js":
19457/*!**********************************************************!*\
19458 !*** ./node_modules/d3-selection/src/selection/enter.js ***!
19459 \**********************************************************/
19460/*! exports provided: default, EnterNode */
19461/***/ (function(module, __webpack_exports__, __webpack_require__) {
19462
19463"use strict";
19464__webpack_require__.r(__webpack_exports__);
19465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EnterNode", function() { return EnterNode; });
19466/* harmony import */ var _sparse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sparse */ "./node_modules/d3-selection/src/selection/sparse.js");
19467/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19468
19469
19470
19471/* harmony default export */ __webpack_exports__["default"] = (function() {
19472 return new _index__WEBPACK_IMPORTED_MODULE_1__["Selection"](this._enter || this._groups.map(_sparse__WEBPACK_IMPORTED_MODULE_0__["default"]), this._parents);
19473});
19474
19475function EnterNode(parent, datum) {
19476 this.ownerDocument = parent.ownerDocument;
19477 this.namespaceURI = parent.namespaceURI;
19478 this._next = null;
19479 this._parent = parent;
19480 this.__data__ = datum;
19481}
19482
19483EnterNode.prototype = {
19484 constructor: EnterNode,
19485 appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
19486 insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
19487 querySelector: function(selector) { return this._parent.querySelector(selector); },
19488 querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
19489};
19490
19491
19492/***/ }),
19493
19494/***/ "./node_modules/d3-selection/src/selection/exit.js":
19495/*!*********************************************************!*\
19496 !*** ./node_modules/d3-selection/src/selection/exit.js ***!
19497 \*********************************************************/
19498/*! exports provided: default */
19499/***/ (function(module, __webpack_exports__, __webpack_require__) {
19500
19501"use strict";
19502__webpack_require__.r(__webpack_exports__);
19503/* harmony import */ var _sparse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sparse */ "./node_modules/d3-selection/src/selection/sparse.js");
19504/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19505
19506
19507
19508/* harmony default export */ __webpack_exports__["default"] = (function() {
19509 return new _index__WEBPACK_IMPORTED_MODULE_1__["Selection"](this._exit || this._groups.map(_sparse__WEBPACK_IMPORTED_MODULE_0__["default"]), this._parents);
19510});
19511
19512
19513/***/ }),
19514
19515/***/ "./node_modules/d3-selection/src/selection/filter.js":
19516/*!***********************************************************!*\
19517 !*** ./node_modules/d3-selection/src/selection/filter.js ***!
19518 \***********************************************************/
19519/*! exports provided: default */
19520/***/ (function(module, __webpack_exports__, __webpack_require__) {
19521
19522"use strict";
19523__webpack_require__.r(__webpack_exports__);
19524/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19525/* harmony import */ var _matcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../matcher */ "./node_modules/d3-selection/src/matcher.js");
19526
19527
19528
19529/* harmony default export */ __webpack_exports__["default"] = (function(match) {
19530 if (typeof match !== "function") match = Object(_matcher__WEBPACK_IMPORTED_MODULE_1__["default"])(match);
19531
19532 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
19533 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
19534 if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
19535 subgroup.push(node);
19536 }
19537 }
19538 }
19539
19540 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, this._parents);
19541});
19542
19543
19544/***/ }),
19545
19546/***/ "./node_modules/d3-selection/src/selection/html.js":
19547/*!*********************************************************!*\
19548 !*** ./node_modules/d3-selection/src/selection/html.js ***!
19549 \*********************************************************/
19550/*! exports provided: default */
19551/***/ (function(module, __webpack_exports__, __webpack_require__) {
19552
19553"use strict";
19554__webpack_require__.r(__webpack_exports__);
19555function htmlRemove() {
19556 this.innerHTML = "";
19557}
19558
19559function htmlConstant(value) {
19560 return function() {
19561 this.innerHTML = value;
19562 };
19563}
19564
19565function htmlFunction(value) {
19566 return function() {
19567 var v = value.apply(this, arguments);
19568 this.innerHTML = v == null ? "" : v;
19569 };
19570}
19571
19572/* harmony default export */ __webpack_exports__["default"] = (function(value) {
19573 return arguments.length
19574 ? this.each(value == null
19575 ? htmlRemove : (typeof value === "function"
19576 ? htmlFunction
19577 : htmlConstant)(value))
19578 : this.node().innerHTML;
19579});
19580
19581
19582/***/ }),
19583
19584/***/ "./node_modules/d3-selection/src/selection/index.js":
19585/*!**********************************************************!*\
19586 !*** ./node_modules/d3-selection/src/selection/index.js ***!
19587 \**********************************************************/
19588/*! exports provided: root, Selection, default */
19589/***/ (function(module, __webpack_exports__, __webpack_require__) {
19590
19591"use strict";
19592__webpack_require__.r(__webpack_exports__);
19593/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "root", function() { return root; });
19594/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return Selection; });
19595/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select */ "./node_modules/d3-selection/src/selection/select.js");
19596/* harmony import */ var _selectAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectAll */ "./node_modules/d3-selection/src/selection/selectAll.js");
19597/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter */ "./node_modules/d3-selection/src/selection/filter.js");
19598/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data */ "./node_modules/d3-selection/src/selection/data.js");
19599/* harmony import */ var _enter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./enter */ "./node_modules/d3-selection/src/selection/enter.js");
19600/* harmony import */ var _exit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exit */ "./node_modules/d3-selection/src/selection/exit.js");
19601/* harmony import */ var _join__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./join */ "./node_modules/d3-selection/src/selection/join.js");
19602/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./merge */ "./node_modules/d3-selection/src/selection/merge.js");
19603/* harmony import */ var _order__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./order */ "./node_modules/d3-selection/src/selection/order.js");
19604/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./sort */ "./node_modules/d3-selection/src/selection/sort.js");
19605/* harmony import */ var _call__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./call */ "./node_modules/d3-selection/src/selection/call.js");
19606/* harmony import */ var _nodes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./nodes */ "./node_modules/d3-selection/src/selection/nodes.js");
19607/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./node */ "./node_modules/d3-selection/src/selection/node.js");
19608/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./size */ "./node_modules/d3-selection/src/selection/size.js");
19609/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./empty */ "./node_modules/d3-selection/src/selection/empty.js");
19610/* harmony import */ var _each__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./each */ "./node_modules/d3-selection/src/selection/each.js");
19611/* harmony import */ var _attr__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./attr */ "./node_modules/d3-selection/src/selection/attr.js");
19612/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./style */ "./node_modules/d3-selection/src/selection/style.js");
19613/* harmony import */ var _property__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./property */ "./node_modules/d3-selection/src/selection/property.js");
19614/* harmony import */ var _classed__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./classed */ "./node_modules/d3-selection/src/selection/classed.js");
19615/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./text */ "./node_modules/d3-selection/src/selection/text.js");
19616/* harmony import */ var _html__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./html */ "./node_modules/d3-selection/src/selection/html.js");
19617/* harmony import */ var _raise__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./raise */ "./node_modules/d3-selection/src/selection/raise.js");
19618/* harmony import */ var _lower__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./lower */ "./node_modules/d3-selection/src/selection/lower.js");
19619/* harmony import */ var _append__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./append */ "./node_modules/d3-selection/src/selection/append.js");
19620/* harmony import */ var _insert__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./insert */ "./node_modules/d3-selection/src/selection/insert.js");
19621/* harmony import */ var _remove__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./remove */ "./node_modules/d3-selection/src/selection/remove.js");
19622/* harmony import */ var _clone__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./clone */ "./node_modules/d3-selection/src/selection/clone.js");
19623/* harmony import */ var _datum__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./datum */ "./node_modules/d3-selection/src/selection/datum.js");
19624/* harmony import */ var _on__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./on */ "./node_modules/d3-selection/src/selection/on.js");
19625/* harmony import */ var _dispatch__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./dispatch */ "./node_modules/d3-selection/src/selection/dispatch.js");
19626
19627
19628
19629
19630
19631
19632
19633
19634
19635
19636
19637
19638
19639
19640
19641
19642
19643
19644
19645
19646
19647
19648
19649
19650
19651
19652
19653
19654
19655
19656
19657
19658var root = [null];
19659
19660function Selection(groups, parents) {
19661 this._groups = groups;
19662 this._parents = parents;
19663}
19664
19665function selection() {
19666 return new Selection([[document.documentElement]], root);
19667}
19668
19669Selection.prototype = selection.prototype = {
19670 constructor: Selection,
19671 select: _select__WEBPACK_IMPORTED_MODULE_0__["default"],
19672 selectAll: _selectAll__WEBPACK_IMPORTED_MODULE_1__["default"],
19673 filter: _filter__WEBPACK_IMPORTED_MODULE_2__["default"],
19674 data: _data__WEBPACK_IMPORTED_MODULE_3__["default"],
19675 enter: _enter__WEBPACK_IMPORTED_MODULE_4__["default"],
19676 exit: _exit__WEBPACK_IMPORTED_MODULE_5__["default"],
19677 join: _join__WEBPACK_IMPORTED_MODULE_6__["default"],
19678 merge: _merge__WEBPACK_IMPORTED_MODULE_7__["default"],
19679 order: _order__WEBPACK_IMPORTED_MODULE_8__["default"],
19680 sort: _sort__WEBPACK_IMPORTED_MODULE_9__["default"],
19681 call: _call__WEBPACK_IMPORTED_MODULE_10__["default"],
19682 nodes: _nodes__WEBPACK_IMPORTED_MODULE_11__["default"],
19683 node: _node__WEBPACK_IMPORTED_MODULE_12__["default"],
19684 size: _size__WEBPACK_IMPORTED_MODULE_13__["default"],
19685 empty: _empty__WEBPACK_IMPORTED_MODULE_14__["default"],
19686 each: _each__WEBPACK_IMPORTED_MODULE_15__["default"],
19687 attr: _attr__WEBPACK_IMPORTED_MODULE_16__["default"],
19688 style: _style__WEBPACK_IMPORTED_MODULE_17__["default"],
19689 property: _property__WEBPACK_IMPORTED_MODULE_18__["default"],
19690 classed: _classed__WEBPACK_IMPORTED_MODULE_19__["default"],
19691 text: _text__WEBPACK_IMPORTED_MODULE_20__["default"],
19692 html: _html__WEBPACK_IMPORTED_MODULE_21__["default"],
19693 raise: _raise__WEBPACK_IMPORTED_MODULE_22__["default"],
19694 lower: _lower__WEBPACK_IMPORTED_MODULE_23__["default"],
19695 append: _append__WEBPACK_IMPORTED_MODULE_24__["default"],
19696 insert: _insert__WEBPACK_IMPORTED_MODULE_25__["default"],
19697 remove: _remove__WEBPACK_IMPORTED_MODULE_26__["default"],
19698 clone: _clone__WEBPACK_IMPORTED_MODULE_27__["default"],
19699 datum: _datum__WEBPACK_IMPORTED_MODULE_28__["default"],
19700 on: _on__WEBPACK_IMPORTED_MODULE_29__["default"],
19701 dispatch: _dispatch__WEBPACK_IMPORTED_MODULE_30__["default"]
19702};
19703
19704/* harmony default export */ __webpack_exports__["default"] = (selection);
19705
19706
19707/***/ }),
19708
19709/***/ "./node_modules/d3-selection/src/selection/insert.js":
19710/*!***********************************************************!*\
19711 !*** ./node_modules/d3-selection/src/selection/insert.js ***!
19712 \***********************************************************/
19713/*! exports provided: default */
19714/***/ (function(module, __webpack_exports__, __webpack_require__) {
19715
19716"use strict";
19717__webpack_require__.r(__webpack_exports__);
19718/* harmony import */ var _creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator */ "./node_modules/d3-selection/src/creator.js");
19719/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector */ "./node_modules/d3-selection/src/selector.js");
19720
19721
19722
19723function constantNull() {
19724 return null;
19725}
19726
19727/* harmony default export */ __webpack_exports__["default"] = (function(name, before) {
19728 var create = typeof name === "function" ? name : Object(_creator__WEBPACK_IMPORTED_MODULE_0__["default"])(name),
19729 select = before == null ? constantNull : typeof before === "function" ? before : Object(_selector__WEBPACK_IMPORTED_MODULE_1__["default"])(before);
19730 return this.select(function() {
19731 return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
19732 });
19733});
19734
19735
19736/***/ }),
19737
19738/***/ "./node_modules/d3-selection/src/selection/join.js":
19739/*!*********************************************************!*\
19740 !*** ./node_modules/d3-selection/src/selection/join.js ***!
19741 \*********************************************************/
19742/*! exports provided: default */
19743/***/ (function(module, __webpack_exports__, __webpack_require__) {
19744
19745"use strict";
19746__webpack_require__.r(__webpack_exports__);
19747/* harmony default export */ __webpack_exports__["default"] = (function(onenter, onupdate, onexit) {
19748 var enter = this.enter(), update = this, exit = this.exit();
19749 enter = typeof onenter === "function" ? onenter(enter) : enter.append(onenter + "");
19750 if (onupdate != null) update = onupdate(update);
19751 if (onexit == null) exit.remove(); else onexit(exit);
19752 return enter && update ? enter.merge(update).order() : update;
19753});
19754
19755
19756/***/ }),
19757
19758/***/ "./node_modules/d3-selection/src/selection/lower.js":
19759/*!**********************************************************!*\
19760 !*** ./node_modules/d3-selection/src/selection/lower.js ***!
19761 \**********************************************************/
19762/*! exports provided: default */
19763/***/ (function(module, __webpack_exports__, __webpack_require__) {
19764
19765"use strict";
19766__webpack_require__.r(__webpack_exports__);
19767function lower() {
19768 if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
19769}
19770
19771/* harmony default export */ __webpack_exports__["default"] = (function() {
19772 return this.each(lower);
19773});
19774
19775
19776/***/ }),
19777
19778/***/ "./node_modules/d3-selection/src/selection/merge.js":
19779/*!**********************************************************!*\
19780 !*** ./node_modules/d3-selection/src/selection/merge.js ***!
19781 \**********************************************************/
19782/*! exports provided: default */
19783/***/ (function(module, __webpack_exports__, __webpack_require__) {
19784
19785"use strict";
19786__webpack_require__.r(__webpack_exports__);
19787/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
19788
19789
19790/* harmony default export */ __webpack_exports__["default"] = (function(selection) {
19791
19792 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) {
19793 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
19794 if (node = group0[i] || group1[i]) {
19795 merge[i] = node;
19796 }
19797 }
19798 }
19799
19800 for (; j < m0; ++j) {
19801 merges[j] = groups0[j];
19802 }
19803
19804 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](merges, this._parents);
19805});
19806
19807
19808/***/ }),
19809
19810/***/ "./node_modules/d3-selection/src/selection/node.js":
19811/*!*********************************************************!*\
19812 !*** ./node_modules/d3-selection/src/selection/node.js ***!
19813 \*********************************************************/
19814/*! exports provided: default */
19815/***/ (function(module, __webpack_exports__, __webpack_require__) {
19816
19817"use strict";
19818__webpack_require__.r(__webpack_exports__);
19819/* harmony default export */ __webpack_exports__["default"] = (function() {
19820
19821 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
19822 for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
19823 var node = group[i];
19824 if (node) return node;
19825 }
19826 }
19827
19828 return null;
19829});
19830
19831
19832/***/ }),
19833
19834/***/ "./node_modules/d3-selection/src/selection/nodes.js":
19835/*!**********************************************************!*\
19836 !*** ./node_modules/d3-selection/src/selection/nodes.js ***!
19837 \**********************************************************/
19838/*! exports provided: default */
19839/***/ (function(module, __webpack_exports__, __webpack_require__) {
19840
19841"use strict";
19842__webpack_require__.r(__webpack_exports__);
19843/* harmony default export */ __webpack_exports__["default"] = (function() {
19844 var nodes = new Array(this.size()), i = -1;
19845 this.each(function() { nodes[++i] = this; });
19846 return nodes;
19847});
19848
19849
19850/***/ }),
19851
19852/***/ "./node_modules/d3-selection/src/selection/on.js":
19853/*!*******************************************************!*\
19854 !*** ./node_modules/d3-selection/src/selection/on.js ***!
19855 \*******************************************************/
19856/*! exports provided: event, default, customEvent */
19857/***/ (function(module, __webpack_exports__, __webpack_require__) {
19858
19859"use strict";
19860__webpack_require__.r(__webpack_exports__);
19861/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "event", function() { return event; });
19862/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return customEvent; });
19863var filterEvents = {};
19864
19865var event = null;
19866
19867if (typeof document !== "undefined") {
19868 var element = document.documentElement;
19869 if (!("onmouseenter" in element)) {
19870 filterEvents = {mouseenter: "mouseover", mouseleave: "mouseout"};
19871 }
19872}
19873
19874function filterContextListener(listener, index, group) {
19875 listener = contextListener(listener, index, group);
19876 return function(event) {
19877 var related = event.relatedTarget;
19878 if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {
19879 listener.call(this, event);
19880 }
19881 };
19882}
19883
19884function contextListener(listener, index, group) {
19885 return function(event1) {
19886 var event0 = event; // Events can be reentrant (e.g., focus).
19887 event = event1;
19888 try {
19889 listener.call(this, this.__data__, index, group);
19890 } finally {
19891 event = event0;
19892 }
19893 };
19894}
19895
19896function parseTypenames(typenames) {
19897 return typenames.trim().split(/^|\s+/).map(function(t) {
19898 var name = "", i = t.indexOf(".");
19899 if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
19900 return {type: t, name: name};
19901 });
19902}
19903
19904function onRemove(typename) {
19905 return function() {
19906 var on = this.__on;
19907 if (!on) return;
19908 for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
19909 if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
19910 this.removeEventListener(o.type, o.listener, o.capture);
19911 } else {
19912 on[++i] = o;
19913 }
19914 }
19915 if (++i) on.length = i;
19916 else delete this.__on;
19917 };
19918}
19919
19920function onAdd(typename, value, capture) {
19921 var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;
19922 return function(d, i, group) {
19923 var on = this.__on, o, listener = wrap(value, i, group);
19924 if (on) for (var j = 0, m = on.length; j < m; ++j) {
19925 if ((o = on[j]).type === typename.type && o.name === typename.name) {
19926 this.removeEventListener(o.type, o.listener, o.capture);
19927 this.addEventListener(o.type, o.listener = listener, o.capture = capture);
19928 o.value = value;
19929 return;
19930 }
19931 }
19932 this.addEventListener(typename.type, listener, capture);
19933 o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};
19934 if (!on) this.__on = [o];
19935 else on.push(o);
19936 };
19937}
19938
19939/* harmony default export */ __webpack_exports__["default"] = (function(typename, value, capture) {
19940 var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
19941
19942 if (arguments.length < 2) {
19943 var on = this.node().__on;
19944 if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
19945 for (i = 0, o = on[j]; i < n; ++i) {
19946 if ((t = typenames[i]).type === o.type && t.name === o.name) {
19947 return o.value;
19948 }
19949 }
19950 }
19951 return;
19952 }
19953
19954 on = value ? onAdd : onRemove;
19955 if (capture == null) capture = false;
19956 for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));
19957 return this;
19958});
19959
19960function customEvent(event1, listener, that, args) {
19961 var event0 = event;
19962 event1.sourceEvent = event;
19963 event = event1;
19964 try {
19965 return listener.apply(that, args);
19966 } finally {
19967 event = event0;
19968 }
19969}
19970
19971
19972/***/ }),
19973
19974/***/ "./node_modules/d3-selection/src/selection/order.js":
19975/*!**********************************************************!*\
19976 !*** ./node_modules/d3-selection/src/selection/order.js ***!
19977 \**********************************************************/
19978/*! exports provided: default */
19979/***/ (function(module, __webpack_exports__, __webpack_require__) {
19980
19981"use strict";
19982__webpack_require__.r(__webpack_exports__);
19983/* harmony default export */ __webpack_exports__["default"] = (function() {
19984
19985 for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
19986 for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
19987 if (node = group[i]) {
19988 if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
19989 next = node;
19990 }
19991 }
19992 }
19993
19994 return this;
19995});
19996
19997
19998/***/ }),
19999
20000/***/ "./node_modules/d3-selection/src/selection/property.js":
20001/*!*************************************************************!*\
20002 !*** ./node_modules/d3-selection/src/selection/property.js ***!
20003 \*************************************************************/
20004/*! exports provided: default */
20005/***/ (function(module, __webpack_exports__, __webpack_require__) {
20006
20007"use strict";
20008__webpack_require__.r(__webpack_exports__);
20009function propertyRemove(name) {
20010 return function() {
20011 delete this[name];
20012 };
20013}
20014
20015function propertyConstant(name, value) {
20016 return function() {
20017 this[name] = value;
20018 };
20019}
20020
20021function propertyFunction(name, value) {
20022 return function() {
20023 var v = value.apply(this, arguments);
20024 if (v == null) delete this[name];
20025 else this[name] = v;
20026 };
20027}
20028
20029/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
20030 return arguments.length > 1
20031 ? this.each((value == null
20032 ? propertyRemove : typeof value === "function"
20033 ? propertyFunction
20034 : propertyConstant)(name, value))
20035 : this.node()[name];
20036});
20037
20038
20039/***/ }),
20040
20041/***/ "./node_modules/d3-selection/src/selection/raise.js":
20042/*!**********************************************************!*\
20043 !*** ./node_modules/d3-selection/src/selection/raise.js ***!
20044 \**********************************************************/
20045/*! exports provided: default */
20046/***/ (function(module, __webpack_exports__, __webpack_require__) {
20047
20048"use strict";
20049__webpack_require__.r(__webpack_exports__);
20050function raise() {
20051 if (this.nextSibling) this.parentNode.appendChild(this);
20052}
20053
20054/* harmony default export */ __webpack_exports__["default"] = (function() {
20055 return this.each(raise);
20056});
20057
20058
20059/***/ }),
20060
20061/***/ "./node_modules/d3-selection/src/selection/remove.js":
20062/*!***********************************************************!*\
20063 !*** ./node_modules/d3-selection/src/selection/remove.js ***!
20064 \***********************************************************/
20065/*! exports provided: default */
20066/***/ (function(module, __webpack_exports__, __webpack_require__) {
20067
20068"use strict";
20069__webpack_require__.r(__webpack_exports__);
20070function remove() {
20071 var parent = this.parentNode;
20072 if (parent) parent.removeChild(this);
20073}
20074
20075/* harmony default export */ __webpack_exports__["default"] = (function() {
20076 return this.each(remove);
20077});
20078
20079
20080/***/ }),
20081
20082/***/ "./node_modules/d3-selection/src/selection/select.js":
20083/*!***********************************************************!*\
20084 !*** ./node_modules/d3-selection/src/selection/select.js ***!
20085 \***********************************************************/
20086/*! exports provided: default */
20087/***/ (function(module, __webpack_exports__, __webpack_require__) {
20088
20089"use strict";
20090__webpack_require__.r(__webpack_exports__);
20091/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
20092/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector */ "./node_modules/d3-selection/src/selector.js");
20093
20094
20095
20096/* harmony default export */ __webpack_exports__["default"] = (function(select) {
20097 if (typeof select !== "function") select = Object(_selector__WEBPACK_IMPORTED_MODULE_1__["default"])(select);
20098
20099 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
20100 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
20101 if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
20102 if ("__data__" in node) subnode.__data__ = node.__data__;
20103 subgroup[i] = subnode;
20104 }
20105 }
20106 }
20107
20108 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, this._parents);
20109});
20110
20111
20112/***/ }),
20113
20114/***/ "./node_modules/d3-selection/src/selection/selectAll.js":
20115/*!**************************************************************!*\
20116 !*** ./node_modules/d3-selection/src/selection/selectAll.js ***!
20117 \**************************************************************/
20118/*! exports provided: default */
20119/***/ (function(module, __webpack_exports__, __webpack_require__) {
20120
20121"use strict";
20122__webpack_require__.r(__webpack_exports__);
20123/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
20124/* harmony import */ var _selectorAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selectorAll */ "./node_modules/d3-selection/src/selectorAll.js");
20125
20126
20127
20128/* harmony default export */ __webpack_exports__["default"] = (function(select) {
20129 if (typeof select !== "function") select = Object(_selectorAll__WEBPACK_IMPORTED_MODULE_1__["default"])(select);
20130
20131 for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
20132 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
20133 if (node = group[i]) {
20134 subgroups.push(select.call(node, node.__data__, i, group));
20135 parents.push(node);
20136 }
20137 }
20138 }
20139
20140 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](subgroups, parents);
20141});
20142
20143
20144/***/ }),
20145
20146/***/ "./node_modules/d3-selection/src/selection/size.js":
20147/*!*********************************************************!*\
20148 !*** ./node_modules/d3-selection/src/selection/size.js ***!
20149 \*********************************************************/
20150/*! exports provided: default */
20151/***/ (function(module, __webpack_exports__, __webpack_require__) {
20152
20153"use strict";
20154__webpack_require__.r(__webpack_exports__);
20155/* harmony default export */ __webpack_exports__["default"] = (function() {
20156 var size = 0;
20157 this.each(function() { ++size; });
20158 return size;
20159});
20160
20161
20162/***/ }),
20163
20164/***/ "./node_modules/d3-selection/src/selection/sort.js":
20165/*!*********************************************************!*\
20166 !*** ./node_modules/d3-selection/src/selection/sort.js ***!
20167 \*********************************************************/
20168/*! exports provided: default */
20169/***/ (function(module, __webpack_exports__, __webpack_require__) {
20170
20171"use strict";
20172__webpack_require__.r(__webpack_exports__);
20173/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ "./node_modules/d3-selection/src/selection/index.js");
20174
20175
20176/* harmony default export */ __webpack_exports__["default"] = (function(compare) {
20177 if (!compare) compare = ascending;
20178
20179 function compareNode(a, b) {
20180 return a && b ? compare(a.__data__, b.__data__) : !a - !b;
20181 }
20182
20183 for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
20184 for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
20185 if (node = group[i]) {
20186 sortgroup[i] = node;
20187 }
20188 }
20189 sortgroup.sort(compareNode);
20190 }
20191
20192 return new _index__WEBPACK_IMPORTED_MODULE_0__["Selection"](sortgroups, this._parents).order();
20193});
20194
20195function ascending(a, b) {
20196 return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
20197}
20198
20199
20200/***/ }),
20201
20202/***/ "./node_modules/d3-selection/src/selection/sparse.js":
20203/*!***********************************************************!*\
20204 !*** ./node_modules/d3-selection/src/selection/sparse.js ***!
20205 \***********************************************************/
20206/*! exports provided: default */
20207/***/ (function(module, __webpack_exports__, __webpack_require__) {
20208
20209"use strict";
20210__webpack_require__.r(__webpack_exports__);
20211/* harmony default export */ __webpack_exports__["default"] = (function(update) {
20212 return new Array(update.length);
20213});
20214
20215
20216/***/ }),
20217
20218/***/ "./node_modules/d3-selection/src/selection/style.js":
20219/*!**********************************************************!*\
20220 !*** ./node_modules/d3-selection/src/selection/style.js ***!
20221 \**********************************************************/
20222/*! exports provided: default, styleValue */
20223/***/ (function(module, __webpack_exports__, __webpack_require__) {
20224
20225"use strict";
20226__webpack_require__.r(__webpack_exports__);
20227/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styleValue", function() { return styleValue; });
20228/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window */ "./node_modules/d3-selection/src/window.js");
20229
20230
20231function styleRemove(name) {
20232 return function() {
20233 this.style.removeProperty(name);
20234 };
20235}
20236
20237function styleConstant(name, value, priority) {
20238 return function() {
20239 this.style.setProperty(name, value, priority);
20240 };
20241}
20242
20243function styleFunction(name, value, priority) {
20244 return function() {
20245 var v = value.apply(this, arguments);
20246 if (v == null) this.style.removeProperty(name);
20247 else this.style.setProperty(name, v, priority);
20248 };
20249}
20250
20251/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
20252 return arguments.length > 1
20253 ? this.each((value == null
20254 ? styleRemove : typeof value === "function"
20255 ? styleFunction
20256 : styleConstant)(name, value, priority == null ? "" : priority))
20257 : styleValue(this.node(), name);
20258});
20259
20260function styleValue(node, name) {
20261 return node.style.getPropertyValue(name)
20262 || Object(_window__WEBPACK_IMPORTED_MODULE_0__["default"])(node).getComputedStyle(node, null).getPropertyValue(name);
20263}
20264
20265
20266/***/ }),
20267
20268/***/ "./node_modules/d3-selection/src/selection/text.js":
20269/*!*********************************************************!*\
20270 !*** ./node_modules/d3-selection/src/selection/text.js ***!
20271 \*********************************************************/
20272/*! exports provided: default */
20273/***/ (function(module, __webpack_exports__, __webpack_require__) {
20274
20275"use strict";
20276__webpack_require__.r(__webpack_exports__);
20277function textRemove() {
20278 this.textContent = "";
20279}
20280
20281function textConstant(value) {
20282 return function() {
20283 this.textContent = value;
20284 };
20285}
20286
20287function textFunction(value) {
20288 return function() {
20289 var v = value.apply(this, arguments);
20290 this.textContent = v == null ? "" : v;
20291 };
20292}
20293
20294/* harmony default export */ __webpack_exports__["default"] = (function(value) {
20295 return arguments.length
20296 ? this.each(value == null
20297 ? textRemove : (typeof value === "function"
20298 ? textFunction
20299 : textConstant)(value))
20300 : this.node().textContent;
20301});
20302
20303
20304/***/ }),
20305
20306/***/ "./node_modules/d3-selection/src/selector.js":
20307/*!***************************************************!*\
20308 !*** ./node_modules/d3-selection/src/selector.js ***!
20309 \***************************************************/
20310/*! exports provided: default */
20311/***/ (function(module, __webpack_exports__, __webpack_require__) {
20312
20313"use strict";
20314__webpack_require__.r(__webpack_exports__);
20315function none() {}
20316
20317/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
20318 return selector == null ? none : function() {
20319 return this.querySelector(selector);
20320 };
20321});
20322
20323
20324/***/ }),
20325
20326/***/ "./node_modules/d3-selection/src/selectorAll.js":
20327/*!******************************************************!*\
20328 !*** ./node_modules/d3-selection/src/selectorAll.js ***!
20329 \******************************************************/
20330/*! exports provided: default */
20331/***/ (function(module, __webpack_exports__, __webpack_require__) {
20332
20333"use strict";
20334__webpack_require__.r(__webpack_exports__);
20335function empty() {
20336 return [];
20337}
20338
20339/* harmony default export */ __webpack_exports__["default"] = (function(selector) {
20340 return selector == null ? empty : function() {
20341 return this.querySelectorAll(selector);
20342 };
20343});
20344
20345
20346/***/ }),
20347
20348/***/ "./node_modules/d3-selection/src/sourceEvent.js":
20349/*!******************************************************!*\
20350 !*** ./node_modules/d3-selection/src/sourceEvent.js ***!
20351 \******************************************************/
20352/*! exports provided: default */
20353/***/ (function(module, __webpack_exports__, __webpack_require__) {
20354
20355"use strict";
20356__webpack_require__.r(__webpack_exports__);
20357/* harmony import */ var _selection_on__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/on */ "./node_modules/d3-selection/src/selection/on.js");
20358
20359
20360/* harmony default export */ __webpack_exports__["default"] = (function() {
20361 var current = _selection_on__WEBPACK_IMPORTED_MODULE_0__["event"], source;
20362 while (source = current.sourceEvent) current = source;
20363 return current;
20364});
20365
20366
20367/***/ }),
20368
20369/***/ "./node_modules/d3-selection/src/touch.js":
20370/*!************************************************!*\
20371 !*** ./node_modules/d3-selection/src/touch.js ***!
20372 \************************************************/
20373/*! exports provided: default */
20374/***/ (function(module, __webpack_exports__, __webpack_require__) {
20375
20376"use strict";
20377__webpack_require__.r(__webpack_exports__);
20378/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
20379/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
20380
20381
20382
20383/* harmony default export */ __webpack_exports__["default"] = (function(node, touches, identifier) {
20384 if (arguments.length < 3) identifier = touches, touches = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])().changedTouches;
20385
20386 for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {
20387 if ((touch = touches[i]).identifier === identifier) {
20388 return Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, touch);
20389 }
20390 }
20391
20392 return null;
20393});
20394
20395
20396/***/ }),
20397
20398/***/ "./node_modules/d3-selection/src/touches.js":
20399/*!**************************************************!*\
20400 !*** ./node_modules/d3-selection/src/touches.js ***!
20401 \**************************************************/
20402/*! exports provided: default */
20403/***/ (function(module, __webpack_exports__, __webpack_require__) {
20404
20405"use strict";
20406__webpack_require__.r(__webpack_exports__);
20407/* harmony import */ var _sourceEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent */ "./node_modules/d3-selection/src/sourceEvent.js");
20408/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-selection/src/point.js");
20409
20410
20411
20412/* harmony default export */ __webpack_exports__["default"] = (function(node, touches) {
20413 if (touches == null) touches = Object(_sourceEvent__WEBPACK_IMPORTED_MODULE_0__["default"])().touches;
20414
20415 for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {
20416 points[i] = Object(_point__WEBPACK_IMPORTED_MODULE_1__["default"])(node, touches[i]);
20417 }
20418
20419 return points;
20420});
20421
20422
20423/***/ }),
20424
20425/***/ "./node_modules/d3-selection/src/window.js":
20426/*!*************************************************!*\
20427 !*** ./node_modules/d3-selection/src/window.js ***!
20428 \*************************************************/
20429/*! exports provided: default */
20430/***/ (function(module, __webpack_exports__, __webpack_require__) {
20431
20432"use strict";
20433__webpack_require__.r(__webpack_exports__);
20434/* harmony default export */ __webpack_exports__["default"] = (function(node) {
20435 return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
20436 || (node.document && node) // node is a Window
20437 || node.defaultView; // node is a Document
20438});
20439
20440
20441/***/ }),
20442
20443/***/ "./node_modules/d3-shape/src/arc.js":
20444/*!******************************************!*\
20445 !*** ./node_modules/d3-shape/src/arc.js ***!
20446 \******************************************/
20447/*! exports provided: default */
20448/***/ (function(module, __webpack_exports__, __webpack_require__) {
20449
20450"use strict";
20451__webpack_require__.r(__webpack_exports__);
20452/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
20453/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
20454/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-shape/src/math.js");
20455
20456
20457
20458
20459function arcInnerRadius(d) {
20460 return d.innerRadius;
20461}
20462
20463function arcOuterRadius(d) {
20464 return d.outerRadius;
20465}
20466
20467function arcStartAngle(d) {
20468 return d.startAngle;
20469}
20470
20471function arcEndAngle(d) {
20472 return d.endAngle;
20473}
20474
20475function arcPadAngle(d) {
20476 return d && d.padAngle; // Note: optional!
20477}
20478
20479function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
20480 var x10 = x1 - x0, y10 = y1 - y0,
20481 x32 = x3 - x2, y32 = y3 - y2,
20482 t = y32 * x10 - x32 * y10;
20483 if (t * t < _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) return;
20484 t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
20485 return [x0 + t * x10, y0 + t * y10];
20486}
20487
20488// Compute perpendicular offset line of length rc.
20489// http://mathworld.wolfram.com/Circle-LineIntersection.html
20490function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
20491 var x01 = x0 - x1,
20492 y01 = y0 - y1,
20493 lo = (cw ? rc : -rc) / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(x01 * x01 + y01 * y01),
20494 ox = lo * y01,
20495 oy = -lo * x01,
20496 x11 = x0 + ox,
20497 y11 = y0 + oy,
20498 x10 = x1 + ox,
20499 y10 = y1 + oy,
20500 x00 = (x11 + x10) / 2,
20501 y00 = (y11 + y10) / 2,
20502 dx = x10 - x11,
20503 dy = y10 - y11,
20504 d2 = dx * dx + dy * dy,
20505 r = r1 - rc,
20506 D = x11 * y10 - x10 * y11,
20507 d = (dy < 0 ? -1 : 1) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["max"])(0, r * r * d2 - D * D)),
20508 cx0 = (D * dy - dx * d) / d2,
20509 cy0 = (-D * dx - dy * d) / d2,
20510 cx1 = (D * dy + dx * d) / d2,
20511 cy1 = (-D * dx + dy * d) / d2,
20512 dx0 = cx0 - x00,
20513 dy0 = cy0 - y00,
20514 dx1 = cx1 - x00,
20515 dy1 = cy1 - y00;
20516
20517 // Pick the closer of the two intersection points.
20518 // TODO Is there a faster way to determine which intersection to use?
20519 if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
20520
20521 return {
20522 cx: cx0,
20523 cy: cy0,
20524 x01: -ox,
20525 y01: -oy,
20526 x11: cx0 * (r1 / r - 1),
20527 y11: cy0 * (r1 / r - 1)
20528 };
20529}
20530
20531/* harmony default export */ __webpack_exports__["default"] = (function() {
20532 var innerRadius = arcInnerRadius,
20533 outerRadius = arcOuterRadius,
20534 cornerRadius = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(0),
20535 padRadius = null,
20536 startAngle = arcStartAngle,
20537 endAngle = arcEndAngle,
20538 padAngle = arcPadAngle,
20539 context = null;
20540
20541 function arc() {
20542 var buffer,
20543 r,
20544 r0 = +innerRadius.apply(this, arguments),
20545 r1 = +outerRadius.apply(this, arguments),
20546 a0 = startAngle.apply(this, arguments) - _math_js__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
20547 a1 = endAngle.apply(this, arguments) - _math_js__WEBPACK_IMPORTED_MODULE_2__["halfPi"],
20548 da = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["abs"])(a1 - a0),
20549 cw = a1 > a0;
20550
20551 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
20552
20553 // Ensure that the outer radius is always larger than the inner radius.
20554 if (r1 < r0) r = r1, r1 = r0, r0 = r;
20555
20556 // Is it a point?
20557 if (!(r1 > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.moveTo(0, 0);
20558
20559 // Or is it a circle or annulus?
20560 else if (da > _math_js__WEBPACK_IMPORTED_MODULE_2__["tau"] - _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20561 context.moveTo(r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(a0), r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(a0));
20562 context.arc(0, 0, r1, a0, a1, !cw);
20563 if (r0 > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20564 context.moveTo(r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(a1), r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(a1));
20565 context.arc(0, 0, r0, a1, a0, cw);
20566 }
20567 }
20568
20569 // Or is it a circular or annular sector?
20570 else {
20571 var a01 = a0,
20572 a11 = a1,
20573 a00 = a0,
20574 a10 = a1,
20575 da0 = da,
20576 da1 = da,
20577 ap = padAngle.apply(this, arguments) / 2,
20578 rp = (ap > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) && (padRadius ? +padRadius.apply(this, arguments) : Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(r0 * r0 + r1 * r1)),
20579 rc = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["min"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["abs"])(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
20580 rc0 = rc,
20581 rc1 = rc,
20582 t0,
20583 t1;
20584
20585 // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
20586 if (rp > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20587 var p0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["asin"])(rp / r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(ap)),
20588 p1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["asin"])(rp / r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(ap));
20589 if ((da0 -= p0 * 2) > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
20590 else da0 = 0, a00 = a10 = (a0 + a1) / 2;
20591 if ((da1 -= p1 * 2) > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
20592 else da1 = 0, a01 = a11 = (a0 + a1) / 2;
20593 }
20594
20595 var x01 = r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(a01),
20596 y01 = r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(a01),
20597 x10 = r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(a10),
20598 y10 = r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(a10);
20599
20600 // Apply rounded corners?
20601 if (rc > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20602 var x11 = r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(a11),
20603 y11 = r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(a11),
20604 x00 = r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(a00),
20605 y00 = r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(a00),
20606 oc;
20607
20608 // Restrict the corner radius according to the sector angle.
20609 if (da < _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"] && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {
20610 var ax = x01 - oc[0],
20611 ay = y01 - oc[1],
20612 bx = x11 - oc[0],
20613 by = y11 - oc[1],
20614 kc = 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["acos"])((ax * bx + ay * by) / (Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(ax * ax + ay * ay) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(bx * bx + by * by))) / 2),
20615 lc = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sqrt"])(oc[0] * oc[0] + oc[1] * oc[1]);
20616 rc0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["min"])(rc, (r0 - lc) / (kc - 1));
20617 rc1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["min"])(rc, (r1 - lc) / (kc + 1));
20618 }
20619 }
20620
20621 // Is the sector collapsed to a line?
20622 if (!(da1 > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.moveTo(x01, y01);
20623
20624 // Does the sector’s outer ring have rounded corners?
20625 else if (rc1 > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20626 t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
20627 t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
20628
20629 context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
20630
20631 // Have the corners merged?
20632 if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y01, t0.x01), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y01, t1.x01), !cw);
20633
20634 // Otherwise, draw the two corners and the ring.
20635 else {
20636 context.arc(t0.cx, t0.cy, rc1, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y01, t0.x01), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y11, t0.x11), !cw);
20637 context.arc(0, 0, r1, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.cy + t0.y11, t0.cx + t0.x11), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
20638 context.arc(t1.cx, t1.cy, rc1, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y11, t1.x11), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y01, t1.x01), !cw);
20639 }
20640 }
20641
20642 // Or is the outer ring just a circular arc?
20643 else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
20644
20645 // Is there no inner ring, and it’s a circular sector?
20646 // Or perhaps it’s an annular sector collapsed due to padding?
20647 if (!(r0 > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) || !(da0 > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"])) context.lineTo(x10, y10);
20648
20649 // Does the sector’s inner ring (or point) have rounded corners?
20650 else if (rc0 > _math_js__WEBPACK_IMPORTED_MODULE_2__["epsilon"]) {
20651 t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
20652 t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
20653
20654 context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
20655
20656 // Have the corners merged?
20657 if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y01, t0.x01), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y01, t1.x01), !cw);
20658
20659 // Otherwise, draw the two corners and the ring.
20660 else {
20661 context.arc(t0.cx, t0.cy, rc0, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y01, t0.x01), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.y11, t0.x11), !cw);
20662 context.arc(0, 0, r0, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t0.cy + t0.y11, t0.cx + t0.x11), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.cy + t1.y11, t1.cx + t1.x11), cw);
20663 context.arc(t1.cx, t1.cy, rc0, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y11, t1.x11), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["atan2"])(t1.y01, t1.x01), !cw);
20664 }
20665 }
20666
20667 // Or is the inner ring just a circular arc?
20668 else context.arc(0, 0, r0, a10, a00, cw);
20669 }
20670
20671 context.closePath();
20672
20673 if (buffer) return context = null, buffer + "" || null;
20674 }
20675
20676 arc.centroid = function() {
20677 var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
20678 a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - _math_js__WEBPACK_IMPORTED_MODULE_2__["pi"] / 2;
20679 return [Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["cos"])(a) * r, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__["sin"])(a) * r];
20680 };
20681
20682 arc.innerRadius = function(_) {
20683 return arguments.length ? (innerRadius = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : innerRadius;
20684 };
20685
20686 arc.outerRadius = function(_) {
20687 return arguments.length ? (outerRadius = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : outerRadius;
20688 };
20689
20690 arc.cornerRadius = function(_) {
20691 return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : cornerRadius;
20692 };
20693
20694 arc.padRadius = function(_) {
20695 return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : padRadius;
20696 };
20697
20698 arc.startAngle = function(_) {
20699 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : startAngle;
20700 };
20701
20702 arc.endAngle = function(_) {
20703 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : endAngle;
20704 };
20705
20706 arc.padAngle = function(_) {
20707 return arguments.length ? (padAngle = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : padAngle;
20708 };
20709
20710 arc.context = function(_) {
20711 return arguments.length ? ((context = _ == null ? null : _), arc) : context;
20712 };
20713
20714 return arc;
20715});
20716
20717
20718/***/ }),
20719
20720/***/ "./node_modules/d3-shape/src/area.js":
20721/*!*******************************************!*\
20722 !*** ./node_modules/d3-shape/src/area.js ***!
20723 \*******************************************/
20724/*! exports provided: default */
20725/***/ (function(module, __webpack_exports__, __webpack_require__) {
20726
20727"use strict";
20728__webpack_require__.r(__webpack_exports__);
20729/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
20730/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
20731/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curve/linear.js */ "./node_modules/d3-shape/src/curve/linear.js");
20732/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./line.js */ "./node_modules/d3-shape/src/line.js");
20733/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./point.js */ "./node_modules/d3-shape/src/point.js");
20734
20735
20736
20737
20738
20739
20740/* harmony default export */ __webpack_exports__["default"] = (function() {
20741 var x0 = _point_js__WEBPACK_IMPORTED_MODULE_4__["x"],
20742 x1 = null,
20743 y0 = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(0),
20744 y1 = _point_js__WEBPACK_IMPORTED_MODULE_4__["y"],
20745 defined = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(true),
20746 context = null,
20747 curve = _curve_linear_js__WEBPACK_IMPORTED_MODULE_2__["default"],
20748 output = null;
20749
20750 function area(data) {
20751 var i,
20752 j,
20753 k,
20754 n = data.length,
20755 d,
20756 defined0 = false,
20757 buffer,
20758 x0z = new Array(n),
20759 y0z = new Array(n);
20760
20761 if (context == null) output = curve(buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])());
20762
20763 for (i = 0; i <= n; ++i) {
20764 if (!(i < n && defined(d = data[i], i, data)) === defined0) {
20765 if (defined0 = !defined0) {
20766 j = i;
20767 output.areaStart();
20768 output.lineStart();
20769 } else {
20770 output.lineEnd();
20771 output.lineStart();
20772 for (k = i - 1; k >= j; --k) {
20773 output.point(x0z[k], y0z[k]);
20774 }
20775 output.lineEnd();
20776 output.areaEnd();
20777 }
20778 }
20779 if (defined0) {
20780 x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
20781 output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
20782 }
20783 }
20784
20785 if (buffer) return output = null, buffer + "" || null;
20786 }
20787
20788 function arealine() {
20789 return Object(_line_js__WEBPACK_IMPORTED_MODULE_3__["default"])().defined(defined).curve(curve).context(context);
20790 }
20791
20792 area.x = function(_) {
20793 return arguments.length ? (x0 = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), x1 = null, area) : x0;
20794 };
20795
20796 area.x0 = function(_) {
20797 return arguments.length ? (x0 = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : x0;
20798 };
20799
20800 area.x1 = function(_) {
20801 return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : x1;
20802 };
20803
20804 area.y = function(_) {
20805 return arguments.length ? (y0 = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), y1 = null, area) : y0;
20806 };
20807
20808 area.y0 = function(_) {
20809 return arguments.length ? (y0 = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : y0;
20810 };
20811
20812 area.y1 = function(_) {
20813 return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), area) : y1;
20814 };
20815
20816 area.lineX0 =
20817 area.lineY0 = function() {
20818 return arealine().x(x0).y(y0);
20819 };
20820
20821 area.lineY1 = function() {
20822 return arealine().x(x0).y(y1);
20823 };
20824
20825 area.lineX1 = function() {
20826 return arealine().x(x1).y(y0);
20827 };
20828
20829 area.defined = function(_) {
20830 return arguments.length ? (defined = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), area) : defined;
20831 };
20832
20833 area.curve = function(_) {
20834 return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
20835 };
20836
20837 area.context = function(_) {
20838 return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
20839 };
20840
20841 return area;
20842});
20843
20844
20845/***/ }),
20846
20847/***/ "./node_modules/d3-shape/src/areaRadial.js":
20848/*!*************************************************!*\
20849 !*** ./node_modules/d3-shape/src/areaRadial.js ***!
20850 \*************************************************/
20851/*! exports provided: default */
20852/***/ (function(module, __webpack_exports__, __webpack_require__) {
20853
20854"use strict";
20855__webpack_require__.r(__webpack_exports__);
20856/* harmony import */ var _curve_radial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial.js */ "./node_modules/d3-shape/src/curve/radial.js");
20857/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-shape/src/area.js");
20858/* harmony import */ var _lineRadial_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lineRadial.js */ "./node_modules/d3-shape/src/lineRadial.js");
20859
20860
20861
20862
20863/* harmony default export */ __webpack_exports__["default"] = (function() {
20864 var a = Object(_area_js__WEBPACK_IMPORTED_MODULE_1__["default"])().curve(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__["curveRadialLinear"]),
20865 c = a.curve,
20866 x0 = a.lineX0,
20867 x1 = a.lineX1,
20868 y0 = a.lineY0,
20869 y1 = a.lineY1;
20870
20871 a.angle = a.x, delete a.x;
20872 a.startAngle = a.x0, delete a.x0;
20873 a.endAngle = a.x1, delete a.x1;
20874 a.radius = a.y, delete a.y;
20875 a.innerRadius = a.y0, delete a.y0;
20876 a.outerRadius = a.y1, delete a.y1;
20877 a.lineStartAngle = function() { return Object(_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(x0()); }, delete a.lineX0;
20878 a.lineEndAngle = function() { return Object(_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(x1()); }, delete a.lineX1;
20879 a.lineInnerRadius = function() { return Object(_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(y0()); }, delete a.lineY0;
20880 a.lineOuterRadius = function() { return Object(_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__["lineRadial"])(y1()); }, delete a.lineY1;
20881
20882 a.curve = function(_) {
20883 return arguments.length ? c(Object(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_)) : c()._curve;
20884 };
20885
20886 return a;
20887});
20888
20889
20890/***/ }),
20891
20892/***/ "./node_modules/d3-shape/src/array.js":
20893/*!********************************************!*\
20894 !*** ./node_modules/d3-shape/src/array.js ***!
20895 \********************************************/
20896/*! exports provided: slice */
20897/***/ (function(module, __webpack_exports__, __webpack_require__) {
20898
20899"use strict";
20900__webpack_require__.r(__webpack_exports__);
20901/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return slice; });
20902var slice = Array.prototype.slice;
20903
20904
20905/***/ }),
20906
20907/***/ "./node_modules/d3-shape/src/constant.js":
20908/*!***********************************************!*\
20909 !*** ./node_modules/d3-shape/src/constant.js ***!
20910 \***********************************************/
20911/*! exports provided: default */
20912/***/ (function(module, __webpack_exports__, __webpack_require__) {
20913
20914"use strict";
20915__webpack_require__.r(__webpack_exports__);
20916/* harmony default export */ __webpack_exports__["default"] = (function(x) {
20917 return function constant() {
20918 return x;
20919 };
20920});
20921
20922
20923/***/ }),
20924
20925/***/ "./node_modules/d3-shape/src/curve/basis.js":
20926/*!**************************************************!*\
20927 !*** ./node_modules/d3-shape/src/curve/basis.js ***!
20928 \**************************************************/
20929/*! exports provided: point, Basis, default */
20930/***/ (function(module, __webpack_exports__, __webpack_require__) {
20931
20932"use strict";
20933__webpack_require__.r(__webpack_exports__);
20934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
20935/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Basis", function() { return Basis; });
20936function point(that, x, y) {
20937 that._context.bezierCurveTo(
20938 (2 * that._x0 + that._x1) / 3,
20939 (2 * that._y0 + that._y1) / 3,
20940 (that._x0 + 2 * that._x1) / 3,
20941 (that._y0 + 2 * that._y1) / 3,
20942 (that._x0 + 4 * that._x1 + x) / 6,
20943 (that._y0 + 4 * that._y1 + y) / 6
20944 );
20945}
20946
20947function Basis(context) {
20948 this._context = context;
20949}
20950
20951Basis.prototype = {
20952 areaStart: function() {
20953 this._line = 0;
20954 },
20955 areaEnd: function() {
20956 this._line = NaN;
20957 },
20958 lineStart: function() {
20959 this._x0 = this._x1 =
20960 this._y0 = this._y1 = NaN;
20961 this._point = 0;
20962 },
20963 lineEnd: function() {
20964 switch (this._point) {
20965 case 3: point(this, this._x1, this._y1); // proceed
20966 case 2: this._context.lineTo(this._x1, this._y1); break;
20967 }
20968 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
20969 this._line = 1 - this._line;
20970 },
20971 point: function(x, y) {
20972 x = +x, y = +y;
20973 switch (this._point) {
20974 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
20975 case 1: this._point = 2; break;
20976 case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed
20977 default: point(this, x, y); break;
20978 }
20979 this._x0 = this._x1, this._x1 = x;
20980 this._y0 = this._y1, this._y1 = y;
20981 }
20982};
20983
20984/* harmony default export */ __webpack_exports__["default"] = (function(context) {
20985 return new Basis(context);
20986});
20987
20988
20989/***/ }),
20990
20991/***/ "./node_modules/d3-shape/src/curve/basisClosed.js":
20992/*!********************************************************!*\
20993 !*** ./node_modules/d3-shape/src/curve/basisClosed.js ***!
20994 \********************************************************/
20995/*! exports provided: default */
20996/***/ (function(module, __webpack_exports__, __webpack_require__) {
20997
20998"use strict";
20999__webpack_require__.r(__webpack_exports__);
21000/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-shape/src/noop.js");
21001/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-shape/src/curve/basis.js");
21002
21003
21004
21005function BasisClosed(context) {
21006 this._context = context;
21007}
21008
21009BasisClosed.prototype = {
21010 areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
21011 areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
21012 lineStart: function() {
21013 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
21014 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
21015 this._point = 0;
21016 },
21017 lineEnd: function() {
21018 switch (this._point) {
21019 case 1: {
21020 this._context.moveTo(this._x2, this._y2);
21021 this._context.closePath();
21022 break;
21023 }
21024 case 2: {
21025 this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
21026 this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
21027 this._context.closePath();
21028 break;
21029 }
21030 case 3: {
21031 this.point(this._x2, this._y2);
21032 this.point(this._x3, this._y3);
21033 this.point(this._x4, this._y4);
21034 break;
21035 }
21036 }
21037 },
21038 point: function(x, y) {
21039 x = +x, y = +y;
21040 switch (this._point) {
21041 case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
21042 case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
21043 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;
21044 default: Object(_basis_js__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
21045 }
21046 this._x0 = this._x1, this._x1 = x;
21047 this._y0 = this._y1, this._y1 = y;
21048 }
21049};
21050
21051/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21052 return new BasisClosed(context);
21053});
21054
21055
21056/***/ }),
21057
21058/***/ "./node_modules/d3-shape/src/curve/basisOpen.js":
21059/*!******************************************************!*\
21060 !*** ./node_modules/d3-shape/src/curve/basisOpen.js ***!
21061 \******************************************************/
21062/*! exports provided: default */
21063/***/ (function(module, __webpack_exports__, __webpack_require__) {
21064
21065"use strict";
21066__webpack_require__.r(__webpack_exports__);
21067/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-shape/src/curve/basis.js");
21068
21069
21070function BasisOpen(context) {
21071 this._context = context;
21072}
21073
21074BasisOpen.prototype = {
21075 areaStart: function() {
21076 this._line = 0;
21077 },
21078 areaEnd: function() {
21079 this._line = NaN;
21080 },
21081 lineStart: function() {
21082 this._x0 = this._x1 =
21083 this._y0 = this._y1 = NaN;
21084 this._point = 0;
21085 },
21086 lineEnd: function() {
21087 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
21088 this._line = 1 - this._line;
21089 },
21090 point: function(x, y) {
21091 x = +x, y = +y;
21092 switch (this._point) {
21093 case 0: this._point = 1; break;
21094 case 1: this._point = 2; break;
21095 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;
21096 case 3: this._point = 4; // proceed
21097 default: Object(_basis_js__WEBPACK_IMPORTED_MODULE_0__["point"])(this, x, y); break;
21098 }
21099 this._x0 = this._x1, this._x1 = x;
21100 this._y0 = this._y1, this._y1 = y;
21101 }
21102};
21103
21104/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21105 return new BasisOpen(context);
21106});
21107
21108
21109/***/ }),
21110
21111/***/ "./node_modules/d3-shape/src/curve/bundle.js":
21112/*!***************************************************!*\
21113 !*** ./node_modules/d3-shape/src/curve/bundle.js ***!
21114 \***************************************************/
21115/*! exports provided: default */
21116/***/ (function(module, __webpack_exports__, __webpack_require__) {
21117
21118"use strict";
21119__webpack_require__.r(__webpack_exports__);
21120/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-shape/src/curve/basis.js");
21121
21122
21123function Bundle(context, beta) {
21124 this._basis = new _basis_js__WEBPACK_IMPORTED_MODULE_0__["Basis"](context);
21125 this._beta = beta;
21126}
21127
21128Bundle.prototype = {
21129 lineStart: function() {
21130 this._x = [];
21131 this._y = [];
21132 this._basis.lineStart();
21133 },
21134 lineEnd: function() {
21135 var x = this._x,
21136 y = this._y,
21137 j = x.length - 1;
21138
21139 if (j > 0) {
21140 var x0 = x[0],
21141 y0 = y[0],
21142 dx = x[j] - x0,
21143 dy = y[j] - y0,
21144 i = -1,
21145 t;
21146
21147 while (++i <= j) {
21148 t = i / j;
21149 this._basis.point(
21150 this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
21151 this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
21152 );
21153 }
21154 }
21155
21156 this._x = this._y = null;
21157 this._basis.lineEnd();
21158 },
21159 point: function(x, y) {
21160 this._x.push(+x);
21161 this._y.push(+y);
21162 }
21163};
21164
21165/* harmony default export */ __webpack_exports__["default"] = ((function custom(beta) {
21166
21167 function bundle(context) {
21168 return beta === 1 ? new _basis_js__WEBPACK_IMPORTED_MODULE_0__["Basis"](context) : new Bundle(context, beta);
21169 }
21170
21171 bundle.beta = function(beta) {
21172 return custom(+beta);
21173 };
21174
21175 return bundle;
21176})(0.85));
21177
21178
21179/***/ }),
21180
21181/***/ "./node_modules/d3-shape/src/curve/cardinal.js":
21182/*!*****************************************************!*\
21183 !*** ./node_modules/d3-shape/src/curve/cardinal.js ***!
21184 \*****************************************************/
21185/*! exports provided: point, Cardinal, default */
21186/***/ (function(module, __webpack_exports__, __webpack_require__) {
21187
21188"use strict";
21189__webpack_require__.r(__webpack_exports__);
21190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
21191/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Cardinal", function() { return Cardinal; });
21192function point(that, x, y) {
21193 that._context.bezierCurveTo(
21194 that._x1 + that._k * (that._x2 - that._x0),
21195 that._y1 + that._k * (that._y2 - that._y0),
21196 that._x2 + that._k * (that._x1 - x),
21197 that._y2 + that._k * (that._y1 - y),
21198 that._x2,
21199 that._y2
21200 );
21201}
21202
21203function Cardinal(context, tension) {
21204 this._context = context;
21205 this._k = (1 - tension) / 6;
21206}
21207
21208Cardinal.prototype = {
21209 areaStart: function() {
21210 this._line = 0;
21211 },
21212 areaEnd: function() {
21213 this._line = NaN;
21214 },
21215 lineStart: function() {
21216 this._x0 = this._x1 = this._x2 =
21217 this._y0 = this._y1 = this._y2 = NaN;
21218 this._point = 0;
21219 },
21220 lineEnd: function() {
21221 switch (this._point) {
21222 case 2: this._context.lineTo(this._x2, this._y2); break;
21223 case 3: point(this, this._x1, this._y1); break;
21224 }
21225 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
21226 this._line = 1 - this._line;
21227 },
21228 point: function(x, y) {
21229 x = +x, y = +y;
21230 switch (this._point) {
21231 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
21232 case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
21233 case 2: this._point = 3; // proceed
21234 default: point(this, x, y); break;
21235 }
21236 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
21237 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
21238 }
21239};
21240
21241/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
21242
21243 function cardinal(context) {
21244 return new Cardinal(context, tension);
21245 }
21246
21247 cardinal.tension = function(tension) {
21248 return custom(+tension);
21249 };
21250
21251 return cardinal;
21252})(0));
21253
21254
21255/***/ }),
21256
21257/***/ "./node_modules/d3-shape/src/curve/cardinalClosed.js":
21258/*!***********************************************************!*\
21259 !*** ./node_modules/d3-shape/src/curve/cardinalClosed.js ***!
21260 \***********************************************************/
21261/*! exports provided: CardinalClosed, default */
21262/***/ (function(module, __webpack_exports__, __webpack_require__) {
21263
21264"use strict";
21265__webpack_require__.r(__webpack_exports__);
21266/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardinalClosed", function() { return CardinalClosed; });
21267/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-shape/src/noop.js");
21268/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal.js */ "./node_modules/d3-shape/src/curve/cardinal.js");
21269
21270
21271
21272function CardinalClosed(context, tension) {
21273 this._context = context;
21274 this._k = (1 - tension) / 6;
21275}
21276
21277CardinalClosed.prototype = {
21278 areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
21279 areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
21280 lineStart: function() {
21281 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
21282 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
21283 this._point = 0;
21284 },
21285 lineEnd: function() {
21286 switch (this._point) {
21287 case 1: {
21288 this._context.moveTo(this._x3, this._y3);
21289 this._context.closePath();
21290 break;
21291 }
21292 case 2: {
21293 this._context.lineTo(this._x3, this._y3);
21294 this._context.closePath();
21295 break;
21296 }
21297 case 3: {
21298 this.point(this._x3, this._y3);
21299 this.point(this._x4, this._y4);
21300 this.point(this._x5, this._y5);
21301 break;
21302 }
21303 }
21304 },
21305 point: function(x, y) {
21306 x = +x, y = +y;
21307 switch (this._point) {
21308 case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
21309 case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
21310 case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
21311 default: Object(_cardinal_js__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
21312 }
21313 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
21314 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
21315 }
21316};
21317
21318/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
21319
21320 function cardinal(context) {
21321 return new CardinalClosed(context, tension);
21322 }
21323
21324 cardinal.tension = function(tension) {
21325 return custom(+tension);
21326 };
21327
21328 return cardinal;
21329})(0));
21330
21331
21332/***/ }),
21333
21334/***/ "./node_modules/d3-shape/src/curve/cardinalOpen.js":
21335/*!*********************************************************!*\
21336 !*** ./node_modules/d3-shape/src/curve/cardinalOpen.js ***!
21337 \*********************************************************/
21338/*! exports provided: CardinalOpen, default */
21339/***/ (function(module, __webpack_exports__, __webpack_require__) {
21340
21341"use strict";
21342__webpack_require__.r(__webpack_exports__);
21343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardinalOpen", function() { return CardinalOpen; });
21344/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinal.js */ "./node_modules/d3-shape/src/curve/cardinal.js");
21345
21346
21347function CardinalOpen(context, tension) {
21348 this._context = context;
21349 this._k = (1 - tension) / 6;
21350}
21351
21352CardinalOpen.prototype = {
21353 areaStart: function() {
21354 this._line = 0;
21355 },
21356 areaEnd: function() {
21357 this._line = NaN;
21358 },
21359 lineStart: function() {
21360 this._x0 = this._x1 = this._x2 =
21361 this._y0 = this._y1 = this._y2 = NaN;
21362 this._point = 0;
21363 },
21364 lineEnd: function() {
21365 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
21366 this._line = 1 - this._line;
21367 },
21368 point: function(x, y) {
21369 x = +x, y = +y;
21370 switch (this._point) {
21371 case 0: this._point = 1; break;
21372 case 1: this._point = 2; break;
21373 case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
21374 case 3: this._point = 4; // proceed
21375 default: Object(_cardinal_js__WEBPACK_IMPORTED_MODULE_0__["point"])(this, x, y); break;
21376 }
21377 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
21378 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
21379 }
21380};
21381
21382/* harmony default export */ __webpack_exports__["default"] = ((function custom(tension) {
21383
21384 function cardinal(context) {
21385 return new CardinalOpen(context, tension);
21386 }
21387
21388 cardinal.tension = function(tension) {
21389 return custom(+tension);
21390 };
21391
21392 return cardinal;
21393})(0));
21394
21395
21396/***/ }),
21397
21398/***/ "./node_modules/d3-shape/src/curve/catmullRom.js":
21399/*!*******************************************************!*\
21400 !*** ./node_modules/d3-shape/src/curve/catmullRom.js ***!
21401 \*******************************************************/
21402/*! exports provided: point, default */
21403/***/ (function(module, __webpack_exports__, __webpack_require__) {
21404
21405"use strict";
21406__webpack_require__.r(__webpack_exports__);
21407/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
21408/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-shape/src/math.js");
21409/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal.js */ "./node_modules/d3-shape/src/curve/cardinal.js");
21410
21411
21412
21413function point(that, x, y) {
21414 var x1 = that._x1,
21415 y1 = that._y1,
21416 x2 = that._x2,
21417 y2 = that._y2;
21418
21419 if (that._l01_a > _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) {
21420 var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
21421 n = 3 * that._l01_a * (that._l01_a + that._l12_a);
21422 x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
21423 y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
21424 }
21425
21426 if (that._l23_a > _math_js__WEBPACK_IMPORTED_MODULE_0__["epsilon"]) {
21427 var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
21428 m = 3 * that._l23_a * (that._l23_a + that._l12_a);
21429 x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
21430 y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
21431 }
21432
21433 that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
21434}
21435
21436function CatmullRom(context, alpha) {
21437 this._context = context;
21438 this._alpha = alpha;
21439}
21440
21441CatmullRom.prototype = {
21442 areaStart: function() {
21443 this._line = 0;
21444 },
21445 areaEnd: function() {
21446 this._line = NaN;
21447 },
21448 lineStart: function() {
21449 this._x0 = this._x1 = this._x2 =
21450 this._y0 = this._y1 = this._y2 = NaN;
21451 this._l01_a = this._l12_a = this._l23_a =
21452 this._l01_2a = this._l12_2a = this._l23_2a =
21453 this._point = 0;
21454 },
21455 lineEnd: function() {
21456 switch (this._point) {
21457 case 2: this._context.lineTo(this._x2, this._y2); break;
21458 case 3: this.point(this._x2, this._y2); break;
21459 }
21460 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
21461 this._line = 1 - this._line;
21462 },
21463 point: function(x, y) {
21464 x = +x, y = +y;
21465
21466 if (this._point) {
21467 var x23 = this._x2 - x,
21468 y23 = this._y2 - y;
21469 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
21470 }
21471
21472 switch (this._point) {
21473 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
21474 case 1: this._point = 2; break;
21475 case 2: this._point = 3; // proceed
21476 default: point(this, x, y); break;
21477 }
21478
21479 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
21480 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
21481 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
21482 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
21483 }
21484};
21485
21486/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
21487
21488 function catmullRom(context) {
21489 return alpha ? new CatmullRom(context, alpha) : new _cardinal_js__WEBPACK_IMPORTED_MODULE_1__["Cardinal"](context, 0);
21490 }
21491
21492 catmullRom.alpha = function(alpha) {
21493 return custom(+alpha);
21494 };
21495
21496 return catmullRom;
21497})(0.5));
21498
21499
21500/***/ }),
21501
21502/***/ "./node_modules/d3-shape/src/curve/catmullRomClosed.js":
21503/*!*************************************************************!*\
21504 !*** ./node_modules/d3-shape/src/curve/catmullRomClosed.js ***!
21505 \*************************************************************/
21506/*! exports provided: default */
21507/***/ (function(module, __webpack_exports__, __webpack_require__) {
21508
21509"use strict";
21510__webpack_require__.r(__webpack_exports__);
21511/* harmony import */ var _cardinalClosed_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinalClosed.js */ "./node_modules/d3-shape/src/curve/cardinalClosed.js");
21512/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-shape/src/noop.js");
21513/* harmony import */ var _catmullRom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./catmullRom.js */ "./node_modules/d3-shape/src/curve/catmullRom.js");
21514
21515
21516
21517
21518function CatmullRomClosed(context, alpha) {
21519 this._context = context;
21520 this._alpha = alpha;
21521}
21522
21523CatmullRomClosed.prototype = {
21524 areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
21525 areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
21526 lineStart: function() {
21527 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
21528 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
21529 this._l01_a = this._l12_a = this._l23_a =
21530 this._l01_2a = this._l12_2a = this._l23_2a =
21531 this._point = 0;
21532 },
21533 lineEnd: function() {
21534 switch (this._point) {
21535 case 1: {
21536 this._context.moveTo(this._x3, this._y3);
21537 this._context.closePath();
21538 break;
21539 }
21540 case 2: {
21541 this._context.lineTo(this._x3, this._y3);
21542 this._context.closePath();
21543 break;
21544 }
21545 case 3: {
21546 this.point(this._x3, this._y3);
21547 this.point(this._x4, this._y4);
21548 this.point(this._x5, this._y5);
21549 break;
21550 }
21551 }
21552 },
21553 point: function(x, y) {
21554 x = +x, y = +y;
21555
21556 if (this._point) {
21557 var x23 = this._x2 - x,
21558 y23 = this._y2 - y;
21559 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
21560 }
21561
21562 switch (this._point) {
21563 case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
21564 case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
21565 case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
21566 default: Object(_catmullRom_js__WEBPACK_IMPORTED_MODULE_2__["point"])(this, x, y); break;
21567 }
21568
21569 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
21570 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
21571 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
21572 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
21573 }
21574};
21575
21576/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
21577
21578 function catmullRom(context) {
21579 return alpha ? new CatmullRomClosed(context, alpha) : new _cardinalClosed_js__WEBPACK_IMPORTED_MODULE_0__["CardinalClosed"](context, 0);
21580 }
21581
21582 catmullRom.alpha = function(alpha) {
21583 return custom(+alpha);
21584 };
21585
21586 return catmullRom;
21587})(0.5));
21588
21589
21590/***/ }),
21591
21592/***/ "./node_modules/d3-shape/src/curve/catmullRomOpen.js":
21593/*!***********************************************************!*\
21594 !*** ./node_modules/d3-shape/src/curve/catmullRomOpen.js ***!
21595 \***********************************************************/
21596/*! exports provided: default */
21597/***/ (function(module, __webpack_exports__, __webpack_require__) {
21598
21599"use strict";
21600__webpack_require__.r(__webpack_exports__);
21601/* harmony import */ var _cardinalOpen_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinalOpen.js */ "./node_modules/d3-shape/src/curve/cardinalOpen.js");
21602/* harmony import */ var _catmullRom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./catmullRom.js */ "./node_modules/d3-shape/src/curve/catmullRom.js");
21603
21604
21605
21606function CatmullRomOpen(context, alpha) {
21607 this._context = context;
21608 this._alpha = alpha;
21609}
21610
21611CatmullRomOpen.prototype = {
21612 areaStart: function() {
21613 this._line = 0;
21614 },
21615 areaEnd: function() {
21616 this._line = NaN;
21617 },
21618 lineStart: function() {
21619 this._x0 = this._x1 = this._x2 =
21620 this._y0 = this._y1 = this._y2 = NaN;
21621 this._l01_a = this._l12_a = this._l23_a =
21622 this._l01_2a = this._l12_2a = this._l23_2a =
21623 this._point = 0;
21624 },
21625 lineEnd: function() {
21626 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
21627 this._line = 1 - this._line;
21628 },
21629 point: function(x, y) {
21630 x = +x, y = +y;
21631
21632 if (this._point) {
21633 var x23 = this._x2 - x,
21634 y23 = this._y2 - y;
21635 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
21636 }
21637
21638 switch (this._point) {
21639 case 0: this._point = 1; break;
21640 case 1: this._point = 2; break;
21641 case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
21642 case 3: this._point = 4; // proceed
21643 default: Object(_catmullRom_js__WEBPACK_IMPORTED_MODULE_1__["point"])(this, x, y); break;
21644 }
21645
21646 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
21647 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
21648 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
21649 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
21650 }
21651};
21652
21653/* harmony default export */ __webpack_exports__["default"] = ((function custom(alpha) {
21654
21655 function catmullRom(context) {
21656 return alpha ? new CatmullRomOpen(context, alpha) : new _cardinalOpen_js__WEBPACK_IMPORTED_MODULE_0__["CardinalOpen"](context, 0);
21657 }
21658
21659 catmullRom.alpha = function(alpha) {
21660 return custom(+alpha);
21661 };
21662
21663 return catmullRom;
21664})(0.5));
21665
21666
21667/***/ }),
21668
21669/***/ "./node_modules/d3-shape/src/curve/linear.js":
21670/*!***************************************************!*\
21671 !*** ./node_modules/d3-shape/src/curve/linear.js ***!
21672 \***************************************************/
21673/*! exports provided: default */
21674/***/ (function(module, __webpack_exports__, __webpack_require__) {
21675
21676"use strict";
21677__webpack_require__.r(__webpack_exports__);
21678function Linear(context) {
21679 this._context = context;
21680}
21681
21682Linear.prototype = {
21683 areaStart: function() {
21684 this._line = 0;
21685 },
21686 areaEnd: function() {
21687 this._line = NaN;
21688 },
21689 lineStart: function() {
21690 this._point = 0;
21691 },
21692 lineEnd: function() {
21693 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
21694 this._line = 1 - this._line;
21695 },
21696 point: function(x, y) {
21697 x = +x, y = +y;
21698 switch (this._point) {
21699 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
21700 case 1: this._point = 2; // proceed
21701 default: this._context.lineTo(x, y); break;
21702 }
21703 }
21704};
21705
21706/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21707 return new Linear(context);
21708});
21709
21710
21711/***/ }),
21712
21713/***/ "./node_modules/d3-shape/src/curve/linearClosed.js":
21714/*!*********************************************************!*\
21715 !*** ./node_modules/d3-shape/src/curve/linearClosed.js ***!
21716 \*********************************************************/
21717/*! exports provided: default */
21718/***/ (function(module, __webpack_exports__, __webpack_require__) {
21719
21720"use strict";
21721__webpack_require__.r(__webpack_exports__);
21722/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-shape/src/noop.js");
21723
21724
21725function LinearClosed(context) {
21726 this._context = context;
21727}
21728
21729LinearClosed.prototype = {
21730 areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
21731 areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
21732 lineStart: function() {
21733 this._point = 0;
21734 },
21735 lineEnd: function() {
21736 if (this._point) this._context.closePath();
21737 },
21738 point: function(x, y) {
21739 x = +x, y = +y;
21740 if (this._point) this._context.lineTo(x, y);
21741 else this._point = 1, this._context.moveTo(x, y);
21742 }
21743};
21744
21745/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21746 return new LinearClosed(context);
21747});
21748
21749
21750/***/ }),
21751
21752/***/ "./node_modules/d3-shape/src/curve/monotone.js":
21753/*!*****************************************************!*\
21754 !*** ./node_modules/d3-shape/src/curve/monotone.js ***!
21755 \*****************************************************/
21756/*! exports provided: monotoneX, monotoneY */
21757/***/ (function(module, __webpack_exports__, __webpack_require__) {
21758
21759"use strict";
21760__webpack_require__.r(__webpack_exports__);
21761/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monotoneX", function() { return monotoneX; });
21762/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monotoneY", function() { return monotoneY; });
21763function sign(x) {
21764 return x < 0 ? -1 : 1;
21765}
21766
21767// Calculate the slopes of the tangents (Hermite-type interpolation) based on
21768// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
21769// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
21770// NOV(II), P. 443, 1990.
21771function slope3(that, x2, y2) {
21772 var h0 = that._x1 - that._x0,
21773 h1 = x2 - that._x1,
21774 s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
21775 s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
21776 p = (s0 * h1 + s1 * h0) / (h0 + h1);
21777 return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
21778}
21779
21780// Calculate a one-sided slope.
21781function slope2(that, t) {
21782 var h = that._x1 - that._x0;
21783 return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
21784}
21785
21786// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
21787// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
21788// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
21789function point(that, t0, t1) {
21790 var x0 = that._x0,
21791 y0 = that._y0,
21792 x1 = that._x1,
21793 y1 = that._y1,
21794 dx = (x1 - x0) / 3;
21795 that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
21796}
21797
21798function MonotoneX(context) {
21799 this._context = context;
21800}
21801
21802MonotoneX.prototype = {
21803 areaStart: function() {
21804 this._line = 0;
21805 },
21806 areaEnd: function() {
21807 this._line = NaN;
21808 },
21809 lineStart: function() {
21810 this._x0 = this._x1 =
21811 this._y0 = this._y1 =
21812 this._t0 = NaN;
21813 this._point = 0;
21814 },
21815 lineEnd: function() {
21816 switch (this._point) {
21817 case 2: this._context.lineTo(this._x1, this._y1); break;
21818 case 3: point(this, this._t0, slope2(this, this._t0)); break;
21819 }
21820 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
21821 this._line = 1 - this._line;
21822 },
21823 point: function(x, y) {
21824 var t1 = NaN;
21825
21826 x = +x, y = +y;
21827 if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
21828 switch (this._point) {
21829 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
21830 case 1: this._point = 2; break;
21831 case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
21832 default: point(this, this._t0, t1 = slope3(this, x, y)); break;
21833 }
21834
21835 this._x0 = this._x1, this._x1 = x;
21836 this._y0 = this._y1, this._y1 = y;
21837 this._t0 = t1;
21838 }
21839}
21840
21841function MonotoneY(context) {
21842 this._context = new ReflectContext(context);
21843}
21844
21845(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
21846 MonotoneX.prototype.point.call(this, y, x);
21847};
21848
21849function ReflectContext(context) {
21850 this._context = context;
21851}
21852
21853ReflectContext.prototype = {
21854 moveTo: function(x, y) { this._context.moveTo(y, x); },
21855 closePath: function() { this._context.closePath(); },
21856 lineTo: function(x, y) { this._context.lineTo(y, x); },
21857 bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
21858};
21859
21860function monotoneX(context) {
21861 return new MonotoneX(context);
21862}
21863
21864function monotoneY(context) {
21865 return new MonotoneY(context);
21866}
21867
21868
21869/***/ }),
21870
21871/***/ "./node_modules/d3-shape/src/curve/natural.js":
21872/*!****************************************************!*\
21873 !*** ./node_modules/d3-shape/src/curve/natural.js ***!
21874 \****************************************************/
21875/*! exports provided: default */
21876/***/ (function(module, __webpack_exports__, __webpack_require__) {
21877
21878"use strict";
21879__webpack_require__.r(__webpack_exports__);
21880function Natural(context) {
21881 this._context = context;
21882}
21883
21884Natural.prototype = {
21885 areaStart: function() {
21886 this._line = 0;
21887 },
21888 areaEnd: function() {
21889 this._line = NaN;
21890 },
21891 lineStart: function() {
21892 this._x = [];
21893 this._y = [];
21894 },
21895 lineEnd: function() {
21896 var x = this._x,
21897 y = this._y,
21898 n = x.length;
21899
21900 if (n) {
21901 this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
21902 if (n === 2) {
21903 this._context.lineTo(x[1], y[1]);
21904 } else {
21905 var px = controlPoints(x),
21906 py = controlPoints(y);
21907 for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
21908 this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
21909 }
21910 }
21911 }
21912
21913 if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
21914 this._line = 1 - this._line;
21915 this._x = this._y = null;
21916 },
21917 point: function(x, y) {
21918 this._x.push(+x);
21919 this._y.push(+y);
21920 }
21921};
21922
21923// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
21924function controlPoints(x) {
21925 var i,
21926 n = x.length - 1,
21927 m,
21928 a = new Array(n),
21929 b = new Array(n),
21930 r = new Array(n);
21931 a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
21932 for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
21933 a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
21934 for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
21935 a[n - 1] = r[n - 1] / b[n - 1];
21936 for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
21937 b[n - 1] = (x[n] + a[n - 1]) / 2;
21938 for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
21939 return [a, b];
21940}
21941
21942/* harmony default export */ __webpack_exports__["default"] = (function(context) {
21943 return new Natural(context);
21944});
21945
21946
21947/***/ }),
21948
21949/***/ "./node_modules/d3-shape/src/curve/radial.js":
21950/*!***************************************************!*\
21951 !*** ./node_modules/d3-shape/src/curve/radial.js ***!
21952 \***************************************************/
21953/*! exports provided: curveRadialLinear, default */
21954/***/ (function(module, __webpack_exports__, __webpack_require__) {
21955
21956"use strict";
21957__webpack_require__.r(__webpack_exports__);
21958/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "curveRadialLinear", function() { return curveRadialLinear; });
21959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return curveRadial; });
21960/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-shape/src/curve/linear.js");
21961
21962
21963var curveRadialLinear = curveRadial(_linear_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
21964
21965function Radial(curve) {
21966 this._curve = curve;
21967}
21968
21969Radial.prototype = {
21970 areaStart: function() {
21971 this._curve.areaStart();
21972 },
21973 areaEnd: function() {
21974 this._curve.areaEnd();
21975 },
21976 lineStart: function() {
21977 this._curve.lineStart();
21978 },
21979 lineEnd: function() {
21980 this._curve.lineEnd();
21981 },
21982 point: function(a, r) {
21983 this._curve.point(r * Math.sin(a), r * -Math.cos(a));
21984 }
21985};
21986
21987function curveRadial(curve) {
21988
21989 function radial(context) {
21990 return new Radial(curve(context));
21991 }
21992
21993 radial._curve = curve;
21994
21995 return radial;
21996}
21997
21998
21999/***/ }),
22000
22001/***/ "./node_modules/d3-shape/src/curve/step.js":
22002/*!*************************************************!*\
22003 !*** ./node_modules/d3-shape/src/curve/step.js ***!
22004 \*************************************************/
22005/*! exports provided: default, stepBefore, stepAfter */
22006/***/ (function(module, __webpack_exports__, __webpack_require__) {
22007
22008"use strict";
22009__webpack_require__.r(__webpack_exports__);
22010/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stepBefore", function() { return stepBefore; });
22011/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stepAfter", function() { return stepAfter; });
22012function Step(context, t) {
22013 this._context = context;
22014 this._t = t;
22015}
22016
22017Step.prototype = {
22018 areaStart: function() {
22019 this._line = 0;
22020 },
22021 areaEnd: function() {
22022 this._line = NaN;
22023 },
22024 lineStart: function() {
22025 this._x = this._y = NaN;
22026 this._point = 0;
22027 },
22028 lineEnd: function() {
22029 if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
22030 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
22031 if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
22032 },
22033 point: function(x, y) {
22034 x = +x, y = +y;
22035 switch (this._point) {
22036 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
22037 case 1: this._point = 2; // proceed
22038 default: {
22039 if (this._t <= 0) {
22040 this._context.lineTo(this._x, y);
22041 this._context.lineTo(x, y);
22042 } else {
22043 var x1 = this._x * (1 - this._t) + x * this._t;
22044 this._context.lineTo(x1, this._y);
22045 this._context.lineTo(x1, y);
22046 }
22047 break;
22048 }
22049 }
22050 this._x = x, this._y = y;
22051 }
22052};
22053
22054/* harmony default export */ __webpack_exports__["default"] = (function(context) {
22055 return new Step(context, 0.5);
22056});
22057
22058function stepBefore(context) {
22059 return new Step(context, 0);
22060}
22061
22062function stepAfter(context) {
22063 return new Step(context, 1);
22064}
22065
22066
22067/***/ }),
22068
22069/***/ "./node_modules/d3-shape/src/descending.js":
22070/*!*************************************************!*\
22071 !*** ./node_modules/d3-shape/src/descending.js ***!
22072 \*************************************************/
22073/*! exports provided: default */
22074/***/ (function(module, __webpack_exports__, __webpack_require__) {
22075
22076"use strict";
22077__webpack_require__.r(__webpack_exports__);
22078/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
22079 return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
22080});
22081
22082
22083/***/ }),
22084
22085/***/ "./node_modules/d3-shape/src/identity.js":
22086/*!***********************************************!*\
22087 !*** ./node_modules/d3-shape/src/identity.js ***!
22088 \***********************************************/
22089/*! exports provided: default */
22090/***/ (function(module, __webpack_exports__, __webpack_require__) {
22091
22092"use strict";
22093__webpack_require__.r(__webpack_exports__);
22094/* harmony default export */ __webpack_exports__["default"] = (function(d) {
22095 return d;
22096});
22097
22098
22099/***/ }),
22100
22101/***/ "./node_modules/d3-shape/src/index.js":
22102/*!********************************************!*\
22103 !*** ./node_modules/d3-shape/src/index.js ***!
22104 \********************************************/
22105/*! 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, stackOrderAppearance, stackOrderAscending, stackOrderDescending, stackOrderInsideOut, stackOrderNone, stackOrderReverse */
22106/***/ (function(module, __webpack_exports__, __webpack_require__) {
22107
22108"use strict";
22109__webpack_require__.r(__webpack_exports__);
22110/* harmony import */ var _arc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arc.js */ "./node_modules/d3-shape/src/arc.js");
22111/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arc", function() { return _arc_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
22112
22113/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-shape/src/area.js");
22114/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "area", function() { return _area_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
22115
22116/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line.js */ "./node_modules/d3-shape/src/line.js");
22117/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "line", function() { return _line_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
22118
22119/* harmony import */ var _pie_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pie.js */ "./node_modules/d3-shape/src/pie.js");
22120/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pie", function() { return _pie_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
22121
22122/* harmony import */ var _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./areaRadial.js */ "./node_modules/d3-shape/src/areaRadial.js");
22123/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "areaRadial", function() { return _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
22124
22125/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialArea", function() { return _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
22126
22127/* harmony import */ var _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lineRadial.js */ "./node_modules/d3-shape/src/lineRadial.js");
22128/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });
22129
22130/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialLine", function() { return _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });
22131
22132/* harmony import */ var _pointRadial_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pointRadial.js */ "./node_modules/d3-shape/src/pointRadial.js");
22133/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pointRadial", function() { return _pointRadial_js__WEBPACK_IMPORTED_MODULE_6__["default"]; });
22134
22135/* harmony import */ var _link_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./link/index.js */ "./node_modules/d3-shape/src/link/index.js");
22136/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return _link_index_js__WEBPACK_IMPORTED_MODULE_7__["linkHorizontal"]; });
22137
22138/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return _link_index_js__WEBPACK_IMPORTED_MODULE_7__["linkVertical"]; });
22139
22140/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return _link_index_js__WEBPACK_IMPORTED_MODULE_7__["linkRadial"]; });
22141
22142/* harmony import */ var _symbol_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./symbol.js */ "./node_modules/d3-shape/src/symbol.js");
22143/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbol", function() { return _symbol_js__WEBPACK_IMPORTED_MODULE_8__["default"]; });
22144
22145/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return _symbol_js__WEBPACK_IMPORTED_MODULE_8__["symbols"]; });
22146
22147/* harmony import */ var _symbol_circle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./symbol/circle.js */ "./node_modules/d3-shape/src/symbol/circle.js");
22148/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCircle", function() { return _symbol_circle_js__WEBPACK_IMPORTED_MODULE_9__["default"]; });
22149
22150/* harmony import */ var _symbol_cross_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./symbol/cross.js */ "./node_modules/d3-shape/src/symbol/cross.js");
22151/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCross", function() { return _symbol_cross_js__WEBPACK_IMPORTED_MODULE_10__["default"]; });
22152
22153/* harmony import */ var _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./symbol/diamond.js */ "./node_modules/d3-shape/src/symbol/diamond.js");
22154/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolDiamond", function() { return _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_11__["default"]; });
22155
22156/* harmony import */ var _symbol_square_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./symbol/square.js */ "./node_modules/d3-shape/src/symbol/square.js");
22157/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolSquare", function() { return _symbol_square_js__WEBPACK_IMPORTED_MODULE_12__["default"]; });
22158
22159/* harmony import */ var _symbol_star_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./symbol/star.js */ "./node_modules/d3-shape/src/symbol/star.js");
22160/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolStar", function() { return _symbol_star_js__WEBPACK_IMPORTED_MODULE_13__["default"]; });
22161
22162/* harmony import */ var _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./symbol/triangle.js */ "./node_modules/d3-shape/src/symbol/triangle.js");
22163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolTriangle", function() { return _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_14__["default"]; });
22164
22165/* harmony import */ var _symbol_wye_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./symbol/wye.js */ "./node_modules/d3-shape/src/symbol/wye.js");
22166/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolWye", function() { return _symbol_wye_js__WEBPACK_IMPORTED_MODULE_15__["default"]; });
22167
22168/* harmony import */ var _curve_basisClosed_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./curve/basisClosed.js */ "./node_modules/d3-shape/src/curve/basisClosed.js");
22169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisClosed", function() { return _curve_basisClosed_js__WEBPACK_IMPORTED_MODULE_16__["default"]; });
22170
22171/* harmony import */ var _curve_basisOpen_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./curve/basisOpen.js */ "./node_modules/d3-shape/src/curve/basisOpen.js");
22172/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisOpen", function() { return _curve_basisOpen_js__WEBPACK_IMPORTED_MODULE_17__["default"]; });
22173
22174/* harmony import */ var _curve_basis_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./curve/basis.js */ "./node_modules/d3-shape/src/curve/basis.js");
22175/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasis", function() { return _curve_basis_js__WEBPACK_IMPORTED_MODULE_18__["default"]; });
22176
22177/* harmony import */ var _curve_bundle_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./curve/bundle.js */ "./node_modules/d3-shape/src/curve/bundle.js");
22178/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBundle", function() { return _curve_bundle_js__WEBPACK_IMPORTED_MODULE_19__["default"]; });
22179
22180/* harmony import */ var _curve_cardinalClosed_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./curve/cardinalClosed.js */ "./node_modules/d3-shape/src/curve/cardinalClosed.js");
22181/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalClosed", function() { return _curve_cardinalClosed_js__WEBPACK_IMPORTED_MODULE_20__["default"]; });
22182
22183/* harmony import */ var _curve_cardinalOpen_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./curve/cardinalOpen.js */ "./node_modules/d3-shape/src/curve/cardinalOpen.js");
22184/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalOpen", function() { return _curve_cardinalOpen_js__WEBPACK_IMPORTED_MODULE_21__["default"]; });
22185
22186/* harmony import */ var _curve_cardinal_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./curve/cardinal.js */ "./node_modules/d3-shape/src/curve/cardinal.js");
22187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinal", function() { return _curve_cardinal_js__WEBPACK_IMPORTED_MODULE_22__["default"]; });
22188
22189/* harmony import */ var _curve_catmullRomClosed_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./curve/catmullRomClosed.js */ "./node_modules/d3-shape/src/curve/catmullRomClosed.js");
22190/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomClosed", function() { return _curve_catmullRomClosed_js__WEBPACK_IMPORTED_MODULE_23__["default"]; });
22191
22192/* harmony import */ var _curve_catmullRomOpen_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./curve/catmullRomOpen.js */ "./node_modules/d3-shape/src/curve/catmullRomOpen.js");
22193/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomOpen", function() { return _curve_catmullRomOpen_js__WEBPACK_IMPORTED_MODULE_24__["default"]; });
22194
22195/* harmony import */ var _curve_catmullRom_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./curve/catmullRom.js */ "./node_modules/d3-shape/src/curve/catmullRom.js");
22196/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRom", function() { return _curve_catmullRom_js__WEBPACK_IMPORTED_MODULE_25__["default"]; });
22197
22198/* harmony import */ var _curve_linearClosed_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./curve/linearClosed.js */ "./node_modules/d3-shape/src/curve/linearClosed.js");
22199/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinearClosed", function() { return _curve_linearClosed_js__WEBPACK_IMPORTED_MODULE_26__["default"]; });
22200
22201/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./curve/linear.js */ "./node_modules/d3-shape/src/curve/linear.js");
22202/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinear", function() { return _curve_linear_js__WEBPACK_IMPORTED_MODULE_27__["default"]; });
22203
22204/* harmony import */ var _curve_monotone_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./curve/monotone.js */ "./node_modules/d3-shape/src/curve/monotone.js");
22205/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneX", function() { return _curve_monotone_js__WEBPACK_IMPORTED_MODULE_28__["monotoneX"]; });
22206
22207/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneY", function() { return _curve_monotone_js__WEBPACK_IMPORTED_MODULE_28__["monotoneY"]; });
22208
22209/* harmony import */ var _curve_natural_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./curve/natural.js */ "./node_modules/d3-shape/src/curve/natural.js");
22210/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveNatural", function() { return _curve_natural_js__WEBPACK_IMPORTED_MODULE_29__["default"]; });
22211
22212/* harmony import */ var _curve_step_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./curve/step.js */ "./node_modules/d3-shape/src/curve/step.js");
22213/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStep", function() { return _curve_step_js__WEBPACK_IMPORTED_MODULE_30__["default"]; });
22214
22215/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepAfter", function() { return _curve_step_js__WEBPACK_IMPORTED_MODULE_30__["stepAfter"]; });
22216
22217/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepBefore", function() { return _curve_step_js__WEBPACK_IMPORTED_MODULE_30__["stepBefore"]; });
22218
22219/* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./stack.js */ "./node_modules/d3-shape/src/stack.js");
22220/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stack", function() { return _stack_js__WEBPACK_IMPORTED_MODULE_31__["default"]; });
22221
22222/* harmony import */ var _offset_expand_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./offset/expand.js */ "./node_modules/d3-shape/src/offset/expand.js");
22223/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetExpand", function() { return _offset_expand_js__WEBPACK_IMPORTED_MODULE_32__["default"]; });
22224
22225/* harmony import */ var _offset_diverging_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./offset/diverging.js */ "./node_modules/d3-shape/src/offset/diverging.js");
22226/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetDiverging", function() { return _offset_diverging_js__WEBPACK_IMPORTED_MODULE_33__["default"]; });
22227
22228/* harmony import */ var _offset_none_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./offset/none.js */ "./node_modules/d3-shape/src/offset/none.js");
22229/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetNone", function() { return _offset_none_js__WEBPACK_IMPORTED_MODULE_34__["default"]; });
22230
22231/* harmony import */ var _offset_silhouette_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./offset/silhouette.js */ "./node_modules/d3-shape/src/offset/silhouette.js");
22232/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetSilhouette", function() { return _offset_silhouette_js__WEBPACK_IMPORTED_MODULE_35__["default"]; });
22233
22234/* harmony import */ var _offset_wiggle_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./offset/wiggle.js */ "./node_modules/d3-shape/src/offset/wiggle.js");
22235/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetWiggle", function() { return _offset_wiggle_js__WEBPACK_IMPORTED_MODULE_36__["default"]; });
22236
22237/* harmony import */ var _order_appearance_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./order/appearance.js */ "./node_modules/d3-shape/src/order/appearance.js");
22238/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderAppearance", function() { return _order_appearance_js__WEBPACK_IMPORTED_MODULE_37__["default"]; });
22239
22240/* harmony import */ var _order_ascending_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./order/ascending.js */ "./node_modules/d3-shape/src/order/ascending.js");
22241/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderAscending", function() { return _order_ascending_js__WEBPACK_IMPORTED_MODULE_38__["default"]; });
22242
22243/* harmony import */ var _order_descending_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./order/descending.js */ "./node_modules/d3-shape/src/order/descending.js");
22244/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderDescending", function() { return _order_descending_js__WEBPACK_IMPORTED_MODULE_39__["default"]; });
22245
22246/* harmony import */ var _order_insideOut_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./order/insideOut.js */ "./node_modules/d3-shape/src/order/insideOut.js");
22247/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderInsideOut", function() { return _order_insideOut_js__WEBPACK_IMPORTED_MODULE_40__["default"]; });
22248
22249/* harmony import */ var _order_none_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./order/none.js */ "./node_modules/d3-shape/src/order/none.js");
22250/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderNone", function() { return _order_none_js__WEBPACK_IMPORTED_MODULE_41__["default"]; });
22251
22252/* harmony import */ var _order_reverse_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./order/reverse.js */ "./node_modules/d3-shape/src/order/reverse.js");
22253/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderReverse", function() { return _order_reverse_js__WEBPACK_IMPORTED_MODULE_42__["default"]; });
22254
22255
22256
22257
22258
22259 // Note: radialArea is deprecated!
22260 // Note: radialLine is deprecated!
22261
22262
22263
22264
22265
22266
22267
22268
22269
22270
22271
22272
22273
22274
22275
22276
22277
22278
22279
22280
22281
22282
22283
22284
22285
22286
22287
22288
22289
22290
22291
22292
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303/***/ }),
22304
22305/***/ "./node_modules/d3-shape/src/line.js":
22306/*!*******************************************!*\
22307 !*** ./node_modules/d3-shape/src/line.js ***!
22308 \*******************************************/
22309/*! exports provided: default */
22310/***/ (function(module, __webpack_exports__, __webpack_require__) {
22311
22312"use strict";
22313__webpack_require__.r(__webpack_exports__);
22314/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
22315/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
22316/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curve/linear.js */ "./node_modules/d3-shape/src/curve/linear.js");
22317/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./point.js */ "./node_modules/d3-shape/src/point.js");
22318
22319
22320
22321
22322
22323/* harmony default export */ __webpack_exports__["default"] = (function() {
22324 var x = _point_js__WEBPACK_IMPORTED_MODULE_3__["x"],
22325 y = _point_js__WEBPACK_IMPORTED_MODULE_3__["y"],
22326 defined = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(true),
22327 context = null,
22328 curve = _curve_linear_js__WEBPACK_IMPORTED_MODULE_2__["default"],
22329 output = null;
22330
22331 function line(data) {
22332 var i,
22333 n = data.length,
22334 d,
22335 defined0 = false,
22336 buffer;
22337
22338 if (context == null) output = curve(buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])());
22339
22340 for (i = 0; i <= n; ++i) {
22341 if (!(i < n && defined(d = data[i], i, data)) === defined0) {
22342 if (defined0 = !defined0) output.lineStart();
22343 else output.lineEnd();
22344 }
22345 if (defined0) output.point(+x(d, i, data), +y(d, i, data));
22346 }
22347
22348 if (buffer) return output = null, buffer + "" || null;
22349 }
22350
22351 line.x = function(_) {
22352 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), line) : x;
22353 };
22354
22355 line.y = function(_) {
22356 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), line) : y;
22357 };
22358
22359 line.defined = function(_) {
22360 return arguments.length ? (defined = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), line) : defined;
22361 };
22362
22363 line.curve = function(_) {
22364 return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
22365 };
22366
22367 line.context = function(_) {
22368 return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
22369 };
22370
22371 return line;
22372});
22373
22374
22375/***/ }),
22376
22377/***/ "./node_modules/d3-shape/src/lineRadial.js":
22378/*!*************************************************!*\
22379 !*** ./node_modules/d3-shape/src/lineRadial.js ***!
22380 \*************************************************/
22381/*! exports provided: lineRadial, default */
22382/***/ (function(module, __webpack_exports__, __webpack_require__) {
22383
22384"use strict";
22385__webpack_require__.r(__webpack_exports__);
22386/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return lineRadial; });
22387/* harmony import */ var _curve_radial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial.js */ "./node_modules/d3-shape/src/curve/radial.js");
22388/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./line.js */ "./node_modules/d3-shape/src/line.js");
22389
22390
22391
22392function lineRadial(l) {
22393 var c = l.curve;
22394
22395 l.angle = l.x, delete l.x;
22396 l.radius = l.y, delete l.y;
22397
22398 l.curve = function(_) {
22399 return arguments.length ? c(Object(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_)) : c()._curve;
22400 };
22401
22402 return l;
22403}
22404
22405/* harmony default export */ __webpack_exports__["default"] = (function() {
22406 return lineRadial(Object(_line_js__WEBPACK_IMPORTED_MODULE_1__["default"])().curve(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__["curveRadialLinear"]));
22407});
22408
22409
22410/***/ }),
22411
22412/***/ "./node_modules/d3-shape/src/link/index.js":
22413/*!*************************************************!*\
22414 !*** ./node_modules/d3-shape/src/link/index.js ***!
22415 \*************************************************/
22416/*! exports provided: linkHorizontal, linkVertical, linkRadial */
22417/***/ (function(module, __webpack_exports__, __webpack_require__) {
22418
22419"use strict";
22420__webpack_require__.r(__webpack_exports__);
22421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return linkHorizontal; });
22422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return linkVertical; });
22423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return linkRadial; });
22424/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
22425/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../array.js */ "./node_modules/d3-shape/src/array.js");
22426/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant.js */ "./node_modules/d3-shape/src/constant.js");
22427/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../point.js */ "./node_modules/d3-shape/src/point.js");
22428/* harmony import */ var _pointRadial_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../pointRadial.js */ "./node_modules/d3-shape/src/pointRadial.js");
22429
22430
22431
22432
22433
22434
22435function linkSource(d) {
22436 return d.source;
22437}
22438
22439function linkTarget(d) {
22440 return d.target;
22441}
22442
22443function link(curve) {
22444 var source = linkSource,
22445 target = linkTarget,
22446 x = _point_js__WEBPACK_IMPORTED_MODULE_3__["x"],
22447 y = _point_js__WEBPACK_IMPORTED_MODULE_3__["y"],
22448 context = null;
22449
22450 function link() {
22451 var buffer, argv = _array_js__WEBPACK_IMPORTED_MODULE_1__["slice"].call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);
22452 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
22453 curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));
22454 if (buffer) return context = null, buffer + "" || null;
22455 }
22456
22457 link.source = function(_) {
22458 return arguments.length ? (source = _, link) : source;
22459 };
22460
22461 link.target = function(_) {
22462 return arguments.length ? (target = _, link) : target;
22463 };
22464
22465 link.x = function(_) {
22466 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), link) : x;
22467 };
22468
22469 link.y = function(_) {
22470 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), link) : y;
22471 };
22472
22473 link.context = function(_) {
22474 return arguments.length ? ((context = _ == null ? null : _), link) : context;
22475 };
22476
22477 return link;
22478}
22479
22480function curveHorizontal(context, x0, y0, x1, y1) {
22481 context.moveTo(x0, y0);
22482 context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);
22483}
22484
22485function curveVertical(context, x0, y0, x1, y1) {
22486 context.moveTo(x0, y0);
22487 context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);
22488}
22489
22490function curveRadial(context, x0, y0, x1, y1) {
22491 var p0 = Object(_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, y0),
22492 p1 = Object(_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, y0 = (y0 + y1) / 2),
22493 p2 = Object(_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x1, y0),
22494 p3 = Object(_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x1, y1);
22495 context.moveTo(p0[0], p0[1]);
22496 context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);
22497}
22498
22499function linkHorizontal() {
22500 return link(curveHorizontal);
22501}
22502
22503function linkVertical() {
22504 return link(curveVertical);
22505}
22506
22507function linkRadial() {
22508 var l = link(curveRadial);
22509 l.angle = l.x, delete l.x;
22510 l.radius = l.y, delete l.y;
22511 return l;
22512}
22513
22514
22515/***/ }),
22516
22517/***/ "./node_modules/d3-shape/src/math.js":
22518/*!*******************************************!*\
22519 !*** ./node_modules/d3-shape/src/math.js ***!
22520 \*******************************************/
22521/*! exports provided: abs, atan2, cos, max, min, sin, sqrt, epsilon, pi, halfPi, tau, acos, asin */
22522/***/ (function(module, __webpack_exports__, __webpack_require__) {
22523
22524"use strict";
22525__webpack_require__.r(__webpack_exports__);
22526/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "abs", function() { return abs; });
22527/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "atan2", function() { return atan2; });
22528/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cos", function() { return cos; });
22529/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; });
22530/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; });
22531/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sin", function() { return sin; });
22532/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sqrt", function() { return sqrt; });
22533/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
22534/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pi", function() { return pi; });
22535/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "halfPi", function() { return halfPi; });
22536/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tau", function() { return tau; });
22537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "acos", function() { return acos; });
22538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asin", function() { return asin; });
22539var abs = Math.abs;
22540var atan2 = Math.atan2;
22541var cos = Math.cos;
22542var max = Math.max;
22543var min = Math.min;
22544var sin = Math.sin;
22545var sqrt = Math.sqrt;
22546
22547var epsilon = 1e-12;
22548var pi = Math.PI;
22549var halfPi = pi / 2;
22550var tau = 2 * pi;
22551
22552function acos(x) {
22553 return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
22554}
22555
22556function asin(x) {
22557 return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
22558}
22559
22560
22561/***/ }),
22562
22563/***/ "./node_modules/d3-shape/src/noop.js":
22564/*!*******************************************!*\
22565 !*** ./node_modules/d3-shape/src/noop.js ***!
22566 \*******************************************/
22567/*! exports provided: default */
22568/***/ (function(module, __webpack_exports__, __webpack_require__) {
22569
22570"use strict";
22571__webpack_require__.r(__webpack_exports__);
22572/* harmony default export */ __webpack_exports__["default"] = (function() {});
22573
22574
22575/***/ }),
22576
22577/***/ "./node_modules/d3-shape/src/offset/diverging.js":
22578/*!*******************************************************!*\
22579 !*** ./node_modules/d3-shape/src/offset/diverging.js ***!
22580 \*******************************************************/
22581/*! exports provided: default */
22582/***/ (function(module, __webpack_exports__, __webpack_require__) {
22583
22584"use strict";
22585__webpack_require__.r(__webpack_exports__);
22586/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22587 if (!((n = series.length) > 0)) return;
22588 for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
22589 for (yp = yn = 0, i = 0; i < n; ++i) {
22590 if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
22591 d[0] = yp, d[1] = yp += dy;
22592 } else if (dy < 0) {
22593 d[1] = yn, d[0] = yn += dy;
22594 } else {
22595 d[0] = 0, d[1] = dy;
22596 }
22597 }
22598 }
22599});
22600
22601
22602/***/ }),
22603
22604/***/ "./node_modules/d3-shape/src/offset/expand.js":
22605/*!****************************************************!*\
22606 !*** ./node_modules/d3-shape/src/offset/expand.js ***!
22607 \****************************************************/
22608/*! exports provided: default */
22609/***/ (function(module, __webpack_exports__, __webpack_require__) {
22610
22611"use strict";
22612__webpack_require__.r(__webpack_exports__);
22613/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/offset/none.js");
22614
22615
22616/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22617 if (!((n = series.length) > 0)) return;
22618 for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
22619 for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
22620 if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
22621 }
22622 Object(_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
22623});
22624
22625
22626/***/ }),
22627
22628/***/ "./node_modules/d3-shape/src/offset/none.js":
22629/*!**************************************************!*\
22630 !*** ./node_modules/d3-shape/src/offset/none.js ***!
22631 \**************************************************/
22632/*! exports provided: default */
22633/***/ (function(module, __webpack_exports__, __webpack_require__) {
22634
22635"use strict";
22636__webpack_require__.r(__webpack_exports__);
22637/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22638 if (!((n = series.length) > 1)) return;
22639 for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
22640 s0 = s1, s1 = series[order[i]];
22641 for (j = 0; j < m; ++j) {
22642 s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
22643 }
22644 }
22645});
22646
22647
22648/***/ }),
22649
22650/***/ "./node_modules/d3-shape/src/offset/silhouette.js":
22651/*!********************************************************!*\
22652 !*** ./node_modules/d3-shape/src/offset/silhouette.js ***!
22653 \********************************************************/
22654/*! exports provided: default */
22655/***/ (function(module, __webpack_exports__, __webpack_require__) {
22656
22657"use strict";
22658__webpack_require__.r(__webpack_exports__);
22659/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/offset/none.js");
22660
22661
22662/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22663 if (!((n = series.length) > 0)) return;
22664 for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
22665 for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
22666 s0[j][1] += s0[j][0] = -y / 2;
22667 }
22668 Object(_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
22669});
22670
22671
22672/***/ }),
22673
22674/***/ "./node_modules/d3-shape/src/offset/wiggle.js":
22675/*!****************************************************!*\
22676 !*** ./node_modules/d3-shape/src/offset/wiggle.js ***!
22677 \****************************************************/
22678/*! exports provided: default */
22679/***/ (function(module, __webpack_exports__, __webpack_require__) {
22680
22681"use strict";
22682__webpack_require__.r(__webpack_exports__);
22683/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/offset/none.js");
22684
22685
22686/* harmony default export */ __webpack_exports__["default"] = (function(series, order) {
22687 if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
22688 for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
22689 for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
22690 var si = series[order[i]],
22691 sij0 = si[j][1] || 0,
22692 sij1 = si[j - 1][1] || 0,
22693 s3 = (sij0 - sij1) / 2;
22694 for (var k = 0; k < i; ++k) {
22695 var sk = series[order[k]],
22696 skj0 = sk[j][1] || 0,
22697 skj1 = sk[j - 1][1] || 0;
22698 s3 += skj0 - skj1;
22699 }
22700 s1 += sij0, s2 += s3 * sij0;
22701 }
22702 s0[j - 1][1] += s0[j - 1][0] = y;
22703 if (s1) y -= s2 / s1;
22704 }
22705 s0[j - 1][1] += s0[j - 1][0] = y;
22706 Object(_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
22707});
22708
22709
22710/***/ }),
22711
22712/***/ "./node_modules/d3-shape/src/order/appearance.js":
22713/*!*******************************************************!*\
22714 !*** ./node_modules/d3-shape/src/order/appearance.js ***!
22715 \*******************************************************/
22716/*! exports provided: default */
22717/***/ (function(module, __webpack_exports__, __webpack_require__) {
22718
22719"use strict";
22720__webpack_require__.r(__webpack_exports__);
22721/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/order/none.js");
22722
22723
22724/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22725 var peaks = series.map(peak);
22726 return Object(_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series).sort(function(a, b) { return peaks[a] - peaks[b]; });
22727});
22728
22729function peak(series) {
22730 var i = -1, j = 0, n = series.length, vi, vj = -Infinity;
22731 while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;
22732 return j;
22733}
22734
22735
22736/***/ }),
22737
22738/***/ "./node_modules/d3-shape/src/order/ascending.js":
22739/*!******************************************************!*\
22740 !*** ./node_modules/d3-shape/src/order/ascending.js ***!
22741 \******************************************************/
22742/*! exports provided: default, sum */
22743/***/ (function(module, __webpack_exports__, __webpack_require__) {
22744
22745"use strict";
22746__webpack_require__.r(__webpack_exports__);
22747/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return sum; });
22748/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/order/none.js");
22749
22750
22751/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22752 var sums = series.map(sum);
22753 return Object(_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series).sort(function(a, b) { return sums[a] - sums[b]; });
22754});
22755
22756function sum(series) {
22757 var s = 0, i = -1, n = series.length, v;
22758 while (++i < n) if (v = +series[i][1]) s += v;
22759 return s;
22760}
22761
22762
22763/***/ }),
22764
22765/***/ "./node_modules/d3-shape/src/order/descending.js":
22766/*!*******************************************************!*\
22767 !*** ./node_modules/d3-shape/src/order/descending.js ***!
22768 \*******************************************************/
22769/*! exports provided: default */
22770/***/ (function(module, __webpack_exports__, __webpack_require__) {
22771
22772"use strict";
22773__webpack_require__.r(__webpack_exports__);
22774/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-shape/src/order/ascending.js");
22775
22776
22777/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22778 return Object(_ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series).reverse();
22779});
22780
22781
22782/***/ }),
22783
22784/***/ "./node_modules/d3-shape/src/order/insideOut.js":
22785/*!******************************************************!*\
22786 !*** ./node_modules/d3-shape/src/order/insideOut.js ***!
22787 \******************************************************/
22788/*! exports provided: default */
22789/***/ (function(module, __webpack_exports__, __webpack_require__) {
22790
22791"use strict";
22792__webpack_require__.r(__webpack_exports__);
22793/* harmony import */ var _appearance_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./appearance.js */ "./node_modules/d3-shape/src/order/appearance.js");
22794/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-shape/src/order/ascending.js");
22795
22796
22797
22798/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22799 var n = series.length,
22800 i,
22801 j,
22802 sums = series.map(_ascending_js__WEBPACK_IMPORTED_MODULE_1__["sum"]),
22803 order = Object(_appearance_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series),
22804 top = 0,
22805 bottom = 0,
22806 tops = [],
22807 bottoms = [];
22808
22809 for (i = 0; i < n; ++i) {
22810 j = order[i];
22811 if (top < bottom) {
22812 top += sums[j];
22813 tops.push(j);
22814 } else {
22815 bottom += sums[j];
22816 bottoms.push(j);
22817 }
22818 }
22819
22820 return bottoms.reverse().concat(tops);
22821});
22822
22823
22824/***/ }),
22825
22826/***/ "./node_modules/d3-shape/src/order/none.js":
22827/*!*************************************************!*\
22828 !*** ./node_modules/d3-shape/src/order/none.js ***!
22829 \*************************************************/
22830/*! exports provided: default */
22831/***/ (function(module, __webpack_exports__, __webpack_require__) {
22832
22833"use strict";
22834__webpack_require__.r(__webpack_exports__);
22835/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22836 var n = series.length, o = new Array(n);
22837 while (--n >= 0) o[n] = n;
22838 return o;
22839});
22840
22841
22842/***/ }),
22843
22844/***/ "./node_modules/d3-shape/src/order/reverse.js":
22845/*!****************************************************!*\
22846 !*** ./node_modules/d3-shape/src/order/reverse.js ***!
22847 \****************************************************/
22848/*! exports provided: default */
22849/***/ (function(module, __webpack_exports__, __webpack_require__) {
22850
22851"use strict";
22852__webpack_require__.r(__webpack_exports__);
22853/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/order/none.js");
22854
22855
22856/* harmony default export */ __webpack_exports__["default"] = (function(series) {
22857 return Object(_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series).reverse();
22858});
22859
22860
22861/***/ }),
22862
22863/***/ "./node_modules/d3-shape/src/pie.js":
22864/*!******************************************!*\
22865 !*** ./node_modules/d3-shape/src/pie.js ***!
22866 \******************************************/
22867/*! exports provided: default */
22868/***/ (function(module, __webpack_exports__, __webpack_require__) {
22869
22870"use strict";
22871__webpack_require__.r(__webpack_exports__);
22872/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
22873/* harmony import */ var _descending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./descending.js */ "./node_modules/d3-shape/src/descending.js");
22874/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./identity.js */ "./node_modules/d3-shape/src/identity.js");
22875/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-shape/src/math.js");
22876
22877
22878
22879
22880
22881/* harmony default export */ __webpack_exports__["default"] = (function() {
22882 var value = _identity_js__WEBPACK_IMPORTED_MODULE_2__["default"],
22883 sortValues = _descending_js__WEBPACK_IMPORTED_MODULE_1__["default"],
22884 sort = null,
22885 startAngle = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0),
22886 endAngle = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_math_js__WEBPACK_IMPORTED_MODULE_3__["tau"]),
22887 padAngle = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0);
22888
22889 function pie(data) {
22890 var i,
22891 n = data.length,
22892 j,
22893 k,
22894 sum = 0,
22895 index = new Array(n),
22896 arcs = new Array(n),
22897 a0 = +startAngle.apply(this, arguments),
22898 da = Math.min(_math_js__WEBPACK_IMPORTED_MODULE_3__["tau"], Math.max(-_math_js__WEBPACK_IMPORTED_MODULE_3__["tau"], endAngle.apply(this, arguments) - a0)),
22899 a1,
22900 p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
22901 pa = p * (da < 0 ? -1 : 1),
22902 v;
22903
22904 for (i = 0; i < n; ++i) {
22905 if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
22906 sum += v;
22907 }
22908 }
22909
22910 // Optionally sort the arcs by previously-computed values or by data.
22911 if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
22912 else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
22913
22914 // Compute the arcs! They are stored in the original data's order.
22915 for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
22916 j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
22917 data: data[j],
22918 index: i,
22919 value: v,
22920 startAngle: a0,
22921 endAngle: a1,
22922 padAngle: p
22923 };
22924 }
22925
22926 return arcs;
22927 }
22928
22929 pie.value = function(_) {
22930 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : value;
22931 };
22932
22933 pie.sortValues = function(_) {
22934 return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
22935 };
22936
22937 pie.sort = function(_) {
22938 return arguments.length ? (sort = _, sortValues = null, pie) : sort;
22939 };
22940
22941 pie.startAngle = function(_) {
22942 return arguments.length ? (startAngle = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : startAngle;
22943 };
22944
22945 pie.endAngle = function(_) {
22946 return arguments.length ? (endAngle = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : endAngle;
22947 };
22948
22949 pie.padAngle = function(_) {
22950 return arguments.length ? (padAngle = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), pie) : padAngle;
22951 };
22952
22953 return pie;
22954});
22955
22956
22957/***/ }),
22958
22959/***/ "./node_modules/d3-shape/src/point.js":
22960/*!********************************************!*\
22961 !*** ./node_modules/d3-shape/src/point.js ***!
22962 \********************************************/
22963/*! exports provided: x, y */
22964/***/ (function(module, __webpack_exports__, __webpack_require__) {
22965
22966"use strict";
22967__webpack_require__.r(__webpack_exports__);
22968/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
22969/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
22970function x(p) {
22971 return p[0];
22972}
22973
22974function y(p) {
22975 return p[1];
22976}
22977
22978
22979/***/ }),
22980
22981/***/ "./node_modules/d3-shape/src/pointRadial.js":
22982/*!**************************************************!*\
22983 !*** ./node_modules/d3-shape/src/pointRadial.js ***!
22984 \**************************************************/
22985/*! exports provided: default */
22986/***/ (function(module, __webpack_exports__, __webpack_require__) {
22987
22988"use strict";
22989__webpack_require__.r(__webpack_exports__);
22990/* harmony default export */ __webpack_exports__["default"] = (function(x, y) {
22991 return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
22992});
22993
22994
22995/***/ }),
22996
22997/***/ "./node_modules/d3-shape/src/stack.js":
22998/*!********************************************!*\
22999 !*** ./node_modules/d3-shape/src/stack.js ***!
23000 \********************************************/
23001/*! exports provided: default */
23002/***/ (function(module, __webpack_exports__, __webpack_require__) {
23003
23004"use strict";
23005__webpack_require__.r(__webpack_exports__);
23006/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-shape/src/array.js");
23007/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
23008/* harmony import */ var _offset_none_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset/none.js */ "./node_modules/d3-shape/src/offset/none.js");
23009/* harmony import */ var _order_none_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./order/none.js */ "./node_modules/d3-shape/src/order/none.js");
23010
23011
23012
23013
23014
23015function stackValue(d, key) {
23016 return d[key];
23017}
23018
23019/* harmony default export */ __webpack_exports__["default"] = (function() {
23020 var keys = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])([]),
23021 order = _order_none_js__WEBPACK_IMPORTED_MODULE_3__["default"],
23022 offset = _offset_none_js__WEBPACK_IMPORTED_MODULE_2__["default"],
23023 value = stackValue;
23024
23025 function stack(data) {
23026 var kz = keys.apply(this, arguments),
23027 i,
23028 m = data.length,
23029 n = kz.length,
23030 sz = new Array(n),
23031 oz;
23032
23033 for (i = 0; i < n; ++i) {
23034 for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {
23035 si[j] = sij = [0, +value(data[j], ki, j, data)];
23036 sij.data = data[j];
23037 }
23038 si.key = ki;
23039 }
23040
23041 for (i = 0, oz = order(sz); i < n; ++i) {
23042 sz[oz[i]].index = i;
23043 }
23044
23045 offset(sz, oz);
23046 return sz;
23047 }
23048
23049 stack.keys = function(_) {
23050 return arguments.length ? (keys = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_array_js__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_)), stack) : keys;
23051 };
23052
23053 stack.value = function(_) {
23054 return arguments.length ? (value = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), stack) : value;
23055 };
23056
23057 stack.order = function(_) {
23058 return arguments.length ? (order = _ == null ? _order_none_js__WEBPACK_IMPORTED_MODULE_3__["default"] : typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_array_js__WEBPACK_IMPORTED_MODULE_0__["slice"].call(_)), stack) : order;
23059 };
23060
23061 stack.offset = function(_) {
23062 return arguments.length ? (offset = _ == null ? _offset_none_js__WEBPACK_IMPORTED_MODULE_2__["default"] : _, stack) : offset;
23063 };
23064
23065 return stack;
23066});
23067
23068
23069/***/ }),
23070
23071/***/ "./node_modules/d3-shape/src/symbol.js":
23072/*!*********************************************!*\
23073 !*** ./node_modules/d3-shape/src/symbol.js ***!
23074 \*********************************************/
23075/*! exports provided: symbols, default */
23076/***/ (function(module, __webpack_exports__, __webpack_require__) {
23077
23078"use strict";
23079__webpack_require__.r(__webpack_exports__);
23080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return symbols; });
23081/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
23082/* harmony import */ var _symbol_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./symbol/circle.js */ "./node_modules/d3-shape/src/symbol/circle.js");
23083/* harmony import */ var _symbol_cross_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./symbol/cross.js */ "./node_modules/d3-shape/src/symbol/cross.js");
23084/* harmony import */ var _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./symbol/diamond.js */ "./node_modules/d3-shape/src/symbol/diamond.js");
23085/* harmony import */ var _symbol_star_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symbol/star.js */ "./node_modules/d3-shape/src/symbol/star.js");
23086/* harmony import */ var _symbol_square_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./symbol/square.js */ "./node_modules/d3-shape/src/symbol/square.js");
23087/* harmony import */ var _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./symbol/triangle.js */ "./node_modules/d3-shape/src/symbol/triangle.js");
23088/* harmony import */ var _symbol_wye_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./symbol/wye.js */ "./node_modules/d3-shape/src/symbol/wye.js");
23089/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
23090
23091
23092
23093
23094
23095
23096
23097
23098
23099
23100var symbols = [
23101 _symbol_circle_js__WEBPACK_IMPORTED_MODULE_1__["default"],
23102 _symbol_cross_js__WEBPACK_IMPORTED_MODULE_2__["default"],
23103 _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_3__["default"],
23104 _symbol_square_js__WEBPACK_IMPORTED_MODULE_5__["default"],
23105 _symbol_star_js__WEBPACK_IMPORTED_MODULE_4__["default"],
23106 _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_6__["default"],
23107 _symbol_wye_js__WEBPACK_IMPORTED_MODULE_7__["default"]
23108];
23109
23110/* harmony default export */ __webpack_exports__["default"] = (function() {
23111 var type = Object(_constant_js__WEBPACK_IMPORTED_MODULE_8__["default"])(_symbol_circle_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
23112 size = Object(_constant_js__WEBPACK_IMPORTED_MODULE_8__["default"])(64),
23113 context = null;
23114
23115 function symbol() {
23116 var buffer;
23117 if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__["path"])();
23118 type.apply(this, arguments).draw(context, +size.apply(this, arguments));
23119 if (buffer) return context = null, buffer + "" || null;
23120 }
23121
23122 symbol.type = function(_) {
23123 return arguments.length ? (type = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_8__["default"])(_), symbol) : type;
23124 };
23125
23126 symbol.size = function(_) {
23127 return arguments.length ? (size = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_8__["default"])(+_), symbol) : size;
23128 };
23129
23130 symbol.context = function(_) {
23131 return arguments.length ? (context = _ == null ? null : _, symbol) : context;
23132 };
23133
23134 return symbol;
23135});
23136
23137
23138/***/ }),
23139
23140/***/ "./node_modules/d3-shape/src/symbol/circle.js":
23141/*!****************************************************!*\
23142 !*** ./node_modules/d3-shape/src/symbol/circle.js ***!
23143 \****************************************************/
23144/*! exports provided: default */
23145/***/ (function(module, __webpack_exports__, __webpack_require__) {
23146
23147"use strict";
23148__webpack_require__.r(__webpack_exports__);
23149/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-shape/src/math.js");
23150
23151
23152/* harmony default export */ __webpack_exports__["default"] = ({
23153 draw: function(context, size) {
23154 var r = Math.sqrt(size / _math_js__WEBPACK_IMPORTED_MODULE_0__["pi"]);
23155 context.moveTo(r, 0);
23156 context.arc(0, 0, r, 0, _math_js__WEBPACK_IMPORTED_MODULE_0__["tau"]);
23157 }
23158});
23159
23160
23161/***/ }),
23162
23163/***/ "./node_modules/d3-shape/src/symbol/cross.js":
23164/*!***************************************************!*\
23165 !*** ./node_modules/d3-shape/src/symbol/cross.js ***!
23166 \***************************************************/
23167/*! exports provided: default */
23168/***/ (function(module, __webpack_exports__, __webpack_require__) {
23169
23170"use strict";
23171__webpack_require__.r(__webpack_exports__);
23172/* harmony default export */ __webpack_exports__["default"] = ({
23173 draw: function(context, size) {
23174 var r = Math.sqrt(size / 5) / 2;
23175 context.moveTo(-3 * r, -r);
23176 context.lineTo(-r, -r);
23177 context.lineTo(-r, -3 * r);
23178 context.lineTo(r, -3 * r);
23179 context.lineTo(r, -r);
23180 context.lineTo(3 * r, -r);
23181 context.lineTo(3 * r, r);
23182 context.lineTo(r, r);
23183 context.lineTo(r, 3 * r);
23184 context.lineTo(-r, 3 * r);
23185 context.lineTo(-r, r);
23186 context.lineTo(-3 * r, r);
23187 context.closePath();
23188 }
23189});
23190
23191
23192/***/ }),
23193
23194/***/ "./node_modules/d3-shape/src/symbol/diamond.js":
23195/*!*****************************************************!*\
23196 !*** ./node_modules/d3-shape/src/symbol/diamond.js ***!
23197 \*****************************************************/
23198/*! exports provided: default */
23199/***/ (function(module, __webpack_exports__, __webpack_require__) {
23200
23201"use strict";
23202__webpack_require__.r(__webpack_exports__);
23203var tan30 = Math.sqrt(1 / 3),
23204 tan30_2 = tan30 * 2;
23205
23206/* harmony default export */ __webpack_exports__["default"] = ({
23207 draw: function(context, size) {
23208 var y = Math.sqrt(size / tan30_2),
23209 x = y * tan30;
23210 context.moveTo(0, -y);
23211 context.lineTo(x, 0);
23212 context.lineTo(0, y);
23213 context.lineTo(-x, 0);
23214 context.closePath();
23215 }
23216});
23217
23218
23219/***/ }),
23220
23221/***/ "./node_modules/d3-shape/src/symbol/square.js":
23222/*!****************************************************!*\
23223 !*** ./node_modules/d3-shape/src/symbol/square.js ***!
23224 \****************************************************/
23225/*! exports provided: default */
23226/***/ (function(module, __webpack_exports__, __webpack_require__) {
23227
23228"use strict";
23229__webpack_require__.r(__webpack_exports__);
23230/* harmony default export */ __webpack_exports__["default"] = ({
23231 draw: function(context, size) {
23232 var w = Math.sqrt(size),
23233 x = -w / 2;
23234 context.rect(x, x, w, w);
23235 }
23236});
23237
23238
23239/***/ }),
23240
23241/***/ "./node_modules/d3-shape/src/symbol/star.js":
23242/*!**************************************************!*\
23243 !*** ./node_modules/d3-shape/src/symbol/star.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 _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-shape/src/math.js");
23251
23252
23253var ka = 0.89081309152928522810,
23254 kr = Math.sin(_math_js__WEBPACK_IMPORTED_MODULE_0__["pi"] / 10) / Math.sin(7 * _math_js__WEBPACK_IMPORTED_MODULE_0__["pi"] / 10),
23255 kx = Math.sin(_math_js__WEBPACK_IMPORTED_MODULE_0__["tau"] / 10) * kr,
23256 ky = -Math.cos(_math_js__WEBPACK_IMPORTED_MODULE_0__["tau"] / 10) * kr;
23257
23258/* harmony default export */ __webpack_exports__["default"] = ({
23259 draw: function(context, size) {
23260 var r = Math.sqrt(size * ka),
23261 x = kx * r,
23262 y = ky * r;
23263 context.moveTo(0, -r);
23264 context.lineTo(x, y);
23265 for (var i = 1; i < 5; ++i) {
23266 var a = _math_js__WEBPACK_IMPORTED_MODULE_0__["tau"] * i / 5,
23267 c = Math.cos(a),
23268 s = Math.sin(a);
23269 context.lineTo(s * r, -c * r);
23270 context.lineTo(c * x - s * y, s * x + c * y);
23271 }
23272 context.closePath();
23273 }
23274});
23275
23276
23277/***/ }),
23278
23279/***/ "./node_modules/d3-shape/src/symbol/triangle.js":
23280/*!******************************************************!*\
23281 !*** ./node_modules/d3-shape/src/symbol/triangle.js ***!
23282 \******************************************************/
23283/*! exports provided: default */
23284/***/ (function(module, __webpack_exports__, __webpack_require__) {
23285
23286"use strict";
23287__webpack_require__.r(__webpack_exports__);
23288var sqrt3 = Math.sqrt(3);
23289
23290/* harmony default export */ __webpack_exports__["default"] = ({
23291 draw: function(context, size) {
23292 var y = -Math.sqrt(size / (sqrt3 * 3));
23293 context.moveTo(0, y * 2);
23294 context.lineTo(-sqrt3 * y, -y);
23295 context.lineTo(sqrt3 * y, -y);
23296 context.closePath();
23297 }
23298});
23299
23300
23301/***/ }),
23302
23303/***/ "./node_modules/d3-shape/src/symbol/wye.js":
23304/*!*************************************************!*\
23305 !*** ./node_modules/d3-shape/src/symbol/wye.js ***!
23306 \*************************************************/
23307/*! exports provided: default */
23308/***/ (function(module, __webpack_exports__, __webpack_require__) {
23309
23310"use strict";
23311__webpack_require__.r(__webpack_exports__);
23312var c = -0.5,
23313 s = Math.sqrt(3) / 2,
23314 k = 1 / Math.sqrt(12),
23315 a = (k / 2 + 1) * 3;
23316
23317/* harmony default export */ __webpack_exports__["default"] = ({
23318 draw: function(context, size) {
23319 var r = Math.sqrt(size / a),
23320 x0 = r / 2,
23321 y0 = r * k,
23322 x1 = x0,
23323 y1 = r * k + r,
23324 x2 = -x1,
23325 y2 = y1;
23326 context.moveTo(x0, y0);
23327 context.lineTo(x1, y1);
23328 context.lineTo(x2, y2);
23329 context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
23330 context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
23331 context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
23332 context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
23333 context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
23334 context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
23335 context.closePath();
23336 }
23337});
23338
23339
23340/***/ }),
23341
23342/***/ "./node_modules/d3-time-format/src/defaultLocale.js":
23343/*!**********************************************************!*\
23344 !*** ./node_modules/d3-time-format/src/defaultLocale.js ***!
23345 \**********************************************************/
23346/*! exports provided: timeFormat, timeParse, utcFormat, utcParse, default */
23347/***/ (function(module, __webpack_exports__, __webpack_require__) {
23348
23349"use strict";
23350__webpack_require__.r(__webpack_exports__);
23351/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return timeFormat; });
23352/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return timeParse; });
23353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return utcFormat; });
23354/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return utcParse; });
23355/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return defaultLocale; });
23356/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ "./node_modules/d3-time-format/src/locale.js");
23357
23358
23359var locale;
23360var timeFormat;
23361var timeParse;
23362var utcFormat;
23363var utcParse;
23364
23365defaultLocale({
23366 dateTime: "%x, %X",
23367 date: "%-m/%-d/%Y",
23368 time: "%-I:%M:%S %p",
23369 periods: ["AM", "PM"],
23370 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
23371 shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
23372 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
23373 shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
23374});
23375
23376function defaultLocale(definition) {
23377 locale = Object(_locale_js__WEBPACK_IMPORTED_MODULE_0__["default"])(definition);
23378 timeFormat = locale.format;
23379 timeParse = locale.parse;
23380 utcFormat = locale.utcFormat;
23381 utcParse = locale.utcParse;
23382 return locale;
23383}
23384
23385
23386/***/ }),
23387
23388/***/ "./node_modules/d3-time-format/src/index.js":
23389/*!**************************************************!*\
23390 !*** ./node_modules/d3-time-format/src/index.js ***!
23391 \**************************************************/
23392/*! exports provided: timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse, timeFormatLocale, isoFormat, isoParse */
23393/***/ (function(module, __webpack_exports__, __webpack_require__) {
23394
23395"use strict";
23396__webpack_require__.r(__webpack_exports__);
23397/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ "./node_modules/d3-time-format/src/defaultLocale.js");
23398/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatDefaultLocale", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
23399
23400/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["timeFormat"]; });
23401
23402/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["timeParse"]; });
23403
23404/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["utcFormat"]; });
23405
23406/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["utcParse"]; });
23407
23408/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale.js */ "./node_modules/d3-time-format/src/locale.js");
23409/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatLocale", function() { return _locale_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
23410
23411/* harmony import */ var _isoFormat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isoFormat.js */ "./node_modules/d3-time-format/src/isoFormat.js");
23412/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoFormat", function() { return _isoFormat_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
23413
23414/* harmony import */ var _isoParse_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isoParse.js */ "./node_modules/d3-time-format/src/isoParse.js");
23415/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoParse", function() { return _isoParse_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
23416
23417
23418
23419
23420
23421
23422
23423/***/ }),
23424
23425/***/ "./node_modules/d3-time-format/src/isoFormat.js":
23426/*!******************************************************!*\
23427 !*** ./node_modules/d3-time-format/src/isoFormat.js ***!
23428 \******************************************************/
23429/*! exports provided: isoSpecifier, default */
23430/***/ (function(module, __webpack_exports__, __webpack_require__) {
23431
23432"use strict";
23433__webpack_require__.r(__webpack_exports__);
23434/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isoSpecifier", function() { return isoSpecifier; });
23435/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ "./node_modules/d3-time-format/src/defaultLocale.js");
23436
23437
23438var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
23439
23440function formatIsoNative(date) {
23441 return date.toISOString();
23442}
23443
23444var formatIso = Date.prototype.toISOString
23445 ? formatIsoNative
23446 : Object(_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["utcFormat"])(isoSpecifier);
23447
23448/* harmony default export */ __webpack_exports__["default"] = (formatIso);
23449
23450
23451/***/ }),
23452
23453/***/ "./node_modules/d3-time-format/src/isoParse.js":
23454/*!*****************************************************!*\
23455 !*** ./node_modules/d3-time-format/src/isoParse.js ***!
23456 \*****************************************************/
23457/*! exports provided: default */
23458/***/ (function(module, __webpack_exports__, __webpack_require__) {
23459
23460"use strict";
23461__webpack_require__.r(__webpack_exports__);
23462/* harmony import */ var _isoFormat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isoFormat.js */ "./node_modules/d3-time-format/src/isoFormat.js");
23463/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultLocale.js */ "./node_modules/d3-time-format/src/defaultLocale.js");
23464
23465
23466
23467function parseIsoNative(string) {
23468 var date = new Date(string);
23469 return isNaN(date) ? null : date;
23470}
23471
23472var parseIso = +new Date("2000-01-01T00:00:00.000Z")
23473 ? parseIsoNative
23474 : Object(_defaultLocale_js__WEBPACK_IMPORTED_MODULE_1__["utcParse"])(_isoFormat_js__WEBPACK_IMPORTED_MODULE_0__["isoSpecifier"]);
23475
23476/* harmony default export */ __webpack_exports__["default"] = (parseIso);
23477
23478
23479/***/ }),
23480
23481/***/ "./node_modules/d3-time-format/src/locale.js":
23482/*!***************************************************!*\
23483 !*** ./node_modules/d3-time-format/src/locale.js ***!
23484 \***************************************************/
23485/*! exports provided: default */
23486/***/ (function(module, __webpack_exports__, __webpack_require__) {
23487
23488"use strict";
23489__webpack_require__.r(__webpack_exports__);
23490/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLocale; });
23491/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
23492
23493
23494function localDate(d) {
23495 if (0 <= d.y && d.y < 100) {
23496 var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
23497 date.setFullYear(d.y);
23498 return date;
23499 }
23500 return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
23501}
23502
23503function utcDate(d) {
23504 if (0 <= d.y && d.y < 100) {
23505 var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
23506 date.setUTCFullYear(d.y);
23507 return date;
23508 }
23509 return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
23510}
23511
23512function newDate(y, m, d) {
23513 return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};
23514}
23515
23516function formatLocale(locale) {
23517 var locale_dateTime = locale.dateTime,
23518 locale_date = locale.date,
23519 locale_time = locale.time,
23520 locale_periods = locale.periods,
23521 locale_weekdays = locale.days,
23522 locale_shortWeekdays = locale.shortDays,
23523 locale_months = locale.months,
23524 locale_shortMonths = locale.shortMonths;
23525
23526 var periodRe = formatRe(locale_periods),
23527 periodLookup = formatLookup(locale_periods),
23528 weekdayRe = formatRe(locale_weekdays),
23529 weekdayLookup = formatLookup(locale_weekdays),
23530 shortWeekdayRe = formatRe(locale_shortWeekdays),
23531 shortWeekdayLookup = formatLookup(locale_shortWeekdays),
23532 monthRe = formatRe(locale_months),
23533 monthLookup = formatLookup(locale_months),
23534 shortMonthRe = formatRe(locale_shortMonths),
23535 shortMonthLookup = formatLookup(locale_shortMonths);
23536
23537 var formats = {
23538 "a": formatShortWeekday,
23539 "A": formatWeekday,
23540 "b": formatShortMonth,
23541 "B": formatMonth,
23542 "c": null,
23543 "d": formatDayOfMonth,
23544 "e": formatDayOfMonth,
23545 "f": formatMicroseconds,
23546 "H": formatHour24,
23547 "I": formatHour12,
23548 "j": formatDayOfYear,
23549 "L": formatMilliseconds,
23550 "m": formatMonthNumber,
23551 "M": formatMinutes,
23552 "p": formatPeriod,
23553 "q": formatQuarter,
23554 "Q": formatUnixTimestamp,
23555 "s": formatUnixTimestampSeconds,
23556 "S": formatSeconds,
23557 "u": formatWeekdayNumberMonday,
23558 "U": formatWeekNumberSunday,
23559 "V": formatWeekNumberISO,
23560 "w": formatWeekdayNumberSunday,
23561 "W": formatWeekNumberMonday,
23562 "x": null,
23563 "X": null,
23564 "y": formatYear,
23565 "Y": formatFullYear,
23566 "Z": formatZone,
23567 "%": formatLiteralPercent
23568 };
23569
23570 var utcFormats = {
23571 "a": formatUTCShortWeekday,
23572 "A": formatUTCWeekday,
23573 "b": formatUTCShortMonth,
23574 "B": formatUTCMonth,
23575 "c": null,
23576 "d": formatUTCDayOfMonth,
23577 "e": formatUTCDayOfMonth,
23578 "f": formatUTCMicroseconds,
23579 "H": formatUTCHour24,
23580 "I": formatUTCHour12,
23581 "j": formatUTCDayOfYear,
23582 "L": formatUTCMilliseconds,
23583 "m": formatUTCMonthNumber,
23584 "M": formatUTCMinutes,
23585 "p": formatUTCPeriod,
23586 "q": formatUTCQuarter,
23587 "Q": formatUnixTimestamp,
23588 "s": formatUnixTimestampSeconds,
23589 "S": formatUTCSeconds,
23590 "u": formatUTCWeekdayNumberMonday,
23591 "U": formatUTCWeekNumberSunday,
23592 "V": formatUTCWeekNumberISO,
23593 "w": formatUTCWeekdayNumberSunday,
23594 "W": formatUTCWeekNumberMonday,
23595 "x": null,
23596 "X": null,
23597 "y": formatUTCYear,
23598 "Y": formatUTCFullYear,
23599 "Z": formatUTCZone,
23600 "%": formatLiteralPercent
23601 };
23602
23603 var parses = {
23604 "a": parseShortWeekday,
23605 "A": parseWeekday,
23606 "b": parseShortMonth,
23607 "B": parseMonth,
23608 "c": parseLocaleDateTime,
23609 "d": parseDayOfMonth,
23610 "e": parseDayOfMonth,
23611 "f": parseMicroseconds,
23612 "H": parseHour24,
23613 "I": parseHour24,
23614 "j": parseDayOfYear,
23615 "L": parseMilliseconds,
23616 "m": parseMonthNumber,
23617 "M": parseMinutes,
23618 "p": parsePeriod,
23619 "q": parseQuarter,
23620 "Q": parseUnixTimestamp,
23621 "s": parseUnixTimestampSeconds,
23622 "S": parseSeconds,
23623 "u": parseWeekdayNumberMonday,
23624 "U": parseWeekNumberSunday,
23625 "V": parseWeekNumberISO,
23626 "w": parseWeekdayNumberSunday,
23627 "W": parseWeekNumberMonday,
23628 "x": parseLocaleDate,
23629 "X": parseLocaleTime,
23630 "y": parseYear,
23631 "Y": parseFullYear,
23632 "Z": parseZone,
23633 "%": parseLiteralPercent
23634 };
23635
23636 // These recursive directive definitions must be deferred.
23637 formats.x = newFormat(locale_date, formats);
23638 formats.X = newFormat(locale_time, formats);
23639 formats.c = newFormat(locale_dateTime, formats);
23640 utcFormats.x = newFormat(locale_date, utcFormats);
23641 utcFormats.X = newFormat(locale_time, utcFormats);
23642 utcFormats.c = newFormat(locale_dateTime, utcFormats);
23643
23644 function newFormat(specifier, formats) {
23645 return function(date) {
23646 var string = [],
23647 i = -1,
23648 j = 0,
23649 n = specifier.length,
23650 c,
23651 pad,
23652 format;
23653
23654 if (!(date instanceof Date)) date = new Date(+date);
23655
23656 while (++i < n) {
23657 if (specifier.charCodeAt(i) === 37) {
23658 string.push(specifier.slice(j, i));
23659 if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
23660 else pad = c === "e" ? " " : "0";
23661 if (format = formats[c]) c = format(date, pad);
23662 string.push(c);
23663 j = i + 1;
23664 }
23665 }
23666
23667 string.push(specifier.slice(j, i));
23668 return string.join("");
23669 };
23670 }
23671
23672 function newParse(specifier, Z) {
23673 return function(string) {
23674 var d = newDate(1900, undefined, 1),
23675 i = parseSpecifier(d, specifier, string += "", 0),
23676 week, day;
23677 if (i != string.length) return null;
23678
23679 // If a UNIX timestamp is specified, return it.
23680 if ("Q" in d) return new Date(d.Q);
23681 if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0));
23682
23683 // If this is utcParse, never use the local timezone.
23684 if (Z && !("Z" in d)) d.Z = 0;
23685
23686 // The am-pm flag is 0 for AM, and 1 for PM.
23687 if ("p" in d) d.H = d.H % 12 + d.p * 12;
23688
23689 // If the month was not specified, inherit from the quarter.
23690 if (d.m === undefined) d.m = "q" in d ? d.q : 0;
23691
23692 // Convert day-of-week and week-of-year to day-of-year.
23693 if ("V" in d) {
23694 if (d.V < 1 || d.V > 53) return null;
23695 if (!("w" in d)) d.w = 1;
23696 if ("Z" in d) {
23697 week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
23698 week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"])(week);
23699 week = d3_time__WEBPACK_IMPORTED_MODULE_0__["utcDay"].offset(week, (d.V - 1) * 7);
23700 d.y = week.getUTCFullYear();
23701 d.m = week.getUTCMonth();
23702 d.d = week.getUTCDate() + (d.w + 6) % 7;
23703 } else {
23704 week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
23705 week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"])(week);
23706 week = d3_time__WEBPACK_IMPORTED_MODULE_0__["timeDay"].offset(week, (d.V - 1) * 7);
23707 d.y = week.getFullYear();
23708 d.m = week.getMonth();
23709 d.d = week.getDate() + (d.w + 6) % 7;
23710 }
23711 } else if ("W" in d || "U" in d) {
23712 if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
23713 day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
23714 d.m = 0;
23715 d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
23716 }
23717
23718 // If a time zone is specified, all fields are interpreted as UTC and then
23719 // offset according to the specified time zone.
23720 if ("Z" in d) {
23721 d.H += d.Z / 100 | 0;
23722 d.M += d.Z % 100;
23723 return utcDate(d);
23724 }
23725
23726 // Otherwise, all fields are in local time.
23727 return localDate(d);
23728 };
23729 }
23730
23731 function parseSpecifier(d, specifier, string, j) {
23732 var i = 0,
23733 n = specifier.length,
23734 m = string.length,
23735 c,
23736 parse;
23737
23738 while (i < n) {
23739 if (j >= m) return -1;
23740 c = specifier.charCodeAt(i++);
23741 if (c === 37) {
23742 c = specifier.charAt(i++);
23743 parse = parses[c in pads ? specifier.charAt(i++) : c];
23744 if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
23745 } else if (c != string.charCodeAt(j++)) {
23746 return -1;
23747 }
23748 }
23749
23750 return j;
23751 }
23752
23753 function parsePeriod(d, string, i) {
23754 var n = periodRe.exec(string.slice(i));
23755 return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23756 }
23757
23758 function parseShortWeekday(d, string, i) {
23759 var n = shortWeekdayRe.exec(string.slice(i));
23760 return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23761 }
23762
23763 function parseWeekday(d, string, i) {
23764 var n = weekdayRe.exec(string.slice(i));
23765 return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23766 }
23767
23768 function parseShortMonth(d, string, i) {
23769 var n = shortMonthRe.exec(string.slice(i));
23770 return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23771 }
23772
23773 function parseMonth(d, string, i) {
23774 var n = monthRe.exec(string.slice(i));
23775 return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
23776 }
23777
23778 function parseLocaleDateTime(d, string, i) {
23779 return parseSpecifier(d, locale_dateTime, string, i);
23780 }
23781
23782 function parseLocaleDate(d, string, i) {
23783 return parseSpecifier(d, locale_date, string, i);
23784 }
23785
23786 function parseLocaleTime(d, string, i) {
23787 return parseSpecifier(d, locale_time, string, i);
23788 }
23789
23790 function formatShortWeekday(d) {
23791 return locale_shortWeekdays[d.getDay()];
23792 }
23793
23794 function formatWeekday(d) {
23795 return locale_weekdays[d.getDay()];
23796 }
23797
23798 function formatShortMonth(d) {
23799 return locale_shortMonths[d.getMonth()];
23800 }
23801
23802 function formatMonth(d) {
23803 return locale_months[d.getMonth()];
23804 }
23805
23806 function formatPeriod(d) {
23807 return locale_periods[+(d.getHours() >= 12)];
23808 }
23809
23810 function formatQuarter(d) {
23811 return 1 + ~~(d.getMonth() / 3);
23812 }
23813
23814 function formatUTCShortWeekday(d) {
23815 return locale_shortWeekdays[d.getUTCDay()];
23816 }
23817
23818 function formatUTCWeekday(d) {
23819 return locale_weekdays[d.getUTCDay()];
23820 }
23821
23822 function formatUTCShortMonth(d) {
23823 return locale_shortMonths[d.getUTCMonth()];
23824 }
23825
23826 function formatUTCMonth(d) {
23827 return locale_months[d.getUTCMonth()];
23828 }
23829
23830 function formatUTCPeriod(d) {
23831 return locale_periods[+(d.getUTCHours() >= 12)];
23832 }
23833
23834 function formatUTCQuarter(d) {
23835 return 1 + ~~(d.getUTCMonth() / 3);
23836 }
23837
23838 return {
23839 format: function(specifier) {
23840 var f = newFormat(specifier += "", formats);
23841 f.toString = function() { return specifier; };
23842 return f;
23843 },
23844 parse: function(specifier) {
23845 var p = newParse(specifier += "", false);
23846 p.toString = function() { return specifier; };
23847 return p;
23848 },
23849 utcFormat: function(specifier) {
23850 var f = newFormat(specifier += "", utcFormats);
23851 f.toString = function() { return specifier; };
23852 return f;
23853 },
23854 utcParse: function(specifier) {
23855 var p = newParse(specifier += "", true);
23856 p.toString = function() { return specifier; };
23857 return p;
23858 }
23859 };
23860}
23861
23862var pads = {"-": "", "_": " ", "0": "0"},
23863 numberRe = /^\s*\d+/, // note: ignores next directive
23864 percentRe = /^%/,
23865 requoteRe = /[\\^$*+?|[\]().{}]/g;
23866
23867function pad(value, fill, width) {
23868 var sign = value < 0 ? "-" : "",
23869 string = (sign ? -value : value) + "",
23870 length = string.length;
23871 return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
23872}
23873
23874function requote(s) {
23875 return s.replace(requoteRe, "\\$&");
23876}
23877
23878function formatRe(names) {
23879 return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
23880}
23881
23882function formatLookup(names) {
23883 var map = {}, i = -1, n = names.length;
23884 while (++i < n) map[names[i].toLowerCase()] = i;
23885 return map;
23886}
23887
23888function parseWeekdayNumberSunday(d, string, i) {
23889 var n = numberRe.exec(string.slice(i, i + 1));
23890 return n ? (d.w = +n[0], i + n[0].length) : -1;
23891}
23892
23893function parseWeekdayNumberMonday(d, string, i) {
23894 var n = numberRe.exec(string.slice(i, i + 1));
23895 return n ? (d.u = +n[0], i + n[0].length) : -1;
23896}
23897
23898function parseWeekNumberSunday(d, string, i) {
23899 var n = numberRe.exec(string.slice(i, i + 2));
23900 return n ? (d.U = +n[0], i + n[0].length) : -1;
23901}
23902
23903function parseWeekNumberISO(d, string, i) {
23904 var n = numberRe.exec(string.slice(i, i + 2));
23905 return n ? (d.V = +n[0], i + n[0].length) : -1;
23906}
23907
23908function parseWeekNumberMonday(d, string, i) {
23909 var n = numberRe.exec(string.slice(i, i + 2));
23910 return n ? (d.W = +n[0], i + n[0].length) : -1;
23911}
23912
23913function parseFullYear(d, string, i) {
23914 var n = numberRe.exec(string.slice(i, i + 4));
23915 return n ? (d.y = +n[0], i + n[0].length) : -1;
23916}
23917
23918function parseYear(d, string, i) {
23919 var n = numberRe.exec(string.slice(i, i + 2));
23920 return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
23921}
23922
23923function parseZone(d, string, i) {
23924 var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
23925 return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
23926}
23927
23928function parseQuarter(d, string, i) {
23929 var n = numberRe.exec(string.slice(i, i + 1));
23930 return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
23931}
23932
23933function parseMonthNumber(d, string, i) {
23934 var n = numberRe.exec(string.slice(i, i + 2));
23935 return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
23936}
23937
23938function parseDayOfMonth(d, string, i) {
23939 var n = numberRe.exec(string.slice(i, i + 2));
23940 return n ? (d.d = +n[0], i + n[0].length) : -1;
23941}
23942
23943function parseDayOfYear(d, string, i) {
23944 var n = numberRe.exec(string.slice(i, i + 3));
23945 return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
23946}
23947
23948function parseHour24(d, string, i) {
23949 var n = numberRe.exec(string.slice(i, i + 2));
23950 return n ? (d.H = +n[0], i + n[0].length) : -1;
23951}
23952
23953function parseMinutes(d, string, i) {
23954 var n = numberRe.exec(string.slice(i, i + 2));
23955 return n ? (d.M = +n[0], i + n[0].length) : -1;
23956}
23957
23958function parseSeconds(d, string, i) {
23959 var n = numberRe.exec(string.slice(i, i + 2));
23960 return n ? (d.S = +n[0], i + n[0].length) : -1;
23961}
23962
23963function parseMilliseconds(d, string, i) {
23964 var n = numberRe.exec(string.slice(i, i + 3));
23965 return n ? (d.L = +n[0], i + n[0].length) : -1;
23966}
23967
23968function parseMicroseconds(d, string, i) {
23969 var n = numberRe.exec(string.slice(i, i + 6));
23970 return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
23971}
23972
23973function parseLiteralPercent(d, string, i) {
23974 var n = percentRe.exec(string.slice(i, i + 1));
23975 return n ? i + n[0].length : -1;
23976}
23977
23978function parseUnixTimestamp(d, string, i) {
23979 var n = numberRe.exec(string.slice(i));
23980 return n ? (d.Q = +n[0], i + n[0].length) : -1;
23981}
23982
23983function parseUnixTimestampSeconds(d, string, i) {
23984 var n = numberRe.exec(string.slice(i));
23985 return n ? (d.s = +n[0], i + n[0].length) : -1;
23986}
23987
23988function formatDayOfMonth(d, p) {
23989 return pad(d.getDate(), p, 2);
23990}
23991
23992function formatHour24(d, p) {
23993 return pad(d.getHours(), p, 2);
23994}
23995
23996function formatHour12(d, p) {
23997 return pad(d.getHours() % 12 || 12, p, 2);
23998}
23999
24000function formatDayOfYear(d, p) {
24001 return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__["timeDay"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d), d), p, 3);
24002}
24003
24004function formatMilliseconds(d, p) {
24005 return pad(d.getMilliseconds(), p, 3);
24006}
24007
24008function formatMicroseconds(d, p) {
24009 return formatMilliseconds(d, p) + "000";
24010}
24011
24012function formatMonthNumber(d, p) {
24013 return pad(d.getMonth() + 1, p, 2);
24014}
24015
24016function formatMinutes(d, p) {
24017 return pad(d.getMinutes(), p, 2);
24018}
24019
24020function formatSeconds(d, p) {
24021 return pad(d.getSeconds(), p, 2);
24022}
24023
24024function formatWeekdayNumberMonday(d) {
24025 var day = d.getDay();
24026 return day === 0 ? 7 : day;
24027}
24028
24029function formatWeekNumberSunday(d, p) {
24030 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeSunday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d) - 1, d), p, 2);
24031}
24032
24033function formatWeekNumberISO(d, p) {
24034 var day = d.getDay();
24035 d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeThursday"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__["timeThursday"].ceil(d);
24036 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);
24037}
24038
24039function formatWeekdayNumberSunday(d) {
24040 return d.getDay();
24041}
24042
24043function formatWeekNumberMonday(d, p) {
24044 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeMonday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["timeYear"])(d) - 1, d), p, 2);
24045}
24046
24047function formatYear(d, p) {
24048 return pad(d.getFullYear() % 100, p, 2);
24049}
24050
24051function formatFullYear(d, p) {
24052 return pad(d.getFullYear() % 10000, p, 4);
24053}
24054
24055function formatZone(d) {
24056 var z = d.getTimezoneOffset();
24057 return (z > 0 ? "-" : (z *= -1, "+"))
24058 + pad(z / 60 | 0, "0", 2)
24059 + pad(z % 60, "0", 2);
24060}
24061
24062function formatUTCDayOfMonth(d, p) {
24063 return pad(d.getUTCDate(), p, 2);
24064}
24065
24066function formatUTCHour24(d, p) {
24067 return pad(d.getUTCHours(), p, 2);
24068}
24069
24070function formatUTCHour12(d, p) {
24071 return pad(d.getUTCHours() % 12 || 12, p, 2);
24072}
24073
24074function formatUTCDayOfYear(d, p) {
24075 return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__["utcDay"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d), d), p, 3);
24076}
24077
24078function formatUTCMilliseconds(d, p) {
24079 return pad(d.getUTCMilliseconds(), p, 3);
24080}
24081
24082function formatUTCMicroseconds(d, p) {
24083 return formatUTCMilliseconds(d, p) + "000";
24084}
24085
24086function formatUTCMonthNumber(d, p) {
24087 return pad(d.getUTCMonth() + 1, p, 2);
24088}
24089
24090function formatUTCMinutes(d, p) {
24091 return pad(d.getUTCMinutes(), p, 2);
24092}
24093
24094function formatUTCSeconds(d, p) {
24095 return pad(d.getUTCSeconds(), p, 2);
24096}
24097
24098function formatUTCWeekdayNumberMonday(d) {
24099 var dow = d.getUTCDay();
24100 return dow === 0 ? 7 : dow;
24101}
24102
24103function formatUTCWeekNumberSunday(d, p) {
24104 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcSunday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d) - 1, d), p, 2);
24105}
24106
24107function formatUTCWeekNumberISO(d, p) {
24108 var day = d.getUTCDay();
24109 d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcThursday"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__["utcThursday"].ceil(d);
24110 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);
24111}
24112
24113function formatUTCWeekdayNumberSunday(d) {
24114 return d.getUTCDay();
24115}
24116
24117function formatUTCWeekNumberMonday(d, p) {
24118 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcMonday"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__["utcYear"])(d) - 1, d), p, 2);
24119}
24120
24121function formatUTCYear(d, p) {
24122 return pad(d.getUTCFullYear() % 100, p, 2);
24123}
24124
24125function formatUTCFullYear(d, p) {
24126 return pad(d.getUTCFullYear() % 10000, p, 4);
24127}
24128
24129function formatUTCZone() {
24130 return "+0000";
24131}
24132
24133function formatLiteralPercent() {
24134 return "%";
24135}
24136
24137function formatUnixTimestamp(d) {
24138 return +d;
24139}
24140
24141function formatUnixTimestampSeconds(d) {
24142 return Math.floor(+d / 1000);
24143}
24144
24145
24146/***/ }),
24147
24148/***/ "./node_modules/d3-time/src/day.js":
24149/*!*****************************************!*\
24150 !*** ./node_modules/d3-time/src/day.js ***!
24151 \*****************************************/
24152/*! exports provided: default, days */
24153/***/ (function(module, __webpack_exports__, __webpack_require__) {
24154
24155"use strict";
24156__webpack_require__.r(__webpack_exports__);
24157/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "days", function() { return days; });
24158/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24159/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24160
24161
24162
24163var day = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24164 date.setHours(0, 0, 0, 0);
24165}, function(date, step) {
24166 date.setDate(date.getDate() + step);
24167}, function(start, end) {
24168 return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationDay"];
24169}, function(date) {
24170 return date.getDate() - 1;
24171});
24172
24173/* harmony default export */ __webpack_exports__["default"] = (day);
24174var days = day.range;
24175
24176
24177/***/ }),
24178
24179/***/ "./node_modules/d3-time/src/duration.js":
24180/*!**********************************************!*\
24181 !*** ./node_modules/d3-time/src/duration.js ***!
24182 \**********************************************/
24183/*! exports provided: durationSecond, durationMinute, durationHour, durationDay, durationWeek */
24184/***/ (function(module, __webpack_exports__, __webpack_require__) {
24185
24186"use strict";
24187__webpack_require__.r(__webpack_exports__);
24188/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationSecond", function() { return durationSecond; });
24189/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationMinute", function() { return durationMinute; });
24190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationHour", function() { return durationHour; });
24191/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationDay", function() { return durationDay; });
24192/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "durationWeek", function() { return durationWeek; });
24193var durationSecond = 1e3;
24194var durationMinute = 6e4;
24195var durationHour = 36e5;
24196var durationDay = 864e5;
24197var durationWeek = 6048e5;
24198
24199
24200/***/ }),
24201
24202/***/ "./node_modules/d3-time/src/hour.js":
24203/*!******************************************!*\
24204 !*** ./node_modules/d3-time/src/hour.js ***!
24205 \******************************************/
24206/*! exports provided: default, hours */
24207/***/ (function(module, __webpack_exports__, __webpack_require__) {
24208
24209"use strict";
24210__webpack_require__.r(__webpack_exports__);
24211/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hours", function() { return hours; });
24212/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24213/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24214
24215
24216
24217var hour = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24218 date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationSecond"] - date.getMinutes() * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
24219}, function(date, step) {
24220 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationHour"]);
24221}, function(start, end) {
24222 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
24223}, function(date) {
24224 return date.getHours();
24225});
24226
24227/* harmony default export */ __webpack_exports__["default"] = (hour);
24228var hours = hour.range;
24229
24230
24231/***/ }),
24232
24233/***/ "./node_modules/d3-time/src/index.js":
24234/*!*******************************************!*\
24235 !*** ./node_modules/d3-time/src/index.js ***!
24236 \*******************************************/
24237/*! 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 */
24238/***/ (function(module, __webpack_exports__, __webpack_require__) {
24239
24240"use strict";
24241__webpack_require__.r(__webpack_exports__);
24242/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24243/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _interval_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
24244
24245/* harmony import */ var _millisecond_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./millisecond.js */ "./node_modules/d3-time/src/millisecond.js");
24246/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMillisecond", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
24247
24248/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMilliseconds", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__["milliseconds"]; });
24249
24250/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMillisecond", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
24251
24252/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMilliseconds", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__["milliseconds"]; });
24253
24254/* harmony import */ var _second_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./second.js */ "./node_modules/d3-time/src/second.js");
24255/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSecond", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
24256
24257/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSeconds", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__["seconds"]; });
24258
24259/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSecond", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
24260
24261/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSeconds", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__["seconds"]; });
24262
24263/* harmony import */ var _minute_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minute.js */ "./node_modules/d3-time/src/minute.js");
24264/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinute", function() { return _minute_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
24265
24266/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinutes", function() { return _minute_js__WEBPACK_IMPORTED_MODULE_3__["minutes"]; });
24267
24268/* harmony import */ var _hour_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hour.js */ "./node_modules/d3-time/src/hour.js");
24269/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHour", function() { return _hour_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
24270
24271/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHours", function() { return _hour_js__WEBPACK_IMPORTED_MODULE_4__["hours"]; });
24272
24273/* harmony import */ var _day_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./day.js */ "./node_modules/d3-time/src/day.js");
24274/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDay", function() { return _day_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });
24275
24276/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDays", function() { return _day_js__WEBPACK_IMPORTED_MODULE_5__["days"]; });
24277
24278/* harmony import */ var _week_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./week.js */ "./node_modules/d3-time/src/week.js");
24279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeek", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["sunday"]; });
24280
24281/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeeks", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["sundays"]; });
24282
24283/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSunday", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["sunday"]; });
24284
24285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSundays", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["sundays"]; });
24286
24287/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonday", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["monday"]; });
24288
24289/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMondays", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["mondays"]; });
24290
24291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesday", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["tuesday"]; });
24292
24293/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesdays", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["tuesdays"]; });
24294
24295/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesday", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["wednesday"]; });
24296
24297/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesdays", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["wednesdays"]; });
24298
24299/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursday", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["thursday"]; });
24300
24301/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursdays", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["thursdays"]; });
24302
24303/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFriday", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["friday"]; });
24304
24305/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFridays", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["fridays"]; });
24306
24307/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturday", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["saturday"]; });
24308
24309/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturdays", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__["saturdays"]; });
24310
24311/* harmony import */ var _month_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./month.js */ "./node_modules/d3-time/src/month.js");
24312/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonth", function() { return _month_js__WEBPACK_IMPORTED_MODULE_7__["default"]; });
24313
24314/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonths", function() { return _month_js__WEBPACK_IMPORTED_MODULE_7__["months"]; });
24315
24316/* harmony import */ var _year_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./year.js */ "./node_modules/d3-time/src/year.js");
24317/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYear", function() { return _year_js__WEBPACK_IMPORTED_MODULE_8__["default"]; });
24318
24319/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYears", function() { return _year_js__WEBPACK_IMPORTED_MODULE_8__["years"]; });
24320
24321/* harmony import */ var _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utcMinute.js */ "./node_modules/d3-time/src/utcMinute.js");
24322/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinute", function() { return _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__["default"]; });
24323
24324/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__["utcMinutes"]; });
24325
24326/* harmony import */ var _utcHour_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utcHour.js */ "./node_modules/d3-time/src/utcHour.js");
24327/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHour", function() { return _utcHour_js__WEBPACK_IMPORTED_MODULE_10__["default"]; });
24328
24329/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return _utcHour_js__WEBPACK_IMPORTED_MODULE_10__["utcHours"]; });
24330
24331/* harmony import */ var _utcDay_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utcDay.js */ "./node_modules/d3-time/src/utcDay.js");
24332/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDay", function() { return _utcDay_js__WEBPACK_IMPORTED_MODULE_11__["default"]; });
24333
24334/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return _utcDay_js__WEBPACK_IMPORTED_MODULE_11__["utcDays"]; });
24335
24336/* harmony import */ var _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utcWeek.js */ "./node_modules/d3-time/src/utcWeek.js");
24337/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeek", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcSunday"]; });
24338
24339/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeeks", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcSundays"]; });
24340
24341/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcSunday"]; });
24342
24343/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcSundays"]; });
24344
24345/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcMonday"]; });
24346
24347/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcMondays"]; });
24348
24349/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcTuesday"]; });
24350
24351/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcTuesdays"]; });
24352
24353/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcWednesday"]; });
24354
24355/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcWednesdays"]; });
24356
24357/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcThursday"]; });
24358
24359/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcThursdays"]; });
24360
24361/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcFriday"]; });
24362
24363/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcFridays"]; });
24364
24365/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcSaturday"]; });
24366
24367/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__["utcSaturdays"]; });
24368
24369/* harmony import */ var _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utcMonth.js */ "./node_modules/d3-time/src/utcMonth.js");
24370/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonth", function() { return _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__["default"]; });
24371
24372/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__["utcMonths"]; });
24373
24374/* harmony import */ var _utcYear_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utcYear.js */ "./node_modules/d3-time/src/utcYear.js");
24375/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYear", function() { return _utcYear_js__WEBPACK_IMPORTED_MODULE_14__["default"]; });
24376
24377/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return _utcYear_js__WEBPACK_IMPORTED_MODULE_14__["utcYears"]; });
24378
24379
24380
24381
24382
24383
24384
24385
24386
24387
24388
24389
24390
24391
24392
24393
24394
24395
24396
24397
24398
24399
24400
24401
24402
24403
24404
24405
24406
24407
24408
24409
24410/***/ }),
24411
24412/***/ "./node_modules/d3-time/src/interval.js":
24413/*!**********************************************!*\
24414 !*** ./node_modules/d3-time/src/interval.js ***!
24415 \**********************************************/
24416/*! exports provided: default */
24417/***/ (function(module, __webpack_exports__, __webpack_require__) {
24418
24419"use strict";
24420__webpack_require__.r(__webpack_exports__);
24421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return newInterval; });
24422var t0 = new Date,
24423 t1 = new Date;
24424
24425function newInterval(floori, offseti, count, field) {
24426
24427 function interval(date) {
24428 return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
24429 }
24430
24431 interval.floor = function(date) {
24432 return floori(date = new Date(+date)), date;
24433 };
24434
24435 interval.ceil = function(date) {
24436 return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
24437 };
24438
24439 interval.round = function(date) {
24440 var d0 = interval(date),
24441 d1 = interval.ceil(date);
24442 return date - d0 < d1 - date ? d0 : d1;
24443 };
24444
24445 interval.offset = function(date, step) {
24446 return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
24447 };
24448
24449 interval.range = function(start, stop, step) {
24450 var range = [], previous;
24451 start = interval.ceil(start);
24452 step = step == null ? 1 : Math.floor(step);
24453 if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
24454 do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
24455 while (previous < start && start < stop);
24456 return range;
24457 };
24458
24459 interval.filter = function(test) {
24460 return newInterval(function(date) {
24461 if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
24462 }, function(date, step) {
24463 if (date >= date) {
24464 if (step < 0) while (++step <= 0) {
24465 while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
24466 } else while (--step >= 0) {
24467 while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
24468 }
24469 }
24470 });
24471 };
24472
24473 if (count) {
24474 interval.count = function(start, end) {
24475 t0.setTime(+start), t1.setTime(+end);
24476 floori(t0), floori(t1);
24477 return Math.floor(count(t0, t1));
24478 };
24479
24480 interval.every = function(step) {
24481 step = Math.floor(step);
24482 return !isFinite(step) || !(step > 0) ? null
24483 : !(step > 1) ? interval
24484 : interval.filter(field
24485 ? function(d) { return field(d) % step === 0; }
24486 : function(d) { return interval.count(0, d) % step === 0; });
24487 };
24488 }
24489
24490 return interval;
24491}
24492
24493
24494/***/ }),
24495
24496/***/ "./node_modules/d3-time/src/millisecond.js":
24497/*!*************************************************!*\
24498 !*** ./node_modules/d3-time/src/millisecond.js ***!
24499 \*************************************************/
24500/*! exports provided: default, milliseconds */
24501/***/ (function(module, __webpack_exports__, __webpack_require__) {
24502
24503"use strict";
24504__webpack_require__.r(__webpack_exports__);
24505/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "milliseconds", function() { return milliseconds; });
24506/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24507
24508
24509var millisecond = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function() {
24510 // noop
24511}, function(date, step) {
24512 date.setTime(+date + step);
24513}, function(start, end) {
24514 return end - start;
24515});
24516
24517// An optimized implementation for this simple case.
24518millisecond.every = function(k) {
24519 k = Math.floor(k);
24520 if (!isFinite(k) || !(k > 0)) return null;
24521 if (!(k > 1)) return millisecond;
24522 return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24523 date.setTime(Math.floor(date / k) * k);
24524 }, function(date, step) {
24525 date.setTime(+date + step * k);
24526 }, function(start, end) {
24527 return (end - start) / k;
24528 });
24529};
24530
24531/* harmony default export */ __webpack_exports__["default"] = (millisecond);
24532var milliseconds = millisecond.range;
24533
24534
24535/***/ }),
24536
24537/***/ "./node_modules/d3-time/src/minute.js":
24538/*!********************************************!*\
24539 !*** ./node_modules/d3-time/src/minute.js ***!
24540 \********************************************/
24541/*! exports provided: default, minutes */
24542/***/ (function(module, __webpack_exports__, __webpack_require__) {
24543
24544"use strict";
24545__webpack_require__.r(__webpack_exports__);
24546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "minutes", function() { return minutes; });
24547/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24548/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24549
24550
24551
24552var minute = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24553 date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationSecond"]);
24554}, function(date, step) {
24555 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
24556}, function(start, end) {
24557 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationMinute"];
24558}, function(date) {
24559 return date.getMinutes();
24560});
24561
24562/* harmony default export */ __webpack_exports__["default"] = (minute);
24563var minutes = minute.range;
24564
24565
24566/***/ }),
24567
24568/***/ "./node_modules/d3-time/src/month.js":
24569/*!*******************************************!*\
24570 !*** ./node_modules/d3-time/src/month.js ***!
24571 \*******************************************/
24572/*! exports provided: default, months */
24573/***/ (function(module, __webpack_exports__, __webpack_require__) {
24574
24575"use strict";
24576__webpack_require__.r(__webpack_exports__);
24577/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "months", function() { return months; });
24578/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24579
24580
24581var month = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24582 date.setDate(1);
24583 date.setHours(0, 0, 0, 0);
24584}, function(date, step) {
24585 date.setMonth(date.getMonth() + step);
24586}, function(start, end) {
24587 return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
24588}, function(date) {
24589 return date.getMonth();
24590});
24591
24592/* harmony default export */ __webpack_exports__["default"] = (month);
24593var months = month.range;
24594
24595
24596/***/ }),
24597
24598/***/ "./node_modules/d3-time/src/second.js":
24599/*!********************************************!*\
24600 !*** ./node_modules/d3-time/src/second.js ***!
24601 \********************************************/
24602/*! exports provided: default, seconds */
24603/***/ (function(module, __webpack_exports__, __webpack_require__) {
24604
24605"use strict";
24606__webpack_require__.r(__webpack_exports__);
24607/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "seconds", function() { return seconds; });
24608/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24609/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24610
24611
24612
24613var second = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24614 date.setTime(date - date.getMilliseconds());
24615}, function(date, step) {
24616 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationSecond"]);
24617}, function(start, end) {
24618 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationSecond"];
24619}, function(date) {
24620 return date.getUTCSeconds();
24621});
24622
24623/* harmony default export */ __webpack_exports__["default"] = (second);
24624var seconds = second.range;
24625
24626
24627/***/ }),
24628
24629/***/ "./node_modules/d3-time/src/utcDay.js":
24630/*!********************************************!*\
24631 !*** ./node_modules/d3-time/src/utcDay.js ***!
24632 \********************************************/
24633/*! exports provided: default, utcDays */
24634/***/ (function(module, __webpack_exports__, __webpack_require__) {
24635
24636"use strict";
24637__webpack_require__.r(__webpack_exports__);
24638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return utcDays; });
24639/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24640/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24641
24642
24643
24644var utcDay = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24645 date.setUTCHours(0, 0, 0, 0);
24646}, function(date, step) {
24647 date.setUTCDate(date.getUTCDate() + step);
24648}, function(start, end) {
24649 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationDay"];
24650}, function(date) {
24651 return date.getUTCDate() - 1;
24652});
24653
24654/* harmony default export */ __webpack_exports__["default"] = (utcDay);
24655var utcDays = utcDay.range;
24656
24657
24658/***/ }),
24659
24660/***/ "./node_modules/d3-time/src/utcHour.js":
24661/*!*********************************************!*\
24662 !*** ./node_modules/d3-time/src/utcHour.js ***!
24663 \*********************************************/
24664/*! exports provided: default, utcHours */
24665/***/ (function(module, __webpack_exports__, __webpack_require__) {
24666
24667"use strict";
24668__webpack_require__.r(__webpack_exports__);
24669/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return utcHours; });
24670/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24671/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24672
24673
24674
24675var utcHour = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24676 date.setUTCMinutes(0, 0, 0);
24677}, function(date, step) {
24678 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationHour"]);
24679}, function(start, end) {
24680 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationHour"];
24681}, function(date) {
24682 return date.getUTCHours();
24683});
24684
24685/* harmony default export */ __webpack_exports__["default"] = (utcHour);
24686var utcHours = utcHour.range;
24687
24688
24689/***/ }),
24690
24691/***/ "./node_modules/d3-time/src/utcMinute.js":
24692/*!***********************************************!*\
24693 !*** ./node_modules/d3-time/src/utcMinute.js ***!
24694 \***********************************************/
24695/*! exports provided: default, utcMinutes */
24696/***/ (function(module, __webpack_exports__, __webpack_require__) {
24697
24698"use strict";
24699__webpack_require__.r(__webpack_exports__);
24700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return utcMinutes; });
24701/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24702/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24703
24704
24705
24706var utcMinute = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24707 date.setUTCSeconds(0, 0);
24708}, function(date, step) {
24709 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]);
24710}, function(start, end) {
24711 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationMinute"];
24712}, function(date) {
24713 return date.getUTCMinutes();
24714});
24715
24716/* harmony default export */ __webpack_exports__["default"] = (utcMinute);
24717var utcMinutes = utcMinute.range;
24718
24719
24720/***/ }),
24721
24722/***/ "./node_modules/d3-time/src/utcMonth.js":
24723/*!**********************************************!*\
24724 !*** ./node_modules/d3-time/src/utcMonth.js ***!
24725 \**********************************************/
24726/*! exports provided: default, utcMonths */
24727/***/ (function(module, __webpack_exports__, __webpack_require__) {
24728
24729"use strict";
24730__webpack_require__.r(__webpack_exports__);
24731/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return utcMonths; });
24732/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24733
24734
24735var utcMonth = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24736 date.setUTCDate(1);
24737 date.setUTCHours(0, 0, 0, 0);
24738}, function(date, step) {
24739 date.setUTCMonth(date.getUTCMonth() + step);
24740}, function(start, end) {
24741 return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
24742}, function(date) {
24743 return date.getUTCMonth();
24744});
24745
24746/* harmony default export */ __webpack_exports__["default"] = (utcMonth);
24747var utcMonths = utcMonth.range;
24748
24749
24750/***/ }),
24751
24752/***/ "./node_modules/d3-time/src/utcWeek.js":
24753/*!*********************************************!*\
24754 !*** ./node_modules/d3-time/src/utcWeek.js ***!
24755 \*********************************************/
24756/*! exports provided: utcSunday, utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSundays, utcMondays, utcTuesdays, utcWednesdays, utcThursdays, utcFridays, utcSaturdays */
24757/***/ (function(module, __webpack_exports__, __webpack_require__) {
24758
24759"use strict";
24760__webpack_require__.r(__webpack_exports__);
24761/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return utcSunday; });
24762/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return utcMonday; });
24763/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return utcTuesday; });
24764/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return utcWednesday; });
24765/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return utcThursday; });
24766/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return utcFriday; });
24767/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return utcSaturday; });
24768/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return utcSundays; });
24769/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return utcMondays; });
24770/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return utcTuesdays; });
24771/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return utcWednesdays; });
24772/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return utcThursdays; });
24773/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return utcFridays; });
24774/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return utcSaturdays; });
24775/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24776/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24777
24778
24779
24780function utcWeekday(i) {
24781 return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24782 date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
24783 date.setUTCHours(0, 0, 0, 0);
24784 }, function(date, step) {
24785 date.setUTCDate(date.getUTCDate() + step * 7);
24786 }, function(start, end) {
24787 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationWeek"];
24788 });
24789}
24790
24791var utcSunday = utcWeekday(0);
24792var utcMonday = utcWeekday(1);
24793var utcTuesday = utcWeekday(2);
24794var utcWednesday = utcWeekday(3);
24795var utcThursday = utcWeekday(4);
24796var utcFriday = utcWeekday(5);
24797var utcSaturday = utcWeekday(6);
24798
24799var utcSundays = utcSunday.range;
24800var utcMondays = utcMonday.range;
24801var utcTuesdays = utcTuesday.range;
24802var utcWednesdays = utcWednesday.range;
24803var utcThursdays = utcThursday.range;
24804var utcFridays = utcFriday.range;
24805var utcSaturdays = utcSaturday.range;
24806
24807
24808/***/ }),
24809
24810/***/ "./node_modules/d3-time/src/utcYear.js":
24811/*!*********************************************!*\
24812 !*** ./node_modules/d3-time/src/utcYear.js ***!
24813 \*********************************************/
24814/*! exports provided: default, utcYears */
24815/***/ (function(module, __webpack_exports__, __webpack_require__) {
24816
24817"use strict";
24818__webpack_require__.r(__webpack_exports__);
24819/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return utcYears; });
24820/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24821
24822
24823var utcYear = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24824 date.setUTCMonth(0, 1);
24825 date.setUTCHours(0, 0, 0, 0);
24826}, function(date, step) {
24827 date.setUTCFullYear(date.getUTCFullYear() + step);
24828}, function(start, end) {
24829 return end.getUTCFullYear() - start.getUTCFullYear();
24830}, function(date) {
24831 return date.getUTCFullYear();
24832});
24833
24834// An optimized implementation for this simple case.
24835utcYear.every = function(k) {
24836 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24837 date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
24838 date.setUTCMonth(0, 1);
24839 date.setUTCHours(0, 0, 0, 0);
24840 }, function(date, step) {
24841 date.setUTCFullYear(date.getUTCFullYear() + step * k);
24842 });
24843};
24844
24845/* harmony default export */ __webpack_exports__["default"] = (utcYear);
24846var utcYears = utcYear.range;
24847
24848
24849/***/ }),
24850
24851/***/ "./node_modules/d3-time/src/week.js":
24852/*!******************************************!*\
24853 !*** ./node_modules/d3-time/src/week.js ***!
24854 \******************************************/
24855/*! exports provided: sunday, monday, tuesday, wednesday, thursday, friday, saturday, sundays, mondays, tuesdays, wednesdays, thursdays, fridays, saturdays */
24856/***/ (function(module, __webpack_exports__, __webpack_require__) {
24857
24858"use strict";
24859__webpack_require__.r(__webpack_exports__);
24860/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sunday", function() { return sunday; });
24861/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monday", function() { return monday; });
24862/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tuesday", function() { return tuesday; });
24863/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wednesday", function() { return wednesday; });
24864/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "thursday", function() { return thursday; });
24865/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "friday", function() { return friday; });
24866/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "saturday", function() { return saturday; });
24867/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sundays", function() { return sundays; });
24868/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mondays", function() { return mondays; });
24869/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tuesdays", function() { return tuesdays; });
24870/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wednesdays", function() { return wednesdays; });
24871/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "thursdays", function() { return thursdays; });
24872/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fridays", function() { return fridays; });
24873/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "saturdays", function() { return saturdays; });
24874/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24875/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
24876
24877
24878
24879function weekday(i) {
24880 return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24881 date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
24882 date.setHours(0, 0, 0, 0);
24883 }, function(date, step) {
24884 date.setDate(date.getDate() + step * 7);
24885 }, function(start, end) {
24886 return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationMinute"]) / _duration_js__WEBPACK_IMPORTED_MODULE_1__["durationWeek"];
24887 });
24888}
24889
24890var sunday = weekday(0);
24891var monday = weekday(1);
24892var tuesday = weekday(2);
24893var wednesday = weekday(3);
24894var thursday = weekday(4);
24895var friday = weekday(5);
24896var saturday = weekday(6);
24897
24898var sundays = sunday.range;
24899var mondays = monday.range;
24900var tuesdays = tuesday.range;
24901var wednesdays = wednesday.range;
24902var thursdays = thursday.range;
24903var fridays = friday.range;
24904var saturdays = saturday.range;
24905
24906
24907/***/ }),
24908
24909/***/ "./node_modules/d3-time/src/year.js":
24910/*!******************************************!*\
24911 !*** ./node_modules/d3-time/src/year.js ***!
24912 \******************************************/
24913/*! exports provided: default, years */
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__, "years", function() { return years; });
24919/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
24920
24921
24922var year = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24923 date.setMonth(0, 1);
24924 date.setHours(0, 0, 0, 0);
24925}, function(date, step) {
24926 date.setFullYear(date.getFullYear() + step);
24927}, function(start, end) {
24928 return end.getFullYear() - start.getFullYear();
24929}, function(date) {
24930 return date.getFullYear();
24931});
24932
24933// An optimized implementation for this simple case.
24934year.every = function(k) {
24935 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
24936 date.setFullYear(Math.floor(date.getFullYear() / k) * k);
24937 date.setMonth(0, 1);
24938 date.setHours(0, 0, 0, 0);
24939 }, function(date, step) {
24940 date.setFullYear(date.getFullYear() + step * k);
24941 });
24942};
24943
24944/* harmony default export */ __webpack_exports__["default"] = (year);
24945var years = year.range;
24946
24947
24948/***/ }),
24949
24950/***/ "./node_modules/d3-timer/src/index.js":
24951/*!********************************************!*\
24952 !*** ./node_modules/d3-timer/src/index.js ***!
24953 \********************************************/
24954/*! exports provided: now, timer, timerFlush, timeout, interval */
24955/***/ (function(module, __webpack_exports__, __webpack_require__) {
24956
24957"use strict";
24958__webpack_require__.r(__webpack_exports__);
24959/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ "./node_modules/d3-timer/src/timer.js");
24960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "now", function() { return _timer_js__WEBPACK_IMPORTED_MODULE_0__["now"]; });
24961
24962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return _timer_js__WEBPACK_IMPORTED_MODULE_0__["timer"]; });
24963
24964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return _timer_js__WEBPACK_IMPORTED_MODULE_0__["timerFlush"]; });
24965
24966/* harmony import */ var _timeout_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./timeout.js */ "./node_modules/d3-timer/src/timeout.js");
24967/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _timeout_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
24968
24969/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-timer/src/interval.js");
24970/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return _interval_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
24971
24972
24973
24974
24975
24976
24977
24978
24979/***/ }),
24980
24981/***/ "./node_modules/d3-timer/src/interval.js":
24982/*!***********************************************!*\
24983 !*** ./node_modules/d3-timer/src/interval.js ***!
24984 \***********************************************/
24985/*! exports provided: default */
24986/***/ (function(module, __webpack_exports__, __webpack_require__) {
24987
24988"use strict";
24989__webpack_require__.r(__webpack_exports__);
24990/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ "./node_modules/d3-timer/src/timer.js");
24991
24992
24993/* harmony default export */ __webpack_exports__["default"] = (function(callback, delay, time) {
24994 var t = new _timer_js__WEBPACK_IMPORTED_MODULE_0__["Timer"], total = delay;
24995 if (delay == null) return t.restart(callback, delay, time), t;
24996 delay = +delay, time = time == null ? Object(_timer_js__WEBPACK_IMPORTED_MODULE_0__["now"])() : +time;
24997 t.restart(function tick(elapsed) {
24998 elapsed += total;
24999 t.restart(tick, total += delay, time);
25000 callback(elapsed);
25001 }, delay, time);
25002 return t;
25003});
25004
25005
25006/***/ }),
25007
25008/***/ "./node_modules/d3-timer/src/timeout.js":
25009/*!**********************************************!*\
25010 !*** ./node_modules/d3-timer/src/timeout.js ***!
25011 \**********************************************/
25012/*! exports provided: default */
25013/***/ (function(module, __webpack_exports__, __webpack_require__) {
25014
25015"use strict";
25016__webpack_require__.r(__webpack_exports__);
25017/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ "./node_modules/d3-timer/src/timer.js");
25018
25019
25020/* harmony default export */ __webpack_exports__["default"] = (function(callback, delay, time) {
25021 var t = new _timer_js__WEBPACK_IMPORTED_MODULE_0__["Timer"];
25022 delay = delay == null ? 0 : +delay;
25023 t.restart(function(elapsed) {
25024 t.stop();
25025 callback(elapsed + delay);
25026 }, delay, time);
25027 return t;
25028});
25029
25030
25031/***/ }),
25032
25033/***/ "./node_modules/d3-timer/src/timer.js":
25034/*!********************************************!*\
25035 !*** ./node_modules/d3-timer/src/timer.js ***!
25036 \********************************************/
25037/*! exports provided: now, Timer, timer, timerFlush */
25038/***/ (function(module, __webpack_exports__, __webpack_require__) {
25039
25040"use strict";
25041__webpack_require__.r(__webpack_exports__);
25042/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "now", function() { return now; });
25043/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return Timer; });
25044/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return timer; });
25045/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return timerFlush; });
25046var frame = 0, // is an animation frame pending?
25047 timeout = 0, // is a timeout pending?
25048 interval = 0, // are any timers active?
25049 pokeDelay = 1000, // how frequently we check for clock skew
25050 taskHead,
25051 taskTail,
25052 clockLast = 0,
25053 clockNow = 0,
25054 clockSkew = 0,
25055 clock = typeof performance === "object" && performance.now ? performance : Date,
25056 setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };
25057
25058function now() {
25059 return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
25060}
25061
25062function clearNow() {
25063 clockNow = 0;
25064}
25065
25066function Timer() {
25067 this._call =
25068 this._time =
25069 this._next = null;
25070}
25071
25072Timer.prototype = timer.prototype = {
25073 constructor: Timer,
25074 restart: function(callback, delay, time) {
25075 if (typeof callback !== "function") throw new TypeError("callback is not a function");
25076 time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
25077 if (!this._next && taskTail !== this) {
25078 if (taskTail) taskTail._next = this;
25079 else taskHead = this;
25080 taskTail = this;
25081 }
25082 this._call = callback;
25083 this._time = time;
25084 sleep();
25085 },
25086 stop: function() {
25087 if (this._call) {
25088 this._call = null;
25089 this._time = Infinity;
25090 sleep();
25091 }
25092 }
25093};
25094
25095function timer(callback, delay, time) {
25096 var t = new Timer;
25097 t.restart(callback, delay, time);
25098 return t;
25099}
25100
25101function timerFlush() {
25102 now(); // Get the current time, if not already set.
25103 ++frame; // Pretend we’ve set an alarm, if we haven’t already.
25104 var t = taskHead, e;
25105 while (t) {
25106 if ((e = clockNow - t._time) >= 0) t._call.call(null, e);
25107 t = t._next;
25108 }
25109 --frame;
25110}
25111
25112function wake() {
25113 clockNow = (clockLast = clock.now()) + clockSkew;
25114 frame = timeout = 0;
25115 try {
25116 timerFlush();
25117 } finally {
25118 frame = 0;
25119 nap();
25120 clockNow = 0;
25121 }
25122}
25123
25124function poke() {
25125 var now = clock.now(), delay = now - clockLast;
25126 if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
25127}
25128
25129function nap() {
25130 var t0, t1 = taskHead, t2, time = Infinity;
25131 while (t1) {
25132 if (t1._call) {
25133 if (time > t1._time) time = t1._time;
25134 t0 = t1, t1 = t1._next;
25135 } else {
25136 t2 = t1._next, t1._next = null;
25137 t1 = t0 ? t0._next = t2 : taskHead = t2;
25138 }
25139 }
25140 taskTail = t0;
25141 sleep(time);
25142}
25143
25144function sleep(time) {
25145 if (frame) return; // Soonest alarm already set, or will be.
25146 if (timeout) timeout = clearTimeout(timeout);
25147 var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
25148 if (delay > 24) {
25149 if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
25150 if (interval) interval = clearInterval(interval);
25151 } else {
25152 if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
25153 frame = 1, setFrame(wake);
25154 }
25155}
25156
25157
25158/***/ }),
25159
25160/***/ "./node_modules/d3-transition/src/active.js":
25161/*!**************************************************!*\
25162 !*** ./node_modules/d3-transition/src/active.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 import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transition/index.js */ "./node_modules/d3-transition/src/transition/index.js");
25170/* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transition/schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
25171
25172
25173
25174var root = [null];
25175
25176/* harmony default export */ __webpack_exports__["default"] = (function(node, name) {
25177 var schedules = node.__transition,
25178 schedule,
25179 i;
25180
25181 if (schedules) {
25182 name = name == null ? null : name + "";
25183 for (i in schedules) {
25184 if ((schedule = schedules[i]).state > _transition_schedule_js__WEBPACK_IMPORTED_MODULE_1__["SCHEDULED"] && schedule.name === name) {
25185 return new _transition_index_js__WEBPACK_IMPORTED_MODULE_0__["Transition"]([[node]], root, name, +i);
25186 }
25187 }
25188 }
25189
25190 return null;
25191});
25192
25193
25194/***/ }),
25195
25196/***/ "./node_modules/d3-transition/src/index.js":
25197/*!*************************************************!*\
25198 !*** ./node_modules/d3-transition/src/index.js ***!
25199 \*************************************************/
25200/*! exports provided: transition, active, interrupt */
25201/***/ (function(module, __webpack_exports__, __webpack_require__) {
25202
25203"use strict";
25204__webpack_require__.r(__webpack_exports__);
25205/* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index.js */ "./node_modules/d3-transition/src/selection/index.js");
25206/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transition/index.js */ "./node_modules/d3-transition/src/transition/index.js");
25207/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return _transition_index_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
25208
25209/* harmony import */ var _active_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./active.js */ "./node_modules/d3-transition/src/active.js");
25210/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "active", function() { return _active_js__WEBPACK_IMPORTED_MODULE_2__["default"]; });
25211
25212/* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interrupt.js */ "./node_modules/d3-transition/src/interrupt.js");
25213/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interrupt", function() { return _interrupt_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
25214
25215
25216
25217
25218
25219
25220
25221/***/ }),
25222
25223/***/ "./node_modules/d3-transition/src/interrupt.js":
25224/*!*****************************************************!*\
25225 !*** ./node_modules/d3-transition/src/interrupt.js ***!
25226 \*****************************************************/
25227/*! exports provided: default */
25228/***/ (function(module, __webpack_exports__, __webpack_require__) {
25229
25230"use strict";
25231__webpack_require__.r(__webpack_exports__);
25232/* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transition/schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
25233
25234
25235/* harmony default export */ __webpack_exports__["default"] = (function(node, name) {
25236 var schedules = node.__transition,
25237 schedule,
25238 active,
25239 empty = true,
25240 i;
25241
25242 if (!schedules) return;
25243
25244 name = name == null ? null : name + "";
25245
25246 for (i in schedules) {
25247 if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
25248 active = schedule.state > _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__["STARTING"] && schedule.state < _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__["ENDING"];
25249 schedule.state = _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__["ENDED"];
25250 schedule.timer.stop();
25251 schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group);
25252 delete schedules[i];
25253 }
25254
25255 if (empty) delete node.__transition;
25256});
25257
25258
25259/***/ }),
25260
25261/***/ "./node_modules/d3-transition/src/selection/index.js":
25262/*!***********************************************************!*\
25263 !*** ./node_modules/d3-transition/src/selection/index.js ***!
25264 \***********************************************************/
25265/*! no exports provided */
25266/***/ (function(module, __webpack_exports__, __webpack_require__) {
25267
25268"use strict";
25269__webpack_require__.r(__webpack_exports__);
25270/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25271/* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./interrupt.js */ "./node_modules/d3-transition/src/selection/interrupt.js");
25272/* harmony import */ var _transition_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transition.js */ "./node_modules/d3-transition/src/selection/transition.js");
25273
25274
25275
25276
25277d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.interrupt = _interrupt_js__WEBPACK_IMPORTED_MODULE_1__["default"];
25278d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.transition = _transition_js__WEBPACK_IMPORTED_MODULE_2__["default"];
25279
25280
25281/***/ }),
25282
25283/***/ "./node_modules/d3-transition/src/selection/interrupt.js":
25284/*!***************************************************************!*\
25285 !*** ./node_modules/d3-transition/src/selection/interrupt.js ***!
25286 \***************************************************************/
25287/*! exports provided: default */
25288/***/ (function(module, __webpack_exports__, __webpack_require__) {
25289
25290"use strict";
25291__webpack_require__.r(__webpack_exports__);
25292/* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interrupt.js */ "./node_modules/d3-transition/src/interrupt.js");
25293
25294
25295/* harmony default export */ __webpack_exports__["default"] = (function(name) {
25296 return this.each(function() {
25297 Object(_interrupt_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this, name);
25298 });
25299});
25300
25301
25302/***/ }),
25303
25304/***/ "./node_modules/d3-transition/src/selection/transition.js":
25305/*!****************************************************************!*\
25306 !*** ./node_modules/d3-transition/src/selection/transition.js ***!
25307 \****************************************************************/
25308/*! exports provided: default */
25309/***/ (function(module, __webpack_exports__, __webpack_require__) {
25310
25311"use strict";
25312__webpack_require__.r(__webpack_exports__);
25313/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transition/index.js */ "./node_modules/d3-transition/src/transition/index.js");
25314/* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transition/schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
25315/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-ease */ "./node_modules/d3-ease/src/index.js");
25316/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
25317
25318
25319
25320
25321
25322var defaultTiming = {
25323 time: null, // Set on use.
25324 delay: 0,
25325 duration: 250,
25326 ease: d3_ease__WEBPACK_IMPORTED_MODULE_2__["easeCubicInOut"]
25327};
25328
25329function inherit(node, id) {
25330 var timing;
25331 while (!(timing = node.__transition) || !(timing = timing[id])) {
25332 if (!(node = node.parentNode)) {
25333 return defaultTiming.time = Object(d3_timer__WEBPACK_IMPORTED_MODULE_3__["now"])(), defaultTiming;
25334 }
25335 }
25336 return timing;
25337}
25338
25339/* harmony default export */ __webpack_exports__["default"] = (function(name) {
25340 var id,
25341 timing;
25342
25343 if (name instanceof _transition_index_js__WEBPACK_IMPORTED_MODULE_0__["Transition"]) {
25344 id = name._id, name = name._name;
25345 } else {
25346 id = Object(_transition_index_js__WEBPACK_IMPORTED_MODULE_0__["newId"])(), (timing = defaultTiming).time = Object(d3_timer__WEBPACK_IMPORTED_MODULE_3__["now"])(), name = name == null ? null : name + "";
25347 }
25348
25349 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
25350 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
25351 if (node = group[i]) {
25352 Object(_transition_schedule_js__WEBPACK_IMPORTED_MODULE_1__["default"])(node, name, id, i, group, timing || inherit(node, id));
25353 }
25354 }
25355 }
25356
25357 return new _transition_index_js__WEBPACK_IMPORTED_MODULE_0__["Transition"](groups, this._parents, name, id);
25358});
25359
25360
25361/***/ }),
25362
25363/***/ "./node_modules/d3-transition/src/transition/attr.js":
25364/*!***********************************************************!*\
25365 !*** ./node_modules/d3-transition/src/transition/attr.js ***!
25366 \***********************************************************/
25367/*! exports provided: default */
25368/***/ (function(module, __webpack_exports__, __webpack_require__) {
25369
25370"use strict";
25371__webpack_require__.r(__webpack_exports__);
25372/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
25373/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25374/* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tween.js */ "./node_modules/d3-transition/src/transition/tween.js");
25375/* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interpolate.js */ "./node_modules/d3-transition/src/transition/interpolate.js");
25376
25377
25378
25379
25380
25381function attrRemove(name) {
25382 return function() {
25383 this.removeAttribute(name);
25384 };
25385}
25386
25387function attrRemoveNS(fullname) {
25388 return function() {
25389 this.removeAttributeNS(fullname.space, fullname.local);
25390 };
25391}
25392
25393function attrConstant(name, interpolate, value1) {
25394 var string00,
25395 string1 = value1 + "",
25396 interpolate0;
25397 return function() {
25398 var string0 = this.getAttribute(name);
25399 return string0 === string1 ? null
25400 : string0 === string00 ? interpolate0
25401 : interpolate0 = interpolate(string00 = string0, value1);
25402 };
25403}
25404
25405function attrConstantNS(fullname, interpolate, value1) {
25406 var string00,
25407 string1 = value1 + "",
25408 interpolate0;
25409 return function() {
25410 var string0 = this.getAttributeNS(fullname.space, fullname.local);
25411 return string0 === string1 ? null
25412 : string0 === string00 ? interpolate0
25413 : interpolate0 = interpolate(string00 = string0, value1);
25414 };
25415}
25416
25417function attrFunction(name, interpolate, value) {
25418 var string00,
25419 string10,
25420 interpolate0;
25421 return function() {
25422 var string0, value1 = value(this), string1;
25423 if (value1 == null) return void this.removeAttribute(name);
25424 string0 = this.getAttribute(name);
25425 string1 = value1 + "";
25426 return string0 === string1 ? null
25427 : string0 === string00 && string1 === string10 ? interpolate0
25428 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
25429 };
25430}
25431
25432function attrFunctionNS(fullname, interpolate, value) {
25433 var string00,
25434 string10,
25435 interpolate0;
25436 return function() {
25437 var string0, value1 = value(this), string1;
25438 if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
25439 string0 = this.getAttributeNS(fullname.space, fullname.local);
25440 string1 = value1 + "";
25441 return string0 === string1 ? null
25442 : string0 === string00 && string1 === string10 ? interpolate0
25443 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
25444 };
25445}
25446
25447/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
25448 var fullname = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["namespace"])(name), i = fullname === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["interpolateTransformSvg"] : _interpolate_js__WEBPACK_IMPORTED_MODULE_3__["default"];
25449 return this.attrTween(name, typeof value === "function"
25450 ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, Object(_tween_js__WEBPACK_IMPORTED_MODULE_2__["tweenValue"])(this, "attr." + name, value))
25451 : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)
25452 : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));
25453});
25454
25455
25456/***/ }),
25457
25458/***/ "./node_modules/d3-transition/src/transition/attrTween.js":
25459/*!****************************************************************!*\
25460 !*** ./node_modules/d3-transition/src/transition/attrTween.js ***!
25461 \****************************************************************/
25462/*! exports provided: default */
25463/***/ (function(module, __webpack_exports__, __webpack_require__) {
25464
25465"use strict";
25466__webpack_require__.r(__webpack_exports__);
25467/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25468
25469
25470function attrInterpolate(name, i) {
25471 return function(t) {
25472 this.setAttribute(name, i.call(this, t));
25473 };
25474}
25475
25476function attrInterpolateNS(fullname, i) {
25477 return function(t) {
25478 this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
25479 };
25480}
25481
25482function attrTweenNS(fullname, value) {
25483 var t0, i0;
25484 function tween() {
25485 var i = value.apply(this, arguments);
25486 if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);
25487 return t0;
25488 }
25489 tween._value = value;
25490 return tween;
25491}
25492
25493function attrTween(name, value) {
25494 var t0, i0;
25495 function tween() {
25496 var i = value.apply(this, arguments);
25497 if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);
25498 return t0;
25499 }
25500 tween._value = value;
25501 return tween;
25502}
25503
25504/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
25505 var key = "attr." + name;
25506 if (arguments.length < 2) return (key = this.tween(key)) && key._value;
25507 if (value == null) return this.tween(key, null);
25508 if (typeof value !== "function") throw new Error;
25509 var fullname = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["namespace"])(name);
25510 return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
25511});
25512
25513
25514/***/ }),
25515
25516/***/ "./node_modules/d3-transition/src/transition/delay.js":
25517/*!************************************************************!*\
25518 !*** ./node_modules/d3-transition/src/transition/delay.js ***!
25519 \************************************************************/
25520/*! exports provided: default */
25521/***/ (function(module, __webpack_exports__, __webpack_require__) {
25522
25523"use strict";
25524__webpack_require__.r(__webpack_exports__);
25525/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
25526
25527
25528function delayFunction(id, value) {
25529 return function() {
25530 Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["init"])(this, id).delay = +value.apply(this, arguments);
25531 };
25532}
25533
25534function delayConstant(id, value) {
25535 return value = +value, function() {
25536 Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["init"])(this, id).delay = value;
25537 };
25538}
25539
25540/* harmony default export */ __webpack_exports__["default"] = (function(value) {
25541 var id = this._id;
25542
25543 return arguments.length
25544 ? this.each((typeof value === "function"
25545 ? delayFunction
25546 : delayConstant)(id, value))
25547 : Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).delay;
25548});
25549
25550
25551/***/ }),
25552
25553/***/ "./node_modules/d3-transition/src/transition/duration.js":
25554/*!***************************************************************!*\
25555 !*** ./node_modules/d3-transition/src/transition/duration.js ***!
25556 \***************************************************************/
25557/*! exports provided: default */
25558/***/ (function(module, __webpack_exports__, __webpack_require__) {
25559
25560"use strict";
25561__webpack_require__.r(__webpack_exports__);
25562/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
25563
25564
25565function durationFunction(id, value) {
25566 return function() {
25567 Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).duration = +value.apply(this, arguments);
25568 };
25569}
25570
25571function durationConstant(id, value) {
25572 return value = +value, function() {
25573 Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).duration = value;
25574 };
25575}
25576
25577/* harmony default export */ __webpack_exports__["default"] = (function(value) {
25578 var id = this._id;
25579
25580 return arguments.length
25581 ? this.each((typeof value === "function"
25582 ? durationFunction
25583 : durationConstant)(id, value))
25584 : Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).duration;
25585});
25586
25587
25588/***/ }),
25589
25590/***/ "./node_modules/d3-transition/src/transition/ease.js":
25591/*!***********************************************************!*\
25592 !*** ./node_modules/d3-transition/src/transition/ease.js ***!
25593 \***********************************************************/
25594/*! exports provided: default */
25595/***/ (function(module, __webpack_exports__, __webpack_require__) {
25596
25597"use strict";
25598__webpack_require__.r(__webpack_exports__);
25599/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
25600
25601
25602function easeConstant(id, value) {
25603 if (typeof value !== "function") throw new Error;
25604 return function() {
25605 Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id).ease = value;
25606 };
25607}
25608
25609/* harmony default export */ __webpack_exports__["default"] = (function(value) {
25610 var id = this._id;
25611
25612 return arguments.length
25613 ? this.each(easeConstant(id, value))
25614 : Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).ease;
25615});
25616
25617
25618/***/ }),
25619
25620/***/ "./node_modules/d3-transition/src/transition/end.js":
25621/*!**********************************************************!*\
25622 !*** ./node_modules/d3-transition/src/transition/end.js ***!
25623 \**********************************************************/
25624/*! exports provided: default */
25625/***/ (function(module, __webpack_exports__, __webpack_require__) {
25626
25627"use strict";
25628__webpack_require__.r(__webpack_exports__);
25629/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
25630
25631
25632/* harmony default export */ __webpack_exports__["default"] = (function() {
25633 var on0, on1, that = this, id = that._id, size = that.size();
25634 return new Promise(function(resolve, reject) {
25635 var cancel = {value: reject},
25636 end = {value: function() { if (--size === 0) resolve(); }};
25637
25638 that.each(function() {
25639 var schedule = Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id),
25640 on = schedule.on;
25641
25642 // If this node shared a dispatch with the previous node,
25643 // just assign the updated shared dispatch and we’re done!
25644 // Otherwise, copy-on-write.
25645 if (on !== on0) {
25646 on1 = (on0 = on).copy();
25647 on1._.cancel.push(cancel);
25648 on1._.interrupt.push(cancel);
25649 on1._.end.push(end);
25650 }
25651
25652 schedule.on = on1;
25653 });
25654 });
25655});
25656
25657
25658/***/ }),
25659
25660/***/ "./node_modules/d3-transition/src/transition/filter.js":
25661/*!*************************************************************!*\
25662 !*** ./node_modules/d3-transition/src/transition/filter.js ***!
25663 \*************************************************************/
25664/*! exports provided: default */
25665/***/ (function(module, __webpack_exports__, __webpack_require__) {
25666
25667"use strict";
25668__webpack_require__.r(__webpack_exports__);
25669/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25670/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
25671
25672
25673
25674/* harmony default export */ __webpack_exports__["default"] = (function(match) {
25675 if (typeof match !== "function") match = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["matcher"])(match);
25676
25677 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
25678 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
25679 if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
25680 subgroup.push(node);
25681 }
25682 }
25683 }
25684
25685 return new _index_js__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, this._parents, this._name, this._id);
25686});
25687
25688
25689/***/ }),
25690
25691/***/ "./node_modules/d3-transition/src/transition/index.js":
25692/*!************************************************************!*\
25693 !*** ./node_modules/d3-transition/src/transition/index.js ***!
25694 \************************************************************/
25695/*! exports provided: Transition, default, newId */
25696/***/ (function(module, __webpack_exports__, __webpack_require__) {
25697
25698"use strict";
25699__webpack_require__.r(__webpack_exports__);
25700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transition", function() { return Transition; });
25701/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return transition; });
25702/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "newId", function() { return newId; });
25703/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
25704/* harmony import */ var _attr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./attr.js */ "./node_modules/d3-transition/src/transition/attr.js");
25705/* harmony import */ var _attrTween_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./attrTween.js */ "./node_modules/d3-transition/src/transition/attrTween.js");
25706/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delay.js */ "./node_modules/d3-transition/src/transition/delay.js");
25707/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-transition/src/transition/duration.js");
25708/* harmony import */ var _ease_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ease.js */ "./node_modules/d3-transition/src/transition/ease.js");
25709/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter.js */ "./node_modules/d3-transition/src/transition/filter.js");
25710/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./merge.js */ "./node_modules/d3-transition/src/transition/merge.js");
25711/* harmony import */ var _on_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./on.js */ "./node_modules/d3-transition/src/transition/on.js");
25712/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./remove.js */ "./node_modules/d3-transition/src/transition/remove.js");
25713/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./select.js */ "./node_modules/d3-transition/src/transition/select.js");
25714/* harmony import */ var _selectAll_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./selectAll.js */ "./node_modules/d3-transition/src/transition/selectAll.js");
25715/* harmony import */ var _selection_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./selection.js */ "./node_modules/d3-transition/src/transition/selection.js");
25716/* harmony import */ var _style_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./style.js */ "./node_modules/d3-transition/src/transition/style.js");
25717/* harmony import */ var _styleTween_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./styleTween.js */ "./node_modules/d3-transition/src/transition/styleTween.js");
25718/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./text.js */ "./node_modules/d3-transition/src/transition/text.js");
25719/* harmony import */ var _textTween_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./textTween.js */ "./node_modules/d3-transition/src/transition/textTween.js");
25720/* harmony import */ var _transition_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./transition.js */ "./node_modules/d3-transition/src/transition/transition.js");
25721/* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./tween.js */ "./node_modules/d3-transition/src/transition/tween.js");
25722/* harmony import */ var _end_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./end.js */ "./node_modules/d3-transition/src/transition/end.js");
25723
25724
25725
25726
25727
25728
25729
25730
25731
25732
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
25743
25744var id = 0;
25745
25746function Transition(groups, parents, name, id) {
25747 this._groups = groups;
25748 this._parents = parents;
25749 this._name = name;
25750 this._id = id;
25751}
25752
25753function transition(name) {
25754 return Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"])().transition(name);
25755}
25756
25757function newId() {
25758 return ++id;
25759}
25760
25761var selection_prototype = d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype;
25762
25763Transition.prototype = transition.prototype = {
25764 constructor: Transition,
25765 select: _select_js__WEBPACK_IMPORTED_MODULE_10__["default"],
25766 selectAll: _selectAll_js__WEBPACK_IMPORTED_MODULE_11__["default"],
25767 filter: _filter_js__WEBPACK_IMPORTED_MODULE_6__["default"],
25768 merge: _merge_js__WEBPACK_IMPORTED_MODULE_7__["default"],
25769 selection: _selection_js__WEBPACK_IMPORTED_MODULE_12__["default"],
25770 transition: _transition_js__WEBPACK_IMPORTED_MODULE_17__["default"],
25771 call: selection_prototype.call,
25772 nodes: selection_prototype.nodes,
25773 node: selection_prototype.node,
25774 size: selection_prototype.size,
25775 empty: selection_prototype.empty,
25776 each: selection_prototype.each,
25777 on: _on_js__WEBPACK_IMPORTED_MODULE_8__["default"],
25778 attr: _attr_js__WEBPACK_IMPORTED_MODULE_1__["default"],
25779 attrTween: _attrTween_js__WEBPACK_IMPORTED_MODULE_2__["default"],
25780 style: _style_js__WEBPACK_IMPORTED_MODULE_13__["default"],
25781 styleTween: _styleTween_js__WEBPACK_IMPORTED_MODULE_14__["default"],
25782 text: _text_js__WEBPACK_IMPORTED_MODULE_15__["default"],
25783 textTween: _textTween_js__WEBPACK_IMPORTED_MODULE_16__["default"],
25784 remove: _remove_js__WEBPACK_IMPORTED_MODULE_9__["default"],
25785 tween: _tween_js__WEBPACK_IMPORTED_MODULE_18__["default"],
25786 delay: _delay_js__WEBPACK_IMPORTED_MODULE_3__["default"],
25787 duration: _duration_js__WEBPACK_IMPORTED_MODULE_4__["default"],
25788 ease: _ease_js__WEBPACK_IMPORTED_MODULE_5__["default"],
25789 end: _end_js__WEBPACK_IMPORTED_MODULE_19__["default"]
25790};
25791
25792
25793/***/ }),
25794
25795/***/ "./node_modules/d3-transition/src/transition/interpolate.js":
25796/*!******************************************************************!*\
25797 !*** ./node_modules/d3-transition/src/transition/interpolate.js ***!
25798 \******************************************************************/
25799/*! exports provided: default */
25800/***/ (function(module, __webpack_exports__, __webpack_require__) {
25801
25802"use strict";
25803__webpack_require__.r(__webpack_exports__);
25804/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
25805/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
25806
25807
25808
25809/* harmony default export */ __webpack_exports__["default"] = (function(a, b) {
25810 var c;
25811 return (typeof b === "number" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateNumber"]
25812 : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_0__["color"] ? d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRgb"]
25813 : (c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__["color"])(b)) ? (b = c, d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateRgb"])
25814 : d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["interpolateString"])(a, b);
25815});
25816
25817
25818/***/ }),
25819
25820/***/ "./node_modules/d3-transition/src/transition/merge.js":
25821/*!************************************************************!*\
25822 !*** ./node_modules/d3-transition/src/transition/merge.js ***!
25823 \************************************************************/
25824/*! exports provided: default */
25825/***/ (function(module, __webpack_exports__, __webpack_require__) {
25826
25827"use strict";
25828__webpack_require__.r(__webpack_exports__);
25829/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
25830
25831
25832/* harmony default export */ __webpack_exports__["default"] = (function(transition) {
25833 if (transition._id !== this._id) throw new Error;
25834
25835 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) {
25836 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
25837 if (node = group0[i] || group1[i]) {
25838 merge[i] = node;
25839 }
25840 }
25841 }
25842
25843 for (; j < m0; ++j) {
25844 merges[j] = groups0[j];
25845 }
25846
25847 return new _index_js__WEBPACK_IMPORTED_MODULE_0__["Transition"](merges, this._parents, this._name, this._id);
25848});
25849
25850
25851/***/ }),
25852
25853/***/ "./node_modules/d3-transition/src/transition/on.js":
25854/*!*********************************************************!*\
25855 !*** ./node_modules/d3-transition/src/transition/on.js ***!
25856 \*********************************************************/
25857/*! exports provided: default */
25858/***/ (function(module, __webpack_exports__, __webpack_require__) {
25859
25860"use strict";
25861__webpack_require__.r(__webpack_exports__);
25862/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
25863
25864
25865function start(name) {
25866 return (name + "").trim().split(/^|\s+/).every(function(t) {
25867 var i = t.indexOf(".");
25868 if (i >= 0) t = t.slice(0, i);
25869 return !t || t === "start";
25870 });
25871}
25872
25873function onFunction(id, name, listener) {
25874 var on0, on1, sit = start(name) ? _schedule_js__WEBPACK_IMPORTED_MODULE_0__["init"] : _schedule_js__WEBPACK_IMPORTED_MODULE_0__["set"];
25875 return function() {
25876 var schedule = sit(this, id),
25877 on = schedule.on;
25878
25879 // If this node shared a dispatch with the previous node,
25880 // just assign the updated shared dispatch and we’re done!
25881 // Otherwise, copy-on-write.
25882 if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
25883
25884 schedule.on = on1;
25885 };
25886}
25887
25888/* harmony default export */ __webpack_exports__["default"] = (function(name, listener) {
25889 var id = this._id;
25890
25891 return arguments.length < 2
25892 ? Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).on.on(name)
25893 : this.each(onFunction(id, name, listener));
25894});
25895
25896
25897/***/ }),
25898
25899/***/ "./node_modules/d3-transition/src/transition/remove.js":
25900/*!*************************************************************!*\
25901 !*** ./node_modules/d3-transition/src/transition/remove.js ***!
25902 \*************************************************************/
25903/*! exports provided: default */
25904/***/ (function(module, __webpack_exports__, __webpack_require__) {
25905
25906"use strict";
25907__webpack_require__.r(__webpack_exports__);
25908function removeFunction(id) {
25909 return function() {
25910 var parent = this.parentNode;
25911 for (var i in this.__transition) if (+i !== id) return;
25912 if (parent) parent.removeChild(this);
25913 };
25914}
25915
25916/* harmony default export */ __webpack_exports__["default"] = (function() {
25917 return this.on("end.remove", removeFunction(this._id));
25918});
25919
25920
25921/***/ }),
25922
25923/***/ "./node_modules/d3-transition/src/transition/schedule.js":
25924/*!***************************************************************!*\
25925 !*** ./node_modules/d3-transition/src/transition/schedule.js ***!
25926 \***************************************************************/
25927/*! exports provided: CREATED, SCHEDULED, STARTING, STARTED, RUNNING, ENDING, ENDED, default, init, set, get */
25928/***/ (function(module, __webpack_exports__, __webpack_require__) {
25929
25930"use strict";
25931__webpack_require__.r(__webpack_exports__);
25932/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATED", function() { return CREATED; });
25933/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCHEDULED", function() { return SCHEDULED; });
25934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "STARTING", function() { return STARTING; });
25935/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "STARTED", function() { return STARTED; });
25936/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RUNNING", function() { return RUNNING; });
25937/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ENDING", function() { return ENDING; });
25938/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ENDED", function() { return ENDED; });
25939/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "init", function() { return init; });
25940/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
25941/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
25942/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
25943/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
25944
25945
25946
25947var emptyOn = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "end", "cancel", "interrupt");
25948var emptyTween = [];
25949
25950var CREATED = 0;
25951var SCHEDULED = 1;
25952var STARTING = 2;
25953var STARTED = 3;
25954var RUNNING = 4;
25955var ENDING = 5;
25956var ENDED = 6;
25957
25958/* harmony default export */ __webpack_exports__["default"] = (function(node, name, id, index, group, timing) {
25959 var schedules = node.__transition;
25960 if (!schedules) node.__transition = {};
25961 else if (id in schedules) return;
25962 create(node, id, {
25963 name: name,
25964 index: index, // For context during callback.
25965 group: group, // For context during callback.
25966 on: emptyOn,
25967 tween: emptyTween,
25968 time: timing.time,
25969 delay: timing.delay,
25970 duration: timing.duration,
25971 ease: timing.ease,
25972 timer: null,
25973 state: CREATED
25974 });
25975});
25976
25977function init(node, id) {
25978 var schedule = get(node, id);
25979 if (schedule.state > CREATED) throw new Error("too late; already scheduled");
25980 return schedule;
25981}
25982
25983function set(node, id) {
25984 var schedule = get(node, id);
25985 if (schedule.state > STARTED) throw new Error("too late; already running");
25986 return schedule;
25987}
25988
25989function get(node, id) {
25990 var schedule = node.__transition;
25991 if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
25992 return schedule;
25993}
25994
25995function create(node, id, self) {
25996 var schedules = node.__transition,
25997 tween;
25998
25999 // Initialize the self timer when the transition is created.
26000 // Note the actual delay is not known until the first callback!
26001 schedules[id] = self;
26002 self.timer = Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timer"])(schedule, 0, self.time);
26003
26004 function schedule(elapsed) {
26005 self.state = SCHEDULED;
26006 self.timer.restart(start, self.delay, self.time);
26007
26008 // If the elapsed delay is less than our first sleep, start immediately.
26009 if (self.delay <= elapsed) start(elapsed - self.delay);
26010 }
26011
26012 function start(elapsed) {
26013 var i, j, n, o;
26014
26015 // If the state is not SCHEDULED, then we previously errored on start.
26016 if (self.state !== SCHEDULED) return stop();
26017
26018 for (i in schedules) {
26019 o = schedules[i];
26020 if (o.name !== self.name) continue;
26021
26022 // While this element already has a starting transition during this frame,
26023 // defer starting an interrupting transition until that transition has a
26024 // chance to tick (and possibly end); see d3/d3-transition#54!
26025 if (o.state === STARTED) return Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timeout"])(start);
26026
26027 // Interrupt the active transition, if any.
26028 if (o.state === RUNNING) {
26029 o.state = ENDED;
26030 o.timer.stop();
26031 o.on.call("interrupt", node, node.__data__, o.index, o.group);
26032 delete schedules[i];
26033 }
26034
26035 // Cancel any pre-empted transitions.
26036 else if (+i < id) {
26037 o.state = ENDED;
26038 o.timer.stop();
26039 o.on.call("cancel", node, node.__data__, o.index, o.group);
26040 delete schedules[i];
26041 }
26042 }
26043
26044 // Defer the first tick to end of the current frame; see d3/d3#1576.
26045 // Note the transition may be canceled after start and before the first tick!
26046 // Note this must be scheduled before the start event; see d3/d3-transition#16!
26047 // Assuming this is successful, subsequent callbacks go straight to tick.
26048 Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__["timeout"])(function() {
26049 if (self.state === STARTED) {
26050 self.state = RUNNING;
26051 self.timer.restart(tick, self.delay, self.time);
26052 tick(elapsed);
26053 }
26054 });
26055
26056 // Dispatch the start event.
26057 // Note this must be done before the tween are initialized.
26058 self.state = STARTING;
26059 self.on.call("start", node, node.__data__, self.index, self.group);
26060 if (self.state !== STARTING) return; // interrupted
26061 self.state = STARTED;
26062
26063 // Initialize the tween, deleting null tween.
26064 tween = new Array(n = self.tween.length);
26065 for (i = 0, j = -1; i < n; ++i) {
26066 if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
26067 tween[++j] = o;
26068 }
26069 }
26070 tween.length = j + 1;
26071 }
26072
26073 function tick(elapsed) {
26074 var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
26075 i = -1,
26076 n = tween.length;
26077
26078 while (++i < n) {
26079 tween[i].call(node, t);
26080 }
26081
26082 // Dispatch the end event.
26083 if (self.state === ENDING) {
26084 self.on.call("end", node, node.__data__, self.index, self.group);
26085 stop();
26086 }
26087 }
26088
26089 function stop() {
26090 self.state = ENDED;
26091 self.timer.stop();
26092 delete schedules[id];
26093 for (var i in schedules) return; // eslint-disable-line no-unused-vars
26094 delete node.__transition;
26095 }
26096}
26097
26098
26099/***/ }),
26100
26101/***/ "./node_modules/d3-transition/src/transition/select.js":
26102/*!*************************************************************!*\
26103 !*** ./node_modules/d3-transition/src/transition/select.js ***!
26104 \*************************************************************/
26105/*! exports provided: default */
26106/***/ (function(module, __webpack_exports__, __webpack_require__) {
26107
26108"use strict";
26109__webpack_require__.r(__webpack_exports__);
26110/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
26111/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
26112/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
26113
26114
26115
26116
26117/* harmony default export */ __webpack_exports__["default"] = (function(select) {
26118 var name = this._name,
26119 id = this._id;
26120
26121 if (typeof select !== "function") select = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selector"])(select);
26122
26123 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
26124 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
26125 if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
26126 if ("__data__" in node) subnode.__data__ = node.__data__;
26127 subgroup[i] = subnode;
26128 Object(_schedule_js__WEBPACK_IMPORTED_MODULE_2__["default"])(subgroup[i], name, id, i, subgroup, Object(_schedule_js__WEBPACK_IMPORTED_MODULE_2__["get"])(node, id));
26129 }
26130 }
26131 }
26132
26133 return new _index_js__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, this._parents, name, id);
26134});
26135
26136
26137/***/ }),
26138
26139/***/ "./node_modules/d3-transition/src/transition/selectAll.js":
26140/*!****************************************************************!*\
26141 !*** ./node_modules/d3-transition/src/transition/selectAll.js ***!
26142 \****************************************************************/
26143/*! exports provided: default */
26144/***/ (function(module, __webpack_exports__, __webpack_require__) {
26145
26146"use strict";
26147__webpack_require__.r(__webpack_exports__);
26148/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
26149/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
26150/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
26151
26152
26153
26154
26155/* harmony default export */ __webpack_exports__["default"] = (function(select) {
26156 var name = this._name,
26157 id = this._id;
26158
26159 if (typeof select !== "function") select = Object(d3_selection__WEBPACK_IMPORTED_MODULE_0__["selectorAll"])(select);
26160
26161 for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
26162 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
26163 if (node = group[i]) {
26164 for (var children = select.call(node, node.__data__, i, group), child, inherit = Object(_schedule_js__WEBPACK_IMPORTED_MODULE_2__["get"])(node, id), k = 0, l = children.length; k < l; ++k) {
26165 if (child = children[k]) {
26166 Object(_schedule_js__WEBPACK_IMPORTED_MODULE_2__["default"])(child, name, id, k, children, inherit);
26167 }
26168 }
26169 subgroups.push(children);
26170 parents.push(node);
26171 }
26172 }
26173 }
26174
26175 return new _index_js__WEBPACK_IMPORTED_MODULE_1__["Transition"](subgroups, parents, name, id);
26176});
26177
26178
26179/***/ }),
26180
26181/***/ "./node_modules/d3-transition/src/transition/selection.js":
26182/*!****************************************************************!*\
26183 !*** ./node_modules/d3-transition/src/transition/selection.js ***!
26184 \****************************************************************/
26185/*! exports provided: default */
26186/***/ (function(module, __webpack_exports__, __webpack_require__) {
26187
26188"use strict";
26189__webpack_require__.r(__webpack_exports__);
26190/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
26191
26192
26193var Selection = d3_selection__WEBPACK_IMPORTED_MODULE_0__["selection"].prototype.constructor;
26194
26195/* harmony default export */ __webpack_exports__["default"] = (function() {
26196 return new Selection(this._groups, this._parents);
26197});
26198
26199
26200/***/ }),
26201
26202/***/ "./node_modules/d3-transition/src/transition/style.js":
26203/*!************************************************************!*\
26204 !*** ./node_modules/d3-transition/src/transition/style.js ***!
26205 \************************************************************/
26206/*! exports provided: default */
26207/***/ (function(module, __webpack_exports__, __webpack_require__) {
26208
26209"use strict";
26210__webpack_require__.r(__webpack_exports__);
26211/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
26212/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
26213/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
26214/* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tween.js */ "./node_modules/d3-transition/src/transition/tween.js");
26215/* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./interpolate.js */ "./node_modules/d3-transition/src/transition/interpolate.js");
26216
26217
26218
26219
26220
26221
26222function styleNull(name, interpolate) {
26223 var string00,
26224 string10,
26225 interpolate0;
26226 return function() {
26227 var string0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name),
26228 string1 = (this.style.removeProperty(name), Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name));
26229 return string0 === string1 ? null
26230 : string0 === string00 && string1 === string10 ? interpolate0
26231 : interpolate0 = interpolate(string00 = string0, string10 = string1);
26232 };
26233}
26234
26235function styleRemove(name) {
26236 return function() {
26237 this.style.removeProperty(name);
26238 };
26239}
26240
26241function styleConstant(name, interpolate, value1) {
26242 var string00,
26243 string1 = value1 + "",
26244 interpolate0;
26245 return function() {
26246 var string0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name);
26247 return string0 === string1 ? null
26248 : string0 === string00 ? interpolate0
26249 : interpolate0 = interpolate(string00 = string0, value1);
26250 };
26251}
26252
26253function styleFunction(name, interpolate, value) {
26254 var string00,
26255 string10,
26256 interpolate0;
26257 return function() {
26258 var string0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name),
26259 value1 = value(this),
26260 string1 = value1 + "";
26261 if (value1 == null) string1 = value1 = (this.style.removeProperty(name), Object(d3_selection__WEBPACK_IMPORTED_MODULE_1__["style"])(this, name));
26262 return string0 === string1 ? null
26263 : string0 === string00 && string1 === string10 ? interpolate0
26264 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
26265 };
26266}
26267
26268function styleMaybeRemove(id, name) {
26269 var on0, on1, listener0, key = "style." + name, event = "end." + key, remove;
26270 return function() {
26271 var schedule = Object(_schedule_js__WEBPACK_IMPORTED_MODULE_2__["set"])(this, id),
26272 on = schedule.on,
26273 listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;
26274
26275 // If this node shared a dispatch with the previous node,
26276 // just assign the updated shared dispatch and we’re done!
26277 // Otherwise, copy-on-write.
26278 if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
26279
26280 schedule.on = on1;
26281 };
26282}
26283
26284/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
26285 var i = (name += "") === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["interpolateTransformCss"] : _interpolate_js__WEBPACK_IMPORTED_MODULE_4__["default"];
26286 return value == null ? this
26287 .styleTween(name, styleNull(name, i))
26288 .on("end.style." + name, styleRemove(name))
26289 : typeof value === "function" ? this
26290 .styleTween(name, styleFunction(name, i, Object(_tween_js__WEBPACK_IMPORTED_MODULE_3__["tweenValue"])(this, "style." + name, value)))
26291 .each(styleMaybeRemove(this._id, name))
26292 : this
26293 .styleTween(name, styleConstant(name, i, value), priority)
26294 .on("end.style." + name, null);
26295});
26296
26297
26298/***/ }),
26299
26300/***/ "./node_modules/d3-transition/src/transition/styleTween.js":
26301/*!*****************************************************************!*\
26302 !*** ./node_modules/d3-transition/src/transition/styleTween.js ***!
26303 \*****************************************************************/
26304/*! exports provided: default */
26305/***/ (function(module, __webpack_exports__, __webpack_require__) {
26306
26307"use strict";
26308__webpack_require__.r(__webpack_exports__);
26309function styleInterpolate(name, i, priority) {
26310 return function(t) {
26311 this.style.setProperty(name, i.call(this, t), priority);
26312 };
26313}
26314
26315function styleTween(name, value, priority) {
26316 var t, i0;
26317 function tween() {
26318 var i = value.apply(this, arguments);
26319 if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);
26320 return t;
26321 }
26322 tween._value = value;
26323 return tween;
26324}
26325
26326/* harmony default export */ __webpack_exports__["default"] = (function(name, value, priority) {
26327 var key = "style." + (name += "");
26328 if (arguments.length < 2) return (key = this.tween(key)) && key._value;
26329 if (value == null) return this.tween(key, null);
26330 if (typeof value !== "function") throw new Error;
26331 return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
26332});
26333
26334
26335/***/ }),
26336
26337/***/ "./node_modules/d3-transition/src/transition/text.js":
26338/*!***********************************************************!*\
26339 !*** ./node_modules/d3-transition/src/transition/text.js ***!
26340 \***********************************************************/
26341/*! exports provided: default */
26342/***/ (function(module, __webpack_exports__, __webpack_require__) {
26343
26344"use strict";
26345__webpack_require__.r(__webpack_exports__);
26346/* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tween.js */ "./node_modules/d3-transition/src/transition/tween.js");
26347
26348
26349function textConstant(value) {
26350 return function() {
26351 this.textContent = value;
26352 };
26353}
26354
26355function textFunction(value) {
26356 return function() {
26357 var value1 = value(this);
26358 this.textContent = value1 == null ? "" : value1;
26359 };
26360}
26361
26362/* harmony default export */ __webpack_exports__["default"] = (function(value) {
26363 return this.tween("text", typeof value === "function"
26364 ? textFunction(Object(_tween_js__WEBPACK_IMPORTED_MODULE_0__["tweenValue"])(this, "text", value))
26365 : textConstant(value == null ? "" : value + ""));
26366});
26367
26368
26369/***/ }),
26370
26371/***/ "./node_modules/d3-transition/src/transition/textTween.js":
26372/*!****************************************************************!*\
26373 !*** ./node_modules/d3-transition/src/transition/textTween.js ***!
26374 \****************************************************************/
26375/*! exports provided: default */
26376/***/ (function(module, __webpack_exports__, __webpack_require__) {
26377
26378"use strict";
26379__webpack_require__.r(__webpack_exports__);
26380function textInterpolate(i) {
26381 return function(t) {
26382 this.textContent = i.call(this, t);
26383 };
26384}
26385
26386function textTween(value) {
26387 var t0, i0;
26388 function tween() {
26389 var i = value.apply(this, arguments);
26390 if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
26391 return t0;
26392 }
26393 tween._value = value;
26394 return tween;
26395}
26396
26397/* harmony default export */ __webpack_exports__["default"] = (function(value) {
26398 var key = "text";
26399 if (arguments.length < 1) return (key = this.tween(key)) && key._value;
26400 if (value == null) return this.tween(key, null);
26401 if (typeof value !== "function") throw new Error;
26402 return this.tween(key, textTween(value));
26403});
26404
26405
26406/***/ }),
26407
26408/***/ "./node_modules/d3-transition/src/transition/transition.js":
26409/*!*****************************************************************!*\
26410 !*** ./node_modules/d3-transition/src/transition/transition.js ***!
26411 \*****************************************************************/
26412/*! exports provided: default */
26413/***/ (function(module, __webpack_exports__, __webpack_require__) {
26414
26415"use strict";
26416__webpack_require__.r(__webpack_exports__);
26417/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
26418/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
26419
26420
26421
26422/* harmony default export */ __webpack_exports__["default"] = (function() {
26423 var name = this._name,
26424 id0 = this._id,
26425 id1 = Object(_index_js__WEBPACK_IMPORTED_MODULE_0__["newId"])();
26426
26427 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
26428 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
26429 if (node = group[i]) {
26430 var inherit = Object(_schedule_js__WEBPACK_IMPORTED_MODULE_1__["get"])(node, id0);
26431 Object(_schedule_js__WEBPACK_IMPORTED_MODULE_1__["default"])(node, name, id1, i, group, {
26432 time: inherit.time + inherit.delay + inherit.duration,
26433 delay: 0,
26434 duration: inherit.duration,
26435 ease: inherit.ease
26436 });
26437 }
26438 }
26439 }
26440
26441 return new _index_js__WEBPACK_IMPORTED_MODULE_0__["Transition"](groups, this._parents, name, id1);
26442});
26443
26444
26445/***/ }),
26446
26447/***/ "./node_modules/d3-transition/src/transition/tween.js":
26448/*!************************************************************!*\
26449 !*** ./node_modules/d3-transition/src/transition/tween.js ***!
26450 \************************************************************/
26451/*! exports provided: default, tweenValue */
26452/***/ (function(module, __webpack_exports__, __webpack_require__) {
26453
26454"use strict";
26455__webpack_require__.r(__webpack_exports__);
26456/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tweenValue", function() { return tweenValue; });
26457/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
26458
26459
26460function tweenRemove(id, name) {
26461 var tween0, tween1;
26462 return function() {
26463 var schedule = Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id),
26464 tween = schedule.tween;
26465
26466 // If this node shared tween with the previous node,
26467 // just assign the updated shared tween and we’re done!
26468 // Otherwise, copy-on-write.
26469 if (tween !== tween0) {
26470 tween1 = tween0 = tween;
26471 for (var i = 0, n = tween1.length; i < n; ++i) {
26472 if (tween1[i].name === name) {
26473 tween1 = tween1.slice();
26474 tween1.splice(i, 1);
26475 break;
26476 }
26477 }
26478 }
26479
26480 schedule.tween = tween1;
26481 };
26482}
26483
26484function tweenFunction(id, name, value) {
26485 var tween0, tween1;
26486 if (typeof value !== "function") throw new Error;
26487 return function() {
26488 var schedule = Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id),
26489 tween = schedule.tween;
26490
26491 // If this node shared tween with the previous node,
26492 // just assign the updated shared tween and we’re done!
26493 // Otherwise, copy-on-write.
26494 if (tween !== tween0) {
26495 tween1 = (tween0 = tween).slice();
26496 for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
26497 if (tween1[i].name === name) {
26498 tween1[i] = t;
26499 break;
26500 }
26501 }
26502 if (i === n) tween1.push(t);
26503 }
26504
26505 schedule.tween = tween1;
26506 };
26507}
26508
26509/* harmony default export */ __webpack_exports__["default"] = (function(name, value) {
26510 var id = this._id;
26511
26512 name += "";
26513
26514 if (arguments.length < 2) {
26515 var tween = Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["get"])(this.node(), id).tween;
26516 for (var i = 0, n = tween.length, t; i < n; ++i) {
26517 if ((t = tween[i]).name === name) {
26518 return t.value;
26519 }
26520 }
26521 return null;
26522 }
26523
26524 return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
26525});
26526
26527function tweenValue(transition, name, value) {
26528 var id = transition._id;
26529
26530 transition.each(function() {
26531 var schedule = Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["set"])(this, id);
26532 (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
26533 });
26534
26535 return function(node) {
26536 return Object(_schedule_js__WEBPACK_IMPORTED_MODULE_0__["get"])(node, id).value[name];
26537 };
26538}
26539
26540
26541/***/ }),
26542
26543/***/ "./node_modules/d3-voronoi/src/Beach.js":
26544/*!**********************************************!*\
26545 !*** ./node_modules/d3-voronoi/src/Beach.js ***!
26546 \**********************************************/
26547/*! exports provided: removeBeach, addBeach */
26548/***/ (function(module, __webpack_exports__, __webpack_require__) {
26549
26550"use strict";
26551__webpack_require__.r(__webpack_exports__);
26552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeBeach", function() { return removeBeach; });
26553/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addBeach", function() { return addBeach; });
26554/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
26555/* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Cell */ "./node_modules/d3-voronoi/src/Cell.js");
26556/* harmony import */ var _Circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Circle */ "./node_modules/d3-voronoi/src/Circle.js");
26557/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
26558/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
26559
26560
26561
26562
26563
26564
26565var beachPool = [];
26566
26567function Beach() {
26568 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(this);
26569 this.edge =
26570 this.site =
26571 this.circle = null;
26572}
26573
26574function createBeach(site) {
26575 var beach = beachPool.pop() || new Beach;
26576 beach.site = site;
26577 return beach;
26578}
26579
26580function detachBeach(beach) {
26581 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(beach);
26582 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].remove(beach);
26583 beachPool.push(beach);
26584 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(beach);
26585}
26586
26587function removeBeach(beach) {
26588 var circle = beach.circle,
26589 x = circle.x,
26590 y = circle.cy,
26591 vertex = [x, y],
26592 previous = beach.P,
26593 next = beach.N,
26594 disappearing = [beach];
26595
26596 detachBeach(beach);
26597
26598 var lArc = previous;
26599 while (lArc.circle
26600 && Math.abs(x - lArc.circle.x) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]
26601 && Math.abs(y - lArc.circle.cy) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
26602 previous = lArc.P;
26603 disappearing.unshift(lArc);
26604 detachBeach(lArc);
26605 lArc = previous;
26606 }
26607
26608 disappearing.unshift(lArc);
26609 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
26610
26611 var rArc = next;
26612 while (rArc.circle
26613 && Math.abs(x - rArc.circle.x) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]
26614 && Math.abs(y - rArc.circle.cy) < _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
26615 next = rArc.N;
26616 disappearing.push(rArc);
26617 detachBeach(rArc);
26618 rArc = next;
26619 }
26620
26621 disappearing.push(rArc);
26622 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(rArc);
26623
26624 var nArcs = disappearing.length,
26625 iArc;
26626 for (iArc = 1; iArc < nArcs; ++iArc) {
26627 rArc = disappearing[iArc];
26628 lArc = disappearing[iArc - 1];
26629 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["setEdgeEnd"])(rArc.edge, lArc.site, rArc.site, vertex);
26630 }
26631
26632 lArc = disappearing[0];
26633 rArc = disappearing[nArcs - 1];
26634 rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, rArc.site, null, vertex);
26635
26636 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
26637 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
26638}
26639
26640function addBeach(site) {
26641 var x = site[0],
26642 directrix = site[1],
26643 lArc,
26644 rArc,
26645 dxl,
26646 dxr,
26647 node = _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"]._;
26648
26649 while (node) {
26650 dxl = leftBreakPoint(node, directrix) - x;
26651 if (dxl > _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) node = node.L; else {
26652 dxr = x - rightBreakPoint(node, directrix);
26653 if (dxr > _Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
26654 if (!node.R) {
26655 lArc = node;
26656 break;
26657 }
26658 node = node.R;
26659 } else {
26660 if (dxl > -_Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
26661 lArc = node.P;
26662 rArc = node;
26663 } else if (dxr > -_Diagram__WEBPACK_IMPORTED_MODULE_4__["epsilon"]) {
26664 lArc = node;
26665 rArc = node.N;
26666 } else {
26667 lArc = rArc = node;
26668 }
26669 break;
26670 }
26671 }
26672 }
26673
26674 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["createCell"])(site);
26675 var newArc = createBeach(site);
26676 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].insert(lArc, newArc);
26677
26678 if (!lArc && !rArc) return;
26679
26680 if (lArc === rArc) {
26681 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
26682 rArc = createBeach(lArc.site);
26683 _Diagram__WEBPACK_IMPORTED_MODULE_4__["beaches"].insert(newArc, rArc);
26684 newArc.edge = rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, newArc.site);
26685 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
26686 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
26687 return;
26688 }
26689
26690 if (!rArc) { // && lArc
26691 newArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lArc.site, newArc.site);
26692 return;
26693 }
26694
26695 // else lArc !== rArc
26696 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(lArc);
26697 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["detachCircle"])(rArc);
26698
26699 var lSite = lArc.site,
26700 ax = lSite[0],
26701 ay = lSite[1],
26702 bx = site[0] - ax,
26703 by = site[1] - ay,
26704 rSite = rArc.site,
26705 cx = rSite[0] - ax,
26706 cy = rSite[1] - ay,
26707 d = 2 * (bx * cy - by * cx),
26708 hb = bx * bx + by * by,
26709 hc = cx * cx + cy * cy,
26710 vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];
26711
26712 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["setEdgeEnd"])(rArc.edge, lSite, rSite, vertex);
26713 newArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(lSite, site, null, vertex);
26714 rArc.edge = Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["createEdge"])(site, rSite, null, vertex);
26715 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(lArc);
26716 Object(_Circle__WEBPACK_IMPORTED_MODULE_2__["attachCircle"])(rArc);
26717}
26718
26719function leftBreakPoint(arc, directrix) {
26720 var site = arc.site,
26721 rfocx = site[0],
26722 rfocy = site[1],
26723 pby2 = rfocy - directrix;
26724
26725 if (!pby2) return rfocx;
26726
26727 var lArc = arc.P;
26728 if (!lArc) return -Infinity;
26729
26730 site = lArc.site;
26731 var lfocx = site[0],
26732 lfocy = site[1],
26733 plby2 = lfocy - directrix;
26734
26735 if (!plby2) return lfocx;
26736
26737 var hl = lfocx - rfocx,
26738 aby2 = 1 / pby2 - 1 / plby2,
26739 b = hl / plby2;
26740
26741 if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;
26742
26743 return (rfocx + lfocx) / 2;
26744}
26745
26746function rightBreakPoint(arc, directrix) {
26747 var rArc = arc.N;
26748 if (rArc) return leftBreakPoint(rArc, directrix);
26749 var site = arc.site;
26750 return site[1] === directrix ? site[0] : Infinity;
26751}
26752
26753
26754/***/ }),
26755
26756/***/ "./node_modules/d3-voronoi/src/Cell.js":
26757/*!*********************************************!*\
26758 !*** ./node_modules/d3-voronoi/src/Cell.js ***!
26759 \*********************************************/
26760/*! exports provided: createCell, cellHalfedgeStart, cellHalfedgeEnd, sortCellHalfedges, clipCells */
26761/***/ (function(module, __webpack_exports__, __webpack_require__) {
26762
26763"use strict";
26764__webpack_require__.r(__webpack_exports__);
26765/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCell", function() { return createCell; });
26766/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cellHalfedgeStart", function() { return cellHalfedgeStart; });
26767/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cellHalfedgeEnd", function() { return cellHalfedgeEnd; });
26768/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortCellHalfedges", function() { return sortCellHalfedges; });
26769/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clipCells", function() { return clipCells; });
26770/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
26771/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
26772
26773
26774
26775function createCell(site) {
26776 return _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][site.index] = {
26777 site: site,
26778 halfedges: []
26779 };
26780}
26781
26782function cellHalfedgeAngle(cell, edge) {
26783 var site = cell.site,
26784 va = edge.left,
26785 vb = edge.right;
26786 if (site === vb) vb = va, va = site;
26787 if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);
26788 if (site === va) va = edge[1], vb = edge[0];
26789 else va = edge[0], vb = edge[1];
26790 return Math.atan2(va[0] - vb[0], vb[1] - va[1]);
26791}
26792
26793function cellHalfedgeStart(cell, edge) {
26794 return edge[+(edge.left !== cell.site)];
26795}
26796
26797function cellHalfedgeEnd(cell, edge) {
26798 return edge[+(edge.left === cell.site)];
26799}
26800
26801function sortCellHalfedges() {
26802 for (var i = 0, n = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"].length, cell, halfedges, j, m; i < n; ++i) {
26803 if ((cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][i]) && (m = (halfedges = cell.halfedges).length)) {
26804 var index = new Array(m),
26805 array = new Array(m);
26806 for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[j]]);
26807 index.sort(function(i, j) { return array[j] - array[i]; });
26808 for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];
26809 for (j = 0; j < m; ++j) halfedges[j] = array[j];
26810 }
26811 }
26812}
26813
26814function clipCells(x0, y0, x1, y1) {
26815 var nCells = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"].length,
26816 iCell,
26817 cell,
26818 site,
26819 iHalfedge,
26820 halfedges,
26821 nHalfedges,
26822 start,
26823 startX,
26824 startY,
26825 end,
26826 endX,
26827 endY,
26828 cover = true;
26829
26830 for (iCell = 0; iCell < nCells; ++iCell) {
26831 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
26832 site = cell.site;
26833 halfedges = cell.halfedges;
26834 iHalfedge = halfedges.length;
26835
26836 // Remove any dangling clipped edges.
26837 while (iHalfedge--) {
26838 if (!_Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[iHalfedge]]) {
26839 halfedges.splice(iHalfedge, 1);
26840 }
26841 }
26842
26843 // Insert any border edges as necessary.
26844 iHalfedge = 0, nHalfedges = halfedges.length;
26845 while (iHalfedge < nHalfedges) {
26846 end = cellHalfedgeEnd(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[iHalfedge]]), endX = end[0], endY = end[1];
26847 start = cellHalfedgeStart(cell, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"][halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];
26848 if (Math.abs(endX - startX) > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"] || Math.abs(endY - startY) > _Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon"]) {
26849 halfedges.splice(iHalfedge, 0, _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, end,
26850 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]
26851 : 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]
26852 : 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]
26853 : 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]
26854 : null)) - 1);
26855 ++nHalfedges;
26856 }
26857 }
26858
26859 if (nHalfedges) cover = false;
26860 }
26861 }
26862
26863 // If there weren’t any edges, have the closest site cover the extent.
26864 // It doesn’t matter which corner of the extent we measure!
26865 if (cover) {
26866 var dx, dy, d2, dc = Infinity;
26867
26868 for (iCell = 0, cover = null; iCell < nCells; ++iCell) {
26869 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
26870 site = cell.site;
26871 dx = site[0] - x0;
26872 dy = site[1] - y0;
26873 d2 = dx * dx + dy * dy;
26874 if (d2 < dc) dc = d2, cover = cell;
26875 }
26876 }
26877
26878 if (cover) {
26879 var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];
26880 cover.halfedges.push(
26881 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site = cover.site, v00, v01)) - 1,
26882 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v01, v11)) - 1,
26883 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v11, v10)) - 1,
26884 _Diagram__WEBPACK_IMPORTED_MODULE_1__["edges"].push(Object(_Edge__WEBPACK_IMPORTED_MODULE_0__["createBorderEdge"])(site, v10, v00)) - 1
26885 );
26886 }
26887 }
26888
26889 // Lastly delete any cells with no edges; these were entirely clipped.
26890 for (iCell = 0; iCell < nCells; ++iCell) {
26891 if (cell = _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell]) {
26892 if (!cell.halfedges.length) {
26893 delete _Diagram__WEBPACK_IMPORTED_MODULE_1__["cells"][iCell];
26894 }
26895 }
26896 }
26897}
26898
26899
26900/***/ }),
26901
26902/***/ "./node_modules/d3-voronoi/src/Circle.js":
26903/*!***********************************************!*\
26904 !*** ./node_modules/d3-voronoi/src/Circle.js ***!
26905 \***********************************************/
26906/*! exports provided: firstCircle, attachCircle, detachCircle */
26907/***/ (function(module, __webpack_exports__, __webpack_require__) {
26908
26909"use strict";
26910__webpack_require__.r(__webpack_exports__);
26911/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstCircle", function() { return firstCircle; });
26912/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attachCircle", function() { return attachCircle; });
26913/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detachCircle", function() { return detachCircle; });
26914/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
26915/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
26916
26917
26918
26919var circlePool = [];
26920
26921var firstCircle;
26922
26923function Circle() {
26924 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(this);
26925 this.x =
26926 this.y =
26927 this.arc =
26928 this.site =
26929 this.cy = null;
26930}
26931
26932function attachCircle(arc) {
26933 var lArc = arc.P,
26934 rArc = arc.N;
26935
26936 if (!lArc || !rArc) return;
26937
26938 var lSite = lArc.site,
26939 cSite = arc.site,
26940 rSite = rArc.site;
26941
26942 if (lSite === rSite) return;
26943
26944 var bx = cSite[0],
26945 by = cSite[1],
26946 ax = lSite[0] - bx,
26947 ay = lSite[1] - by,
26948 cx = rSite[0] - bx,
26949 cy = rSite[1] - by;
26950
26951 var d = 2 * (ax * cy - ay * cx);
26952 if (d >= -_Diagram__WEBPACK_IMPORTED_MODULE_1__["epsilon2"]) return;
26953
26954 var ha = ax * ax + ay * ay,
26955 hc = cx * cx + cy * cy,
26956 x = (cy * ha - ay * hc) / d,
26957 y = (ax * hc - cx * ha) / d;
26958
26959 var circle = circlePool.pop() || new Circle;
26960 circle.arc = arc;
26961 circle.site = cSite;
26962 circle.x = x + bx;
26963 circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom
26964
26965 arc.circle = circle;
26966
26967 var before = null,
26968 node = _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"]._;
26969
26970 while (node) {
26971 if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {
26972 if (node.L) node = node.L;
26973 else { before = node.P; break; }
26974 } else {
26975 if (node.R) node = node.R;
26976 else { before = node; break; }
26977 }
26978 }
26979
26980 _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"].insert(before, circle);
26981 if (!before) firstCircle = circle;
26982}
26983
26984function detachCircle(arc) {
26985 var circle = arc.circle;
26986 if (circle) {
26987 if (!circle.P) firstCircle = circle.N;
26988 _Diagram__WEBPACK_IMPORTED_MODULE_1__["circles"].remove(circle);
26989 circlePool.push(circle);
26990 Object(_RedBlackTree__WEBPACK_IMPORTED_MODULE_0__["RedBlackNode"])(circle);
26991 arc.circle = null;
26992 }
26993}
26994
26995
26996/***/ }),
26997
26998/***/ "./node_modules/d3-voronoi/src/Diagram.js":
26999/*!************************************************!*\
27000 !*** ./node_modules/d3-voronoi/src/Diagram.js ***!
27001 \************************************************/
27002/*! exports provided: epsilon, epsilon2, beaches, cells, circles, edges, default */
27003/***/ (function(module, __webpack_exports__, __webpack_require__) {
27004
27005"use strict";
27006__webpack_require__.r(__webpack_exports__);
27007/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon", function() { return epsilon; });
27008/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epsilon2", function() { return epsilon2; });
27009/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "beaches", function() { return beaches; });
27010/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cells", function() { return cells; });
27011/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "circles", function() { return circles; });
27012/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "edges", function() { return edges; });
27013/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Diagram; });
27014/* harmony import */ var _Beach__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Beach */ "./node_modules/d3-voronoi/src/Beach.js");
27015/* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Cell */ "./node_modules/d3-voronoi/src/Cell.js");
27016/* harmony import */ var _Circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Circle */ "./node_modules/d3-voronoi/src/Circle.js");
27017/* harmony import */ var _Edge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Edge */ "./node_modules/d3-voronoi/src/Edge.js");
27018/* harmony import */ var _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./RedBlackTree */ "./node_modules/d3-voronoi/src/RedBlackTree.js");
27019
27020
27021
27022
27023
27024
27025var epsilon = 1e-6;
27026var epsilon2 = 1e-12;
27027var beaches;
27028var cells;
27029var circles;
27030var edges;
27031
27032function triangleArea(a, b, c) {
27033 return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);
27034}
27035
27036function lexicographic(a, b) {
27037 return b[1] - a[1]
27038 || b[0] - a[0];
27039}
27040
27041function Diagram(sites, extent) {
27042 var site = sites.sort(lexicographic).pop(),
27043 x,
27044 y,
27045 circle;
27046
27047 edges = [];
27048 cells = new Array(sites.length);
27049 beaches = new _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__["default"];
27050 circles = new _RedBlackTree__WEBPACK_IMPORTED_MODULE_4__["default"];
27051
27052 while (true) {
27053 circle = _Circle__WEBPACK_IMPORTED_MODULE_2__["firstCircle"];
27054 if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {
27055 if (site[0] !== x || site[1] !== y) {
27056 Object(_Beach__WEBPACK_IMPORTED_MODULE_0__["addBeach"])(site);
27057 x = site[0], y = site[1];
27058 }
27059 site = sites.pop();
27060 } else if (circle) {
27061 Object(_Beach__WEBPACK_IMPORTED_MODULE_0__["removeBeach"])(circle.arc);
27062 } else {
27063 break;
27064 }
27065 }
27066
27067 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["sortCellHalfedges"])();
27068
27069 if (extent) {
27070 var x0 = +extent[0][0],
27071 y0 = +extent[0][1],
27072 x1 = +extent[1][0],
27073 y1 = +extent[1][1];
27074 Object(_Edge__WEBPACK_IMPORTED_MODULE_3__["clipEdges"])(x0, y0, x1, y1);
27075 Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["clipCells"])(x0, y0, x1, y1);
27076 }
27077
27078 this.edges = edges;
27079 this.cells = cells;
27080
27081 beaches =
27082 circles =
27083 edges =
27084 cells = null;
27085}
27086
27087Diagram.prototype = {
27088 constructor: Diagram,
27089
27090 polygons: function() {
27091 var edges = this.edges;
27092
27093 return this.cells.map(function(cell) {
27094 var polygon = cell.halfedges.map(function(i) { return Object(_Cell__WEBPACK_IMPORTED_MODULE_1__["cellHalfedgeStart"])(cell, edges[i]); });
27095 polygon.data = cell.site.data;
27096 return polygon;
27097 });
27098 },
27099
27100 triangles: function() {
27101 var triangles = [],
27102 edges = this.edges;
27103
27104 this.cells.forEach(function(cell, i) {
27105 if (!(m = (halfedges = cell.halfedges).length)) return;
27106 var site = cell.site,
27107 halfedges,
27108 j = -1,
27109 m,
27110 s0,
27111 e1 = edges[halfedges[m - 1]],
27112 s1 = e1.left === site ? e1.right : e1.left;
27113
27114 while (++j < m) {
27115 s0 = s1;
27116 e1 = edges[halfedges[j]];
27117 s1 = e1.left === site ? e1.right : e1.left;
27118 if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {
27119 triangles.push([site.data, s0.data, s1.data]);
27120 }
27121 }
27122 });
27123
27124 return triangles;
27125 },
27126
27127 links: function() {
27128 return this.edges.filter(function(edge) {
27129 return edge.right;
27130 }).map(function(edge) {
27131 return {
27132 source: edge.left.data,
27133 target: edge.right.data
27134 };
27135 });
27136 },
27137
27138 find: function(x, y, radius) {
27139 var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;
27140
27141 // Use the previously-found cell, or start with an arbitrary one.
27142 while (!(cell = that.cells[i1])) if (++i1 >= n) return null;
27143 var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;
27144
27145 // Traverse the half-edges to find a closer cell, if any.
27146 do {
27147 cell = that.cells[i0 = i1], i1 = null;
27148 cell.halfedges.forEach(function(e) {
27149 var edge = that.edges[e], v = edge.left;
27150 if ((v === cell.site || !v) && !(v = edge.right)) return;
27151 var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;
27152 if (v2 < d2) d2 = v2, i1 = v.index;
27153 });
27154 } while (i1 !== null);
27155
27156 that._found = i0;
27157
27158 return radius == null || d2 <= radius * radius ? cell.site : null;
27159 }
27160}
27161
27162
27163/***/ }),
27164
27165/***/ "./node_modules/d3-voronoi/src/Edge.js":
27166/*!*********************************************!*\
27167 !*** ./node_modules/d3-voronoi/src/Edge.js ***!
27168 \*********************************************/
27169/*! exports provided: createEdge, createBorderEdge, setEdgeEnd, clipEdges */
27170/***/ (function(module, __webpack_exports__, __webpack_require__) {
27171
27172"use strict";
27173__webpack_require__.r(__webpack_exports__);
27174/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createEdge", function() { return createEdge; });
27175/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createBorderEdge", function() { return createBorderEdge; });
27176/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setEdgeEnd", function() { return setEdgeEnd; });
27177/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clipEdges", function() { return clipEdges; });
27178/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
27179
27180
27181function createEdge(left, right, v0, v1) {
27182 var edge = [null, null],
27183 index = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"].push(edge) - 1;
27184 edge.left = left;
27185 edge.right = right;
27186 if (v0) setEdgeEnd(edge, left, right, v0);
27187 if (v1) setEdgeEnd(edge, right, left, v1);
27188 _Diagram__WEBPACK_IMPORTED_MODULE_0__["cells"][left.index].halfedges.push(index);
27189 _Diagram__WEBPACK_IMPORTED_MODULE_0__["cells"][right.index].halfedges.push(index);
27190 return edge;
27191}
27192
27193function createBorderEdge(left, v0, v1) {
27194 var edge = [v0, v1];
27195 edge.left = left;
27196 return edge;
27197}
27198
27199function setEdgeEnd(edge, left, right, vertex) {
27200 if (!edge[0] && !edge[1]) {
27201 edge[0] = vertex;
27202 edge.left = left;
27203 edge.right = right;
27204 } else if (edge.left === right) {
27205 edge[1] = vertex;
27206 } else {
27207 edge[0] = vertex;
27208 }
27209}
27210
27211// Liang–Barsky line clipping.
27212function clipEdge(edge, x0, y0, x1, y1) {
27213 var a = edge[0],
27214 b = edge[1],
27215 ax = a[0],
27216 ay = a[1],
27217 bx = b[0],
27218 by = b[1],
27219 t0 = 0,
27220 t1 = 1,
27221 dx = bx - ax,
27222 dy = by - ay,
27223 r;
27224
27225 r = x0 - ax;
27226 if (!dx && r > 0) return;
27227 r /= dx;
27228 if (dx < 0) {
27229 if (r < t0) return;
27230 if (r < t1) t1 = r;
27231 } else if (dx > 0) {
27232 if (r > t1) return;
27233 if (r > t0) t0 = r;
27234 }
27235
27236 r = x1 - ax;
27237 if (!dx && r < 0) return;
27238 r /= dx;
27239 if (dx < 0) {
27240 if (r > t1) return;
27241 if (r > t0) t0 = r;
27242 } else if (dx > 0) {
27243 if (r < t0) return;
27244 if (r < t1) t1 = r;
27245 }
27246
27247 r = y0 - ay;
27248 if (!dy && r > 0) return;
27249 r /= dy;
27250 if (dy < 0) {
27251 if (r < t0) return;
27252 if (r < t1) t1 = r;
27253 } else if (dy > 0) {
27254 if (r > t1) return;
27255 if (r > t0) t0 = r;
27256 }
27257
27258 r = y1 - ay;
27259 if (!dy && r < 0) return;
27260 r /= dy;
27261 if (dy < 0) {
27262 if (r > t1) return;
27263 if (r > t0) t0 = r;
27264 } else if (dy > 0) {
27265 if (r < t0) return;
27266 if (r < t1) t1 = r;
27267 }
27268
27269 if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?
27270
27271 if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];
27272 if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];
27273 return true;
27274}
27275
27276function connectEdge(edge, x0, y0, x1, y1) {
27277 var v1 = edge[1];
27278 if (v1) return true;
27279
27280 var v0 = edge[0],
27281 left = edge.left,
27282 right = edge.right,
27283 lx = left[0],
27284 ly = left[1],
27285 rx = right[0],
27286 ry = right[1],
27287 fx = (lx + rx) / 2,
27288 fy = (ly + ry) / 2,
27289 fm,
27290 fb;
27291
27292 if (ry === ly) {
27293 if (fx < x0 || fx >= x1) return;
27294 if (lx > rx) {
27295 if (!v0) v0 = [fx, y0];
27296 else if (v0[1] >= y1) return;
27297 v1 = [fx, y1];
27298 } else {
27299 if (!v0) v0 = [fx, y1];
27300 else if (v0[1] < y0) return;
27301 v1 = [fx, y0];
27302 }
27303 } else {
27304 fm = (lx - rx) / (ry - ly);
27305 fb = fy - fm * fx;
27306 if (fm < -1 || fm > 1) {
27307 if (lx > rx) {
27308 if (!v0) v0 = [(y0 - fb) / fm, y0];
27309 else if (v0[1] >= y1) return;
27310 v1 = [(y1 - fb) / fm, y1];
27311 } else {
27312 if (!v0) v0 = [(y1 - fb) / fm, y1];
27313 else if (v0[1] < y0) return;
27314 v1 = [(y0 - fb) / fm, y0];
27315 }
27316 } else {
27317 if (ly < ry) {
27318 if (!v0) v0 = [x0, fm * x0 + fb];
27319 else if (v0[0] >= x1) return;
27320 v1 = [x1, fm * x1 + fb];
27321 } else {
27322 if (!v0) v0 = [x1, fm * x1 + fb];
27323 else if (v0[0] < x0) return;
27324 v1 = [x0, fm * x0 + fb];
27325 }
27326 }
27327 }
27328
27329 edge[0] = v0;
27330 edge[1] = v1;
27331 return true;
27332}
27333
27334function clipEdges(x0, y0, x1, y1) {
27335 var i = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"].length,
27336 edge;
27337
27338 while (i--) {
27339 if (!connectEdge(edge = _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"][i], x0, y0, x1, y1)
27340 || !clipEdge(edge, x0, y0, x1, y1)
27341 || !(Math.abs(edge[0][0] - edge[1][0]) > _Diagram__WEBPACK_IMPORTED_MODULE_0__["epsilon"]
27342 || Math.abs(edge[0][1] - edge[1][1]) > _Diagram__WEBPACK_IMPORTED_MODULE_0__["epsilon"])) {
27343 delete _Diagram__WEBPACK_IMPORTED_MODULE_0__["edges"][i];
27344 }
27345 }
27346}
27347
27348
27349/***/ }),
27350
27351/***/ "./node_modules/d3-voronoi/src/RedBlackTree.js":
27352/*!*****************************************************!*\
27353 !*** ./node_modules/d3-voronoi/src/RedBlackTree.js ***!
27354 \*****************************************************/
27355/*! exports provided: RedBlackNode, default */
27356/***/ (function(module, __webpack_exports__, __webpack_require__) {
27357
27358"use strict";
27359__webpack_require__.r(__webpack_exports__);
27360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedBlackNode", function() { return RedBlackNode; });
27361function RedBlackTree() {
27362 this._ = null; // root node
27363}
27364
27365function RedBlackNode(node) {
27366 node.U = // parent node
27367 node.C = // color - true for red, false for black
27368 node.L = // left node
27369 node.R = // right node
27370 node.P = // previous node
27371 node.N = null; // next node
27372}
27373
27374RedBlackTree.prototype = {
27375 constructor: RedBlackTree,
27376
27377 insert: function(after, node) {
27378 var parent, grandpa, uncle;
27379
27380 if (after) {
27381 node.P = after;
27382 node.N = after.N;
27383 if (after.N) after.N.P = node;
27384 after.N = node;
27385 if (after.R) {
27386 after = after.R;
27387 while (after.L) after = after.L;
27388 after.L = node;
27389 } else {
27390 after.R = node;
27391 }
27392 parent = after;
27393 } else if (this._) {
27394 after = RedBlackFirst(this._);
27395 node.P = null;
27396 node.N = after;
27397 after.P = after.L = node;
27398 parent = after;
27399 } else {
27400 node.P = node.N = null;
27401 this._ = node;
27402 parent = null;
27403 }
27404 node.L = node.R = null;
27405 node.U = parent;
27406 node.C = true;
27407
27408 after = node;
27409 while (parent && parent.C) {
27410 grandpa = parent.U;
27411 if (parent === grandpa.L) {
27412 uncle = grandpa.R;
27413 if (uncle && uncle.C) {
27414 parent.C = uncle.C = false;
27415 grandpa.C = true;
27416 after = grandpa;
27417 } else {
27418 if (after === parent.R) {
27419 RedBlackRotateLeft(this, parent);
27420 after = parent;
27421 parent = after.U;
27422 }
27423 parent.C = false;
27424 grandpa.C = true;
27425 RedBlackRotateRight(this, grandpa);
27426 }
27427 } else {
27428 uncle = grandpa.L;
27429 if (uncle && uncle.C) {
27430 parent.C = uncle.C = false;
27431 grandpa.C = true;
27432 after = grandpa;
27433 } else {
27434 if (after === parent.L) {
27435 RedBlackRotateRight(this, parent);
27436 after = parent;
27437 parent = after.U;
27438 }
27439 parent.C = false;
27440 grandpa.C = true;
27441 RedBlackRotateLeft(this, grandpa);
27442 }
27443 }
27444 parent = after.U;
27445 }
27446 this._.C = false;
27447 },
27448
27449 remove: function(node) {
27450 if (node.N) node.N.P = node.P;
27451 if (node.P) node.P.N = node.N;
27452 node.N = node.P = null;
27453
27454 var parent = node.U,
27455 sibling,
27456 left = node.L,
27457 right = node.R,
27458 next,
27459 red;
27460
27461 if (!left) next = right;
27462 else if (!right) next = left;
27463 else next = RedBlackFirst(right);
27464
27465 if (parent) {
27466 if (parent.L === node) parent.L = next;
27467 else parent.R = next;
27468 } else {
27469 this._ = next;
27470 }
27471
27472 if (left && right) {
27473 red = next.C;
27474 next.C = node.C;
27475 next.L = left;
27476 left.U = next;
27477 if (next !== right) {
27478 parent = next.U;
27479 next.U = node.U;
27480 node = next.R;
27481 parent.L = node;
27482 next.R = right;
27483 right.U = next;
27484 } else {
27485 next.U = parent;
27486 parent = next;
27487 node = next.R;
27488 }
27489 } else {
27490 red = node.C;
27491 node = next;
27492 }
27493
27494 if (node) node.U = parent;
27495 if (red) return;
27496 if (node && node.C) { node.C = false; return; }
27497
27498 do {
27499 if (node === this._) break;
27500 if (node === parent.L) {
27501 sibling = parent.R;
27502 if (sibling.C) {
27503 sibling.C = false;
27504 parent.C = true;
27505 RedBlackRotateLeft(this, parent);
27506 sibling = parent.R;
27507 }
27508 if ((sibling.L && sibling.L.C)
27509 || (sibling.R && sibling.R.C)) {
27510 if (!sibling.R || !sibling.R.C) {
27511 sibling.L.C = false;
27512 sibling.C = true;
27513 RedBlackRotateRight(this, sibling);
27514 sibling = parent.R;
27515 }
27516 sibling.C = parent.C;
27517 parent.C = sibling.R.C = false;
27518 RedBlackRotateLeft(this, parent);
27519 node = this._;
27520 break;
27521 }
27522 } else {
27523 sibling = parent.L;
27524 if (sibling.C) {
27525 sibling.C = false;
27526 parent.C = true;
27527 RedBlackRotateRight(this, parent);
27528 sibling = parent.L;
27529 }
27530 if ((sibling.L && sibling.L.C)
27531 || (sibling.R && sibling.R.C)) {
27532 if (!sibling.L || !sibling.L.C) {
27533 sibling.R.C = false;
27534 sibling.C = true;
27535 RedBlackRotateLeft(this, sibling);
27536 sibling = parent.L;
27537 }
27538 sibling.C = parent.C;
27539 parent.C = sibling.L.C = false;
27540 RedBlackRotateRight(this, parent);
27541 node = this._;
27542 break;
27543 }
27544 }
27545 sibling.C = true;
27546 node = parent;
27547 parent = parent.U;
27548 } while (!node.C);
27549
27550 if (node) node.C = false;
27551 }
27552};
27553
27554function RedBlackRotateLeft(tree, node) {
27555 var p = node,
27556 q = node.R,
27557 parent = p.U;
27558
27559 if (parent) {
27560 if (parent.L === p) parent.L = q;
27561 else parent.R = q;
27562 } else {
27563 tree._ = q;
27564 }
27565
27566 q.U = parent;
27567 p.U = q;
27568 p.R = q.L;
27569 if (p.R) p.R.U = p;
27570 q.L = p;
27571}
27572
27573function RedBlackRotateRight(tree, node) {
27574 var p = node,
27575 q = node.L,
27576 parent = p.U;
27577
27578 if (parent) {
27579 if (parent.L === p) parent.L = q;
27580 else parent.R = q;
27581 } else {
27582 tree._ = q;
27583 }
27584
27585 q.U = parent;
27586 p.U = q;
27587 p.L = q.R;
27588 if (p.L) p.L.U = p;
27589 q.R = p;
27590}
27591
27592function RedBlackFirst(node) {
27593 while (node.L) node = node.L;
27594 return node;
27595}
27596
27597/* harmony default export */ __webpack_exports__["default"] = (RedBlackTree);
27598
27599
27600/***/ }),
27601
27602/***/ "./node_modules/d3-voronoi/src/constant.js":
27603/*!*************************************************!*\
27604 !*** ./node_modules/d3-voronoi/src/constant.js ***!
27605 \*************************************************/
27606/*! exports provided: default */
27607/***/ (function(module, __webpack_exports__, __webpack_require__) {
27608
27609"use strict";
27610__webpack_require__.r(__webpack_exports__);
27611/* harmony default export */ __webpack_exports__["default"] = (function(x) {
27612 return function() {
27613 return x;
27614 };
27615});
27616
27617
27618/***/ }),
27619
27620/***/ "./node_modules/d3-voronoi/src/index.js":
27621/*!**********************************************!*\
27622 !*** ./node_modules/d3-voronoi/src/index.js ***!
27623 \**********************************************/
27624/*! exports provided: voronoi */
27625/***/ (function(module, __webpack_exports__, __webpack_require__) {
27626
27627"use strict";
27628__webpack_require__.r(__webpack_exports__);
27629/* harmony import */ var _voronoi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./voronoi */ "./node_modules/d3-voronoi/src/voronoi.js");
27630/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "voronoi", function() { return _voronoi__WEBPACK_IMPORTED_MODULE_0__["default"]; });
27631
27632
27633
27634
27635/***/ }),
27636
27637/***/ "./node_modules/d3-voronoi/src/point.js":
27638/*!**********************************************!*\
27639 !*** ./node_modules/d3-voronoi/src/point.js ***!
27640 \**********************************************/
27641/*! exports provided: x, y */
27642/***/ (function(module, __webpack_exports__, __webpack_require__) {
27643
27644"use strict";
27645__webpack_require__.r(__webpack_exports__);
27646/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return x; });
27647/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return y; });
27648function x(d) {
27649 return d[0];
27650}
27651
27652function y(d) {
27653 return d[1];
27654}
27655
27656
27657/***/ }),
27658
27659/***/ "./node_modules/d3-voronoi/src/voronoi.js":
27660/*!************************************************!*\
27661 !*** ./node_modules/d3-voronoi/src/voronoi.js ***!
27662 \************************************************/
27663/*! exports provided: default */
27664/***/ (function(module, __webpack_exports__, __webpack_require__) {
27665
27666"use strict";
27667__webpack_require__.r(__webpack_exports__);
27668/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant */ "./node_modules/d3-voronoi/src/constant.js");
27669/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./point */ "./node_modules/d3-voronoi/src/point.js");
27670/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Diagram */ "./node_modules/d3-voronoi/src/Diagram.js");
27671
27672
27673
27674
27675/* harmony default export */ __webpack_exports__["default"] = (function() {
27676 var x = _point__WEBPACK_IMPORTED_MODULE_1__["x"],
27677 y = _point__WEBPACK_IMPORTED_MODULE_1__["y"],
27678 extent = null;
27679
27680 function voronoi(data) {
27681 return new _Diagram__WEBPACK_IMPORTED_MODULE_2__["default"](data.map(function(d, i) {
27682 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"]];
27683 s.index = i;
27684 s.data = d;
27685 return s;
27686 }), extent);
27687 }
27688
27689 voronoi.polygons = function(data) {
27690 return voronoi(data).polygons();
27691 };
27692
27693 voronoi.links = function(data) {
27694 return voronoi(data).links();
27695 };
27696
27697 voronoi.triangles = function(data) {
27698 return voronoi(data).triangles();
27699 };
27700
27701 voronoi.x = function(_) {
27702 return arguments.length ? (x = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), voronoi) : x;
27703 };
27704
27705 voronoi.y = function(_) {
27706 return arguments.length ? (y = typeof _ === "function" ? _ : Object(_constant__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), voronoi) : y;
27707 };
27708
27709 voronoi.extent = function(_) {
27710 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]]];
27711 };
27712
27713 voronoi.size = function(_) {
27714 return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];
27715 };
27716
27717 return voronoi;
27718});
27719
27720
27721/***/ }),
27722
27723/***/ "./node_modules/d3-zoom/src/constant.js":
27724/*!**********************************************!*\
27725 !*** ./node_modules/d3-zoom/src/constant.js ***!
27726 \**********************************************/
27727/*! exports provided: default */
27728/***/ (function(module, __webpack_exports__, __webpack_require__) {
27729
27730"use strict";
27731__webpack_require__.r(__webpack_exports__);
27732/* harmony default export */ __webpack_exports__["default"] = (function(x) {
27733 return function() {
27734 return x;
27735 };
27736});
27737
27738
27739/***/ }),
27740
27741/***/ "./node_modules/d3-zoom/src/event.js":
27742/*!*******************************************!*\
27743 !*** ./node_modules/d3-zoom/src/event.js ***!
27744 \*******************************************/
27745/*! exports provided: default */
27746/***/ (function(module, __webpack_exports__, __webpack_require__) {
27747
27748"use strict";
27749__webpack_require__.r(__webpack_exports__);
27750/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ZoomEvent; });
27751function ZoomEvent(target, type, transform) {
27752 this.target = target;
27753 this.type = type;
27754 this.transform = transform;
27755}
27756
27757
27758/***/ }),
27759
27760/***/ "./node_modules/d3-zoom/src/index.js":
27761/*!*******************************************!*\
27762 !*** ./node_modules/d3-zoom/src/index.js ***!
27763 \*******************************************/
27764/*! exports provided: zoom, zoomTransform, zoomIdentity */
27765/***/ (function(module, __webpack_exports__, __webpack_require__) {
27766
27767"use strict";
27768__webpack_require__.r(__webpack_exports__);
27769/* harmony import */ var _zoom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zoom.js */ "./node_modules/d3-zoom/src/zoom.js");
27770/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoom", function() { return _zoom_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
27771
27772/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transform.js */ "./node_modules/d3-zoom/src/transform.js");
27773/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomTransform", function() { return _transform_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
27774
27775/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomIdentity", function() { return _transform_js__WEBPACK_IMPORTED_MODULE_1__["identity"]; });
27776
27777
27778
27779
27780
27781/***/ }),
27782
27783/***/ "./node_modules/d3-zoom/src/noevent.js":
27784/*!*********************************************!*\
27785 !*** ./node_modules/d3-zoom/src/noevent.js ***!
27786 \*********************************************/
27787/*! exports provided: nopropagation, default */
27788/***/ (function(module, __webpack_exports__, __webpack_require__) {
27789
27790"use strict";
27791__webpack_require__.r(__webpack_exports__);
27792/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nopropagation", function() { return nopropagation; });
27793/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
27794
27795
27796function nopropagation() {
27797 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
27798}
27799
27800/* harmony default export */ __webpack_exports__["default"] = (function() {
27801 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].preventDefault();
27802 d3_selection__WEBPACK_IMPORTED_MODULE_0__["event"].stopImmediatePropagation();
27803});
27804
27805
27806/***/ }),
27807
27808/***/ "./node_modules/d3-zoom/src/transform.js":
27809/*!***********************************************!*\
27810 !*** ./node_modules/d3-zoom/src/transform.js ***!
27811 \***********************************************/
27812/*! exports provided: Transform, identity, default */
27813/***/ (function(module, __webpack_exports__, __webpack_require__) {
27814
27815"use strict";
27816__webpack_require__.r(__webpack_exports__);
27817/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transform", function() { return Transform; });
27818/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
27819/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return transform; });
27820function Transform(k, x, y) {
27821 this.k = k;
27822 this.x = x;
27823 this.y = y;
27824}
27825
27826Transform.prototype = {
27827 constructor: Transform,
27828 scale: function(k) {
27829 return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
27830 },
27831 translate: function(x, y) {
27832 return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
27833 },
27834 apply: function(point) {
27835 return [point[0] * this.k + this.x, point[1] * this.k + this.y];
27836 },
27837 applyX: function(x) {
27838 return x * this.k + this.x;
27839 },
27840 applyY: function(y) {
27841 return y * this.k + this.y;
27842 },
27843 invert: function(location) {
27844 return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
27845 },
27846 invertX: function(x) {
27847 return (x - this.x) / this.k;
27848 },
27849 invertY: function(y) {
27850 return (y - this.y) / this.k;
27851 },
27852 rescaleX: function(x) {
27853 return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
27854 },
27855 rescaleY: function(y) {
27856 return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
27857 },
27858 toString: function() {
27859 return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
27860 }
27861};
27862
27863var identity = new Transform(1, 0, 0);
27864
27865transform.prototype = Transform.prototype;
27866
27867function transform(node) {
27868 while (!node.__zoom) if (!(node = node.parentNode)) return identity;
27869 return node.__zoom;
27870}
27871
27872
27873/***/ }),
27874
27875/***/ "./node_modules/d3-zoom/src/zoom.js":
27876/*!******************************************!*\
27877 !*** ./node_modules/d3-zoom/src/zoom.js ***!
27878 \******************************************/
27879/*! exports provided: default */
27880/***/ (function(module, __webpack_exports__, __webpack_require__) {
27881
27882"use strict";
27883__webpack_require__.r(__webpack_exports__);
27884/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
27885/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/index.js");
27886/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
27887/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
27888/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
27889/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-zoom/src/constant.js");
27890/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./event.js */ "./node_modules/d3-zoom/src/event.js");
27891/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./transform.js */ "./node_modules/d3-zoom/src/transform.js");
27892/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./noevent.js */ "./node_modules/d3-zoom/src/noevent.js");
27893
27894
27895
27896
27897
27898
27899
27900
27901
27902
27903// Ignore right-click, since that should open the context menu.
27904function defaultFilter() {
27905 return !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].ctrlKey && !d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].button;
27906}
27907
27908function defaultExtent() {
27909 var e = this;
27910 if (e instanceof SVGElement) {
27911 e = e.ownerSVGElement || e;
27912 if (e.hasAttribute("viewBox")) {
27913 e = e.viewBox.baseVal;
27914 return [[e.x, e.y], [e.x + e.width, e.y + e.height]];
27915 }
27916 return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];
27917 }
27918 return [[0, 0], [e.clientWidth, e.clientHeight]];
27919}
27920
27921function defaultTransform() {
27922 return this.__zoom || _transform_js__WEBPACK_IMPORTED_MODULE_7__["identity"];
27923}
27924
27925function defaultWheelDelta() {
27926 return -d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].deltaY * (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].deltaMode === 1 ? 0.05 : d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].deltaMode ? 1 : 0.002);
27927}
27928
27929function defaultTouchable() {
27930 return navigator.maxTouchPoints || ("ontouchstart" in this);
27931}
27932
27933function defaultConstrain(transform, extent, translateExtent) {
27934 var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
27935 dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
27936 dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
27937 dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
27938 return transform.translate(
27939 dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
27940 dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
27941 );
27942}
27943
27944/* harmony default export */ __webpack_exports__["default"] = (function() {
27945 var filter = defaultFilter,
27946 extent = defaultExtent,
27947 constrain = defaultConstrain,
27948 wheelDelta = defaultWheelDelta,
27949 touchable = defaultTouchable,
27950 scaleExtent = [0, Infinity],
27951 translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
27952 duration = 250,
27953 interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["interpolateZoom"],
27954 listeners = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["dispatch"])("start", "zoom", "end"),
27955 touchstarting,
27956 touchending,
27957 touchDelay = 500,
27958 wheelDelay = 150,
27959 clickDistance2 = 0;
27960
27961 function zoom(selection) {
27962 selection
27963 .property("__zoom", defaultTransform)
27964 .on("wheel.zoom", wheeled)
27965 .on("mousedown.zoom", mousedowned)
27966 .on("dblclick.zoom", dblclicked)
27967 .filter(touchable)
27968 .on("touchstart.zoom", touchstarted)
27969 .on("touchmove.zoom", touchmoved)
27970 .on("touchend.zoom touchcancel.zoom", touchended)
27971 .style("touch-action", "none")
27972 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
27973 }
27974
27975 zoom.transform = function(collection, transform, point) {
27976 var selection = collection.selection ? collection.selection() : collection;
27977 selection.property("__zoom", defaultTransform);
27978 if (collection !== selection) {
27979 schedule(collection, transform, point);
27980 } else {
27981 selection.interrupt().each(function() {
27982 gesture(this, arguments)
27983 .start()
27984 .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
27985 .end();
27986 });
27987 }
27988 };
27989
27990 zoom.scaleBy = function(selection, k, p) {
27991 zoom.scaleTo(selection, function() {
27992 var k0 = this.__zoom.k,
27993 k1 = typeof k === "function" ? k.apply(this, arguments) : k;
27994 return k0 * k1;
27995 }, p);
27996 };
27997
27998 zoom.scaleTo = function(selection, k, p) {
27999 zoom.transform(selection, function() {
28000 var e = extent.apply(this, arguments),
28001 t0 = this.__zoom,
28002 p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p,
28003 p1 = t0.invert(p0),
28004 k1 = typeof k === "function" ? k.apply(this, arguments) : k;
28005 return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
28006 }, p);
28007 };
28008
28009 zoom.translateBy = function(selection, x, y) {
28010 zoom.transform(selection, function() {
28011 return constrain(this.__zoom.translate(
28012 typeof x === "function" ? x.apply(this, arguments) : x,
28013 typeof y === "function" ? y.apply(this, arguments) : y
28014 ), extent.apply(this, arguments), translateExtent);
28015 });
28016 };
28017
28018 zoom.translateTo = function(selection, x, y, p) {
28019 zoom.transform(selection, function() {
28020 var e = extent.apply(this, arguments),
28021 t = this.__zoom,
28022 p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
28023 return constrain(_transform_js__WEBPACK_IMPORTED_MODULE_7__["identity"].translate(p0[0], p0[1]).scale(t.k).translate(
28024 typeof x === "function" ? -x.apply(this, arguments) : -x,
28025 typeof y === "function" ? -y.apply(this, arguments) : -y
28026 ), e, translateExtent);
28027 }, p);
28028 };
28029
28030 function scale(transform, k) {
28031 k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
28032 return k === transform.k ? transform : new _transform_js__WEBPACK_IMPORTED_MODULE_7__["Transform"](k, transform.x, transform.y);
28033 }
28034
28035 function translate(transform, p0, p1) {
28036 var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
28037 return x === transform.x && y === transform.y ? transform : new _transform_js__WEBPACK_IMPORTED_MODULE_7__["Transform"](transform.k, x, y);
28038 }
28039
28040 function centroid(extent) {
28041 return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
28042 }
28043
28044 function schedule(transition, transform, point) {
28045 transition
28046 .on("start.zoom", function() { gesture(this, arguments).start(); })
28047 .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).end(); })
28048 .tween("zoom", function() {
28049 var that = this,
28050 args = arguments,
28051 g = gesture(that, args),
28052 e = extent.apply(that, args),
28053 p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point,
28054 w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
28055 a = that.__zoom,
28056 b = typeof transform === "function" ? transform.apply(that, args) : transform,
28057 i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
28058 return function(t) {
28059 if (t === 1) t = b; // Avoid rounding error on end.
28060 else { var l = i(t), k = w / l[2]; t = new _transform_js__WEBPACK_IMPORTED_MODULE_7__["Transform"](k, p[0] - l[0] * k, p[1] - l[1] * k); }
28061 g.zoom(null, t);
28062 };
28063 });
28064 }
28065
28066 function gesture(that, args, clean) {
28067 return (!clean && that.__zooming) || new Gesture(that, args);
28068 }
28069
28070 function Gesture(that, args) {
28071 this.that = that;
28072 this.args = args;
28073 this.active = 0;
28074 this.extent = extent.apply(that, args);
28075 this.taps = 0;
28076 }
28077
28078 Gesture.prototype = {
28079 start: function() {
28080 if (++this.active === 1) {
28081 this.that.__zooming = this;
28082 this.emit("start");
28083 }
28084 return this;
28085 },
28086 zoom: function(key, transform) {
28087 if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
28088 if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
28089 if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
28090 this.that.__zoom = transform;
28091 this.emit("zoom");
28092 return this;
28093 },
28094 end: function() {
28095 if (--this.active === 0) {
28096 delete this.that.__zooming;
28097 this.emit("end");
28098 }
28099 return this;
28100 },
28101 emit: function(type) {
28102 Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["customEvent"])(new _event_js__WEBPACK_IMPORTED_MODULE_6__["default"](zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);
28103 }
28104 };
28105
28106 function wheeled() {
28107 if (!filter.apply(this, arguments)) return;
28108 var g = gesture(this, arguments),
28109 t = this.__zoom,
28110 k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
28111 p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this);
28112
28113 // If the mouse is in the same location as before, reuse it.
28114 // If there were recent wheel events, reset the wheel idle timeout.
28115 if (g.wheel) {
28116 if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
28117 g.mouse[1] = t.invert(g.mouse[0] = p);
28118 }
28119 clearTimeout(g.wheel);
28120 }
28121
28122 // If this wheel event won’t trigger a transform change, ignore it.
28123 else if (t.k === k) return;
28124
28125 // Otherwise, capture the mouse point and location at the start.
28126 else {
28127 g.mouse = [p, t.invert(p)];
28128 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
28129 g.start();
28130 }
28131
28132 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_8__["default"])();
28133 g.wheel = setTimeout(wheelidled, wheelDelay);
28134 g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
28135
28136 function wheelidled() {
28137 g.wheel = null;
28138 g.end();
28139 }
28140 }
28141
28142 function mousedowned() {
28143 if (touchending || !filter.apply(this, arguments)) return;
28144 var g = gesture(this, arguments, true),
28145 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),
28146 p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this),
28147 x0 = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientX,
28148 y0 = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientY;
28149
28150 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragDisable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view);
28151 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
28152 g.mouse = [p, this.__zoom.invert(p)];
28153 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
28154 g.start();
28155
28156 function mousemoved() {
28157 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_8__["default"])();
28158 if (!g.moved) {
28159 var dx = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientX - x0, dy = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].clientY - y0;
28160 g.moved = dx * dx + dy * dy > clickDistance2;
28161 }
28162 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));
28163 }
28164
28165 function mouseupped() {
28166 v.on("mousemove.zoom mouseup.zoom", null);
28167 Object(d3_drag__WEBPACK_IMPORTED_MODULE_1__["dragEnable"])(d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].view, g.moved);
28168 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_8__["default"])();
28169 g.end();
28170 }
28171 }
28172
28173 function dblclicked() {
28174 if (!filter.apply(this, arguments)) return;
28175 var t0 = this.__zoom,
28176 p0 = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["mouse"])(this),
28177 p1 = t0.invert(p0),
28178 k1 = t0.k * (d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].shiftKey ? 0.5 : 2),
28179 t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);
28180
28181 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_8__["default"])();
28182 if (duration > 0) Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).transition().duration(duration).call(schedule, t1, p0);
28183 else Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).call(zoom.transform, t1);
28184 }
28185
28186 function touchstarted() {
28187 if (!filter.apply(this, arguments)) return;
28188 var touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].touches,
28189 n = touches.length,
28190 g = gesture(this, arguments, d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches.length === n),
28191 started, i, t, p;
28192
28193 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
28194 for (i = 0; i < n; ++i) {
28195 t = touches[i], p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["touch"])(this, touches, t.identifier);
28196 p = [p, this.__zoom.invert(p), t.identifier];
28197 if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
28198 else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
28199 }
28200
28201 if (touchstarting) touchstarting = clearTimeout(touchstarting);
28202
28203 if (started) {
28204 if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
28205 Object(d3_transition__WEBPACK_IMPORTED_MODULE_4__["interrupt"])(this);
28206 g.start();
28207 }
28208 }
28209
28210 function touchmoved() {
28211 if (!this.__zooming) return;
28212 var g = gesture(this, arguments),
28213 touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches,
28214 n = touches.length, i, t, p, l;
28215
28216 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_8__["default"])();
28217 if (touchstarting) touchstarting = clearTimeout(touchstarting);
28218 g.taps = 0;
28219 for (i = 0; i < n; ++i) {
28220 t = touches[i], p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["touch"])(this, touches, t.identifier);
28221 if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
28222 else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
28223 }
28224 t = g.that.__zoom;
28225 if (g.touch1) {
28226 var p0 = g.touch0[0], l0 = g.touch0[1],
28227 p1 = g.touch1[0], l1 = g.touch1[1],
28228 dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
28229 dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
28230 t = scale(t, Math.sqrt(dp / dl));
28231 p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
28232 l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
28233 }
28234 else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
28235 else return;
28236 g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
28237 }
28238
28239 function touchended() {
28240 if (!this.__zooming) return;
28241 var g = gesture(this, arguments),
28242 touches = d3_selection__WEBPACK_IMPORTED_MODULE_3__["event"].changedTouches,
28243 n = touches.length, i, t;
28244
28245 Object(_noevent_js__WEBPACK_IMPORTED_MODULE_8__["nopropagation"])();
28246 if (touchending) clearTimeout(touchending);
28247 touchending = setTimeout(function() { touchending = null; }, touchDelay);
28248 for (i = 0; i < n; ++i) {
28249 t = touches[i];
28250 if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
28251 else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
28252 }
28253 if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
28254 if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
28255 else {
28256 g.end();
28257 // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.
28258 if (g.taps === 2) {
28259 var p = Object(d3_selection__WEBPACK_IMPORTED_MODULE_3__["select"])(this).on("dblclick.zoom");
28260 if (p) p.apply(this, arguments);
28261 }
28262 }
28263 }
28264
28265 zoom.wheelDelta = function(_) {
28266 return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_5__["default"])(+_), zoom) : wheelDelta;
28267 };
28268
28269 zoom.filter = function(_) {
28270 return arguments.length ? (filter = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), zoom) : filter;
28271 };
28272
28273 zoom.touchable = function(_) {
28274 return arguments.length ? (touchable = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_5__["default"])(!!_), zoom) : touchable;
28275 };
28276
28277 zoom.extent = function(_) {
28278 return arguments.length ? (extent = typeof _ === "function" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_5__["default"])([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
28279 };
28280
28281 zoom.scaleExtent = function(_) {
28282 return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
28283 };
28284
28285 zoom.translateExtent = function(_) {
28286 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]]];
28287 };
28288
28289 zoom.constrain = function(_) {
28290 return arguments.length ? (constrain = _, zoom) : constrain;
28291 };
28292
28293 zoom.duration = function(_) {
28294 return arguments.length ? (duration = +_, zoom) : duration;
28295 };
28296
28297 zoom.interpolate = function(_) {
28298 return arguments.length ? (interpolate = _, zoom) : interpolate;
28299 };
28300
28301 zoom.on = function() {
28302 var value = listeners.on.apply(listeners, arguments);
28303 return value === listeners ? zoom : value;
28304 };
28305
28306 zoom.clickDistance = function(_) {
28307 return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
28308 };
28309
28310 return zoom;
28311});
28312
28313
28314/***/ }),
28315
28316/***/ "./node_modules/d3/dist/package.js":
28317/*!*****************************************!*\
28318 !*** ./node_modules/d3/dist/package.js ***!
28319 \*****************************************/
28320/*! exports provided: name, version, description, keywords, homepage, license, author, main, unpkg, jsdelivr, module, repository, files, scripts, devDependencies, dependencies */
28321/***/ (function(module, __webpack_exports__, __webpack_require__) {
28322
28323"use strict";
28324__webpack_require__.r(__webpack_exports__);
28325/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "name", function() { return name; });
28326/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; });
28327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "description", function() { return description; });
28328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keywords", function() { return keywords; });
28329/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "homepage", function() { return homepage; });
28330/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "license", function() { return license; });
28331/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "author", function() { return author; });
28332/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "main", function() { return main; });
28333/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unpkg", function() { return unpkg; });
28334/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jsdelivr", function() { return jsdelivr; });
28335/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "module", function() { return module; });
28336/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repository", function() { return repository; });
28337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "files", function() { return files; });
28338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scripts", function() { return scripts; });
28339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "devDependencies", function() { return devDependencies; });
28340/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dependencies", function() { return dependencies; });
28341var name = "d3";
28342var version = "5.15.0";
28343var description = "Data-Driven Documents";
28344var keywords = ["dom","visualization","svg","animation","canvas"];
28345var homepage = "https://d3js.org";
28346var license = "BSD-3-Clause";
28347var author = {"name":"Mike Bostock","url":"https://bost.ocks.org/mike"};
28348var main = "dist/d3.node.js";
28349var unpkg = "dist/d3.min.js";
28350var jsdelivr = "dist/d3.min.js";
28351var module = "index.js";
28352var repository = {"type":"git","url":"https://github.com/d3/d3.git"};
28353var files = ["dist/**/*.js","index.js"];
28354var scripts = {"pretest":"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c","test":"tape 'test/**/*-test.js'","prepublishOnly":"yarn test","postpublish":"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v5.js && cp ../d3/dist/d3.min.js d3.v5.min.js && git add d3.v5.js d3.v5.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/dist/d3.js ../d3/dist/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m \"${npm_package_version}\" && git tag -am \"${npm_package_version}\" v${npm_package_version} && git push && git push --tags && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js"};
28355var devDependencies = {"json2module":"0.0","rimraf":"2","rollup":"1","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"3","rollup-plugin-terser":"5","tape":"4"};
28356var dependencies = {"d3-array":"1","d3-axis":"1","d3-brush":"1","d3-chord":"1","d3-collection":"1","d3-color":"1","d3-contour":"1","d3-dispatch":"1","d3-drag":"1","d3-dsv":"1","d3-ease":"1","d3-fetch":"1","d3-force":"1","d3-format":"1","d3-geo":"1","d3-hierarchy":"1","d3-interpolate":"1","d3-path":"1","d3-polygon":"1","d3-quadtree":"1","d3-random":"1","d3-scale":"2","d3-scale-chromatic":"1","d3-selection":"1","d3-shape":"1","d3-time":"1","d3-time-format":"2","d3-timer":"1","d3-transition":"1","d3-voronoi":"1","d3-zoom":"1"};
28357
28358
28359/***/ }),
28360
28361/***/ "./node_modules/d3/index.js":
28362/*!**********************************!*\
28363 !*** ./node_modules/d3/index.js ***!
28364 \**********************************/
28365/*! exports provided: version, bisect, bisectRight, bisectLeft, ascending, bisector, cross, descending, deviation, extent, histogram, thresholdFreedmanDiaconis, thresholdScott, thresholdSturges, max, mean, median, merge, min, pairs, permute, quantile, range, scan, shuffle, sum, ticks, tickIncrement, tickStep, transpose, variance, zip, axisTop, axisRight, axisBottom, axisLeft, brush, brushX, brushY, brushSelection, chord, ribbon, nest, set, map, keys, values, entries, color, rgb, hsl, lab, hcl, lch, gray, cubehelix, contours, contourDensity, dispatch, drag, dragDisable, dragEnable, dsvFormat, csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue, tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue, autoType, easeLinear, easeQuad, easeQuadIn, easeQuadOut, easeQuadInOut, easeCubic, easeCubicIn, easeCubicOut, easeCubicInOut, easePoly, easePolyIn, easePolyOut, easePolyInOut, easeSin, easeSinIn, easeSinOut, easeSinInOut, easeExp, easeExpIn, easeExpOut, easeExpInOut, easeCircle, easeCircleIn, easeCircleOut, easeCircleInOut, easeBounce, easeBounceIn, easeBounceOut, easeBounceInOut, easeBack, easeBackIn, easeBackOut, easeBackInOut, easeElastic, easeElasticIn, easeElasticOut, easeElasticInOut, blob, buffer, dsv, csv, tsv, image, json, text, xml, html, svg, forceCenter, forceCollide, forceLink, forceManyBody, forceRadial, forceSimulation, forceX, forceY, formatDefaultLocale, format, formatPrefix, formatLocale, formatSpecifier, FormatSpecifier, precisionFixed, precisionPrefix, precisionRound, geoArea, geoBounds, geoCentroid, geoCircle, geoClipAntimeridian, geoClipCircle, geoClipExtent, geoClipRectangle, geoContains, geoDistance, geoGraticule, geoGraticule10, geoInterpolate, geoLength, geoPath, geoAlbers, geoAlbersUsa, geoAzimuthalEqualArea, geoAzimuthalEqualAreaRaw, geoAzimuthalEquidistant, geoAzimuthalEquidistantRaw, geoConicConformal, geoConicConformalRaw, geoConicEqualArea, geoConicEqualAreaRaw, geoConicEquidistant, geoConicEquidistantRaw, geoEqualEarth, geoEqualEarthRaw, geoEquirectangular, geoEquirectangularRaw, geoGnomonic, geoGnomonicRaw, geoIdentity, geoProjection, geoProjectionMutator, geoMercator, geoMercatorRaw, geoNaturalEarth1, geoNaturalEarth1Raw, geoOrthographic, geoOrthographicRaw, geoStereographic, geoStereographicRaw, geoTransverseMercator, geoTransverseMercatorRaw, geoRotation, geoStream, geoTransform, cluster, hierarchy, pack, packSiblings, packEnclose, partition, stratify, tree, treemap, treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify, interpolate, interpolateArray, interpolateBasis, interpolateBasisClosed, interpolateDate, interpolateDiscrete, interpolateHue, interpolateNumber, interpolateNumberArray, interpolateObject, interpolateRound, interpolateString, interpolateTransformCss, interpolateTransformSvg, interpolateZoom, interpolateRgb, interpolateRgbBasis, interpolateRgbBasisClosed, interpolateHsl, interpolateHslLong, interpolateLab, interpolateHcl, interpolateHclLong, interpolateCubehelix, interpolateCubehelixLong, piecewise, quantize, path, polygonArea, polygonCentroid, polygonHull, polygonContains, polygonLength, quadtree, randomUniform, randomNormal, randomLogNormal, randomBates, randomIrwinHall, randomExponential, scaleBand, scalePoint, scaleIdentity, scaleLinear, scaleLog, scaleSymlog, scaleOrdinal, scaleImplicit, scalePow, scaleSqrt, scaleQuantile, scaleQuantize, scaleThreshold, scaleTime, scaleUtc, scaleSequential, scaleSequentialLog, scaleSequentialPow, scaleSequentialSqrt, scaleSequentialSymlog, scaleSequentialQuantile, scaleDiverging, scaleDivergingLog, scaleDivergingPow, scaleDivergingSqrt, scaleDivergingSymlog, tickFormat, schemeCategory10, schemeAccent, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, schemeTableau10, interpolateBrBG, schemeBrBG, interpolatePRGn, schemePRGn, interpolatePiYG, schemePiYG, interpolatePuOr, schemePuOr, interpolateRdBu, schemeRdBu, interpolateRdGy, schemeRdGy, interpolateRdYlBu, schemeRdYlBu, interpolateRdYlGn, schemeRdYlGn, interpolateSpectral, schemeSpectral, interpolateBuGn, schemeBuGn, interpolateBuPu, schemeBuPu, interpolateGnBu, schemeGnBu, interpolateOrRd, schemeOrRd, interpolatePuBuGn, schemePuBuGn, interpolatePuBu, schemePuBu, interpolatePuRd, schemePuRd, interpolateRdPu, schemeRdPu, interpolateYlGnBu, schemeYlGnBu, interpolateYlGn, schemeYlGn, interpolateYlOrBr, schemeYlOrBr, interpolateYlOrRd, schemeYlOrRd, interpolateBlues, schemeBlues, interpolateGreens, schemeGreens, interpolateGreys, schemeGreys, interpolatePurples, schemePurples, interpolateReds, schemeReds, interpolateOranges, schemeOranges, interpolateCividis, interpolateCubehelixDefault, interpolateRainbow, interpolateWarm, interpolateCool, interpolateSinebow, interpolateTurbo, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma, create, creator, local, matcher, mouse, namespace, namespaces, clientPoint, select, selectAll, selection, selector, selectorAll, style, touch, touches, window, event, customEvent, arc, area, line, pie, areaRadial, radialArea, lineRadial, radialLine, pointRadial, linkHorizontal, linkVertical, linkRadial, symbol, symbols, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye, curveBasisClosed, curveBasisOpen, curveBasis, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, stack, stackOffsetExpand, stackOffsetDiverging, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderAppearance, 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 */
28366/***/ (function(module, __webpack_exports__, __webpack_require__) {
28367
28368"use strict";
28369__webpack_require__.r(__webpack_exports__);
28370/* harmony import */ var _dist_package_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dist/package.js */ "./node_modules/d3/dist/package.js");
28371/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "version", function() { return _dist_package_js__WEBPACK_IMPORTED_MODULE_0__["version"]; });
28372
28373/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
28374/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisect", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisect"]; });
28375
28376/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectRight", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisectRight"]; });
28377
28378/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisectLeft"]; });
28379
28380/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ascending", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["ascending"]; });
28381
28382/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bisector", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["bisector"]; });
28383
28384/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cross", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["cross"]; });
28385
28386/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "descending", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["descending"]; });
28387
28388/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deviation", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["deviation"]; });
28389
28390/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extent", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["extent"]; });
28391
28392/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "histogram", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["histogram"]; });
28393
28394/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdFreedmanDiaconis", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdFreedmanDiaconis"]; });
28395
28396/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdScott", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdScott"]; });
28397
28398/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thresholdSturges", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["thresholdSturges"]; });
28399
28400/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["max"]; });
28401
28402/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mean", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["mean"]; });
28403
28404/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "median", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["median"]; });
28405
28406/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["merge"]; });
28407
28408/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["min"]; });
28409
28410/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["pairs"]; });
28411
28412/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "permute", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["permute"]; });
28413
28414/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantile", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["quantile"]; });
28415
28416/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["range"]; });
28417
28418/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["scan"]; });
28419
28420/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shuffle", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["shuffle"]; });
28421
28422/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["sum"]; });
28423
28424/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ticks", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["ticks"]; });
28425
28426/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["tickIncrement"]; });
28427
28428/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickStep", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["tickStep"]; });
28429
28430/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transpose", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["transpose"]; });
28431
28432/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "variance", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["variance"]; });
28433
28434/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return d3_array__WEBPACK_IMPORTED_MODULE_1__["zip"]; });
28435
28436/* harmony import */ var d3_axis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-axis */ "./node_modules/d3-axis/src/index.js");
28437/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisTop", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisTop"]; });
28438
28439/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisRight", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisRight"]; });
28440
28441/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisBottom", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisBottom"]; });
28442
28443/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "axisLeft", function() { return d3_axis__WEBPACK_IMPORTED_MODULE_2__["axisLeft"]; });
28444
28445/* harmony import */ var d3_brush__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-brush */ "./node_modules/d3-brush/src/index.js");
28446/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brush", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brush"]; });
28447
28448/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushX", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushX"]; });
28449
28450/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushY", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushY"]; });
28451
28452/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "brushSelection", function() { return d3_brush__WEBPACK_IMPORTED_MODULE_3__["brushSelection"]; });
28453
28454/* harmony import */ var d3_chord__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-chord */ "./node_modules/d3-chord/src/index.js");
28455/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chord", function() { return d3_chord__WEBPACK_IMPORTED_MODULE_4__["chord"]; });
28456
28457/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ribbon", function() { return d3_chord__WEBPACK_IMPORTED_MODULE_4__["ribbon"]; });
28458
28459/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-collection */ "./node_modules/d3-collection/src/index.js");
28460/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nest", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["nest"]; });
28461
28462/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "set", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["set"]; });
28463
28464/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["map"]; });
28465
28466/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["keys"]; });
28467
28468/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["values"]; });
28469
28470/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "entries", function() { return d3_collection__WEBPACK_IMPORTED_MODULE_5__["entries"]; });
28471
28472/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
28473/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "color", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["color"]; });
28474
28475/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["rgb"]; });
28476
28477/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["hsl"]; });
28478
28479/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lab", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["lab"]; });
28480
28481/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hcl", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["hcl"]; });
28482
28483/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lch", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["lch"]; });
28484
28485/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "gray", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["gray"]; });
28486
28487/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cubehelix", function() { return d3_color__WEBPACK_IMPORTED_MODULE_6__["cubehelix"]; });
28488
28489/* harmony import */ var d3_contour__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-contour */ "./node_modules/d3-contour/src/index.js");
28490/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contours", function() { return d3_contour__WEBPACK_IMPORTED_MODULE_7__["contours"]; });
28491
28492/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contourDensity", function() { return d3_contour__WEBPACK_IMPORTED_MODULE_7__["contourDensity"]; });
28493
28494/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
28495/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return d3_dispatch__WEBPACK_IMPORTED_MODULE_8__["dispatch"]; });
28496
28497/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/index.js");
28498/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "drag", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_9__["drag"]; });
28499
28500/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragDisable", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_9__["dragDisable"]; });
28501
28502/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragEnable", function() { return d3_drag__WEBPACK_IMPORTED_MODULE_9__["dragEnable"]; });
28503
28504/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/src/index.js");
28505/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["dsvFormat"]; });
28506
28507/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParse", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvParse"]; });
28508
28509/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvParseRows"]; });
28510
28511/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvFormat"]; });
28512
28513/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatBody", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvFormatBody"]; });
28514
28515/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvFormatRows"]; });
28516
28517/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatRow", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvFormatRow"]; });
28518
28519/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csvFormatValue", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["csvFormatValue"]; });
28520
28521/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParse", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvParse"]; });
28522
28523/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvParseRows"]; });
28524
28525/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvFormat"]; });
28526
28527/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatBody", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvFormatBody"]; });
28528
28529/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvFormatRows"]; });
28530
28531/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatRow", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvFormatRow"]; });
28532
28533/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsvFormatValue", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["tsvFormatValue"]; });
28534
28535/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "autoType", function() { return d3_dsv__WEBPACK_IMPORTED_MODULE_10__["autoType"]; });
28536
28537/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! d3-ease */ "./node_modules/d3-ease/src/index.js");
28538/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeLinear", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeLinear"]; });
28539
28540/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuad", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeQuad"]; });
28541
28542/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeQuadIn"]; });
28543
28544/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeQuadOut"]; });
28545
28546/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeQuadInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeQuadInOut"]; });
28547
28548/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubic", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCubic"]; });
28549
28550/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCubicIn"]; });
28551
28552/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCubicOut"]; });
28553
28554/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCubicInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCubicInOut"]; });
28555
28556/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePoly", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easePoly"]; });
28557
28558/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easePolyIn"]; });
28559
28560/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easePolyOut"]; });
28561
28562/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easePolyInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easePolyInOut"]; });
28563
28564/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSin", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeSin"]; });
28565
28566/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeSinIn"]; });
28567
28568/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeSinOut"]; });
28569
28570/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeSinInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeSinInOut"]; });
28571
28572/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExp", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeExp"]; });
28573
28574/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeExpIn"]; });
28575
28576/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeExpOut"]; });
28577
28578/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeExpInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeExpInOut"]; });
28579
28580/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircle", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCircle"]; });
28581
28582/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCircleIn"]; });
28583
28584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCircleOut"]; });
28585
28586/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeCircleInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeCircleInOut"]; });
28587
28588/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounce", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBounce"]; });
28589
28590/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBounceIn"]; });
28591
28592/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBounceOut"]; });
28593
28594/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBounceInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBounceInOut"]; });
28595
28596/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBack", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBack"]; });
28597
28598/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBackIn"]; });
28599
28600/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBackOut"]; });
28601
28602/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeBackInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeBackInOut"]; });
28603
28604/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElastic", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeElastic"]; });
28605
28606/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticIn", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeElasticIn"]; });
28607
28608/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeElasticOut"]; });
28609
28610/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "easeElasticInOut", function() { return d3_ease__WEBPACK_IMPORTED_MODULE_11__["easeElasticInOut"]; });
28611
28612/* harmony import */ var d3_fetch__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! d3-fetch */ "./node_modules/d3-fetch/src/index.js");
28613/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "blob", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["blob"]; });
28614
28615/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["buffer"]; });
28616
28617/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dsv", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["dsv"]; });
28618
28619/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "csv", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["csv"]; });
28620
28621/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tsv", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["tsv"]; });
28622
28623/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "image", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["image"]; });
28624
28625/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "json", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["json"]; });
28626
28627/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "text", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["text"]; });
28628
28629/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "xml", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["xml"]; });
28630
28631/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "html", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["html"]; });
28632
28633/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "svg", function() { return d3_fetch__WEBPACK_IMPORTED_MODULE_12__["svg"]; });
28634
28635/* harmony import */ var d3_force__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! d3-force */ "./node_modules/d3-force/src/index.js");
28636/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCenter", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceCenter"]; });
28637
28638/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceCollide", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceCollide"]; });
28639
28640/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceLink", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceLink"]; });
28641
28642/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceManyBody", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceManyBody"]; });
28643
28644/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceRadial", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceRadial"]; });
28645
28646/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceSimulation", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceSimulation"]; });
28647
28648/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceX", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceX"]; });
28649
28650/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forceY", function() { return d3_force__WEBPACK_IMPORTED_MODULE_13__["forceY"]; });
28651
28652/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/index.js");
28653/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatDefaultLocale", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["formatDefaultLocale"]; });
28654
28655/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["format"]; });
28656
28657/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["formatPrefix"]; });
28658
28659/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatLocale", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["formatLocale"]; });
28660
28661/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatSpecifier", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["formatSpecifier"]; });
28662
28663/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FormatSpecifier", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["FormatSpecifier"]; });
28664
28665/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionFixed", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["precisionFixed"]; });
28666
28667/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionPrefix", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["precisionPrefix"]; });
28668
28669/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return d3_format__WEBPACK_IMPORTED_MODULE_14__["precisionRound"]; });
28670
28671/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! d3-geo */ "./node_modules/d3-geo/src/index.js");
28672/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoArea"]; });
28673
28674/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoBounds", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoBounds"]; });
28675
28676/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCentroid", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoCentroid"]; });
28677
28678/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoCircle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoCircle"]; });
28679
28680/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipAntimeridian", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoClipAntimeridian"]; });
28681
28682/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipCircle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoClipCircle"]; });
28683
28684/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipExtent", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoClipExtent"]; });
28685
28686/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoClipRectangle", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoClipRectangle"]; });
28687
28688/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoContains", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoContains"]; });
28689
28690/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoDistance", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoDistance"]; });
28691
28692/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoGraticule"]; });
28693
28694/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGraticule10", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoGraticule10"]; });
28695
28696/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoInterpolate", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoInterpolate"]; });
28697
28698/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoLength", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoLength"]; });
28699
28700/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoPath", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoPath"]; });
28701
28702/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbers", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAlbers"]; });
28703
28704/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAlbersUsa", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAlbersUsa"]; });
28705
28706/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAzimuthalEqualArea"]; });
28707
28708/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualAreaRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAzimuthalEqualAreaRaw"]; });
28709
28710/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistant", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAzimuthalEquidistant"]; });
28711
28712/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistantRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoAzimuthalEquidistantRaw"]; });
28713
28714/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformal", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicConformal"]; });
28715
28716/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicConformalRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicConformalRaw"]; });
28717
28718/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualArea", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicEqualArea"]; });
28719
28720/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEqualAreaRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicEqualAreaRaw"]; });
28721
28722/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistant", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicEquidistant"]; });
28723
28724/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoConicEquidistantRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoConicEquidistantRaw"]; });
28725
28726/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEqualEarth", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoEqualEarth"]; });
28727
28728/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEqualEarthRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoEqualEarthRaw"]; });
28729
28730/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangular", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoEquirectangular"]; });
28731
28732/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoEquirectangularRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoEquirectangularRaw"]; });
28733
28734/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoGnomonic"]; });
28735
28736/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoGnomonicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoGnomonicRaw"]; });
28737
28738/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoIdentity", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoIdentity"]; });
28739
28740/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjection", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoProjection"]; });
28741
28742/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoProjectionMutator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoProjectionMutator"]; });
28743
28744/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoMercator"]; });
28745
28746/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoMercatorRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoMercatorRaw"]; });
28747
28748/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoNaturalEarth1"]; });
28749
28750/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoNaturalEarth1Raw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoNaturalEarth1Raw"]; });
28751
28752/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoOrthographic"]; });
28753
28754/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoOrthographicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoOrthographicRaw"]; });
28755
28756/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographic", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoStereographic"]; });
28757
28758/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStereographicRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoStereographicRaw"]; });
28759
28760/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercator", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoTransverseMercator"]; });
28761
28762/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransverseMercatorRaw", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoTransverseMercatorRaw"]; });
28763
28764/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoRotation", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoRotation"]; });
28765
28766/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoStream", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoStream"]; });
28767
28768/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "geoTransform", function() { return d3_geo__WEBPACK_IMPORTED_MODULE_15__["geoTransform"]; });
28769
28770/* harmony import */ var d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! d3-hierarchy */ "./node_modules/d3-hierarchy/src/index.js");
28771/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cluster", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["cluster"]; });
28772
28773/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hierarchy", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["hierarchy"]; });
28774
28775/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pack", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["pack"]; });
28776
28777/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packSiblings", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["packSiblings"]; });
28778
28779/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "packEnclose", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["packEnclose"]; });
28780
28781/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["partition"]; });
28782
28783/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stratify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["stratify"]; });
28784
28785/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tree", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["tree"]; });
28786
28787/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemap", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemap"]; });
28788
28789/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapBinary", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapBinary"]; });
28790
28791/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapDice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapDice"]; });
28792
28793/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSlice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapSlice"]; });
28794
28795/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSliceDice", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapSliceDice"]; });
28796
28797/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapSquarify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapSquarify"]; });
28798
28799/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "treemapResquarify", function() { return d3_hierarchy__WEBPACK_IMPORTED_MODULE_16__["treemapResquarify"]; });
28800
28801/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
28802/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolate", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolate"]; });
28803
28804/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateArray", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateArray"]; });
28805
28806/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasis", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateBasis"]; });
28807
28808/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBasisClosed", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateBasisClosed"]; });
28809
28810/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDate", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateDate"]; });
28811
28812/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateDiscrete", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateDiscrete"]; });
28813
28814/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHue", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHue"]; });
28815
28816/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateNumber", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateNumber"]; });
28817
28818/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateNumberArray", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateNumberArray"]; });
28819
28820/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateObject", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateObject"]; });
28821
28822/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRound", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateRound"]; });
28823
28824/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateString", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateString"]; });
28825
28826/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateTransformCss"]; });
28827
28828/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateTransformSvg"]; });
28829
28830/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateZoom", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateZoom"]; });
28831
28832/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgb", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateRgb"]; });
28833
28834/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasis", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateRgbBasis"]; });
28835
28836/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRgbBasisClosed", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateRgbBasisClosed"]; });
28837
28838/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHsl", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHsl"]; });
28839
28840/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHslLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHslLong"]; });
28841
28842/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateLab", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateLab"]; });
28843
28844/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHcl", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHcl"]; });
28845
28846/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateHclLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateHclLong"]; });
28847
28848/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelix", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateCubehelix"]; });
28849
28850/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixLong", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["interpolateCubehelixLong"]; });
28851
28852/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "piecewise", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["piecewise"]; });
28853
28854/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quantize", function() { return d3_interpolate__WEBPACK_IMPORTED_MODULE_17__["quantize"]; });
28855
28856/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
28857/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "path", function() { return d3_path__WEBPACK_IMPORTED_MODULE_18__["path"]; });
28858
28859/* harmony import */ var d3_polygon__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! d3-polygon */ "./node_modules/d3-polygon/src/index.js");
28860/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonArea", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonArea"]; });
28861
28862/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonCentroid", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonCentroid"]; });
28863
28864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonHull", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonHull"]; });
28865
28866/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonContains", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonContains"]; });
28867
28868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "polygonLength", function() { return d3_polygon__WEBPACK_IMPORTED_MODULE_19__["polygonLength"]; });
28869
28870/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/index.js");
28871/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "quadtree", function() { return d3_quadtree__WEBPACK_IMPORTED_MODULE_20__["quadtree"]; });
28872
28873/* harmony import */ var d3_random__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! d3-random */ "./node_modules/d3-random/src/index.js");
28874/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomUniform", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomUniform"]; });
28875
28876/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomNormal", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomNormal"]; });
28877
28878/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomLogNormal", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomLogNormal"]; });
28879
28880/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomBates", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomBates"]; });
28881
28882/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomIrwinHall", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomIrwinHall"]; });
28883
28884/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomExponential", function() { return d3_random__WEBPACK_IMPORTED_MODULE_21__["randomExponential"]; });
28885
28886/* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! d3-scale */ "./node_modules/d3-scale/src/index.js");
28887/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleBand", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleBand"]; });
28888
28889/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePoint", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scalePoint"]; });
28890
28891/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleIdentity"]; });
28892
28893/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleLinear"]; });
28894
28895/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleLog", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleLog"]; });
28896
28897/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSymlog", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSymlog"]; });
28898
28899/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleOrdinal"]; });
28900
28901/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleImplicit"]; });
28902
28903/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePow", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scalePow"]; });
28904
28905/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSqrt"]; });
28906
28907/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleQuantile"]; });
28908
28909/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleQuantize"]; });
28910
28911/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleThreshold"]; });
28912
28913/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleTime", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleTime"]; });
28914
28915/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleUtc"]; });
28916
28917/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSequential"]; });
28918
28919/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialLog", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSequentialLog"]; });
28920
28921/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialPow", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSequentialPow"]; });
28922
28923/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialSqrt", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSequentialSqrt"]; });
28924
28925/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialSymlog", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSequentialSymlog"]; });
28926
28927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleSequentialQuantile", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleSequentialQuantile"]; });
28928
28929/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDiverging", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleDiverging"]; });
28930
28931/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDivergingLog", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleDivergingLog"]; });
28932
28933/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDivergingPow", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleDivergingPow"]; });
28934
28935/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDivergingSqrt", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleDivergingSqrt"]; });
28936
28937/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleDivergingSymlog", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["scaleDivergingSymlog"]; });
28938
28939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tickFormat", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_22__["tickFormat"]; });
28940
28941/* harmony import */ var d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! d3-scale-chromatic */ "./node_modules/d3-scale-chromatic/src/index.js");
28942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeCategory10", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeCategory10"]; });
28943
28944/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeAccent", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeAccent"]; });
28945
28946/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeDark2", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeDark2"]; });
28947
28948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePaired", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePaired"]; });
28949
28950/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePastel1", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePastel1"]; });
28951
28952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePastel2", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePastel2"]; });
28953
28954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet1", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeSet1"]; });
28955
28956/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet2", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeSet2"]; });
28957
28958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSet3", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeSet3"]; });
28959
28960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeTableau10", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeTableau10"]; });
28961
28962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBrBG", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateBrBG"]; });
28963
28964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBrBG", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeBrBG"]; });
28965
28966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePRGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePRGn"]; });
28967
28968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePRGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePRGn"]; });
28969
28970/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePiYG", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePiYG"]; });
28971
28972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePiYG", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePiYG"]; });
28973
28974/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuOr", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePuOr"]; });
28975
28976/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuOr", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePuOr"]; });
28977
28978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdBu"]; });
28979
28980/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdBu"]; });
28981
28982/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdGy", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdGy"]; });
28983
28984/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdGy", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdGy"]; });
28985
28986/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdYlBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdYlBu"]; });
28987
28988/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdYlBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdYlBu"]; });
28989
28990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdYlGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdYlGn"]; });
28991
28992/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdYlGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdYlGn"]; });
28993
28994/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateSpectral", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateSpectral"]; });
28995
28996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeSpectral", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeSpectral"]; });
28997
28998/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBuGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateBuGn"]; });
28999
29000/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBuGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeBuGn"]; });
29001
29002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBuPu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateBuPu"]; });
29003
29004/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBuPu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeBuPu"]; });
29005
29006/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGnBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateGnBu"]; });
29007
29008/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGnBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeGnBu"]; });
29009
29010/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateOrRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateOrRd"]; });
29011
29012/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeOrRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeOrRd"]; });
29013
29014/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuBuGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePuBuGn"]; });
29015
29016/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuBuGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePuBuGn"]; });
29017
29018/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePuBu"]; });
29019
29020/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePuBu"]; });
29021
29022/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePuRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePuRd"]; });
29023
29024/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePuRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePuRd"]; });
29025
29026/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRdPu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRdPu"]; });
29027
29028/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeRdPu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeRdPu"]; });
29029
29030/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlGnBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateYlGnBu"]; });
29031
29032/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlGnBu", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeYlGnBu"]; });
29033
29034/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateYlGn"]; });
29035
29036/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlGn", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeYlGn"]; });
29037
29038/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlOrBr", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateYlOrBr"]; });
29039
29040/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlOrBr", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeYlOrBr"]; });
29041
29042/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateYlOrRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateYlOrRd"]; });
29043
29044/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeYlOrRd", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeYlOrRd"]; });
29045
29046/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateBlues", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateBlues"]; });
29047
29048/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeBlues", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeBlues"]; });
29049
29050/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGreens", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateGreens"]; });
29051
29052/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGreens", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeGreens"]; });
29053
29054/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateGreys", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateGreys"]; });
29055
29056/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeGreys", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeGreys"]; });
29057
29058/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePurples", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePurples"]; });
29059
29060/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemePurples", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemePurples"]; });
29061
29062/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateReds", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateReds"]; });
29063
29064/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeReds", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeReds"]; });
29065
29066/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateOranges", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateOranges"]; });
29067
29068/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "schemeOranges", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["schemeOranges"]; });
29069
29070/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCividis", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateCividis"]; });
29071
29072/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCubehelixDefault", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateCubehelixDefault"]; });
29073
29074/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateRainbow", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateRainbow"]; });
29075
29076/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateWarm", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateWarm"]; });
29077
29078/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateCool", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateCool"]; });
29079
29080/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateSinebow", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateSinebow"]; });
29081
29082/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateTurbo", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateTurbo"]; });
29083
29084/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateViridis", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateViridis"]; });
29085
29086/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateMagma", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateMagma"]; });
29087
29088/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolateInferno", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolateInferno"]; });
29089
29090/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interpolatePlasma", function() { return d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_23__["interpolatePlasma"]; });
29091
29092/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
29093/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "create", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["create"]; });
29094
29095/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "creator", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["creator"]; });
29096
29097/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "local", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["local"]; });
29098
29099/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["matcher"]; });
29100
29101/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mouse", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["mouse"]; });
29102
29103/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["namespace"]; });
29104
29105/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namespaces", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["namespaces"]; });
29106
29107/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clientPoint", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["clientPoint"]; });
29108
29109/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "select", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["select"]; });
29110
29111/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectAll", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["selectAll"]; });
29112
29113/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selection", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["selection"]; });
29114
29115/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selector", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["selector"]; });
29116
29117/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectorAll", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["selectorAll"]; });
29118
29119/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "style", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["style"]; });
29120
29121/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touch", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["touch"]; });
29122
29123/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "touches", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["touches"]; });
29124
29125/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["window"]; });
29126
29127/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "event", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["event"]; });
29128
29129/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customEvent", function() { return d3_selection__WEBPACK_IMPORTED_MODULE_24__["customEvent"]; });
29130
29131/* harmony import */ var d3_shape__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! d3-shape */ "./node_modules/d3-shape/src/index.js");
29132/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arc", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["arc"]; });
29133
29134/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "area", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["area"]; });
29135
29136/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "line", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["line"]; });
29137
29138/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pie", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["pie"]; });
29139
29140/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "areaRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["areaRadial"]; });
29141
29142/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialArea", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["radialArea"]; });
29143
29144/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lineRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["lineRadial"]; });
29145
29146/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "radialLine", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["radialLine"]; });
29147
29148/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pointRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["pointRadial"]; });
29149
29150/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["linkHorizontal"]; });
29151
29152/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkVertical", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["linkVertical"]; });
29153
29154/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "linkRadial", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["linkRadial"]; });
29155
29156/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbol", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbol"]; });
29157
29158/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbols", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbols"]; });
29159
29160/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCircle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolCircle"]; });
29161
29162/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolCross", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolCross"]; });
29163
29164/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolDiamond", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolDiamond"]; });
29165
29166/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolSquare", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolSquare"]; });
29167
29168/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolStar", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolStar"]; });
29169
29170/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolTriangle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolTriangle"]; });
29171
29172/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symbolWye", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["symbolWye"]; });
29173
29174/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveBasisClosed"]; });
29175
29176/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasisOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveBasisOpen"]; });
29177
29178/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBasis", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveBasis"]; });
29179
29180/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveBundle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveBundle"]; });
29181
29182/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCardinalClosed"]; });
29183
29184/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinalOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCardinalOpen"]; });
29185
29186/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCardinal", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCardinal"]; });
29187
29188/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCatmullRomClosed"]; });
29189
29190/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRomOpen", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCatmullRomOpen"]; });
29191
29192/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveCatmullRom", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveCatmullRom"]; });
29193
29194/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinearClosed", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveLinearClosed"]; });
29195
29196/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveLinear", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveLinear"]; });
29197
29198/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneX", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveMonotoneX"]; });
29199
29200/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveMonotoneY", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveMonotoneY"]; });
29201
29202/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveNatural", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveNatural"]; });
29203
29204/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStep", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveStep"]; });
29205
29206/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepAfter", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveStepAfter"]; });
29207
29208/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curveStepBefore", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["curveStepBefore"]; });
29209
29210/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stack", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stack"]; });
29211
29212/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetExpand", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetExpand"]; });
29213
29214/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetDiverging", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetDiverging"]; });
29215
29216/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetNone", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetNone"]; });
29217
29218/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetSilhouette", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetSilhouette"]; });
29219
29220/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOffsetWiggle", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOffsetWiggle"]; });
29221
29222/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderAppearance", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderAppearance"]; });
29223
29224/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderAscending", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderAscending"]; });
29225
29226/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderDescending", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderDescending"]; });
29227
29228/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderInsideOut", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderInsideOut"]; });
29229
29230/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderNone", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderNone"]; });
29231
29232/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stackOrderReverse", function() { return d3_shape__WEBPACK_IMPORTED_MODULE_25__["stackOrderReverse"]; });
29233
29234/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
29235/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeInterval"]; });
29236
29237/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMillisecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMillisecond"]; });
29238
29239/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMilliseconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMilliseconds"]; });
29240
29241/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMillisecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMillisecond"]; });
29242
29243/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMilliseconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMilliseconds"]; });
29244
29245/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSecond"]; });
29246
29247/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSeconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSeconds"]; });
29248
29249/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSecond", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSecond"]; });
29250
29251/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSeconds", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSeconds"]; });
29252
29253/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinute", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMinute"]; });
29254
29255/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMinutes", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMinutes"]; });
29256
29257/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHour", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeHour"]; });
29258
29259/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeHours", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeHours"]; });
29260
29261/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDay", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeDay"]; });
29262
29263/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeDays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeDays"]; });
29264
29265/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeek", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeWeek"]; });
29266
29267/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWeeks", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeWeeks"]; });
29268
29269/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSunday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSunday"]; });
29270
29271/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSundays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSundays"]; });
29272
29273/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMonday"]; });
29274
29275/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMondays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMondays"]; });
29276
29277/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeTuesday"]; });
29278
29279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeTuesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeTuesdays"]; });
29280
29281/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeWednesday"]; });
29282
29283/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeWednesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeWednesdays"]; });
29284
29285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeThursday"]; });
29286
29287/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeThursdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeThursdays"]; });
29288
29289/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFriday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeFriday"]; });
29290
29291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFridays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeFridays"]; });
29292
29293/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSaturday"]; });
29294
29295/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeSaturdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeSaturdays"]; });
29296
29297/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonth", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMonth"]; });
29298
29299/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeMonths", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeMonths"]; });
29300
29301/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYear", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeYear"]; });
29302
29303/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeYears", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["timeYears"]; });
29304
29305/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinute", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMinute"]; });
29306
29307/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMinutes"]; });
29308
29309/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHour", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcHour"]; });
29310
29311/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcHours", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcHours"]; });
29312
29313/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDay", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcDay"]; });
29314
29315/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcDays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcDays"]; });
29316
29317/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeek", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcWeek"]; });
29318
29319/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWeeks", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcWeeks"]; });
29320
29321/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSunday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSunday"]; });
29322
29323/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSundays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSundays"]; });
29324
29325/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMonday"]; });
29326
29327/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMondays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMondays"]; });
29328
29329/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcTuesday"]; });
29330
29331/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcTuesdays"]; });
29332
29333/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcWednesday"]; });
29334
29335/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcWednesdays"]; });
29336
29337/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcThursday"]; });
29338
29339/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcThursdays"]; });
29340
29341/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFriday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcFriday"]; });
29342
29343/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFridays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcFridays"]; });
29344
29345/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSaturday"]; });
29346
29347/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcSaturdays"]; });
29348
29349/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonth", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMonth"]; });
29350
29351/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcMonths", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcMonths"]; });
29352
29353/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYear", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcYear"]; });
29354
29355/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcYears", function() { return d3_time__WEBPACK_IMPORTED_MODULE_26__["utcYears"]; });
29356
29357/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/index.js");
29358/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatDefaultLocale", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["timeFormatDefaultLocale"]; });
29359
29360/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["timeFormat"]; });
29361
29362/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["timeParse"]; });
29363
29364/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["utcFormat"]; });
29365
29366/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "utcParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["utcParse"]; });
29367
29368/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeFormatLocale", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["timeFormatLocale"]; });
29369
29370/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoFormat", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["isoFormat"]; });
29371
29372/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isoParse", function() { return d3_time_format__WEBPACK_IMPORTED_MODULE_27__["isoParse"]; });
29373
29374/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
29375/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "now", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["now"]; });
29376
29377/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["timer"]; });
29378
29379/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timerFlush", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["timerFlush"]; });
29380
29381/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["timeout"]; });
29382
29383/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return d3_timer__WEBPACK_IMPORTED_MODULE_28__["interval"]; });
29384
29385/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
29386/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_29__["transition"]; });
29387
29388/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "active", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_29__["active"]; });
29389
29390/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interrupt", function() { return d3_transition__WEBPACK_IMPORTED_MODULE_29__["interrupt"]; });
29391
29392/* harmony import */ var d3_voronoi__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! d3-voronoi */ "./node_modules/d3-voronoi/src/index.js");
29393/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "voronoi", function() { return d3_voronoi__WEBPACK_IMPORTED_MODULE_30__["voronoi"]; });
29394
29395/* harmony import */ var d3_zoom__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! d3-zoom */ "./node_modules/d3-zoom/src/index.js");
29396/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoom", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_31__["zoom"]; });
29397
29398/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomTransform", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_31__["zoomTransform"]; });
29399
29400/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zoomIdentity", function() { return d3_zoom__WEBPACK_IMPORTED_MODULE_31__["zoomIdentity"]; });
29401
29402
29403
29404
29405
29406
29407
29408
29409
29410
29411
29412
29413
29414
29415
29416
29417
29418
29419
29420
29421
29422
29423
29424
29425
29426
29427
29428
29429
29430
29431
29432
29433
29434
29435
29436/***/ }),
29437
29438/***/ "./node_modules/dagre-d3/index.js":
29439/*!****************************************!*\
29440 !*** ./node_modules/dagre-d3/index.js ***!
29441 \****************************************/
29442/*! no static exports found */
29443/***/ (function(module, exports, __webpack_require__) {
29444
29445/**
29446 * @license
29447 * Copyright (c) 2012-2013 Chris Pettitt
29448 *
29449 * Permission is hereby granted, free of charge, to any person obtaining a copy
29450 * of this software and associated documentation files (the "Software"), to deal
29451 * in the Software without restriction, including without limitation the rights
29452 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
29453 * copies of the Software, and to permit persons to whom the Software is
29454 * furnished to do so, subject to the following conditions:
29455 *
29456 * The above copyright notice and this permission notice shall be included in
29457 * all copies or substantial portions of the Software.
29458 *
29459 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
29460 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29461 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29462 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29463 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29464 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29465 * THE SOFTWARE.
29466 */
29467module.exports = {
29468 graphlib: __webpack_require__(/*! ./lib/graphlib */ "./node_modules/dagre-d3/lib/graphlib.js"),
29469 dagre: __webpack_require__(/*! ./lib/dagre */ "./node_modules/dagre-d3/lib/dagre.js"),
29470 intersect: __webpack_require__(/*! ./lib/intersect */ "./node_modules/dagre-d3/lib/intersect/index.js"),
29471 render: __webpack_require__(/*! ./lib/render */ "./node_modules/dagre-d3/lib/render.js"),
29472 util: __webpack_require__(/*! ./lib/util */ "./node_modules/dagre-d3/lib/util.js"),
29473 version: __webpack_require__(/*! ./lib/version */ "./node_modules/dagre-d3/lib/version.js")
29474};
29475
29476
29477/***/ }),
29478
29479/***/ "./node_modules/dagre-d3/lib/arrows.js":
29480/*!*********************************************!*\
29481 !*** ./node_modules/dagre-d3/lib/arrows.js ***!
29482 \*********************************************/
29483/*! no static exports found */
29484/***/ (function(module, exports, __webpack_require__) {
29485
29486var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
29487
29488module.exports = {
29489 "default": normal,
29490 "normal": normal,
29491 "vee": vee,
29492 "undirected": undirected
29493};
29494
29495function normal(parent, id, edge, type) {
29496 var marker = parent.append("marker")
29497 .attr("id", id)
29498 .attr("viewBox", "0 0 10 10")
29499 .attr("refX", 9)
29500 .attr("refY", 5)
29501 .attr("markerUnits", "strokeWidth")
29502 .attr("markerWidth", 8)
29503 .attr("markerHeight", 6)
29504 .attr("orient", "auto");
29505
29506 var path = marker.append("path")
29507 .attr("d", "M 0 0 L 10 5 L 0 10 z")
29508 .style("stroke-width", 1)
29509 .style("stroke-dasharray", "1,0");
29510 util.applyStyle(path, edge[type + "Style"]);
29511 if (edge[type + "Class"]) {
29512 path.attr("class", edge[type + "Class"]);
29513 }
29514}
29515
29516function vee(parent, id, edge, type) {
29517 var marker = parent.append("marker")
29518 .attr("id", id)
29519 .attr("viewBox", "0 0 10 10")
29520 .attr("refX", 9)
29521 .attr("refY", 5)
29522 .attr("markerUnits", "strokeWidth")
29523 .attr("markerWidth", 8)
29524 .attr("markerHeight", 6)
29525 .attr("orient", "auto");
29526
29527 var path = marker.append("path")
29528 .attr("d", "M 0 0 L 10 5 L 0 10 L 4 5 z")
29529 .style("stroke-width", 1)
29530 .style("stroke-dasharray", "1,0");
29531 util.applyStyle(path, edge[type + "Style"]);
29532 if (edge[type + "Class"]) {
29533 path.attr("class", edge[type + "Class"]);
29534 }
29535}
29536
29537function undirected(parent, id, edge, type) {
29538 var marker = parent.append("marker")
29539 .attr("id", id)
29540 .attr("viewBox", "0 0 10 10")
29541 .attr("refX", 9)
29542 .attr("refY", 5)
29543 .attr("markerUnits", "strokeWidth")
29544 .attr("markerWidth", 8)
29545 .attr("markerHeight", 6)
29546 .attr("orient", "auto");
29547
29548 var path = marker.append("path")
29549 .attr("d", "M 0 5 L 10 5")
29550 .style("stroke-width", 1)
29551 .style("stroke-dasharray", "1,0");
29552 util.applyStyle(path, edge[type + "Style"]);
29553 if (edge[type + "Class"]) {
29554 path.attr("class", edge[type + "Class"]);
29555 }
29556}
29557
29558
29559/***/ }),
29560
29561/***/ "./node_modules/dagre-d3/lib/create-clusters.js":
29562/*!******************************************************!*\
29563 !*** ./node_modules/dagre-d3/lib/create-clusters.js ***!
29564 \******************************************************/
29565/*! no static exports found */
29566/***/ (function(module, exports, __webpack_require__) {
29567
29568var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
29569var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
29570var addLabel = __webpack_require__(/*! ./label/add-label */ "./node_modules/dagre-d3/lib/label/add-label.js");
29571
29572module.exports = createClusters;
29573
29574function createClusters(selection, g) {
29575 var clusters = g.nodes().filter(function(v) { return util.isSubgraph(g, v); });
29576 var svgClusters = selection.selectAll("g.cluster")
29577 .data(clusters, function(v) { return v; });
29578
29579 svgClusters.selectAll("*").remove();
29580 svgClusters.enter().append("g")
29581 .attr("class", "cluster")
29582 .attr("id",function(v){
29583 var node = g.node(v);
29584 return node.id;
29585 })
29586 .style("opacity", 0);
29587
29588 svgClusters = selection.selectAll("g.cluster");
29589
29590 util.applyTransition(svgClusters, g)
29591 .style("opacity", 1);
29592
29593 svgClusters.each(function(v) {
29594 var node = g.node(v);
29595 var thisGroup = d3.select(this);
29596 d3.select(this).append("rect");
29597 var labelGroup = thisGroup.append("g").attr("class", "label");
29598 addLabel(labelGroup, node, node.clusterLabelPos);
29599 });
29600
29601 svgClusters.selectAll("rect").each(function(c) {
29602 var node = g.node(c);
29603 var domCluster = d3.select(this);
29604 util.applyStyle(domCluster, node.style);
29605 });
29606
29607 var exitSelection;
29608
29609 if (svgClusters.exit) {
29610 exitSelection = svgClusters.exit();
29611 } else {
29612 exitSelection = svgClusters.selectAll(null); // empty selection
29613 }
29614
29615 util.applyTransition(exitSelection, g)
29616 .style("opacity", 0)
29617 .remove();
29618
29619 return svgClusters;
29620}
29621
29622
29623/***/ }),
29624
29625/***/ "./node_modules/dagre-d3/lib/create-edge-labels.js":
29626/*!*********************************************************!*\
29627 !*** ./node_modules/dagre-d3/lib/create-edge-labels.js ***!
29628 \*********************************************************/
29629/*! no static exports found */
29630/***/ (function(module, exports, __webpack_require__) {
29631
29632"use strict";
29633
29634
29635var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
29636var addLabel = __webpack_require__(/*! ./label/add-label */ "./node_modules/dagre-d3/lib/label/add-label.js");
29637var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
29638var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
29639
29640module.exports = createEdgeLabels;
29641
29642function createEdgeLabels(selection, g) {
29643 var svgEdgeLabels = selection.selectAll("g.edgeLabel")
29644 .data(g.edges(), function(e) { return util.edgeToId(e); })
29645 .classed("update", true);
29646
29647 svgEdgeLabels.exit().remove();
29648 svgEdgeLabels.enter().append("g")
29649 .classed("edgeLabel", true)
29650 .style("opacity", 0);
29651
29652 svgEdgeLabels = selection.selectAll("g.edgeLabel");
29653
29654 svgEdgeLabels.each(function(e) {
29655 var root = d3.select(this);
29656 root.select(".label").remove();
29657 var edge = g.edge(e);
29658 var label = addLabel(root, g.edge(e), 0, 0).classed("label", true);
29659 var bbox = label.node().getBBox();
29660
29661 if (edge.labelId) { label.attr("id", edge.labelId); }
29662 if (!_.has(edge, "width")) { edge.width = bbox.width; }
29663 if (!_.has(edge, "height")) { edge.height = bbox.height; }
29664 });
29665
29666 var exitSelection;
29667
29668 if (svgEdgeLabels.exit) {
29669 exitSelection = svgEdgeLabels.exit();
29670 } else {
29671 exitSelection = svgEdgeLabels.selectAll(null); // empty selection
29672 }
29673
29674 util.applyTransition(exitSelection, g)
29675 .style("opacity", 0)
29676 .remove();
29677
29678 return svgEdgeLabels;
29679}
29680
29681
29682/***/ }),
29683
29684/***/ "./node_modules/dagre-d3/lib/create-edge-paths.js":
29685/*!********************************************************!*\
29686 !*** ./node_modules/dagre-d3/lib/create-edge-paths.js ***!
29687 \********************************************************/
29688/*! no static exports found */
29689/***/ (function(module, exports, __webpack_require__) {
29690
29691"use strict";
29692
29693
29694var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
29695var intersectNode = __webpack_require__(/*! ./intersect/intersect-node */ "./node_modules/dagre-d3/lib/intersect/intersect-node.js");
29696var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
29697var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
29698module.exports = createEdgePaths;
29699
29700function createEdgePaths(selection, g, arrows) {
29701 var previousPaths = selection.selectAll("g.edgePath")
29702 .data(g.edges(), function(e) { return util.edgeToId(e); })
29703 .classed("update", true);
29704
29705 var newPaths = enter(previousPaths, g);
29706 exit(previousPaths, g);
29707
29708 var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;
29709 util.applyTransition(svgPaths, g)
29710 .style("opacity", 1);
29711
29712 // Save DOM element in the path group, and set ID and class
29713 svgPaths.each(function(e) {
29714 var domEdge = d3.select(this);
29715 var edge = g.edge(e);
29716 edge.elem = this;
29717
29718 if (edge.id) {
29719 domEdge.attr("id", edge.id);
29720 }
29721
29722 util.applyClass(domEdge, edge["class"],
29723 (domEdge.classed("update") ? "update " : "") + "edgePath");
29724 });
29725
29726 svgPaths.selectAll("path.path")
29727 .each(function(e) {
29728 var edge = g.edge(e);
29729 edge.arrowheadId = _.uniqueId("arrowhead");
29730
29731 var domEdge = d3.select(this)
29732 .attr("marker-end", function() {
29733 return "url(" + makeFragmentRef(location.href, edge.arrowheadId) + ")";
29734 })
29735 .style("fill", "none");
29736
29737 util.applyTransition(domEdge, g)
29738 .attr("d", function(e) { return calcPoints(g, e); });
29739
29740 util.applyStyle(domEdge, edge.style);
29741 });
29742
29743 svgPaths.selectAll("defs *").remove();
29744 svgPaths.selectAll("defs")
29745 .each(function(e) {
29746 var edge = g.edge(e);
29747 var arrowhead = arrows[edge.arrowhead];
29748 arrowhead(d3.select(this), edge.arrowheadId, edge, "arrowhead");
29749 });
29750
29751 return svgPaths;
29752}
29753
29754function makeFragmentRef(url, fragmentId) {
29755 var baseUrl = url.split("#")[0];
29756 return baseUrl + "#" + fragmentId;
29757}
29758
29759function calcPoints(g, e) {
29760 var edge = g.edge(e);
29761 var tail = g.node(e.v);
29762 var head = g.node(e.w);
29763 var points = edge.points.slice(1, edge.points.length - 1);
29764 points.unshift(intersectNode(tail, points[0]));
29765 points.push(intersectNode(head, points[points.length - 1]));
29766
29767 return createLine(edge, points);
29768}
29769
29770function createLine(edge, points) {
29771 var line = (d3.line || d3.svg.line)()
29772 .x(function(d) { return d.x; })
29773 .y(function(d) { return d.y; });
29774
29775 (line.curve || line.interpolate)(edge.curve);
29776
29777 return line(points);
29778}
29779
29780function getCoords(elem) {
29781 var bbox = elem.getBBox();
29782 var matrix = elem.ownerSVGElement.getScreenCTM()
29783 .inverse()
29784 .multiply(elem.getScreenCTM())
29785 .translate(bbox.width / 2, bbox.height / 2);
29786 return { x: matrix.e, y: matrix.f };
29787}
29788
29789function enter(svgPaths, g) {
29790 var svgPathsEnter = svgPaths.enter().append("g")
29791 .attr("class", "edgePath")
29792 .style("opacity", 0);
29793 svgPathsEnter.append("path")
29794 .attr("class", "path")
29795 .attr("d", function(e) {
29796 var edge = g.edge(e);
29797 var sourceElem = g.node(e.v).elem;
29798 var points = _.range(edge.points.length).map(function() { return getCoords(sourceElem); });
29799 return createLine(edge, points);
29800 });
29801 svgPathsEnter.append("defs");
29802 return svgPathsEnter;
29803}
29804
29805function exit(svgPaths, g) {
29806 var svgPathExit = svgPaths.exit();
29807 util.applyTransition(svgPathExit, g)
29808 .style("opacity", 0)
29809 .remove();
29810}
29811
29812
29813/***/ }),
29814
29815/***/ "./node_modules/dagre-d3/lib/create-nodes.js":
29816/*!***************************************************!*\
29817 !*** ./node_modules/dagre-d3/lib/create-nodes.js ***!
29818 \***************************************************/
29819/*! no static exports found */
29820/***/ (function(module, exports, __webpack_require__) {
29821
29822"use strict";
29823
29824
29825var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
29826var addLabel = __webpack_require__(/*! ./label/add-label */ "./node_modules/dagre-d3/lib/label/add-label.js");
29827var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
29828var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
29829
29830module.exports = createNodes;
29831
29832function createNodes(selection, g, shapes) {
29833 var simpleNodes = g.nodes().filter(function(v) { return !util.isSubgraph(g, v); });
29834 var svgNodes = selection.selectAll("g.node")
29835 .data(simpleNodes, function(v) { return v; })
29836 .classed("update", true);
29837
29838 svgNodes.exit().remove();
29839
29840 svgNodes.enter().append("g")
29841 .attr("class", "node")
29842 .style("opacity", 0);
29843
29844 svgNodes = selection.selectAll("g.node");
29845
29846 svgNodes.each(function(v) {
29847 var node = g.node(v);
29848 var thisGroup = d3.select(this);
29849 util.applyClass(thisGroup, node["class"],
29850 (thisGroup.classed("update") ? "update " : "") + "node");
29851
29852 thisGroup.select("g.label").remove();
29853 var labelGroup = thisGroup.append("g").attr("class", "label");
29854 var labelDom = addLabel(labelGroup, node);
29855 var shape = shapes[node.shape];
29856 var bbox = _.pick(labelDom.node().getBBox(), "width", "height");
29857
29858 node.elem = this;
29859
29860 if (node.id) { thisGroup.attr("id", node.id); }
29861 if (node.labelId) { labelGroup.attr("id", node.labelId); }
29862
29863 if (_.has(node, "width")) { bbox.width = node.width; }
29864 if (_.has(node, "height")) { bbox.height = node.height; }
29865
29866 bbox.width += node.paddingLeft + node.paddingRight;
29867 bbox.height += node.paddingTop + node.paddingBottom;
29868 labelGroup.attr("transform", "translate(" +
29869 ((node.paddingLeft - node.paddingRight) / 2) + "," +
29870 ((node.paddingTop - node.paddingBottom) / 2) + ")");
29871
29872 var root = d3.select(this);
29873 root.select(".label-container").remove();
29874 var shapeSvg = shape(root, bbox, node).classed("label-container", true);
29875 util.applyStyle(shapeSvg, node.style);
29876
29877 var shapeBBox = shapeSvg.node().getBBox();
29878 node.width = shapeBBox.width;
29879 node.height = shapeBBox.height;
29880 });
29881
29882 var exitSelection;
29883
29884 if (svgNodes.exit) {
29885 exitSelection = svgNodes.exit();
29886 } else {
29887 exitSelection = svgNodes.selectAll(null); // empty selection
29888 }
29889
29890 util.applyTransition(exitSelection, g)
29891 .style("opacity", 0)
29892 .remove();
29893
29894 return svgNodes;
29895}
29896
29897
29898/***/ }),
29899
29900/***/ "./node_modules/dagre-d3/lib/d3.js":
29901/*!*****************************************!*\
29902 !*** ./node_modules/dagre-d3/lib/d3.js ***!
29903 \*****************************************/
29904/*! no static exports found */
29905/***/ (function(module, exports, __webpack_require__) {
29906
29907// Stub to get D3 either via NPM or from the global object
29908var d3;
29909
29910if (!d3) {
29911 if (true) {
29912 try {
29913 d3 = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
29914 }
29915 catch (e) {
29916 // continue regardless of error
29917 }
29918 }
29919}
29920
29921if (!d3) {
29922 d3 = window.d3;
29923}
29924
29925module.exports = d3;
29926
29927
29928/***/ }),
29929
29930/***/ "./node_modules/dagre-d3/lib/dagre.js":
29931/*!********************************************!*\
29932 !*** ./node_modules/dagre-d3/lib/dagre.js ***!
29933 \********************************************/
29934/*! no static exports found */
29935/***/ (function(module, exports, __webpack_require__) {
29936
29937/* global window */
29938
29939var dagre;
29940
29941if (true) {
29942 try {
29943 dagre = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
29944 } catch (e) {
29945 // continue regardless of error
29946 }
29947}
29948
29949if (!dagre) {
29950 dagre = window.dagre;
29951}
29952
29953module.exports = dagre;
29954
29955
29956/***/ }),
29957
29958/***/ "./node_modules/dagre-d3/lib/graphlib.js":
29959/*!***********************************************!*\
29960 !*** ./node_modules/dagre-d3/lib/graphlib.js ***!
29961 \***********************************************/
29962/*! no static exports found */
29963/***/ (function(module, exports, __webpack_require__) {
29964
29965/* global window */
29966
29967var graphlib;
29968
29969if (true) {
29970 try {
29971 graphlib = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
29972 }
29973 catch (e) {
29974 // continue regardless of error
29975 }
29976}
29977
29978if (!graphlib) {
29979 graphlib = window.graphlib;
29980}
29981
29982module.exports = graphlib;
29983
29984
29985/***/ }),
29986
29987/***/ "./node_modules/dagre-d3/lib/intersect/index.js":
29988/*!******************************************************!*\
29989 !*** ./node_modules/dagre-d3/lib/intersect/index.js ***!
29990 \******************************************************/
29991/*! no static exports found */
29992/***/ (function(module, exports, __webpack_require__) {
29993
29994module.exports = {
29995 node: __webpack_require__(/*! ./intersect-node */ "./node_modules/dagre-d3/lib/intersect/intersect-node.js"),
29996 circle: __webpack_require__(/*! ./intersect-circle */ "./node_modules/dagre-d3/lib/intersect/intersect-circle.js"),
29997 ellipse: __webpack_require__(/*! ./intersect-ellipse */ "./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js"),
29998 polygon: __webpack_require__(/*! ./intersect-polygon */ "./node_modules/dagre-d3/lib/intersect/intersect-polygon.js"),
29999 rect: __webpack_require__(/*! ./intersect-rect */ "./node_modules/dagre-d3/lib/intersect/intersect-rect.js")
30000};
30001
30002
30003/***/ }),
30004
30005/***/ "./node_modules/dagre-d3/lib/intersect/intersect-circle.js":
30006/*!*****************************************************************!*\
30007 !*** ./node_modules/dagre-d3/lib/intersect/intersect-circle.js ***!
30008 \*****************************************************************/
30009/*! no static exports found */
30010/***/ (function(module, exports, __webpack_require__) {
30011
30012var intersectEllipse = __webpack_require__(/*! ./intersect-ellipse */ "./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js");
30013
30014module.exports = intersectCircle;
30015
30016function intersectCircle(node, rx, point) {
30017 return intersectEllipse(node, rx, rx, point);
30018}
30019
30020
30021/***/ }),
30022
30023/***/ "./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js":
30024/*!******************************************************************!*\
30025 !*** ./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js ***!
30026 \******************************************************************/
30027/*! no static exports found */
30028/***/ (function(module, exports) {
30029
30030module.exports = intersectEllipse;
30031
30032function intersectEllipse(node, rx, ry, point) {
30033 // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html
30034
30035 var cx = node.x;
30036 var cy = node.y;
30037
30038 var px = cx - point.x;
30039 var py = cy - point.y;
30040
30041 var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
30042
30043 var dx = Math.abs(rx * ry * px / det);
30044 if (point.x < cx) {
30045 dx = -dx;
30046 }
30047 var dy = Math.abs(rx * ry * py / det);
30048 if (point.y < cy) {
30049 dy = -dy;
30050 }
30051
30052 return {x: cx + dx, y: cy + dy};
30053}
30054
30055
30056
30057/***/ }),
30058
30059/***/ "./node_modules/dagre-d3/lib/intersect/intersect-line.js":
30060/*!***************************************************************!*\
30061 !*** ./node_modules/dagre-d3/lib/intersect/intersect-line.js ***!
30062 \***************************************************************/
30063/*! no static exports found */
30064/***/ (function(module, exports) {
30065
30066module.exports = intersectLine;
30067
30068/*
30069 * Returns the point at which two lines, p and q, intersect or returns
30070 * undefined if they do not intersect.
30071 */
30072function intersectLine(p1, p2, q1, q2) {
30073 // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,
30074 // p7 and p473.
30075
30076 var a1, a2, b1, b2, c1, c2;
30077 var r1, r2 , r3, r4;
30078 var denom, offset, num;
30079 var x, y;
30080
30081 // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +
30082 // b1 y + c1 = 0.
30083 a1 = p2.y - p1.y;
30084 b1 = p1.x - p2.x;
30085 c1 = (p2.x * p1.y) - (p1.x * p2.y);
30086
30087 // Compute r3 and r4.
30088 r3 = ((a1 * q1.x) + (b1 * q1.y) + c1);
30089 r4 = ((a1 * q2.x) + (b1 * q2.y) + c1);
30090
30091 // Check signs of r3 and r4. If both point 3 and point 4 lie on
30092 // same side of line 1, the line segments do not intersect.
30093 if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) {
30094 return /*DONT_INTERSECT*/;
30095 }
30096
30097 // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0
30098 a2 = q2.y - q1.y;
30099 b2 = q1.x - q2.x;
30100 c2 = (q2.x * q1.y) - (q1.x * q2.y);
30101
30102 // Compute r1 and r2
30103 r1 = (a2 * p1.x) + (b2 * p1.y) + c2;
30104 r2 = (a2 * p2.x) + (b2 * p2.y) + c2;
30105
30106 // Check signs of r1 and r2. If both point 1 and point 2 lie
30107 // on same side of second line segment, the line segments do
30108 // not intersect.
30109 if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) {
30110 return /*DONT_INTERSECT*/;
30111 }
30112
30113 // Line segments intersect: compute intersection point.
30114 denom = (a1 * b2) - (a2 * b1);
30115 if (denom === 0) {
30116 return /*COLLINEAR*/;
30117 }
30118
30119 offset = Math.abs(denom / 2);
30120
30121 // The denom/2 is to get rounding instead of truncating. It
30122 // is added or subtracted to the numerator, depending upon the
30123 // sign of the numerator.
30124 num = (b1 * c2) - (b2 * c1);
30125 x = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);
30126
30127 num = (a2 * c1) - (a1 * c2);
30128 y = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);
30129
30130 return { x: x, y: y };
30131}
30132
30133function sameSign(r1, r2) {
30134 return r1 * r2 > 0;
30135}
30136
30137
30138/***/ }),
30139
30140/***/ "./node_modules/dagre-d3/lib/intersect/intersect-node.js":
30141/*!***************************************************************!*\
30142 !*** ./node_modules/dagre-d3/lib/intersect/intersect-node.js ***!
30143 \***************************************************************/
30144/*! no static exports found */
30145/***/ (function(module, exports) {
30146
30147module.exports = intersectNode;
30148
30149function intersectNode(node, point) {
30150 return node.intersect(point);
30151}
30152
30153
30154/***/ }),
30155
30156/***/ "./node_modules/dagre-d3/lib/intersect/intersect-polygon.js":
30157/*!******************************************************************!*\
30158 !*** ./node_modules/dagre-d3/lib/intersect/intersect-polygon.js ***!
30159 \******************************************************************/
30160/*! no static exports found */
30161/***/ (function(module, exports, __webpack_require__) {
30162
30163/* eslint "no-console": off */
30164
30165var intersectLine = __webpack_require__(/*! ./intersect-line */ "./node_modules/dagre-d3/lib/intersect/intersect-line.js");
30166
30167module.exports = intersectPolygon;
30168
30169/*
30170 * Returns the point ({x, y}) at which the point argument intersects with the
30171 * node argument assuming that it has the shape specified by polygon.
30172 */
30173function intersectPolygon(node, polyPoints, point) {
30174 var x1 = node.x;
30175 var y1 = node.y;
30176
30177 var intersections = [];
30178
30179 var minX = Number.POSITIVE_INFINITY;
30180 var minY = Number.POSITIVE_INFINITY;
30181 polyPoints.forEach(function(entry) {
30182 minX = Math.min(minX, entry.x);
30183 minY = Math.min(minY, entry.y);
30184 });
30185
30186 var left = x1 - node.width / 2 - minX;
30187 var top = y1 - node.height / 2 - minY;
30188
30189 for (var i = 0; i < polyPoints.length; i++) {
30190 var p1 = polyPoints[i];
30191 var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];
30192 var intersect = intersectLine(node, point,
30193 {x: left + p1.x, y: top + p1.y}, {x: left + p2.x, y: top + p2.y});
30194 if (intersect) {
30195 intersections.push(intersect);
30196 }
30197 }
30198
30199 if (!intersections.length) {
30200 console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", node);
30201 return node;
30202 }
30203
30204 if (intersections.length > 1) {
30205 // More intersections, find the one nearest to edge end point
30206 intersections.sort(function(p, q) {
30207 var pdx = p.x - point.x;
30208 var pdy = p.y - point.y;
30209 var distp = Math.sqrt(pdx * pdx + pdy * pdy);
30210
30211 var qdx = q.x - point.x;
30212 var qdy = q.y - point.y;
30213 var distq = Math.sqrt(qdx * qdx + qdy * qdy);
30214
30215 return (distp < distq) ? -1 : (distp === distq ? 0 : 1);
30216 });
30217 }
30218 return intersections[0];
30219}
30220
30221
30222/***/ }),
30223
30224/***/ "./node_modules/dagre-d3/lib/intersect/intersect-rect.js":
30225/*!***************************************************************!*\
30226 !*** ./node_modules/dagre-d3/lib/intersect/intersect-rect.js ***!
30227 \***************************************************************/
30228/*! no static exports found */
30229/***/ (function(module, exports) {
30230
30231module.exports = intersectRect;
30232
30233function intersectRect(node, point) {
30234 var x = node.x;
30235 var y = node.y;
30236
30237 // Rectangle intersection algorithm from:
30238 // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
30239 var dx = point.x - x;
30240 var dy = point.y - y;
30241 var w = node.width / 2;
30242 var h = node.height / 2;
30243
30244 var sx, sy;
30245 if (Math.abs(dy) * w > Math.abs(dx) * h) {
30246 // Intersection is top or bottom of rect.
30247 if (dy < 0) {
30248 h = -h;
30249 }
30250 sx = dy === 0 ? 0 : h * dx / dy;
30251 sy = h;
30252 } else {
30253 // Intersection is left or right of rect.
30254 if (dx < 0) {
30255 w = -w;
30256 }
30257 sx = w;
30258 sy = dx === 0 ? 0 : w * dy / dx;
30259 }
30260
30261 return {x: x + sx, y: y + sy};
30262}
30263
30264
30265/***/ }),
30266
30267/***/ "./node_modules/dagre-d3/lib/label/add-html-label.js":
30268/*!***********************************************************!*\
30269 !*** ./node_modules/dagre-d3/lib/label/add-html-label.js ***!
30270 \***********************************************************/
30271/*! no static exports found */
30272/***/ (function(module, exports, __webpack_require__) {
30273
30274var util = __webpack_require__(/*! ../util */ "./node_modules/dagre-d3/lib/util.js");
30275
30276module.exports = addHtmlLabel;
30277
30278function addHtmlLabel(root, node) {
30279 var fo = root
30280 .append("foreignObject")
30281 .attr("width", "100000");
30282
30283 var div = fo
30284 .append("xhtml:div");
30285 div.attr("xmlns", "http://www.w3.org/1999/xhtml");
30286
30287 var label = node.label;
30288 switch(typeof label) {
30289 case "function":
30290 div.insert(label);
30291 break;
30292 case "object":
30293 // Currently we assume this is a DOM object.
30294 div.insert(function() { return label; });
30295 break;
30296 default: div.html(label);
30297 }
30298
30299 util.applyStyle(div, node.labelStyle);
30300 div.style("display", "inline-block");
30301 // Fix for firefox
30302 div.style("white-space", "nowrap");
30303
30304 var client = div.node().getBoundingClientRect();
30305 fo
30306 .attr("width", client.width)
30307 .attr("height", client.height);
30308
30309 return fo;
30310}
30311
30312
30313/***/ }),
30314
30315/***/ "./node_modules/dagre-d3/lib/label/add-label.js":
30316/*!******************************************************!*\
30317 !*** ./node_modules/dagre-d3/lib/label/add-label.js ***!
30318 \******************************************************/
30319/*! no static exports found */
30320/***/ (function(module, exports, __webpack_require__) {
30321
30322var addTextLabel = __webpack_require__(/*! ./add-text-label */ "./node_modules/dagre-d3/lib/label/add-text-label.js");
30323var addHtmlLabel = __webpack_require__(/*! ./add-html-label */ "./node_modules/dagre-d3/lib/label/add-html-label.js");
30324var addSVGLabel = __webpack_require__(/*! ./add-svg-label */ "./node_modules/dagre-d3/lib/label/add-svg-label.js");
30325
30326module.exports = addLabel;
30327
30328function addLabel(root, node, location) {
30329 var label = node.label;
30330 var labelSvg = root.append("g");
30331
30332 // Allow the label to be a string, a function that returns a DOM element, or
30333 // a DOM element itself.
30334 if (node.labelType === "svg") {
30335 addSVGLabel(labelSvg, node);
30336 } else if (typeof label !== "string" || node.labelType === "html") {
30337 addHtmlLabel(labelSvg, node);
30338 } else {
30339 addTextLabel(labelSvg, node);
30340 }
30341
30342 var labelBBox = labelSvg.node().getBBox();
30343 var y;
30344 switch(location) {
30345 case "top":
30346 y = (-node.height / 2);
30347 break;
30348 case "bottom":
30349 y = (node.height / 2) - labelBBox.height;
30350 break;
30351 default:
30352 y = (-labelBBox.height / 2);
30353 }
30354 labelSvg.attr(
30355 "transform",
30356 "translate(" + (-labelBBox.width / 2) + "," + y + ")");
30357
30358 return labelSvg;
30359}
30360
30361
30362/***/ }),
30363
30364/***/ "./node_modules/dagre-d3/lib/label/add-svg-label.js":
30365/*!**********************************************************!*\
30366 !*** ./node_modules/dagre-d3/lib/label/add-svg-label.js ***!
30367 \**********************************************************/
30368/*! no static exports found */
30369/***/ (function(module, exports, __webpack_require__) {
30370
30371var util = __webpack_require__(/*! ../util */ "./node_modules/dagre-d3/lib/util.js");
30372
30373module.exports = addSVGLabel;
30374
30375function addSVGLabel(root, node) {
30376 var domNode = root;
30377
30378 domNode.node().appendChild(node.label);
30379
30380 util.applyStyle(domNode, node.labelStyle);
30381
30382 return domNode;
30383}
30384
30385
30386/***/ }),
30387
30388/***/ "./node_modules/dagre-d3/lib/label/add-text-label.js":
30389/*!***********************************************************!*\
30390 !*** ./node_modules/dagre-d3/lib/label/add-text-label.js ***!
30391 \***********************************************************/
30392/*! no static exports found */
30393/***/ (function(module, exports, __webpack_require__) {
30394
30395var util = __webpack_require__(/*! ../util */ "./node_modules/dagre-d3/lib/util.js");
30396
30397module.exports = addTextLabel;
30398
30399/*
30400 * Attaches a text label to the specified root. Handles escape sequences.
30401 */
30402function addTextLabel(root, node) {
30403 var domNode = root.append("text");
30404
30405 var lines = processEscapeSequences(node.label).split("\n");
30406 for (var i = 0; i < lines.length; i++) {
30407 domNode.append("tspan")
30408 .attr("xml:space", "preserve")
30409 .attr("dy", "1em")
30410 .attr("x", "1")
30411 .text(lines[i]);
30412 }
30413
30414 util.applyStyle(domNode, node.labelStyle);
30415
30416 return domNode;
30417}
30418
30419function processEscapeSequences(text) {
30420 var newText = "";
30421 var escaped = false;
30422 var ch;
30423 for (var i = 0; i < text.length; ++i) {
30424 ch = text[i];
30425 if (escaped) {
30426 switch(ch) {
30427 case "n": newText += "\n"; break;
30428 default: newText += ch;
30429 }
30430 escaped = false;
30431 } else if (ch === "\\") {
30432 escaped = true;
30433 } else {
30434 newText += ch;
30435 }
30436 }
30437 return newText;
30438}
30439
30440
30441/***/ }),
30442
30443/***/ "./node_modules/dagre-d3/lib/lodash.js":
30444/*!*********************************************!*\
30445 !*** ./node_modules/dagre-d3/lib/lodash.js ***!
30446 \*********************************************/
30447/*! no static exports found */
30448/***/ (function(module, exports, __webpack_require__) {
30449
30450/* global window */
30451
30452var lodash;
30453
30454if (true) {
30455 try {
30456 lodash = {
30457 defaults: __webpack_require__(/*! lodash/defaults */ "./node_modules/lodash/defaults.js"),
30458 each: __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js"),
30459 isFunction: __webpack_require__(/*! lodash/isFunction */ "./node_modules/lodash/isFunction.js"),
30460 isPlainObject: __webpack_require__(/*! lodash/isPlainObject */ "./node_modules/lodash/isPlainObject.js"),
30461 pick: __webpack_require__(/*! lodash/pick */ "./node_modules/lodash/pick.js"),
30462 has: __webpack_require__(/*! lodash/has */ "./node_modules/lodash/has.js"),
30463 range: __webpack_require__(/*! lodash/range */ "./node_modules/lodash/range.js"),
30464 uniqueId: __webpack_require__(/*! lodash/uniqueId */ "./node_modules/lodash/uniqueId.js")
30465 };
30466 }
30467 catch (e) {
30468 // continue regardless of error
30469 }
30470}
30471
30472if (!lodash) {
30473 lodash = window._;
30474}
30475
30476module.exports = lodash;
30477
30478
30479/***/ }),
30480
30481/***/ "./node_modules/dagre-d3/lib/position-clusters.js":
30482/*!********************************************************!*\
30483 !*** ./node_modules/dagre-d3/lib/position-clusters.js ***!
30484 \********************************************************/
30485/*! no static exports found */
30486/***/ (function(module, exports, __webpack_require__) {
30487
30488"use strict";
30489
30490
30491var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
30492var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
30493
30494module.exports = positionClusters;
30495
30496function positionClusters(selection, g) {
30497 var created = selection.filter(function() { return !d3.select(this).classed("update"); });
30498
30499 function translate(v) {
30500 var node = g.node(v);
30501 return "translate(" + node.x + "," + node.y + ")";
30502 }
30503
30504 created.attr("transform", translate);
30505
30506 util.applyTransition(selection, g)
30507 .style("opacity", 1)
30508 .attr("transform", translate);
30509
30510 util.applyTransition(created.selectAll("rect"), g)
30511 .attr("width", function(v) { return g.node(v).width; })
30512 .attr("height", function(v) { return g.node(v).height; })
30513 .attr("x", function(v) {
30514 var node = g.node(v);
30515 return -node.width / 2;
30516 })
30517 .attr("y", function(v) {
30518 var node = g.node(v);
30519 return -node.height / 2;
30520 });
30521}
30522
30523
30524/***/ }),
30525
30526/***/ "./node_modules/dagre-d3/lib/position-edge-labels.js":
30527/*!***********************************************************!*\
30528 !*** ./node_modules/dagre-d3/lib/position-edge-labels.js ***!
30529 \***********************************************************/
30530/*! no static exports found */
30531/***/ (function(module, exports, __webpack_require__) {
30532
30533"use strict";
30534
30535
30536var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
30537var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
30538var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
30539
30540module.exports = positionEdgeLabels;
30541
30542function positionEdgeLabels(selection, g) {
30543 var created = selection.filter(function() { return !d3.select(this).classed("update"); });
30544
30545 function translate(e) {
30546 var edge = g.edge(e);
30547 return _.has(edge, "x") ? "translate(" + edge.x + "," + edge.y + ")" : "";
30548 }
30549
30550 created.attr("transform", translate);
30551
30552 util.applyTransition(selection, g)
30553 .style("opacity", 1)
30554 .attr("transform", translate);
30555}
30556
30557
30558/***/ }),
30559
30560/***/ "./node_modules/dagre-d3/lib/position-nodes.js":
30561/*!*****************************************************!*\
30562 !*** ./node_modules/dagre-d3/lib/position-nodes.js ***!
30563 \*****************************************************/
30564/*! no static exports found */
30565/***/ (function(module, exports, __webpack_require__) {
30566
30567"use strict";
30568
30569
30570var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
30571var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
30572
30573module.exports = positionNodes;
30574
30575function positionNodes(selection, g) {
30576 var created = selection.filter(function() { return !d3.select(this).classed("update"); });
30577
30578 function translate(v) {
30579 var node = g.node(v);
30580 return "translate(" + node.x + "," + node.y + ")";
30581 }
30582
30583 created.attr("transform", translate);
30584
30585 util.applyTransition(selection, g)
30586 .style("opacity", 1)
30587 .attr("transform", translate);
30588}
30589
30590
30591/***/ }),
30592
30593/***/ "./node_modules/dagre-d3/lib/render.js":
30594/*!*********************************************!*\
30595 !*** ./node_modules/dagre-d3/lib/render.js ***!
30596 \*********************************************/
30597/*! no static exports found */
30598/***/ (function(module, exports, __webpack_require__) {
30599
30600var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
30601var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
30602var layout = __webpack_require__(/*! ./dagre */ "./node_modules/dagre-d3/lib/dagre.js").layout;
30603
30604module.exports = render;
30605
30606// This design is based on http://bost.ocks.org/mike/chart/.
30607function render() {
30608 var createNodes = __webpack_require__(/*! ./create-nodes */ "./node_modules/dagre-d3/lib/create-nodes.js");
30609 var createClusters = __webpack_require__(/*! ./create-clusters */ "./node_modules/dagre-d3/lib/create-clusters.js");
30610 var createEdgeLabels = __webpack_require__(/*! ./create-edge-labels */ "./node_modules/dagre-d3/lib/create-edge-labels.js");
30611 var createEdgePaths = __webpack_require__(/*! ./create-edge-paths */ "./node_modules/dagre-d3/lib/create-edge-paths.js");
30612 var positionNodes = __webpack_require__(/*! ./position-nodes */ "./node_modules/dagre-d3/lib/position-nodes.js");
30613 var positionEdgeLabels = __webpack_require__(/*! ./position-edge-labels */ "./node_modules/dagre-d3/lib/position-edge-labels.js");
30614 var positionClusters = __webpack_require__(/*! ./position-clusters */ "./node_modules/dagre-d3/lib/position-clusters.js");
30615 var shapes = __webpack_require__(/*! ./shapes */ "./node_modules/dagre-d3/lib/shapes.js");
30616 var arrows = __webpack_require__(/*! ./arrows */ "./node_modules/dagre-d3/lib/arrows.js");
30617
30618 var fn = function(svg, g) {
30619 preProcessGraph(g);
30620
30621 var outputGroup = createOrSelectGroup(svg, "output");
30622 var clustersGroup = createOrSelectGroup(outputGroup, "clusters");
30623 var edgePathsGroup = createOrSelectGroup(outputGroup, "edgePaths");
30624 var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, "edgeLabels"), g);
30625 var nodes = createNodes(createOrSelectGroup(outputGroup, "nodes"), g, shapes);
30626
30627 layout(g);
30628
30629 positionNodes(nodes, g);
30630 positionEdgeLabels(edgeLabels, g);
30631 createEdgePaths(edgePathsGroup, g, arrows);
30632
30633 var clusters = createClusters(clustersGroup, g);
30634 positionClusters(clusters, g);
30635
30636 postProcessGraph(g);
30637 };
30638
30639 fn.createNodes = function(value) {
30640 if (!arguments.length) return createNodes;
30641 createNodes = value;
30642 return fn;
30643 };
30644
30645 fn.createClusters = function(value) {
30646 if (!arguments.length) return createClusters;
30647 createClusters = value;
30648 return fn;
30649 };
30650
30651 fn.createEdgeLabels = function(value) {
30652 if (!arguments.length) return createEdgeLabels;
30653 createEdgeLabels = value;
30654 return fn;
30655 };
30656
30657 fn.createEdgePaths = function(value) {
30658 if (!arguments.length) return createEdgePaths;
30659 createEdgePaths = value;
30660 return fn;
30661 };
30662
30663 fn.shapes = function(value) {
30664 if (!arguments.length) return shapes;
30665 shapes = value;
30666 return fn;
30667 };
30668
30669 fn.arrows = function(value) {
30670 if (!arguments.length) return arrows;
30671 arrows = value;
30672 return fn;
30673 };
30674
30675 return fn;
30676}
30677
30678var NODE_DEFAULT_ATTRS = {
30679 paddingLeft: 10,
30680 paddingRight: 10,
30681 paddingTop: 10,
30682 paddingBottom: 10,
30683 rx: 0,
30684 ry: 0,
30685 shape: "rect"
30686};
30687
30688var EDGE_DEFAULT_ATTRS = {
30689 arrowhead: "normal",
30690 curve: d3.curveLinear
30691};
30692
30693function preProcessGraph(g) {
30694 g.nodes().forEach(function(v) {
30695 var node = g.node(v);
30696 if (!_.has(node, "label") && !g.children(v).length) { node.label = v; }
30697
30698 if (_.has(node, "paddingX")) {
30699 _.defaults(node, {
30700 paddingLeft: node.paddingX,
30701 paddingRight: node.paddingX
30702 });
30703 }
30704
30705 if (_.has(node, "paddingY")) {
30706 _.defaults(node, {
30707 paddingTop: node.paddingY,
30708 paddingBottom: node.paddingY
30709 });
30710 }
30711
30712 if (_.has(node, "padding")) {
30713 _.defaults(node, {
30714 paddingLeft: node.padding,
30715 paddingRight: node.padding,
30716 paddingTop: node.padding,
30717 paddingBottom: node.padding
30718 });
30719 }
30720
30721 _.defaults(node, NODE_DEFAULT_ATTRS);
30722
30723 _.each(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(k) {
30724 node[k] = Number(node[k]);
30725 });
30726
30727 // Save dimensions for restore during post-processing
30728 if (_.has(node, "width")) { node._prevWidth = node.width; }
30729 if (_.has(node, "height")) { node._prevHeight = node.height; }
30730 });
30731
30732 g.edges().forEach(function(e) {
30733 var edge = g.edge(e);
30734 if (!_.has(edge, "label")) { edge.label = ""; }
30735 _.defaults(edge, EDGE_DEFAULT_ATTRS);
30736 });
30737}
30738
30739function postProcessGraph(g) {
30740 _.each(g.nodes(), function(v) {
30741 var node = g.node(v);
30742
30743 // Restore original dimensions
30744 if (_.has(node, "_prevWidth")) {
30745 node.width = node._prevWidth;
30746 } else {
30747 delete node.width;
30748 }
30749
30750 if (_.has(node, "_prevHeight")) {
30751 node.height = node._prevHeight;
30752 } else {
30753 delete node.height;
30754 }
30755
30756 delete node._prevWidth;
30757 delete node._prevHeight;
30758 });
30759}
30760
30761function createOrSelectGroup(root, name) {
30762 var selection = root.select("g." + name);
30763 if (selection.empty()) {
30764 selection = root.append("g").attr("class", name);
30765 }
30766 return selection;
30767}
30768
30769
30770/***/ }),
30771
30772/***/ "./node_modules/dagre-d3/lib/shapes.js":
30773/*!*********************************************!*\
30774 !*** ./node_modules/dagre-d3/lib/shapes.js ***!
30775 \*********************************************/
30776/*! no static exports found */
30777/***/ (function(module, exports, __webpack_require__) {
30778
30779"use strict";
30780
30781
30782var intersectRect = __webpack_require__(/*! ./intersect/intersect-rect */ "./node_modules/dagre-d3/lib/intersect/intersect-rect.js");
30783var intersectEllipse = __webpack_require__(/*! ./intersect/intersect-ellipse */ "./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js");
30784var intersectCircle = __webpack_require__(/*! ./intersect/intersect-circle */ "./node_modules/dagre-d3/lib/intersect/intersect-circle.js");
30785var intersectPolygon = __webpack_require__(/*! ./intersect/intersect-polygon */ "./node_modules/dagre-d3/lib/intersect/intersect-polygon.js");
30786
30787module.exports = {
30788 rect: rect,
30789 ellipse: ellipse,
30790 circle: circle,
30791 diamond: diamond
30792};
30793
30794function rect(parent, bbox, node) {
30795 var shapeSvg = parent.insert("rect", ":first-child")
30796 .attr("rx", node.rx)
30797 .attr("ry", node.ry)
30798 .attr("x", -bbox.width / 2)
30799 .attr("y", -bbox.height / 2)
30800 .attr("width", bbox.width)
30801 .attr("height", bbox.height);
30802
30803 node.intersect = function(point) {
30804 return intersectRect(node, point);
30805 };
30806
30807 return shapeSvg;
30808}
30809
30810function ellipse(parent, bbox, node) {
30811 var rx = bbox.width / 2;
30812 var ry = bbox.height / 2;
30813 var shapeSvg = parent.insert("ellipse", ":first-child")
30814 .attr("x", -bbox.width / 2)
30815 .attr("y", -bbox.height / 2)
30816 .attr("rx", rx)
30817 .attr("ry", ry);
30818
30819 node.intersect = function(point) {
30820 return intersectEllipse(node, rx, ry, point);
30821 };
30822
30823 return shapeSvg;
30824}
30825
30826function circle(parent, bbox, node) {
30827 var r = Math.max(bbox.width, bbox.height) / 2;
30828 var shapeSvg = parent.insert("circle", ":first-child")
30829 .attr("x", -bbox.width / 2)
30830 .attr("y", -bbox.height / 2)
30831 .attr("r", r);
30832
30833 node.intersect = function(point) {
30834 return intersectCircle(node, r, point);
30835 };
30836
30837 return shapeSvg;
30838}
30839
30840// Circumscribe an ellipse for the bounding box with a diamond shape. I derived
30841// the function to calculate the diamond shape from:
30842// http://mathforum.org/kb/message.jspa?messageID=3750236
30843function diamond(parent, bbox, node) {
30844 var w = (bbox.width * Math.SQRT2) / 2;
30845 var h = (bbox.height * Math.SQRT2) / 2;
30846 var points = [
30847 { x: 0, y: -h },
30848 { x: -w, y: 0 },
30849 { x: 0, y: h },
30850 { x: w, y: 0 }
30851 ];
30852 var shapeSvg = parent.insert("polygon", ":first-child")
30853 .attr("points", points.map(function(p) { return p.x + "," + p.y; }).join(" "));
30854
30855 node.intersect = function(p) {
30856 return intersectPolygon(node, points, p);
30857 };
30858
30859 return shapeSvg;
30860}
30861
30862
30863/***/ }),
30864
30865/***/ "./node_modules/dagre-d3/lib/util.js":
30866/*!*******************************************!*\
30867 !*** ./node_modules/dagre-d3/lib/util.js ***!
30868 \*******************************************/
30869/*! no static exports found */
30870/***/ (function(module, exports, __webpack_require__) {
30871
30872var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
30873
30874// Public utility functions
30875module.exports = {
30876 isSubgraph: isSubgraph,
30877 edgeToId: edgeToId,
30878 applyStyle: applyStyle,
30879 applyClass: applyClass,
30880 applyTransition: applyTransition
30881};
30882
30883/*
30884 * Returns true if the specified node in the graph is a subgraph node. A
30885 * subgraph node is one that contains other nodes.
30886 */
30887function isSubgraph(g, v) {
30888 return !!g.children(v).length;
30889}
30890
30891function edgeToId(e) {
30892 return escapeId(e.v) + ":" + escapeId(e.w) + ":" + escapeId(e.name);
30893}
30894
30895var ID_DELIM = /:/g;
30896function escapeId(str) {
30897 return str ? String(str).replace(ID_DELIM, "\\:") : "";
30898}
30899
30900function applyStyle(dom, styleFn) {
30901 if (styleFn) {
30902 dom.attr("style", styleFn);
30903 }
30904}
30905
30906function applyClass(dom, classFn, otherClasses) {
30907 if (classFn) {
30908 dom
30909 .attr("class", classFn)
30910 .attr("class", otherClasses + " " + dom.attr("class"));
30911 }
30912}
30913
30914function applyTransition(selection, g) {
30915 var graph = g.graph();
30916
30917 if (_.isPlainObject(graph)) {
30918 var transition = graph.transition;
30919 if (_.isFunction(transition)) {
30920 return transition(selection);
30921 }
30922 }
30923
30924 return selection;
30925}
30926
30927
30928/***/ }),
30929
30930/***/ "./node_modules/dagre-d3/lib/version.js":
30931/*!**********************************************!*\
30932 !*** ./node_modules/dagre-d3/lib/version.js ***!
30933 \**********************************************/
30934/*! no static exports found */
30935/***/ (function(module, exports) {
30936
30937module.exports = "0.6.4";
30938
30939
30940/***/ }),
30941
30942/***/ "./node_modules/dagre/index.js":
30943/*!*************************************!*\
30944 !*** ./node_modules/dagre/index.js ***!
30945 \*************************************/
30946/*! no static exports found */
30947/***/ (function(module, exports, __webpack_require__) {
30948
30949/*
30950Copyright (c) 2012-2014 Chris Pettitt
30951
30952Permission is hereby granted, free of charge, to any person obtaining a copy
30953of this software and associated documentation files (the "Software"), to deal
30954in the Software without restriction, including without limitation the rights
30955to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
30956copies of the Software, and to permit persons to whom the Software is
30957furnished to do so, subject to the following conditions:
30958
30959The above copyright notice and this permission notice shall be included in
30960all copies or substantial portions of the Software.
30961
30962THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30963IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
30964FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
30965AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30966LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30967OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
30968THE SOFTWARE.
30969*/
30970
30971module.exports = {
30972 graphlib: __webpack_require__(/*! ./lib/graphlib */ "./node_modules/dagre/lib/graphlib.js"),
30973
30974 layout: __webpack_require__(/*! ./lib/layout */ "./node_modules/dagre/lib/layout.js"),
30975 debug: __webpack_require__(/*! ./lib/debug */ "./node_modules/dagre/lib/debug.js"),
30976 util: {
30977 time: __webpack_require__(/*! ./lib/util */ "./node_modules/dagre/lib/util.js").time,
30978 notime: __webpack_require__(/*! ./lib/util */ "./node_modules/dagre/lib/util.js").notime
30979 },
30980 version: __webpack_require__(/*! ./lib/version */ "./node_modules/dagre/lib/version.js")
30981};
30982
30983
30984/***/ }),
30985
30986/***/ "./node_modules/dagre/lib/acyclic.js":
30987/*!*******************************************!*\
30988 !*** ./node_modules/dagre/lib/acyclic.js ***!
30989 \*******************************************/
30990/*! no static exports found */
30991/***/ (function(module, exports, __webpack_require__) {
30992
30993"use strict";
30994
30995
30996var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
30997var greedyFAS = __webpack_require__(/*! ./greedy-fas */ "./node_modules/dagre/lib/greedy-fas.js");
30998
30999module.exports = {
31000 run: run,
31001 undo: undo
31002};
31003
31004function run(g) {
31005 var fas = (g.graph().acyclicer === "greedy"
31006 ? greedyFAS(g, weightFn(g))
31007 : dfsFAS(g));
31008 _.forEach(fas, function(e) {
31009 var label = g.edge(e);
31010 g.removeEdge(e);
31011 label.forwardName = e.name;
31012 label.reversed = true;
31013 g.setEdge(e.w, e.v, label, _.uniqueId("rev"));
31014 });
31015
31016 function weightFn(g) {
31017 return function(e) {
31018 return g.edge(e).weight;
31019 };
31020 }
31021}
31022
31023function dfsFAS(g) {
31024 var fas = [];
31025 var stack = {};
31026 var visited = {};
31027
31028 function dfs(v) {
31029 if (_.has(visited, v)) {
31030 return;
31031 }
31032 visited[v] = true;
31033 stack[v] = true;
31034 _.forEach(g.outEdges(v), function(e) {
31035 if (_.has(stack, e.w)) {
31036 fas.push(e);
31037 } else {
31038 dfs(e.w);
31039 }
31040 });
31041 delete stack[v];
31042 }
31043
31044 _.forEach(g.nodes(), dfs);
31045 return fas;
31046}
31047
31048function undo(g) {
31049 _.forEach(g.edges(), function(e) {
31050 var label = g.edge(e);
31051 if (label.reversed) {
31052 g.removeEdge(e);
31053
31054 var forwardName = label.forwardName;
31055 delete label.reversed;
31056 delete label.forwardName;
31057 g.setEdge(e.w, e.v, label, forwardName);
31058 }
31059 });
31060}
31061
31062
31063/***/ }),
31064
31065/***/ "./node_modules/dagre/lib/add-border-segments.js":
31066/*!*******************************************************!*\
31067 !*** ./node_modules/dagre/lib/add-border-segments.js ***!
31068 \*******************************************************/
31069/*! no static exports found */
31070/***/ (function(module, exports, __webpack_require__) {
31071
31072var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
31073var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
31074
31075module.exports = addBorderSegments;
31076
31077function addBorderSegments(g) {
31078 function dfs(v) {
31079 var children = g.children(v);
31080 var node = g.node(v);
31081 if (children.length) {
31082 _.forEach(children, dfs);
31083 }
31084
31085 if (_.has(node, "minRank")) {
31086 node.borderLeft = [];
31087 node.borderRight = [];
31088 for (var rank = node.minRank, maxRank = node.maxRank + 1;
31089 rank < maxRank;
31090 ++rank) {
31091 addBorderNode(g, "borderLeft", "_bl", v, node, rank);
31092 addBorderNode(g, "borderRight", "_br", v, node, rank);
31093 }
31094 }
31095 }
31096
31097 _.forEach(g.children(), dfs);
31098}
31099
31100function addBorderNode(g, prop, prefix, sg, sgNode, rank) {
31101 var label = { width: 0, height: 0, rank: rank, borderType: prop };
31102 var prev = sgNode[prop][rank - 1];
31103 var curr = util.addDummyNode(g, "border", label, prefix);
31104 sgNode[prop][rank] = curr;
31105 g.setParent(curr, sg);
31106 if (prev) {
31107 g.setEdge(prev, curr, { weight: 1 });
31108 }
31109}
31110
31111
31112/***/ }),
31113
31114/***/ "./node_modules/dagre/lib/coordinate-system.js":
31115/*!*****************************************************!*\
31116 !*** ./node_modules/dagre/lib/coordinate-system.js ***!
31117 \*****************************************************/
31118/*! no static exports found */
31119/***/ (function(module, exports, __webpack_require__) {
31120
31121"use strict";
31122
31123
31124var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
31125
31126module.exports = {
31127 adjust: adjust,
31128 undo: undo
31129};
31130
31131function adjust(g) {
31132 var rankDir = g.graph().rankdir.toLowerCase();
31133 if (rankDir === "lr" || rankDir === "rl") {
31134 swapWidthHeight(g);
31135 }
31136}
31137
31138function undo(g) {
31139 var rankDir = g.graph().rankdir.toLowerCase();
31140 if (rankDir === "bt" || rankDir === "rl") {
31141 reverseY(g);
31142 }
31143
31144 if (rankDir === "lr" || rankDir === "rl") {
31145 swapXY(g);
31146 swapWidthHeight(g);
31147 }
31148}
31149
31150function swapWidthHeight(g) {
31151 _.forEach(g.nodes(), function(v) { swapWidthHeightOne(g.node(v)); });
31152 _.forEach(g.edges(), function(e) { swapWidthHeightOne(g.edge(e)); });
31153}
31154
31155function swapWidthHeightOne(attrs) {
31156 var w = attrs.width;
31157 attrs.width = attrs.height;
31158 attrs.height = w;
31159}
31160
31161function reverseY(g) {
31162 _.forEach(g.nodes(), function(v) { reverseYOne(g.node(v)); });
31163
31164 _.forEach(g.edges(), function(e) {
31165 var edge = g.edge(e);
31166 _.forEach(edge.points, reverseYOne);
31167 if (_.has(edge, "y")) {
31168 reverseYOne(edge);
31169 }
31170 });
31171}
31172
31173function reverseYOne(attrs) {
31174 attrs.y = -attrs.y;
31175}
31176
31177function swapXY(g) {
31178 _.forEach(g.nodes(), function(v) { swapXYOne(g.node(v)); });
31179
31180 _.forEach(g.edges(), function(e) {
31181 var edge = g.edge(e);
31182 _.forEach(edge.points, swapXYOne);
31183 if (_.has(edge, "x")) {
31184 swapXYOne(edge);
31185 }
31186 });
31187}
31188
31189function swapXYOne(attrs) {
31190 var x = attrs.x;
31191 attrs.x = attrs.y;
31192 attrs.y = x;
31193}
31194
31195
31196/***/ }),
31197
31198/***/ "./node_modules/dagre/lib/data/list.js":
31199/*!*********************************************!*\
31200 !*** ./node_modules/dagre/lib/data/list.js ***!
31201 \*********************************************/
31202/*! no static exports found */
31203/***/ (function(module, exports) {
31204
31205/*
31206 * Simple doubly linked list implementation derived from Cormen, et al.,
31207 * "Introduction to Algorithms".
31208 */
31209
31210module.exports = List;
31211
31212function List() {
31213 var sentinel = {};
31214 sentinel._next = sentinel._prev = sentinel;
31215 this._sentinel = sentinel;
31216}
31217
31218List.prototype.dequeue = function() {
31219 var sentinel = this._sentinel;
31220 var entry = sentinel._prev;
31221 if (entry !== sentinel) {
31222 unlink(entry);
31223 return entry;
31224 }
31225};
31226
31227List.prototype.enqueue = function(entry) {
31228 var sentinel = this._sentinel;
31229 if (entry._prev && entry._next) {
31230 unlink(entry);
31231 }
31232 entry._next = sentinel._next;
31233 sentinel._next._prev = entry;
31234 sentinel._next = entry;
31235 entry._prev = sentinel;
31236};
31237
31238List.prototype.toString = function() {
31239 var strs = [];
31240 var sentinel = this._sentinel;
31241 var curr = sentinel._prev;
31242 while (curr !== sentinel) {
31243 strs.push(JSON.stringify(curr, filterOutLinks));
31244 curr = curr._prev;
31245 }
31246 return "[" + strs.join(", ") + "]";
31247};
31248
31249function unlink(entry) {
31250 entry._prev._next = entry._next;
31251 entry._next._prev = entry._prev;
31252 delete entry._next;
31253 delete entry._prev;
31254}
31255
31256function filterOutLinks(k, v) {
31257 if (k !== "_next" && k !== "_prev") {
31258 return v;
31259 }
31260}
31261
31262
31263/***/ }),
31264
31265/***/ "./node_modules/dagre/lib/debug.js":
31266/*!*****************************************!*\
31267 !*** ./node_modules/dagre/lib/debug.js ***!
31268 \*****************************************/
31269/*! no static exports found */
31270/***/ (function(module, exports, __webpack_require__) {
31271
31272var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
31273var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
31274var Graph = __webpack_require__(/*! ./graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph;
31275
31276module.exports = {
31277 debugOrdering: debugOrdering
31278};
31279
31280/* istanbul ignore next */
31281function debugOrdering(g) {
31282 var layerMatrix = util.buildLayerMatrix(g);
31283
31284 var h = new Graph({ compound: true, multigraph: true }).setGraph({});
31285
31286 _.forEach(g.nodes(), function(v) {
31287 h.setNode(v, { label: v });
31288 h.setParent(v, "layer" + g.node(v).rank);
31289 });
31290
31291 _.forEach(g.edges(), function(e) {
31292 h.setEdge(e.v, e.w, {}, e.name);
31293 });
31294
31295 _.forEach(layerMatrix, function(layer, i) {
31296 var layerV = "layer" + i;
31297 h.setNode(layerV, { rank: "same" });
31298 _.reduce(layer, function(u, v) {
31299 h.setEdge(u, v, { style: "invis" });
31300 return v;
31301 });
31302 });
31303
31304 return h;
31305}
31306
31307
31308/***/ }),
31309
31310/***/ "./node_modules/dagre/lib/graphlib.js":
31311/*!********************************************!*\
31312 !*** ./node_modules/dagre/lib/graphlib.js ***!
31313 \********************************************/
31314/*! no static exports found */
31315/***/ (function(module, exports, __webpack_require__) {
31316
31317/* global window */
31318
31319var graphlib;
31320
31321if (true) {
31322 try {
31323 graphlib = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
31324 } catch (e) {
31325 // continue regardless of error
31326 }
31327}
31328
31329if (!graphlib) {
31330 graphlib = window.graphlib;
31331}
31332
31333module.exports = graphlib;
31334
31335
31336/***/ }),
31337
31338/***/ "./node_modules/dagre/lib/greedy-fas.js":
31339/*!**********************************************!*\
31340 !*** ./node_modules/dagre/lib/greedy-fas.js ***!
31341 \**********************************************/
31342/*! no static exports found */
31343/***/ (function(module, exports, __webpack_require__) {
31344
31345var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
31346var Graph = __webpack_require__(/*! ./graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph;
31347var List = __webpack_require__(/*! ./data/list */ "./node_modules/dagre/lib/data/list.js");
31348
31349/*
31350 * A greedy heuristic for finding a feedback arc set for a graph. A feedback
31351 * arc set is a set of edges that can be removed to make a graph acyclic.
31352 * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, "A fast and
31353 * effective heuristic for the feedback arc set problem." This implementation
31354 * adjusts that from the paper to allow for weighted edges.
31355 */
31356module.exports = greedyFAS;
31357
31358var DEFAULT_WEIGHT_FN = _.constant(1);
31359
31360function greedyFAS(g, weightFn) {
31361 if (g.nodeCount() <= 1) {
31362 return [];
31363 }
31364 var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);
31365 var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);
31366
31367 // Expand multi-edges
31368 return _.flatten(_.map(results, function(e) {
31369 return g.outEdges(e.v, e.w);
31370 }), true);
31371}
31372
31373function doGreedyFAS(g, buckets, zeroIdx) {
31374 var results = [];
31375 var sources = buckets[buckets.length - 1];
31376 var sinks = buckets[0];
31377
31378 var entry;
31379 while (g.nodeCount()) {
31380 while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }
31381 while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }
31382 if (g.nodeCount()) {
31383 for (var i = buckets.length - 2; i > 0; --i) {
31384 entry = buckets[i].dequeue();
31385 if (entry) {
31386 results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));
31387 break;
31388 }
31389 }
31390 }
31391 }
31392
31393 return results;
31394}
31395
31396function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
31397 var results = collectPredecessors ? [] : undefined;
31398
31399 _.forEach(g.inEdges(entry.v), function(edge) {
31400 var weight = g.edge(edge);
31401 var uEntry = g.node(edge.v);
31402
31403 if (collectPredecessors) {
31404 results.push({ v: edge.v, w: edge.w });
31405 }
31406
31407 uEntry.out -= weight;
31408 assignBucket(buckets, zeroIdx, uEntry);
31409 });
31410
31411 _.forEach(g.outEdges(entry.v), function(edge) {
31412 var weight = g.edge(edge);
31413 var w = edge.w;
31414 var wEntry = g.node(w);
31415 wEntry["in"] -= weight;
31416 assignBucket(buckets, zeroIdx, wEntry);
31417 });
31418
31419 g.removeNode(entry.v);
31420
31421 return results;
31422}
31423
31424function buildState(g, weightFn) {
31425 var fasGraph = new Graph();
31426 var maxIn = 0;
31427 var maxOut = 0;
31428
31429 _.forEach(g.nodes(), function(v) {
31430 fasGraph.setNode(v, { v: v, "in": 0, out: 0 });
31431 });
31432
31433 // Aggregate weights on nodes, but also sum the weights across multi-edges
31434 // into a single edge for the fasGraph.
31435 _.forEach(g.edges(), function(e) {
31436 var prevWeight = fasGraph.edge(e.v, e.w) || 0;
31437 var weight = weightFn(e);
31438 var edgeWeight = prevWeight + weight;
31439 fasGraph.setEdge(e.v, e.w, edgeWeight);
31440 maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);
31441 maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight);
31442 });
31443
31444 var buckets = _.range(maxOut + maxIn + 3).map(function() { return new List(); });
31445 var zeroIdx = maxIn + 1;
31446
31447 _.forEach(fasGraph.nodes(), function(v) {
31448 assignBucket(buckets, zeroIdx, fasGraph.node(v));
31449 });
31450
31451 return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };
31452}
31453
31454function assignBucket(buckets, zeroIdx, entry) {
31455 if (!entry.out) {
31456 buckets[0].enqueue(entry);
31457 } else if (!entry["in"]) {
31458 buckets[buckets.length - 1].enqueue(entry);
31459 } else {
31460 buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry);
31461 }
31462}
31463
31464
31465/***/ }),
31466
31467/***/ "./node_modules/dagre/lib/layout.js":
31468/*!******************************************!*\
31469 !*** ./node_modules/dagre/lib/layout.js ***!
31470 \******************************************/
31471/*! no static exports found */
31472/***/ (function(module, exports, __webpack_require__) {
31473
31474"use strict";
31475
31476
31477var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
31478var acyclic = __webpack_require__(/*! ./acyclic */ "./node_modules/dagre/lib/acyclic.js");
31479var normalize = __webpack_require__(/*! ./normalize */ "./node_modules/dagre/lib/normalize.js");
31480var rank = __webpack_require__(/*! ./rank */ "./node_modules/dagre/lib/rank/index.js");
31481var normalizeRanks = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js").normalizeRanks;
31482var parentDummyChains = __webpack_require__(/*! ./parent-dummy-chains */ "./node_modules/dagre/lib/parent-dummy-chains.js");
31483var removeEmptyRanks = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js").removeEmptyRanks;
31484var nestingGraph = __webpack_require__(/*! ./nesting-graph */ "./node_modules/dagre/lib/nesting-graph.js");
31485var addBorderSegments = __webpack_require__(/*! ./add-border-segments */ "./node_modules/dagre/lib/add-border-segments.js");
31486var coordinateSystem = __webpack_require__(/*! ./coordinate-system */ "./node_modules/dagre/lib/coordinate-system.js");
31487var order = __webpack_require__(/*! ./order */ "./node_modules/dagre/lib/order/index.js");
31488var position = __webpack_require__(/*! ./position */ "./node_modules/dagre/lib/position/index.js");
31489var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
31490var Graph = __webpack_require__(/*! ./graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph;
31491
31492module.exports = layout;
31493
31494function layout(g, opts) {
31495 var time = opts && opts.debugTiming ? util.time : util.notime;
31496 time("layout", function() {
31497 var layoutGraph =
31498 time(" buildLayoutGraph", function() { return buildLayoutGraph(g); });
31499 time(" runLayout", function() { runLayout(layoutGraph, time); });
31500 time(" updateInputGraph", function() { updateInputGraph(g, layoutGraph); });
31501 });
31502}
31503
31504function runLayout(g, time) {
31505 time(" makeSpaceForEdgeLabels", function() { makeSpaceForEdgeLabels(g); });
31506 time(" removeSelfEdges", function() { removeSelfEdges(g); });
31507 time(" acyclic", function() { acyclic.run(g); });
31508 time(" nestingGraph.run", function() { nestingGraph.run(g); });
31509 time(" rank", function() { rank(util.asNonCompoundGraph(g)); });
31510 time(" injectEdgeLabelProxies", function() { injectEdgeLabelProxies(g); });
31511 time(" removeEmptyRanks", function() { removeEmptyRanks(g); });
31512 time(" nestingGraph.cleanup", function() { nestingGraph.cleanup(g); });
31513 time(" normalizeRanks", function() { normalizeRanks(g); });
31514 time(" assignRankMinMax", function() { assignRankMinMax(g); });
31515 time(" removeEdgeLabelProxies", function() { removeEdgeLabelProxies(g); });
31516 time(" normalize.run", function() { normalize.run(g); });
31517 time(" parentDummyChains", function() { parentDummyChains(g); });
31518 time(" addBorderSegments", function() { addBorderSegments(g); });
31519 time(" order", function() { order(g); });
31520 time(" insertSelfEdges", function() { insertSelfEdges(g); });
31521 time(" adjustCoordinateSystem", function() { coordinateSystem.adjust(g); });
31522 time(" position", function() { position(g); });
31523 time(" positionSelfEdges", function() { positionSelfEdges(g); });
31524 time(" removeBorderNodes", function() { removeBorderNodes(g); });
31525 time(" normalize.undo", function() { normalize.undo(g); });
31526 time(" fixupEdgeLabelCoords", function() { fixupEdgeLabelCoords(g); });
31527 time(" undoCoordinateSystem", function() { coordinateSystem.undo(g); });
31528 time(" translateGraph", function() { translateGraph(g); });
31529 time(" assignNodeIntersects", function() { assignNodeIntersects(g); });
31530 time(" reversePoints", function() { reversePointsForReversedEdges(g); });
31531 time(" acyclic.undo", function() { acyclic.undo(g); });
31532}
31533
31534/*
31535 * Copies final layout information from the layout graph back to the input
31536 * graph. This process only copies whitelisted attributes from the layout graph
31537 * to the input graph, so it serves as a good place to determine what
31538 * attributes can influence layout.
31539 */
31540function updateInputGraph(inputGraph, layoutGraph) {
31541 _.forEach(inputGraph.nodes(), function(v) {
31542 var inputLabel = inputGraph.node(v);
31543 var layoutLabel = layoutGraph.node(v);
31544
31545 if (inputLabel) {
31546 inputLabel.x = layoutLabel.x;
31547 inputLabel.y = layoutLabel.y;
31548
31549 if (layoutGraph.children(v).length) {
31550 inputLabel.width = layoutLabel.width;
31551 inputLabel.height = layoutLabel.height;
31552 }
31553 }
31554 });
31555
31556 _.forEach(inputGraph.edges(), function(e) {
31557 var inputLabel = inputGraph.edge(e);
31558 var layoutLabel = layoutGraph.edge(e);
31559
31560 inputLabel.points = layoutLabel.points;
31561 if (_.has(layoutLabel, "x")) {
31562 inputLabel.x = layoutLabel.x;
31563 inputLabel.y = layoutLabel.y;
31564 }
31565 });
31566
31567 inputGraph.graph().width = layoutGraph.graph().width;
31568 inputGraph.graph().height = layoutGraph.graph().height;
31569}
31570
31571var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
31572var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
31573var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
31574var nodeNumAttrs = ["width", "height"];
31575var nodeDefaults = { width: 0, height: 0 };
31576var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"];
31577var edgeDefaults = {
31578 minlen: 1, weight: 1, width: 0, height: 0,
31579 labeloffset: 10, labelpos: "r"
31580};
31581var edgeAttrs = ["labelpos"];
31582
31583/*
31584 * Constructs a new graph from the input graph, which can be used for layout.
31585 * This process copies only whitelisted attributes from the input graph to the
31586 * layout graph. Thus this function serves as a good place to determine what
31587 * attributes can influence layout.
31588 */
31589function buildLayoutGraph(inputGraph) {
31590 var g = new Graph({ multigraph: true, compound: true });
31591 var graph = canonicalize(inputGraph.graph());
31592
31593 g.setGraph(_.merge({},
31594 graphDefaults,
31595 selectNumberAttrs(graph, graphNumAttrs),
31596 _.pick(graph, graphAttrs)));
31597
31598 _.forEach(inputGraph.nodes(), function(v) {
31599 var node = canonicalize(inputGraph.node(v));
31600 g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));
31601 g.setParent(v, inputGraph.parent(v));
31602 });
31603
31604 _.forEach(inputGraph.edges(), function(e) {
31605 var edge = canonicalize(inputGraph.edge(e));
31606 g.setEdge(e, _.merge({},
31607 edgeDefaults,
31608 selectNumberAttrs(edge, edgeNumAttrs),
31609 _.pick(edge, edgeAttrs)));
31610 });
31611
31612 return g;
31613}
31614
31615/*
31616 * This idea comes from the Gansner paper: to account for edge labels in our
31617 * layout we split each rank in half by doubling minlen and halving ranksep.
31618 * Then we can place labels at these mid-points between nodes.
31619 *
31620 * We also add some minimal padding to the width to push the label for the edge
31621 * away from the edge itself a bit.
31622 */
31623function makeSpaceForEdgeLabels(g) {
31624 var graph = g.graph();
31625 graph.ranksep /= 2;
31626 _.forEach(g.edges(), function(e) {
31627 var edge = g.edge(e);
31628 edge.minlen *= 2;
31629 if (edge.labelpos.toLowerCase() !== "c") {
31630 if (graph.rankdir === "TB" || graph.rankdir === "BT") {
31631 edge.width += edge.labeloffset;
31632 } else {
31633 edge.height += edge.labeloffset;
31634 }
31635 }
31636 });
31637}
31638
31639/*
31640 * Creates temporary dummy nodes that capture the rank in which each edge's
31641 * label is going to, if it has one of non-zero width and height. We do this
31642 * so that we can safely remove empty ranks while preserving balance for the
31643 * label's position.
31644 */
31645function injectEdgeLabelProxies(g) {
31646 _.forEach(g.edges(), function(e) {
31647 var edge = g.edge(e);
31648 if (edge.width && edge.height) {
31649 var v = g.node(e.v);
31650 var w = g.node(e.w);
31651 var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };
31652 util.addDummyNode(g, "edge-proxy", label, "_ep");
31653 }
31654 });
31655}
31656
31657function assignRankMinMax(g) {
31658 var maxRank = 0;
31659 _.forEach(g.nodes(), function(v) {
31660 var node = g.node(v);
31661 if (node.borderTop) {
31662 node.minRank = g.node(node.borderTop).rank;
31663 node.maxRank = g.node(node.borderBottom).rank;
31664 maxRank = _.max(maxRank, node.maxRank);
31665 }
31666 });
31667 g.graph().maxRank = maxRank;
31668}
31669
31670function removeEdgeLabelProxies(g) {
31671 _.forEach(g.nodes(), function(v) {
31672 var node = g.node(v);
31673 if (node.dummy === "edge-proxy") {
31674 g.edge(node.e).labelRank = node.rank;
31675 g.removeNode(v);
31676 }
31677 });
31678}
31679
31680function translateGraph(g) {
31681 var minX = Number.POSITIVE_INFINITY;
31682 var maxX = 0;
31683 var minY = Number.POSITIVE_INFINITY;
31684 var maxY = 0;
31685 var graphLabel = g.graph();
31686 var marginX = graphLabel.marginx || 0;
31687 var marginY = graphLabel.marginy || 0;
31688
31689 function getExtremes(attrs) {
31690 var x = attrs.x;
31691 var y = attrs.y;
31692 var w = attrs.width;
31693 var h = attrs.height;
31694 minX = Math.min(minX, x - w / 2);
31695 maxX = Math.max(maxX, x + w / 2);
31696 minY = Math.min(minY, y - h / 2);
31697 maxY = Math.max(maxY, y + h / 2);
31698 }
31699
31700 _.forEach(g.nodes(), function(v) { getExtremes(g.node(v)); });
31701 _.forEach(g.edges(), function(e) {
31702 var edge = g.edge(e);
31703 if (_.has(edge, "x")) {
31704 getExtremes(edge);
31705 }
31706 });
31707
31708 minX -= marginX;
31709 minY -= marginY;
31710
31711 _.forEach(g.nodes(), function(v) {
31712 var node = g.node(v);
31713 node.x -= minX;
31714 node.y -= minY;
31715 });
31716
31717 _.forEach(g.edges(), function(e) {
31718 var edge = g.edge(e);
31719 _.forEach(edge.points, function(p) {
31720 p.x -= minX;
31721 p.y -= minY;
31722 });
31723 if (_.has(edge, "x")) { edge.x -= minX; }
31724 if (_.has(edge, "y")) { edge.y -= minY; }
31725 });
31726
31727 graphLabel.width = maxX - minX + marginX;
31728 graphLabel.height = maxY - minY + marginY;
31729}
31730
31731function assignNodeIntersects(g) {
31732 _.forEach(g.edges(), function(e) {
31733 var edge = g.edge(e);
31734 var nodeV = g.node(e.v);
31735 var nodeW = g.node(e.w);
31736 var p1, p2;
31737 if (!edge.points) {
31738 edge.points = [];
31739 p1 = nodeW;
31740 p2 = nodeV;
31741 } else {
31742 p1 = edge.points[0];
31743 p2 = edge.points[edge.points.length - 1];
31744 }
31745 edge.points.unshift(util.intersectRect(nodeV, p1));
31746 edge.points.push(util.intersectRect(nodeW, p2));
31747 });
31748}
31749
31750function fixupEdgeLabelCoords(g) {
31751 _.forEach(g.edges(), function(e) {
31752 var edge = g.edge(e);
31753 if (_.has(edge, "x")) {
31754 if (edge.labelpos === "l" || edge.labelpos === "r") {
31755 edge.width -= edge.labeloffset;
31756 }
31757 switch (edge.labelpos) {
31758 case "l": edge.x -= edge.width / 2 + edge.labeloffset; break;
31759 case "r": edge.x += edge.width / 2 + edge.labeloffset; break;
31760 }
31761 }
31762 });
31763}
31764
31765function reversePointsForReversedEdges(g) {
31766 _.forEach(g.edges(), function(e) {
31767 var edge = g.edge(e);
31768 if (edge.reversed) {
31769 edge.points.reverse();
31770 }
31771 });
31772}
31773
31774function removeBorderNodes(g) {
31775 _.forEach(g.nodes(), function(v) {
31776 if (g.children(v).length) {
31777 var node = g.node(v);
31778 var t = g.node(node.borderTop);
31779 var b = g.node(node.borderBottom);
31780 var l = g.node(_.last(node.borderLeft));
31781 var r = g.node(_.last(node.borderRight));
31782
31783 node.width = Math.abs(r.x - l.x);
31784 node.height = Math.abs(b.y - t.y);
31785 node.x = l.x + node.width / 2;
31786 node.y = t.y + node.height / 2;
31787 }
31788 });
31789
31790 _.forEach(g.nodes(), function(v) {
31791 if (g.node(v).dummy === "border") {
31792 g.removeNode(v);
31793 }
31794 });
31795}
31796
31797function removeSelfEdges(g) {
31798 _.forEach(g.edges(), function(e) {
31799 if (e.v === e.w) {
31800 var node = g.node(e.v);
31801 if (!node.selfEdges) {
31802 node.selfEdges = [];
31803 }
31804 node.selfEdges.push({ e: e, label: g.edge(e) });
31805 g.removeEdge(e);
31806 }
31807 });
31808}
31809
31810function insertSelfEdges(g) {
31811 var layers = util.buildLayerMatrix(g);
31812 _.forEach(layers, function(layer) {
31813 var orderShift = 0;
31814 _.forEach(layer, function(v, i) {
31815 var node = g.node(v);
31816 node.order = i + orderShift;
31817 _.forEach(node.selfEdges, function(selfEdge) {
31818 util.addDummyNode(g, "selfedge", {
31819 width: selfEdge.label.width,
31820 height: selfEdge.label.height,
31821 rank: node.rank,
31822 order: i + (++orderShift),
31823 e: selfEdge.e,
31824 label: selfEdge.label
31825 }, "_se");
31826 });
31827 delete node.selfEdges;
31828 });
31829 });
31830}
31831
31832function positionSelfEdges(g) {
31833 _.forEach(g.nodes(), function(v) {
31834 var node = g.node(v);
31835 if (node.dummy === "selfedge") {
31836 var selfNode = g.node(node.e.v);
31837 var x = selfNode.x + selfNode.width / 2;
31838 var y = selfNode.y;
31839 var dx = node.x - x;
31840 var dy = selfNode.height / 2;
31841 g.setEdge(node.e, node.label);
31842 g.removeNode(v);
31843 node.label.points = [
31844 { x: x + 2 * dx / 3, y: y - dy },
31845 { x: x + 5 * dx / 6, y: y - dy },
31846 { x: x + dx , y: y },
31847 { x: x + 5 * dx / 6, y: y + dy },
31848 { x: x + 2 * dx / 3, y: y + dy }
31849 ];
31850 node.label.x = node.x;
31851 node.label.y = node.y;
31852 }
31853 });
31854}
31855
31856function selectNumberAttrs(obj, attrs) {
31857 return _.mapValues(_.pick(obj, attrs), Number);
31858}
31859
31860function canonicalize(attrs) {
31861 var newAttrs = {};
31862 _.forEach(attrs, function(v, k) {
31863 newAttrs[k.toLowerCase()] = v;
31864 });
31865 return newAttrs;
31866}
31867
31868
31869/***/ }),
31870
31871/***/ "./node_modules/dagre/lib/lodash.js":
31872/*!******************************************!*\
31873 !*** ./node_modules/dagre/lib/lodash.js ***!
31874 \******************************************/
31875/*! no static exports found */
31876/***/ (function(module, exports, __webpack_require__) {
31877
31878/* global window */
31879
31880var lodash;
31881
31882if (true) {
31883 try {
31884 lodash = {
31885 cloneDeep: __webpack_require__(/*! lodash/cloneDeep */ "./node_modules/lodash/cloneDeep.js"),
31886 constant: __webpack_require__(/*! lodash/constant */ "./node_modules/lodash/constant.js"),
31887 defaults: __webpack_require__(/*! lodash/defaults */ "./node_modules/lodash/defaults.js"),
31888 each: __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js"),
31889 filter: __webpack_require__(/*! lodash/filter */ "./node_modules/lodash/filter.js"),
31890 find: __webpack_require__(/*! lodash/find */ "./node_modules/lodash/find.js"),
31891 flatten: __webpack_require__(/*! lodash/flatten */ "./node_modules/lodash/flatten.js"),
31892 forEach: __webpack_require__(/*! lodash/forEach */ "./node_modules/lodash/forEach.js"),
31893 forIn: __webpack_require__(/*! lodash/forIn */ "./node_modules/lodash/forIn.js"),
31894 has: __webpack_require__(/*! lodash/has */ "./node_modules/lodash/has.js"),
31895 isUndefined: __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js"),
31896 last: __webpack_require__(/*! lodash/last */ "./node_modules/lodash/last.js"),
31897 map: __webpack_require__(/*! lodash/map */ "./node_modules/lodash/map.js"),
31898 mapValues: __webpack_require__(/*! lodash/mapValues */ "./node_modules/lodash/mapValues.js"),
31899 max: __webpack_require__(/*! lodash/max */ "./node_modules/lodash/max.js"),
31900 merge: __webpack_require__(/*! lodash/merge */ "./node_modules/lodash/merge.js"),
31901 min: __webpack_require__(/*! lodash/min */ "./node_modules/lodash/min.js"),
31902 minBy: __webpack_require__(/*! lodash/minBy */ "./node_modules/lodash/minBy.js"),
31903 now: __webpack_require__(/*! lodash/now */ "./node_modules/lodash/now.js"),
31904 pick: __webpack_require__(/*! lodash/pick */ "./node_modules/lodash/pick.js"),
31905 range: __webpack_require__(/*! lodash/range */ "./node_modules/lodash/range.js"),
31906 reduce: __webpack_require__(/*! lodash/reduce */ "./node_modules/lodash/reduce.js"),
31907 sortBy: __webpack_require__(/*! lodash/sortBy */ "./node_modules/lodash/sortBy.js"),
31908 uniqueId: __webpack_require__(/*! lodash/uniqueId */ "./node_modules/lodash/uniqueId.js"),
31909 values: __webpack_require__(/*! lodash/values */ "./node_modules/lodash/values.js"),
31910 zipObject: __webpack_require__(/*! lodash/zipObject */ "./node_modules/lodash/zipObject.js"),
31911 };
31912 } catch (e) {
31913 // continue regardless of error
31914 }
31915}
31916
31917if (!lodash) {
31918 lodash = window._;
31919}
31920
31921module.exports = lodash;
31922
31923
31924/***/ }),
31925
31926/***/ "./node_modules/dagre/lib/nesting-graph.js":
31927/*!*************************************************!*\
31928 !*** ./node_modules/dagre/lib/nesting-graph.js ***!
31929 \*************************************************/
31930/*! no static exports found */
31931/***/ (function(module, exports, __webpack_require__) {
31932
31933var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
31934var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
31935
31936module.exports = {
31937 run: run,
31938 cleanup: cleanup
31939};
31940
31941/*
31942 * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,
31943 * adds appropriate edges to ensure that all cluster nodes are placed between
31944 * these boundries, and ensures that the graph is connected.
31945 *
31946 * In addition we ensure, through the use of the minlen property, that nodes
31947 * and subgraph border nodes to not end up on the same rank.
31948 *
31949 * Preconditions:
31950 *
31951 * 1. Input graph is a DAG
31952 * 2. Nodes in the input graph has a minlen attribute
31953 *
31954 * Postconditions:
31955 *
31956 * 1. Input graph is connected.
31957 * 2. Dummy nodes are added for the tops and bottoms of subgraphs.
31958 * 3. The minlen attribute for nodes is adjusted to ensure nodes do not
31959 * get placed on the same rank as subgraph border nodes.
31960 *
31961 * The nesting graph idea comes from Sander, "Layout of Compound Directed
31962 * Graphs."
31963 */
31964function run(g) {
31965 var root = util.addDummyNode(g, "root", {}, "_root");
31966 var depths = treeDepths(g);
31967 var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array
31968 var nodeSep = 2 * height + 1;
31969
31970 g.graph().nestingRoot = root;
31971
31972 // Multiply minlen by nodeSep to align nodes on non-border ranks.
31973 _.forEach(g.edges(), function(e) { g.edge(e).minlen *= nodeSep; });
31974
31975 // Calculate a weight that is sufficient to keep subgraphs vertically compact
31976 var weight = sumWeights(g) + 1;
31977
31978 // Create border nodes and link them up
31979 _.forEach(g.children(), function(child) {
31980 dfs(g, root, nodeSep, weight, height, depths, child);
31981 });
31982
31983 // Save the multiplier for node layers for later removal of empty border
31984 // layers.
31985 g.graph().nodeRankFactor = nodeSep;
31986}
31987
31988function dfs(g, root, nodeSep, weight, height, depths, v) {
31989 var children = g.children(v);
31990 if (!children.length) {
31991 if (v !== root) {
31992 g.setEdge(root, v, { weight: 0, minlen: nodeSep });
31993 }
31994 return;
31995 }
31996
31997 var top = util.addBorderNode(g, "_bt");
31998 var bottom = util.addBorderNode(g, "_bb");
31999 var label = g.node(v);
32000
32001 g.setParent(top, v);
32002 label.borderTop = top;
32003 g.setParent(bottom, v);
32004 label.borderBottom = bottom;
32005
32006 _.forEach(children, function(child) {
32007 dfs(g, root, nodeSep, weight, height, depths, child);
32008
32009 var childNode = g.node(child);
32010 var childTop = childNode.borderTop ? childNode.borderTop : child;
32011 var childBottom = childNode.borderBottom ? childNode.borderBottom : child;
32012 var thisWeight = childNode.borderTop ? weight : 2 * weight;
32013 var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;
32014
32015 g.setEdge(top, childTop, {
32016 weight: thisWeight,
32017 minlen: minlen,
32018 nestingEdge: true
32019 });
32020
32021 g.setEdge(childBottom, bottom, {
32022 weight: thisWeight,
32023 minlen: minlen,
32024 nestingEdge: true
32025 });
32026 });
32027
32028 if (!g.parent(v)) {
32029 g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });
32030 }
32031}
32032
32033function treeDepths(g) {
32034 var depths = {};
32035 function dfs(v, depth) {
32036 var children = g.children(v);
32037 if (children && children.length) {
32038 _.forEach(children, function(child) {
32039 dfs(child, depth + 1);
32040 });
32041 }
32042 depths[v] = depth;
32043 }
32044 _.forEach(g.children(), function(v) { dfs(v, 1); });
32045 return depths;
32046}
32047
32048function sumWeights(g) {
32049 return _.reduce(g.edges(), function(acc, e) {
32050 return acc + g.edge(e).weight;
32051 }, 0);
32052}
32053
32054function cleanup(g) {
32055 var graphLabel = g.graph();
32056 g.removeNode(graphLabel.nestingRoot);
32057 delete graphLabel.nestingRoot;
32058 _.forEach(g.edges(), function(e) {
32059 var edge = g.edge(e);
32060 if (edge.nestingEdge) {
32061 g.removeEdge(e);
32062 }
32063 });
32064}
32065
32066
32067/***/ }),
32068
32069/***/ "./node_modules/dagre/lib/normalize.js":
32070/*!*********************************************!*\
32071 !*** ./node_modules/dagre/lib/normalize.js ***!
32072 \*********************************************/
32073/*! no static exports found */
32074/***/ (function(module, exports, __webpack_require__) {
32075
32076"use strict";
32077
32078
32079var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
32080var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
32081
32082module.exports = {
32083 run: run,
32084 undo: undo
32085};
32086
32087/*
32088 * Breaks any long edges in the graph into short segments that span 1 layer
32089 * each. This operation is undoable with the denormalize function.
32090 *
32091 * Pre-conditions:
32092 *
32093 * 1. The input graph is a DAG.
32094 * 2. Each node in the graph has a "rank" property.
32095 *
32096 * Post-condition:
32097 *
32098 * 1. All edges in the graph have a length of 1.
32099 * 2. Dummy nodes are added where edges have been split into segments.
32100 * 3. The graph is augmented with a "dummyChains" attribute which contains
32101 * the first dummy in each chain of dummy nodes produced.
32102 */
32103function run(g) {
32104 g.graph().dummyChains = [];
32105 _.forEach(g.edges(), function(edge) { normalizeEdge(g, edge); });
32106}
32107
32108function normalizeEdge(g, e) {
32109 var v = e.v;
32110 var vRank = g.node(v).rank;
32111 var w = e.w;
32112 var wRank = g.node(w).rank;
32113 var name = e.name;
32114 var edgeLabel = g.edge(e);
32115 var labelRank = edgeLabel.labelRank;
32116
32117 if (wRank === vRank + 1) return;
32118
32119 g.removeEdge(e);
32120
32121 var dummy, attrs, i;
32122 for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {
32123 edgeLabel.points = [];
32124 attrs = {
32125 width: 0, height: 0,
32126 edgeLabel: edgeLabel, edgeObj: e,
32127 rank: vRank
32128 };
32129 dummy = util.addDummyNode(g, "edge", attrs, "_d");
32130 if (vRank === labelRank) {
32131 attrs.width = edgeLabel.width;
32132 attrs.height = edgeLabel.height;
32133 attrs.dummy = "edge-label";
32134 attrs.labelpos = edgeLabel.labelpos;
32135 }
32136 g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);
32137 if (i === 0) {
32138 g.graph().dummyChains.push(dummy);
32139 }
32140 v = dummy;
32141 }
32142
32143 g.setEdge(v, w, { weight: edgeLabel.weight }, name);
32144}
32145
32146function undo(g) {
32147 _.forEach(g.graph().dummyChains, function(v) {
32148 var node = g.node(v);
32149 var origLabel = node.edgeLabel;
32150 var w;
32151 g.setEdge(node.edgeObj, origLabel);
32152 while (node.dummy) {
32153 w = g.successors(v)[0];
32154 g.removeNode(v);
32155 origLabel.points.push({ x: node.x, y: node.y });
32156 if (node.dummy === "edge-label") {
32157 origLabel.x = node.x;
32158 origLabel.y = node.y;
32159 origLabel.width = node.width;
32160 origLabel.height = node.height;
32161 }
32162 v = w;
32163 node = g.node(v);
32164 }
32165 });
32166}
32167
32168
32169/***/ }),
32170
32171/***/ "./node_modules/dagre/lib/order/add-subgraph-constraints.js":
32172/*!******************************************************************!*\
32173 !*** ./node_modules/dagre/lib/order/add-subgraph-constraints.js ***!
32174 \******************************************************************/
32175/*! no static exports found */
32176/***/ (function(module, exports, __webpack_require__) {
32177
32178var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32179
32180module.exports = addSubgraphConstraints;
32181
32182function addSubgraphConstraints(g, cg, vs) {
32183 var prev = {},
32184 rootPrev;
32185
32186 _.forEach(vs, function(v) {
32187 var child = g.parent(v),
32188 parent,
32189 prevChild;
32190 while (child) {
32191 parent = g.parent(child);
32192 if (parent) {
32193 prevChild = prev[parent];
32194 prev[parent] = child;
32195 } else {
32196 prevChild = rootPrev;
32197 rootPrev = child;
32198 }
32199 if (prevChild && prevChild !== child) {
32200 cg.setEdge(prevChild, child);
32201 return;
32202 }
32203 child = parent;
32204 }
32205 });
32206
32207 /*
32208 function dfs(v) {
32209 var children = v ? g.children(v) : g.children();
32210 if (children.length) {
32211 var min = Number.POSITIVE_INFINITY,
32212 subgraphs = [];
32213 _.each(children, function(child) {
32214 var childMin = dfs(child);
32215 if (g.children(child).length) {
32216 subgraphs.push({ v: child, order: childMin });
32217 }
32218 min = Math.min(min, childMin);
32219 });
32220 _.reduce(_.sortBy(subgraphs, "order"), function(prev, curr) {
32221 cg.setEdge(prev.v, curr.v);
32222 return curr;
32223 });
32224 return min;
32225 }
32226 return g.node(v).order;
32227 }
32228 dfs(undefined);
32229 */
32230}
32231
32232
32233/***/ }),
32234
32235/***/ "./node_modules/dagre/lib/order/barycenter.js":
32236/*!****************************************************!*\
32237 !*** ./node_modules/dagre/lib/order/barycenter.js ***!
32238 \****************************************************/
32239/*! no static exports found */
32240/***/ (function(module, exports, __webpack_require__) {
32241
32242var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32243
32244module.exports = barycenter;
32245
32246function barycenter(g, movable) {
32247 return _.map(movable, function(v) {
32248 var inV = g.inEdges(v);
32249 if (!inV.length) {
32250 return { v: v };
32251 } else {
32252 var result = _.reduce(inV, function(acc, e) {
32253 var edge = g.edge(e),
32254 nodeU = g.node(e.v);
32255 return {
32256 sum: acc.sum + (edge.weight * nodeU.order),
32257 weight: acc.weight + edge.weight
32258 };
32259 }, { sum: 0, weight: 0 });
32260
32261 return {
32262 v: v,
32263 barycenter: result.sum / result.weight,
32264 weight: result.weight
32265 };
32266 }
32267 });
32268}
32269
32270
32271
32272/***/ }),
32273
32274/***/ "./node_modules/dagre/lib/order/build-layer-graph.js":
32275/*!***********************************************************!*\
32276 !*** ./node_modules/dagre/lib/order/build-layer-graph.js ***!
32277 \***********************************************************/
32278/*! no static exports found */
32279/***/ (function(module, exports, __webpack_require__) {
32280
32281var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32282var Graph = __webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph;
32283
32284module.exports = buildLayerGraph;
32285
32286/*
32287 * Constructs a graph that can be used to sort a layer of nodes. The graph will
32288 * contain all base and subgraph nodes from the request layer in their original
32289 * hierarchy and any edges that are incident on these nodes and are of the type
32290 * requested by the "relationship" parameter.
32291 *
32292 * Nodes from the requested rank that do not have parents are assigned a root
32293 * node in the output graph, which is set in the root graph attribute. This
32294 * makes it easy to walk the hierarchy of movable nodes during ordering.
32295 *
32296 * Pre-conditions:
32297 *
32298 * 1. Input graph is a DAG
32299 * 2. Base nodes in the input graph have a rank attribute
32300 * 3. Subgraph nodes in the input graph has minRank and maxRank attributes
32301 * 4. Edges have an assigned weight
32302 *
32303 * Post-conditions:
32304 *
32305 * 1. Output graph has all nodes in the movable rank with preserved
32306 * hierarchy.
32307 * 2. Root nodes in the movable layer are made children of the node
32308 * indicated by the root attribute of the graph.
32309 * 3. Non-movable nodes incident on movable nodes, selected by the
32310 * relationship parameter, are included in the graph (without hierarchy).
32311 * 4. Edges incident on movable nodes, selected by the relationship
32312 * parameter, are added to the output graph.
32313 * 5. The weights for copied edges are aggregated as need, since the output
32314 * graph is not a multi-graph.
32315 */
32316function buildLayerGraph(g, rank, relationship) {
32317 var root = createRootNode(g),
32318 result = new Graph({ compound: true }).setGraph({ root: root })
32319 .setDefaultNodeLabel(function(v) { return g.node(v); });
32320
32321 _.forEach(g.nodes(), function(v) {
32322 var node = g.node(v),
32323 parent = g.parent(v);
32324
32325 if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {
32326 result.setNode(v);
32327 result.setParent(v, parent || root);
32328
32329 // This assumes we have only short edges!
32330 _.forEach(g[relationship](v), function(e) {
32331 var u = e.v === v ? e.w : e.v,
32332 edge = result.edge(u, v),
32333 weight = !_.isUndefined(edge) ? edge.weight : 0;
32334 result.setEdge(u, v, { weight: g.edge(e).weight + weight });
32335 });
32336
32337 if (_.has(node, "minRank")) {
32338 result.setNode(v, {
32339 borderLeft: node.borderLeft[rank],
32340 borderRight: node.borderRight[rank]
32341 });
32342 }
32343 }
32344 });
32345
32346 return result;
32347}
32348
32349function createRootNode(g) {
32350 var v;
32351 while (g.hasNode((v = _.uniqueId("_root"))));
32352 return v;
32353}
32354
32355
32356/***/ }),
32357
32358/***/ "./node_modules/dagre/lib/order/cross-count.js":
32359/*!*****************************************************!*\
32360 !*** ./node_modules/dagre/lib/order/cross-count.js ***!
32361 \*****************************************************/
32362/*! no static exports found */
32363/***/ (function(module, exports, __webpack_require__) {
32364
32365"use strict";
32366
32367
32368var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32369
32370module.exports = crossCount;
32371
32372/*
32373 * A function that takes a layering (an array of layers, each with an array of
32374 * ordererd nodes) and a graph and returns a weighted crossing count.
32375 *
32376 * Pre-conditions:
32377 *
32378 * 1. Input graph must be simple (not a multigraph), directed, and include
32379 * only simple edges.
32380 * 2. Edges in the input graph must have assigned weights.
32381 *
32382 * Post-conditions:
32383 *
32384 * 1. The graph and layering matrix are left unchanged.
32385 *
32386 * This algorithm is derived from Barth, et al., "Bilayer Cross Counting."
32387 */
32388function crossCount(g, layering) {
32389 var cc = 0;
32390 for (var i = 1; i < layering.length; ++i) {
32391 cc += twoLayerCrossCount(g, layering[i-1], layering[i]);
32392 }
32393 return cc;
32394}
32395
32396function twoLayerCrossCount(g, northLayer, southLayer) {
32397 // Sort all of the edges between the north and south layers by their position
32398 // in the north layer and then the south. Map these edges to the position of
32399 // their head in the south layer.
32400 var southPos = _.zipObject(southLayer,
32401 _.map(southLayer, function (v, i) { return i; }));
32402 var southEntries = _.flatten(_.map(northLayer, function(v) {
32403 return _.sortBy(_.map(g.outEdges(v), function(e) {
32404 return { pos: southPos[e.w], weight: g.edge(e).weight };
32405 }), "pos");
32406 }), true);
32407
32408 // Build the accumulator tree
32409 var firstIndex = 1;
32410 while (firstIndex < southLayer.length) firstIndex <<= 1;
32411 var treeSize = 2 * firstIndex - 1;
32412 firstIndex -= 1;
32413 var tree = _.map(new Array(treeSize), function() { return 0; });
32414
32415 // Calculate the weighted crossings
32416 var cc = 0;
32417 _.forEach(southEntries.forEach(function(entry) {
32418 var index = entry.pos + firstIndex;
32419 tree[index] += entry.weight;
32420 var weightSum = 0;
32421 while (index > 0) {
32422 if (index % 2) {
32423 weightSum += tree[index + 1];
32424 }
32425 index = (index - 1) >> 1;
32426 tree[index] += entry.weight;
32427 }
32428 cc += entry.weight * weightSum;
32429 }));
32430
32431 return cc;
32432}
32433
32434
32435/***/ }),
32436
32437/***/ "./node_modules/dagre/lib/order/index.js":
32438/*!***********************************************!*\
32439 !*** ./node_modules/dagre/lib/order/index.js ***!
32440 \***********************************************/
32441/*! no static exports found */
32442/***/ (function(module, exports, __webpack_require__) {
32443
32444"use strict";
32445
32446
32447var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32448var initOrder = __webpack_require__(/*! ./init-order */ "./node_modules/dagre/lib/order/init-order.js");
32449var crossCount = __webpack_require__(/*! ./cross-count */ "./node_modules/dagre/lib/order/cross-count.js");
32450var sortSubgraph = __webpack_require__(/*! ./sort-subgraph */ "./node_modules/dagre/lib/order/sort-subgraph.js");
32451var buildLayerGraph = __webpack_require__(/*! ./build-layer-graph */ "./node_modules/dagre/lib/order/build-layer-graph.js");
32452var addSubgraphConstraints = __webpack_require__(/*! ./add-subgraph-constraints */ "./node_modules/dagre/lib/order/add-subgraph-constraints.js");
32453var Graph = __webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph;
32454var util = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js");
32455
32456module.exports = order;
32457
32458/*
32459 * Applies heuristics to minimize edge crossings in the graph and sets the best
32460 * order solution as an order attribute on each node.
32461 *
32462 * Pre-conditions:
32463 *
32464 * 1. Graph must be DAG
32465 * 2. Graph nodes must be objects with a "rank" attribute
32466 * 3. Graph edges must have the "weight" attribute
32467 *
32468 * Post-conditions:
32469 *
32470 * 1. Graph nodes will have an "order" attribute based on the results of the
32471 * algorithm.
32472 */
32473function order(g) {
32474 var maxRank = util.maxRank(g),
32475 downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), "inEdges"),
32476 upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), "outEdges");
32477
32478 var layering = initOrder(g);
32479 assignOrder(g, layering);
32480
32481 var bestCC = Number.POSITIVE_INFINITY,
32482 best;
32483
32484 for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {
32485 sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);
32486
32487 layering = util.buildLayerMatrix(g);
32488 var cc = crossCount(g, layering);
32489 if (cc < bestCC) {
32490 lastBest = 0;
32491 best = _.cloneDeep(layering);
32492 bestCC = cc;
32493 }
32494 }
32495
32496 assignOrder(g, best);
32497}
32498
32499function buildLayerGraphs(g, ranks, relationship) {
32500 return _.map(ranks, function(rank) {
32501 return buildLayerGraph(g, rank, relationship);
32502 });
32503}
32504
32505function sweepLayerGraphs(layerGraphs, biasRight) {
32506 var cg = new Graph();
32507 _.forEach(layerGraphs, function(lg) {
32508 var root = lg.graph().root;
32509 var sorted = sortSubgraph(lg, root, cg, biasRight);
32510 _.forEach(sorted.vs, function(v, i) {
32511 lg.node(v).order = i;
32512 });
32513 addSubgraphConstraints(lg, cg, sorted.vs);
32514 });
32515}
32516
32517function assignOrder(g, layering) {
32518 _.forEach(layering, function(layer) {
32519 _.forEach(layer, function(v, i) {
32520 g.node(v).order = i;
32521 });
32522 });
32523}
32524
32525
32526/***/ }),
32527
32528/***/ "./node_modules/dagre/lib/order/init-order.js":
32529/*!****************************************************!*\
32530 !*** ./node_modules/dagre/lib/order/init-order.js ***!
32531 \****************************************************/
32532/*! no static exports found */
32533/***/ (function(module, exports, __webpack_require__) {
32534
32535"use strict";
32536
32537
32538var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32539
32540module.exports = initOrder;
32541
32542/*
32543 * Assigns an initial order value for each node by performing a DFS search
32544 * starting from nodes in the first rank. Nodes are assigned an order in their
32545 * rank as they are first visited.
32546 *
32547 * This approach comes from Gansner, et al., "A Technique for Drawing Directed
32548 * Graphs."
32549 *
32550 * Returns a layering matrix with an array per layer and each layer sorted by
32551 * the order of its nodes.
32552 */
32553function initOrder(g) {
32554 var visited = {};
32555 var simpleNodes = _.filter(g.nodes(), function(v) {
32556 return !g.children(v).length;
32557 });
32558 var maxRank = _.max(_.map(simpleNodes, function(v) { return g.node(v).rank; }));
32559 var layers = _.map(_.range(maxRank + 1), function() { return []; });
32560
32561 function dfs(v) {
32562 if (_.has(visited, v)) return;
32563 visited[v] = true;
32564 var node = g.node(v);
32565 layers[node.rank].push(v);
32566 _.forEach(g.successors(v), dfs);
32567 }
32568
32569 var orderedVs = _.sortBy(simpleNodes, function(v) { return g.node(v).rank; });
32570 _.forEach(orderedVs, dfs);
32571
32572 return layers;
32573}
32574
32575
32576/***/ }),
32577
32578/***/ "./node_modules/dagre/lib/order/resolve-conflicts.js":
32579/*!***********************************************************!*\
32580 !*** ./node_modules/dagre/lib/order/resolve-conflicts.js ***!
32581 \***********************************************************/
32582/*! no static exports found */
32583/***/ (function(module, exports, __webpack_require__) {
32584
32585"use strict";
32586
32587
32588var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32589
32590module.exports = resolveConflicts;
32591
32592/*
32593 * Given a list of entries of the form {v, barycenter, weight} and a
32594 * constraint graph this function will resolve any conflicts between the
32595 * constraint graph and the barycenters for the entries. If the barycenters for
32596 * an entry would violate a constraint in the constraint graph then we coalesce
32597 * the nodes in the conflict into a new node that respects the contraint and
32598 * aggregates barycenter and weight information.
32599 *
32600 * This implementation is based on the description in Forster, "A Fast and
32601 * Simple Hueristic for Constrained Two-Level Crossing Reduction," thought it
32602 * differs in some specific details.
32603 *
32604 * Pre-conditions:
32605 *
32606 * 1. Each entry has the form {v, barycenter, weight}, or if the node has
32607 * no barycenter, then {v}.
32608 *
32609 * Returns:
32610 *
32611 * A new list of entries of the form {vs, i, barycenter, weight}. The list
32612 * `vs` may either be a singleton or it may be an aggregation of nodes
32613 * ordered such that they do not violate constraints from the constraint
32614 * graph. The property `i` is the lowest original index of any of the
32615 * elements in `vs`.
32616 */
32617function resolveConflicts(entries, cg) {
32618 var mappedEntries = {};
32619 _.forEach(entries, function(entry, i) {
32620 var tmp = mappedEntries[entry.v] = {
32621 indegree: 0,
32622 "in": [],
32623 out: [],
32624 vs: [entry.v],
32625 i: i
32626 };
32627 if (!_.isUndefined(entry.barycenter)) {
32628 tmp.barycenter = entry.barycenter;
32629 tmp.weight = entry.weight;
32630 }
32631 });
32632
32633 _.forEach(cg.edges(), function(e) {
32634 var entryV = mappedEntries[e.v];
32635 var entryW = mappedEntries[e.w];
32636 if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {
32637 entryW.indegree++;
32638 entryV.out.push(mappedEntries[e.w]);
32639 }
32640 });
32641
32642 var sourceSet = _.filter(mappedEntries, function(entry) {
32643 return !entry.indegree;
32644 });
32645
32646 return doResolveConflicts(sourceSet);
32647}
32648
32649function doResolveConflicts(sourceSet) {
32650 var entries = [];
32651
32652 function handleIn(vEntry) {
32653 return function(uEntry) {
32654 if (uEntry.merged) {
32655 return;
32656 }
32657 if (_.isUndefined(uEntry.barycenter) ||
32658 _.isUndefined(vEntry.barycenter) ||
32659 uEntry.barycenter >= vEntry.barycenter) {
32660 mergeEntries(vEntry, uEntry);
32661 }
32662 };
32663 }
32664
32665 function handleOut(vEntry) {
32666 return function(wEntry) {
32667 wEntry["in"].push(vEntry);
32668 if (--wEntry.indegree === 0) {
32669 sourceSet.push(wEntry);
32670 }
32671 };
32672 }
32673
32674 while (sourceSet.length) {
32675 var entry = sourceSet.pop();
32676 entries.push(entry);
32677 _.forEach(entry["in"].reverse(), handleIn(entry));
32678 _.forEach(entry.out, handleOut(entry));
32679 }
32680
32681 return _.map(_.filter(entries, function(entry) { return !entry.merged; }),
32682 function(entry) {
32683 return _.pick(entry, ["vs", "i", "barycenter", "weight"]);
32684 });
32685
32686}
32687
32688function mergeEntries(target, source) {
32689 var sum = 0;
32690 var weight = 0;
32691
32692 if (target.weight) {
32693 sum += target.barycenter * target.weight;
32694 weight += target.weight;
32695 }
32696
32697 if (source.weight) {
32698 sum += source.barycenter * source.weight;
32699 weight += source.weight;
32700 }
32701
32702 target.vs = source.vs.concat(target.vs);
32703 target.barycenter = sum / weight;
32704 target.weight = weight;
32705 target.i = Math.min(source.i, target.i);
32706 source.merged = true;
32707}
32708
32709
32710/***/ }),
32711
32712/***/ "./node_modules/dagre/lib/order/sort-subgraph.js":
32713/*!*******************************************************!*\
32714 !*** ./node_modules/dagre/lib/order/sort-subgraph.js ***!
32715 \*******************************************************/
32716/*! no static exports found */
32717/***/ (function(module, exports, __webpack_require__) {
32718
32719var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32720var barycenter = __webpack_require__(/*! ./barycenter */ "./node_modules/dagre/lib/order/barycenter.js");
32721var resolveConflicts = __webpack_require__(/*! ./resolve-conflicts */ "./node_modules/dagre/lib/order/resolve-conflicts.js");
32722var sort = __webpack_require__(/*! ./sort */ "./node_modules/dagre/lib/order/sort.js");
32723
32724module.exports = sortSubgraph;
32725
32726function sortSubgraph(g, v, cg, biasRight) {
32727 var movable = g.children(v);
32728 var node = g.node(v);
32729 var bl = node ? node.borderLeft : undefined;
32730 var br = node ? node.borderRight: undefined;
32731 var subgraphs = {};
32732
32733 if (bl) {
32734 movable = _.filter(movable, function(w) {
32735 return w !== bl && w !== br;
32736 });
32737 }
32738
32739 var barycenters = barycenter(g, movable);
32740 _.forEach(barycenters, function(entry) {
32741 if (g.children(entry.v).length) {
32742 var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);
32743 subgraphs[entry.v] = subgraphResult;
32744 if (_.has(subgraphResult, "barycenter")) {
32745 mergeBarycenters(entry, subgraphResult);
32746 }
32747 }
32748 });
32749
32750 var entries = resolveConflicts(barycenters, cg);
32751 expandSubgraphs(entries, subgraphs);
32752
32753 var result = sort(entries, biasRight);
32754
32755 if (bl) {
32756 result.vs = _.flatten([bl, result.vs, br], true);
32757 if (g.predecessors(bl).length) {
32758 var blPred = g.node(g.predecessors(bl)[0]),
32759 brPred = g.node(g.predecessors(br)[0]);
32760 if (!_.has(result, "barycenter")) {
32761 result.barycenter = 0;
32762 result.weight = 0;
32763 }
32764 result.barycenter = (result.barycenter * result.weight +
32765 blPred.order + brPred.order) / (result.weight + 2);
32766 result.weight += 2;
32767 }
32768 }
32769
32770 return result;
32771}
32772
32773function expandSubgraphs(entries, subgraphs) {
32774 _.forEach(entries, function(entry) {
32775 entry.vs = _.flatten(entry.vs.map(function(v) {
32776 if (subgraphs[v]) {
32777 return subgraphs[v].vs;
32778 }
32779 return v;
32780 }), true);
32781 });
32782}
32783
32784function mergeBarycenters(target, other) {
32785 if (!_.isUndefined(target.barycenter)) {
32786 target.barycenter = (target.barycenter * target.weight +
32787 other.barycenter * other.weight) /
32788 (target.weight + other.weight);
32789 target.weight += other.weight;
32790 } else {
32791 target.barycenter = other.barycenter;
32792 target.weight = other.weight;
32793 }
32794}
32795
32796
32797/***/ }),
32798
32799/***/ "./node_modules/dagre/lib/order/sort.js":
32800/*!**********************************************!*\
32801 !*** ./node_modules/dagre/lib/order/sort.js ***!
32802 \**********************************************/
32803/*! no static exports found */
32804/***/ (function(module, exports, __webpack_require__) {
32805
32806var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32807var util = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js");
32808
32809module.exports = sort;
32810
32811function sort(entries, biasRight) {
32812 var parts = util.partition(entries, function(entry) {
32813 return _.has(entry, "barycenter");
32814 });
32815 var sortable = parts.lhs,
32816 unsortable = _.sortBy(parts.rhs, function(entry) { return -entry.i; }),
32817 vs = [],
32818 sum = 0,
32819 weight = 0,
32820 vsIndex = 0;
32821
32822 sortable.sort(compareWithBias(!!biasRight));
32823
32824 vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
32825
32826 _.forEach(sortable, function (entry) {
32827 vsIndex += entry.vs.length;
32828 vs.push(entry.vs);
32829 sum += entry.barycenter * entry.weight;
32830 weight += entry.weight;
32831 vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
32832 });
32833
32834 var result = { vs: _.flatten(vs, true) };
32835 if (weight) {
32836 result.barycenter = sum / weight;
32837 result.weight = weight;
32838 }
32839 return result;
32840}
32841
32842function consumeUnsortable(vs, unsortable, index) {
32843 var last;
32844 while (unsortable.length && (last = _.last(unsortable)).i <= index) {
32845 unsortable.pop();
32846 vs.push(last.vs);
32847 index++;
32848 }
32849 return index;
32850}
32851
32852function compareWithBias(bias) {
32853 return function(entryV, entryW) {
32854 if (entryV.barycenter < entryW.barycenter) {
32855 return -1;
32856 } else if (entryV.barycenter > entryW.barycenter) {
32857 return 1;
32858 }
32859
32860 return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;
32861 };
32862}
32863
32864
32865/***/ }),
32866
32867/***/ "./node_modules/dagre/lib/parent-dummy-chains.js":
32868/*!*******************************************************!*\
32869 !*** ./node_modules/dagre/lib/parent-dummy-chains.js ***!
32870 \*******************************************************/
32871/*! no static exports found */
32872/***/ (function(module, exports, __webpack_require__) {
32873
32874var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
32875
32876module.exports = parentDummyChains;
32877
32878function parentDummyChains(g) {
32879 var postorderNums = postorder(g);
32880
32881 _.forEach(g.graph().dummyChains, function(v) {
32882 var node = g.node(v);
32883 var edgeObj = node.edgeObj;
32884 var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);
32885 var path = pathData.path;
32886 var lca = pathData.lca;
32887 var pathIdx = 0;
32888 var pathV = path[pathIdx];
32889 var ascending = true;
32890
32891 while (v !== edgeObj.w) {
32892 node = g.node(v);
32893
32894 if (ascending) {
32895 while ((pathV = path[pathIdx]) !== lca &&
32896 g.node(pathV).maxRank < node.rank) {
32897 pathIdx++;
32898 }
32899
32900 if (pathV === lca) {
32901 ascending = false;
32902 }
32903 }
32904
32905 if (!ascending) {
32906 while (pathIdx < path.length - 1 &&
32907 g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {
32908 pathIdx++;
32909 }
32910 pathV = path[pathIdx];
32911 }
32912
32913 g.setParent(v, pathV);
32914 v = g.successors(v)[0];
32915 }
32916 });
32917}
32918
32919// Find a path from v to w through the lowest common ancestor (LCA). Return the
32920// full path and the LCA.
32921function findPath(g, postorderNums, v, w) {
32922 var vPath = [];
32923 var wPath = [];
32924 var low = Math.min(postorderNums[v].low, postorderNums[w].low);
32925 var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);
32926 var parent;
32927 var lca;
32928
32929 // Traverse up from v to find the LCA
32930 parent = v;
32931 do {
32932 parent = g.parent(parent);
32933 vPath.push(parent);
32934 } while (parent &&
32935 (postorderNums[parent].low > low || lim > postorderNums[parent].lim));
32936 lca = parent;
32937
32938 // Traverse from w to LCA
32939 parent = w;
32940 while ((parent = g.parent(parent)) !== lca) {
32941 wPath.push(parent);
32942 }
32943
32944 return { path: vPath.concat(wPath.reverse()), lca: lca };
32945}
32946
32947function postorder(g) {
32948 var result = {};
32949 var lim = 0;
32950
32951 function dfs(v) {
32952 var low = lim;
32953 _.forEach(g.children(v), dfs);
32954 result[v] = { low: low, lim: lim++ };
32955 }
32956 _.forEach(g.children(), dfs);
32957
32958 return result;
32959}
32960
32961
32962/***/ }),
32963
32964/***/ "./node_modules/dagre/lib/position/bk.js":
32965/*!***********************************************!*\
32966 !*** ./node_modules/dagre/lib/position/bk.js ***!
32967 \***********************************************/
32968/*! no static exports found */
32969/***/ (function(module, exports, __webpack_require__) {
32970
32971"use strict";
32972
32973
32974var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
32975var Graph = __webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph;
32976var util = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js");
32977
32978/*
32979 * This module provides coordinate assignment based on Brandes and Köpf, "Fast
32980 * and Simple Horizontal Coordinate Assignment."
32981 */
32982
32983module.exports = {
32984 positionX: positionX,
32985 findType1Conflicts: findType1Conflicts,
32986 findType2Conflicts: findType2Conflicts,
32987 addConflict: addConflict,
32988 hasConflict: hasConflict,
32989 verticalAlignment: verticalAlignment,
32990 horizontalCompaction: horizontalCompaction,
32991 alignCoordinates: alignCoordinates,
32992 findSmallestWidthAlignment: findSmallestWidthAlignment,
32993 balance: balance
32994};
32995
32996/*
32997 * Marks all edges in the graph with a type-1 conflict with the "type1Conflict"
32998 * property. A type-1 conflict is one where a non-inner segment crosses an
32999 * inner segment. An inner segment is an edge with both incident nodes marked
33000 * with the "dummy" property.
33001 *
33002 * This algorithm scans layer by layer, starting with the second, for type-1
33003 * conflicts between the current layer and the previous layer. For each layer
33004 * it scans the nodes from left to right until it reaches one that is incident
33005 * on an inner segment. It then scans predecessors to determine if they have
33006 * edges that cross that inner segment. At the end a final scan is done for all
33007 * nodes on the current rank to see if they cross the last visited inner
33008 * segment.
33009 *
33010 * This algorithm (safely) assumes that a dummy node will only be incident on a
33011 * single node in the layers being scanned.
33012 */
33013function findType1Conflicts(g, layering) {
33014 var conflicts = {};
33015
33016 function visitLayer(prevLayer, layer) {
33017 var
33018 // last visited node in the previous layer that is incident on an inner
33019 // segment.
33020 k0 = 0,
33021 // Tracks the last node in this layer scanned for crossings with a type-1
33022 // segment.
33023 scanPos = 0,
33024 prevLayerLength = prevLayer.length,
33025 lastNode = _.last(layer);
33026
33027 _.forEach(layer, function(v, i) {
33028 var w = findOtherInnerSegmentNode(g, v),
33029 k1 = w ? g.node(w).order : prevLayerLength;
33030
33031 if (w || v === lastNode) {
33032 _.forEach(layer.slice(scanPos, i +1), function(scanNode) {
33033 _.forEach(g.predecessors(scanNode), function(u) {
33034 var uLabel = g.node(u),
33035 uPos = uLabel.order;
33036 if ((uPos < k0 || k1 < uPos) &&
33037 !(uLabel.dummy && g.node(scanNode).dummy)) {
33038 addConflict(conflicts, u, scanNode);
33039 }
33040 });
33041 });
33042 scanPos = i + 1;
33043 k0 = k1;
33044 }
33045 });
33046
33047 return layer;
33048 }
33049
33050 _.reduce(layering, visitLayer);
33051 return conflicts;
33052}
33053
33054function findType2Conflicts(g, layering) {
33055 var conflicts = {};
33056
33057 function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
33058 var v;
33059 _.forEach(_.range(southPos, southEnd), function(i) {
33060 v = south[i];
33061 if (g.node(v).dummy) {
33062 _.forEach(g.predecessors(v), function(u) {
33063 var uNode = g.node(u);
33064 if (uNode.dummy &&
33065 (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {
33066 addConflict(conflicts, u, v);
33067 }
33068 });
33069 }
33070 });
33071 }
33072
33073
33074 function visitLayer(north, south) {
33075 var prevNorthPos = -1,
33076 nextNorthPos,
33077 southPos = 0;
33078
33079 _.forEach(south, function(v, southLookahead) {
33080 if (g.node(v).dummy === "border") {
33081 var predecessors = g.predecessors(v);
33082 if (predecessors.length) {
33083 nextNorthPos = g.node(predecessors[0]).order;
33084 scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);
33085 southPos = southLookahead;
33086 prevNorthPos = nextNorthPos;
33087 }
33088 }
33089 scan(south, southPos, south.length, nextNorthPos, north.length);
33090 });
33091
33092 return south;
33093 }
33094
33095 _.reduce(layering, visitLayer);
33096 return conflicts;
33097}
33098
33099function findOtherInnerSegmentNode(g, v) {
33100 if (g.node(v).dummy) {
33101 return _.find(g.predecessors(v), function(u) {
33102 return g.node(u).dummy;
33103 });
33104 }
33105}
33106
33107function addConflict(conflicts, v, w) {
33108 if (v > w) {
33109 var tmp = v;
33110 v = w;
33111 w = tmp;
33112 }
33113
33114 var conflictsV = conflicts[v];
33115 if (!conflictsV) {
33116 conflicts[v] = conflictsV = {};
33117 }
33118 conflictsV[w] = true;
33119}
33120
33121function hasConflict(conflicts, v, w) {
33122 if (v > w) {
33123 var tmp = v;
33124 v = w;
33125 w = tmp;
33126 }
33127 return _.has(conflicts[v], w);
33128}
33129
33130/*
33131 * Try to align nodes into vertical "blocks" where possible. This algorithm
33132 * attempts to align a node with one of its median neighbors. If the edge
33133 * connecting a neighbor is a type-1 conflict then we ignore that possibility.
33134 * If a previous node has already formed a block with a node after the node
33135 * we're trying to form a block with, we also ignore that possibility - our
33136 * blocks would be split in that scenario.
33137 */
33138function verticalAlignment(g, layering, conflicts, neighborFn) {
33139 var root = {},
33140 align = {},
33141 pos = {};
33142
33143 // We cache the position here based on the layering because the graph and
33144 // layering may be out of sync. The layering matrix is manipulated to
33145 // generate different extreme alignments.
33146 _.forEach(layering, function(layer) {
33147 _.forEach(layer, function(v, order) {
33148 root[v] = v;
33149 align[v] = v;
33150 pos[v] = order;
33151 });
33152 });
33153
33154 _.forEach(layering, function(layer) {
33155 var prevIdx = -1;
33156 _.forEach(layer, function(v) {
33157 var ws = neighborFn(v);
33158 if (ws.length) {
33159 ws = _.sortBy(ws, function(w) { return pos[w]; });
33160 var mp = (ws.length - 1) / 2;
33161 for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {
33162 var w = ws[i];
33163 if (align[v] === v &&
33164 prevIdx < pos[w] &&
33165 !hasConflict(conflicts, v, w)) {
33166 align[w] = v;
33167 align[v] = root[v] = root[w];
33168 prevIdx = pos[w];
33169 }
33170 }
33171 }
33172 });
33173 });
33174
33175 return { root: root, align: align };
33176}
33177
33178function horizontalCompaction(g, layering, root, align, reverseSep) {
33179 // This portion of the algorithm differs from BK due to a number of problems.
33180 // Instead of their algorithm we construct a new block graph and do two
33181 // sweeps. The first sweep places blocks with the smallest possible
33182 // coordinates. The second sweep removes unused space by moving blocks to the
33183 // greatest coordinates without violating separation.
33184 var xs = {},
33185 blockG = buildBlockGraph(g, layering, root, reverseSep),
33186 borderType = reverseSep ? "borderLeft" : "borderRight";
33187
33188 function iterate(setXsFunc, nextNodesFunc) {
33189 var stack = blockG.nodes();
33190 var elem = stack.pop();
33191 var visited = {};
33192 while (elem) {
33193 if (visited[elem]) {
33194 setXsFunc(elem);
33195 } else {
33196 visited[elem] = true;
33197 stack.push(elem);
33198 stack = stack.concat(nextNodesFunc(elem));
33199 }
33200
33201 elem = stack.pop();
33202 }
33203 }
33204
33205 // First pass, assign smallest coordinates
33206 function pass1(elem) {
33207 xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {
33208 return Math.max(acc, xs[e.v] + blockG.edge(e));
33209 }, 0);
33210 }
33211
33212 // Second pass, assign greatest coordinates
33213 function pass2(elem) {
33214 var min = blockG.outEdges(elem).reduce(function(acc, e) {
33215 return Math.min(acc, xs[e.w] - blockG.edge(e));
33216 }, Number.POSITIVE_INFINITY);
33217
33218 var node = g.node(elem);
33219 if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {
33220 xs[elem] = Math.max(xs[elem], min);
33221 }
33222 }
33223
33224 iterate(pass1, blockG.predecessors.bind(blockG));
33225 iterate(pass2, blockG.successors.bind(blockG));
33226
33227 // Assign x coordinates to all nodes
33228 _.forEach(align, function(v) {
33229 xs[v] = xs[root[v]];
33230 });
33231
33232 return xs;
33233}
33234
33235
33236function buildBlockGraph(g, layering, root, reverseSep) {
33237 var blockGraph = new Graph(),
33238 graphLabel = g.graph(),
33239 sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);
33240
33241 _.forEach(layering, function(layer) {
33242 var u;
33243 _.forEach(layer, function(v) {
33244 var vRoot = root[v];
33245 blockGraph.setNode(vRoot);
33246 if (u) {
33247 var uRoot = root[u],
33248 prevMax = blockGraph.edge(uRoot, vRoot);
33249 blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));
33250 }
33251 u = v;
33252 });
33253 });
33254
33255 return blockGraph;
33256}
33257
33258/*
33259 * Returns the alignment that has the smallest width of the given alignments.
33260 */
33261function findSmallestWidthAlignment(g, xss) {
33262 return _.minBy(_.values(xss), function (xs) {
33263 var max = Number.NEGATIVE_INFINITY;
33264 var min = Number.POSITIVE_INFINITY;
33265
33266 _.forIn(xs, function (x, v) {
33267 var halfWidth = width(g, v) / 2;
33268
33269 max = Math.max(x + halfWidth, max);
33270 min = Math.min(x - halfWidth, min);
33271 });
33272
33273 return max - min;
33274 });
33275}
33276
33277/*
33278 * Align the coordinates of each of the layout alignments such that
33279 * left-biased alignments have their minimum coordinate at the same point as
33280 * the minimum coordinate of the smallest width alignment and right-biased
33281 * alignments have their maximum coordinate at the same point as the maximum
33282 * coordinate of the smallest width alignment.
33283 */
33284function alignCoordinates(xss, alignTo) {
33285 var alignToVals = _.values(alignTo),
33286 alignToMin = _.min(alignToVals),
33287 alignToMax = _.max(alignToVals);
33288
33289 _.forEach(["u", "d"], function(vert) {
33290 _.forEach(["l", "r"], function(horiz) {
33291 var alignment = vert + horiz,
33292 xs = xss[alignment],
33293 delta;
33294 if (xs === alignTo) return;
33295
33296 var xsVals = _.values(xs);
33297 delta = horiz === "l" ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);
33298
33299 if (delta) {
33300 xss[alignment] = _.mapValues(xs, function(x) { return x + delta; });
33301 }
33302 });
33303 });
33304}
33305
33306function balance(xss, align) {
33307 return _.mapValues(xss.ul, function(ignore, v) {
33308 if (align) {
33309 return xss[align.toLowerCase()][v];
33310 } else {
33311 var xs = _.sortBy(_.map(xss, v));
33312 return (xs[1] + xs[2]) / 2;
33313 }
33314 });
33315}
33316
33317function positionX(g) {
33318 var layering = util.buildLayerMatrix(g);
33319 var conflicts = _.merge(
33320 findType1Conflicts(g, layering),
33321 findType2Conflicts(g, layering));
33322
33323 var xss = {};
33324 var adjustedLayering;
33325 _.forEach(["u", "d"], function(vert) {
33326 adjustedLayering = vert === "u" ? layering : _.values(layering).reverse();
33327 _.forEach(["l", "r"], function(horiz) {
33328 if (horiz === "r") {
33329 adjustedLayering = _.map(adjustedLayering, function(inner) {
33330 return _.values(inner).reverse();
33331 });
33332 }
33333
33334 var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g);
33335 var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
33336 var xs = horizontalCompaction(g, adjustedLayering,
33337 align.root, align.align, horiz === "r");
33338 if (horiz === "r") {
33339 xs = _.mapValues(xs, function(x) { return -x; });
33340 }
33341 xss[vert + horiz] = xs;
33342 });
33343 });
33344
33345 var smallestWidth = findSmallestWidthAlignment(g, xss);
33346 alignCoordinates(xss, smallestWidth);
33347 return balance(xss, g.graph().align);
33348}
33349
33350function sep(nodeSep, edgeSep, reverseSep) {
33351 return function(g, v, w) {
33352 var vLabel = g.node(v);
33353 var wLabel = g.node(w);
33354 var sum = 0;
33355 var delta;
33356
33357 sum += vLabel.width / 2;
33358 if (_.has(vLabel, "labelpos")) {
33359 switch (vLabel.labelpos.toLowerCase()) {
33360 case "l": delta = -vLabel.width / 2; break;
33361 case "r": delta = vLabel.width / 2; break;
33362 }
33363 }
33364 if (delta) {
33365 sum += reverseSep ? delta : -delta;
33366 }
33367 delta = 0;
33368
33369 sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;
33370 sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;
33371
33372 sum += wLabel.width / 2;
33373 if (_.has(wLabel, "labelpos")) {
33374 switch (wLabel.labelpos.toLowerCase()) {
33375 case "l": delta = wLabel.width / 2; break;
33376 case "r": delta = -wLabel.width / 2; break;
33377 }
33378 }
33379 if (delta) {
33380 sum += reverseSep ? delta : -delta;
33381 }
33382 delta = 0;
33383
33384 return sum;
33385 };
33386}
33387
33388function width(g, v) {
33389 return g.node(v).width;
33390}
33391
33392
33393/***/ }),
33394
33395/***/ "./node_modules/dagre/lib/position/index.js":
33396/*!**************************************************!*\
33397 !*** ./node_modules/dagre/lib/position/index.js ***!
33398 \**************************************************/
33399/*! no static exports found */
33400/***/ (function(module, exports, __webpack_require__) {
33401
33402"use strict";
33403
33404
33405var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
33406var util = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js");
33407var positionX = __webpack_require__(/*! ./bk */ "./node_modules/dagre/lib/position/bk.js").positionX;
33408
33409module.exports = position;
33410
33411function position(g) {
33412 g = util.asNonCompoundGraph(g);
33413
33414 positionY(g);
33415 _.forEach(positionX(g), function(x, v) {
33416 g.node(v).x = x;
33417 });
33418}
33419
33420function positionY(g) {
33421 var layering = util.buildLayerMatrix(g);
33422 var rankSep = g.graph().ranksep;
33423 var prevY = 0;
33424 _.forEach(layering, function(layer) {
33425 var maxHeight = _.max(_.map(layer, function(v) { return g.node(v).height; }));
33426 _.forEach(layer, function(v) {
33427 g.node(v).y = prevY + maxHeight / 2;
33428 });
33429 prevY += maxHeight + rankSep;
33430 });
33431}
33432
33433
33434
33435/***/ }),
33436
33437/***/ "./node_modules/dagre/lib/rank/feasible-tree.js":
33438/*!******************************************************!*\
33439 !*** ./node_modules/dagre/lib/rank/feasible-tree.js ***!
33440 \******************************************************/
33441/*! no static exports found */
33442/***/ (function(module, exports, __webpack_require__) {
33443
33444"use strict";
33445
33446
33447var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
33448var Graph = __webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph;
33449var slack = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/rank/util.js").slack;
33450
33451module.exports = feasibleTree;
33452
33453/*
33454 * Constructs a spanning tree with tight edges and adjusted the input node's
33455 * ranks to achieve this. A tight edge is one that is has a length that matches
33456 * its "minlen" attribute.
33457 *
33458 * The basic structure for this function is derived from Gansner, et al., "A
33459 * Technique for Drawing Directed Graphs."
33460 *
33461 * Pre-conditions:
33462 *
33463 * 1. Graph must be a DAG.
33464 * 2. Graph must be connected.
33465 * 3. Graph must have at least one node.
33466 * 5. Graph nodes must have been previously assigned a "rank" property that
33467 * respects the "minlen" property of incident edges.
33468 * 6. Graph edges must have a "minlen" property.
33469 *
33470 * Post-conditions:
33471 *
33472 * - Graph nodes will have their rank adjusted to ensure that all edges are
33473 * tight.
33474 *
33475 * Returns a tree (undirected graph) that is constructed using only "tight"
33476 * edges.
33477 */
33478function feasibleTree(g) {
33479 var t = new Graph({ directed: false });
33480
33481 // Choose arbitrary node from which to start our tree
33482 var start = g.nodes()[0];
33483 var size = g.nodeCount();
33484 t.setNode(start, {});
33485
33486 var edge, delta;
33487 while (tightTree(t, g) < size) {
33488 edge = findMinSlackEdge(t, g);
33489 delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);
33490 shiftRanks(t, g, delta);
33491 }
33492
33493 return t;
33494}
33495
33496/*
33497 * Finds a maximal tree of tight edges and returns the number of nodes in the
33498 * tree.
33499 */
33500function tightTree(t, g) {
33501 function dfs(v) {
33502 _.forEach(g.nodeEdges(v), function(e) {
33503 var edgeV = e.v,
33504 w = (v === edgeV) ? e.w : edgeV;
33505 if (!t.hasNode(w) && !slack(g, e)) {
33506 t.setNode(w, {});
33507 t.setEdge(v, w, {});
33508 dfs(w);
33509 }
33510 });
33511 }
33512
33513 _.forEach(t.nodes(), dfs);
33514 return t.nodeCount();
33515}
33516
33517/*
33518 * Finds the edge with the smallest slack that is incident on tree and returns
33519 * it.
33520 */
33521function findMinSlackEdge(t, g) {
33522 return _.minBy(g.edges(), function(e) {
33523 if (t.hasNode(e.v) !== t.hasNode(e.w)) {
33524 return slack(g, e);
33525 }
33526 });
33527}
33528
33529function shiftRanks(t, g, delta) {
33530 _.forEach(t.nodes(), function(v) {
33531 g.node(v).rank += delta;
33532 });
33533}
33534
33535
33536/***/ }),
33537
33538/***/ "./node_modules/dagre/lib/rank/index.js":
33539/*!**********************************************!*\
33540 !*** ./node_modules/dagre/lib/rank/index.js ***!
33541 \**********************************************/
33542/*! no static exports found */
33543/***/ (function(module, exports, __webpack_require__) {
33544
33545"use strict";
33546
33547
33548var rankUtil = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/rank/util.js");
33549var longestPath = rankUtil.longestPath;
33550var feasibleTree = __webpack_require__(/*! ./feasible-tree */ "./node_modules/dagre/lib/rank/feasible-tree.js");
33551var networkSimplex = __webpack_require__(/*! ./network-simplex */ "./node_modules/dagre/lib/rank/network-simplex.js");
33552
33553module.exports = rank;
33554
33555/*
33556 * Assigns a rank to each node in the input graph that respects the "minlen"
33557 * constraint specified on edges between nodes.
33558 *
33559 * This basic structure is derived from Gansner, et al., "A Technique for
33560 * Drawing Directed Graphs."
33561 *
33562 * Pre-conditions:
33563 *
33564 * 1. Graph must be a connected DAG
33565 * 2. Graph nodes must be objects
33566 * 3. Graph edges must have "weight" and "minlen" attributes
33567 *
33568 * Post-conditions:
33569 *
33570 * 1. Graph nodes will have a "rank" attribute based on the results of the
33571 * algorithm. Ranks can start at any index (including negative), we'll
33572 * fix them up later.
33573 */
33574function rank(g) {
33575 switch(g.graph().ranker) {
33576 case "network-simplex": networkSimplexRanker(g); break;
33577 case "tight-tree": tightTreeRanker(g); break;
33578 case "longest-path": longestPathRanker(g); break;
33579 default: networkSimplexRanker(g);
33580 }
33581}
33582
33583// A fast and simple ranker, but results are far from optimal.
33584var longestPathRanker = longestPath;
33585
33586function tightTreeRanker(g) {
33587 longestPath(g);
33588 feasibleTree(g);
33589}
33590
33591function networkSimplexRanker(g) {
33592 networkSimplex(g);
33593}
33594
33595
33596/***/ }),
33597
33598/***/ "./node_modules/dagre/lib/rank/network-simplex.js":
33599/*!********************************************************!*\
33600 !*** ./node_modules/dagre/lib/rank/network-simplex.js ***!
33601 \********************************************************/
33602/*! no static exports found */
33603/***/ (function(module, exports, __webpack_require__) {
33604
33605"use strict";
33606
33607
33608var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
33609var feasibleTree = __webpack_require__(/*! ./feasible-tree */ "./node_modules/dagre/lib/rank/feasible-tree.js");
33610var slack = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/rank/util.js").slack;
33611var initRank = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/rank/util.js").longestPath;
33612var preorder = __webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").alg.preorder;
33613var postorder = __webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").alg.postorder;
33614var simplify = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js").simplify;
33615
33616module.exports = networkSimplex;
33617
33618// Expose some internals for testing purposes
33619networkSimplex.initLowLimValues = initLowLimValues;
33620networkSimplex.initCutValues = initCutValues;
33621networkSimplex.calcCutValue = calcCutValue;
33622networkSimplex.leaveEdge = leaveEdge;
33623networkSimplex.enterEdge = enterEdge;
33624networkSimplex.exchangeEdges = exchangeEdges;
33625
33626/*
33627 * The network simplex algorithm assigns ranks to each node in the input graph
33628 * and iteratively improves the ranking to reduce the length of edges.
33629 *
33630 * Preconditions:
33631 *
33632 * 1. The input graph must be a DAG.
33633 * 2. All nodes in the graph must have an object value.
33634 * 3. All edges in the graph must have "minlen" and "weight" attributes.
33635 *
33636 * Postconditions:
33637 *
33638 * 1. All nodes in the graph will have an assigned "rank" attribute that has
33639 * been optimized by the network simplex algorithm. Ranks start at 0.
33640 *
33641 *
33642 * A rough sketch of the algorithm is as follows:
33643 *
33644 * 1. Assign initial ranks to each node. We use the longest path algorithm,
33645 * which assigns ranks to the lowest position possible. In general this
33646 * leads to very wide bottom ranks and unnecessarily long edges.
33647 * 2. Construct a feasible tight tree. A tight tree is one such that all
33648 * edges in the tree have no slack (difference between length of edge
33649 * and minlen for the edge). This by itself greatly improves the assigned
33650 * rankings by shorting edges.
33651 * 3. Iteratively find edges that have negative cut values. Generally a
33652 * negative cut value indicates that the edge could be removed and a new
33653 * tree edge could be added to produce a more compact graph.
33654 *
33655 * Much of the algorithms here are derived from Gansner, et al., "A Technique
33656 * for Drawing Directed Graphs." The structure of the file roughly follows the
33657 * structure of the overall algorithm.
33658 */
33659function networkSimplex(g) {
33660 g = simplify(g);
33661 initRank(g);
33662 var t = feasibleTree(g);
33663 initLowLimValues(t);
33664 initCutValues(t, g);
33665
33666 var e, f;
33667 while ((e = leaveEdge(t))) {
33668 f = enterEdge(t, g, e);
33669 exchangeEdges(t, g, e, f);
33670 }
33671}
33672
33673/*
33674 * Initializes cut values for all edges in the tree.
33675 */
33676function initCutValues(t, g) {
33677 var vs = postorder(t, t.nodes());
33678 vs = vs.slice(0, vs.length - 1);
33679 _.forEach(vs, function(v) {
33680 assignCutValue(t, g, v);
33681 });
33682}
33683
33684function assignCutValue(t, g, child) {
33685 var childLab = t.node(child);
33686 var parent = childLab.parent;
33687 t.edge(child, parent).cutvalue = calcCutValue(t, g, child);
33688}
33689
33690/*
33691 * Given the tight tree, its graph, and a child in the graph calculate and
33692 * return the cut value for the edge between the child and its parent.
33693 */
33694function calcCutValue(t, g, child) {
33695 var childLab = t.node(child);
33696 var parent = childLab.parent;
33697 // True if the child is on the tail end of the edge in the directed graph
33698 var childIsTail = true;
33699 // The graph's view of the tree edge we're inspecting
33700 var graphEdge = g.edge(child, parent);
33701 // The accumulated cut value for the edge between this node and its parent
33702 var cutValue = 0;
33703
33704 if (!graphEdge) {
33705 childIsTail = false;
33706 graphEdge = g.edge(parent, child);
33707 }
33708
33709 cutValue = graphEdge.weight;
33710
33711 _.forEach(g.nodeEdges(child), function(e) {
33712 var isOutEdge = e.v === child,
33713 other = isOutEdge ? e.w : e.v;
33714
33715 if (other !== parent) {
33716 var pointsToHead = isOutEdge === childIsTail,
33717 otherWeight = g.edge(e).weight;
33718
33719 cutValue += pointsToHead ? otherWeight : -otherWeight;
33720 if (isTreeEdge(t, child, other)) {
33721 var otherCutValue = t.edge(child, other).cutvalue;
33722 cutValue += pointsToHead ? -otherCutValue : otherCutValue;
33723 }
33724 }
33725 });
33726
33727 return cutValue;
33728}
33729
33730function initLowLimValues(tree, root) {
33731 if (arguments.length < 2) {
33732 root = tree.nodes()[0];
33733 }
33734 dfsAssignLowLim(tree, {}, 1, root);
33735}
33736
33737function dfsAssignLowLim(tree, visited, nextLim, v, parent) {
33738 var low = nextLim;
33739 var label = tree.node(v);
33740
33741 visited[v] = true;
33742 _.forEach(tree.neighbors(v), function(w) {
33743 if (!_.has(visited, w)) {
33744 nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);
33745 }
33746 });
33747
33748 label.low = low;
33749 label.lim = nextLim++;
33750 if (parent) {
33751 label.parent = parent;
33752 } else {
33753 // TODO should be able to remove this when we incrementally update low lim
33754 delete label.parent;
33755 }
33756
33757 return nextLim;
33758}
33759
33760function leaveEdge(tree) {
33761 return _.find(tree.edges(), function(e) {
33762 return tree.edge(e).cutvalue < 0;
33763 });
33764}
33765
33766function enterEdge(t, g, edge) {
33767 var v = edge.v;
33768 var w = edge.w;
33769
33770 // For the rest of this function we assume that v is the tail and w is the
33771 // head, so if we don't have this edge in the graph we should flip it to
33772 // match the correct orientation.
33773 if (!g.hasEdge(v, w)) {
33774 v = edge.w;
33775 w = edge.v;
33776 }
33777
33778 var vLabel = t.node(v);
33779 var wLabel = t.node(w);
33780 var tailLabel = vLabel;
33781 var flip = false;
33782
33783 // If the root is in the tail of the edge then we need to flip the logic that
33784 // checks for the head and tail nodes in the candidates function below.
33785 if (vLabel.lim > wLabel.lim) {
33786 tailLabel = wLabel;
33787 flip = true;
33788 }
33789
33790 var candidates = _.filter(g.edges(), function(edge) {
33791 return flip === isDescendant(t, t.node(edge.v), tailLabel) &&
33792 flip !== isDescendant(t, t.node(edge.w), tailLabel);
33793 });
33794
33795 return _.minBy(candidates, function(edge) { return slack(g, edge); });
33796}
33797
33798function exchangeEdges(t, g, e, f) {
33799 var v = e.v;
33800 var w = e.w;
33801 t.removeEdge(v, w);
33802 t.setEdge(f.v, f.w, {});
33803 initLowLimValues(t);
33804 initCutValues(t, g);
33805 updateRanks(t, g);
33806}
33807
33808function updateRanks(t, g) {
33809 var root = _.find(t.nodes(), function(v) { return !g.node(v).parent; });
33810 var vs = preorder(t, root);
33811 vs = vs.slice(1);
33812 _.forEach(vs, function(v) {
33813 var parent = t.node(v).parent,
33814 edge = g.edge(v, parent),
33815 flipped = false;
33816
33817 if (!edge) {
33818 edge = g.edge(parent, v);
33819 flipped = true;
33820 }
33821
33822 g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);
33823 });
33824}
33825
33826/*
33827 * Returns true if the edge is in the tree.
33828 */
33829function isTreeEdge(tree, u, v) {
33830 return tree.hasEdge(u, v);
33831}
33832
33833/*
33834 * Returns true if the specified node is descendant of the root node per the
33835 * assigned low and lim attributes in the tree.
33836 */
33837function isDescendant(tree, vLabel, rootLabel) {
33838 return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;
33839}
33840
33841
33842/***/ }),
33843
33844/***/ "./node_modules/dagre/lib/rank/util.js":
33845/*!*********************************************!*\
33846 !*** ./node_modules/dagre/lib/rank/util.js ***!
33847 \*********************************************/
33848/*! no static exports found */
33849/***/ (function(module, exports, __webpack_require__) {
33850
33851"use strict";
33852
33853
33854var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
33855
33856module.exports = {
33857 longestPath: longestPath,
33858 slack: slack
33859};
33860
33861/*
33862 * Initializes ranks for the input graph using the longest path algorithm. This
33863 * algorithm scales well and is fast in practice, it yields rather poor
33864 * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom
33865 * ranks wide and leaving edges longer than necessary. However, due to its
33866 * speed, this algorithm is good for getting an initial ranking that can be fed
33867 * into other algorithms.
33868 *
33869 * This algorithm does not normalize layers because it will be used by other
33870 * algorithms in most cases. If using this algorithm directly, be sure to
33871 * run normalize at the end.
33872 *
33873 * Pre-conditions:
33874 *
33875 * 1. Input graph is a DAG.
33876 * 2. Input graph node labels can be assigned properties.
33877 *
33878 * Post-conditions:
33879 *
33880 * 1. Each node will be assign an (unnormalized) "rank" property.
33881 */
33882function longestPath(g) {
33883 var visited = {};
33884
33885 function dfs(v) {
33886 var label = g.node(v);
33887 if (_.has(visited, v)) {
33888 return label.rank;
33889 }
33890 visited[v] = true;
33891
33892 var rank = _.min(_.map(g.outEdges(v), function(e) {
33893 return dfs(e.w) - g.edge(e).minlen;
33894 }));
33895
33896 if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
33897 rank === undefined || // return value of _.map([]) for Lodash 4
33898 rank === null) { // return value of _.map([null])
33899 rank = 0;
33900 }
33901
33902 return (label.rank = rank);
33903 }
33904
33905 _.forEach(g.sources(), dfs);
33906}
33907
33908/*
33909 * Returns the amount of slack for the given edge. The slack is defined as the
33910 * difference between the length of the edge and its minimum length.
33911 */
33912function slack(g, e) {
33913 return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;
33914}
33915
33916
33917/***/ }),
33918
33919/***/ "./node_modules/dagre/lib/util.js":
33920/*!****************************************!*\
33921 !*** ./node_modules/dagre/lib/util.js ***!
33922 \****************************************/
33923/*! no static exports found */
33924/***/ (function(module, exports, __webpack_require__) {
33925
33926"use strict";
33927/* eslint "no-console": off */
33928
33929
33930
33931var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
33932var Graph = __webpack_require__(/*! ./graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph;
33933
33934module.exports = {
33935 addDummyNode: addDummyNode,
33936 simplify: simplify,
33937 asNonCompoundGraph: asNonCompoundGraph,
33938 successorWeights: successorWeights,
33939 predecessorWeights: predecessorWeights,
33940 intersectRect: intersectRect,
33941 buildLayerMatrix: buildLayerMatrix,
33942 normalizeRanks: normalizeRanks,
33943 removeEmptyRanks: removeEmptyRanks,
33944 addBorderNode: addBorderNode,
33945 maxRank: maxRank,
33946 partition: partition,
33947 time: time,
33948 notime: notime
33949};
33950
33951/*
33952 * Adds a dummy node to the graph and return v.
33953 */
33954function addDummyNode(g, type, attrs, name) {
33955 var v;
33956 do {
33957 v = _.uniqueId(name);
33958 } while (g.hasNode(v));
33959
33960 attrs.dummy = type;
33961 g.setNode(v, attrs);
33962 return v;
33963}
33964
33965/*
33966 * Returns a new graph with only simple edges. Handles aggregation of data
33967 * associated with multi-edges.
33968 */
33969function simplify(g) {
33970 var simplified = new Graph().setGraph(g.graph());
33971 _.forEach(g.nodes(), function(v) { simplified.setNode(v, g.node(v)); });
33972 _.forEach(g.edges(), function(e) {
33973 var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };
33974 var label = g.edge(e);
33975 simplified.setEdge(e.v, e.w, {
33976 weight: simpleLabel.weight + label.weight,
33977 minlen: Math.max(simpleLabel.minlen, label.minlen)
33978 });
33979 });
33980 return simplified;
33981}
33982
33983function asNonCompoundGraph(g) {
33984 var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());
33985 _.forEach(g.nodes(), function(v) {
33986 if (!g.children(v).length) {
33987 simplified.setNode(v, g.node(v));
33988 }
33989 });
33990 _.forEach(g.edges(), function(e) {
33991 simplified.setEdge(e, g.edge(e));
33992 });
33993 return simplified;
33994}
33995
33996function successorWeights(g) {
33997 var weightMap = _.map(g.nodes(), function(v) {
33998 var sucs = {};
33999 _.forEach(g.outEdges(v), function(e) {
34000 sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;
34001 });
34002 return sucs;
34003 });
34004 return _.zipObject(g.nodes(), weightMap);
34005}
34006
34007function predecessorWeights(g) {
34008 var weightMap = _.map(g.nodes(), function(v) {
34009 var preds = {};
34010 _.forEach(g.inEdges(v), function(e) {
34011 preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;
34012 });
34013 return preds;
34014 });
34015 return _.zipObject(g.nodes(), weightMap);
34016}
34017
34018/*
34019 * Finds where a line starting at point ({x, y}) would intersect a rectangle
34020 * ({x, y, width, height}) if it were pointing at the rectangle's center.
34021 */
34022function intersectRect(rect, point) {
34023 var x = rect.x;
34024 var y = rect.y;
34025
34026 // Rectangle intersection algorithm from:
34027 // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
34028 var dx = point.x - x;
34029 var dy = point.y - y;
34030 var w = rect.width / 2;
34031 var h = rect.height / 2;
34032
34033 if (!dx && !dy) {
34034 throw new Error("Not possible to find intersection inside of the rectangle");
34035 }
34036
34037 var sx, sy;
34038 if (Math.abs(dy) * w > Math.abs(dx) * h) {
34039 // Intersection is top or bottom of rect.
34040 if (dy < 0) {
34041 h = -h;
34042 }
34043 sx = h * dx / dy;
34044 sy = h;
34045 } else {
34046 // Intersection is left or right of rect.
34047 if (dx < 0) {
34048 w = -w;
34049 }
34050 sx = w;
34051 sy = w * dy / dx;
34052 }
34053
34054 return { x: x + sx, y: y + sy };
34055}
34056
34057/*
34058 * Given a DAG with each node assigned "rank" and "order" properties, this
34059 * function will produce a matrix with the ids of each node.
34060 */
34061function buildLayerMatrix(g) {
34062 var layering = _.map(_.range(maxRank(g) + 1), function() { return []; });
34063 _.forEach(g.nodes(), function(v) {
34064 var node = g.node(v);
34065 var rank = node.rank;
34066 if (!_.isUndefined(rank)) {
34067 layering[rank][node.order] = v;
34068 }
34069 });
34070 return layering;
34071}
34072
34073/*
34074 * Adjusts the ranks for all nodes in the graph such that all nodes v have
34075 * rank(v) >= 0 and at least one node w has rank(w) = 0.
34076 */
34077function normalizeRanks(g) {
34078 var min = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));
34079 _.forEach(g.nodes(), function(v) {
34080 var node = g.node(v);
34081 if (_.has(node, "rank")) {
34082 node.rank -= min;
34083 }
34084 });
34085}
34086
34087function removeEmptyRanks(g) {
34088 // Ranks may not start at 0, so we need to offset them
34089 var offset = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));
34090
34091 var layers = [];
34092 _.forEach(g.nodes(), function(v) {
34093 var rank = g.node(v).rank - offset;
34094 if (!layers[rank]) {
34095 layers[rank] = [];
34096 }
34097 layers[rank].push(v);
34098 });
34099
34100 var delta = 0;
34101 var nodeRankFactor = g.graph().nodeRankFactor;
34102 _.forEach(layers, function(vs, i) {
34103 if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {
34104 --delta;
34105 } else if (delta) {
34106 _.forEach(vs, function(v) { g.node(v).rank += delta; });
34107 }
34108 });
34109}
34110
34111function addBorderNode(g, prefix, rank, order) {
34112 var node = {
34113 width: 0,
34114 height: 0
34115 };
34116 if (arguments.length >= 4) {
34117 node.rank = rank;
34118 node.order = order;
34119 }
34120 return addDummyNode(g, "border", node, prefix);
34121}
34122
34123function maxRank(g) {
34124 return _.max(_.map(g.nodes(), function(v) {
34125 var rank = g.node(v).rank;
34126 if (!_.isUndefined(rank)) {
34127 return rank;
34128 }
34129 }));
34130}
34131
34132/*
34133 * Partition a collection into two groups: `lhs` and `rhs`. If the supplied
34134 * function returns true for an entry it goes into `lhs`. Otherwise it goes
34135 * into `rhs.
34136 */
34137function partition(collection, fn) {
34138 var result = { lhs: [], rhs: [] };
34139 _.forEach(collection, function(value) {
34140 if (fn(value)) {
34141 result.lhs.push(value);
34142 } else {
34143 result.rhs.push(value);
34144 }
34145 });
34146 return result;
34147}
34148
34149/*
34150 * Returns a new function that wraps `fn` with a timer. The wrapper logs the
34151 * time it takes to execute the function.
34152 */
34153function time(name, fn) {
34154 var start = _.now();
34155 try {
34156 return fn();
34157 } finally {
34158 console.log(name + " time: " + (_.now() - start) + "ms");
34159 }
34160}
34161
34162function notime(name, fn) {
34163 return fn();
34164}
34165
34166
34167/***/ }),
34168
34169/***/ "./node_modules/dagre/lib/version.js":
34170/*!*******************************************!*\
34171 !*** ./node_modules/dagre/lib/version.js ***!
34172 \*******************************************/
34173/*! no static exports found */
34174/***/ (function(module, exports) {
34175
34176module.exports = "0.8.5";
34177
34178
34179/***/ }),
34180
34181/***/ "./node_modules/entity-decode/browser.js":
34182/*!***********************************************!*\
34183 !*** ./node_modules/entity-decode/browser.js ***!
34184 \***********************************************/
34185/*! exports provided: default */
34186/***/ (function(module, __webpack_exports__, __webpack_require__) {
34187
34188"use strict";
34189__webpack_require__.r(__webpack_exports__);
34190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return decode; });
34191/**
34192 * @see https://github.com/vuejs/vue/commit/a855dd0564a657a73b7249469490d39817f27cf7#diff-c0a2623ea5896a83e3b630f236b47b52
34193 * @see https://stackoverflow.com/a/13091266/4936667
34194 */
34195
34196var decoder;
34197
34198function decode(html) {
34199 decoder = decoder || document.createElement('div');
34200 // Escape HTML before decoding for HTML Entities
34201 html = escape(html).replace(/%26/g,'&').replace(/%23/g,'#').replace(/%3B/g,';');
34202 // decoding
34203 decoder.innerHTML = html;
34204
34205 return unescape(decoder.textContent);
34206}
34207
34208
34209/***/ }),
34210
34211/***/ "./node_modules/graphlib/index.js":
34212/*!****************************************!*\
34213 !*** ./node_modules/graphlib/index.js ***!
34214 \****************************************/
34215/*! no static exports found */
34216/***/ (function(module, exports, __webpack_require__) {
34217
34218/**
34219 * Copyright (c) 2014, Chris Pettitt
34220 * All rights reserved.
34221 *
34222 * Redistribution and use in source and binary forms, with or without
34223 * modification, are permitted provided that the following conditions are met:
34224 *
34225 * 1. Redistributions of source code must retain the above copyright notice, this
34226 * list of conditions and the following disclaimer.
34227 *
34228 * 2. Redistributions in binary form must reproduce the above copyright notice,
34229 * this list of conditions and the following disclaimer in the documentation
34230 * and/or other materials provided with the distribution.
34231 *
34232 * 3. Neither the name of the copyright holder nor the names of its contributors
34233 * may be used to endorse or promote products derived from this software without
34234 * specific prior written permission.
34235 *
34236 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
34237 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
34238 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
34239 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
34240 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34241 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
34242 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34243 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
34244 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34245 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34246 */
34247
34248var lib = __webpack_require__(/*! ./lib */ "./node_modules/graphlib/lib/index.js");
34249
34250module.exports = {
34251 Graph: lib.Graph,
34252 json: __webpack_require__(/*! ./lib/json */ "./node_modules/graphlib/lib/json.js"),
34253 alg: __webpack_require__(/*! ./lib/alg */ "./node_modules/graphlib/lib/alg/index.js"),
34254 version: lib.version
34255};
34256
34257
34258/***/ }),
34259
34260/***/ "./node_modules/graphlib/lib/alg/components.js":
34261/*!*****************************************************!*\
34262 !*** ./node_modules/graphlib/lib/alg/components.js ***!
34263 \*****************************************************/
34264/*! no static exports found */
34265/***/ (function(module, exports, __webpack_require__) {
34266
34267var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34268
34269module.exports = components;
34270
34271function components(g) {
34272 var visited = {};
34273 var cmpts = [];
34274 var cmpt;
34275
34276 function dfs(v) {
34277 if (_.has(visited, v)) return;
34278 visited[v] = true;
34279 cmpt.push(v);
34280 _.each(g.successors(v), dfs);
34281 _.each(g.predecessors(v), dfs);
34282 }
34283
34284 _.each(g.nodes(), function(v) {
34285 cmpt = [];
34286 dfs(v);
34287 if (cmpt.length) {
34288 cmpts.push(cmpt);
34289 }
34290 });
34291
34292 return cmpts;
34293}
34294
34295
34296/***/ }),
34297
34298/***/ "./node_modules/graphlib/lib/alg/dfs.js":
34299/*!**********************************************!*\
34300 !*** ./node_modules/graphlib/lib/alg/dfs.js ***!
34301 \**********************************************/
34302/*! no static exports found */
34303/***/ (function(module, exports, __webpack_require__) {
34304
34305var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34306
34307module.exports = dfs;
34308
34309/*
34310 * A helper that preforms a pre- or post-order traversal on the input graph
34311 * and returns the nodes in the order they were visited. If the graph is
34312 * undirected then this algorithm will navigate using neighbors. If the graph
34313 * is directed then this algorithm will navigate using successors.
34314 *
34315 * Order must be one of "pre" or "post".
34316 */
34317function dfs(g, vs, order) {
34318 if (!_.isArray(vs)) {
34319 vs = [vs];
34320 }
34321
34322 var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);
34323
34324 var acc = [];
34325 var visited = {};
34326 _.each(vs, function(v) {
34327 if (!g.hasNode(v)) {
34328 throw new Error("Graph does not have node: " + v);
34329 }
34330
34331 doDfs(g, v, order === "post", visited, navigation, acc);
34332 });
34333 return acc;
34334}
34335
34336function doDfs(g, v, postorder, visited, navigation, acc) {
34337 if (!_.has(visited, v)) {
34338 visited[v] = true;
34339
34340 if (!postorder) { acc.push(v); }
34341 _.each(navigation(v), function(w) {
34342 doDfs(g, w, postorder, visited, navigation, acc);
34343 });
34344 if (postorder) { acc.push(v); }
34345 }
34346}
34347
34348
34349/***/ }),
34350
34351/***/ "./node_modules/graphlib/lib/alg/dijkstra-all.js":
34352/*!*******************************************************!*\
34353 !*** ./node_modules/graphlib/lib/alg/dijkstra-all.js ***!
34354 \*******************************************************/
34355/*! no static exports found */
34356/***/ (function(module, exports, __webpack_require__) {
34357
34358var dijkstra = __webpack_require__(/*! ./dijkstra */ "./node_modules/graphlib/lib/alg/dijkstra.js");
34359var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34360
34361module.exports = dijkstraAll;
34362
34363function dijkstraAll(g, weightFunc, edgeFunc) {
34364 return _.transform(g.nodes(), function(acc, v) {
34365 acc[v] = dijkstra(g, v, weightFunc, edgeFunc);
34366 }, {});
34367}
34368
34369
34370/***/ }),
34371
34372/***/ "./node_modules/graphlib/lib/alg/dijkstra.js":
34373/*!***************************************************!*\
34374 !*** ./node_modules/graphlib/lib/alg/dijkstra.js ***!
34375 \***************************************************/
34376/*! no static exports found */
34377/***/ (function(module, exports, __webpack_require__) {
34378
34379var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34380var PriorityQueue = __webpack_require__(/*! ../data/priority-queue */ "./node_modules/graphlib/lib/data/priority-queue.js");
34381
34382module.exports = dijkstra;
34383
34384var DEFAULT_WEIGHT_FUNC = _.constant(1);
34385
34386function dijkstra(g, source, weightFn, edgeFn) {
34387 return runDijkstra(g, String(source),
34388 weightFn || DEFAULT_WEIGHT_FUNC,
34389 edgeFn || function(v) { return g.outEdges(v); });
34390}
34391
34392function runDijkstra(g, source, weightFn, edgeFn) {
34393 var results = {};
34394 var pq = new PriorityQueue();
34395 var v, vEntry;
34396
34397 var updateNeighbors = function(edge) {
34398 var w = edge.v !== v ? edge.v : edge.w;
34399 var wEntry = results[w];
34400 var weight = weightFn(edge);
34401 var distance = vEntry.distance + weight;
34402
34403 if (weight < 0) {
34404 throw new Error("dijkstra does not allow negative edge weights. " +
34405 "Bad edge: " + edge + " Weight: " + weight);
34406 }
34407
34408 if (distance < wEntry.distance) {
34409 wEntry.distance = distance;
34410 wEntry.predecessor = v;
34411 pq.decrease(w, distance);
34412 }
34413 };
34414
34415 g.nodes().forEach(function(v) {
34416 var distance = v === source ? 0 : Number.POSITIVE_INFINITY;
34417 results[v] = { distance: distance };
34418 pq.add(v, distance);
34419 });
34420
34421 while (pq.size() > 0) {
34422 v = pq.removeMin();
34423 vEntry = results[v];
34424 if (vEntry.distance === Number.POSITIVE_INFINITY) {
34425 break;
34426 }
34427
34428 edgeFn(v).forEach(updateNeighbors);
34429 }
34430
34431 return results;
34432}
34433
34434
34435/***/ }),
34436
34437/***/ "./node_modules/graphlib/lib/alg/find-cycles.js":
34438/*!******************************************************!*\
34439 !*** ./node_modules/graphlib/lib/alg/find-cycles.js ***!
34440 \******************************************************/
34441/*! no static exports found */
34442/***/ (function(module, exports, __webpack_require__) {
34443
34444var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34445var tarjan = __webpack_require__(/*! ./tarjan */ "./node_modules/graphlib/lib/alg/tarjan.js");
34446
34447module.exports = findCycles;
34448
34449function findCycles(g) {
34450 return _.filter(tarjan(g), function(cmpt) {
34451 return cmpt.length > 1 || (cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]));
34452 });
34453}
34454
34455
34456/***/ }),
34457
34458/***/ "./node_modules/graphlib/lib/alg/floyd-warshall.js":
34459/*!*********************************************************!*\
34460 !*** ./node_modules/graphlib/lib/alg/floyd-warshall.js ***!
34461 \*********************************************************/
34462/*! no static exports found */
34463/***/ (function(module, exports, __webpack_require__) {
34464
34465var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34466
34467module.exports = floydWarshall;
34468
34469var DEFAULT_WEIGHT_FUNC = _.constant(1);
34470
34471function floydWarshall(g, weightFn, edgeFn) {
34472 return runFloydWarshall(g,
34473 weightFn || DEFAULT_WEIGHT_FUNC,
34474 edgeFn || function(v) { return g.outEdges(v); });
34475}
34476
34477function runFloydWarshall(g, weightFn, edgeFn) {
34478 var results = {};
34479 var nodes = g.nodes();
34480
34481 nodes.forEach(function(v) {
34482 results[v] = {};
34483 results[v][v] = { distance: 0 };
34484 nodes.forEach(function(w) {
34485 if (v !== w) {
34486 results[v][w] = { distance: Number.POSITIVE_INFINITY };
34487 }
34488 });
34489 edgeFn(v).forEach(function(edge) {
34490 var w = edge.v === v ? edge.w : edge.v;
34491 var d = weightFn(edge);
34492 results[v][w] = { distance: d, predecessor: v };
34493 });
34494 });
34495
34496 nodes.forEach(function(k) {
34497 var rowK = results[k];
34498 nodes.forEach(function(i) {
34499 var rowI = results[i];
34500 nodes.forEach(function(j) {
34501 var ik = rowI[k];
34502 var kj = rowK[j];
34503 var ij = rowI[j];
34504 var altDistance = ik.distance + kj.distance;
34505 if (altDistance < ij.distance) {
34506 ij.distance = altDistance;
34507 ij.predecessor = kj.predecessor;
34508 }
34509 });
34510 });
34511 });
34512
34513 return results;
34514}
34515
34516
34517/***/ }),
34518
34519/***/ "./node_modules/graphlib/lib/alg/index.js":
34520/*!************************************************!*\
34521 !*** ./node_modules/graphlib/lib/alg/index.js ***!
34522 \************************************************/
34523/*! no static exports found */
34524/***/ (function(module, exports, __webpack_require__) {
34525
34526module.exports = {
34527 components: __webpack_require__(/*! ./components */ "./node_modules/graphlib/lib/alg/components.js"),
34528 dijkstra: __webpack_require__(/*! ./dijkstra */ "./node_modules/graphlib/lib/alg/dijkstra.js"),
34529 dijkstraAll: __webpack_require__(/*! ./dijkstra-all */ "./node_modules/graphlib/lib/alg/dijkstra-all.js"),
34530 findCycles: __webpack_require__(/*! ./find-cycles */ "./node_modules/graphlib/lib/alg/find-cycles.js"),
34531 floydWarshall: __webpack_require__(/*! ./floyd-warshall */ "./node_modules/graphlib/lib/alg/floyd-warshall.js"),
34532 isAcyclic: __webpack_require__(/*! ./is-acyclic */ "./node_modules/graphlib/lib/alg/is-acyclic.js"),
34533 postorder: __webpack_require__(/*! ./postorder */ "./node_modules/graphlib/lib/alg/postorder.js"),
34534 preorder: __webpack_require__(/*! ./preorder */ "./node_modules/graphlib/lib/alg/preorder.js"),
34535 prim: __webpack_require__(/*! ./prim */ "./node_modules/graphlib/lib/alg/prim.js"),
34536 tarjan: __webpack_require__(/*! ./tarjan */ "./node_modules/graphlib/lib/alg/tarjan.js"),
34537 topsort: __webpack_require__(/*! ./topsort */ "./node_modules/graphlib/lib/alg/topsort.js")
34538};
34539
34540
34541/***/ }),
34542
34543/***/ "./node_modules/graphlib/lib/alg/is-acyclic.js":
34544/*!*****************************************************!*\
34545 !*** ./node_modules/graphlib/lib/alg/is-acyclic.js ***!
34546 \*****************************************************/
34547/*! no static exports found */
34548/***/ (function(module, exports, __webpack_require__) {
34549
34550var topsort = __webpack_require__(/*! ./topsort */ "./node_modules/graphlib/lib/alg/topsort.js");
34551
34552module.exports = isAcyclic;
34553
34554function isAcyclic(g) {
34555 try {
34556 topsort(g);
34557 } catch (e) {
34558 if (e instanceof topsort.CycleException) {
34559 return false;
34560 }
34561 throw e;
34562 }
34563 return true;
34564}
34565
34566
34567/***/ }),
34568
34569/***/ "./node_modules/graphlib/lib/alg/postorder.js":
34570/*!****************************************************!*\
34571 !*** ./node_modules/graphlib/lib/alg/postorder.js ***!
34572 \****************************************************/
34573/*! no static exports found */
34574/***/ (function(module, exports, __webpack_require__) {
34575
34576var dfs = __webpack_require__(/*! ./dfs */ "./node_modules/graphlib/lib/alg/dfs.js");
34577
34578module.exports = postorder;
34579
34580function postorder(g, vs) {
34581 return dfs(g, vs, "post");
34582}
34583
34584
34585/***/ }),
34586
34587/***/ "./node_modules/graphlib/lib/alg/preorder.js":
34588/*!***************************************************!*\
34589 !*** ./node_modules/graphlib/lib/alg/preorder.js ***!
34590 \***************************************************/
34591/*! no static exports found */
34592/***/ (function(module, exports, __webpack_require__) {
34593
34594var dfs = __webpack_require__(/*! ./dfs */ "./node_modules/graphlib/lib/alg/dfs.js");
34595
34596module.exports = preorder;
34597
34598function preorder(g, vs) {
34599 return dfs(g, vs, "pre");
34600}
34601
34602
34603/***/ }),
34604
34605/***/ "./node_modules/graphlib/lib/alg/prim.js":
34606/*!***********************************************!*\
34607 !*** ./node_modules/graphlib/lib/alg/prim.js ***!
34608 \***********************************************/
34609/*! no static exports found */
34610/***/ (function(module, exports, __webpack_require__) {
34611
34612var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34613var Graph = __webpack_require__(/*! ../graph */ "./node_modules/graphlib/lib/graph.js");
34614var PriorityQueue = __webpack_require__(/*! ../data/priority-queue */ "./node_modules/graphlib/lib/data/priority-queue.js");
34615
34616module.exports = prim;
34617
34618function prim(g, weightFunc) {
34619 var result = new Graph();
34620 var parents = {};
34621 var pq = new PriorityQueue();
34622 var v;
34623
34624 function updateNeighbors(edge) {
34625 var w = edge.v === v ? edge.w : edge.v;
34626 var pri = pq.priority(w);
34627 if (pri !== undefined) {
34628 var edgeWeight = weightFunc(edge);
34629 if (edgeWeight < pri) {
34630 parents[w] = v;
34631 pq.decrease(w, edgeWeight);
34632 }
34633 }
34634 }
34635
34636 if (g.nodeCount() === 0) {
34637 return result;
34638 }
34639
34640 _.each(g.nodes(), function(v) {
34641 pq.add(v, Number.POSITIVE_INFINITY);
34642 result.setNode(v);
34643 });
34644
34645 // Start from an arbitrary node
34646 pq.decrease(g.nodes()[0], 0);
34647
34648 var init = false;
34649 while (pq.size() > 0) {
34650 v = pq.removeMin();
34651 if (_.has(parents, v)) {
34652 result.setEdge(v, parents[v]);
34653 } else if (init) {
34654 throw new Error("Input graph is not connected: " + g);
34655 } else {
34656 init = true;
34657 }
34658
34659 g.nodeEdges(v).forEach(updateNeighbors);
34660 }
34661
34662 return result;
34663}
34664
34665
34666/***/ }),
34667
34668/***/ "./node_modules/graphlib/lib/alg/tarjan.js":
34669/*!*************************************************!*\
34670 !*** ./node_modules/graphlib/lib/alg/tarjan.js ***!
34671 \*************************************************/
34672/*! no static exports found */
34673/***/ (function(module, exports, __webpack_require__) {
34674
34675var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34676
34677module.exports = tarjan;
34678
34679function tarjan(g) {
34680 var index = 0;
34681 var stack = [];
34682 var visited = {}; // node id -> { onStack, lowlink, index }
34683 var results = [];
34684
34685 function dfs(v) {
34686 var entry = visited[v] = {
34687 onStack: true,
34688 lowlink: index,
34689 index: index++
34690 };
34691 stack.push(v);
34692
34693 g.successors(v).forEach(function(w) {
34694 if (!_.has(visited, w)) {
34695 dfs(w);
34696 entry.lowlink = Math.min(entry.lowlink, visited[w].lowlink);
34697 } else if (visited[w].onStack) {
34698 entry.lowlink = Math.min(entry.lowlink, visited[w].index);
34699 }
34700 });
34701
34702 if (entry.lowlink === entry.index) {
34703 var cmpt = [];
34704 var w;
34705 do {
34706 w = stack.pop();
34707 visited[w].onStack = false;
34708 cmpt.push(w);
34709 } while (v !== w);
34710 results.push(cmpt);
34711 }
34712 }
34713
34714 g.nodes().forEach(function(v) {
34715 if (!_.has(visited, v)) {
34716 dfs(v);
34717 }
34718 });
34719
34720 return results;
34721}
34722
34723
34724/***/ }),
34725
34726/***/ "./node_modules/graphlib/lib/alg/topsort.js":
34727/*!**************************************************!*\
34728 !*** ./node_modules/graphlib/lib/alg/topsort.js ***!
34729 \**************************************************/
34730/*! no static exports found */
34731/***/ (function(module, exports, __webpack_require__) {
34732
34733var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34734
34735module.exports = topsort;
34736topsort.CycleException = CycleException;
34737
34738function topsort(g) {
34739 var visited = {};
34740 var stack = {};
34741 var results = [];
34742
34743 function visit(node) {
34744 if (_.has(stack, node)) {
34745 throw new CycleException();
34746 }
34747
34748 if (!_.has(visited, node)) {
34749 stack[node] = true;
34750 visited[node] = true;
34751 _.each(g.predecessors(node), visit);
34752 delete stack[node];
34753 results.push(node);
34754 }
34755 }
34756
34757 _.each(g.sinks(), visit);
34758
34759 if (_.size(visited) !== g.nodeCount()) {
34760 throw new CycleException();
34761 }
34762
34763 return results;
34764}
34765
34766function CycleException() {}
34767CycleException.prototype = new Error(); // must be an instance of Error to pass testing
34768
34769/***/ }),
34770
34771/***/ "./node_modules/graphlib/lib/data/priority-queue.js":
34772/*!**********************************************************!*\
34773 !*** ./node_modules/graphlib/lib/data/priority-queue.js ***!
34774 \**********************************************************/
34775/*! no static exports found */
34776/***/ (function(module, exports, __webpack_require__) {
34777
34778var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
34779
34780module.exports = PriorityQueue;
34781
34782/**
34783 * A min-priority queue data structure. This algorithm is derived from Cormen,
34784 * et al., "Introduction to Algorithms". The basic idea of a min-priority
34785 * queue is that you can efficiently (in O(1) time) get the smallest key in
34786 * the queue. Adding and removing elements takes O(log n) time. A key can
34787 * have its priority decreased in O(log n) time.
34788 */
34789function PriorityQueue() {
34790 this._arr = [];
34791 this._keyIndices = {};
34792}
34793
34794/**
34795 * Returns the number of elements in the queue. Takes `O(1)` time.
34796 */
34797PriorityQueue.prototype.size = function() {
34798 return this._arr.length;
34799};
34800
34801/**
34802 * Returns the keys that are in the queue. Takes `O(n)` time.
34803 */
34804PriorityQueue.prototype.keys = function() {
34805 return this._arr.map(function(x) { return x.key; });
34806};
34807
34808/**
34809 * Returns `true` if **key** is in the queue and `false` if not.
34810 */
34811PriorityQueue.prototype.has = function(key) {
34812 return _.has(this._keyIndices, key);
34813};
34814
34815/**
34816 * Returns the priority for **key**. If **key** is not present in the queue
34817 * then this function returns `undefined`. Takes `O(1)` time.
34818 *
34819 * @param {Object} key
34820 */
34821PriorityQueue.prototype.priority = function(key) {
34822 var index = this._keyIndices[key];
34823 if (index !== undefined) {
34824 return this._arr[index].priority;
34825 }
34826};
34827
34828/**
34829 * Returns the key for the minimum element in this queue. If the queue is
34830 * empty this function throws an Error. Takes `O(1)` time.
34831 */
34832PriorityQueue.prototype.min = function() {
34833 if (this.size() === 0) {
34834 throw new Error("Queue underflow");
34835 }
34836 return this._arr[0].key;
34837};
34838
34839/**
34840 * Inserts a new key into the priority queue. If the key already exists in
34841 * the queue this function returns `false`; otherwise it will return `true`.
34842 * Takes `O(n)` time.
34843 *
34844 * @param {Object} key the key to add
34845 * @param {Number} priority the initial priority for the key
34846 */
34847PriorityQueue.prototype.add = function(key, priority) {
34848 var keyIndices = this._keyIndices;
34849 key = String(key);
34850 if (!_.has(keyIndices, key)) {
34851 var arr = this._arr;
34852 var index = arr.length;
34853 keyIndices[key] = index;
34854 arr.push({key: key, priority: priority});
34855 this._decrease(index);
34856 return true;
34857 }
34858 return false;
34859};
34860
34861/**
34862 * Removes and returns the smallest key in the queue. Takes `O(log n)` time.
34863 */
34864PriorityQueue.prototype.removeMin = function() {
34865 this._swap(0, this._arr.length - 1);
34866 var min = this._arr.pop();
34867 delete this._keyIndices[min.key];
34868 this._heapify(0);
34869 return min.key;
34870};
34871
34872/**
34873 * Decreases the priority for **key** to **priority**. If the new priority is
34874 * greater than the previous priority, this function will throw an Error.
34875 *
34876 * @param {Object} key the key for which to raise priority
34877 * @param {Number} priority the new priority for the key
34878 */
34879PriorityQueue.prototype.decrease = function(key, priority) {
34880 var index = this._keyIndices[key];
34881 if (priority > this._arr[index].priority) {
34882 throw new Error("New priority is greater than current priority. " +
34883 "Key: " + key + " Old: " + this._arr[index].priority + " New: " + priority);
34884 }
34885 this._arr[index].priority = priority;
34886 this._decrease(index);
34887};
34888
34889PriorityQueue.prototype._heapify = function(i) {
34890 var arr = this._arr;
34891 var l = 2 * i;
34892 var r = l + 1;
34893 var largest = i;
34894 if (l < arr.length) {
34895 largest = arr[l].priority < arr[largest].priority ? l : largest;
34896 if (r < arr.length) {
34897 largest = arr[r].priority < arr[largest].priority ? r : largest;
34898 }
34899 if (largest !== i) {
34900 this._swap(i, largest);
34901 this._heapify(largest);
34902 }
34903 }
34904};
34905
34906PriorityQueue.prototype._decrease = function(index) {
34907 var arr = this._arr;
34908 var priority = arr[index].priority;
34909 var parent;
34910 while (index !== 0) {
34911 parent = index >> 1;
34912 if (arr[parent].priority < priority) {
34913 break;
34914 }
34915 this._swap(index, parent);
34916 index = parent;
34917 }
34918};
34919
34920PriorityQueue.prototype._swap = function(i, j) {
34921 var arr = this._arr;
34922 var keyIndices = this._keyIndices;
34923 var origArrI = arr[i];
34924 var origArrJ = arr[j];
34925 arr[i] = origArrJ;
34926 arr[j] = origArrI;
34927 keyIndices[origArrJ.key] = i;
34928 keyIndices[origArrI.key] = j;
34929};
34930
34931
34932/***/ }),
34933
34934/***/ "./node_modules/graphlib/lib/graph.js":
34935/*!********************************************!*\
34936 !*** ./node_modules/graphlib/lib/graph.js ***!
34937 \********************************************/
34938/*! no static exports found */
34939/***/ (function(module, exports, __webpack_require__) {
34940
34941"use strict";
34942
34943
34944var _ = __webpack_require__(/*! ./lodash */ "./node_modules/graphlib/lib/lodash.js");
34945
34946module.exports = Graph;
34947
34948var DEFAULT_EDGE_NAME = "\x00";
34949var GRAPH_NODE = "\x00";
34950var EDGE_KEY_DELIM = "\x01";
34951
34952// Implementation notes:
34953//
34954// * Node id query functions should return string ids for the nodes
34955// * Edge id query functions should return an "edgeObj", edge object, that is
34956// composed of enough information to uniquely identify an edge: {v, w, name}.
34957// * Internally we use an "edgeId", a stringified form of the edgeObj, to
34958// reference edges. This is because we need a performant way to look these
34959// edges up and, object properties, which have string keys, are the closest
34960// we're going to get to a performant hashtable in JavaScript.
34961
34962function Graph(opts) {
34963 this._isDirected = _.has(opts, "directed") ? opts.directed : true;
34964 this._isMultigraph = _.has(opts, "multigraph") ? opts.multigraph : false;
34965 this._isCompound = _.has(opts, "compound") ? opts.compound : false;
34966
34967 // Label for the graph itself
34968 this._label = undefined;
34969
34970 // Defaults to be set when creating a new node
34971 this._defaultNodeLabelFn = _.constant(undefined);
34972
34973 // Defaults to be set when creating a new edge
34974 this._defaultEdgeLabelFn = _.constant(undefined);
34975
34976 // v -> label
34977 this._nodes = {};
34978
34979 if (this._isCompound) {
34980 // v -> parent
34981 this._parent = {};
34982
34983 // v -> children
34984 this._children = {};
34985 this._children[GRAPH_NODE] = {};
34986 }
34987
34988 // v -> edgeObj
34989 this._in = {};
34990
34991 // u -> v -> Number
34992 this._preds = {};
34993
34994 // v -> edgeObj
34995 this._out = {};
34996
34997 // v -> w -> Number
34998 this._sucs = {};
34999
35000 // e -> edgeObj
35001 this._edgeObjs = {};
35002
35003 // e -> label
35004 this._edgeLabels = {};
35005}
35006
35007/* Number of nodes in the graph. Should only be changed by the implementation. */
35008Graph.prototype._nodeCount = 0;
35009
35010/* Number of edges in the graph. Should only be changed by the implementation. */
35011Graph.prototype._edgeCount = 0;
35012
35013
35014/* === Graph functions ========= */
35015
35016Graph.prototype.isDirected = function() {
35017 return this._isDirected;
35018};
35019
35020Graph.prototype.isMultigraph = function() {
35021 return this._isMultigraph;
35022};
35023
35024Graph.prototype.isCompound = function() {
35025 return this._isCompound;
35026};
35027
35028Graph.prototype.setGraph = function(label) {
35029 this._label = label;
35030 return this;
35031};
35032
35033Graph.prototype.graph = function() {
35034 return this._label;
35035};
35036
35037
35038/* === Node functions ========== */
35039
35040Graph.prototype.setDefaultNodeLabel = function(newDefault) {
35041 if (!_.isFunction(newDefault)) {
35042 newDefault = _.constant(newDefault);
35043 }
35044 this._defaultNodeLabelFn = newDefault;
35045 return this;
35046};
35047
35048Graph.prototype.nodeCount = function() {
35049 return this._nodeCount;
35050};
35051
35052Graph.prototype.nodes = function() {
35053 return _.keys(this._nodes);
35054};
35055
35056Graph.prototype.sources = function() {
35057 var self = this;
35058 return _.filter(this.nodes(), function(v) {
35059 return _.isEmpty(self._in[v]);
35060 });
35061};
35062
35063Graph.prototype.sinks = function() {
35064 var self = this;
35065 return _.filter(this.nodes(), function(v) {
35066 return _.isEmpty(self._out[v]);
35067 });
35068};
35069
35070Graph.prototype.setNodes = function(vs, value) {
35071 var args = arguments;
35072 var self = this;
35073 _.each(vs, function(v) {
35074 if (args.length > 1) {
35075 self.setNode(v, value);
35076 } else {
35077 self.setNode(v);
35078 }
35079 });
35080 return this;
35081};
35082
35083Graph.prototype.setNode = function(v, value) {
35084 if (_.has(this._nodes, v)) {
35085 if (arguments.length > 1) {
35086 this._nodes[v] = value;
35087 }
35088 return this;
35089 }
35090
35091 this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);
35092 if (this._isCompound) {
35093 this._parent[v] = GRAPH_NODE;
35094 this._children[v] = {};
35095 this._children[GRAPH_NODE][v] = true;
35096 }
35097 this._in[v] = {};
35098 this._preds[v] = {};
35099 this._out[v] = {};
35100 this._sucs[v] = {};
35101 ++this._nodeCount;
35102 return this;
35103};
35104
35105Graph.prototype.node = function(v) {
35106 return this._nodes[v];
35107};
35108
35109Graph.prototype.hasNode = function(v) {
35110 return _.has(this._nodes, v);
35111};
35112
35113Graph.prototype.removeNode = function(v) {
35114 var self = this;
35115 if (_.has(this._nodes, v)) {
35116 var removeEdge = function(e) { self.removeEdge(self._edgeObjs[e]); };
35117 delete this._nodes[v];
35118 if (this._isCompound) {
35119 this._removeFromParentsChildList(v);
35120 delete this._parent[v];
35121 _.each(this.children(v), function(child) {
35122 self.setParent(child);
35123 });
35124 delete this._children[v];
35125 }
35126 _.each(_.keys(this._in[v]), removeEdge);
35127 delete this._in[v];
35128 delete this._preds[v];
35129 _.each(_.keys(this._out[v]), removeEdge);
35130 delete this._out[v];
35131 delete this._sucs[v];
35132 --this._nodeCount;
35133 }
35134 return this;
35135};
35136
35137Graph.prototype.setParent = function(v, parent) {
35138 if (!this._isCompound) {
35139 throw new Error("Cannot set parent in a non-compound graph");
35140 }
35141
35142 if (_.isUndefined(parent)) {
35143 parent = GRAPH_NODE;
35144 } else {
35145 // Coerce parent to string
35146 parent += "";
35147 for (var ancestor = parent;
35148 !_.isUndefined(ancestor);
35149 ancestor = this.parent(ancestor)) {
35150 if (ancestor === v) {
35151 throw new Error("Setting " + parent+ " as parent of " + v +
35152 " would create a cycle");
35153 }
35154 }
35155
35156 this.setNode(parent);
35157 }
35158
35159 this.setNode(v);
35160 this._removeFromParentsChildList(v);
35161 this._parent[v] = parent;
35162 this._children[parent][v] = true;
35163 return this;
35164};
35165
35166Graph.prototype._removeFromParentsChildList = function(v) {
35167 delete this._children[this._parent[v]][v];
35168};
35169
35170Graph.prototype.parent = function(v) {
35171 if (this._isCompound) {
35172 var parent = this._parent[v];
35173 if (parent !== GRAPH_NODE) {
35174 return parent;
35175 }
35176 }
35177};
35178
35179Graph.prototype.children = function(v) {
35180 if (_.isUndefined(v)) {
35181 v = GRAPH_NODE;
35182 }
35183
35184 if (this._isCompound) {
35185 var children = this._children[v];
35186 if (children) {
35187 return _.keys(children);
35188 }
35189 } else if (v === GRAPH_NODE) {
35190 return this.nodes();
35191 } else if (this.hasNode(v)) {
35192 return [];
35193 }
35194};
35195
35196Graph.prototype.predecessors = function(v) {
35197 var predsV = this._preds[v];
35198 if (predsV) {
35199 return _.keys(predsV);
35200 }
35201};
35202
35203Graph.prototype.successors = function(v) {
35204 var sucsV = this._sucs[v];
35205 if (sucsV) {
35206 return _.keys(sucsV);
35207 }
35208};
35209
35210Graph.prototype.neighbors = function(v) {
35211 var preds = this.predecessors(v);
35212 if (preds) {
35213 return _.union(preds, this.successors(v));
35214 }
35215};
35216
35217Graph.prototype.isLeaf = function (v) {
35218 var neighbors;
35219 if (this.isDirected()) {
35220 neighbors = this.successors(v);
35221 } else {
35222 neighbors = this.neighbors(v);
35223 }
35224 return neighbors.length === 0;
35225};
35226
35227Graph.prototype.filterNodes = function(filter) {
35228 var copy = new this.constructor({
35229 directed: this._isDirected,
35230 multigraph: this._isMultigraph,
35231 compound: this._isCompound
35232 });
35233
35234 copy.setGraph(this.graph());
35235
35236 var self = this;
35237 _.each(this._nodes, function(value, v) {
35238 if (filter(v)) {
35239 copy.setNode(v, value);
35240 }
35241 });
35242
35243 _.each(this._edgeObjs, function(e) {
35244 if (copy.hasNode(e.v) && copy.hasNode(e.w)) {
35245 copy.setEdge(e, self.edge(e));
35246 }
35247 });
35248
35249 var parents = {};
35250 function findParent(v) {
35251 var parent = self.parent(v);
35252 if (parent === undefined || copy.hasNode(parent)) {
35253 parents[v] = parent;
35254 return parent;
35255 } else if (parent in parents) {
35256 return parents[parent];
35257 } else {
35258 return findParent(parent);
35259 }
35260 }
35261
35262 if (this._isCompound) {
35263 _.each(copy.nodes(), function(v) {
35264 copy.setParent(v, findParent(v));
35265 });
35266 }
35267
35268 return copy;
35269};
35270
35271/* === Edge functions ========== */
35272
35273Graph.prototype.setDefaultEdgeLabel = function(newDefault) {
35274 if (!_.isFunction(newDefault)) {
35275 newDefault = _.constant(newDefault);
35276 }
35277 this._defaultEdgeLabelFn = newDefault;
35278 return this;
35279};
35280
35281Graph.prototype.edgeCount = function() {
35282 return this._edgeCount;
35283};
35284
35285Graph.prototype.edges = function() {
35286 return _.values(this._edgeObjs);
35287};
35288
35289Graph.prototype.setPath = function(vs, value) {
35290 var self = this;
35291 var args = arguments;
35292 _.reduce(vs, function(v, w) {
35293 if (args.length > 1) {
35294 self.setEdge(v, w, value);
35295 } else {
35296 self.setEdge(v, w);
35297 }
35298 return w;
35299 });
35300 return this;
35301};
35302
35303/*
35304 * setEdge(v, w, [value, [name]])
35305 * setEdge({ v, w, [name] }, [value])
35306 */
35307Graph.prototype.setEdge = function() {
35308 var v, w, name, value;
35309 var valueSpecified = false;
35310 var arg0 = arguments[0];
35311
35312 if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
35313 v = arg0.v;
35314 w = arg0.w;
35315 name = arg0.name;
35316 if (arguments.length === 2) {
35317 value = arguments[1];
35318 valueSpecified = true;
35319 }
35320 } else {
35321 v = arg0;
35322 w = arguments[1];
35323 name = arguments[3];
35324 if (arguments.length > 2) {
35325 value = arguments[2];
35326 valueSpecified = true;
35327 }
35328 }
35329
35330 v = "" + v;
35331 w = "" + w;
35332 if (!_.isUndefined(name)) {
35333 name = "" + name;
35334 }
35335
35336 var e = edgeArgsToId(this._isDirected, v, w, name);
35337 if (_.has(this._edgeLabels, e)) {
35338 if (valueSpecified) {
35339 this._edgeLabels[e] = value;
35340 }
35341 return this;
35342 }
35343
35344 if (!_.isUndefined(name) && !this._isMultigraph) {
35345 throw new Error("Cannot set a named edge when isMultigraph = false");
35346 }
35347
35348 // It didn't exist, so we need to create it.
35349 // First ensure the nodes exist.
35350 this.setNode(v);
35351 this.setNode(w);
35352
35353 this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);
35354
35355 var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);
35356 // Ensure we add undirected edges in a consistent way.
35357 v = edgeObj.v;
35358 w = edgeObj.w;
35359
35360 Object.freeze(edgeObj);
35361 this._edgeObjs[e] = edgeObj;
35362 incrementOrInitEntry(this._preds[w], v);
35363 incrementOrInitEntry(this._sucs[v], w);
35364 this._in[w][e] = edgeObj;
35365 this._out[v][e] = edgeObj;
35366 this._edgeCount++;
35367 return this;
35368};
35369
35370Graph.prototype.edge = function(v, w, name) {
35371 var e = (arguments.length === 1
35372 ? edgeObjToId(this._isDirected, arguments[0])
35373 : edgeArgsToId(this._isDirected, v, w, name));
35374 return this._edgeLabels[e];
35375};
35376
35377Graph.prototype.hasEdge = function(v, w, name) {
35378 var e = (arguments.length === 1
35379 ? edgeObjToId(this._isDirected, arguments[0])
35380 : edgeArgsToId(this._isDirected, v, w, name));
35381 return _.has(this._edgeLabels, e);
35382};
35383
35384Graph.prototype.removeEdge = function(v, w, name) {
35385 var e = (arguments.length === 1
35386 ? edgeObjToId(this._isDirected, arguments[0])
35387 : edgeArgsToId(this._isDirected, v, w, name));
35388 var edge = this._edgeObjs[e];
35389 if (edge) {
35390 v = edge.v;
35391 w = edge.w;
35392 delete this._edgeLabels[e];
35393 delete this._edgeObjs[e];
35394 decrementOrRemoveEntry(this._preds[w], v);
35395 decrementOrRemoveEntry(this._sucs[v], w);
35396 delete this._in[w][e];
35397 delete this._out[v][e];
35398 this._edgeCount--;
35399 }
35400 return this;
35401};
35402
35403Graph.prototype.inEdges = function(v, u) {
35404 var inV = this._in[v];
35405 if (inV) {
35406 var edges = _.values(inV);
35407 if (!u) {
35408 return edges;
35409 }
35410 return _.filter(edges, function(edge) { return edge.v === u; });
35411 }
35412};
35413
35414Graph.prototype.outEdges = function(v, w) {
35415 var outV = this._out[v];
35416 if (outV) {
35417 var edges = _.values(outV);
35418 if (!w) {
35419 return edges;
35420 }
35421 return _.filter(edges, function(edge) { return edge.w === w; });
35422 }
35423};
35424
35425Graph.prototype.nodeEdges = function(v, w) {
35426 var inEdges = this.inEdges(v, w);
35427 if (inEdges) {
35428 return inEdges.concat(this.outEdges(v, w));
35429 }
35430};
35431
35432function incrementOrInitEntry(map, k) {
35433 if (map[k]) {
35434 map[k]++;
35435 } else {
35436 map[k] = 1;
35437 }
35438}
35439
35440function decrementOrRemoveEntry(map, k) {
35441 if (!--map[k]) { delete map[k]; }
35442}
35443
35444function edgeArgsToId(isDirected, v_, w_, name) {
35445 var v = "" + v_;
35446 var w = "" + w_;
35447 if (!isDirected && v > w) {
35448 var tmp = v;
35449 v = w;
35450 w = tmp;
35451 }
35452 return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM +
35453 (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);
35454}
35455
35456function edgeArgsToObj(isDirected, v_, w_, name) {
35457 var v = "" + v_;
35458 var w = "" + w_;
35459 if (!isDirected && v > w) {
35460 var tmp = v;
35461 v = w;
35462 w = tmp;
35463 }
35464 var edgeObj = { v: v, w: w };
35465 if (name) {
35466 edgeObj.name = name;
35467 }
35468 return edgeObj;
35469}
35470
35471function edgeObjToId(isDirected, edgeObj) {
35472 return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
35473}
35474
35475
35476/***/ }),
35477
35478/***/ "./node_modules/graphlib/lib/index.js":
35479/*!********************************************!*\
35480 !*** ./node_modules/graphlib/lib/index.js ***!
35481 \********************************************/
35482/*! no static exports found */
35483/***/ (function(module, exports, __webpack_require__) {
35484
35485// Includes only the "core" of graphlib
35486module.exports = {
35487 Graph: __webpack_require__(/*! ./graph */ "./node_modules/graphlib/lib/graph.js"),
35488 version: __webpack_require__(/*! ./version */ "./node_modules/graphlib/lib/version.js")
35489};
35490
35491
35492/***/ }),
35493
35494/***/ "./node_modules/graphlib/lib/json.js":
35495/*!*******************************************!*\
35496 !*** ./node_modules/graphlib/lib/json.js ***!
35497 \*******************************************/
35498/*! no static exports found */
35499/***/ (function(module, exports, __webpack_require__) {
35500
35501var _ = __webpack_require__(/*! ./lodash */ "./node_modules/graphlib/lib/lodash.js");
35502var Graph = __webpack_require__(/*! ./graph */ "./node_modules/graphlib/lib/graph.js");
35503
35504module.exports = {
35505 write: write,
35506 read: read
35507};
35508
35509function write(g) {
35510 var json = {
35511 options: {
35512 directed: g.isDirected(),
35513 multigraph: g.isMultigraph(),
35514 compound: g.isCompound()
35515 },
35516 nodes: writeNodes(g),
35517 edges: writeEdges(g)
35518 };
35519 if (!_.isUndefined(g.graph())) {
35520 json.value = _.clone(g.graph());
35521 }
35522 return json;
35523}
35524
35525function writeNodes(g) {
35526 return _.map(g.nodes(), function(v) {
35527 var nodeValue = g.node(v);
35528 var parent = g.parent(v);
35529 var node = { v: v };
35530 if (!_.isUndefined(nodeValue)) {
35531 node.value = nodeValue;
35532 }
35533 if (!_.isUndefined(parent)) {
35534 node.parent = parent;
35535 }
35536 return node;
35537 });
35538}
35539
35540function writeEdges(g) {
35541 return _.map(g.edges(), function(e) {
35542 var edgeValue = g.edge(e);
35543 var edge = { v: e.v, w: e.w };
35544 if (!_.isUndefined(e.name)) {
35545 edge.name = e.name;
35546 }
35547 if (!_.isUndefined(edgeValue)) {
35548 edge.value = edgeValue;
35549 }
35550 return edge;
35551 });
35552}
35553
35554function read(json) {
35555 var g = new Graph(json.options).setGraph(json.value);
35556 _.each(json.nodes, function(entry) {
35557 g.setNode(entry.v, entry.value);
35558 if (entry.parent) {
35559 g.setParent(entry.v, entry.parent);
35560 }
35561 });
35562 _.each(json.edges, function(entry) {
35563 g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);
35564 });
35565 return g;
35566}
35567
35568
35569/***/ }),
35570
35571/***/ "./node_modules/graphlib/lib/lodash.js":
35572/*!*********************************************!*\
35573 !*** ./node_modules/graphlib/lib/lodash.js ***!
35574 \*********************************************/
35575/*! no static exports found */
35576/***/ (function(module, exports, __webpack_require__) {
35577
35578/* global window */
35579
35580var lodash;
35581
35582if (true) {
35583 try {
35584 lodash = {
35585 clone: __webpack_require__(/*! lodash/clone */ "./node_modules/lodash/clone.js"),
35586 constant: __webpack_require__(/*! lodash/constant */ "./node_modules/lodash/constant.js"),
35587 each: __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js"),
35588 filter: __webpack_require__(/*! lodash/filter */ "./node_modules/lodash/filter.js"),
35589 has: __webpack_require__(/*! lodash/has */ "./node_modules/lodash/has.js"),
35590 isArray: __webpack_require__(/*! lodash/isArray */ "./node_modules/lodash/isArray.js"),
35591 isEmpty: __webpack_require__(/*! lodash/isEmpty */ "./node_modules/lodash/isEmpty.js"),
35592 isFunction: __webpack_require__(/*! lodash/isFunction */ "./node_modules/lodash/isFunction.js"),
35593 isUndefined: __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js"),
35594 keys: __webpack_require__(/*! lodash/keys */ "./node_modules/lodash/keys.js"),
35595 map: __webpack_require__(/*! lodash/map */ "./node_modules/lodash/map.js"),
35596 reduce: __webpack_require__(/*! lodash/reduce */ "./node_modules/lodash/reduce.js"),
35597 size: __webpack_require__(/*! lodash/size */ "./node_modules/lodash/size.js"),
35598 transform: __webpack_require__(/*! lodash/transform */ "./node_modules/lodash/transform.js"),
35599 union: __webpack_require__(/*! lodash/union */ "./node_modules/lodash/union.js"),
35600 values: __webpack_require__(/*! lodash/values */ "./node_modules/lodash/values.js")
35601 };
35602 } catch (e) {
35603 // continue regardless of error
35604 }
35605}
35606
35607if (!lodash) {
35608 lodash = window._;
35609}
35610
35611module.exports = lodash;
35612
35613
35614/***/ }),
35615
35616/***/ "./node_modules/graphlib/lib/version.js":
35617/*!**********************************************!*\
35618 !*** ./node_modules/graphlib/lib/version.js ***!
35619 \**********************************************/
35620/*! no static exports found */
35621/***/ (function(module, exports) {
35622
35623module.exports = '2.1.8';
35624
35625
35626/***/ }),
35627
35628/***/ "./node_modules/khroma/dist/channels/index.js":
35629/*!****************************************************!*\
35630 !*** ./node_modules/khroma/dist/channels/index.js ***!
35631 \****************************************************/
35632/*! no static exports found */
35633/***/ (function(module, exports, __webpack_require__) {
35634
35635"use strict";
35636
35637/* IMPORT */
35638Object.defineProperty(exports, "__esModule", { value: true });
35639var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
35640var types_1 = __webpack_require__(/*! ../types */ "./node_modules/khroma/dist/types.js");
35641var type_1 = __webpack_require__(/*! ./type */ "./node_modules/khroma/dist/channels/type.js");
35642/* CHANNELS */
35643var Channels = /** @class */ (function () {
35644 /* CONSTRUCTOR */
35645 function Channels(data, color) {
35646 this.color = color;
35647 this.changed = false;
35648 this.data = data; //TSC
35649 this.type = new type_1.default();
35650 }
35651 /* API */
35652 Channels.prototype.set = function (data, color) {
35653 this.color = color;
35654 this.changed = false;
35655 this.data = data; //TSC
35656 this.type.type = types_1.TYPE.ALL;
35657 return this;
35658 };
35659 /* HELPERS */
35660 Channels.prototype._ensureHSL = function () {
35661 if (this.data.h === undefined)
35662 this.data.h = utils_1.default.channel.rgb2hsl(this.data, 'h');
35663 if (this.data.s === undefined)
35664 this.data.s = utils_1.default.channel.rgb2hsl(this.data, 's');
35665 if (this.data.l === undefined)
35666 this.data.l = utils_1.default.channel.rgb2hsl(this.data, 'l');
35667 };
35668 Channels.prototype._ensureRGB = function () {
35669 if (this.data.r === undefined)
35670 this.data.r = utils_1.default.channel.hsl2rgb(this.data, 'r');
35671 if (this.data.g === undefined)
35672 this.data.g = utils_1.default.channel.hsl2rgb(this.data, 'g');
35673 if (this.data.b === undefined)
35674 this.data.b = utils_1.default.channel.hsl2rgb(this.data, 'b');
35675 };
35676 Object.defineProperty(Channels.prototype, "r", {
35677 /* GETTERS */
35678 get: function () {
35679 if (!this.type.is(types_1.TYPE.HSL) && this.data.r !== undefined)
35680 return this.data.r;
35681 this._ensureHSL();
35682 return utils_1.default.channel.hsl2rgb(this.data, 'r');
35683 },
35684 /* SETTERS */
35685 set: function (r) {
35686 this.type.set(types_1.TYPE.RGB);
35687 this.changed = true;
35688 this.data.r = r;
35689 },
35690 enumerable: true,
35691 configurable: true
35692 });
35693 Object.defineProperty(Channels.prototype, "g", {
35694 get: function () {
35695 if (!this.type.is(types_1.TYPE.HSL) && this.data.g !== undefined)
35696 return this.data.g;
35697 this._ensureHSL();
35698 return utils_1.default.channel.hsl2rgb(this.data, 'g');
35699 },
35700 set: function (g) {
35701 this.type.set(types_1.TYPE.RGB);
35702 this.changed = true;
35703 this.data.g = g;
35704 },
35705 enumerable: true,
35706 configurable: true
35707 });
35708 Object.defineProperty(Channels.prototype, "b", {
35709 get: function () {
35710 if (!this.type.is(types_1.TYPE.HSL) && this.data.b !== undefined)
35711 return this.data.b;
35712 this._ensureHSL();
35713 return utils_1.default.channel.hsl2rgb(this.data, 'b');
35714 },
35715 set: function (b) {
35716 this.type.set(types_1.TYPE.RGB);
35717 this.changed = true;
35718 this.data.b = b;
35719 },
35720 enumerable: true,
35721 configurable: true
35722 });
35723 Object.defineProperty(Channels.prototype, "h", {
35724 get: function () {
35725 if (!this.type.is(types_1.TYPE.RGB) && this.data.h !== undefined)
35726 return this.data.h;
35727 this._ensureRGB();
35728 return utils_1.default.channel.rgb2hsl(this.data, 'h');
35729 },
35730 set: function (h) {
35731 this.type.set(types_1.TYPE.HSL);
35732 this.changed = true;
35733 this.data.h = h;
35734 },
35735 enumerable: true,
35736 configurable: true
35737 });
35738 Object.defineProperty(Channels.prototype, "s", {
35739 get: function () {
35740 if (!this.type.is(types_1.TYPE.RGB) && this.data.s !== undefined)
35741 return this.data.s;
35742 this._ensureRGB();
35743 return utils_1.default.channel.rgb2hsl(this.data, 's');
35744 },
35745 set: function (s) {
35746 this.type.set(types_1.TYPE.HSL);
35747 this.changed = true;
35748 this.data.s = s;
35749 },
35750 enumerable: true,
35751 configurable: true
35752 });
35753 Object.defineProperty(Channels.prototype, "l", {
35754 get: function () {
35755 if (!this.type.is(types_1.TYPE.RGB) && this.data.l !== undefined)
35756 return this.data.l;
35757 this._ensureRGB();
35758 return utils_1.default.channel.rgb2hsl(this.data, 'l');
35759 },
35760 set: function (l) {
35761 this.type.set(types_1.TYPE.HSL);
35762 this.changed = true;
35763 this.data.l = l;
35764 },
35765 enumerable: true,
35766 configurable: true
35767 });
35768 Object.defineProperty(Channels.prototype, "a", {
35769 get: function () {
35770 return this.data.a;
35771 },
35772 set: function (a) {
35773 this.changed = true;
35774 this.data.a = a;
35775 },
35776 enumerable: true,
35777 configurable: true
35778 });
35779 return Channels;
35780}());
35781/* EXPORT */
35782exports.default = Channels;
35783
35784
35785/***/ }),
35786
35787/***/ "./node_modules/khroma/dist/channels/reusable.js":
35788/*!*******************************************************!*\
35789 !*** ./node_modules/khroma/dist/channels/reusable.js ***!
35790 \*******************************************************/
35791/*! no static exports found */
35792/***/ (function(module, exports, __webpack_require__) {
35793
35794"use strict";
35795
35796/* IMPORT */
35797Object.defineProperty(exports, "__esModule", { value: true });
35798var _1 = __webpack_require__(/*! . */ "./node_modules/khroma/dist/channels/index.js");
35799/* REUSABLE */
35800var channels = new _1.default({ r: 0, g: 0, b: 0, a: 0 }, 'transparent');
35801/* EXPORT */
35802exports.default = channels;
35803
35804
35805/***/ }),
35806
35807/***/ "./node_modules/khroma/dist/channels/type.js":
35808/*!***************************************************!*\
35809 !*** ./node_modules/khroma/dist/channels/type.js ***!
35810 \***************************************************/
35811/*! no static exports found */
35812/***/ (function(module, exports, __webpack_require__) {
35813
35814"use strict";
35815
35816/* IMPORT */
35817Object.defineProperty(exports, "__esModule", { value: true });
35818var types_1 = __webpack_require__(/*! ../types */ "./node_modules/khroma/dist/types.js");
35819/* TYPE */
35820var Type = /** @class */ (function () {
35821 function Type() {
35822 this.type = types_1.TYPE.ALL;
35823 }
35824 Type.prototype.get = function () {
35825 return this.type;
35826 };
35827 Type.prototype.set = function (type) {
35828 if (this.type && this.type !== type)
35829 throw new Error('Cannot change both RGB and HSL channels at the same time');
35830 this.type = type;
35831 };
35832 Type.prototype.reset = function () {
35833 this.type = types_1.TYPE.ALL;
35834 };
35835 Type.prototype.is = function (type) {
35836 return this.type === type;
35837 };
35838 return Type;
35839}());
35840/* EXPORT */
35841exports.default = Type;
35842
35843
35844/***/ }),
35845
35846/***/ "./node_modules/khroma/dist/color/hex.js":
35847/*!***********************************************!*\
35848 !*** ./node_modules/khroma/dist/color/hex.js ***!
35849 \***********************************************/
35850/*! no static exports found */
35851/***/ (function(module, exports, __webpack_require__) {
35852
35853"use strict";
35854
35855/* IMPORT */
35856Object.defineProperty(exports, "__esModule", { value: true });
35857var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
35858var reusable_1 = __webpack_require__(/*! ../channels/reusable */ "./node_modules/khroma/dist/channels/reusable.js");
35859var consts_1 = __webpack_require__(/*! ../consts */ "./node_modules/khroma/dist/consts.js");
35860/* HEX */
35861var Hex = {
35862 /* VARIABLES */
35863 re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
35864 /* API */
35865 parse: function (color) {
35866 if (color.charCodeAt(0) !== 35)
35867 return; // '#'
35868 var match = color.match(Hex.re);
35869 if (!match)
35870 return;
35871 var hex = match[1], dec = parseInt(hex, 16), length = hex.length, hasAlpha = length % 4 === 0, isFullLength = length > 4, multiplier = isFullLength ? 1 : 17, bits = isFullLength ? 8 : 4, bitsOffset = hasAlpha ? 0 : -1, mask = isFullLength ? 255 : 15;
35872 return reusable_1.default.set({
35873 r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,
35874 g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,
35875 b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,
35876 a: hasAlpha ? (dec & mask) * multiplier / 255 : 1
35877 }, color);
35878 },
35879 stringify: function (channels) {
35880 if (channels.a < 1) { // #RRGGBBAA
35881 return "#" + consts_1.DEC2HEX[Math.round(channels.r)] + consts_1.DEC2HEX[Math.round(channels.g)] + consts_1.DEC2HEX[Math.round(channels.b)] + utils_1.default.unit.frac2hex(channels.a);
35882 }
35883 else { // #RRGGBB
35884 return "#" + consts_1.DEC2HEX[Math.round(channels.r)] + consts_1.DEC2HEX[Math.round(channels.g)] + consts_1.DEC2HEX[Math.round(channels.b)];
35885 }
35886 }
35887};
35888/* EXPORT */
35889exports.default = Hex;
35890
35891
35892/***/ }),
35893
35894/***/ "./node_modules/khroma/dist/color/hsl.js":
35895/*!***********************************************!*\
35896 !*** ./node_modules/khroma/dist/color/hsl.js ***!
35897 \***********************************************/
35898/*! no static exports found */
35899/***/ (function(module, exports, __webpack_require__) {
35900
35901"use strict";
35902
35903/* IMPORT */
35904Object.defineProperty(exports, "__esModule", { value: true });
35905var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
35906var reusable_1 = __webpack_require__(/*! ../channels/reusable */ "./node_modules/khroma/dist/channels/reusable.js");
35907/* HSL */
35908var HSL = {
35909 /* VARIABLES */
35910 re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,
35911 hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
35912 /* HELPERS */
35913 _hue2deg: function (hue) {
35914 var match = hue.match(HSL.hueRe);
35915 if (match) {
35916 var number = match[1], unit = match[2];
35917 switch (unit) {
35918 case 'grad': return utils_1.default.channel.clamp.h(parseFloat(number) * .9);
35919 case 'rad': return utils_1.default.channel.clamp.h(parseFloat(number) * 180 / Math.PI);
35920 case 'turn': return utils_1.default.channel.clamp.h(parseFloat(number) * 360);
35921 }
35922 }
35923 return utils_1.default.channel.clamp.h(parseFloat(hue));
35924 },
35925 /* API */
35926 parse: function (color) {
35927 var charCode = color.charCodeAt(0);
35928 if (charCode !== 104 && charCode !== 72)
35929 return; // 'h'/'H'
35930 var match = color.match(HSL.re);
35931 if (!match)
35932 return;
35933 var h = match[1], s = match[2], l = match[3], a = match[4], isAlphaPercentage = match[5];
35934 return reusable_1.default.set({
35935 h: HSL._hue2deg(h),
35936 s: utils_1.default.channel.clamp.s(parseFloat(s)),
35937 l: utils_1.default.channel.clamp.l(parseFloat(l)),
35938 a: a ? utils_1.default.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
35939 }, color);
35940 },
35941 stringify: function (channels) {
35942 if (channels.a < 1) { // HSLA
35943 return "hsla(" + utils_1.default.lang.round(channels.h) + ", " + utils_1.default.lang.round(channels.s) + "%, " + utils_1.default.lang.round(channels.l) + "%, " + channels.a + ")";
35944 }
35945 else { // HSL
35946 return "hsl(" + utils_1.default.lang.round(channels.h) + ", " + utils_1.default.lang.round(channels.s) + "%, " + utils_1.default.lang.round(channels.l) + "%)";
35947 }
35948 }
35949};
35950/* EXPORT */
35951exports.default = HSL;
35952
35953
35954/***/ }),
35955
35956/***/ "./node_modules/khroma/dist/color/index.js":
35957/*!*************************************************!*\
35958 !*** ./node_modules/khroma/dist/color/index.js ***!
35959 \*************************************************/
35960/*! no static exports found */
35961/***/ (function(module, exports, __webpack_require__) {
35962
35963"use strict";
35964
35965/* IMPORT */
35966Object.defineProperty(exports, "__esModule", { value: true });
35967var types_1 = __webpack_require__(/*! ../types */ "./node_modules/khroma/dist/types.js");
35968var hex_1 = __webpack_require__(/*! ./hex */ "./node_modules/khroma/dist/color/hex.js");
35969var keyword_1 = __webpack_require__(/*! ./keyword */ "./node_modules/khroma/dist/color/keyword.js");
35970var rgb_1 = __webpack_require__(/*! ./rgb */ "./node_modules/khroma/dist/color/rgb.js");
35971var hsl_1 = __webpack_require__(/*! ./hsl */ "./node_modules/khroma/dist/color/hsl.js");
35972/* COLOR */
35973var Color = {
35974 /* VARIABLES */
35975 format: {
35976 keyword: keyword_1.default,
35977 hex: hex_1.default,
35978 rgb: rgb_1.default,
35979 rgba: rgb_1.default,
35980 hsl: hsl_1.default,
35981 hsla: hsl_1.default
35982 },
35983 /* API */
35984 parse: function (color) {
35985 if (typeof color !== 'string')
35986 return color;
35987 var channels = hex_1.default.parse(color) || rgb_1.default.parse(color) || hsl_1.default.parse(color) || keyword_1.default.parse(color); // Color providers ordered with performance in mind
35988 if (channels)
35989 return channels;
35990 throw new Error("Unsupported color format: \"" + color + "\"");
35991 },
35992 stringify: function (channels) {
35993 // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value
35994 if (!channels.changed && channels.color)
35995 return channels.color;
35996 if (channels.type.is(types_1.TYPE.HSL) || channels.data.r === undefined) {
35997 return hsl_1.default.stringify(channels);
35998 }
35999 else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {
36000 return rgb_1.default.stringify(channels);
36001 }
36002 else {
36003 return hex_1.default.stringify(channels);
36004 }
36005 }
36006};
36007/* EXPORT */
36008exports.default = Color;
36009
36010
36011/***/ }),
36012
36013/***/ "./node_modules/khroma/dist/color/keyword.js":
36014/*!***************************************************!*\
36015 !*** ./node_modules/khroma/dist/color/keyword.js ***!
36016 \***************************************************/
36017/*! no static exports found */
36018/***/ (function(module, exports, __webpack_require__) {
36019
36020"use strict";
36021
36022/* IMPORT */
36023Object.defineProperty(exports, "__esModule", { value: true });
36024var hex_1 = __webpack_require__(/*! ./hex */ "./node_modules/khroma/dist/color/hex.js");
36025/* KEYWORD */
36026var Keyword = {
36027 /* VARIABLES */
36028 colors: {
36029 aliceblue: '#f0f8ff',
36030 antiquewhite: '#faebd7',
36031 aqua: '#00ffff',
36032 aquamarine: '#7fffd4',
36033 azure: '#f0ffff',
36034 beige: '#f5f5dc',
36035 bisque: '#ffe4c4',
36036 black: '#000000',
36037 blanchedalmond: '#ffebcd',
36038 blue: '#0000ff',
36039 blueviolet: '#8a2be2',
36040 brown: '#a52a2a',
36041 burlywood: '#deb887',
36042 cadetblue: '#5f9ea0',
36043 chartreuse: '#7fff00',
36044 chocolate: '#d2691e',
36045 coral: '#ff7f50',
36046 cornflowerblue: '#6495ed',
36047 cornsilk: '#fff8dc',
36048 crimson: '#dc143c',
36049 cyanaqua: '#00ffff',
36050 darkblue: '#00008b',
36051 darkcyan: '#008b8b',
36052 darkgoldenrod: '#b8860b',
36053 darkgray: '#a9a9a9',
36054 darkgreen: '#006400',
36055 darkgrey: '#a9a9a9',
36056 darkkhaki: '#bdb76b',
36057 darkmagenta: '#8b008b',
36058 darkolivegreen: '#556b2f',
36059 darkorange: '#ff8c00',
36060 darkorchid: '#9932cc',
36061 darkred: '#8b0000',
36062 darksalmon: '#e9967a',
36063 darkseagreen: '#8fbc8f',
36064 darkslateblue: '#483d8b',
36065 darkslategray: '#2f4f4f',
36066 darkslategrey: '#2f4f4f',
36067 darkturquoise: '#00ced1',
36068 darkviolet: '#9400d3',
36069 deeppink: '#ff1493',
36070 deepskyblue: '#00bfff',
36071 dimgray: '#696969',
36072 dimgrey: '#696969',
36073 dodgerblue: '#1e90ff',
36074 firebrick: '#b22222',
36075 floralwhite: '#fffaf0',
36076 forestgreen: '#228b22',
36077 fuchsia: '#ff00ff',
36078 gainsboro: '#dcdcdc',
36079 ghostwhite: '#f8f8ff',
36080 gold: '#ffd700',
36081 goldenrod: '#daa520',
36082 gray: '#808080',
36083 green: '#008000',
36084 greenyellow: '#adff2f',
36085 grey: '#808080',
36086 honeydew: '#f0fff0',
36087 hotpink: '#ff69b4',
36088 indianred: '#cd5c5c',
36089 indigo: '#4b0082',
36090 ivory: '#fffff0',
36091 khaki: '#f0e68c',
36092 lavender: '#e6e6fa',
36093 lavenderblush: '#fff0f5',
36094 lawngreen: '#7cfc00',
36095 lemonchiffon: '#fffacd',
36096 lightblue: '#add8e6',
36097 lightcoral: '#f08080',
36098 lightcyan: '#e0ffff',
36099 lightgoldenrodyellow: '#fafad2',
36100 lightgray: '#d3d3d3',
36101 lightgreen: '#90ee90',
36102 lightgrey: '#d3d3d3',
36103 lightpink: '#ffb6c1',
36104 lightsalmon: '#ffa07a',
36105 lightseagreen: '#20b2aa',
36106 lightskyblue: '#87cefa',
36107 lightslategray: '#778899',
36108 lightslategrey: '#778899',
36109 lightsteelblue: '#b0c4de',
36110 lightyellow: '#ffffe0',
36111 lime: '#00ff00',
36112 limegreen: '#32cd32',
36113 linen: '#faf0e6',
36114 magenta: '#ff00ff',
36115 maroon: '#800000',
36116 mediumaquamarine: '#66cdaa',
36117 mediumblue: '#0000cd',
36118 mediumorchid: '#ba55d3',
36119 mediumpurple: '#9370db',
36120 mediumseagreen: '#3cb371',
36121 mediumslateblue: '#7b68ee',
36122 mediumspringgreen: '#00fa9a',
36123 mediumturquoise: '#48d1cc',
36124 mediumvioletred: '#c71585',
36125 midnightblue: '#191970',
36126 mintcream: '#f5fffa',
36127 mistyrose: '#ffe4e1',
36128 moccasin: '#ffe4b5',
36129 navajowhite: '#ffdead',
36130 navy: '#000080',
36131 oldlace: '#fdf5e6',
36132 olive: '#808000',
36133 olivedrab: '#6b8e23',
36134 orange: '#ffa500',
36135 orangered: '#ff4500',
36136 orchid: '#da70d6',
36137 palegoldenrod: '#eee8aa',
36138 palegreen: '#98fb98',
36139 paleturquoise: '#afeeee',
36140 palevioletred: '#db7093',
36141 papayawhip: '#ffefd5',
36142 peachpuff: '#ffdab9',
36143 peru: '#cd853f',
36144 pink: '#ffc0cb',
36145 plum: '#dda0dd',
36146 powderblue: '#b0e0e6',
36147 purple: '#800080',
36148 rebeccapurple: '#663399',
36149 red: '#ff0000',
36150 rosybrown: '#bc8f8f',
36151 royalblue: '#4169e1',
36152 saddlebrown: '#8b4513',
36153 salmon: '#fa8072',
36154 sandybrown: '#f4a460',
36155 seagreen: '#2e8b57',
36156 seashell: '#fff5ee',
36157 sienna: '#a0522d',
36158 silver: '#c0c0c0',
36159 skyblue: '#87ceeb',
36160 slateblue: '#6a5acd',
36161 slategray: '#708090',
36162 slategrey: '#708090',
36163 snow: '#fffafa',
36164 springgreen: '#00ff7f',
36165 tan: '#d2b48c',
36166 teal: '#008080',
36167 thistle: '#d8bfd8',
36168 transparent: '#00000000',
36169 turquoise: '#40e0d0',
36170 violet: '#ee82ee',
36171 wheat: '#f5deb3',
36172 white: '#ffffff',
36173 whitesmoke: '#f5f5f5',
36174 yellow: '#ffff00',
36175 yellowgreen: '#9acd32'
36176 },
36177 /* API */
36178 parse: function (color) {
36179 color = color.toLowerCase();
36180 var hex = Keyword.colors[color];
36181 if (!hex)
36182 return;
36183 return hex_1.default.parse(hex);
36184 },
36185 stringify: function (channels) {
36186 var hex = hex_1.default.stringify(channels);
36187 for (var name_1 in Keyword.colors) {
36188 if (Keyword.colors[name_1] === hex)
36189 return name_1;
36190 }
36191 }
36192};
36193/* EXPORT */
36194exports.default = Keyword;
36195
36196
36197/***/ }),
36198
36199/***/ "./node_modules/khroma/dist/color/rgb.js":
36200/*!***********************************************!*\
36201 !*** ./node_modules/khroma/dist/color/rgb.js ***!
36202 \***********************************************/
36203/*! no static exports found */
36204/***/ (function(module, exports, __webpack_require__) {
36205
36206"use strict";
36207
36208/* IMPORT */
36209Object.defineProperty(exports, "__esModule", { value: true });
36210var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
36211var reusable_1 = __webpack_require__(/*! ../channels/reusable */ "./node_modules/khroma/dist/channels/reusable.js");
36212/* RGB */
36213var RGB = {
36214 /* VARIABLES */
36215 re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,
36216 /* API */
36217 parse: function (color) {
36218 var charCode = color.charCodeAt(0);
36219 if (charCode !== 114 && charCode !== 82)
36220 return; // 'r'/'R'
36221 var match = color.match(RGB.re);
36222 if (!match)
36223 return;
36224 var r = match[1], isRedPercentage = match[2], g = match[3], isGreenPercentage = match[4], b = match[5], isBluePercentage = match[6], a = match[7], isAlphaPercentage = match[8];
36225 return reusable_1.default.set({
36226 r: utils_1.default.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),
36227 g: utils_1.default.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),
36228 b: utils_1.default.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),
36229 a: a ? utils_1.default.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
36230 }, color);
36231 },
36232 stringify: function (channels) {
36233 if (channels.a < 1) { // RGBA
36234 return "rgba(" + utils_1.default.lang.round(channels.r) + ", " + utils_1.default.lang.round(channels.g) + ", " + utils_1.default.lang.round(channels.b) + ", " + utils_1.default.lang.round(channels.a) + ")";
36235 }
36236 else { // RGB
36237 return "rgb(" + utils_1.default.lang.round(channels.r) + ", " + utils_1.default.lang.round(channels.g) + ", " + utils_1.default.lang.round(channels.b) + ")";
36238 }
36239 }
36240};
36241/* EXPORT */
36242exports.default = RGB;
36243
36244
36245/***/ }),
36246
36247/***/ "./node_modules/khroma/dist/consts.js":
36248/*!********************************************!*\
36249 !*** ./node_modules/khroma/dist/consts.js ***!
36250 \********************************************/
36251/*! no static exports found */
36252/***/ (function(module, exports, __webpack_require__) {
36253
36254"use strict";
36255
36256/* IMPORT */
36257Object.defineProperty(exports, "__esModule", { value: true });
36258var utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/khroma/dist/utils/index.js");
36259/* CONSTS */
36260var DEC2HEX = {};
36261exports.DEC2HEX = DEC2HEX;
36262for (var i = 0; i <= 255; i++)
36263 DEC2HEX[i] = utils_1.default.unit.dec2hex(i); // Populating dynamically, striking a balance between code size and performance
36264
36265
36266/***/ }),
36267
36268/***/ "./node_modules/khroma/dist/index.js":
36269/*!*******************************************!*\
36270 !*** ./node_modules/khroma/dist/index.js ***!
36271 \*******************************************/
36272/*! no static exports found */
36273/***/ (function(module, exports, __webpack_require__) {
36274
36275"use strict";
36276
36277/* EXPORT */
36278function __export(m) {
36279 for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
36280}
36281Object.defineProperty(exports, "__esModule", { value: true });
36282__export(__webpack_require__(/*! ./methods */ "./node_modules/khroma/dist/methods/index.js"));
36283
36284
36285/***/ }),
36286
36287/***/ "./node_modules/khroma/dist/methods/adjust.js":
36288/*!****************************************************!*\
36289 !*** ./node_modules/khroma/dist/methods/adjust.js ***!
36290 \****************************************************/
36291/*! no static exports found */
36292/***/ (function(module, exports, __webpack_require__) {
36293
36294"use strict";
36295
36296/* IMPORT */
36297Object.defineProperty(exports, "__esModule", { value: true });
36298var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36299var change_1 = __webpack_require__(/*! ./change */ "./node_modules/khroma/dist/methods/change.js");
36300/* ADJUST */
36301function adjust(color, channels) {
36302 var ch = color_1.default.parse(color), changes = {};
36303 for (var c in channels) {
36304 if (!channels[c])
36305 continue;
36306 changes[c] = ch[c] + channels[c];
36307 }
36308 return change_1.default(color, changes);
36309}
36310/* EXPORT */
36311exports.default = adjust;
36312
36313
36314/***/ }),
36315
36316/***/ "./node_modules/khroma/dist/methods/adjust_channel.js":
36317/*!************************************************************!*\
36318 !*** ./node_modules/khroma/dist/methods/adjust_channel.js ***!
36319 \************************************************************/
36320/*! no static exports found */
36321/***/ (function(module, exports, __webpack_require__) {
36322
36323"use strict";
36324
36325/* IMPORT */
36326Object.defineProperty(exports, "__esModule", { value: true });
36327var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
36328var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36329/* ADJUST CHANNEL */
36330function adjustChannel(color, channel, amount) {
36331 var channels = color_1.default.parse(color), amountCurrent = channels[channel], amountNext = utils_1.default.channel.clamp[channel](amountCurrent + amount);
36332 if (amountCurrent !== amountNext)
36333 channels[channel] = amountNext;
36334 return color_1.default.stringify(channels);
36335}
36336/* EXPORT */
36337exports.default = adjustChannel;
36338
36339
36340/***/ }),
36341
36342/***/ "./node_modules/khroma/dist/methods/alpha.js":
36343/*!***************************************************!*\
36344 !*** ./node_modules/khroma/dist/methods/alpha.js ***!
36345 \***************************************************/
36346/*! no static exports found */
36347/***/ (function(module, exports, __webpack_require__) {
36348
36349"use strict";
36350
36351/* IMPORT */
36352Object.defineProperty(exports, "__esModule", { value: true });
36353var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/methods/channel.js");
36354/* ALPHA */
36355function alpha(color) {
36356 return channel_1.default(color, 'a');
36357}
36358/* EXPORT */
36359exports.default = alpha;
36360
36361
36362/***/ }),
36363
36364/***/ "./node_modules/khroma/dist/methods/blue.js":
36365/*!**************************************************!*\
36366 !*** ./node_modules/khroma/dist/methods/blue.js ***!
36367 \**************************************************/
36368/*! no static exports found */
36369/***/ (function(module, exports, __webpack_require__) {
36370
36371"use strict";
36372
36373/* IMPORT */
36374Object.defineProperty(exports, "__esModule", { value: true });
36375var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/methods/channel.js");
36376/* BLUE */
36377function blue(color) {
36378 return channel_1.default(color, 'b');
36379}
36380/* EXPORT */
36381exports.default = blue;
36382
36383
36384/***/ }),
36385
36386/***/ "./node_modules/khroma/dist/methods/change.js":
36387/*!****************************************************!*\
36388 !*** ./node_modules/khroma/dist/methods/change.js ***!
36389 \****************************************************/
36390/*! no static exports found */
36391/***/ (function(module, exports, __webpack_require__) {
36392
36393"use strict";
36394
36395/* IMPORT */
36396Object.defineProperty(exports, "__esModule", { value: true });
36397var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
36398var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36399/* CHANGE */
36400function change(color, channels) {
36401 var ch = color_1.default.parse(color);
36402 for (var c in channels) {
36403 ch[c] = utils_1.default.channel.clamp[c](channels[c]);
36404 }
36405 return color_1.default.stringify(ch);
36406}
36407/* EXPORT */
36408exports.default = change;
36409
36410
36411/***/ }),
36412
36413/***/ "./node_modules/khroma/dist/methods/channel.js":
36414/*!*****************************************************!*\
36415 !*** ./node_modules/khroma/dist/methods/channel.js ***!
36416 \*****************************************************/
36417/*! no static exports found */
36418/***/ (function(module, exports, __webpack_require__) {
36419
36420"use strict";
36421
36422/* IMPORT */
36423Object.defineProperty(exports, "__esModule", { value: true });
36424var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
36425var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36426/* CHANNEL */
36427function channel(color, channel) {
36428 return utils_1.default.lang.round(color_1.default.parse(color)[channel]);
36429}
36430/* EXPORT */
36431exports.default = channel;
36432
36433
36434/***/ }),
36435
36436/***/ "./node_modules/khroma/dist/methods/complement.js":
36437/*!********************************************************!*\
36438 !*** ./node_modules/khroma/dist/methods/complement.js ***!
36439 \********************************************************/
36440/*! no static exports found */
36441/***/ (function(module, exports, __webpack_require__) {
36442
36443"use strict";
36444
36445/* IMPORT */
36446Object.defineProperty(exports, "__esModule", { value: true });
36447var adjust_channel_1 = __webpack_require__(/*! ./adjust_channel */ "./node_modules/khroma/dist/methods/adjust_channel.js");
36448/* COMPLEMENT */
36449function complement(color) {
36450 return adjust_channel_1.default(color, 'h', 180);
36451}
36452/* EXPORT */
36453exports.default = complement;
36454
36455
36456/***/ }),
36457
36458/***/ "./node_modules/khroma/dist/methods/darken.js":
36459/*!****************************************************!*\
36460 !*** ./node_modules/khroma/dist/methods/darken.js ***!
36461 \****************************************************/
36462/*! no static exports found */
36463/***/ (function(module, exports, __webpack_require__) {
36464
36465"use strict";
36466
36467/* IMPORT */
36468Object.defineProperty(exports, "__esModule", { value: true });
36469var adjust_channel_1 = __webpack_require__(/*! ./adjust_channel */ "./node_modules/khroma/dist/methods/adjust_channel.js");
36470/* DARKEN */
36471function darken(color, amount) {
36472 return adjust_channel_1.default(color, 'l', -amount);
36473}
36474/* EXPORT */
36475exports.default = darken;
36476
36477
36478/***/ }),
36479
36480/***/ "./node_modules/khroma/dist/methods/desaturate.js":
36481/*!********************************************************!*\
36482 !*** ./node_modules/khroma/dist/methods/desaturate.js ***!
36483 \********************************************************/
36484/*! no static exports found */
36485/***/ (function(module, exports, __webpack_require__) {
36486
36487"use strict";
36488
36489/* IMPORT */
36490Object.defineProperty(exports, "__esModule", { value: true });
36491var adjust_channel_1 = __webpack_require__(/*! ./adjust_channel */ "./node_modules/khroma/dist/methods/adjust_channel.js");
36492/* DESATURATE */
36493function desaturate(color, amount) {
36494 return adjust_channel_1.default(color, 's', -amount);
36495}
36496/* EXPORT */
36497exports.default = desaturate;
36498
36499
36500/***/ }),
36501
36502/***/ "./node_modules/khroma/dist/methods/grayscale.js":
36503/*!*******************************************************!*\
36504 !*** ./node_modules/khroma/dist/methods/grayscale.js ***!
36505 \*******************************************************/
36506/*! no static exports found */
36507/***/ (function(module, exports, __webpack_require__) {
36508
36509"use strict";
36510
36511/* IMPORT */
36512Object.defineProperty(exports, "__esModule", { value: true });
36513var change_1 = __webpack_require__(/*! ./change */ "./node_modules/khroma/dist/methods/change.js");
36514/* GRAYSCALE */
36515function grayscale(color) {
36516 return change_1.default(color, { s: 0 });
36517}
36518/* EXPORT */
36519exports.default = grayscale;
36520
36521
36522/***/ }),
36523
36524/***/ "./node_modules/khroma/dist/methods/green.js":
36525/*!***************************************************!*\
36526 !*** ./node_modules/khroma/dist/methods/green.js ***!
36527 \***************************************************/
36528/*! no static exports found */
36529/***/ (function(module, exports, __webpack_require__) {
36530
36531"use strict";
36532
36533/* IMPORT */
36534Object.defineProperty(exports, "__esModule", { value: true });
36535var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/methods/channel.js");
36536/* GREEN */
36537function green(color) {
36538 return channel_1.default(color, 'g');
36539}
36540/* EXPORT */
36541exports.default = green;
36542
36543
36544/***/ }),
36545
36546/***/ "./node_modules/khroma/dist/methods/hsla.js":
36547/*!**************************************************!*\
36548 !*** ./node_modules/khroma/dist/methods/hsla.js ***!
36549 \**************************************************/
36550/*! no static exports found */
36551/***/ (function(module, exports, __webpack_require__) {
36552
36553"use strict";
36554
36555/* IMPORT */
36556Object.defineProperty(exports, "__esModule", { value: true });
36557var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
36558var reusable_1 = __webpack_require__(/*! ../channels/reusable */ "./node_modules/khroma/dist/channels/reusable.js");
36559var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36560/* HSLA */
36561function hsla(h, s, l, a) {
36562 if (a === void 0) { a = 1; }
36563 var channels = reusable_1.default.set({
36564 h: utils_1.default.channel.clamp.h(h),
36565 s: utils_1.default.channel.clamp.s(s),
36566 l: utils_1.default.channel.clamp.l(l),
36567 a: utils_1.default.channel.clamp.a(a)
36568 });
36569 return color_1.default.stringify(channels);
36570}
36571/* EXPORT */
36572exports.default = hsla;
36573
36574
36575/***/ }),
36576
36577/***/ "./node_modules/khroma/dist/methods/hue.js":
36578/*!*************************************************!*\
36579 !*** ./node_modules/khroma/dist/methods/hue.js ***!
36580 \*************************************************/
36581/*! no static exports found */
36582/***/ (function(module, exports, __webpack_require__) {
36583
36584"use strict";
36585
36586/* IMPORT */
36587Object.defineProperty(exports, "__esModule", { value: true });
36588var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/methods/channel.js");
36589/* HUE */
36590function hue(color) {
36591 return channel_1.default(color, 'h');
36592}
36593/* EXPORT */
36594exports.default = hue;
36595
36596
36597/***/ }),
36598
36599/***/ "./node_modules/khroma/dist/methods/index.js":
36600/*!***************************************************!*\
36601 !*** ./node_modules/khroma/dist/methods/index.js ***!
36602 \***************************************************/
36603/*! no static exports found */
36604/***/ (function(module, exports, __webpack_require__) {
36605
36606"use strict";
36607
36608/* IMPORT */
36609Object.defineProperty(exports, "__esModule", { value: true });
36610var rgba_1 = __webpack_require__(/*! ./rgba */ "./node_modules/khroma/dist/methods/rgba.js"); // Alias
36611exports.hex = rgba_1.default;
36612var rgba_2 = __webpack_require__(/*! ./rgba */ "./node_modules/khroma/dist/methods/rgba.js"); // Alias
36613exports.rgb = rgba_2.default;
36614var rgba_3 = __webpack_require__(/*! ./rgba */ "./node_modules/khroma/dist/methods/rgba.js");
36615exports.rgba = rgba_3.default;
36616var hsla_1 = __webpack_require__(/*! ./hsla */ "./node_modules/khroma/dist/methods/hsla.js"); // Alias
36617exports.hsl = hsla_1.default;
36618var hsla_2 = __webpack_require__(/*! ./hsla */ "./node_modules/khroma/dist/methods/hsla.js");
36619exports.hsla = hsla_2.default;
36620var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/methods/channel.js");
36621exports.channel = channel_1.default;
36622var red_1 = __webpack_require__(/*! ./red */ "./node_modules/khroma/dist/methods/red.js");
36623exports.red = red_1.default;
36624var green_1 = __webpack_require__(/*! ./green */ "./node_modules/khroma/dist/methods/green.js");
36625exports.green = green_1.default;
36626var blue_1 = __webpack_require__(/*! ./blue */ "./node_modules/khroma/dist/methods/blue.js");
36627exports.blue = blue_1.default;
36628var hue_1 = __webpack_require__(/*! ./hue */ "./node_modules/khroma/dist/methods/hue.js");
36629exports.hue = hue_1.default;
36630var saturation_1 = __webpack_require__(/*! ./saturation */ "./node_modules/khroma/dist/methods/saturation.js");
36631exports.saturation = saturation_1.default;
36632var lightness_1 = __webpack_require__(/*! ./lightness */ "./node_modules/khroma/dist/methods/lightness.js");
36633exports.lightness = lightness_1.default;
36634var alpha_1 = __webpack_require__(/*! ./alpha */ "./node_modules/khroma/dist/methods/alpha.js");
36635exports.alpha = alpha_1.default;
36636var alpha_2 = __webpack_require__(/*! ./alpha */ "./node_modules/khroma/dist/methods/alpha.js"); // Alias
36637exports.opacity = alpha_2.default;
36638var luminance_1 = __webpack_require__(/*! ./luminance */ "./node_modules/khroma/dist/methods/luminance.js");
36639exports.luminance = luminance_1.default;
36640var is_dark_1 = __webpack_require__(/*! ./is_dark */ "./node_modules/khroma/dist/methods/is_dark.js");
36641exports.isDark = is_dark_1.default;
36642var is_light_1 = __webpack_require__(/*! ./is_light */ "./node_modules/khroma/dist/methods/is_light.js");
36643exports.isLight = is_light_1.default;
36644var is_valid_1 = __webpack_require__(/*! ./is_valid */ "./node_modules/khroma/dist/methods/is_valid.js");
36645exports.isValid = is_valid_1.default;
36646var saturate_1 = __webpack_require__(/*! ./saturate */ "./node_modules/khroma/dist/methods/saturate.js");
36647exports.saturate = saturate_1.default;
36648var desaturate_1 = __webpack_require__(/*! ./desaturate */ "./node_modules/khroma/dist/methods/desaturate.js");
36649exports.desaturate = desaturate_1.default;
36650var lighten_1 = __webpack_require__(/*! ./lighten */ "./node_modules/khroma/dist/methods/lighten.js");
36651exports.lighten = lighten_1.default;
36652var darken_1 = __webpack_require__(/*! ./darken */ "./node_modules/khroma/dist/methods/darken.js");
36653exports.darken = darken_1.default;
36654var opacify_1 = __webpack_require__(/*! ./opacify */ "./node_modules/khroma/dist/methods/opacify.js");
36655exports.opacify = opacify_1.default;
36656var opacify_2 = __webpack_require__(/*! ./opacify */ "./node_modules/khroma/dist/methods/opacify.js"); // Alias
36657exports.fadeIn = opacify_2.default;
36658var transparentize_1 = __webpack_require__(/*! ./transparentize */ "./node_modules/khroma/dist/methods/transparentize.js");
36659exports.transparentize = transparentize_1.default;
36660var transparentize_2 = __webpack_require__(/*! ./transparentize */ "./node_modules/khroma/dist/methods/transparentize.js"); // Alias
36661exports.fadeOut = transparentize_2.default;
36662var complement_1 = __webpack_require__(/*! ./complement */ "./node_modules/khroma/dist/methods/complement.js");
36663exports.complement = complement_1.default;
36664var grayscale_1 = __webpack_require__(/*! ./grayscale */ "./node_modules/khroma/dist/methods/grayscale.js");
36665exports.grayscale = grayscale_1.default;
36666var adjust_1 = __webpack_require__(/*! ./adjust */ "./node_modules/khroma/dist/methods/adjust.js");
36667exports.adjust = adjust_1.default;
36668var change_1 = __webpack_require__(/*! ./change */ "./node_modules/khroma/dist/methods/change.js");
36669exports.change = change_1.default;
36670var invert_1 = __webpack_require__(/*! ./invert */ "./node_modules/khroma/dist/methods/invert.js");
36671exports.invert = invert_1.default;
36672var mix_1 = __webpack_require__(/*! ./mix */ "./node_modules/khroma/dist/methods/mix.js");
36673exports.mix = mix_1.default;
36674var scale_1 = __webpack_require__(/*! ./scale */ "./node_modules/khroma/dist/methods/scale.js");
36675exports.scale = scale_1.default;
36676
36677
36678/***/ }),
36679
36680/***/ "./node_modules/khroma/dist/methods/invert.js":
36681/*!****************************************************!*\
36682 !*** ./node_modules/khroma/dist/methods/invert.js ***!
36683 \****************************************************/
36684/*! no static exports found */
36685/***/ (function(module, exports, __webpack_require__) {
36686
36687"use strict";
36688
36689/* IMPORT */
36690Object.defineProperty(exports, "__esModule", { value: true });
36691var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36692var mix_1 = __webpack_require__(/*! ./mix */ "./node_modules/khroma/dist/methods/mix.js");
36693/* INVERT */
36694function invert(color, weight) {
36695 if (weight === void 0) { weight = 100; }
36696 var inverse = color_1.default.parse(color);
36697 inverse.r = 255 - inverse.r;
36698 inverse.g = 255 - inverse.g;
36699 inverse.b = 255 - inverse.b;
36700 return mix_1.default(inverse, color, weight);
36701}
36702/* EXPORT */
36703exports.default = invert;
36704
36705
36706/***/ }),
36707
36708/***/ "./node_modules/khroma/dist/methods/is_dark.js":
36709/*!*****************************************************!*\
36710 !*** ./node_modules/khroma/dist/methods/is_dark.js ***!
36711 \*****************************************************/
36712/*! no static exports found */
36713/***/ (function(module, exports, __webpack_require__) {
36714
36715"use strict";
36716
36717/* IMPORT */
36718Object.defineProperty(exports, "__esModule", { value: true });
36719var is_light_1 = __webpack_require__(/*! ./is_light */ "./node_modules/khroma/dist/methods/is_light.js");
36720/* IS DARK */
36721function isDark(color) {
36722 return !is_light_1.default(color);
36723}
36724/* EXPORT */
36725exports.default = isDark;
36726
36727
36728/***/ }),
36729
36730/***/ "./node_modules/khroma/dist/methods/is_light.js":
36731/*!******************************************************!*\
36732 !*** ./node_modules/khroma/dist/methods/is_light.js ***!
36733 \******************************************************/
36734/*! no static exports found */
36735/***/ (function(module, exports, __webpack_require__) {
36736
36737"use strict";
36738
36739/* IMPORT */
36740Object.defineProperty(exports, "__esModule", { value: true });
36741var luminance_1 = __webpack_require__(/*! ./luminance */ "./node_modules/khroma/dist/methods/luminance.js");
36742/* IS LIGHT */
36743function isLight(color) {
36744 return luminance_1.default(color) >= .5;
36745}
36746/* EXPORT */
36747exports.default = isLight;
36748
36749
36750/***/ }),
36751
36752/***/ "./node_modules/khroma/dist/methods/is_valid.js":
36753/*!******************************************************!*\
36754 !*** ./node_modules/khroma/dist/methods/is_valid.js ***!
36755 \******************************************************/
36756/*! no static exports found */
36757/***/ (function(module, exports, __webpack_require__) {
36758
36759"use strict";
36760
36761/* IMPORT */
36762Object.defineProperty(exports, "__esModule", { value: true });
36763var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36764/* IS VALID */
36765function isValid(color) {
36766 try {
36767 color_1.default.parse(color);
36768 return true;
36769 }
36770 catch (_a) {
36771 return false;
36772 }
36773}
36774/* EXPORT */
36775exports.default = isValid;
36776
36777
36778/***/ }),
36779
36780/***/ "./node_modules/khroma/dist/methods/lighten.js":
36781/*!*****************************************************!*\
36782 !*** ./node_modules/khroma/dist/methods/lighten.js ***!
36783 \*****************************************************/
36784/*! no static exports found */
36785/***/ (function(module, exports, __webpack_require__) {
36786
36787"use strict";
36788
36789/* IMPORT */
36790Object.defineProperty(exports, "__esModule", { value: true });
36791var adjust_channel_1 = __webpack_require__(/*! ./adjust_channel */ "./node_modules/khroma/dist/methods/adjust_channel.js");
36792/* LIGHTEN */
36793function lighten(color, amount) {
36794 return adjust_channel_1.default(color, 'l', amount);
36795}
36796/* EXPORT */
36797exports.default = lighten;
36798
36799
36800/***/ }),
36801
36802/***/ "./node_modules/khroma/dist/methods/lightness.js":
36803/*!*******************************************************!*\
36804 !*** ./node_modules/khroma/dist/methods/lightness.js ***!
36805 \*******************************************************/
36806/*! no static exports found */
36807/***/ (function(module, exports, __webpack_require__) {
36808
36809"use strict";
36810
36811/* IMPORT */
36812Object.defineProperty(exports, "__esModule", { value: true });
36813var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/methods/channel.js");
36814/* LIGHTNESS */
36815function lightness(color) {
36816 return channel_1.default(color, 'l');
36817}
36818/* EXPORT */
36819exports.default = lightness;
36820
36821
36822/***/ }),
36823
36824/***/ "./node_modules/khroma/dist/methods/luminance.js":
36825/*!*******************************************************!*\
36826 !*** ./node_modules/khroma/dist/methods/luminance.js ***!
36827 \*******************************************************/
36828/*! no static exports found */
36829/***/ (function(module, exports, __webpack_require__) {
36830
36831"use strict";
36832
36833/* IMPORT */
36834Object.defineProperty(exports, "__esModule", { value: true });
36835var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
36836var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36837/* LUMINANCE */
36838//SOURCE: https://planetcalc.com/7779
36839function luminance(color) {
36840 var _a = color_1.default.parse(color), r = _a.r, g = _a.g, b = _a.b, luminance = .2126 * utils_1.default.channel.toLinear(r) + .7152 * utils_1.default.channel.toLinear(g) + .0722 * utils_1.default.channel.toLinear(b);
36841 return utils_1.default.lang.round(luminance);
36842}
36843/* EXPORT */
36844exports.default = luminance;
36845
36846
36847/***/ }),
36848
36849/***/ "./node_modules/khroma/dist/methods/mix.js":
36850/*!*************************************************!*\
36851 !*** ./node_modules/khroma/dist/methods/mix.js ***!
36852 \*************************************************/
36853/*! no static exports found */
36854/***/ (function(module, exports, __webpack_require__) {
36855
36856"use strict";
36857
36858/* IMPORT */
36859Object.defineProperty(exports, "__esModule", { value: true });
36860var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36861var rgba_1 = __webpack_require__(/*! ./rgba */ "./node_modules/khroma/dist/methods/rgba.js");
36862/* MIX */
36863//SOURCE: https://github.com/sass/dart-sass/blob/7457d2e9e7e623d9844ffd037a070cf32d39c348/lib/src/functions/color.dart#L718-L756
36864function mix(color1, color2, weight) {
36865 if (weight === void 0) { weight = 50; }
36866 var _a = color_1.default.parse(color1), r1 = _a.r, g1 = _a.g, b1 = _a.b, a1 = _a.a, _b = color_1.default.parse(color2), r2 = _b.r, g2 = _b.g, b2 = _b.b, a2 = _b.a, weightScale = weight / 100, weightNormalized = (weightScale * 2) - 1, alphaDelta = a1 - a2, weight1combined = ((weightNormalized * alphaDelta) === -1) ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta), weight1 = (weight1combined + 1) / 2, weight2 = 1 - weight1, r = (r1 * weight1) + (r2 * weight2), g = (g1 * weight1) + (g2 * weight2), b = (b1 * weight1) + (b2 * weight2), a = (a1 * weightScale) + (a2 * (1 - weightScale));
36867 return rgba_1.default(r, g, b, a);
36868}
36869/* EXPORT */
36870exports.default = mix;
36871
36872
36873/***/ }),
36874
36875/***/ "./node_modules/khroma/dist/methods/opacify.js":
36876/*!*****************************************************!*\
36877 !*** ./node_modules/khroma/dist/methods/opacify.js ***!
36878 \*****************************************************/
36879/*! no static exports found */
36880/***/ (function(module, exports, __webpack_require__) {
36881
36882"use strict";
36883
36884/* IMPORT */
36885Object.defineProperty(exports, "__esModule", { value: true });
36886var adjust_channel_1 = __webpack_require__(/*! ./adjust_channel */ "./node_modules/khroma/dist/methods/adjust_channel.js");
36887/* OPACIFY */
36888function opacify(color, amount) {
36889 return adjust_channel_1.default(color, 'a', amount);
36890}
36891/* EXPORT */
36892exports.default = opacify;
36893
36894
36895/***/ }),
36896
36897/***/ "./node_modules/khroma/dist/methods/red.js":
36898/*!*************************************************!*\
36899 !*** ./node_modules/khroma/dist/methods/red.js ***!
36900 \*************************************************/
36901/*! no static exports found */
36902/***/ (function(module, exports, __webpack_require__) {
36903
36904"use strict";
36905
36906/* IMPORT */
36907Object.defineProperty(exports, "__esModule", { value: true });
36908var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/methods/channel.js");
36909/* RED */
36910function red(color) {
36911 return channel_1.default(color, 'r');
36912}
36913/* EXPORT */
36914exports.default = red;
36915
36916
36917/***/ }),
36918
36919/***/ "./node_modules/khroma/dist/methods/rgba.js":
36920/*!**************************************************!*\
36921 !*** ./node_modules/khroma/dist/methods/rgba.js ***!
36922 \**************************************************/
36923/*! no static exports found */
36924/***/ (function(module, exports, __webpack_require__) {
36925
36926"use strict";
36927
36928/* IMPORT */
36929Object.defineProperty(exports, "__esModule", { value: true });
36930var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
36931var reusable_1 = __webpack_require__(/*! ../channels/reusable */ "./node_modules/khroma/dist/channels/reusable.js");
36932var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
36933var change_1 = __webpack_require__(/*! ./change */ "./node_modules/khroma/dist/methods/change.js");
36934function rgba(r, g, b, a) {
36935 if (b === void 0) { b = 0; }
36936 if (a === void 0) { a = 1; }
36937 if (typeof r !== 'number')
36938 return change_1.default(r, { a: g });
36939 var channels = reusable_1.default.set({
36940 r: utils_1.default.channel.clamp.r(r),
36941 g: utils_1.default.channel.clamp.g(g),
36942 b: utils_1.default.channel.clamp.b(b),
36943 a: utils_1.default.channel.clamp.a(a)
36944 });
36945 return color_1.default.stringify(channels);
36946}
36947/* EXPORT */
36948exports.default = rgba;
36949
36950
36951/***/ }),
36952
36953/***/ "./node_modules/khroma/dist/methods/saturate.js":
36954/*!******************************************************!*\
36955 !*** ./node_modules/khroma/dist/methods/saturate.js ***!
36956 \******************************************************/
36957/*! no static exports found */
36958/***/ (function(module, exports, __webpack_require__) {
36959
36960"use strict";
36961
36962/* IMPORT */
36963Object.defineProperty(exports, "__esModule", { value: true });
36964var adjust_channel_1 = __webpack_require__(/*! ./adjust_channel */ "./node_modules/khroma/dist/methods/adjust_channel.js");
36965/* SATURATE */
36966function saturate(color, amount) {
36967 return adjust_channel_1.default(color, 's', amount);
36968}
36969/* EXPORT */
36970exports.default = saturate;
36971
36972
36973/***/ }),
36974
36975/***/ "./node_modules/khroma/dist/methods/saturation.js":
36976/*!********************************************************!*\
36977 !*** ./node_modules/khroma/dist/methods/saturation.js ***!
36978 \********************************************************/
36979/*! no static exports found */
36980/***/ (function(module, exports, __webpack_require__) {
36981
36982"use strict";
36983
36984/* IMPORT */
36985Object.defineProperty(exports, "__esModule", { value: true });
36986var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/methods/channel.js");
36987/* SATURATION */
36988function saturation(color) {
36989 return channel_1.default(color, 's');
36990}
36991/* EXPORT */
36992exports.default = saturation;
36993
36994
36995/***/ }),
36996
36997/***/ "./node_modules/khroma/dist/methods/scale.js":
36998/*!***************************************************!*\
36999 !*** ./node_modules/khroma/dist/methods/scale.js ***!
37000 \***************************************************/
37001/*! no static exports found */
37002/***/ (function(module, exports, __webpack_require__) {
37003
37004"use strict";
37005
37006/* IMPORT */
37007Object.defineProperty(exports, "__esModule", { value: true });
37008var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/khroma/dist/utils/index.js");
37009var color_1 = __webpack_require__(/*! ../color */ "./node_modules/khroma/dist/color/index.js");
37010var adjust_1 = __webpack_require__(/*! ./adjust */ "./node_modules/khroma/dist/methods/adjust.js");
37011/* SCALE */
37012function scale(color, channels) {
37013 var ch = color_1.default.parse(color), adjustments = {}, delta = function (amount, weight, max) { return weight > 0 ? (max - amount) * weight / 100 : amount * weight / 100; };
37014 for (var c in channels) {
37015 adjustments[c] = delta(ch[c], channels[c], utils_1.default.channel.max[c]);
37016 }
37017 return adjust_1.default(color, adjustments);
37018}
37019/* EXPORT */
37020exports.default = scale;
37021
37022
37023/***/ }),
37024
37025/***/ "./node_modules/khroma/dist/methods/transparentize.js":
37026/*!************************************************************!*\
37027 !*** ./node_modules/khroma/dist/methods/transparentize.js ***!
37028 \************************************************************/
37029/*! no static exports found */
37030/***/ (function(module, exports, __webpack_require__) {
37031
37032"use strict";
37033
37034/* IMPORT */
37035Object.defineProperty(exports, "__esModule", { value: true });
37036var adjust_channel_1 = __webpack_require__(/*! ./adjust_channel */ "./node_modules/khroma/dist/methods/adjust_channel.js");
37037/* TRANSPARENTIZE */
37038function transparentize(color, amount) {
37039 return adjust_channel_1.default(color, 'a', -amount);
37040}
37041/* EXPORT */
37042exports.default = transparentize;
37043
37044
37045/***/ }),
37046
37047/***/ "./node_modules/khroma/dist/types.js":
37048/*!*******************************************!*\
37049 !*** ./node_modules/khroma/dist/types.js ***!
37050 \*******************************************/
37051/*! no static exports found */
37052/***/ (function(module, exports, __webpack_require__) {
37053
37054"use strict";
37055
37056/* ENUMS */
37057Object.defineProperty(exports, "__esModule", { value: true });
37058var TYPE;
37059(function (TYPE) {
37060 TYPE[TYPE["ALL"] = 0] = "ALL";
37061 TYPE[TYPE["RGB"] = 1] = "RGB";
37062 TYPE[TYPE["HSL"] = 2] = "HSL";
37063})(TYPE || (TYPE = {}));
37064exports.TYPE = TYPE;
37065;
37066
37067
37068/***/ }),
37069
37070/***/ "./node_modules/khroma/dist/utils/channel.js":
37071/*!***************************************************!*\
37072 !*** ./node_modules/khroma/dist/utils/channel.js ***!
37073 \***************************************************/
37074/*! no static exports found */
37075/***/ (function(module, exports, __webpack_require__) {
37076
37077"use strict";
37078
37079/* IMPORT */
37080Object.defineProperty(exports, "__esModule", { value: true });
37081/* CHANNEL */
37082var Channel = {
37083 /* CLAMP */
37084 min: {
37085 r: 0,
37086 g: 0,
37087 b: 0,
37088 s: 0,
37089 l: 0,
37090 a: 0
37091 },
37092 max: {
37093 r: 255,
37094 g: 255,
37095 b: 255,
37096 h: 360,
37097 s: 100,
37098 l: 100,
37099 a: 1
37100 },
37101 clamp: {
37102 r: function (r) { return r >= 255 ? 255 : (r < 0 ? 0 : r); },
37103 g: function (g) { return g >= 255 ? 255 : (g < 0 ? 0 : g); },
37104 b: function (b) { return b >= 255 ? 255 : (b < 0 ? 0 : b); },
37105 h: function (h) { return h % 360; },
37106 s: function (s) { return s >= 100 ? 100 : (s < 0 ? 0 : s); },
37107 l: function (l) { return l >= 100 ? 100 : (l < 0 ? 0 : l); },
37108 a: function (a) { return a >= 1 ? 1 : (a < 0 ? 0 : a); }
37109 },
37110 /* CONVERSION */
37111 //SOURCE: https://planetcalc.com/7779
37112 toLinear: function (c) {
37113 var n = c / 255;
37114 return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;
37115 },
37116 //SOURCE: https://gist.github.com/mjackson/5311256
37117 hue2rgb: function (p, q, t) {
37118 if (t < 0)
37119 t += 1;
37120 if (t > 1)
37121 t -= 1;
37122 if (t < 1 / 6)
37123 return p + (q - p) * 6 * t;
37124 if (t < 1 / 2)
37125 return q;
37126 if (t < 2 / 3)
37127 return p + (q - p) * (2 / 3 - t) * 6;
37128 return p;
37129 },
37130 hsl2rgb: function (_a, channel) {
37131 var h = _a.h, s = _a.s, l = _a.l;
37132 if (s === 100)
37133 return l * 2.55; // Achromatic
37134 h /= 360;
37135 s /= 100;
37136 l /= 100;
37137 var q = (l < .5) ? l * (1 + s) : (l + s) - (l * s), p = 2 * l - q;
37138 switch (channel) {
37139 case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;
37140 case 'g': return Channel.hue2rgb(p, q, h) * 255;
37141 case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;
37142 }
37143 },
37144 rgb2hsl: function (_a, channel) {
37145 var r = _a.r, g = _a.g, b = _a.b;
37146 r /= 255;
37147 g /= 255;
37148 b /= 255;
37149 var max = Math.max(r, g, b), min = Math.min(r, g, b), l = (max + min) / 2;
37150 if (channel === 'l')
37151 return l * 100;
37152 if (max === min)
37153 return 0; // Achromatic
37154 var d = max - min, s = (l > .5) ? d / (2 - max - min) : d / (max + min);
37155 if (channel === 's')
37156 return s * 100;
37157 switch (max) {
37158 case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;
37159 case g: return ((b - r) / d + 2) * 60;
37160 case b: return ((r - g) / d + 4) * 60;
37161 default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement
37162 }
37163 }
37164};
37165/* EXPORT */
37166exports.default = Channel;
37167
37168
37169/***/ }),
37170
37171/***/ "./node_modules/khroma/dist/utils/index.js":
37172/*!*************************************************!*\
37173 !*** ./node_modules/khroma/dist/utils/index.js ***!
37174 \*************************************************/
37175/*! no static exports found */
37176/***/ (function(module, exports, __webpack_require__) {
37177
37178"use strict";
37179
37180/* IMPORT */
37181Object.defineProperty(exports, "__esModule", { value: true });
37182var channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/khroma/dist/utils/channel.js");
37183var lang_1 = __webpack_require__(/*! ./lang */ "./node_modules/khroma/dist/utils/lang.js");
37184var unit_1 = __webpack_require__(/*! ./unit */ "./node_modules/khroma/dist/utils/unit.js");
37185/* UTILS */
37186var Utils = {
37187 channel: channel_1.default,
37188 lang: lang_1.default,
37189 unit: unit_1.default
37190};
37191/* EXPORT */
37192exports.default = Utils;
37193
37194
37195/***/ }),
37196
37197/***/ "./node_modules/khroma/dist/utils/lang.js":
37198/*!************************************************!*\
37199 !*** ./node_modules/khroma/dist/utils/lang.js ***!
37200 \************************************************/
37201/*! no static exports found */
37202/***/ (function(module, exports, __webpack_require__) {
37203
37204"use strict";
37205
37206/* LANG */
37207Object.defineProperty(exports, "__esModule", { value: true });
37208var Lang = {
37209 round: function (number) {
37210 return Math.round(number * 10000000000) / 10000000000;
37211 }
37212};
37213/* EXPORT */
37214exports.default = Lang;
37215
37216
37217/***/ }),
37218
37219/***/ "./node_modules/khroma/dist/utils/unit.js":
37220/*!************************************************!*\
37221 !*** ./node_modules/khroma/dist/utils/unit.js ***!
37222 \************************************************/
37223/*! no static exports found */
37224/***/ (function(module, exports, __webpack_require__) {
37225
37226"use strict";
37227
37228/* UNIT */
37229Object.defineProperty(exports, "__esModule", { value: true });
37230var Unit = {
37231 frac2hex: function (frac) {
37232 var hex = Math.round(frac * 255).toString(16);
37233 return hex.length > 1 ? hex : "0" + hex;
37234 },
37235 dec2hex: function (dec) {
37236 var hex = Math.round(dec).toString(16);
37237 return hex.length > 1 ? hex : "0" + hex;
37238 }
37239};
37240/* EXPORT */
37241exports.default = Unit;
37242
37243
37244/***/ }),
37245
37246/***/ "./node_modules/lodash/_DataView.js":
37247/*!******************************************!*\
37248 !*** ./node_modules/lodash/_DataView.js ***!
37249 \******************************************/
37250/*! no static exports found */
37251/***/ (function(module, exports, __webpack_require__) {
37252
37253var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
37254 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
37255
37256/* Built-in method references that are verified to be native. */
37257var DataView = getNative(root, 'DataView');
37258
37259module.exports = DataView;
37260
37261
37262/***/ }),
37263
37264/***/ "./node_modules/lodash/_Hash.js":
37265/*!**************************************!*\
37266 !*** ./node_modules/lodash/_Hash.js ***!
37267 \**************************************/
37268/*! no static exports found */
37269/***/ (function(module, exports, __webpack_require__) {
37270
37271var hashClear = __webpack_require__(/*! ./_hashClear */ "./node_modules/lodash/_hashClear.js"),
37272 hashDelete = __webpack_require__(/*! ./_hashDelete */ "./node_modules/lodash/_hashDelete.js"),
37273 hashGet = __webpack_require__(/*! ./_hashGet */ "./node_modules/lodash/_hashGet.js"),
37274 hashHas = __webpack_require__(/*! ./_hashHas */ "./node_modules/lodash/_hashHas.js"),
37275 hashSet = __webpack_require__(/*! ./_hashSet */ "./node_modules/lodash/_hashSet.js");
37276
37277/**
37278 * Creates a hash object.
37279 *
37280 * @private
37281 * @constructor
37282 * @param {Array} [entries] The key-value pairs to cache.
37283 */
37284function Hash(entries) {
37285 var index = -1,
37286 length = entries == null ? 0 : entries.length;
37287
37288 this.clear();
37289 while (++index < length) {
37290 var entry = entries[index];
37291 this.set(entry[0], entry[1]);
37292 }
37293}
37294
37295// Add methods to `Hash`.
37296Hash.prototype.clear = hashClear;
37297Hash.prototype['delete'] = hashDelete;
37298Hash.prototype.get = hashGet;
37299Hash.prototype.has = hashHas;
37300Hash.prototype.set = hashSet;
37301
37302module.exports = Hash;
37303
37304
37305/***/ }),
37306
37307/***/ "./node_modules/lodash/_ListCache.js":
37308/*!*******************************************!*\
37309 !*** ./node_modules/lodash/_ListCache.js ***!
37310 \*******************************************/
37311/*! no static exports found */
37312/***/ (function(module, exports, __webpack_require__) {
37313
37314var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ "./node_modules/lodash/_listCacheClear.js"),
37315 listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ "./node_modules/lodash/_listCacheDelete.js"),
37316 listCacheGet = __webpack_require__(/*! ./_listCacheGet */ "./node_modules/lodash/_listCacheGet.js"),
37317 listCacheHas = __webpack_require__(/*! ./_listCacheHas */ "./node_modules/lodash/_listCacheHas.js"),
37318 listCacheSet = __webpack_require__(/*! ./_listCacheSet */ "./node_modules/lodash/_listCacheSet.js");
37319
37320/**
37321 * Creates an list cache object.
37322 *
37323 * @private
37324 * @constructor
37325 * @param {Array} [entries] The key-value pairs to cache.
37326 */
37327function ListCache(entries) {
37328 var index = -1,
37329 length = entries == null ? 0 : entries.length;
37330
37331 this.clear();
37332 while (++index < length) {
37333 var entry = entries[index];
37334 this.set(entry[0], entry[1]);
37335 }
37336}
37337
37338// Add methods to `ListCache`.
37339ListCache.prototype.clear = listCacheClear;
37340ListCache.prototype['delete'] = listCacheDelete;
37341ListCache.prototype.get = listCacheGet;
37342ListCache.prototype.has = listCacheHas;
37343ListCache.prototype.set = listCacheSet;
37344
37345module.exports = ListCache;
37346
37347
37348/***/ }),
37349
37350/***/ "./node_modules/lodash/_Map.js":
37351/*!*************************************!*\
37352 !*** ./node_modules/lodash/_Map.js ***!
37353 \*************************************/
37354/*! no static exports found */
37355/***/ (function(module, exports, __webpack_require__) {
37356
37357var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
37358 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
37359
37360/* Built-in method references that are verified to be native. */
37361var Map = getNative(root, 'Map');
37362
37363module.exports = Map;
37364
37365
37366/***/ }),
37367
37368/***/ "./node_modules/lodash/_MapCache.js":
37369/*!******************************************!*\
37370 !*** ./node_modules/lodash/_MapCache.js ***!
37371 \******************************************/
37372/*! no static exports found */
37373/***/ (function(module, exports, __webpack_require__) {
37374
37375var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ "./node_modules/lodash/_mapCacheClear.js"),
37376 mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ "./node_modules/lodash/_mapCacheDelete.js"),
37377 mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ "./node_modules/lodash/_mapCacheGet.js"),
37378 mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ "./node_modules/lodash/_mapCacheHas.js"),
37379 mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ "./node_modules/lodash/_mapCacheSet.js");
37380
37381/**
37382 * Creates a map cache object to store key-value pairs.
37383 *
37384 * @private
37385 * @constructor
37386 * @param {Array} [entries] The key-value pairs to cache.
37387 */
37388function MapCache(entries) {
37389 var index = -1,
37390 length = entries == null ? 0 : entries.length;
37391
37392 this.clear();
37393 while (++index < length) {
37394 var entry = entries[index];
37395 this.set(entry[0], entry[1]);
37396 }
37397}
37398
37399// Add methods to `MapCache`.
37400MapCache.prototype.clear = mapCacheClear;
37401MapCache.prototype['delete'] = mapCacheDelete;
37402MapCache.prototype.get = mapCacheGet;
37403MapCache.prototype.has = mapCacheHas;
37404MapCache.prototype.set = mapCacheSet;
37405
37406module.exports = MapCache;
37407
37408
37409/***/ }),
37410
37411/***/ "./node_modules/lodash/_Promise.js":
37412/*!*****************************************!*\
37413 !*** ./node_modules/lodash/_Promise.js ***!
37414 \*****************************************/
37415/*! no static exports found */
37416/***/ (function(module, exports, __webpack_require__) {
37417
37418var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
37419 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
37420
37421/* Built-in method references that are verified to be native. */
37422var Promise = getNative(root, 'Promise');
37423
37424module.exports = Promise;
37425
37426
37427/***/ }),
37428
37429/***/ "./node_modules/lodash/_Set.js":
37430/*!*************************************!*\
37431 !*** ./node_modules/lodash/_Set.js ***!
37432 \*************************************/
37433/*! no static exports found */
37434/***/ (function(module, exports, __webpack_require__) {
37435
37436var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
37437 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
37438
37439/* Built-in method references that are verified to be native. */
37440var Set = getNative(root, 'Set');
37441
37442module.exports = Set;
37443
37444
37445/***/ }),
37446
37447/***/ "./node_modules/lodash/_SetCache.js":
37448/*!******************************************!*\
37449 !*** ./node_modules/lodash/_SetCache.js ***!
37450 \******************************************/
37451/*! no static exports found */
37452/***/ (function(module, exports, __webpack_require__) {
37453
37454var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js"),
37455 setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ "./node_modules/lodash/_setCacheAdd.js"),
37456 setCacheHas = __webpack_require__(/*! ./_setCacheHas */ "./node_modules/lodash/_setCacheHas.js");
37457
37458/**
37459 *
37460 * Creates an array cache object to store unique values.
37461 *
37462 * @private
37463 * @constructor
37464 * @param {Array} [values] The values to cache.
37465 */
37466function SetCache(values) {
37467 var index = -1,
37468 length = values == null ? 0 : values.length;
37469
37470 this.__data__ = new MapCache;
37471 while (++index < length) {
37472 this.add(values[index]);
37473 }
37474}
37475
37476// Add methods to `SetCache`.
37477SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
37478SetCache.prototype.has = setCacheHas;
37479
37480module.exports = SetCache;
37481
37482
37483/***/ }),
37484
37485/***/ "./node_modules/lodash/_Stack.js":
37486/*!***************************************!*\
37487 !*** ./node_modules/lodash/_Stack.js ***!
37488 \***************************************/
37489/*! no static exports found */
37490/***/ (function(module, exports, __webpack_require__) {
37491
37492var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
37493 stackClear = __webpack_require__(/*! ./_stackClear */ "./node_modules/lodash/_stackClear.js"),
37494 stackDelete = __webpack_require__(/*! ./_stackDelete */ "./node_modules/lodash/_stackDelete.js"),
37495 stackGet = __webpack_require__(/*! ./_stackGet */ "./node_modules/lodash/_stackGet.js"),
37496 stackHas = __webpack_require__(/*! ./_stackHas */ "./node_modules/lodash/_stackHas.js"),
37497 stackSet = __webpack_require__(/*! ./_stackSet */ "./node_modules/lodash/_stackSet.js");
37498
37499/**
37500 * Creates a stack cache object to store key-value pairs.
37501 *
37502 * @private
37503 * @constructor
37504 * @param {Array} [entries] The key-value pairs to cache.
37505 */
37506function Stack(entries) {
37507 var data = this.__data__ = new ListCache(entries);
37508 this.size = data.size;
37509}
37510
37511// Add methods to `Stack`.
37512Stack.prototype.clear = stackClear;
37513Stack.prototype['delete'] = stackDelete;
37514Stack.prototype.get = stackGet;
37515Stack.prototype.has = stackHas;
37516Stack.prototype.set = stackSet;
37517
37518module.exports = Stack;
37519
37520
37521/***/ }),
37522
37523/***/ "./node_modules/lodash/_Symbol.js":
37524/*!****************************************!*\
37525 !*** ./node_modules/lodash/_Symbol.js ***!
37526 \****************************************/
37527/*! no static exports found */
37528/***/ (function(module, exports, __webpack_require__) {
37529
37530var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
37531
37532/** Built-in value references. */
37533var Symbol = root.Symbol;
37534
37535module.exports = Symbol;
37536
37537
37538/***/ }),
37539
37540/***/ "./node_modules/lodash/_Uint8Array.js":
37541/*!********************************************!*\
37542 !*** ./node_modules/lodash/_Uint8Array.js ***!
37543 \********************************************/
37544/*! no static exports found */
37545/***/ (function(module, exports, __webpack_require__) {
37546
37547var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
37548
37549/** Built-in value references. */
37550var Uint8Array = root.Uint8Array;
37551
37552module.exports = Uint8Array;
37553
37554
37555/***/ }),
37556
37557/***/ "./node_modules/lodash/_WeakMap.js":
37558/*!*****************************************!*\
37559 !*** ./node_modules/lodash/_WeakMap.js ***!
37560 \*****************************************/
37561/*! no static exports found */
37562/***/ (function(module, exports, __webpack_require__) {
37563
37564var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
37565 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
37566
37567/* Built-in method references that are verified to be native. */
37568var WeakMap = getNative(root, 'WeakMap');
37569
37570module.exports = WeakMap;
37571
37572
37573/***/ }),
37574
37575/***/ "./node_modules/lodash/_apply.js":
37576/*!***************************************!*\
37577 !*** ./node_modules/lodash/_apply.js ***!
37578 \***************************************/
37579/*! no static exports found */
37580/***/ (function(module, exports) {
37581
37582/**
37583 * A faster alternative to `Function#apply`, this function invokes `func`
37584 * with the `this` binding of `thisArg` and the arguments of `args`.
37585 *
37586 * @private
37587 * @param {Function} func The function to invoke.
37588 * @param {*} thisArg The `this` binding of `func`.
37589 * @param {Array} args The arguments to invoke `func` with.
37590 * @returns {*} Returns the result of `func`.
37591 */
37592function apply(func, thisArg, args) {
37593 switch (args.length) {
37594 case 0: return func.call(thisArg);
37595 case 1: return func.call(thisArg, args[0]);
37596 case 2: return func.call(thisArg, args[0], args[1]);
37597 case 3: return func.call(thisArg, args[0], args[1], args[2]);
37598 }
37599 return func.apply(thisArg, args);
37600}
37601
37602module.exports = apply;
37603
37604
37605/***/ }),
37606
37607/***/ "./node_modules/lodash/_arrayEach.js":
37608/*!*******************************************!*\
37609 !*** ./node_modules/lodash/_arrayEach.js ***!
37610 \*******************************************/
37611/*! no static exports found */
37612/***/ (function(module, exports) {
37613
37614/**
37615 * A specialized version of `_.forEach` for arrays without support for
37616 * iteratee shorthands.
37617 *
37618 * @private
37619 * @param {Array} [array] The array to iterate over.
37620 * @param {Function} iteratee The function invoked per iteration.
37621 * @returns {Array} Returns `array`.
37622 */
37623function arrayEach(array, iteratee) {
37624 var index = -1,
37625 length = array == null ? 0 : array.length;
37626
37627 while (++index < length) {
37628 if (iteratee(array[index], index, array) === false) {
37629 break;
37630 }
37631 }
37632 return array;
37633}
37634
37635module.exports = arrayEach;
37636
37637
37638/***/ }),
37639
37640/***/ "./node_modules/lodash/_arrayFilter.js":
37641/*!*********************************************!*\
37642 !*** ./node_modules/lodash/_arrayFilter.js ***!
37643 \*********************************************/
37644/*! no static exports found */
37645/***/ (function(module, exports) {
37646
37647/**
37648 * A specialized version of `_.filter` for arrays without support for
37649 * iteratee shorthands.
37650 *
37651 * @private
37652 * @param {Array} [array] The array to iterate over.
37653 * @param {Function} predicate The function invoked per iteration.
37654 * @returns {Array} Returns the new filtered array.
37655 */
37656function arrayFilter(array, predicate) {
37657 var index = -1,
37658 length = array == null ? 0 : array.length,
37659 resIndex = 0,
37660 result = [];
37661
37662 while (++index < length) {
37663 var value = array[index];
37664 if (predicate(value, index, array)) {
37665 result[resIndex++] = value;
37666 }
37667 }
37668 return result;
37669}
37670
37671module.exports = arrayFilter;
37672
37673
37674/***/ }),
37675
37676/***/ "./node_modules/lodash/_arrayIncludes.js":
37677/*!***********************************************!*\
37678 !*** ./node_modules/lodash/_arrayIncludes.js ***!
37679 \***********************************************/
37680/*! no static exports found */
37681/***/ (function(module, exports, __webpack_require__) {
37682
37683var baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ "./node_modules/lodash/_baseIndexOf.js");
37684
37685/**
37686 * A specialized version of `_.includes` for arrays without support for
37687 * specifying an index to search from.
37688 *
37689 * @private
37690 * @param {Array} [array] The array to inspect.
37691 * @param {*} target The value to search for.
37692 * @returns {boolean} Returns `true` if `target` is found, else `false`.
37693 */
37694function arrayIncludes(array, value) {
37695 var length = array == null ? 0 : array.length;
37696 return !!length && baseIndexOf(array, value, 0) > -1;
37697}
37698
37699module.exports = arrayIncludes;
37700
37701
37702/***/ }),
37703
37704/***/ "./node_modules/lodash/_arrayIncludesWith.js":
37705/*!***************************************************!*\
37706 !*** ./node_modules/lodash/_arrayIncludesWith.js ***!
37707 \***************************************************/
37708/*! no static exports found */
37709/***/ (function(module, exports) {
37710
37711/**
37712 * This function is like `arrayIncludes` except that it accepts a comparator.
37713 *
37714 * @private
37715 * @param {Array} [array] The array to inspect.
37716 * @param {*} target The value to search for.
37717 * @param {Function} comparator The comparator invoked per element.
37718 * @returns {boolean} Returns `true` if `target` is found, else `false`.
37719 */
37720function arrayIncludesWith(array, value, comparator) {
37721 var index = -1,
37722 length = array == null ? 0 : array.length;
37723
37724 while (++index < length) {
37725 if (comparator(value, array[index])) {
37726 return true;
37727 }
37728 }
37729 return false;
37730}
37731
37732module.exports = arrayIncludesWith;
37733
37734
37735/***/ }),
37736
37737/***/ "./node_modules/lodash/_arrayLikeKeys.js":
37738/*!***********************************************!*\
37739 !*** ./node_modules/lodash/_arrayLikeKeys.js ***!
37740 \***********************************************/
37741/*! no static exports found */
37742/***/ (function(module, exports, __webpack_require__) {
37743
37744var baseTimes = __webpack_require__(/*! ./_baseTimes */ "./node_modules/lodash/_baseTimes.js"),
37745 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
37746 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
37747 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
37748 isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
37749 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
37750
37751/** Used for built-in method references. */
37752var objectProto = Object.prototype;
37753
37754/** Used to check objects for own properties. */
37755var hasOwnProperty = objectProto.hasOwnProperty;
37756
37757/**
37758 * Creates an array of the enumerable property names of the array-like `value`.
37759 *
37760 * @private
37761 * @param {*} value The value to query.
37762 * @param {boolean} inherited Specify returning inherited property names.
37763 * @returns {Array} Returns the array of property names.
37764 */
37765function arrayLikeKeys(value, inherited) {
37766 var isArr = isArray(value),
37767 isArg = !isArr && isArguments(value),
37768 isBuff = !isArr && !isArg && isBuffer(value),
37769 isType = !isArr && !isArg && !isBuff && isTypedArray(value),
37770 skipIndexes = isArr || isArg || isBuff || isType,
37771 result = skipIndexes ? baseTimes(value.length, String) : [],
37772 length = result.length;
37773
37774 for (var key in value) {
37775 if ((inherited || hasOwnProperty.call(value, key)) &&
37776 !(skipIndexes && (
37777 // Safari 9 has enumerable `arguments.length` in strict mode.
37778 key == 'length' ||
37779 // Node.js 0.10 has enumerable non-index properties on buffers.
37780 (isBuff && (key == 'offset' || key == 'parent')) ||
37781 // PhantomJS 2 has enumerable non-index properties on typed arrays.
37782 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
37783 // Skip index properties.
37784 isIndex(key, length)
37785 ))) {
37786 result.push(key);
37787 }
37788 }
37789 return result;
37790}
37791
37792module.exports = arrayLikeKeys;
37793
37794
37795/***/ }),
37796
37797/***/ "./node_modules/lodash/_arrayMap.js":
37798/*!******************************************!*\
37799 !*** ./node_modules/lodash/_arrayMap.js ***!
37800 \******************************************/
37801/*! no static exports found */
37802/***/ (function(module, exports) {
37803
37804/**
37805 * A specialized version of `_.map` for arrays without support for iteratee
37806 * shorthands.
37807 *
37808 * @private
37809 * @param {Array} [array] The array to iterate over.
37810 * @param {Function} iteratee The function invoked per iteration.
37811 * @returns {Array} Returns the new mapped array.
37812 */
37813function arrayMap(array, iteratee) {
37814 var index = -1,
37815 length = array == null ? 0 : array.length,
37816 result = Array(length);
37817
37818 while (++index < length) {
37819 result[index] = iteratee(array[index], index, array);
37820 }
37821 return result;
37822}
37823
37824module.exports = arrayMap;
37825
37826
37827/***/ }),
37828
37829/***/ "./node_modules/lodash/_arrayPush.js":
37830/*!*******************************************!*\
37831 !*** ./node_modules/lodash/_arrayPush.js ***!
37832 \*******************************************/
37833/*! no static exports found */
37834/***/ (function(module, exports) {
37835
37836/**
37837 * Appends the elements of `values` to `array`.
37838 *
37839 * @private
37840 * @param {Array} array The array to modify.
37841 * @param {Array} values The values to append.
37842 * @returns {Array} Returns `array`.
37843 */
37844function arrayPush(array, values) {
37845 var index = -1,
37846 length = values.length,
37847 offset = array.length;
37848
37849 while (++index < length) {
37850 array[offset + index] = values[index];
37851 }
37852 return array;
37853}
37854
37855module.exports = arrayPush;
37856
37857
37858/***/ }),
37859
37860/***/ "./node_modules/lodash/_arrayReduce.js":
37861/*!*********************************************!*\
37862 !*** ./node_modules/lodash/_arrayReduce.js ***!
37863 \*********************************************/
37864/*! no static exports found */
37865/***/ (function(module, exports) {
37866
37867/**
37868 * A specialized version of `_.reduce` for arrays without support for
37869 * iteratee shorthands.
37870 *
37871 * @private
37872 * @param {Array} [array] The array to iterate over.
37873 * @param {Function} iteratee The function invoked per iteration.
37874 * @param {*} [accumulator] The initial value.
37875 * @param {boolean} [initAccum] Specify using the first element of `array` as
37876 * the initial value.
37877 * @returns {*} Returns the accumulated value.
37878 */
37879function arrayReduce(array, iteratee, accumulator, initAccum) {
37880 var index = -1,
37881 length = array == null ? 0 : array.length;
37882
37883 if (initAccum && length) {
37884 accumulator = array[++index];
37885 }
37886 while (++index < length) {
37887 accumulator = iteratee(accumulator, array[index], index, array);
37888 }
37889 return accumulator;
37890}
37891
37892module.exports = arrayReduce;
37893
37894
37895/***/ }),
37896
37897/***/ "./node_modules/lodash/_arraySome.js":
37898/*!*******************************************!*\
37899 !*** ./node_modules/lodash/_arraySome.js ***!
37900 \*******************************************/
37901/*! no static exports found */
37902/***/ (function(module, exports) {
37903
37904/**
37905 * A specialized version of `_.some` for arrays without support for iteratee
37906 * shorthands.
37907 *
37908 * @private
37909 * @param {Array} [array] The array to iterate over.
37910 * @param {Function} predicate The function invoked per iteration.
37911 * @returns {boolean} Returns `true` if any element passes the predicate check,
37912 * else `false`.
37913 */
37914function arraySome(array, predicate) {
37915 var index = -1,
37916 length = array == null ? 0 : array.length;
37917
37918 while (++index < length) {
37919 if (predicate(array[index], index, array)) {
37920 return true;
37921 }
37922 }
37923 return false;
37924}
37925
37926module.exports = arraySome;
37927
37928
37929/***/ }),
37930
37931/***/ "./node_modules/lodash/_asciiSize.js":
37932/*!*******************************************!*\
37933 !*** ./node_modules/lodash/_asciiSize.js ***!
37934 \*******************************************/
37935/*! no static exports found */
37936/***/ (function(module, exports, __webpack_require__) {
37937
37938var baseProperty = __webpack_require__(/*! ./_baseProperty */ "./node_modules/lodash/_baseProperty.js");
37939
37940/**
37941 * Gets the size of an ASCII `string`.
37942 *
37943 * @private
37944 * @param {string} string The string inspect.
37945 * @returns {number} Returns the string size.
37946 */
37947var asciiSize = baseProperty('length');
37948
37949module.exports = asciiSize;
37950
37951
37952/***/ }),
37953
37954/***/ "./node_modules/lodash/_assignMergeValue.js":
37955/*!**************************************************!*\
37956 !*** ./node_modules/lodash/_assignMergeValue.js ***!
37957 \**************************************************/
37958/*! no static exports found */
37959/***/ (function(module, exports, __webpack_require__) {
37960
37961var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
37962 eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
37963
37964/**
37965 * This function is like `assignValue` except that it doesn't assign
37966 * `undefined` values.
37967 *
37968 * @private
37969 * @param {Object} object The object to modify.
37970 * @param {string} key The key of the property to assign.
37971 * @param {*} value The value to assign.
37972 */
37973function assignMergeValue(object, key, value) {
37974 if ((value !== undefined && !eq(object[key], value)) ||
37975 (value === undefined && !(key in object))) {
37976 baseAssignValue(object, key, value);
37977 }
37978}
37979
37980module.exports = assignMergeValue;
37981
37982
37983/***/ }),
37984
37985/***/ "./node_modules/lodash/_assignValue.js":
37986/*!*********************************************!*\
37987 !*** ./node_modules/lodash/_assignValue.js ***!
37988 \*********************************************/
37989/*! no static exports found */
37990/***/ (function(module, exports, __webpack_require__) {
37991
37992var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
37993 eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
37994
37995/** Used for built-in method references. */
37996var objectProto = Object.prototype;
37997
37998/** Used to check objects for own properties. */
37999var hasOwnProperty = objectProto.hasOwnProperty;
38000
38001/**
38002 * Assigns `value` to `key` of `object` if the existing value is not equivalent
38003 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
38004 * for equality comparisons.
38005 *
38006 * @private
38007 * @param {Object} object The object to modify.
38008 * @param {string} key The key of the property to assign.
38009 * @param {*} value The value to assign.
38010 */
38011function assignValue(object, key, value) {
38012 var objValue = object[key];
38013 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
38014 (value === undefined && !(key in object))) {
38015 baseAssignValue(object, key, value);
38016 }
38017}
38018
38019module.exports = assignValue;
38020
38021
38022/***/ }),
38023
38024/***/ "./node_modules/lodash/_assocIndexOf.js":
38025/*!**********************************************!*\
38026 !*** ./node_modules/lodash/_assocIndexOf.js ***!
38027 \**********************************************/
38028/*! no static exports found */
38029/***/ (function(module, exports, __webpack_require__) {
38030
38031var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
38032
38033/**
38034 * Gets the index at which the `key` is found in `array` of key-value pairs.
38035 *
38036 * @private
38037 * @param {Array} array The array to inspect.
38038 * @param {*} key The key to search for.
38039 * @returns {number} Returns the index of the matched value, else `-1`.
38040 */
38041function assocIndexOf(array, key) {
38042 var length = array.length;
38043 while (length--) {
38044 if (eq(array[length][0], key)) {
38045 return length;
38046 }
38047 }
38048 return -1;
38049}
38050
38051module.exports = assocIndexOf;
38052
38053
38054/***/ }),
38055
38056/***/ "./node_modules/lodash/_baseAssign.js":
38057/*!********************************************!*\
38058 !*** ./node_modules/lodash/_baseAssign.js ***!
38059 \********************************************/
38060/*! no static exports found */
38061/***/ (function(module, exports, __webpack_require__) {
38062
38063var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
38064 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
38065
38066/**
38067 * The base implementation of `_.assign` without support for multiple sources
38068 * or `customizer` functions.
38069 *
38070 * @private
38071 * @param {Object} object The destination object.
38072 * @param {Object} source The source object.
38073 * @returns {Object} Returns `object`.
38074 */
38075function baseAssign(object, source) {
38076 return object && copyObject(source, keys(source), object);
38077}
38078
38079module.exports = baseAssign;
38080
38081
38082/***/ }),
38083
38084/***/ "./node_modules/lodash/_baseAssignIn.js":
38085/*!**********************************************!*\
38086 !*** ./node_modules/lodash/_baseAssignIn.js ***!
38087 \**********************************************/
38088/*! no static exports found */
38089/***/ (function(module, exports, __webpack_require__) {
38090
38091var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
38092 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
38093
38094/**
38095 * The base implementation of `_.assignIn` without support for multiple sources
38096 * or `customizer` functions.
38097 *
38098 * @private
38099 * @param {Object} object The destination object.
38100 * @param {Object} source The source object.
38101 * @returns {Object} Returns `object`.
38102 */
38103function baseAssignIn(object, source) {
38104 return object && copyObject(source, keysIn(source), object);
38105}
38106
38107module.exports = baseAssignIn;
38108
38109
38110/***/ }),
38111
38112/***/ "./node_modules/lodash/_baseAssignValue.js":
38113/*!*************************************************!*\
38114 !*** ./node_modules/lodash/_baseAssignValue.js ***!
38115 \*************************************************/
38116/*! no static exports found */
38117/***/ (function(module, exports, __webpack_require__) {
38118
38119var defineProperty = __webpack_require__(/*! ./_defineProperty */ "./node_modules/lodash/_defineProperty.js");
38120
38121/**
38122 * The base implementation of `assignValue` and `assignMergeValue` without
38123 * value checks.
38124 *
38125 * @private
38126 * @param {Object} object The object to modify.
38127 * @param {string} key The key of the property to assign.
38128 * @param {*} value The value to assign.
38129 */
38130function baseAssignValue(object, key, value) {
38131 if (key == '__proto__' && defineProperty) {
38132 defineProperty(object, key, {
38133 'configurable': true,
38134 'enumerable': true,
38135 'value': value,
38136 'writable': true
38137 });
38138 } else {
38139 object[key] = value;
38140 }
38141}
38142
38143module.exports = baseAssignValue;
38144
38145
38146/***/ }),
38147
38148/***/ "./node_modules/lodash/_baseClone.js":
38149/*!*******************************************!*\
38150 !*** ./node_modules/lodash/_baseClone.js ***!
38151 \*******************************************/
38152/*! no static exports found */
38153/***/ (function(module, exports, __webpack_require__) {
38154
38155var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
38156 arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),
38157 assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
38158 baseAssign = __webpack_require__(/*! ./_baseAssign */ "./node_modules/lodash/_baseAssign.js"),
38159 baseAssignIn = __webpack_require__(/*! ./_baseAssignIn */ "./node_modules/lodash/_baseAssignIn.js"),
38160 cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ "./node_modules/lodash/_cloneBuffer.js"),
38161 copyArray = __webpack_require__(/*! ./_copyArray */ "./node_modules/lodash/_copyArray.js"),
38162 copySymbols = __webpack_require__(/*! ./_copySymbols */ "./node_modules/lodash/_copySymbols.js"),
38163 copySymbolsIn = __webpack_require__(/*! ./_copySymbolsIn */ "./node_modules/lodash/_copySymbolsIn.js"),
38164 getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./node_modules/lodash/_getAllKeys.js"),
38165 getAllKeysIn = __webpack_require__(/*! ./_getAllKeysIn */ "./node_modules/lodash/_getAllKeysIn.js"),
38166 getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
38167 initCloneArray = __webpack_require__(/*! ./_initCloneArray */ "./node_modules/lodash/_initCloneArray.js"),
38168 initCloneByTag = __webpack_require__(/*! ./_initCloneByTag */ "./node_modules/lodash/_initCloneByTag.js"),
38169 initCloneObject = __webpack_require__(/*! ./_initCloneObject */ "./node_modules/lodash/_initCloneObject.js"),
38170 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
38171 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
38172 isMap = __webpack_require__(/*! ./isMap */ "./node_modules/lodash/isMap.js"),
38173 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
38174 isSet = __webpack_require__(/*! ./isSet */ "./node_modules/lodash/isSet.js"),
38175 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
38176
38177/** Used to compose bitmasks for cloning. */
38178var CLONE_DEEP_FLAG = 1,
38179 CLONE_FLAT_FLAG = 2,
38180 CLONE_SYMBOLS_FLAG = 4;
38181
38182/** `Object#toString` result references. */
38183var argsTag = '[object Arguments]',
38184 arrayTag = '[object Array]',
38185 boolTag = '[object Boolean]',
38186 dateTag = '[object Date]',
38187 errorTag = '[object Error]',
38188 funcTag = '[object Function]',
38189 genTag = '[object GeneratorFunction]',
38190 mapTag = '[object Map]',
38191 numberTag = '[object Number]',
38192 objectTag = '[object Object]',
38193 regexpTag = '[object RegExp]',
38194 setTag = '[object Set]',
38195 stringTag = '[object String]',
38196 symbolTag = '[object Symbol]',
38197 weakMapTag = '[object WeakMap]';
38198
38199var arrayBufferTag = '[object ArrayBuffer]',
38200 dataViewTag = '[object DataView]',
38201 float32Tag = '[object Float32Array]',
38202 float64Tag = '[object Float64Array]',
38203 int8Tag = '[object Int8Array]',
38204 int16Tag = '[object Int16Array]',
38205 int32Tag = '[object Int32Array]',
38206 uint8Tag = '[object Uint8Array]',
38207 uint8ClampedTag = '[object Uint8ClampedArray]',
38208 uint16Tag = '[object Uint16Array]',
38209 uint32Tag = '[object Uint32Array]';
38210
38211/** Used to identify `toStringTag` values supported by `_.clone`. */
38212var cloneableTags = {};
38213cloneableTags[argsTag] = cloneableTags[arrayTag] =
38214cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
38215cloneableTags[boolTag] = cloneableTags[dateTag] =
38216cloneableTags[float32Tag] = cloneableTags[float64Tag] =
38217cloneableTags[int8Tag] = cloneableTags[int16Tag] =
38218cloneableTags[int32Tag] = cloneableTags[mapTag] =
38219cloneableTags[numberTag] = cloneableTags[objectTag] =
38220cloneableTags[regexpTag] = cloneableTags[setTag] =
38221cloneableTags[stringTag] = cloneableTags[symbolTag] =
38222cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
38223cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
38224cloneableTags[errorTag] = cloneableTags[funcTag] =
38225cloneableTags[weakMapTag] = false;
38226
38227/**
38228 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
38229 * traversed objects.
38230 *
38231 * @private
38232 * @param {*} value The value to clone.
38233 * @param {boolean} bitmask The bitmask flags.
38234 * 1 - Deep clone
38235 * 2 - Flatten inherited properties
38236 * 4 - Clone symbols
38237 * @param {Function} [customizer] The function to customize cloning.
38238 * @param {string} [key] The key of `value`.
38239 * @param {Object} [object] The parent object of `value`.
38240 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
38241 * @returns {*} Returns the cloned value.
38242 */
38243function baseClone(value, bitmask, customizer, key, object, stack) {
38244 var result,
38245 isDeep = bitmask & CLONE_DEEP_FLAG,
38246 isFlat = bitmask & CLONE_FLAT_FLAG,
38247 isFull = bitmask & CLONE_SYMBOLS_FLAG;
38248
38249 if (customizer) {
38250 result = object ? customizer(value, key, object, stack) : customizer(value);
38251 }
38252 if (result !== undefined) {
38253 return result;
38254 }
38255 if (!isObject(value)) {
38256 return value;
38257 }
38258 var isArr = isArray(value);
38259 if (isArr) {
38260 result = initCloneArray(value);
38261 if (!isDeep) {
38262 return copyArray(value, result);
38263 }
38264 } else {
38265 var tag = getTag(value),
38266 isFunc = tag == funcTag || tag == genTag;
38267
38268 if (isBuffer(value)) {
38269 return cloneBuffer(value, isDeep);
38270 }
38271 if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
38272 result = (isFlat || isFunc) ? {} : initCloneObject(value);
38273 if (!isDeep) {
38274 return isFlat
38275 ? copySymbolsIn(value, baseAssignIn(result, value))
38276 : copySymbols(value, baseAssign(result, value));
38277 }
38278 } else {
38279 if (!cloneableTags[tag]) {
38280 return object ? value : {};
38281 }
38282 result = initCloneByTag(value, tag, isDeep);
38283 }
38284 }
38285 // Check for circular references and return its corresponding clone.
38286 stack || (stack = new Stack);
38287 var stacked = stack.get(value);
38288 if (stacked) {
38289 return stacked;
38290 }
38291 stack.set(value, result);
38292
38293 if (isSet(value)) {
38294 value.forEach(function(subValue) {
38295 result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
38296 });
38297 } else if (isMap(value)) {
38298 value.forEach(function(subValue, key) {
38299 result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
38300 });
38301 }
38302
38303 var keysFunc = isFull
38304 ? (isFlat ? getAllKeysIn : getAllKeys)
38305 : (isFlat ? keysIn : keys);
38306
38307 var props = isArr ? undefined : keysFunc(value);
38308 arrayEach(props || value, function(subValue, key) {
38309 if (props) {
38310 key = subValue;
38311 subValue = value[key];
38312 }
38313 // Recursively populate clone (susceptible to call stack limits).
38314 assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
38315 });
38316 return result;
38317}
38318
38319module.exports = baseClone;
38320
38321
38322/***/ }),
38323
38324/***/ "./node_modules/lodash/_baseCreate.js":
38325/*!********************************************!*\
38326 !*** ./node_modules/lodash/_baseCreate.js ***!
38327 \********************************************/
38328/*! no static exports found */
38329/***/ (function(module, exports, __webpack_require__) {
38330
38331var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
38332
38333/** Built-in value references. */
38334var objectCreate = Object.create;
38335
38336/**
38337 * The base implementation of `_.create` without support for assigning
38338 * properties to the created object.
38339 *
38340 * @private
38341 * @param {Object} proto The object to inherit from.
38342 * @returns {Object} Returns the new object.
38343 */
38344var baseCreate = (function() {
38345 function object() {}
38346 return function(proto) {
38347 if (!isObject(proto)) {
38348 return {};
38349 }
38350 if (objectCreate) {
38351 return objectCreate(proto);
38352 }
38353 object.prototype = proto;
38354 var result = new object;
38355 object.prototype = undefined;
38356 return result;
38357 };
38358}());
38359
38360module.exports = baseCreate;
38361
38362
38363/***/ }),
38364
38365/***/ "./node_modules/lodash/_baseEach.js":
38366/*!******************************************!*\
38367 !*** ./node_modules/lodash/_baseEach.js ***!
38368 \******************************************/
38369/*! no static exports found */
38370/***/ (function(module, exports, __webpack_require__) {
38371
38372var baseForOwn = __webpack_require__(/*! ./_baseForOwn */ "./node_modules/lodash/_baseForOwn.js"),
38373 createBaseEach = __webpack_require__(/*! ./_createBaseEach */ "./node_modules/lodash/_createBaseEach.js");
38374
38375/**
38376 * The base implementation of `_.forEach` without support for iteratee shorthands.
38377 *
38378 * @private
38379 * @param {Array|Object} collection The collection to iterate over.
38380 * @param {Function} iteratee The function invoked per iteration.
38381 * @returns {Array|Object} Returns `collection`.
38382 */
38383var baseEach = createBaseEach(baseForOwn);
38384
38385module.exports = baseEach;
38386
38387
38388/***/ }),
38389
38390/***/ "./node_modules/lodash/_baseExtremum.js":
38391/*!**********************************************!*\
38392 !*** ./node_modules/lodash/_baseExtremum.js ***!
38393 \**********************************************/
38394/*! no static exports found */
38395/***/ (function(module, exports, __webpack_require__) {
38396
38397var isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
38398
38399/**
38400 * The base implementation of methods like `_.max` and `_.min` which accepts a
38401 * `comparator` to determine the extremum value.
38402 *
38403 * @private
38404 * @param {Array} array The array to iterate over.
38405 * @param {Function} iteratee The iteratee invoked per iteration.
38406 * @param {Function} comparator The comparator used to compare values.
38407 * @returns {*} Returns the extremum value.
38408 */
38409function baseExtremum(array, iteratee, comparator) {
38410 var index = -1,
38411 length = array.length;
38412
38413 while (++index < length) {
38414 var value = array[index],
38415 current = iteratee(value);
38416
38417 if (current != null && (computed === undefined
38418 ? (current === current && !isSymbol(current))
38419 : comparator(current, computed)
38420 )) {
38421 var computed = current,
38422 result = value;
38423 }
38424 }
38425 return result;
38426}
38427
38428module.exports = baseExtremum;
38429
38430
38431/***/ }),
38432
38433/***/ "./node_modules/lodash/_baseFilter.js":
38434/*!********************************************!*\
38435 !*** ./node_modules/lodash/_baseFilter.js ***!
38436 \********************************************/
38437/*! no static exports found */
38438/***/ (function(module, exports, __webpack_require__) {
38439
38440var baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js");
38441
38442/**
38443 * The base implementation of `_.filter` without support for iteratee shorthands.
38444 *
38445 * @private
38446 * @param {Array|Object} collection The collection to iterate over.
38447 * @param {Function} predicate The function invoked per iteration.
38448 * @returns {Array} Returns the new filtered array.
38449 */
38450function baseFilter(collection, predicate) {
38451 var result = [];
38452 baseEach(collection, function(value, index, collection) {
38453 if (predicate(value, index, collection)) {
38454 result.push(value);
38455 }
38456 });
38457 return result;
38458}
38459
38460module.exports = baseFilter;
38461
38462
38463/***/ }),
38464
38465/***/ "./node_modules/lodash/_baseFindIndex.js":
38466/*!***********************************************!*\
38467 !*** ./node_modules/lodash/_baseFindIndex.js ***!
38468 \***********************************************/
38469/*! no static exports found */
38470/***/ (function(module, exports) {
38471
38472/**
38473 * The base implementation of `_.findIndex` and `_.findLastIndex` without
38474 * support for iteratee shorthands.
38475 *
38476 * @private
38477 * @param {Array} array The array to inspect.
38478 * @param {Function} predicate The function invoked per iteration.
38479 * @param {number} fromIndex The index to search from.
38480 * @param {boolean} [fromRight] Specify iterating from right to left.
38481 * @returns {number} Returns the index of the matched value, else `-1`.
38482 */
38483function baseFindIndex(array, predicate, fromIndex, fromRight) {
38484 var length = array.length,
38485 index = fromIndex + (fromRight ? 1 : -1);
38486
38487 while ((fromRight ? index-- : ++index < length)) {
38488 if (predicate(array[index], index, array)) {
38489 return index;
38490 }
38491 }
38492 return -1;
38493}
38494
38495module.exports = baseFindIndex;
38496
38497
38498/***/ }),
38499
38500/***/ "./node_modules/lodash/_baseFlatten.js":
38501/*!*********************************************!*\
38502 !*** ./node_modules/lodash/_baseFlatten.js ***!
38503 \*********************************************/
38504/*! no static exports found */
38505/***/ (function(module, exports, __webpack_require__) {
38506
38507var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
38508 isFlattenable = __webpack_require__(/*! ./_isFlattenable */ "./node_modules/lodash/_isFlattenable.js");
38509
38510/**
38511 * The base implementation of `_.flatten` with support for restricting flattening.
38512 *
38513 * @private
38514 * @param {Array} array The array to flatten.
38515 * @param {number} depth The maximum recursion depth.
38516 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
38517 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
38518 * @param {Array} [result=[]] The initial result value.
38519 * @returns {Array} Returns the new flattened array.
38520 */
38521function baseFlatten(array, depth, predicate, isStrict, result) {
38522 var index = -1,
38523 length = array.length;
38524
38525 predicate || (predicate = isFlattenable);
38526 result || (result = []);
38527
38528 while (++index < length) {
38529 var value = array[index];
38530 if (depth > 0 && predicate(value)) {
38531 if (depth > 1) {
38532 // Recursively flatten arrays (susceptible to call stack limits).
38533 baseFlatten(value, depth - 1, predicate, isStrict, result);
38534 } else {
38535 arrayPush(result, value);
38536 }
38537 } else if (!isStrict) {
38538 result[result.length] = value;
38539 }
38540 }
38541 return result;
38542}
38543
38544module.exports = baseFlatten;
38545
38546
38547/***/ }),
38548
38549/***/ "./node_modules/lodash/_baseFor.js":
38550/*!*****************************************!*\
38551 !*** ./node_modules/lodash/_baseFor.js ***!
38552 \*****************************************/
38553/*! no static exports found */
38554/***/ (function(module, exports, __webpack_require__) {
38555
38556var createBaseFor = __webpack_require__(/*! ./_createBaseFor */ "./node_modules/lodash/_createBaseFor.js");
38557
38558/**
38559 * The base implementation of `baseForOwn` which iterates over `object`
38560 * properties returned by `keysFunc` and invokes `iteratee` for each property.
38561 * Iteratee functions may exit iteration early by explicitly returning `false`.
38562 *
38563 * @private
38564 * @param {Object} object The object to iterate over.
38565 * @param {Function} iteratee The function invoked per iteration.
38566 * @param {Function} keysFunc The function to get the keys of `object`.
38567 * @returns {Object} Returns `object`.
38568 */
38569var baseFor = createBaseFor();
38570
38571module.exports = baseFor;
38572
38573
38574/***/ }),
38575
38576/***/ "./node_modules/lodash/_baseForOwn.js":
38577/*!********************************************!*\
38578 !*** ./node_modules/lodash/_baseForOwn.js ***!
38579 \********************************************/
38580/*! no static exports found */
38581/***/ (function(module, exports, __webpack_require__) {
38582
38583var baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),
38584 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
38585
38586/**
38587 * The base implementation of `_.forOwn` without support for iteratee shorthands.
38588 *
38589 * @private
38590 * @param {Object} object The object to iterate over.
38591 * @param {Function} iteratee The function invoked per iteration.
38592 * @returns {Object} Returns `object`.
38593 */
38594function baseForOwn(object, iteratee) {
38595 return object && baseFor(object, iteratee, keys);
38596}
38597
38598module.exports = baseForOwn;
38599
38600
38601/***/ }),
38602
38603/***/ "./node_modules/lodash/_baseGet.js":
38604/*!*****************************************!*\
38605 !*** ./node_modules/lodash/_baseGet.js ***!
38606 \*****************************************/
38607/*! no static exports found */
38608/***/ (function(module, exports, __webpack_require__) {
38609
38610var castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js"),
38611 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
38612
38613/**
38614 * The base implementation of `_.get` without support for default values.
38615 *
38616 * @private
38617 * @param {Object} object The object to query.
38618 * @param {Array|string} path The path of the property to get.
38619 * @returns {*} Returns the resolved value.
38620 */
38621function baseGet(object, path) {
38622 path = castPath(path, object);
38623
38624 var index = 0,
38625 length = path.length;
38626
38627 while (object != null && index < length) {
38628 object = object[toKey(path[index++])];
38629 }
38630 return (index && index == length) ? object : undefined;
38631}
38632
38633module.exports = baseGet;
38634
38635
38636/***/ }),
38637
38638/***/ "./node_modules/lodash/_baseGetAllKeys.js":
38639/*!************************************************!*\
38640 !*** ./node_modules/lodash/_baseGetAllKeys.js ***!
38641 \************************************************/
38642/*! no static exports found */
38643/***/ (function(module, exports, __webpack_require__) {
38644
38645var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
38646 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
38647
38648/**
38649 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
38650 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
38651 * symbols of `object`.
38652 *
38653 * @private
38654 * @param {Object} object The object to query.
38655 * @param {Function} keysFunc The function to get the keys of `object`.
38656 * @param {Function} symbolsFunc The function to get the symbols of `object`.
38657 * @returns {Array} Returns the array of property names and symbols.
38658 */
38659function baseGetAllKeys(object, keysFunc, symbolsFunc) {
38660 var result = keysFunc(object);
38661 return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
38662}
38663
38664module.exports = baseGetAllKeys;
38665
38666
38667/***/ }),
38668
38669/***/ "./node_modules/lodash/_baseGetTag.js":
38670/*!********************************************!*\
38671 !*** ./node_modules/lodash/_baseGetTag.js ***!
38672 \********************************************/
38673/*! no static exports found */
38674/***/ (function(module, exports, __webpack_require__) {
38675
38676var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
38677 getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"),
38678 objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js");
38679
38680/** `Object#toString` result references. */
38681var nullTag = '[object Null]',
38682 undefinedTag = '[object Undefined]';
38683
38684/** Built-in value references. */
38685var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
38686
38687/**
38688 * The base implementation of `getTag` without fallbacks for buggy environments.
38689 *
38690 * @private
38691 * @param {*} value The value to query.
38692 * @returns {string} Returns the `toStringTag`.
38693 */
38694function baseGetTag(value) {
38695 if (value == null) {
38696 return value === undefined ? undefinedTag : nullTag;
38697 }
38698 return (symToStringTag && symToStringTag in Object(value))
38699 ? getRawTag(value)
38700 : objectToString(value);
38701}
38702
38703module.exports = baseGetTag;
38704
38705
38706/***/ }),
38707
38708/***/ "./node_modules/lodash/_baseGt.js":
38709/*!****************************************!*\
38710 !*** ./node_modules/lodash/_baseGt.js ***!
38711 \****************************************/
38712/*! no static exports found */
38713/***/ (function(module, exports) {
38714
38715/**
38716 * The base implementation of `_.gt` which doesn't coerce arguments.
38717 *
38718 * @private
38719 * @param {*} value The value to compare.
38720 * @param {*} other The other value to compare.
38721 * @returns {boolean} Returns `true` if `value` is greater than `other`,
38722 * else `false`.
38723 */
38724function baseGt(value, other) {
38725 return value > other;
38726}
38727
38728module.exports = baseGt;
38729
38730
38731/***/ }),
38732
38733/***/ "./node_modules/lodash/_baseHas.js":
38734/*!*****************************************!*\
38735 !*** ./node_modules/lodash/_baseHas.js ***!
38736 \*****************************************/
38737/*! no static exports found */
38738/***/ (function(module, exports) {
38739
38740/** Used for built-in method references. */
38741var objectProto = Object.prototype;
38742
38743/** Used to check objects for own properties. */
38744var hasOwnProperty = objectProto.hasOwnProperty;
38745
38746/**
38747 * The base implementation of `_.has` without support for deep paths.
38748 *
38749 * @private
38750 * @param {Object} [object] The object to query.
38751 * @param {Array|string} key The key to check.
38752 * @returns {boolean} Returns `true` if `key` exists, else `false`.
38753 */
38754function baseHas(object, key) {
38755 return object != null && hasOwnProperty.call(object, key);
38756}
38757
38758module.exports = baseHas;
38759
38760
38761/***/ }),
38762
38763/***/ "./node_modules/lodash/_baseHasIn.js":
38764/*!*******************************************!*\
38765 !*** ./node_modules/lodash/_baseHasIn.js ***!
38766 \*******************************************/
38767/*! no static exports found */
38768/***/ (function(module, exports) {
38769
38770/**
38771 * The base implementation of `_.hasIn` without support for deep paths.
38772 *
38773 * @private
38774 * @param {Object} [object] The object to query.
38775 * @param {Array|string} key The key to check.
38776 * @returns {boolean} Returns `true` if `key` exists, else `false`.
38777 */
38778function baseHasIn(object, key) {
38779 return object != null && key in Object(object);
38780}
38781
38782module.exports = baseHasIn;
38783
38784
38785/***/ }),
38786
38787/***/ "./node_modules/lodash/_baseIndexOf.js":
38788/*!*********************************************!*\
38789 !*** ./node_modules/lodash/_baseIndexOf.js ***!
38790 \*********************************************/
38791/*! no static exports found */
38792/***/ (function(module, exports, __webpack_require__) {
38793
38794var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ "./node_modules/lodash/_baseFindIndex.js"),
38795 baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ "./node_modules/lodash/_baseIsNaN.js"),
38796 strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ "./node_modules/lodash/_strictIndexOf.js");
38797
38798/**
38799 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
38800 *
38801 * @private
38802 * @param {Array} array The array to inspect.
38803 * @param {*} value The value to search for.
38804 * @param {number} fromIndex The index to search from.
38805 * @returns {number} Returns the index of the matched value, else `-1`.
38806 */
38807function baseIndexOf(array, value, fromIndex) {
38808 return value === value
38809 ? strictIndexOf(array, value, fromIndex)
38810 : baseFindIndex(array, baseIsNaN, fromIndex);
38811}
38812
38813module.exports = baseIndexOf;
38814
38815
38816/***/ }),
38817
38818/***/ "./node_modules/lodash/_baseIsArguments.js":
38819/*!*************************************************!*\
38820 !*** ./node_modules/lodash/_baseIsArguments.js ***!
38821 \*************************************************/
38822/*! no static exports found */
38823/***/ (function(module, exports, __webpack_require__) {
38824
38825var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
38826 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
38827
38828/** `Object#toString` result references. */
38829var argsTag = '[object Arguments]';
38830
38831/**
38832 * The base implementation of `_.isArguments`.
38833 *
38834 * @private
38835 * @param {*} value The value to check.
38836 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
38837 */
38838function baseIsArguments(value) {
38839 return isObjectLike(value) && baseGetTag(value) == argsTag;
38840}
38841
38842module.exports = baseIsArguments;
38843
38844
38845/***/ }),
38846
38847/***/ "./node_modules/lodash/_baseIsEqual.js":
38848/*!*********************************************!*\
38849 !*** ./node_modules/lodash/_baseIsEqual.js ***!
38850 \*********************************************/
38851/*! no static exports found */
38852/***/ (function(module, exports, __webpack_require__) {
38853
38854var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ "./node_modules/lodash/_baseIsEqualDeep.js"),
38855 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
38856
38857/**
38858 * The base implementation of `_.isEqual` which supports partial comparisons
38859 * and tracks traversed objects.
38860 *
38861 * @private
38862 * @param {*} value The value to compare.
38863 * @param {*} other The other value to compare.
38864 * @param {boolean} bitmask The bitmask flags.
38865 * 1 - Unordered comparison
38866 * 2 - Partial comparison
38867 * @param {Function} [customizer] The function to customize comparisons.
38868 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
38869 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
38870 */
38871function baseIsEqual(value, other, bitmask, customizer, stack) {
38872 if (value === other) {
38873 return true;
38874 }
38875 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
38876 return value !== value && other !== other;
38877 }
38878 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
38879}
38880
38881module.exports = baseIsEqual;
38882
38883
38884/***/ }),
38885
38886/***/ "./node_modules/lodash/_baseIsEqualDeep.js":
38887/*!*************************************************!*\
38888 !*** ./node_modules/lodash/_baseIsEqualDeep.js ***!
38889 \*************************************************/
38890/*! no static exports found */
38891/***/ (function(module, exports, __webpack_require__) {
38892
38893var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
38894 equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),
38895 equalByTag = __webpack_require__(/*! ./_equalByTag */ "./node_modules/lodash/_equalByTag.js"),
38896 equalObjects = __webpack_require__(/*! ./_equalObjects */ "./node_modules/lodash/_equalObjects.js"),
38897 getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
38898 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
38899 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
38900 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
38901
38902/** Used to compose bitmasks for value comparisons. */
38903var COMPARE_PARTIAL_FLAG = 1;
38904
38905/** `Object#toString` result references. */
38906var argsTag = '[object Arguments]',
38907 arrayTag = '[object Array]',
38908 objectTag = '[object Object]';
38909
38910/** Used for built-in method references. */
38911var objectProto = Object.prototype;
38912
38913/** Used to check objects for own properties. */
38914var hasOwnProperty = objectProto.hasOwnProperty;
38915
38916/**
38917 * A specialized version of `baseIsEqual` for arrays and objects which performs
38918 * deep comparisons and tracks traversed objects enabling objects with circular
38919 * references to be compared.
38920 *
38921 * @private
38922 * @param {Object} object The object to compare.
38923 * @param {Object} other The other object to compare.
38924 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
38925 * @param {Function} customizer The function to customize comparisons.
38926 * @param {Function} equalFunc The function to determine equivalents of values.
38927 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
38928 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
38929 */
38930function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
38931 var objIsArr = isArray(object),
38932 othIsArr = isArray(other),
38933 objTag = objIsArr ? arrayTag : getTag(object),
38934 othTag = othIsArr ? arrayTag : getTag(other);
38935
38936 objTag = objTag == argsTag ? objectTag : objTag;
38937 othTag = othTag == argsTag ? objectTag : othTag;
38938
38939 var objIsObj = objTag == objectTag,
38940 othIsObj = othTag == objectTag,
38941 isSameTag = objTag == othTag;
38942
38943 if (isSameTag && isBuffer(object)) {
38944 if (!isBuffer(other)) {
38945 return false;
38946 }
38947 objIsArr = true;
38948 objIsObj = false;
38949 }
38950 if (isSameTag && !objIsObj) {
38951 stack || (stack = new Stack);
38952 return (objIsArr || isTypedArray(object))
38953 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
38954 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
38955 }
38956 if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
38957 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
38958 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
38959
38960 if (objIsWrapped || othIsWrapped) {
38961 var objUnwrapped = objIsWrapped ? object.value() : object,
38962 othUnwrapped = othIsWrapped ? other.value() : other;
38963
38964 stack || (stack = new Stack);
38965 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
38966 }
38967 }
38968 if (!isSameTag) {
38969 return false;
38970 }
38971 stack || (stack = new Stack);
38972 return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
38973}
38974
38975module.exports = baseIsEqualDeep;
38976
38977
38978/***/ }),
38979
38980/***/ "./node_modules/lodash/_baseIsMap.js":
38981/*!*******************************************!*\
38982 !*** ./node_modules/lodash/_baseIsMap.js ***!
38983 \*******************************************/
38984/*! no static exports found */
38985/***/ (function(module, exports, __webpack_require__) {
38986
38987var getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
38988 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
38989
38990/** `Object#toString` result references. */
38991var mapTag = '[object Map]';
38992
38993/**
38994 * The base implementation of `_.isMap` without Node.js optimizations.
38995 *
38996 * @private
38997 * @param {*} value The value to check.
38998 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
38999 */
39000function baseIsMap(value) {
39001 return isObjectLike(value) && getTag(value) == mapTag;
39002}
39003
39004module.exports = baseIsMap;
39005
39006
39007/***/ }),
39008
39009/***/ "./node_modules/lodash/_baseIsMatch.js":
39010/*!*********************************************!*\
39011 !*** ./node_modules/lodash/_baseIsMatch.js ***!
39012 \*********************************************/
39013/*! no static exports found */
39014/***/ (function(module, exports, __webpack_require__) {
39015
39016var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
39017 baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js");
39018
39019/** Used to compose bitmasks for value comparisons. */
39020var COMPARE_PARTIAL_FLAG = 1,
39021 COMPARE_UNORDERED_FLAG = 2;
39022
39023/**
39024 * The base implementation of `_.isMatch` without support for iteratee shorthands.
39025 *
39026 * @private
39027 * @param {Object} object The object to inspect.
39028 * @param {Object} source The object of property values to match.
39029 * @param {Array} matchData The property names, values, and compare flags to match.
39030 * @param {Function} [customizer] The function to customize comparisons.
39031 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
39032 */
39033function baseIsMatch(object, source, matchData, customizer) {
39034 var index = matchData.length,
39035 length = index,
39036 noCustomizer = !customizer;
39037
39038 if (object == null) {
39039 return !length;
39040 }
39041 object = Object(object);
39042 while (index--) {
39043 var data = matchData[index];
39044 if ((noCustomizer && data[2])
39045 ? data[1] !== object[data[0]]
39046 : !(data[0] in object)
39047 ) {
39048 return false;
39049 }
39050 }
39051 while (++index < length) {
39052 data = matchData[index];
39053 var key = data[0],
39054 objValue = object[key],
39055 srcValue = data[1];
39056
39057 if (noCustomizer && data[2]) {
39058 if (objValue === undefined && !(key in object)) {
39059 return false;
39060 }
39061 } else {
39062 var stack = new Stack;
39063 if (customizer) {
39064 var result = customizer(objValue, srcValue, key, object, source, stack);
39065 }
39066 if (!(result === undefined
39067 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
39068 : result
39069 )) {
39070 return false;
39071 }
39072 }
39073 }
39074 return true;
39075}
39076
39077module.exports = baseIsMatch;
39078
39079
39080/***/ }),
39081
39082/***/ "./node_modules/lodash/_baseIsNaN.js":
39083/*!*******************************************!*\
39084 !*** ./node_modules/lodash/_baseIsNaN.js ***!
39085 \*******************************************/
39086/*! no static exports found */
39087/***/ (function(module, exports) {
39088
39089/**
39090 * The base implementation of `_.isNaN` without support for number objects.
39091 *
39092 * @private
39093 * @param {*} value The value to check.
39094 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
39095 */
39096function baseIsNaN(value) {
39097 return value !== value;
39098}
39099
39100module.exports = baseIsNaN;
39101
39102
39103/***/ }),
39104
39105/***/ "./node_modules/lodash/_baseIsNative.js":
39106/*!**********************************************!*\
39107 !*** ./node_modules/lodash/_baseIsNative.js ***!
39108 \**********************************************/
39109/*! no static exports found */
39110/***/ (function(module, exports, __webpack_require__) {
39111
39112var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
39113 isMasked = __webpack_require__(/*! ./_isMasked */ "./node_modules/lodash/_isMasked.js"),
39114 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
39115 toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js");
39116
39117/**
39118 * Used to match `RegExp`
39119 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
39120 */
39121var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
39122
39123/** Used to detect host constructors (Safari). */
39124var reIsHostCtor = /^\[object .+?Constructor\]$/;
39125
39126/** Used for built-in method references. */
39127var funcProto = Function.prototype,
39128 objectProto = Object.prototype;
39129
39130/** Used to resolve the decompiled source of functions. */
39131var funcToString = funcProto.toString;
39132
39133/** Used to check objects for own properties. */
39134var hasOwnProperty = objectProto.hasOwnProperty;
39135
39136/** Used to detect if a method is native. */
39137var reIsNative = RegExp('^' +
39138 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
39139 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
39140);
39141
39142/**
39143 * The base implementation of `_.isNative` without bad shim checks.
39144 *
39145 * @private
39146 * @param {*} value The value to check.
39147 * @returns {boolean} Returns `true` if `value` is a native function,
39148 * else `false`.
39149 */
39150function baseIsNative(value) {
39151 if (!isObject(value) || isMasked(value)) {
39152 return false;
39153 }
39154 var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
39155 return pattern.test(toSource(value));
39156}
39157
39158module.exports = baseIsNative;
39159
39160
39161/***/ }),
39162
39163/***/ "./node_modules/lodash/_baseIsSet.js":
39164/*!*******************************************!*\
39165 !*** ./node_modules/lodash/_baseIsSet.js ***!
39166 \*******************************************/
39167/*! no static exports found */
39168/***/ (function(module, exports, __webpack_require__) {
39169
39170var getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
39171 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
39172
39173/** `Object#toString` result references. */
39174var setTag = '[object Set]';
39175
39176/**
39177 * The base implementation of `_.isSet` without Node.js optimizations.
39178 *
39179 * @private
39180 * @param {*} value The value to check.
39181 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
39182 */
39183function baseIsSet(value) {
39184 return isObjectLike(value) && getTag(value) == setTag;
39185}
39186
39187module.exports = baseIsSet;
39188
39189
39190/***/ }),
39191
39192/***/ "./node_modules/lodash/_baseIsTypedArray.js":
39193/*!**************************************************!*\
39194 !*** ./node_modules/lodash/_baseIsTypedArray.js ***!
39195 \**************************************************/
39196/*! no static exports found */
39197/***/ (function(module, exports, __webpack_require__) {
39198
39199var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
39200 isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js"),
39201 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
39202
39203/** `Object#toString` result references. */
39204var argsTag = '[object Arguments]',
39205 arrayTag = '[object Array]',
39206 boolTag = '[object Boolean]',
39207 dateTag = '[object Date]',
39208 errorTag = '[object Error]',
39209 funcTag = '[object Function]',
39210 mapTag = '[object Map]',
39211 numberTag = '[object Number]',
39212 objectTag = '[object Object]',
39213 regexpTag = '[object RegExp]',
39214 setTag = '[object Set]',
39215 stringTag = '[object String]',
39216 weakMapTag = '[object WeakMap]';
39217
39218var arrayBufferTag = '[object ArrayBuffer]',
39219 dataViewTag = '[object DataView]',
39220 float32Tag = '[object Float32Array]',
39221 float64Tag = '[object Float64Array]',
39222 int8Tag = '[object Int8Array]',
39223 int16Tag = '[object Int16Array]',
39224 int32Tag = '[object Int32Array]',
39225 uint8Tag = '[object Uint8Array]',
39226 uint8ClampedTag = '[object Uint8ClampedArray]',
39227 uint16Tag = '[object Uint16Array]',
39228 uint32Tag = '[object Uint32Array]';
39229
39230/** Used to identify `toStringTag` values of typed arrays. */
39231var typedArrayTags = {};
39232typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
39233typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
39234typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
39235typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
39236typedArrayTags[uint32Tag] = true;
39237typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
39238typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
39239typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
39240typedArrayTags[errorTag] = typedArrayTags[funcTag] =
39241typedArrayTags[mapTag] = typedArrayTags[numberTag] =
39242typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
39243typedArrayTags[setTag] = typedArrayTags[stringTag] =
39244typedArrayTags[weakMapTag] = false;
39245
39246/**
39247 * The base implementation of `_.isTypedArray` without Node.js optimizations.
39248 *
39249 * @private
39250 * @param {*} value The value to check.
39251 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
39252 */
39253function baseIsTypedArray(value) {
39254 return isObjectLike(value) &&
39255 isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
39256}
39257
39258module.exports = baseIsTypedArray;
39259
39260
39261/***/ }),
39262
39263/***/ "./node_modules/lodash/_baseIteratee.js":
39264/*!**********************************************!*\
39265 !*** ./node_modules/lodash/_baseIteratee.js ***!
39266 \**********************************************/
39267/*! no static exports found */
39268/***/ (function(module, exports, __webpack_require__) {
39269
39270var baseMatches = __webpack_require__(/*! ./_baseMatches */ "./node_modules/lodash/_baseMatches.js"),
39271 baseMatchesProperty = __webpack_require__(/*! ./_baseMatchesProperty */ "./node_modules/lodash/_baseMatchesProperty.js"),
39272 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js"),
39273 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
39274 property = __webpack_require__(/*! ./property */ "./node_modules/lodash/property.js");
39275
39276/**
39277 * The base implementation of `_.iteratee`.
39278 *
39279 * @private
39280 * @param {*} [value=_.identity] The value to convert to an iteratee.
39281 * @returns {Function} Returns the iteratee.
39282 */
39283function baseIteratee(value) {
39284 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
39285 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
39286 if (typeof value == 'function') {
39287 return value;
39288 }
39289 if (value == null) {
39290 return identity;
39291 }
39292 if (typeof value == 'object') {
39293 return isArray(value)
39294 ? baseMatchesProperty(value[0], value[1])
39295 : baseMatches(value);
39296 }
39297 return property(value);
39298}
39299
39300module.exports = baseIteratee;
39301
39302
39303/***/ }),
39304
39305/***/ "./node_modules/lodash/_baseKeys.js":
39306/*!******************************************!*\
39307 !*** ./node_modules/lodash/_baseKeys.js ***!
39308 \******************************************/
39309/*! no static exports found */
39310/***/ (function(module, exports, __webpack_require__) {
39311
39312var isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
39313 nativeKeys = __webpack_require__(/*! ./_nativeKeys */ "./node_modules/lodash/_nativeKeys.js");
39314
39315/** Used for built-in method references. */
39316var objectProto = Object.prototype;
39317
39318/** Used to check objects for own properties. */
39319var hasOwnProperty = objectProto.hasOwnProperty;
39320
39321/**
39322 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
39323 *
39324 * @private
39325 * @param {Object} object The object to query.
39326 * @returns {Array} Returns the array of property names.
39327 */
39328function baseKeys(object) {
39329 if (!isPrototype(object)) {
39330 return nativeKeys(object);
39331 }
39332 var result = [];
39333 for (var key in Object(object)) {
39334 if (hasOwnProperty.call(object, key) && key != 'constructor') {
39335 result.push(key);
39336 }
39337 }
39338 return result;
39339}
39340
39341module.exports = baseKeys;
39342
39343
39344/***/ }),
39345
39346/***/ "./node_modules/lodash/_baseKeysIn.js":
39347/*!********************************************!*\
39348 !*** ./node_modules/lodash/_baseKeysIn.js ***!
39349 \********************************************/
39350/*! no static exports found */
39351/***/ (function(module, exports, __webpack_require__) {
39352
39353var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
39354 isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
39355 nativeKeysIn = __webpack_require__(/*! ./_nativeKeysIn */ "./node_modules/lodash/_nativeKeysIn.js");
39356
39357/** Used for built-in method references. */
39358var objectProto = Object.prototype;
39359
39360/** Used to check objects for own properties. */
39361var hasOwnProperty = objectProto.hasOwnProperty;
39362
39363/**
39364 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
39365 *
39366 * @private
39367 * @param {Object} object The object to query.
39368 * @returns {Array} Returns the array of property names.
39369 */
39370function baseKeysIn(object) {
39371 if (!isObject(object)) {
39372 return nativeKeysIn(object);
39373 }
39374 var isProto = isPrototype(object),
39375 result = [];
39376
39377 for (var key in object) {
39378 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
39379 result.push(key);
39380 }
39381 }
39382 return result;
39383}
39384
39385module.exports = baseKeysIn;
39386
39387
39388/***/ }),
39389
39390/***/ "./node_modules/lodash/_baseLt.js":
39391/*!****************************************!*\
39392 !*** ./node_modules/lodash/_baseLt.js ***!
39393 \****************************************/
39394/*! no static exports found */
39395/***/ (function(module, exports) {
39396
39397/**
39398 * The base implementation of `_.lt` which doesn't coerce arguments.
39399 *
39400 * @private
39401 * @param {*} value The value to compare.
39402 * @param {*} other The other value to compare.
39403 * @returns {boolean} Returns `true` if `value` is less than `other`,
39404 * else `false`.
39405 */
39406function baseLt(value, other) {
39407 return value < other;
39408}
39409
39410module.exports = baseLt;
39411
39412
39413/***/ }),
39414
39415/***/ "./node_modules/lodash/_baseMap.js":
39416/*!*****************************************!*\
39417 !*** ./node_modules/lodash/_baseMap.js ***!
39418 \*****************************************/
39419/*! no static exports found */
39420/***/ (function(module, exports, __webpack_require__) {
39421
39422var baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),
39423 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
39424
39425/**
39426 * The base implementation of `_.map` without support for iteratee shorthands.
39427 *
39428 * @private
39429 * @param {Array|Object} collection The collection to iterate over.
39430 * @param {Function} iteratee The function invoked per iteration.
39431 * @returns {Array} Returns the new mapped array.
39432 */
39433function baseMap(collection, iteratee) {
39434 var index = -1,
39435 result = isArrayLike(collection) ? Array(collection.length) : [];
39436
39437 baseEach(collection, function(value, key, collection) {
39438 result[++index] = iteratee(value, key, collection);
39439 });
39440 return result;
39441}
39442
39443module.exports = baseMap;
39444
39445
39446/***/ }),
39447
39448/***/ "./node_modules/lodash/_baseMatches.js":
39449/*!*********************************************!*\
39450 !*** ./node_modules/lodash/_baseMatches.js ***!
39451 \*********************************************/
39452/*! no static exports found */
39453/***/ (function(module, exports, __webpack_require__) {
39454
39455var baseIsMatch = __webpack_require__(/*! ./_baseIsMatch */ "./node_modules/lodash/_baseIsMatch.js"),
39456 getMatchData = __webpack_require__(/*! ./_getMatchData */ "./node_modules/lodash/_getMatchData.js"),
39457 matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./node_modules/lodash/_matchesStrictComparable.js");
39458
39459/**
39460 * The base implementation of `_.matches` which doesn't clone `source`.
39461 *
39462 * @private
39463 * @param {Object} source The object of property values to match.
39464 * @returns {Function} Returns the new spec function.
39465 */
39466function baseMatches(source) {
39467 var matchData = getMatchData(source);
39468 if (matchData.length == 1 && matchData[0][2]) {
39469 return matchesStrictComparable(matchData[0][0], matchData[0][1]);
39470 }
39471 return function(object) {
39472 return object === source || baseIsMatch(object, source, matchData);
39473 };
39474}
39475
39476module.exports = baseMatches;
39477
39478
39479/***/ }),
39480
39481/***/ "./node_modules/lodash/_baseMatchesProperty.js":
39482/*!*****************************************************!*\
39483 !*** ./node_modules/lodash/_baseMatchesProperty.js ***!
39484 \*****************************************************/
39485/*! no static exports found */
39486/***/ (function(module, exports, __webpack_require__) {
39487
39488var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js"),
39489 get = __webpack_require__(/*! ./get */ "./node_modules/lodash/get.js"),
39490 hasIn = __webpack_require__(/*! ./hasIn */ "./node_modules/lodash/hasIn.js"),
39491 isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/lodash/_isKey.js"),
39492 isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./node_modules/lodash/_isStrictComparable.js"),
39493 matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./node_modules/lodash/_matchesStrictComparable.js"),
39494 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
39495
39496/** Used to compose bitmasks for value comparisons. */
39497var COMPARE_PARTIAL_FLAG = 1,
39498 COMPARE_UNORDERED_FLAG = 2;
39499
39500/**
39501 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
39502 *
39503 * @private
39504 * @param {string} path The path of the property to get.
39505 * @param {*} srcValue The value to match.
39506 * @returns {Function} Returns the new spec function.
39507 */
39508function baseMatchesProperty(path, srcValue) {
39509 if (isKey(path) && isStrictComparable(srcValue)) {
39510 return matchesStrictComparable(toKey(path), srcValue);
39511 }
39512 return function(object) {
39513 var objValue = get(object, path);
39514 return (objValue === undefined && objValue === srcValue)
39515 ? hasIn(object, path)
39516 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
39517 };
39518}
39519
39520module.exports = baseMatchesProperty;
39521
39522
39523/***/ }),
39524
39525/***/ "./node_modules/lodash/_baseMerge.js":
39526/*!*******************************************!*\
39527 !*** ./node_modules/lodash/_baseMerge.js ***!
39528 \*******************************************/
39529/*! no static exports found */
39530/***/ (function(module, exports, __webpack_require__) {
39531
39532var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
39533 assignMergeValue = __webpack_require__(/*! ./_assignMergeValue */ "./node_modules/lodash/_assignMergeValue.js"),
39534 baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),
39535 baseMergeDeep = __webpack_require__(/*! ./_baseMergeDeep */ "./node_modules/lodash/_baseMergeDeep.js"),
39536 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
39537 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js"),
39538 safeGet = __webpack_require__(/*! ./_safeGet */ "./node_modules/lodash/_safeGet.js");
39539
39540/**
39541 * The base implementation of `_.merge` without support for multiple sources.
39542 *
39543 * @private
39544 * @param {Object} object The destination object.
39545 * @param {Object} source The source object.
39546 * @param {number} srcIndex The index of `source`.
39547 * @param {Function} [customizer] The function to customize merged values.
39548 * @param {Object} [stack] Tracks traversed source values and their merged
39549 * counterparts.
39550 */
39551function baseMerge(object, source, srcIndex, customizer, stack) {
39552 if (object === source) {
39553 return;
39554 }
39555 baseFor(source, function(srcValue, key) {
39556 stack || (stack = new Stack);
39557 if (isObject(srcValue)) {
39558 baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
39559 }
39560 else {
39561 var newValue = customizer
39562 ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
39563 : undefined;
39564
39565 if (newValue === undefined) {
39566 newValue = srcValue;
39567 }
39568 assignMergeValue(object, key, newValue);
39569 }
39570 }, keysIn);
39571}
39572
39573module.exports = baseMerge;
39574
39575
39576/***/ }),
39577
39578/***/ "./node_modules/lodash/_baseMergeDeep.js":
39579/*!***********************************************!*\
39580 !*** ./node_modules/lodash/_baseMergeDeep.js ***!
39581 \***********************************************/
39582/*! no static exports found */
39583/***/ (function(module, exports, __webpack_require__) {
39584
39585var assignMergeValue = __webpack_require__(/*! ./_assignMergeValue */ "./node_modules/lodash/_assignMergeValue.js"),
39586 cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ "./node_modules/lodash/_cloneBuffer.js"),
39587 cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ "./node_modules/lodash/_cloneTypedArray.js"),
39588 copyArray = __webpack_require__(/*! ./_copyArray */ "./node_modules/lodash/_copyArray.js"),
39589 initCloneObject = __webpack_require__(/*! ./_initCloneObject */ "./node_modules/lodash/_initCloneObject.js"),
39590 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
39591 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
39592 isArrayLikeObject = __webpack_require__(/*! ./isArrayLikeObject */ "./node_modules/lodash/isArrayLikeObject.js"),
39593 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
39594 isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
39595 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
39596 isPlainObject = __webpack_require__(/*! ./isPlainObject */ "./node_modules/lodash/isPlainObject.js"),
39597 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js"),
39598 safeGet = __webpack_require__(/*! ./_safeGet */ "./node_modules/lodash/_safeGet.js"),
39599 toPlainObject = __webpack_require__(/*! ./toPlainObject */ "./node_modules/lodash/toPlainObject.js");
39600
39601/**
39602 * A specialized version of `baseMerge` for arrays and objects which performs
39603 * deep merges and tracks traversed objects enabling objects with circular
39604 * references to be merged.
39605 *
39606 * @private
39607 * @param {Object} object The destination object.
39608 * @param {Object} source The source object.
39609 * @param {string} key The key of the value to merge.
39610 * @param {number} srcIndex The index of `source`.
39611 * @param {Function} mergeFunc The function to merge values.
39612 * @param {Function} [customizer] The function to customize assigned values.
39613 * @param {Object} [stack] Tracks traversed source values and their merged
39614 * counterparts.
39615 */
39616function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
39617 var objValue = safeGet(object, key),
39618 srcValue = safeGet(source, key),
39619 stacked = stack.get(srcValue);
39620
39621 if (stacked) {
39622 assignMergeValue(object, key, stacked);
39623 return;
39624 }
39625 var newValue = customizer
39626 ? customizer(objValue, srcValue, (key + ''), object, source, stack)
39627 : undefined;
39628
39629 var isCommon = newValue === undefined;
39630
39631 if (isCommon) {
39632 var isArr = isArray(srcValue),
39633 isBuff = !isArr && isBuffer(srcValue),
39634 isTyped = !isArr && !isBuff && isTypedArray(srcValue);
39635
39636 newValue = srcValue;
39637 if (isArr || isBuff || isTyped) {
39638 if (isArray(objValue)) {
39639 newValue = objValue;
39640 }
39641 else if (isArrayLikeObject(objValue)) {
39642 newValue = copyArray(objValue);
39643 }
39644 else if (isBuff) {
39645 isCommon = false;
39646 newValue = cloneBuffer(srcValue, true);
39647 }
39648 else if (isTyped) {
39649 isCommon = false;
39650 newValue = cloneTypedArray(srcValue, true);
39651 }
39652 else {
39653 newValue = [];
39654 }
39655 }
39656 else if (isPlainObject(srcValue) || isArguments(srcValue)) {
39657 newValue = objValue;
39658 if (isArguments(objValue)) {
39659 newValue = toPlainObject(objValue);
39660 }
39661 else if (!isObject(objValue) || isFunction(objValue)) {
39662 newValue = initCloneObject(srcValue);
39663 }
39664 }
39665 else {
39666 isCommon = false;
39667 }
39668 }
39669 if (isCommon) {
39670 // Recursively merge objects and arrays (susceptible to call stack limits).
39671 stack.set(srcValue, newValue);
39672 mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
39673 stack['delete'](srcValue);
39674 }
39675 assignMergeValue(object, key, newValue);
39676}
39677
39678module.exports = baseMergeDeep;
39679
39680
39681/***/ }),
39682
39683/***/ "./node_modules/lodash/_baseOrderBy.js":
39684/*!*********************************************!*\
39685 !*** ./node_modules/lodash/_baseOrderBy.js ***!
39686 \*********************************************/
39687/*! no static exports found */
39688/***/ (function(module, exports, __webpack_require__) {
39689
39690var arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js"),
39691 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
39692 baseMap = __webpack_require__(/*! ./_baseMap */ "./node_modules/lodash/_baseMap.js"),
39693 baseSortBy = __webpack_require__(/*! ./_baseSortBy */ "./node_modules/lodash/_baseSortBy.js"),
39694 baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
39695 compareMultiple = __webpack_require__(/*! ./_compareMultiple */ "./node_modules/lodash/_compareMultiple.js"),
39696 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
39697
39698/**
39699 * The base implementation of `_.orderBy` without param guards.
39700 *
39701 * @private
39702 * @param {Array|Object} collection The collection to iterate over.
39703 * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
39704 * @param {string[]} orders The sort orders of `iteratees`.
39705 * @returns {Array} Returns the new sorted array.
39706 */
39707function baseOrderBy(collection, iteratees, orders) {
39708 var index = -1;
39709 iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));
39710
39711 var result = baseMap(collection, function(value, key, collection) {
39712 var criteria = arrayMap(iteratees, function(iteratee) {
39713 return iteratee(value);
39714 });
39715 return { 'criteria': criteria, 'index': ++index, 'value': value };
39716 });
39717
39718 return baseSortBy(result, function(object, other) {
39719 return compareMultiple(object, other, orders);
39720 });
39721}
39722
39723module.exports = baseOrderBy;
39724
39725
39726/***/ }),
39727
39728/***/ "./node_modules/lodash/_basePick.js":
39729/*!******************************************!*\
39730 !*** ./node_modules/lodash/_basePick.js ***!
39731 \******************************************/
39732/*! no static exports found */
39733/***/ (function(module, exports, __webpack_require__) {
39734
39735var basePickBy = __webpack_require__(/*! ./_basePickBy */ "./node_modules/lodash/_basePickBy.js"),
39736 hasIn = __webpack_require__(/*! ./hasIn */ "./node_modules/lodash/hasIn.js");
39737
39738/**
39739 * The base implementation of `_.pick` without support for individual
39740 * property identifiers.
39741 *
39742 * @private
39743 * @param {Object} object The source object.
39744 * @param {string[]} paths The property paths to pick.
39745 * @returns {Object} Returns the new object.
39746 */
39747function basePick(object, paths) {
39748 return basePickBy(object, paths, function(value, path) {
39749 return hasIn(object, path);
39750 });
39751}
39752
39753module.exports = basePick;
39754
39755
39756/***/ }),
39757
39758/***/ "./node_modules/lodash/_basePickBy.js":
39759/*!********************************************!*\
39760 !*** ./node_modules/lodash/_basePickBy.js ***!
39761 \********************************************/
39762/*! no static exports found */
39763/***/ (function(module, exports, __webpack_require__) {
39764
39765var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/lodash/_baseGet.js"),
39766 baseSet = __webpack_require__(/*! ./_baseSet */ "./node_modules/lodash/_baseSet.js"),
39767 castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js");
39768
39769/**
39770 * The base implementation of `_.pickBy` without support for iteratee shorthands.
39771 *
39772 * @private
39773 * @param {Object} object The source object.
39774 * @param {string[]} paths The property paths to pick.
39775 * @param {Function} predicate The function invoked per property.
39776 * @returns {Object} Returns the new object.
39777 */
39778function basePickBy(object, paths, predicate) {
39779 var index = -1,
39780 length = paths.length,
39781 result = {};
39782
39783 while (++index < length) {
39784 var path = paths[index],
39785 value = baseGet(object, path);
39786
39787 if (predicate(value, path)) {
39788 baseSet(result, castPath(path, object), value);
39789 }
39790 }
39791 return result;
39792}
39793
39794module.exports = basePickBy;
39795
39796
39797/***/ }),
39798
39799/***/ "./node_modules/lodash/_baseProperty.js":
39800/*!**********************************************!*\
39801 !*** ./node_modules/lodash/_baseProperty.js ***!
39802 \**********************************************/
39803/*! no static exports found */
39804/***/ (function(module, exports) {
39805
39806/**
39807 * The base implementation of `_.property` without support for deep paths.
39808 *
39809 * @private
39810 * @param {string} key The key of the property to get.
39811 * @returns {Function} Returns the new accessor function.
39812 */
39813function baseProperty(key) {
39814 return function(object) {
39815 return object == null ? undefined : object[key];
39816 };
39817}
39818
39819module.exports = baseProperty;
39820
39821
39822/***/ }),
39823
39824/***/ "./node_modules/lodash/_basePropertyDeep.js":
39825/*!**************************************************!*\
39826 !*** ./node_modules/lodash/_basePropertyDeep.js ***!
39827 \**************************************************/
39828/*! no static exports found */
39829/***/ (function(module, exports, __webpack_require__) {
39830
39831var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/lodash/_baseGet.js");
39832
39833/**
39834 * A specialized version of `baseProperty` which supports deep paths.
39835 *
39836 * @private
39837 * @param {Array|string} path The path of the property to get.
39838 * @returns {Function} Returns the new accessor function.
39839 */
39840function basePropertyDeep(path) {
39841 return function(object) {
39842 return baseGet(object, path);
39843 };
39844}
39845
39846module.exports = basePropertyDeep;
39847
39848
39849/***/ }),
39850
39851/***/ "./node_modules/lodash/_baseRange.js":
39852/*!*******************************************!*\
39853 !*** ./node_modules/lodash/_baseRange.js ***!
39854 \*******************************************/
39855/*! no static exports found */
39856/***/ (function(module, exports) {
39857
39858/* Built-in method references for those with the same name as other `lodash` methods. */
39859var nativeCeil = Math.ceil,
39860 nativeMax = Math.max;
39861
39862/**
39863 * The base implementation of `_.range` and `_.rangeRight` which doesn't
39864 * coerce arguments.
39865 *
39866 * @private
39867 * @param {number} start The start of the range.
39868 * @param {number} end The end of the range.
39869 * @param {number} step The value to increment or decrement by.
39870 * @param {boolean} [fromRight] Specify iterating from right to left.
39871 * @returns {Array} Returns the range of numbers.
39872 */
39873function baseRange(start, end, step, fromRight) {
39874 var index = -1,
39875 length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
39876 result = Array(length);
39877
39878 while (length--) {
39879 result[fromRight ? length : ++index] = start;
39880 start += step;
39881 }
39882 return result;
39883}
39884
39885module.exports = baseRange;
39886
39887
39888/***/ }),
39889
39890/***/ "./node_modules/lodash/_baseReduce.js":
39891/*!********************************************!*\
39892 !*** ./node_modules/lodash/_baseReduce.js ***!
39893 \********************************************/
39894/*! no static exports found */
39895/***/ (function(module, exports) {
39896
39897/**
39898 * The base implementation of `_.reduce` and `_.reduceRight`, without support
39899 * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
39900 *
39901 * @private
39902 * @param {Array|Object} collection The collection to iterate over.
39903 * @param {Function} iteratee The function invoked per iteration.
39904 * @param {*} accumulator The initial value.
39905 * @param {boolean} initAccum Specify using the first or last element of
39906 * `collection` as the initial value.
39907 * @param {Function} eachFunc The function to iterate over `collection`.
39908 * @returns {*} Returns the accumulated value.
39909 */
39910function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
39911 eachFunc(collection, function(value, index, collection) {
39912 accumulator = initAccum
39913 ? (initAccum = false, value)
39914 : iteratee(accumulator, value, index, collection);
39915 });
39916 return accumulator;
39917}
39918
39919module.exports = baseReduce;
39920
39921
39922/***/ }),
39923
39924/***/ "./node_modules/lodash/_baseRest.js":
39925/*!******************************************!*\
39926 !*** ./node_modules/lodash/_baseRest.js ***!
39927 \******************************************/
39928/*! no static exports found */
39929/***/ (function(module, exports, __webpack_require__) {
39930
39931var identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js"),
39932 overRest = __webpack_require__(/*! ./_overRest */ "./node_modules/lodash/_overRest.js"),
39933 setToString = __webpack_require__(/*! ./_setToString */ "./node_modules/lodash/_setToString.js");
39934
39935/**
39936 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
39937 *
39938 * @private
39939 * @param {Function} func The function to apply a rest parameter to.
39940 * @param {number} [start=func.length-1] The start position of the rest parameter.
39941 * @returns {Function} Returns the new function.
39942 */
39943function baseRest(func, start) {
39944 return setToString(overRest(func, start, identity), func + '');
39945}
39946
39947module.exports = baseRest;
39948
39949
39950/***/ }),
39951
39952/***/ "./node_modules/lodash/_baseSet.js":
39953/*!*****************************************!*\
39954 !*** ./node_modules/lodash/_baseSet.js ***!
39955 \*****************************************/
39956/*! no static exports found */
39957/***/ (function(module, exports, __webpack_require__) {
39958
39959var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
39960 castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js"),
39961 isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
39962 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
39963 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
39964
39965/**
39966 * The base implementation of `_.set`.
39967 *
39968 * @private
39969 * @param {Object} object The object to modify.
39970 * @param {Array|string} path The path of the property to set.
39971 * @param {*} value The value to set.
39972 * @param {Function} [customizer] The function to customize path creation.
39973 * @returns {Object} Returns `object`.
39974 */
39975function baseSet(object, path, value, customizer) {
39976 if (!isObject(object)) {
39977 return object;
39978 }
39979 path = castPath(path, object);
39980
39981 var index = -1,
39982 length = path.length,
39983 lastIndex = length - 1,
39984 nested = object;
39985
39986 while (nested != null && ++index < length) {
39987 var key = toKey(path[index]),
39988 newValue = value;
39989
39990 if (index != lastIndex) {
39991 var objValue = nested[key];
39992 newValue = customizer ? customizer(objValue, key, nested) : undefined;
39993 if (newValue === undefined) {
39994 newValue = isObject(objValue)
39995 ? objValue
39996 : (isIndex(path[index + 1]) ? [] : {});
39997 }
39998 }
39999 assignValue(nested, key, newValue);
40000 nested = nested[key];
40001 }
40002 return object;
40003}
40004
40005module.exports = baseSet;
40006
40007
40008/***/ }),
40009
40010/***/ "./node_modules/lodash/_baseSetToString.js":
40011/*!*************************************************!*\
40012 !*** ./node_modules/lodash/_baseSetToString.js ***!
40013 \*************************************************/
40014/*! no static exports found */
40015/***/ (function(module, exports, __webpack_require__) {
40016
40017var constant = __webpack_require__(/*! ./constant */ "./node_modules/lodash/constant.js"),
40018 defineProperty = __webpack_require__(/*! ./_defineProperty */ "./node_modules/lodash/_defineProperty.js"),
40019 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
40020
40021/**
40022 * The base implementation of `setToString` without support for hot loop shorting.
40023 *
40024 * @private
40025 * @param {Function} func The function to modify.
40026 * @param {Function} string The `toString` result.
40027 * @returns {Function} Returns `func`.
40028 */
40029var baseSetToString = !defineProperty ? identity : function(func, string) {
40030 return defineProperty(func, 'toString', {
40031 'configurable': true,
40032 'enumerable': false,
40033 'value': constant(string),
40034 'writable': true
40035 });
40036};
40037
40038module.exports = baseSetToString;
40039
40040
40041/***/ }),
40042
40043/***/ "./node_modules/lodash/_baseSortBy.js":
40044/*!********************************************!*\
40045 !*** ./node_modules/lodash/_baseSortBy.js ***!
40046 \********************************************/
40047/*! no static exports found */
40048/***/ (function(module, exports) {
40049
40050/**
40051 * The base implementation of `_.sortBy` which uses `comparer` to define the
40052 * sort order of `array` and replaces criteria objects with their corresponding
40053 * values.
40054 *
40055 * @private
40056 * @param {Array} array The array to sort.
40057 * @param {Function} comparer The function to define sort order.
40058 * @returns {Array} Returns `array`.
40059 */
40060function baseSortBy(array, comparer) {
40061 var length = array.length;
40062
40063 array.sort(comparer);
40064 while (length--) {
40065 array[length] = array[length].value;
40066 }
40067 return array;
40068}
40069
40070module.exports = baseSortBy;
40071
40072
40073/***/ }),
40074
40075/***/ "./node_modules/lodash/_baseTimes.js":
40076/*!*******************************************!*\
40077 !*** ./node_modules/lodash/_baseTimes.js ***!
40078 \*******************************************/
40079/*! no static exports found */
40080/***/ (function(module, exports) {
40081
40082/**
40083 * The base implementation of `_.times` without support for iteratee shorthands
40084 * or max array length checks.
40085 *
40086 * @private
40087 * @param {number} n The number of times to invoke `iteratee`.
40088 * @param {Function} iteratee The function invoked per iteration.
40089 * @returns {Array} Returns the array of results.
40090 */
40091function baseTimes(n, iteratee) {
40092 var index = -1,
40093 result = Array(n);
40094
40095 while (++index < n) {
40096 result[index] = iteratee(index);
40097 }
40098 return result;
40099}
40100
40101module.exports = baseTimes;
40102
40103
40104/***/ }),
40105
40106/***/ "./node_modules/lodash/_baseToString.js":
40107/*!**********************************************!*\
40108 !*** ./node_modules/lodash/_baseToString.js ***!
40109 \**********************************************/
40110/*! no static exports found */
40111/***/ (function(module, exports, __webpack_require__) {
40112
40113var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
40114 arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js"),
40115 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
40116 isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
40117
40118/** Used as references for various `Number` constants. */
40119var INFINITY = 1 / 0;
40120
40121/** Used to convert symbols to primitives and strings. */
40122var symbolProto = Symbol ? Symbol.prototype : undefined,
40123 symbolToString = symbolProto ? symbolProto.toString : undefined;
40124
40125/**
40126 * The base implementation of `_.toString` which doesn't convert nullish
40127 * values to empty strings.
40128 *
40129 * @private
40130 * @param {*} value The value to process.
40131 * @returns {string} Returns the string.
40132 */
40133function baseToString(value) {
40134 // Exit early for strings to avoid a performance hit in some environments.
40135 if (typeof value == 'string') {
40136 return value;
40137 }
40138 if (isArray(value)) {
40139 // Recursively convert values (susceptible to call stack limits).
40140 return arrayMap(value, baseToString) + '';
40141 }
40142 if (isSymbol(value)) {
40143 return symbolToString ? symbolToString.call(value) : '';
40144 }
40145 var result = (value + '');
40146 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
40147}
40148
40149module.exports = baseToString;
40150
40151
40152/***/ }),
40153
40154/***/ "./node_modules/lodash/_baseUnary.js":
40155/*!*******************************************!*\
40156 !*** ./node_modules/lodash/_baseUnary.js ***!
40157 \*******************************************/
40158/*! no static exports found */
40159/***/ (function(module, exports) {
40160
40161/**
40162 * The base implementation of `_.unary` without support for storing metadata.
40163 *
40164 * @private
40165 * @param {Function} func The function to cap arguments for.
40166 * @returns {Function} Returns the new capped function.
40167 */
40168function baseUnary(func) {
40169 return function(value) {
40170 return func(value);
40171 };
40172}
40173
40174module.exports = baseUnary;
40175
40176
40177/***/ }),
40178
40179/***/ "./node_modules/lodash/_baseUniq.js":
40180/*!******************************************!*\
40181 !*** ./node_modules/lodash/_baseUniq.js ***!
40182 \******************************************/
40183/*! no static exports found */
40184/***/ (function(module, exports, __webpack_require__) {
40185
40186var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/lodash/_SetCache.js"),
40187 arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ "./node_modules/lodash/_arrayIncludes.js"),
40188 arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ "./node_modules/lodash/_arrayIncludesWith.js"),
40189 cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/lodash/_cacheHas.js"),
40190 createSet = __webpack_require__(/*! ./_createSet */ "./node_modules/lodash/_createSet.js"),
40191 setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js");
40192
40193/** Used as the size to enable large array optimizations. */
40194var LARGE_ARRAY_SIZE = 200;
40195
40196/**
40197 * The base implementation of `_.uniqBy` without support for iteratee shorthands.
40198 *
40199 * @private
40200 * @param {Array} array The array to inspect.
40201 * @param {Function} [iteratee] The iteratee invoked per element.
40202 * @param {Function} [comparator] The comparator invoked per element.
40203 * @returns {Array} Returns the new duplicate free array.
40204 */
40205function baseUniq(array, iteratee, comparator) {
40206 var index = -1,
40207 includes = arrayIncludes,
40208 length = array.length,
40209 isCommon = true,
40210 result = [],
40211 seen = result;
40212
40213 if (comparator) {
40214 isCommon = false;
40215 includes = arrayIncludesWith;
40216 }
40217 else if (length >= LARGE_ARRAY_SIZE) {
40218 var set = iteratee ? null : createSet(array);
40219 if (set) {
40220 return setToArray(set);
40221 }
40222 isCommon = false;
40223 includes = cacheHas;
40224 seen = new SetCache;
40225 }
40226 else {
40227 seen = iteratee ? [] : result;
40228 }
40229 outer:
40230 while (++index < length) {
40231 var value = array[index],
40232 computed = iteratee ? iteratee(value) : value;
40233
40234 value = (comparator || value !== 0) ? value : 0;
40235 if (isCommon && computed === computed) {
40236 var seenIndex = seen.length;
40237 while (seenIndex--) {
40238 if (seen[seenIndex] === computed) {
40239 continue outer;
40240 }
40241 }
40242 if (iteratee) {
40243 seen.push(computed);
40244 }
40245 result.push(value);
40246 }
40247 else if (!includes(seen, computed, comparator)) {
40248 if (seen !== result) {
40249 seen.push(computed);
40250 }
40251 result.push(value);
40252 }
40253 }
40254 return result;
40255}
40256
40257module.exports = baseUniq;
40258
40259
40260/***/ }),
40261
40262/***/ "./node_modules/lodash/_baseValues.js":
40263/*!********************************************!*\
40264 !*** ./node_modules/lodash/_baseValues.js ***!
40265 \********************************************/
40266/*! no static exports found */
40267/***/ (function(module, exports, __webpack_require__) {
40268
40269var arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js");
40270
40271/**
40272 * The base implementation of `_.values` and `_.valuesIn` which creates an
40273 * array of `object` property values corresponding to the property names
40274 * of `props`.
40275 *
40276 * @private
40277 * @param {Object} object The object to query.
40278 * @param {Array} props The property names to get values for.
40279 * @returns {Object} Returns the array of property values.
40280 */
40281function baseValues(object, props) {
40282 return arrayMap(props, function(key) {
40283 return object[key];
40284 });
40285}
40286
40287module.exports = baseValues;
40288
40289
40290/***/ }),
40291
40292/***/ "./node_modules/lodash/_baseZipObject.js":
40293/*!***********************************************!*\
40294 !*** ./node_modules/lodash/_baseZipObject.js ***!
40295 \***********************************************/
40296/*! no static exports found */
40297/***/ (function(module, exports) {
40298
40299/**
40300 * This base implementation of `_.zipObject` which assigns values using `assignFunc`.
40301 *
40302 * @private
40303 * @param {Array} props The property identifiers.
40304 * @param {Array} values The property values.
40305 * @param {Function} assignFunc The function to assign values.
40306 * @returns {Object} Returns the new object.
40307 */
40308function baseZipObject(props, values, assignFunc) {
40309 var index = -1,
40310 length = props.length,
40311 valsLength = values.length,
40312 result = {};
40313
40314 while (++index < length) {
40315 var value = index < valsLength ? values[index] : undefined;
40316 assignFunc(result, props[index], value);
40317 }
40318 return result;
40319}
40320
40321module.exports = baseZipObject;
40322
40323
40324/***/ }),
40325
40326/***/ "./node_modules/lodash/_cacheHas.js":
40327/*!******************************************!*\
40328 !*** ./node_modules/lodash/_cacheHas.js ***!
40329 \******************************************/
40330/*! no static exports found */
40331/***/ (function(module, exports) {
40332
40333/**
40334 * Checks if a `cache` value for `key` exists.
40335 *
40336 * @private
40337 * @param {Object} cache The cache to query.
40338 * @param {string} key The key of the entry to check.
40339 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
40340 */
40341function cacheHas(cache, key) {
40342 return cache.has(key);
40343}
40344
40345module.exports = cacheHas;
40346
40347
40348/***/ }),
40349
40350/***/ "./node_modules/lodash/_castFunction.js":
40351/*!**********************************************!*\
40352 !*** ./node_modules/lodash/_castFunction.js ***!
40353 \**********************************************/
40354/*! no static exports found */
40355/***/ (function(module, exports, __webpack_require__) {
40356
40357var identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
40358
40359/**
40360 * Casts `value` to `identity` if it's not a function.
40361 *
40362 * @private
40363 * @param {*} value The value to inspect.
40364 * @returns {Function} Returns cast function.
40365 */
40366function castFunction(value) {
40367 return typeof value == 'function' ? value : identity;
40368}
40369
40370module.exports = castFunction;
40371
40372
40373/***/ }),
40374
40375/***/ "./node_modules/lodash/_castPath.js":
40376/*!******************************************!*\
40377 !*** ./node_modules/lodash/_castPath.js ***!
40378 \******************************************/
40379/*! no static exports found */
40380/***/ (function(module, exports, __webpack_require__) {
40381
40382var isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
40383 isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/lodash/_isKey.js"),
40384 stringToPath = __webpack_require__(/*! ./_stringToPath */ "./node_modules/lodash/_stringToPath.js"),
40385 toString = __webpack_require__(/*! ./toString */ "./node_modules/lodash/toString.js");
40386
40387/**
40388 * Casts `value` to a path array if it's not one.
40389 *
40390 * @private
40391 * @param {*} value The value to inspect.
40392 * @param {Object} [object] The object to query keys on.
40393 * @returns {Array} Returns the cast property path array.
40394 */
40395function castPath(value, object) {
40396 if (isArray(value)) {
40397 return value;
40398 }
40399 return isKey(value, object) ? [value] : stringToPath(toString(value));
40400}
40401
40402module.exports = castPath;
40403
40404
40405/***/ }),
40406
40407/***/ "./node_modules/lodash/_cloneArrayBuffer.js":
40408/*!**************************************************!*\
40409 !*** ./node_modules/lodash/_cloneArrayBuffer.js ***!
40410 \**************************************************/
40411/*! no static exports found */
40412/***/ (function(module, exports, __webpack_require__) {
40413
40414var Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js");
40415
40416/**
40417 * Creates a clone of `arrayBuffer`.
40418 *
40419 * @private
40420 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
40421 * @returns {ArrayBuffer} Returns the cloned array buffer.
40422 */
40423function cloneArrayBuffer(arrayBuffer) {
40424 var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
40425 new Uint8Array(result).set(new Uint8Array(arrayBuffer));
40426 return result;
40427}
40428
40429module.exports = cloneArrayBuffer;
40430
40431
40432/***/ }),
40433
40434/***/ "./node_modules/lodash/_cloneBuffer.js":
40435/*!*********************************************!*\
40436 !*** ./node_modules/lodash/_cloneBuffer.js ***!
40437 \*********************************************/
40438/*! no static exports found */
40439/***/ (function(module, exports, __webpack_require__) {
40440
40441/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
40442
40443/** Detect free variable `exports`. */
40444var freeExports = true && exports && !exports.nodeType && exports;
40445
40446/** Detect free variable `module`. */
40447var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
40448
40449/** Detect the popular CommonJS extension `module.exports`. */
40450var moduleExports = freeModule && freeModule.exports === freeExports;
40451
40452/** Built-in value references. */
40453var Buffer = moduleExports ? root.Buffer : undefined,
40454 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
40455
40456/**
40457 * Creates a clone of `buffer`.
40458 *
40459 * @private
40460 * @param {Buffer} buffer The buffer to clone.
40461 * @param {boolean} [isDeep] Specify a deep clone.
40462 * @returns {Buffer} Returns the cloned buffer.
40463 */
40464function cloneBuffer(buffer, isDeep) {
40465 if (isDeep) {
40466 return buffer.slice();
40467 }
40468 var length = buffer.length,
40469 result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
40470
40471 buffer.copy(result);
40472 return result;
40473}
40474
40475module.exports = cloneBuffer;
40476
40477/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
40478
40479/***/ }),
40480
40481/***/ "./node_modules/lodash/_cloneDataView.js":
40482/*!***********************************************!*\
40483 !*** ./node_modules/lodash/_cloneDataView.js ***!
40484 \***********************************************/
40485/*! no static exports found */
40486/***/ (function(module, exports, __webpack_require__) {
40487
40488var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");
40489
40490/**
40491 * Creates a clone of `dataView`.
40492 *
40493 * @private
40494 * @param {Object} dataView The data view to clone.
40495 * @param {boolean} [isDeep] Specify a deep clone.
40496 * @returns {Object} Returns the cloned data view.
40497 */
40498function cloneDataView(dataView, isDeep) {
40499 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
40500 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
40501}
40502
40503module.exports = cloneDataView;
40504
40505
40506/***/ }),
40507
40508/***/ "./node_modules/lodash/_cloneRegExp.js":
40509/*!*********************************************!*\
40510 !*** ./node_modules/lodash/_cloneRegExp.js ***!
40511 \*********************************************/
40512/*! no static exports found */
40513/***/ (function(module, exports) {
40514
40515/** Used to match `RegExp` flags from their coerced string values. */
40516var reFlags = /\w*$/;
40517
40518/**
40519 * Creates a clone of `regexp`.
40520 *
40521 * @private
40522 * @param {Object} regexp The regexp to clone.
40523 * @returns {Object} Returns the cloned regexp.
40524 */
40525function cloneRegExp(regexp) {
40526 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
40527 result.lastIndex = regexp.lastIndex;
40528 return result;
40529}
40530
40531module.exports = cloneRegExp;
40532
40533
40534/***/ }),
40535
40536/***/ "./node_modules/lodash/_cloneSymbol.js":
40537/*!*********************************************!*\
40538 !*** ./node_modules/lodash/_cloneSymbol.js ***!
40539 \*********************************************/
40540/*! no static exports found */
40541/***/ (function(module, exports, __webpack_require__) {
40542
40543var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");
40544
40545/** Used to convert symbols to primitives and strings. */
40546var symbolProto = Symbol ? Symbol.prototype : undefined,
40547 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
40548
40549/**
40550 * Creates a clone of the `symbol` object.
40551 *
40552 * @private
40553 * @param {Object} symbol The symbol object to clone.
40554 * @returns {Object} Returns the cloned symbol object.
40555 */
40556function cloneSymbol(symbol) {
40557 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
40558}
40559
40560module.exports = cloneSymbol;
40561
40562
40563/***/ }),
40564
40565/***/ "./node_modules/lodash/_cloneTypedArray.js":
40566/*!*************************************************!*\
40567 !*** ./node_modules/lodash/_cloneTypedArray.js ***!
40568 \*************************************************/
40569/*! no static exports found */
40570/***/ (function(module, exports, __webpack_require__) {
40571
40572var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");
40573
40574/**
40575 * Creates a clone of `typedArray`.
40576 *
40577 * @private
40578 * @param {Object} typedArray The typed array to clone.
40579 * @param {boolean} [isDeep] Specify a deep clone.
40580 * @returns {Object} Returns the cloned typed array.
40581 */
40582function cloneTypedArray(typedArray, isDeep) {
40583 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
40584 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
40585}
40586
40587module.exports = cloneTypedArray;
40588
40589
40590/***/ }),
40591
40592/***/ "./node_modules/lodash/_compareAscending.js":
40593/*!**************************************************!*\
40594 !*** ./node_modules/lodash/_compareAscending.js ***!
40595 \**************************************************/
40596/*! no static exports found */
40597/***/ (function(module, exports, __webpack_require__) {
40598
40599var isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
40600
40601/**
40602 * Compares values to sort them in ascending order.
40603 *
40604 * @private
40605 * @param {*} value The value to compare.
40606 * @param {*} other The other value to compare.
40607 * @returns {number} Returns the sort order indicator for `value`.
40608 */
40609function compareAscending(value, other) {
40610 if (value !== other) {
40611 var valIsDefined = value !== undefined,
40612 valIsNull = value === null,
40613 valIsReflexive = value === value,
40614 valIsSymbol = isSymbol(value);
40615
40616 var othIsDefined = other !== undefined,
40617 othIsNull = other === null,
40618 othIsReflexive = other === other,
40619 othIsSymbol = isSymbol(other);
40620
40621 if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
40622 (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
40623 (valIsNull && othIsDefined && othIsReflexive) ||
40624 (!valIsDefined && othIsReflexive) ||
40625 !valIsReflexive) {
40626 return 1;
40627 }
40628 if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
40629 (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
40630 (othIsNull && valIsDefined && valIsReflexive) ||
40631 (!othIsDefined && valIsReflexive) ||
40632 !othIsReflexive) {
40633 return -1;
40634 }
40635 }
40636 return 0;
40637}
40638
40639module.exports = compareAscending;
40640
40641
40642/***/ }),
40643
40644/***/ "./node_modules/lodash/_compareMultiple.js":
40645/*!*************************************************!*\
40646 !*** ./node_modules/lodash/_compareMultiple.js ***!
40647 \*************************************************/
40648/*! no static exports found */
40649/***/ (function(module, exports, __webpack_require__) {
40650
40651var compareAscending = __webpack_require__(/*! ./_compareAscending */ "./node_modules/lodash/_compareAscending.js");
40652
40653/**
40654 * Used by `_.orderBy` to compare multiple properties of a value to another
40655 * and stable sort them.
40656 *
40657 * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,
40658 * specify an order of "desc" for descending or "asc" for ascending sort order
40659 * of corresponding values.
40660 *
40661 * @private
40662 * @param {Object} object The object to compare.
40663 * @param {Object} other The other object to compare.
40664 * @param {boolean[]|string[]} orders The order to sort by for each property.
40665 * @returns {number} Returns the sort order indicator for `object`.
40666 */
40667function compareMultiple(object, other, orders) {
40668 var index = -1,
40669 objCriteria = object.criteria,
40670 othCriteria = other.criteria,
40671 length = objCriteria.length,
40672 ordersLength = orders.length;
40673
40674 while (++index < length) {
40675 var result = compareAscending(objCriteria[index], othCriteria[index]);
40676 if (result) {
40677 if (index >= ordersLength) {
40678 return result;
40679 }
40680 var order = orders[index];
40681 return result * (order == 'desc' ? -1 : 1);
40682 }
40683 }
40684 // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
40685 // that causes it, under certain circumstances, to provide the same value for
40686 // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
40687 // for more details.
40688 //
40689 // This also ensures a stable sort in V8 and other engines.
40690 // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
40691 return object.index - other.index;
40692}
40693
40694module.exports = compareMultiple;
40695
40696
40697/***/ }),
40698
40699/***/ "./node_modules/lodash/_copyArray.js":
40700/*!*******************************************!*\
40701 !*** ./node_modules/lodash/_copyArray.js ***!
40702 \*******************************************/
40703/*! no static exports found */
40704/***/ (function(module, exports) {
40705
40706/**
40707 * Copies the values of `source` to `array`.
40708 *
40709 * @private
40710 * @param {Array} source The array to copy values from.
40711 * @param {Array} [array=[]] The array to copy values to.
40712 * @returns {Array} Returns `array`.
40713 */
40714function copyArray(source, array) {
40715 var index = -1,
40716 length = source.length;
40717
40718 array || (array = Array(length));
40719 while (++index < length) {
40720 array[index] = source[index];
40721 }
40722 return array;
40723}
40724
40725module.exports = copyArray;
40726
40727
40728/***/ }),
40729
40730/***/ "./node_modules/lodash/_copyObject.js":
40731/*!********************************************!*\
40732 !*** ./node_modules/lodash/_copyObject.js ***!
40733 \********************************************/
40734/*! no static exports found */
40735/***/ (function(module, exports, __webpack_require__) {
40736
40737var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
40738 baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js");
40739
40740/**
40741 * Copies properties of `source` to `object`.
40742 *
40743 * @private
40744 * @param {Object} source The object to copy properties from.
40745 * @param {Array} props The property identifiers to copy.
40746 * @param {Object} [object={}] The object to copy properties to.
40747 * @param {Function} [customizer] The function to customize copied values.
40748 * @returns {Object} Returns `object`.
40749 */
40750function copyObject(source, props, object, customizer) {
40751 var isNew = !object;
40752 object || (object = {});
40753
40754 var index = -1,
40755 length = props.length;
40756
40757 while (++index < length) {
40758 var key = props[index];
40759
40760 var newValue = customizer
40761 ? customizer(object[key], source[key], key, object, source)
40762 : undefined;
40763
40764 if (newValue === undefined) {
40765 newValue = source[key];
40766 }
40767 if (isNew) {
40768 baseAssignValue(object, key, newValue);
40769 } else {
40770 assignValue(object, key, newValue);
40771 }
40772 }
40773 return object;
40774}
40775
40776module.exports = copyObject;
40777
40778
40779/***/ }),
40780
40781/***/ "./node_modules/lodash/_copySymbols.js":
40782/*!*********************************************!*\
40783 !*** ./node_modules/lodash/_copySymbols.js ***!
40784 \*********************************************/
40785/*! no static exports found */
40786/***/ (function(module, exports, __webpack_require__) {
40787
40788var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
40789 getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js");
40790
40791/**
40792 * Copies own symbols of `source` to `object`.
40793 *
40794 * @private
40795 * @param {Object} source The object to copy symbols from.
40796 * @param {Object} [object={}] The object to copy symbols to.
40797 * @returns {Object} Returns `object`.
40798 */
40799function copySymbols(source, object) {
40800 return copyObject(source, getSymbols(source), object);
40801}
40802
40803module.exports = copySymbols;
40804
40805
40806/***/ }),
40807
40808/***/ "./node_modules/lodash/_copySymbolsIn.js":
40809/*!***********************************************!*\
40810 !*** ./node_modules/lodash/_copySymbolsIn.js ***!
40811 \***********************************************/
40812/*! no static exports found */
40813/***/ (function(module, exports, __webpack_require__) {
40814
40815var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
40816 getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ "./node_modules/lodash/_getSymbolsIn.js");
40817
40818/**
40819 * Copies own and inherited symbols of `source` to `object`.
40820 *
40821 * @private
40822 * @param {Object} source The object to copy symbols from.
40823 * @param {Object} [object={}] The object to copy symbols to.
40824 * @returns {Object} Returns `object`.
40825 */
40826function copySymbolsIn(source, object) {
40827 return copyObject(source, getSymbolsIn(source), object);
40828}
40829
40830module.exports = copySymbolsIn;
40831
40832
40833/***/ }),
40834
40835/***/ "./node_modules/lodash/_coreJsData.js":
40836/*!********************************************!*\
40837 !*** ./node_modules/lodash/_coreJsData.js ***!
40838 \********************************************/
40839/*! no static exports found */
40840/***/ (function(module, exports, __webpack_require__) {
40841
40842var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
40843
40844/** Used to detect overreaching core-js shims. */
40845var coreJsData = root['__core-js_shared__'];
40846
40847module.exports = coreJsData;
40848
40849
40850/***/ }),
40851
40852/***/ "./node_modules/lodash/_createAssigner.js":
40853/*!************************************************!*\
40854 !*** ./node_modules/lodash/_createAssigner.js ***!
40855 \************************************************/
40856/*! no static exports found */
40857/***/ (function(module, exports, __webpack_require__) {
40858
40859var baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
40860 isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js");
40861
40862/**
40863 * Creates a function like `_.assign`.
40864 *
40865 * @private
40866 * @param {Function} assigner The function to assign values.
40867 * @returns {Function} Returns the new assigner function.
40868 */
40869function createAssigner(assigner) {
40870 return baseRest(function(object, sources) {
40871 var index = -1,
40872 length = sources.length,
40873 customizer = length > 1 ? sources[length - 1] : undefined,
40874 guard = length > 2 ? sources[2] : undefined;
40875
40876 customizer = (assigner.length > 3 && typeof customizer == 'function')
40877 ? (length--, customizer)
40878 : undefined;
40879
40880 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
40881 customizer = length < 3 ? undefined : customizer;
40882 length = 1;
40883 }
40884 object = Object(object);
40885 while (++index < length) {
40886 var source = sources[index];
40887 if (source) {
40888 assigner(object, source, index, customizer);
40889 }
40890 }
40891 return object;
40892 });
40893}
40894
40895module.exports = createAssigner;
40896
40897
40898/***/ }),
40899
40900/***/ "./node_modules/lodash/_createBaseEach.js":
40901/*!************************************************!*\
40902 !*** ./node_modules/lodash/_createBaseEach.js ***!
40903 \************************************************/
40904/*! no static exports found */
40905/***/ (function(module, exports, __webpack_require__) {
40906
40907var isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
40908
40909/**
40910 * Creates a `baseEach` or `baseEachRight` function.
40911 *
40912 * @private
40913 * @param {Function} eachFunc The function to iterate over a collection.
40914 * @param {boolean} [fromRight] Specify iterating from right to left.
40915 * @returns {Function} Returns the new base function.
40916 */
40917function createBaseEach(eachFunc, fromRight) {
40918 return function(collection, iteratee) {
40919 if (collection == null) {
40920 return collection;
40921 }
40922 if (!isArrayLike(collection)) {
40923 return eachFunc(collection, iteratee);
40924 }
40925 var length = collection.length,
40926 index = fromRight ? length : -1,
40927 iterable = Object(collection);
40928
40929 while ((fromRight ? index-- : ++index < length)) {
40930 if (iteratee(iterable[index], index, iterable) === false) {
40931 break;
40932 }
40933 }
40934 return collection;
40935 };
40936}
40937
40938module.exports = createBaseEach;
40939
40940
40941/***/ }),
40942
40943/***/ "./node_modules/lodash/_createBaseFor.js":
40944/*!***********************************************!*\
40945 !*** ./node_modules/lodash/_createBaseFor.js ***!
40946 \***********************************************/
40947/*! no static exports found */
40948/***/ (function(module, exports) {
40949
40950/**
40951 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
40952 *
40953 * @private
40954 * @param {boolean} [fromRight] Specify iterating from right to left.
40955 * @returns {Function} Returns the new base function.
40956 */
40957function createBaseFor(fromRight) {
40958 return function(object, iteratee, keysFunc) {
40959 var index = -1,
40960 iterable = Object(object),
40961 props = keysFunc(object),
40962 length = props.length;
40963
40964 while (length--) {
40965 var key = props[fromRight ? length : ++index];
40966 if (iteratee(iterable[key], key, iterable) === false) {
40967 break;
40968 }
40969 }
40970 return object;
40971 };
40972}
40973
40974module.exports = createBaseFor;
40975
40976
40977/***/ }),
40978
40979/***/ "./node_modules/lodash/_createFind.js":
40980/*!********************************************!*\
40981 !*** ./node_modules/lodash/_createFind.js ***!
40982 \********************************************/
40983/*! no static exports found */
40984/***/ (function(module, exports, __webpack_require__) {
40985
40986var baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
40987 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
40988 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
40989
40990/**
40991 * Creates a `_.find` or `_.findLast` function.
40992 *
40993 * @private
40994 * @param {Function} findIndexFunc The function to find the collection index.
40995 * @returns {Function} Returns the new find function.
40996 */
40997function createFind(findIndexFunc) {
40998 return function(collection, predicate, fromIndex) {
40999 var iterable = Object(collection);
41000 if (!isArrayLike(collection)) {
41001 var iteratee = baseIteratee(predicate, 3);
41002 collection = keys(collection);
41003 predicate = function(key) { return iteratee(iterable[key], key, iterable); };
41004 }
41005 var index = findIndexFunc(collection, predicate, fromIndex);
41006 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
41007 };
41008}
41009
41010module.exports = createFind;
41011
41012
41013/***/ }),
41014
41015/***/ "./node_modules/lodash/_createRange.js":
41016/*!*********************************************!*\
41017 !*** ./node_modules/lodash/_createRange.js ***!
41018 \*********************************************/
41019/*! no static exports found */
41020/***/ (function(module, exports, __webpack_require__) {
41021
41022var baseRange = __webpack_require__(/*! ./_baseRange */ "./node_modules/lodash/_baseRange.js"),
41023 isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js"),
41024 toFinite = __webpack_require__(/*! ./toFinite */ "./node_modules/lodash/toFinite.js");
41025
41026/**
41027 * Creates a `_.range` or `_.rangeRight` function.
41028 *
41029 * @private
41030 * @param {boolean} [fromRight] Specify iterating from right to left.
41031 * @returns {Function} Returns the new range function.
41032 */
41033function createRange(fromRight) {
41034 return function(start, end, step) {
41035 if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
41036 end = step = undefined;
41037 }
41038 // Ensure the sign of `-0` is preserved.
41039 start = toFinite(start);
41040 if (end === undefined) {
41041 end = start;
41042 start = 0;
41043 } else {
41044 end = toFinite(end);
41045 }
41046 step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
41047 return baseRange(start, end, step, fromRight);
41048 };
41049}
41050
41051module.exports = createRange;
41052
41053
41054/***/ }),
41055
41056/***/ "./node_modules/lodash/_createSet.js":
41057/*!*******************************************!*\
41058 !*** ./node_modules/lodash/_createSet.js ***!
41059 \*******************************************/
41060/*! no static exports found */
41061/***/ (function(module, exports, __webpack_require__) {
41062
41063var Set = __webpack_require__(/*! ./_Set */ "./node_modules/lodash/_Set.js"),
41064 noop = __webpack_require__(/*! ./noop */ "./node_modules/lodash/noop.js"),
41065 setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js");
41066
41067/** Used as references for various `Number` constants. */
41068var INFINITY = 1 / 0;
41069
41070/**
41071 * Creates a set object of `values`.
41072 *
41073 * @private
41074 * @param {Array} values The values to add to the set.
41075 * @returns {Object} Returns the new set.
41076 */
41077var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
41078 return new Set(values);
41079};
41080
41081module.exports = createSet;
41082
41083
41084/***/ }),
41085
41086/***/ "./node_modules/lodash/_defineProperty.js":
41087/*!************************************************!*\
41088 !*** ./node_modules/lodash/_defineProperty.js ***!
41089 \************************************************/
41090/*! no static exports found */
41091/***/ (function(module, exports, __webpack_require__) {
41092
41093var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js");
41094
41095var defineProperty = (function() {
41096 try {
41097 var func = getNative(Object, 'defineProperty');
41098 func({}, '', {});
41099 return func;
41100 } catch (e) {}
41101}());
41102
41103module.exports = defineProperty;
41104
41105
41106/***/ }),
41107
41108/***/ "./node_modules/lodash/_equalArrays.js":
41109/*!*********************************************!*\
41110 !*** ./node_modules/lodash/_equalArrays.js ***!
41111 \*********************************************/
41112/*! no static exports found */
41113/***/ (function(module, exports, __webpack_require__) {
41114
41115var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/lodash/_SetCache.js"),
41116 arraySome = __webpack_require__(/*! ./_arraySome */ "./node_modules/lodash/_arraySome.js"),
41117 cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/lodash/_cacheHas.js");
41118
41119/** Used to compose bitmasks for value comparisons. */
41120var COMPARE_PARTIAL_FLAG = 1,
41121 COMPARE_UNORDERED_FLAG = 2;
41122
41123/**
41124 * A specialized version of `baseIsEqualDeep` for arrays with support for
41125 * partial deep comparisons.
41126 *
41127 * @private
41128 * @param {Array} array The array to compare.
41129 * @param {Array} other The other array to compare.
41130 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
41131 * @param {Function} customizer The function to customize comparisons.
41132 * @param {Function} equalFunc The function to determine equivalents of values.
41133 * @param {Object} stack Tracks traversed `array` and `other` objects.
41134 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
41135 */
41136function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
41137 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
41138 arrLength = array.length,
41139 othLength = other.length;
41140
41141 if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
41142 return false;
41143 }
41144 // Assume cyclic values are equal.
41145 var stacked = stack.get(array);
41146 if (stacked && stack.get(other)) {
41147 return stacked == other;
41148 }
41149 var index = -1,
41150 result = true,
41151 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
41152
41153 stack.set(array, other);
41154 stack.set(other, array);
41155
41156 // Ignore non-index properties.
41157 while (++index < arrLength) {
41158 var arrValue = array[index],
41159 othValue = other[index];
41160
41161 if (customizer) {
41162 var compared = isPartial
41163 ? customizer(othValue, arrValue, index, other, array, stack)
41164 : customizer(arrValue, othValue, index, array, other, stack);
41165 }
41166 if (compared !== undefined) {
41167 if (compared) {
41168 continue;
41169 }
41170 result = false;
41171 break;
41172 }
41173 // Recursively compare arrays (susceptible to call stack limits).
41174 if (seen) {
41175 if (!arraySome(other, function(othValue, othIndex) {
41176 if (!cacheHas(seen, othIndex) &&
41177 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
41178 return seen.push(othIndex);
41179 }
41180 })) {
41181 result = false;
41182 break;
41183 }
41184 } else if (!(
41185 arrValue === othValue ||
41186 equalFunc(arrValue, othValue, bitmask, customizer, stack)
41187 )) {
41188 result = false;
41189 break;
41190 }
41191 }
41192 stack['delete'](array);
41193 stack['delete'](other);
41194 return result;
41195}
41196
41197module.exports = equalArrays;
41198
41199
41200/***/ }),
41201
41202/***/ "./node_modules/lodash/_equalByTag.js":
41203/*!********************************************!*\
41204 !*** ./node_modules/lodash/_equalByTag.js ***!
41205 \********************************************/
41206/*! no static exports found */
41207/***/ (function(module, exports, __webpack_require__) {
41208
41209var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
41210 Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js"),
41211 eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
41212 equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),
41213 mapToArray = __webpack_require__(/*! ./_mapToArray */ "./node_modules/lodash/_mapToArray.js"),
41214 setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js");
41215
41216/** Used to compose bitmasks for value comparisons. */
41217var COMPARE_PARTIAL_FLAG = 1,
41218 COMPARE_UNORDERED_FLAG = 2;
41219
41220/** `Object#toString` result references. */
41221var boolTag = '[object Boolean]',
41222 dateTag = '[object Date]',
41223 errorTag = '[object Error]',
41224 mapTag = '[object Map]',
41225 numberTag = '[object Number]',
41226 regexpTag = '[object RegExp]',
41227 setTag = '[object Set]',
41228 stringTag = '[object String]',
41229 symbolTag = '[object Symbol]';
41230
41231var arrayBufferTag = '[object ArrayBuffer]',
41232 dataViewTag = '[object DataView]';
41233
41234/** Used to convert symbols to primitives and strings. */
41235var symbolProto = Symbol ? Symbol.prototype : undefined,
41236 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
41237
41238/**
41239 * A specialized version of `baseIsEqualDeep` for comparing objects of
41240 * the same `toStringTag`.
41241 *
41242 * **Note:** This function only supports comparing values with tags of
41243 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
41244 *
41245 * @private
41246 * @param {Object} object The object to compare.
41247 * @param {Object} other The other object to compare.
41248 * @param {string} tag The `toStringTag` of the objects to compare.
41249 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
41250 * @param {Function} customizer The function to customize comparisons.
41251 * @param {Function} equalFunc The function to determine equivalents of values.
41252 * @param {Object} stack Tracks traversed `object` and `other` objects.
41253 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
41254 */
41255function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
41256 switch (tag) {
41257 case dataViewTag:
41258 if ((object.byteLength != other.byteLength) ||
41259 (object.byteOffset != other.byteOffset)) {
41260 return false;
41261 }
41262 object = object.buffer;
41263 other = other.buffer;
41264
41265 case arrayBufferTag:
41266 if ((object.byteLength != other.byteLength) ||
41267 !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
41268 return false;
41269 }
41270 return true;
41271
41272 case boolTag:
41273 case dateTag:
41274 case numberTag:
41275 // Coerce booleans to `1` or `0` and dates to milliseconds.
41276 // Invalid dates are coerced to `NaN`.
41277 return eq(+object, +other);
41278
41279 case errorTag:
41280 return object.name == other.name && object.message == other.message;
41281
41282 case regexpTag:
41283 case stringTag:
41284 // Coerce regexes to strings and treat strings, primitives and objects,
41285 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
41286 // for more details.
41287 return object == (other + '');
41288
41289 case mapTag:
41290 var convert = mapToArray;
41291
41292 case setTag:
41293 var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
41294 convert || (convert = setToArray);
41295
41296 if (object.size != other.size && !isPartial) {
41297 return false;
41298 }
41299 // Assume cyclic values are equal.
41300 var stacked = stack.get(object);
41301 if (stacked) {
41302 return stacked == other;
41303 }
41304 bitmask |= COMPARE_UNORDERED_FLAG;
41305
41306 // Recursively compare objects (susceptible to call stack limits).
41307 stack.set(object, other);
41308 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
41309 stack['delete'](object);
41310 return result;
41311
41312 case symbolTag:
41313 if (symbolValueOf) {
41314 return symbolValueOf.call(object) == symbolValueOf.call(other);
41315 }
41316 }
41317 return false;
41318}
41319
41320module.exports = equalByTag;
41321
41322
41323/***/ }),
41324
41325/***/ "./node_modules/lodash/_equalObjects.js":
41326/*!**********************************************!*\
41327 !*** ./node_modules/lodash/_equalObjects.js ***!
41328 \**********************************************/
41329/*! no static exports found */
41330/***/ (function(module, exports, __webpack_require__) {
41331
41332var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./node_modules/lodash/_getAllKeys.js");
41333
41334/** Used to compose bitmasks for value comparisons. */
41335var COMPARE_PARTIAL_FLAG = 1;
41336
41337/** Used for built-in method references. */
41338var objectProto = Object.prototype;
41339
41340/** Used to check objects for own properties. */
41341var hasOwnProperty = objectProto.hasOwnProperty;
41342
41343/**
41344 * A specialized version of `baseIsEqualDeep` for objects with support for
41345 * partial deep comparisons.
41346 *
41347 * @private
41348 * @param {Object} object The object to compare.
41349 * @param {Object} other The other object to compare.
41350 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
41351 * @param {Function} customizer The function to customize comparisons.
41352 * @param {Function} equalFunc The function to determine equivalents of values.
41353 * @param {Object} stack Tracks traversed `object` and `other` objects.
41354 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
41355 */
41356function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
41357 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
41358 objProps = getAllKeys(object),
41359 objLength = objProps.length,
41360 othProps = getAllKeys(other),
41361 othLength = othProps.length;
41362
41363 if (objLength != othLength && !isPartial) {
41364 return false;
41365 }
41366 var index = objLength;
41367 while (index--) {
41368 var key = objProps[index];
41369 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
41370 return false;
41371 }
41372 }
41373 // Assume cyclic values are equal.
41374 var stacked = stack.get(object);
41375 if (stacked && stack.get(other)) {
41376 return stacked == other;
41377 }
41378 var result = true;
41379 stack.set(object, other);
41380 stack.set(other, object);
41381
41382 var skipCtor = isPartial;
41383 while (++index < objLength) {
41384 key = objProps[index];
41385 var objValue = object[key],
41386 othValue = other[key];
41387
41388 if (customizer) {
41389 var compared = isPartial
41390 ? customizer(othValue, objValue, key, other, object, stack)
41391 : customizer(objValue, othValue, key, object, other, stack);
41392 }
41393 // Recursively compare objects (susceptible to call stack limits).
41394 if (!(compared === undefined
41395 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
41396 : compared
41397 )) {
41398 result = false;
41399 break;
41400 }
41401 skipCtor || (skipCtor = key == 'constructor');
41402 }
41403 if (result && !skipCtor) {
41404 var objCtor = object.constructor,
41405 othCtor = other.constructor;
41406
41407 // Non `Object` object instances with different constructors are not equal.
41408 if (objCtor != othCtor &&
41409 ('constructor' in object && 'constructor' in other) &&
41410 !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
41411 typeof othCtor == 'function' && othCtor instanceof othCtor)) {
41412 result = false;
41413 }
41414 }
41415 stack['delete'](object);
41416 stack['delete'](other);
41417 return result;
41418}
41419
41420module.exports = equalObjects;
41421
41422
41423/***/ }),
41424
41425/***/ "./node_modules/lodash/_flatRest.js":
41426/*!******************************************!*\
41427 !*** ./node_modules/lodash/_flatRest.js ***!
41428 \******************************************/
41429/*! no static exports found */
41430/***/ (function(module, exports, __webpack_require__) {
41431
41432var flatten = __webpack_require__(/*! ./flatten */ "./node_modules/lodash/flatten.js"),
41433 overRest = __webpack_require__(/*! ./_overRest */ "./node_modules/lodash/_overRest.js"),
41434 setToString = __webpack_require__(/*! ./_setToString */ "./node_modules/lodash/_setToString.js");
41435
41436/**
41437 * A specialized version of `baseRest` which flattens the rest array.
41438 *
41439 * @private
41440 * @param {Function} func The function to apply a rest parameter to.
41441 * @returns {Function} Returns the new function.
41442 */
41443function flatRest(func) {
41444 return setToString(overRest(func, undefined, flatten), func + '');
41445}
41446
41447module.exports = flatRest;
41448
41449
41450/***/ }),
41451
41452/***/ "./node_modules/lodash/_freeGlobal.js":
41453/*!********************************************!*\
41454 !*** ./node_modules/lodash/_freeGlobal.js ***!
41455 \********************************************/
41456/*! no static exports found */
41457/***/ (function(module, exports, __webpack_require__) {
41458
41459/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
41460var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
41461
41462module.exports = freeGlobal;
41463
41464/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
41465
41466/***/ }),
41467
41468/***/ "./node_modules/lodash/_getAllKeys.js":
41469/*!********************************************!*\
41470 !*** ./node_modules/lodash/_getAllKeys.js ***!
41471 \********************************************/
41472/*! no static exports found */
41473/***/ (function(module, exports, __webpack_require__) {
41474
41475var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),
41476 getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),
41477 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
41478
41479/**
41480 * Creates an array of own enumerable property names and symbols of `object`.
41481 *
41482 * @private
41483 * @param {Object} object The object to query.
41484 * @returns {Array} Returns the array of property names and symbols.
41485 */
41486function getAllKeys(object) {
41487 return baseGetAllKeys(object, keys, getSymbols);
41488}
41489
41490module.exports = getAllKeys;
41491
41492
41493/***/ }),
41494
41495/***/ "./node_modules/lodash/_getAllKeysIn.js":
41496/*!**********************************************!*\
41497 !*** ./node_modules/lodash/_getAllKeysIn.js ***!
41498 \**********************************************/
41499/*! no static exports found */
41500/***/ (function(module, exports, __webpack_require__) {
41501
41502var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),
41503 getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ "./node_modules/lodash/_getSymbolsIn.js"),
41504 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
41505
41506/**
41507 * Creates an array of own and inherited enumerable property names and
41508 * symbols of `object`.
41509 *
41510 * @private
41511 * @param {Object} object The object to query.
41512 * @returns {Array} Returns the array of property names and symbols.
41513 */
41514function getAllKeysIn(object) {
41515 return baseGetAllKeys(object, keysIn, getSymbolsIn);
41516}
41517
41518module.exports = getAllKeysIn;
41519
41520
41521/***/ }),
41522
41523/***/ "./node_modules/lodash/_getMapData.js":
41524/*!********************************************!*\
41525 !*** ./node_modules/lodash/_getMapData.js ***!
41526 \********************************************/
41527/*! no static exports found */
41528/***/ (function(module, exports, __webpack_require__) {
41529
41530var isKeyable = __webpack_require__(/*! ./_isKeyable */ "./node_modules/lodash/_isKeyable.js");
41531
41532/**
41533 * Gets the data for `map`.
41534 *
41535 * @private
41536 * @param {Object} map The map to query.
41537 * @param {string} key The reference key.
41538 * @returns {*} Returns the map data.
41539 */
41540function getMapData(map, key) {
41541 var data = map.__data__;
41542 return isKeyable(key)
41543 ? data[typeof key == 'string' ? 'string' : 'hash']
41544 : data.map;
41545}
41546
41547module.exports = getMapData;
41548
41549
41550/***/ }),
41551
41552/***/ "./node_modules/lodash/_getMatchData.js":
41553/*!**********************************************!*\
41554 !*** ./node_modules/lodash/_getMatchData.js ***!
41555 \**********************************************/
41556/*! no static exports found */
41557/***/ (function(module, exports, __webpack_require__) {
41558
41559var isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./node_modules/lodash/_isStrictComparable.js"),
41560 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
41561
41562/**
41563 * Gets the property names, values, and compare flags of `object`.
41564 *
41565 * @private
41566 * @param {Object} object The object to query.
41567 * @returns {Array} Returns the match data of `object`.
41568 */
41569function getMatchData(object) {
41570 var result = keys(object),
41571 length = result.length;
41572
41573 while (length--) {
41574 var key = result[length],
41575 value = object[key];
41576
41577 result[length] = [key, value, isStrictComparable(value)];
41578 }
41579 return result;
41580}
41581
41582module.exports = getMatchData;
41583
41584
41585/***/ }),
41586
41587/***/ "./node_modules/lodash/_getNative.js":
41588/*!*******************************************!*\
41589 !*** ./node_modules/lodash/_getNative.js ***!
41590 \*******************************************/
41591/*! no static exports found */
41592/***/ (function(module, exports, __webpack_require__) {
41593
41594var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ "./node_modules/lodash/_baseIsNative.js"),
41595 getValue = __webpack_require__(/*! ./_getValue */ "./node_modules/lodash/_getValue.js");
41596
41597/**
41598 * Gets the native function at `key` of `object`.
41599 *
41600 * @private
41601 * @param {Object} object The object to query.
41602 * @param {string} key The key of the method to get.
41603 * @returns {*} Returns the function if it's native, else `undefined`.
41604 */
41605function getNative(object, key) {
41606 var value = getValue(object, key);
41607 return baseIsNative(value) ? value : undefined;
41608}
41609
41610module.exports = getNative;
41611
41612
41613/***/ }),
41614
41615/***/ "./node_modules/lodash/_getPrototype.js":
41616/*!**********************************************!*\
41617 !*** ./node_modules/lodash/_getPrototype.js ***!
41618 \**********************************************/
41619/*! no static exports found */
41620/***/ (function(module, exports, __webpack_require__) {
41621
41622var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");
41623
41624/** Built-in value references. */
41625var getPrototype = overArg(Object.getPrototypeOf, Object);
41626
41627module.exports = getPrototype;
41628
41629
41630/***/ }),
41631
41632/***/ "./node_modules/lodash/_getRawTag.js":
41633/*!*******************************************!*\
41634 !*** ./node_modules/lodash/_getRawTag.js ***!
41635 \*******************************************/
41636/*! no static exports found */
41637/***/ (function(module, exports, __webpack_require__) {
41638
41639var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");
41640
41641/** Used for built-in method references. */
41642var objectProto = Object.prototype;
41643
41644/** Used to check objects for own properties. */
41645var hasOwnProperty = objectProto.hasOwnProperty;
41646
41647/**
41648 * Used to resolve the
41649 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
41650 * of values.
41651 */
41652var nativeObjectToString = objectProto.toString;
41653
41654/** Built-in value references. */
41655var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
41656
41657/**
41658 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
41659 *
41660 * @private
41661 * @param {*} value The value to query.
41662 * @returns {string} Returns the raw `toStringTag`.
41663 */
41664function getRawTag(value) {
41665 var isOwn = hasOwnProperty.call(value, symToStringTag),
41666 tag = value[symToStringTag];
41667
41668 try {
41669 value[symToStringTag] = undefined;
41670 var unmasked = true;
41671 } catch (e) {}
41672
41673 var result = nativeObjectToString.call(value);
41674 if (unmasked) {
41675 if (isOwn) {
41676 value[symToStringTag] = tag;
41677 } else {
41678 delete value[symToStringTag];
41679 }
41680 }
41681 return result;
41682}
41683
41684module.exports = getRawTag;
41685
41686
41687/***/ }),
41688
41689/***/ "./node_modules/lodash/_getSymbols.js":
41690/*!********************************************!*\
41691 !*** ./node_modules/lodash/_getSymbols.js ***!
41692 \********************************************/
41693/*! no static exports found */
41694/***/ (function(module, exports, __webpack_require__) {
41695
41696var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./node_modules/lodash/_arrayFilter.js"),
41697 stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");
41698
41699/** Used for built-in method references. */
41700var objectProto = Object.prototype;
41701
41702/** Built-in value references. */
41703var propertyIsEnumerable = objectProto.propertyIsEnumerable;
41704
41705/* Built-in method references for those with the same name as other `lodash` methods. */
41706var nativeGetSymbols = Object.getOwnPropertySymbols;
41707
41708/**
41709 * Creates an array of the own enumerable symbols of `object`.
41710 *
41711 * @private
41712 * @param {Object} object The object to query.
41713 * @returns {Array} Returns the array of symbols.
41714 */
41715var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
41716 if (object == null) {
41717 return [];
41718 }
41719 object = Object(object);
41720 return arrayFilter(nativeGetSymbols(object), function(symbol) {
41721 return propertyIsEnumerable.call(object, symbol);
41722 });
41723};
41724
41725module.exports = getSymbols;
41726
41727
41728/***/ }),
41729
41730/***/ "./node_modules/lodash/_getSymbolsIn.js":
41731/*!**********************************************!*\
41732 !*** ./node_modules/lodash/_getSymbolsIn.js ***!
41733 \**********************************************/
41734/*! no static exports found */
41735/***/ (function(module, exports, __webpack_require__) {
41736
41737var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
41738 getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
41739 getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),
41740 stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");
41741
41742/* Built-in method references for those with the same name as other `lodash` methods. */
41743var nativeGetSymbols = Object.getOwnPropertySymbols;
41744
41745/**
41746 * Creates an array of the own and inherited enumerable symbols of `object`.
41747 *
41748 * @private
41749 * @param {Object} object The object to query.
41750 * @returns {Array} Returns the array of symbols.
41751 */
41752var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
41753 var result = [];
41754 while (object) {
41755 arrayPush(result, getSymbols(object));
41756 object = getPrototype(object);
41757 }
41758 return result;
41759};
41760
41761module.exports = getSymbolsIn;
41762
41763
41764/***/ }),
41765
41766/***/ "./node_modules/lodash/_getTag.js":
41767/*!****************************************!*\
41768 !*** ./node_modules/lodash/_getTag.js ***!
41769 \****************************************/
41770/*! no static exports found */
41771/***/ (function(module, exports, __webpack_require__) {
41772
41773var DataView = __webpack_require__(/*! ./_DataView */ "./node_modules/lodash/_DataView.js"),
41774 Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),
41775 Promise = __webpack_require__(/*! ./_Promise */ "./node_modules/lodash/_Promise.js"),
41776 Set = __webpack_require__(/*! ./_Set */ "./node_modules/lodash/_Set.js"),
41777 WeakMap = __webpack_require__(/*! ./_WeakMap */ "./node_modules/lodash/_WeakMap.js"),
41778 baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
41779 toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js");
41780
41781/** `Object#toString` result references. */
41782var mapTag = '[object Map]',
41783 objectTag = '[object Object]',
41784 promiseTag = '[object Promise]',
41785 setTag = '[object Set]',
41786 weakMapTag = '[object WeakMap]';
41787
41788var dataViewTag = '[object DataView]';
41789
41790/** Used to detect maps, sets, and weakmaps. */
41791var dataViewCtorString = toSource(DataView),
41792 mapCtorString = toSource(Map),
41793 promiseCtorString = toSource(Promise),
41794 setCtorString = toSource(Set),
41795 weakMapCtorString = toSource(WeakMap);
41796
41797/**
41798 * Gets the `toStringTag` of `value`.
41799 *
41800 * @private
41801 * @param {*} value The value to query.
41802 * @returns {string} Returns the `toStringTag`.
41803 */
41804var getTag = baseGetTag;
41805
41806// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
41807if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
41808 (Map && getTag(new Map) != mapTag) ||
41809 (Promise && getTag(Promise.resolve()) != promiseTag) ||
41810 (Set && getTag(new Set) != setTag) ||
41811 (WeakMap && getTag(new WeakMap) != weakMapTag)) {
41812 getTag = function(value) {
41813 var result = baseGetTag(value),
41814 Ctor = result == objectTag ? value.constructor : undefined,
41815 ctorString = Ctor ? toSource(Ctor) : '';
41816
41817 if (ctorString) {
41818 switch (ctorString) {
41819 case dataViewCtorString: return dataViewTag;
41820 case mapCtorString: return mapTag;
41821 case promiseCtorString: return promiseTag;
41822 case setCtorString: return setTag;
41823 case weakMapCtorString: return weakMapTag;
41824 }
41825 }
41826 return result;
41827 };
41828}
41829
41830module.exports = getTag;
41831
41832
41833/***/ }),
41834
41835/***/ "./node_modules/lodash/_getValue.js":
41836/*!******************************************!*\
41837 !*** ./node_modules/lodash/_getValue.js ***!
41838 \******************************************/
41839/*! no static exports found */
41840/***/ (function(module, exports) {
41841
41842/**
41843 * Gets the value at `key` of `object`.
41844 *
41845 * @private
41846 * @param {Object} [object] The object to query.
41847 * @param {string} key The key of the property to get.
41848 * @returns {*} Returns the property value.
41849 */
41850function getValue(object, key) {
41851 return object == null ? undefined : object[key];
41852}
41853
41854module.exports = getValue;
41855
41856
41857/***/ }),
41858
41859/***/ "./node_modules/lodash/_hasPath.js":
41860/*!*****************************************!*\
41861 !*** ./node_modules/lodash/_hasPath.js ***!
41862 \*****************************************/
41863/*! no static exports found */
41864/***/ (function(module, exports, __webpack_require__) {
41865
41866var castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js"),
41867 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
41868 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
41869 isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
41870 isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js"),
41871 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
41872
41873/**
41874 * Checks if `path` exists on `object`.
41875 *
41876 * @private
41877 * @param {Object} object The object to query.
41878 * @param {Array|string} path The path to check.
41879 * @param {Function} hasFunc The function to check properties.
41880 * @returns {boolean} Returns `true` if `path` exists, else `false`.
41881 */
41882function hasPath(object, path, hasFunc) {
41883 path = castPath(path, object);
41884
41885 var index = -1,
41886 length = path.length,
41887 result = false;
41888
41889 while (++index < length) {
41890 var key = toKey(path[index]);
41891 if (!(result = object != null && hasFunc(object, key))) {
41892 break;
41893 }
41894 object = object[key];
41895 }
41896 if (result || ++index != length) {
41897 return result;
41898 }
41899 length = object == null ? 0 : object.length;
41900 return !!length && isLength(length) && isIndex(key, length) &&
41901 (isArray(object) || isArguments(object));
41902}
41903
41904module.exports = hasPath;
41905
41906
41907/***/ }),
41908
41909/***/ "./node_modules/lodash/_hasUnicode.js":
41910/*!********************************************!*\
41911 !*** ./node_modules/lodash/_hasUnicode.js ***!
41912 \********************************************/
41913/*! no static exports found */
41914/***/ (function(module, exports) {
41915
41916/** Used to compose unicode character classes. */
41917var rsAstralRange = '\\ud800-\\udfff',
41918 rsComboMarksRange = '\\u0300-\\u036f',
41919 reComboHalfMarksRange = '\\ufe20-\\ufe2f',
41920 rsComboSymbolsRange = '\\u20d0-\\u20ff',
41921 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
41922 rsVarRange = '\\ufe0e\\ufe0f';
41923
41924/** Used to compose unicode capture groups. */
41925var rsZWJ = '\\u200d';
41926
41927/** 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/). */
41928var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
41929
41930/**
41931 * Checks if `string` contains Unicode symbols.
41932 *
41933 * @private
41934 * @param {string} string The string to inspect.
41935 * @returns {boolean} Returns `true` if a symbol is found, else `false`.
41936 */
41937function hasUnicode(string) {
41938 return reHasUnicode.test(string);
41939}
41940
41941module.exports = hasUnicode;
41942
41943
41944/***/ }),
41945
41946/***/ "./node_modules/lodash/_hashClear.js":
41947/*!*******************************************!*\
41948 !*** ./node_modules/lodash/_hashClear.js ***!
41949 \*******************************************/
41950/*! no static exports found */
41951/***/ (function(module, exports, __webpack_require__) {
41952
41953var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
41954
41955/**
41956 * Removes all key-value entries from the hash.
41957 *
41958 * @private
41959 * @name clear
41960 * @memberOf Hash
41961 */
41962function hashClear() {
41963 this.__data__ = nativeCreate ? nativeCreate(null) : {};
41964 this.size = 0;
41965}
41966
41967module.exports = hashClear;
41968
41969
41970/***/ }),
41971
41972/***/ "./node_modules/lodash/_hashDelete.js":
41973/*!********************************************!*\
41974 !*** ./node_modules/lodash/_hashDelete.js ***!
41975 \********************************************/
41976/*! no static exports found */
41977/***/ (function(module, exports) {
41978
41979/**
41980 * Removes `key` and its value from the hash.
41981 *
41982 * @private
41983 * @name delete
41984 * @memberOf Hash
41985 * @param {Object} hash The hash to modify.
41986 * @param {string} key The key of the value to remove.
41987 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
41988 */
41989function hashDelete(key) {
41990 var result = this.has(key) && delete this.__data__[key];
41991 this.size -= result ? 1 : 0;
41992 return result;
41993}
41994
41995module.exports = hashDelete;
41996
41997
41998/***/ }),
41999
42000/***/ "./node_modules/lodash/_hashGet.js":
42001/*!*****************************************!*\
42002 !*** ./node_modules/lodash/_hashGet.js ***!
42003 \*****************************************/
42004/*! no static exports found */
42005/***/ (function(module, exports, __webpack_require__) {
42006
42007var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
42008
42009/** Used to stand-in for `undefined` hash values. */
42010var HASH_UNDEFINED = '__lodash_hash_undefined__';
42011
42012/** Used for built-in method references. */
42013var objectProto = Object.prototype;
42014
42015/** Used to check objects for own properties. */
42016var hasOwnProperty = objectProto.hasOwnProperty;
42017
42018/**
42019 * Gets the hash value for `key`.
42020 *
42021 * @private
42022 * @name get
42023 * @memberOf Hash
42024 * @param {string} key The key of the value to get.
42025 * @returns {*} Returns the entry value.
42026 */
42027function hashGet(key) {
42028 var data = this.__data__;
42029 if (nativeCreate) {
42030 var result = data[key];
42031 return result === HASH_UNDEFINED ? undefined : result;
42032 }
42033 return hasOwnProperty.call(data, key) ? data[key] : undefined;
42034}
42035
42036module.exports = hashGet;
42037
42038
42039/***/ }),
42040
42041/***/ "./node_modules/lodash/_hashHas.js":
42042/*!*****************************************!*\
42043 !*** ./node_modules/lodash/_hashHas.js ***!
42044 \*****************************************/
42045/*! no static exports found */
42046/***/ (function(module, exports, __webpack_require__) {
42047
42048var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
42049
42050/** Used for built-in method references. */
42051var objectProto = Object.prototype;
42052
42053/** Used to check objects for own properties. */
42054var hasOwnProperty = objectProto.hasOwnProperty;
42055
42056/**
42057 * Checks if a hash value for `key` exists.
42058 *
42059 * @private
42060 * @name has
42061 * @memberOf Hash
42062 * @param {string} key The key of the entry to check.
42063 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
42064 */
42065function hashHas(key) {
42066 var data = this.__data__;
42067 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
42068}
42069
42070module.exports = hashHas;
42071
42072
42073/***/ }),
42074
42075/***/ "./node_modules/lodash/_hashSet.js":
42076/*!*****************************************!*\
42077 !*** ./node_modules/lodash/_hashSet.js ***!
42078 \*****************************************/
42079/*! no static exports found */
42080/***/ (function(module, exports, __webpack_require__) {
42081
42082var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
42083
42084/** Used to stand-in for `undefined` hash values. */
42085var HASH_UNDEFINED = '__lodash_hash_undefined__';
42086
42087/**
42088 * Sets the hash `key` to `value`.
42089 *
42090 * @private
42091 * @name set
42092 * @memberOf Hash
42093 * @param {string} key The key of the value to set.
42094 * @param {*} value The value to set.
42095 * @returns {Object} Returns the hash instance.
42096 */
42097function hashSet(key, value) {
42098 var data = this.__data__;
42099 this.size += this.has(key) ? 0 : 1;
42100 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
42101 return this;
42102}
42103
42104module.exports = hashSet;
42105
42106
42107/***/ }),
42108
42109/***/ "./node_modules/lodash/_initCloneArray.js":
42110/*!************************************************!*\
42111 !*** ./node_modules/lodash/_initCloneArray.js ***!
42112 \************************************************/
42113/*! no static exports found */
42114/***/ (function(module, exports) {
42115
42116/** Used for built-in method references. */
42117var objectProto = Object.prototype;
42118
42119/** Used to check objects for own properties. */
42120var hasOwnProperty = objectProto.hasOwnProperty;
42121
42122/**
42123 * Initializes an array clone.
42124 *
42125 * @private
42126 * @param {Array} array The array to clone.
42127 * @returns {Array} Returns the initialized clone.
42128 */
42129function initCloneArray(array) {
42130 var length = array.length,
42131 result = new array.constructor(length);
42132
42133 // Add properties assigned by `RegExp#exec`.
42134 if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
42135 result.index = array.index;
42136 result.input = array.input;
42137 }
42138 return result;
42139}
42140
42141module.exports = initCloneArray;
42142
42143
42144/***/ }),
42145
42146/***/ "./node_modules/lodash/_initCloneByTag.js":
42147/*!************************************************!*\
42148 !*** ./node_modules/lodash/_initCloneByTag.js ***!
42149 \************************************************/
42150/*! no static exports found */
42151/***/ (function(module, exports, __webpack_require__) {
42152
42153var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js"),
42154 cloneDataView = __webpack_require__(/*! ./_cloneDataView */ "./node_modules/lodash/_cloneDataView.js"),
42155 cloneRegExp = __webpack_require__(/*! ./_cloneRegExp */ "./node_modules/lodash/_cloneRegExp.js"),
42156 cloneSymbol = __webpack_require__(/*! ./_cloneSymbol */ "./node_modules/lodash/_cloneSymbol.js"),
42157 cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ "./node_modules/lodash/_cloneTypedArray.js");
42158
42159/** `Object#toString` result references. */
42160var boolTag = '[object Boolean]',
42161 dateTag = '[object Date]',
42162 mapTag = '[object Map]',
42163 numberTag = '[object Number]',
42164 regexpTag = '[object RegExp]',
42165 setTag = '[object Set]',
42166 stringTag = '[object String]',
42167 symbolTag = '[object Symbol]';
42168
42169var arrayBufferTag = '[object ArrayBuffer]',
42170 dataViewTag = '[object DataView]',
42171 float32Tag = '[object Float32Array]',
42172 float64Tag = '[object Float64Array]',
42173 int8Tag = '[object Int8Array]',
42174 int16Tag = '[object Int16Array]',
42175 int32Tag = '[object Int32Array]',
42176 uint8Tag = '[object Uint8Array]',
42177 uint8ClampedTag = '[object Uint8ClampedArray]',
42178 uint16Tag = '[object Uint16Array]',
42179 uint32Tag = '[object Uint32Array]';
42180
42181/**
42182 * Initializes an object clone based on its `toStringTag`.
42183 *
42184 * **Note:** This function only supports cloning values with tags of
42185 * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
42186 *
42187 * @private
42188 * @param {Object} object The object to clone.
42189 * @param {string} tag The `toStringTag` of the object to clone.
42190 * @param {boolean} [isDeep] Specify a deep clone.
42191 * @returns {Object} Returns the initialized clone.
42192 */
42193function initCloneByTag(object, tag, isDeep) {
42194 var Ctor = object.constructor;
42195 switch (tag) {
42196 case arrayBufferTag:
42197 return cloneArrayBuffer(object);
42198
42199 case boolTag:
42200 case dateTag:
42201 return new Ctor(+object);
42202
42203 case dataViewTag:
42204 return cloneDataView(object, isDeep);
42205
42206 case float32Tag: case float64Tag:
42207 case int8Tag: case int16Tag: case int32Tag:
42208 case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
42209 return cloneTypedArray(object, isDeep);
42210
42211 case mapTag:
42212 return new Ctor;
42213
42214 case numberTag:
42215 case stringTag:
42216 return new Ctor(object);
42217
42218 case regexpTag:
42219 return cloneRegExp(object);
42220
42221 case setTag:
42222 return new Ctor;
42223
42224 case symbolTag:
42225 return cloneSymbol(object);
42226 }
42227}
42228
42229module.exports = initCloneByTag;
42230
42231
42232/***/ }),
42233
42234/***/ "./node_modules/lodash/_initCloneObject.js":
42235/*!*************************************************!*\
42236 !*** ./node_modules/lodash/_initCloneObject.js ***!
42237 \*************************************************/
42238/*! no static exports found */
42239/***/ (function(module, exports, __webpack_require__) {
42240
42241var baseCreate = __webpack_require__(/*! ./_baseCreate */ "./node_modules/lodash/_baseCreate.js"),
42242 getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
42243 isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js");
42244
42245/**
42246 * Initializes an object clone.
42247 *
42248 * @private
42249 * @param {Object} object The object to clone.
42250 * @returns {Object} Returns the initialized clone.
42251 */
42252function initCloneObject(object) {
42253 return (typeof object.constructor == 'function' && !isPrototype(object))
42254 ? baseCreate(getPrototype(object))
42255 : {};
42256}
42257
42258module.exports = initCloneObject;
42259
42260
42261/***/ }),
42262
42263/***/ "./node_modules/lodash/_isFlattenable.js":
42264/*!***********************************************!*\
42265 !*** ./node_modules/lodash/_isFlattenable.js ***!
42266 \***********************************************/
42267/*! no static exports found */
42268/***/ (function(module, exports, __webpack_require__) {
42269
42270var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
42271 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
42272 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
42273
42274/** Built-in value references. */
42275var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
42276
42277/**
42278 * Checks if `value` is a flattenable `arguments` object or array.
42279 *
42280 * @private
42281 * @param {*} value The value to check.
42282 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
42283 */
42284function isFlattenable(value) {
42285 return isArray(value) || isArguments(value) ||
42286 !!(spreadableSymbol && value && value[spreadableSymbol]);
42287}
42288
42289module.exports = isFlattenable;
42290
42291
42292/***/ }),
42293
42294/***/ "./node_modules/lodash/_isIndex.js":
42295/*!*****************************************!*\
42296 !*** ./node_modules/lodash/_isIndex.js ***!
42297 \*****************************************/
42298/*! no static exports found */
42299/***/ (function(module, exports) {
42300
42301/** Used as references for various `Number` constants. */
42302var MAX_SAFE_INTEGER = 9007199254740991;
42303
42304/** Used to detect unsigned integer values. */
42305var reIsUint = /^(?:0|[1-9]\d*)$/;
42306
42307/**
42308 * Checks if `value` is a valid array-like index.
42309 *
42310 * @private
42311 * @param {*} value The value to check.
42312 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
42313 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
42314 */
42315function isIndex(value, length) {
42316 var type = typeof value;
42317 length = length == null ? MAX_SAFE_INTEGER : length;
42318
42319 return !!length &&
42320 (type == 'number' ||
42321 (type != 'symbol' && reIsUint.test(value))) &&
42322 (value > -1 && value % 1 == 0 && value < length);
42323}
42324
42325module.exports = isIndex;
42326
42327
42328/***/ }),
42329
42330/***/ "./node_modules/lodash/_isIterateeCall.js":
42331/*!************************************************!*\
42332 !*** ./node_modules/lodash/_isIterateeCall.js ***!
42333 \************************************************/
42334/*! no static exports found */
42335/***/ (function(module, exports, __webpack_require__) {
42336
42337var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
42338 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
42339 isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
42340 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
42341
42342/**
42343 * Checks if the given arguments are from an iteratee call.
42344 *
42345 * @private
42346 * @param {*} value The potential iteratee value argument.
42347 * @param {*} index The potential iteratee index or key argument.
42348 * @param {*} object The potential iteratee object argument.
42349 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
42350 * else `false`.
42351 */
42352function isIterateeCall(value, index, object) {
42353 if (!isObject(object)) {
42354 return false;
42355 }
42356 var type = typeof index;
42357 if (type == 'number'
42358 ? (isArrayLike(object) && isIndex(index, object.length))
42359 : (type == 'string' && index in object)
42360 ) {
42361 return eq(object[index], value);
42362 }
42363 return false;
42364}
42365
42366module.exports = isIterateeCall;
42367
42368
42369/***/ }),
42370
42371/***/ "./node_modules/lodash/_isKey.js":
42372/*!***************************************!*\
42373 !*** ./node_modules/lodash/_isKey.js ***!
42374 \***************************************/
42375/*! no static exports found */
42376/***/ (function(module, exports, __webpack_require__) {
42377
42378var isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
42379 isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
42380
42381/** Used to match property names within property paths. */
42382var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
42383 reIsPlainProp = /^\w*$/;
42384
42385/**
42386 * Checks if `value` is a property name and not a property path.
42387 *
42388 * @private
42389 * @param {*} value The value to check.
42390 * @param {Object} [object] The object to query keys on.
42391 * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
42392 */
42393function isKey(value, object) {
42394 if (isArray(value)) {
42395 return false;
42396 }
42397 var type = typeof value;
42398 if (type == 'number' || type == 'symbol' || type == 'boolean' ||
42399 value == null || isSymbol(value)) {
42400 return true;
42401 }
42402 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
42403 (object != null && value in Object(object));
42404}
42405
42406module.exports = isKey;
42407
42408
42409/***/ }),
42410
42411/***/ "./node_modules/lodash/_isKeyable.js":
42412/*!*******************************************!*\
42413 !*** ./node_modules/lodash/_isKeyable.js ***!
42414 \*******************************************/
42415/*! no static exports found */
42416/***/ (function(module, exports) {
42417
42418/**
42419 * Checks if `value` is suitable for use as unique object key.
42420 *
42421 * @private
42422 * @param {*} value The value to check.
42423 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
42424 */
42425function isKeyable(value) {
42426 var type = typeof value;
42427 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
42428 ? (value !== '__proto__')
42429 : (value === null);
42430}
42431
42432module.exports = isKeyable;
42433
42434
42435/***/ }),
42436
42437/***/ "./node_modules/lodash/_isMasked.js":
42438/*!******************************************!*\
42439 !*** ./node_modules/lodash/_isMasked.js ***!
42440 \******************************************/
42441/*! no static exports found */
42442/***/ (function(module, exports, __webpack_require__) {
42443
42444var coreJsData = __webpack_require__(/*! ./_coreJsData */ "./node_modules/lodash/_coreJsData.js");
42445
42446/** Used to detect methods masquerading as native. */
42447var maskSrcKey = (function() {
42448 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
42449 return uid ? ('Symbol(src)_1.' + uid) : '';
42450}());
42451
42452/**
42453 * Checks if `func` has its source masked.
42454 *
42455 * @private
42456 * @param {Function} func The function to check.
42457 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
42458 */
42459function isMasked(func) {
42460 return !!maskSrcKey && (maskSrcKey in func);
42461}
42462
42463module.exports = isMasked;
42464
42465
42466/***/ }),
42467
42468/***/ "./node_modules/lodash/_isPrototype.js":
42469/*!*********************************************!*\
42470 !*** ./node_modules/lodash/_isPrototype.js ***!
42471 \*********************************************/
42472/*! no static exports found */
42473/***/ (function(module, exports) {
42474
42475/** Used for built-in method references. */
42476var objectProto = Object.prototype;
42477
42478/**
42479 * Checks if `value` is likely a prototype object.
42480 *
42481 * @private
42482 * @param {*} value The value to check.
42483 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
42484 */
42485function isPrototype(value) {
42486 var Ctor = value && value.constructor,
42487 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
42488
42489 return value === proto;
42490}
42491
42492module.exports = isPrototype;
42493
42494
42495/***/ }),
42496
42497/***/ "./node_modules/lodash/_isStrictComparable.js":
42498/*!****************************************************!*\
42499 !*** ./node_modules/lodash/_isStrictComparable.js ***!
42500 \****************************************************/
42501/*! no static exports found */
42502/***/ (function(module, exports, __webpack_require__) {
42503
42504var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
42505
42506/**
42507 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
42508 *
42509 * @private
42510 * @param {*} value The value to check.
42511 * @returns {boolean} Returns `true` if `value` if suitable for strict
42512 * equality comparisons, else `false`.
42513 */
42514function isStrictComparable(value) {
42515 return value === value && !isObject(value);
42516}
42517
42518module.exports = isStrictComparable;
42519
42520
42521/***/ }),
42522
42523/***/ "./node_modules/lodash/_listCacheClear.js":
42524/*!************************************************!*\
42525 !*** ./node_modules/lodash/_listCacheClear.js ***!
42526 \************************************************/
42527/*! no static exports found */
42528/***/ (function(module, exports) {
42529
42530/**
42531 * Removes all key-value entries from the list cache.
42532 *
42533 * @private
42534 * @name clear
42535 * @memberOf ListCache
42536 */
42537function listCacheClear() {
42538 this.__data__ = [];
42539 this.size = 0;
42540}
42541
42542module.exports = listCacheClear;
42543
42544
42545/***/ }),
42546
42547/***/ "./node_modules/lodash/_listCacheDelete.js":
42548/*!*************************************************!*\
42549 !*** ./node_modules/lodash/_listCacheDelete.js ***!
42550 \*************************************************/
42551/*! no static exports found */
42552/***/ (function(module, exports, __webpack_require__) {
42553
42554var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
42555
42556/** Used for built-in method references. */
42557var arrayProto = Array.prototype;
42558
42559/** Built-in value references. */
42560var splice = arrayProto.splice;
42561
42562/**
42563 * Removes `key` and its value from the list cache.
42564 *
42565 * @private
42566 * @name delete
42567 * @memberOf ListCache
42568 * @param {string} key The key of the value to remove.
42569 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
42570 */
42571function listCacheDelete(key) {
42572 var data = this.__data__,
42573 index = assocIndexOf(data, key);
42574
42575 if (index < 0) {
42576 return false;
42577 }
42578 var lastIndex = data.length - 1;
42579 if (index == lastIndex) {
42580 data.pop();
42581 } else {
42582 splice.call(data, index, 1);
42583 }
42584 --this.size;
42585 return true;
42586}
42587
42588module.exports = listCacheDelete;
42589
42590
42591/***/ }),
42592
42593/***/ "./node_modules/lodash/_listCacheGet.js":
42594/*!**********************************************!*\
42595 !*** ./node_modules/lodash/_listCacheGet.js ***!
42596 \**********************************************/
42597/*! no static exports found */
42598/***/ (function(module, exports, __webpack_require__) {
42599
42600var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
42601
42602/**
42603 * Gets the list cache value for `key`.
42604 *
42605 * @private
42606 * @name get
42607 * @memberOf ListCache
42608 * @param {string} key The key of the value to get.
42609 * @returns {*} Returns the entry value.
42610 */
42611function listCacheGet(key) {
42612 var data = this.__data__,
42613 index = assocIndexOf(data, key);
42614
42615 return index < 0 ? undefined : data[index][1];
42616}
42617
42618module.exports = listCacheGet;
42619
42620
42621/***/ }),
42622
42623/***/ "./node_modules/lodash/_listCacheHas.js":
42624/*!**********************************************!*\
42625 !*** ./node_modules/lodash/_listCacheHas.js ***!
42626 \**********************************************/
42627/*! no static exports found */
42628/***/ (function(module, exports, __webpack_require__) {
42629
42630var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
42631
42632/**
42633 * Checks if a list cache value for `key` exists.
42634 *
42635 * @private
42636 * @name has
42637 * @memberOf ListCache
42638 * @param {string} key The key of the entry to check.
42639 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
42640 */
42641function listCacheHas(key) {
42642 return assocIndexOf(this.__data__, key) > -1;
42643}
42644
42645module.exports = listCacheHas;
42646
42647
42648/***/ }),
42649
42650/***/ "./node_modules/lodash/_listCacheSet.js":
42651/*!**********************************************!*\
42652 !*** ./node_modules/lodash/_listCacheSet.js ***!
42653 \**********************************************/
42654/*! no static exports found */
42655/***/ (function(module, exports, __webpack_require__) {
42656
42657var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
42658
42659/**
42660 * Sets the list cache `key` to `value`.
42661 *
42662 * @private
42663 * @name set
42664 * @memberOf ListCache
42665 * @param {string} key The key of the value to set.
42666 * @param {*} value The value to set.
42667 * @returns {Object} Returns the list cache instance.
42668 */
42669function listCacheSet(key, value) {
42670 var data = this.__data__,
42671 index = assocIndexOf(data, key);
42672
42673 if (index < 0) {
42674 ++this.size;
42675 data.push([key, value]);
42676 } else {
42677 data[index][1] = value;
42678 }
42679 return this;
42680}
42681
42682module.exports = listCacheSet;
42683
42684
42685/***/ }),
42686
42687/***/ "./node_modules/lodash/_mapCacheClear.js":
42688/*!***********************************************!*\
42689 !*** ./node_modules/lodash/_mapCacheClear.js ***!
42690 \***********************************************/
42691/*! no static exports found */
42692/***/ (function(module, exports, __webpack_require__) {
42693
42694var Hash = __webpack_require__(/*! ./_Hash */ "./node_modules/lodash/_Hash.js"),
42695 ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
42696 Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js");
42697
42698/**
42699 * Removes all key-value entries from the map.
42700 *
42701 * @private
42702 * @name clear
42703 * @memberOf MapCache
42704 */
42705function mapCacheClear() {
42706 this.size = 0;
42707 this.__data__ = {
42708 'hash': new Hash,
42709 'map': new (Map || ListCache),
42710 'string': new Hash
42711 };
42712}
42713
42714module.exports = mapCacheClear;
42715
42716
42717/***/ }),
42718
42719/***/ "./node_modules/lodash/_mapCacheDelete.js":
42720/*!************************************************!*\
42721 !*** ./node_modules/lodash/_mapCacheDelete.js ***!
42722 \************************************************/
42723/*! no static exports found */
42724/***/ (function(module, exports, __webpack_require__) {
42725
42726var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
42727
42728/**
42729 * Removes `key` and its value from the map.
42730 *
42731 * @private
42732 * @name delete
42733 * @memberOf MapCache
42734 * @param {string} key The key of the value to remove.
42735 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
42736 */
42737function mapCacheDelete(key) {
42738 var result = getMapData(this, key)['delete'](key);
42739 this.size -= result ? 1 : 0;
42740 return result;
42741}
42742
42743module.exports = mapCacheDelete;
42744
42745
42746/***/ }),
42747
42748/***/ "./node_modules/lodash/_mapCacheGet.js":
42749/*!*********************************************!*\
42750 !*** ./node_modules/lodash/_mapCacheGet.js ***!
42751 \*********************************************/
42752/*! no static exports found */
42753/***/ (function(module, exports, __webpack_require__) {
42754
42755var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
42756
42757/**
42758 * Gets the map value for `key`.
42759 *
42760 * @private
42761 * @name get
42762 * @memberOf MapCache
42763 * @param {string} key The key of the value to get.
42764 * @returns {*} Returns the entry value.
42765 */
42766function mapCacheGet(key) {
42767 return getMapData(this, key).get(key);
42768}
42769
42770module.exports = mapCacheGet;
42771
42772
42773/***/ }),
42774
42775/***/ "./node_modules/lodash/_mapCacheHas.js":
42776/*!*********************************************!*\
42777 !*** ./node_modules/lodash/_mapCacheHas.js ***!
42778 \*********************************************/
42779/*! no static exports found */
42780/***/ (function(module, exports, __webpack_require__) {
42781
42782var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
42783
42784/**
42785 * Checks if a map value for `key` exists.
42786 *
42787 * @private
42788 * @name has
42789 * @memberOf MapCache
42790 * @param {string} key The key of the entry to check.
42791 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
42792 */
42793function mapCacheHas(key) {
42794 return getMapData(this, key).has(key);
42795}
42796
42797module.exports = mapCacheHas;
42798
42799
42800/***/ }),
42801
42802/***/ "./node_modules/lodash/_mapCacheSet.js":
42803/*!*********************************************!*\
42804 !*** ./node_modules/lodash/_mapCacheSet.js ***!
42805 \*********************************************/
42806/*! no static exports found */
42807/***/ (function(module, exports, __webpack_require__) {
42808
42809var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
42810
42811/**
42812 * Sets the map `key` to `value`.
42813 *
42814 * @private
42815 * @name set
42816 * @memberOf MapCache
42817 * @param {string} key The key of the value to set.
42818 * @param {*} value The value to set.
42819 * @returns {Object} Returns the map cache instance.
42820 */
42821function mapCacheSet(key, value) {
42822 var data = getMapData(this, key),
42823 size = data.size;
42824
42825 data.set(key, value);
42826 this.size += data.size == size ? 0 : 1;
42827 return this;
42828}
42829
42830module.exports = mapCacheSet;
42831
42832
42833/***/ }),
42834
42835/***/ "./node_modules/lodash/_mapToArray.js":
42836/*!********************************************!*\
42837 !*** ./node_modules/lodash/_mapToArray.js ***!
42838 \********************************************/
42839/*! no static exports found */
42840/***/ (function(module, exports) {
42841
42842/**
42843 * Converts `map` to its key-value pairs.
42844 *
42845 * @private
42846 * @param {Object} map The map to convert.
42847 * @returns {Array} Returns the key-value pairs.
42848 */
42849function mapToArray(map) {
42850 var index = -1,
42851 result = Array(map.size);
42852
42853 map.forEach(function(value, key) {
42854 result[++index] = [key, value];
42855 });
42856 return result;
42857}
42858
42859module.exports = mapToArray;
42860
42861
42862/***/ }),
42863
42864/***/ "./node_modules/lodash/_matchesStrictComparable.js":
42865/*!*********************************************************!*\
42866 !*** ./node_modules/lodash/_matchesStrictComparable.js ***!
42867 \*********************************************************/
42868/*! no static exports found */
42869/***/ (function(module, exports) {
42870
42871/**
42872 * A specialized version of `matchesProperty` for source values suitable
42873 * for strict equality comparisons, i.e. `===`.
42874 *
42875 * @private
42876 * @param {string} key The key of the property to get.
42877 * @param {*} srcValue The value to match.
42878 * @returns {Function} Returns the new spec function.
42879 */
42880function matchesStrictComparable(key, srcValue) {
42881 return function(object) {
42882 if (object == null) {
42883 return false;
42884 }
42885 return object[key] === srcValue &&
42886 (srcValue !== undefined || (key in Object(object)));
42887 };
42888}
42889
42890module.exports = matchesStrictComparable;
42891
42892
42893/***/ }),
42894
42895/***/ "./node_modules/lodash/_memoizeCapped.js":
42896/*!***********************************************!*\
42897 !*** ./node_modules/lodash/_memoizeCapped.js ***!
42898 \***********************************************/
42899/*! no static exports found */
42900/***/ (function(module, exports, __webpack_require__) {
42901
42902var memoize = __webpack_require__(/*! ./memoize */ "./node_modules/lodash/memoize.js");
42903
42904/** Used as the maximum memoize cache size. */
42905var MAX_MEMOIZE_SIZE = 500;
42906
42907/**
42908 * A specialized version of `_.memoize` which clears the memoized function's
42909 * cache when it exceeds `MAX_MEMOIZE_SIZE`.
42910 *
42911 * @private
42912 * @param {Function} func The function to have its output memoized.
42913 * @returns {Function} Returns the new memoized function.
42914 */
42915function memoizeCapped(func) {
42916 var result = memoize(func, function(key) {
42917 if (cache.size === MAX_MEMOIZE_SIZE) {
42918 cache.clear();
42919 }
42920 return key;
42921 });
42922
42923 var cache = result.cache;
42924 return result;
42925}
42926
42927module.exports = memoizeCapped;
42928
42929
42930/***/ }),
42931
42932/***/ "./node_modules/lodash/_nativeCreate.js":
42933/*!**********************************************!*\
42934 !*** ./node_modules/lodash/_nativeCreate.js ***!
42935 \**********************************************/
42936/*! no static exports found */
42937/***/ (function(module, exports, __webpack_require__) {
42938
42939var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js");
42940
42941/* Built-in method references that are verified to be native. */
42942var nativeCreate = getNative(Object, 'create');
42943
42944module.exports = nativeCreate;
42945
42946
42947/***/ }),
42948
42949/***/ "./node_modules/lodash/_nativeKeys.js":
42950/*!********************************************!*\
42951 !*** ./node_modules/lodash/_nativeKeys.js ***!
42952 \********************************************/
42953/*! no static exports found */
42954/***/ (function(module, exports, __webpack_require__) {
42955
42956var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");
42957
42958/* Built-in method references for those with the same name as other `lodash` methods. */
42959var nativeKeys = overArg(Object.keys, Object);
42960
42961module.exports = nativeKeys;
42962
42963
42964/***/ }),
42965
42966/***/ "./node_modules/lodash/_nativeKeysIn.js":
42967/*!**********************************************!*\
42968 !*** ./node_modules/lodash/_nativeKeysIn.js ***!
42969 \**********************************************/
42970/*! no static exports found */
42971/***/ (function(module, exports) {
42972
42973/**
42974 * This function is like
42975 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
42976 * except that it includes inherited enumerable properties.
42977 *
42978 * @private
42979 * @param {Object} object The object to query.
42980 * @returns {Array} Returns the array of property names.
42981 */
42982function nativeKeysIn(object) {
42983 var result = [];
42984 if (object != null) {
42985 for (var key in Object(object)) {
42986 result.push(key);
42987 }
42988 }
42989 return result;
42990}
42991
42992module.exports = nativeKeysIn;
42993
42994
42995/***/ }),
42996
42997/***/ "./node_modules/lodash/_nodeUtil.js":
42998/*!******************************************!*\
42999 !*** ./node_modules/lodash/_nodeUtil.js ***!
43000 \******************************************/
43001/*! no static exports found */
43002/***/ (function(module, exports, __webpack_require__) {
43003
43004/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");
43005
43006/** Detect free variable `exports`. */
43007var freeExports = true && exports && !exports.nodeType && exports;
43008
43009/** Detect free variable `module`. */
43010var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
43011
43012/** Detect the popular CommonJS extension `module.exports`. */
43013var moduleExports = freeModule && freeModule.exports === freeExports;
43014
43015/** Detect free variable `process` from Node.js. */
43016var freeProcess = moduleExports && freeGlobal.process;
43017
43018/** Used to access faster Node.js helpers. */
43019var nodeUtil = (function() {
43020 try {
43021 // Use `util.types` for Node.js 10+.
43022 var types = freeModule && freeModule.require && freeModule.require('util').types;
43023
43024 if (types) {
43025 return types;
43026 }
43027
43028 // Legacy `process.binding('util')` for Node.js < 10.
43029 return freeProcess && freeProcess.binding && freeProcess.binding('util');
43030 } catch (e) {}
43031}());
43032
43033module.exports = nodeUtil;
43034
43035/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
43036
43037/***/ }),
43038
43039/***/ "./node_modules/lodash/_objectToString.js":
43040/*!************************************************!*\
43041 !*** ./node_modules/lodash/_objectToString.js ***!
43042 \************************************************/
43043/*! no static exports found */
43044/***/ (function(module, exports) {
43045
43046/** Used for built-in method references. */
43047var objectProto = Object.prototype;
43048
43049/**
43050 * Used to resolve the
43051 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
43052 * of values.
43053 */
43054var nativeObjectToString = objectProto.toString;
43055
43056/**
43057 * Converts `value` to a string using `Object.prototype.toString`.
43058 *
43059 * @private
43060 * @param {*} value The value to convert.
43061 * @returns {string} Returns the converted string.
43062 */
43063function objectToString(value) {
43064 return nativeObjectToString.call(value);
43065}
43066
43067module.exports = objectToString;
43068
43069
43070/***/ }),
43071
43072/***/ "./node_modules/lodash/_overArg.js":
43073/*!*****************************************!*\
43074 !*** ./node_modules/lodash/_overArg.js ***!
43075 \*****************************************/
43076/*! no static exports found */
43077/***/ (function(module, exports) {
43078
43079/**
43080 * Creates a unary function that invokes `func` with its argument transformed.
43081 *
43082 * @private
43083 * @param {Function} func The function to wrap.
43084 * @param {Function} transform The argument transform.
43085 * @returns {Function} Returns the new function.
43086 */
43087function overArg(func, transform) {
43088 return function(arg) {
43089 return func(transform(arg));
43090 };
43091}
43092
43093module.exports = overArg;
43094
43095
43096/***/ }),
43097
43098/***/ "./node_modules/lodash/_overRest.js":
43099/*!******************************************!*\
43100 !*** ./node_modules/lodash/_overRest.js ***!
43101 \******************************************/
43102/*! no static exports found */
43103/***/ (function(module, exports, __webpack_require__) {
43104
43105var apply = __webpack_require__(/*! ./_apply */ "./node_modules/lodash/_apply.js");
43106
43107/* Built-in method references for those with the same name as other `lodash` methods. */
43108var nativeMax = Math.max;
43109
43110/**
43111 * A specialized version of `baseRest` which transforms the rest array.
43112 *
43113 * @private
43114 * @param {Function} func The function to apply a rest parameter to.
43115 * @param {number} [start=func.length-1] The start position of the rest parameter.
43116 * @param {Function} transform The rest array transform.
43117 * @returns {Function} Returns the new function.
43118 */
43119function overRest(func, start, transform) {
43120 start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
43121 return function() {
43122 var args = arguments,
43123 index = -1,
43124 length = nativeMax(args.length - start, 0),
43125 array = Array(length);
43126
43127 while (++index < length) {
43128 array[index] = args[start + index];
43129 }
43130 index = -1;
43131 var otherArgs = Array(start + 1);
43132 while (++index < start) {
43133 otherArgs[index] = args[index];
43134 }
43135 otherArgs[start] = transform(array);
43136 return apply(func, this, otherArgs);
43137 };
43138}
43139
43140module.exports = overRest;
43141
43142
43143/***/ }),
43144
43145/***/ "./node_modules/lodash/_root.js":
43146/*!**************************************!*\
43147 !*** ./node_modules/lodash/_root.js ***!
43148 \**************************************/
43149/*! no static exports found */
43150/***/ (function(module, exports, __webpack_require__) {
43151
43152var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");
43153
43154/** Detect free variable `self`. */
43155var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
43156
43157/** Used as a reference to the global object. */
43158var root = freeGlobal || freeSelf || Function('return this')();
43159
43160module.exports = root;
43161
43162
43163/***/ }),
43164
43165/***/ "./node_modules/lodash/_safeGet.js":
43166/*!*****************************************!*\
43167 !*** ./node_modules/lodash/_safeGet.js ***!
43168 \*****************************************/
43169/*! no static exports found */
43170/***/ (function(module, exports) {
43171
43172/**
43173 * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
43174 *
43175 * @private
43176 * @param {Object} object The object to query.
43177 * @param {string} key The key of the property to get.
43178 * @returns {*} Returns the property value.
43179 */
43180function safeGet(object, key) {
43181 if (key === 'constructor' && typeof object[key] === 'function') {
43182 return;
43183 }
43184
43185 if (key == '__proto__') {
43186 return;
43187 }
43188
43189 return object[key];
43190}
43191
43192module.exports = safeGet;
43193
43194
43195/***/ }),
43196
43197/***/ "./node_modules/lodash/_setCacheAdd.js":
43198/*!*********************************************!*\
43199 !*** ./node_modules/lodash/_setCacheAdd.js ***!
43200 \*********************************************/
43201/*! no static exports found */
43202/***/ (function(module, exports) {
43203
43204/** Used to stand-in for `undefined` hash values. */
43205var HASH_UNDEFINED = '__lodash_hash_undefined__';
43206
43207/**
43208 * Adds `value` to the array cache.
43209 *
43210 * @private
43211 * @name add
43212 * @memberOf SetCache
43213 * @alias push
43214 * @param {*} value The value to cache.
43215 * @returns {Object} Returns the cache instance.
43216 */
43217function setCacheAdd(value) {
43218 this.__data__.set(value, HASH_UNDEFINED);
43219 return this;
43220}
43221
43222module.exports = setCacheAdd;
43223
43224
43225/***/ }),
43226
43227/***/ "./node_modules/lodash/_setCacheHas.js":
43228/*!*********************************************!*\
43229 !*** ./node_modules/lodash/_setCacheHas.js ***!
43230 \*********************************************/
43231/*! no static exports found */
43232/***/ (function(module, exports) {
43233
43234/**
43235 * Checks if `value` is in the array cache.
43236 *
43237 * @private
43238 * @name has
43239 * @memberOf SetCache
43240 * @param {*} value The value to search for.
43241 * @returns {number} Returns `true` if `value` is found, else `false`.
43242 */
43243function setCacheHas(value) {
43244 return this.__data__.has(value);
43245}
43246
43247module.exports = setCacheHas;
43248
43249
43250/***/ }),
43251
43252/***/ "./node_modules/lodash/_setToArray.js":
43253/*!********************************************!*\
43254 !*** ./node_modules/lodash/_setToArray.js ***!
43255 \********************************************/
43256/*! no static exports found */
43257/***/ (function(module, exports) {
43258
43259/**
43260 * Converts `set` to an array of its values.
43261 *
43262 * @private
43263 * @param {Object} set The set to convert.
43264 * @returns {Array} Returns the values.
43265 */
43266function setToArray(set) {
43267 var index = -1,
43268 result = Array(set.size);
43269
43270 set.forEach(function(value) {
43271 result[++index] = value;
43272 });
43273 return result;
43274}
43275
43276module.exports = setToArray;
43277
43278
43279/***/ }),
43280
43281/***/ "./node_modules/lodash/_setToString.js":
43282/*!*********************************************!*\
43283 !*** ./node_modules/lodash/_setToString.js ***!
43284 \*********************************************/
43285/*! no static exports found */
43286/***/ (function(module, exports, __webpack_require__) {
43287
43288var baseSetToString = __webpack_require__(/*! ./_baseSetToString */ "./node_modules/lodash/_baseSetToString.js"),
43289 shortOut = __webpack_require__(/*! ./_shortOut */ "./node_modules/lodash/_shortOut.js");
43290
43291/**
43292 * Sets the `toString` method of `func` to return `string`.
43293 *
43294 * @private
43295 * @param {Function} func The function to modify.
43296 * @param {Function} string The `toString` result.
43297 * @returns {Function} Returns `func`.
43298 */
43299var setToString = shortOut(baseSetToString);
43300
43301module.exports = setToString;
43302
43303
43304/***/ }),
43305
43306/***/ "./node_modules/lodash/_shortOut.js":
43307/*!******************************************!*\
43308 !*** ./node_modules/lodash/_shortOut.js ***!
43309 \******************************************/
43310/*! no static exports found */
43311/***/ (function(module, exports) {
43312
43313/** Used to detect hot functions by number of calls within a span of milliseconds. */
43314var HOT_COUNT = 800,
43315 HOT_SPAN = 16;
43316
43317/* Built-in method references for those with the same name as other `lodash` methods. */
43318var nativeNow = Date.now;
43319
43320/**
43321 * Creates a function that'll short out and invoke `identity` instead
43322 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
43323 * milliseconds.
43324 *
43325 * @private
43326 * @param {Function} func The function to restrict.
43327 * @returns {Function} Returns the new shortable function.
43328 */
43329function shortOut(func) {
43330 var count = 0,
43331 lastCalled = 0;
43332
43333 return function() {
43334 var stamp = nativeNow(),
43335 remaining = HOT_SPAN - (stamp - lastCalled);
43336
43337 lastCalled = stamp;
43338 if (remaining > 0) {
43339 if (++count >= HOT_COUNT) {
43340 return arguments[0];
43341 }
43342 } else {
43343 count = 0;
43344 }
43345 return func.apply(undefined, arguments);
43346 };
43347}
43348
43349module.exports = shortOut;
43350
43351
43352/***/ }),
43353
43354/***/ "./node_modules/lodash/_stackClear.js":
43355/*!********************************************!*\
43356 !*** ./node_modules/lodash/_stackClear.js ***!
43357 \********************************************/
43358/*! no static exports found */
43359/***/ (function(module, exports, __webpack_require__) {
43360
43361var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js");
43362
43363/**
43364 * Removes all key-value entries from the stack.
43365 *
43366 * @private
43367 * @name clear
43368 * @memberOf Stack
43369 */
43370function stackClear() {
43371 this.__data__ = new ListCache;
43372 this.size = 0;
43373}
43374
43375module.exports = stackClear;
43376
43377
43378/***/ }),
43379
43380/***/ "./node_modules/lodash/_stackDelete.js":
43381/*!*********************************************!*\
43382 !*** ./node_modules/lodash/_stackDelete.js ***!
43383 \*********************************************/
43384/*! no static exports found */
43385/***/ (function(module, exports) {
43386
43387/**
43388 * Removes `key` and its value from the stack.
43389 *
43390 * @private
43391 * @name delete
43392 * @memberOf Stack
43393 * @param {string} key The key of the value to remove.
43394 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
43395 */
43396function stackDelete(key) {
43397 var data = this.__data__,
43398 result = data['delete'](key);
43399
43400 this.size = data.size;
43401 return result;
43402}
43403
43404module.exports = stackDelete;
43405
43406
43407/***/ }),
43408
43409/***/ "./node_modules/lodash/_stackGet.js":
43410/*!******************************************!*\
43411 !*** ./node_modules/lodash/_stackGet.js ***!
43412 \******************************************/
43413/*! no static exports found */
43414/***/ (function(module, exports) {
43415
43416/**
43417 * Gets the stack value for `key`.
43418 *
43419 * @private
43420 * @name get
43421 * @memberOf Stack
43422 * @param {string} key The key of the value to get.
43423 * @returns {*} Returns the entry value.
43424 */
43425function stackGet(key) {
43426 return this.__data__.get(key);
43427}
43428
43429module.exports = stackGet;
43430
43431
43432/***/ }),
43433
43434/***/ "./node_modules/lodash/_stackHas.js":
43435/*!******************************************!*\
43436 !*** ./node_modules/lodash/_stackHas.js ***!
43437 \******************************************/
43438/*! no static exports found */
43439/***/ (function(module, exports) {
43440
43441/**
43442 * Checks if a stack value for `key` exists.
43443 *
43444 * @private
43445 * @name has
43446 * @memberOf Stack
43447 * @param {string} key The key of the entry to check.
43448 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
43449 */
43450function stackHas(key) {
43451 return this.__data__.has(key);
43452}
43453
43454module.exports = stackHas;
43455
43456
43457/***/ }),
43458
43459/***/ "./node_modules/lodash/_stackSet.js":
43460/*!******************************************!*\
43461 !*** ./node_modules/lodash/_stackSet.js ***!
43462 \******************************************/
43463/*! no static exports found */
43464/***/ (function(module, exports, __webpack_require__) {
43465
43466var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
43467 Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),
43468 MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js");
43469
43470/** Used as the size to enable large array optimizations. */
43471var LARGE_ARRAY_SIZE = 200;
43472
43473/**
43474 * Sets the stack `key` to `value`.
43475 *
43476 * @private
43477 * @name set
43478 * @memberOf Stack
43479 * @param {string} key The key of the value to set.
43480 * @param {*} value The value to set.
43481 * @returns {Object} Returns the stack cache instance.
43482 */
43483function stackSet(key, value) {
43484 var data = this.__data__;
43485 if (data instanceof ListCache) {
43486 var pairs = data.__data__;
43487 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
43488 pairs.push([key, value]);
43489 this.size = ++data.size;
43490 return this;
43491 }
43492 data = this.__data__ = new MapCache(pairs);
43493 }
43494 data.set(key, value);
43495 this.size = data.size;
43496 return this;
43497}
43498
43499module.exports = stackSet;
43500
43501
43502/***/ }),
43503
43504/***/ "./node_modules/lodash/_strictIndexOf.js":
43505/*!***********************************************!*\
43506 !*** ./node_modules/lodash/_strictIndexOf.js ***!
43507 \***********************************************/
43508/*! no static exports found */
43509/***/ (function(module, exports) {
43510
43511/**
43512 * A specialized version of `_.indexOf` which performs strict equality
43513 * comparisons of values, i.e. `===`.
43514 *
43515 * @private
43516 * @param {Array} array The array to inspect.
43517 * @param {*} value The value to search for.
43518 * @param {number} fromIndex The index to search from.
43519 * @returns {number} Returns the index of the matched value, else `-1`.
43520 */
43521function strictIndexOf(array, value, fromIndex) {
43522 var index = fromIndex - 1,
43523 length = array.length;
43524
43525 while (++index < length) {
43526 if (array[index] === value) {
43527 return index;
43528 }
43529 }
43530 return -1;
43531}
43532
43533module.exports = strictIndexOf;
43534
43535
43536/***/ }),
43537
43538/***/ "./node_modules/lodash/_stringSize.js":
43539/*!********************************************!*\
43540 !*** ./node_modules/lodash/_stringSize.js ***!
43541 \********************************************/
43542/*! no static exports found */
43543/***/ (function(module, exports, __webpack_require__) {
43544
43545var asciiSize = __webpack_require__(/*! ./_asciiSize */ "./node_modules/lodash/_asciiSize.js"),
43546 hasUnicode = __webpack_require__(/*! ./_hasUnicode */ "./node_modules/lodash/_hasUnicode.js"),
43547 unicodeSize = __webpack_require__(/*! ./_unicodeSize */ "./node_modules/lodash/_unicodeSize.js");
43548
43549/**
43550 * Gets the number of symbols in `string`.
43551 *
43552 * @private
43553 * @param {string} string The string to inspect.
43554 * @returns {number} Returns the string size.
43555 */
43556function stringSize(string) {
43557 return hasUnicode(string)
43558 ? unicodeSize(string)
43559 : asciiSize(string);
43560}
43561
43562module.exports = stringSize;
43563
43564
43565/***/ }),
43566
43567/***/ "./node_modules/lodash/_stringToPath.js":
43568/*!**********************************************!*\
43569 !*** ./node_modules/lodash/_stringToPath.js ***!
43570 \**********************************************/
43571/*! no static exports found */
43572/***/ (function(module, exports, __webpack_require__) {
43573
43574var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ "./node_modules/lodash/_memoizeCapped.js");
43575
43576/** Used to match property names within property paths. */
43577var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
43578
43579/** Used to match backslashes in property paths. */
43580var reEscapeChar = /\\(\\)?/g;
43581
43582/**
43583 * Converts `string` to a property path array.
43584 *
43585 * @private
43586 * @param {string} string The string to convert.
43587 * @returns {Array} Returns the property path array.
43588 */
43589var stringToPath = memoizeCapped(function(string) {
43590 var result = [];
43591 if (string.charCodeAt(0) === 46 /* . */) {
43592 result.push('');
43593 }
43594 string.replace(rePropName, function(match, number, quote, subString) {
43595 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
43596 });
43597 return result;
43598});
43599
43600module.exports = stringToPath;
43601
43602
43603/***/ }),
43604
43605/***/ "./node_modules/lodash/_toKey.js":
43606/*!***************************************!*\
43607 !*** ./node_modules/lodash/_toKey.js ***!
43608 \***************************************/
43609/*! no static exports found */
43610/***/ (function(module, exports, __webpack_require__) {
43611
43612var isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
43613
43614/** Used as references for various `Number` constants. */
43615var INFINITY = 1 / 0;
43616
43617/**
43618 * Converts `value` to a string key if it's not a string or symbol.
43619 *
43620 * @private
43621 * @param {*} value The value to inspect.
43622 * @returns {string|symbol} Returns the key.
43623 */
43624function toKey(value) {
43625 if (typeof value == 'string' || isSymbol(value)) {
43626 return value;
43627 }
43628 var result = (value + '');
43629 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
43630}
43631
43632module.exports = toKey;
43633
43634
43635/***/ }),
43636
43637/***/ "./node_modules/lodash/_toSource.js":
43638/*!******************************************!*\
43639 !*** ./node_modules/lodash/_toSource.js ***!
43640 \******************************************/
43641/*! no static exports found */
43642/***/ (function(module, exports) {
43643
43644/** Used for built-in method references. */
43645var funcProto = Function.prototype;
43646
43647/** Used to resolve the decompiled source of functions. */
43648var funcToString = funcProto.toString;
43649
43650/**
43651 * Converts `func` to its source code.
43652 *
43653 * @private
43654 * @param {Function} func The function to convert.
43655 * @returns {string} Returns the source code.
43656 */
43657function toSource(func) {
43658 if (func != null) {
43659 try {
43660 return funcToString.call(func);
43661 } catch (e) {}
43662 try {
43663 return (func + '');
43664 } catch (e) {}
43665 }
43666 return '';
43667}
43668
43669module.exports = toSource;
43670
43671
43672/***/ }),
43673
43674/***/ "./node_modules/lodash/_unicodeSize.js":
43675/*!*********************************************!*\
43676 !*** ./node_modules/lodash/_unicodeSize.js ***!
43677 \*********************************************/
43678/*! no static exports found */
43679/***/ (function(module, exports) {
43680
43681/** Used to compose unicode character classes. */
43682var rsAstralRange = '\\ud800-\\udfff',
43683 rsComboMarksRange = '\\u0300-\\u036f',
43684 reComboHalfMarksRange = '\\ufe20-\\ufe2f',
43685 rsComboSymbolsRange = '\\u20d0-\\u20ff',
43686 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
43687 rsVarRange = '\\ufe0e\\ufe0f';
43688
43689/** Used to compose unicode capture groups. */
43690var rsAstral = '[' + rsAstralRange + ']',
43691 rsCombo = '[' + rsComboRange + ']',
43692 rsFitz = '\\ud83c[\\udffb-\\udfff]',
43693 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
43694 rsNonAstral = '[^' + rsAstralRange + ']',
43695 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
43696 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
43697 rsZWJ = '\\u200d';
43698
43699/** Used to compose unicode regexes. */
43700var reOptMod = rsModifier + '?',
43701 rsOptVar = '[' + rsVarRange + ']?',
43702 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
43703 rsSeq = rsOptVar + reOptMod + rsOptJoin,
43704 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
43705
43706/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
43707var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
43708
43709/**
43710 * Gets the size of a Unicode `string`.
43711 *
43712 * @private
43713 * @param {string} string The string inspect.
43714 * @returns {number} Returns the string size.
43715 */
43716function unicodeSize(string) {
43717 var result = reUnicode.lastIndex = 0;
43718 while (reUnicode.test(string)) {
43719 ++result;
43720 }
43721 return result;
43722}
43723
43724module.exports = unicodeSize;
43725
43726
43727/***/ }),
43728
43729/***/ "./node_modules/lodash/clone.js":
43730/*!**************************************!*\
43731 !*** ./node_modules/lodash/clone.js ***!
43732 \**************************************/
43733/*! no static exports found */
43734/***/ (function(module, exports, __webpack_require__) {
43735
43736var baseClone = __webpack_require__(/*! ./_baseClone */ "./node_modules/lodash/_baseClone.js");
43737
43738/** Used to compose bitmasks for cloning. */
43739var CLONE_SYMBOLS_FLAG = 4;
43740
43741/**
43742 * Creates a shallow clone of `value`.
43743 *
43744 * **Note:** This method is loosely based on the
43745 * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
43746 * and supports cloning arrays, array buffers, booleans, date objects, maps,
43747 * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
43748 * arrays. The own enumerable properties of `arguments` objects are cloned
43749 * as plain objects. An empty object is returned for uncloneable values such
43750 * as error objects, functions, DOM nodes, and WeakMaps.
43751 *
43752 * @static
43753 * @memberOf _
43754 * @since 0.1.0
43755 * @category Lang
43756 * @param {*} value The value to clone.
43757 * @returns {*} Returns the cloned value.
43758 * @see _.cloneDeep
43759 * @example
43760 *
43761 * var objects = [{ 'a': 1 }, { 'b': 2 }];
43762 *
43763 * var shallow = _.clone(objects);
43764 * console.log(shallow[0] === objects[0]);
43765 * // => true
43766 */
43767function clone(value) {
43768 return baseClone(value, CLONE_SYMBOLS_FLAG);
43769}
43770
43771module.exports = clone;
43772
43773
43774/***/ }),
43775
43776/***/ "./node_modules/lodash/cloneDeep.js":
43777/*!******************************************!*\
43778 !*** ./node_modules/lodash/cloneDeep.js ***!
43779 \******************************************/
43780/*! no static exports found */
43781/***/ (function(module, exports, __webpack_require__) {
43782
43783var baseClone = __webpack_require__(/*! ./_baseClone */ "./node_modules/lodash/_baseClone.js");
43784
43785/** Used to compose bitmasks for cloning. */
43786var CLONE_DEEP_FLAG = 1,
43787 CLONE_SYMBOLS_FLAG = 4;
43788
43789/**
43790 * This method is like `_.clone` except that it recursively clones `value`.
43791 *
43792 * @static
43793 * @memberOf _
43794 * @since 1.0.0
43795 * @category Lang
43796 * @param {*} value The value to recursively clone.
43797 * @returns {*} Returns the deep cloned value.
43798 * @see _.clone
43799 * @example
43800 *
43801 * var objects = [{ 'a': 1 }, { 'b': 2 }];
43802 *
43803 * var deep = _.cloneDeep(objects);
43804 * console.log(deep[0] === objects[0]);
43805 * // => false
43806 */
43807function cloneDeep(value) {
43808 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
43809}
43810
43811module.exports = cloneDeep;
43812
43813
43814/***/ }),
43815
43816/***/ "./node_modules/lodash/constant.js":
43817/*!*****************************************!*\
43818 !*** ./node_modules/lodash/constant.js ***!
43819 \*****************************************/
43820/*! no static exports found */
43821/***/ (function(module, exports) {
43822
43823/**
43824 * Creates a function that returns `value`.
43825 *
43826 * @static
43827 * @memberOf _
43828 * @since 2.4.0
43829 * @category Util
43830 * @param {*} value The value to return from the new function.
43831 * @returns {Function} Returns the new constant function.
43832 * @example
43833 *
43834 * var objects = _.times(2, _.constant({ 'a': 1 }));
43835 *
43836 * console.log(objects);
43837 * // => [{ 'a': 1 }, { 'a': 1 }]
43838 *
43839 * console.log(objects[0] === objects[1]);
43840 * // => true
43841 */
43842function constant(value) {
43843 return function() {
43844 return value;
43845 };
43846}
43847
43848module.exports = constant;
43849
43850
43851/***/ }),
43852
43853/***/ "./node_modules/lodash/defaults.js":
43854/*!*****************************************!*\
43855 !*** ./node_modules/lodash/defaults.js ***!
43856 \*****************************************/
43857/*! no static exports found */
43858/***/ (function(module, exports, __webpack_require__) {
43859
43860var baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
43861 eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
43862 isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js"),
43863 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
43864
43865/** Used for built-in method references. */
43866var objectProto = Object.prototype;
43867
43868/** Used to check objects for own properties. */
43869var hasOwnProperty = objectProto.hasOwnProperty;
43870
43871/**
43872 * Assigns own and inherited enumerable string keyed properties of source
43873 * objects to the destination object for all destination properties that
43874 * resolve to `undefined`. Source objects are applied from left to right.
43875 * Once a property is set, additional values of the same property are ignored.
43876 *
43877 * **Note:** This method mutates `object`.
43878 *
43879 * @static
43880 * @since 0.1.0
43881 * @memberOf _
43882 * @category Object
43883 * @param {Object} object The destination object.
43884 * @param {...Object} [sources] The source objects.
43885 * @returns {Object} Returns `object`.
43886 * @see _.defaultsDeep
43887 * @example
43888 *
43889 * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
43890 * // => { 'a': 1, 'b': 2 }
43891 */
43892var defaults = baseRest(function(object, sources) {
43893 object = Object(object);
43894
43895 var index = -1;
43896 var length = sources.length;
43897 var guard = length > 2 ? sources[2] : undefined;
43898
43899 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
43900 length = 1;
43901 }
43902
43903 while (++index < length) {
43904 var source = sources[index];
43905 var props = keysIn(source);
43906 var propsIndex = -1;
43907 var propsLength = props.length;
43908
43909 while (++propsIndex < propsLength) {
43910 var key = props[propsIndex];
43911 var value = object[key];
43912
43913 if (value === undefined ||
43914 (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
43915 object[key] = source[key];
43916 }
43917 }
43918 }
43919
43920 return object;
43921});
43922
43923module.exports = defaults;
43924
43925
43926/***/ }),
43927
43928/***/ "./node_modules/lodash/each.js":
43929/*!*************************************!*\
43930 !*** ./node_modules/lodash/each.js ***!
43931 \*************************************/
43932/*! no static exports found */
43933/***/ (function(module, exports, __webpack_require__) {
43934
43935module.exports = __webpack_require__(/*! ./forEach */ "./node_modules/lodash/forEach.js");
43936
43937
43938/***/ }),
43939
43940/***/ "./node_modules/lodash/eq.js":
43941/*!***********************************!*\
43942 !*** ./node_modules/lodash/eq.js ***!
43943 \***********************************/
43944/*! no static exports found */
43945/***/ (function(module, exports) {
43946
43947/**
43948 * Performs a
43949 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
43950 * comparison between two values to determine if they are equivalent.
43951 *
43952 * @static
43953 * @memberOf _
43954 * @since 4.0.0
43955 * @category Lang
43956 * @param {*} value The value to compare.
43957 * @param {*} other The other value to compare.
43958 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
43959 * @example
43960 *
43961 * var object = { 'a': 1 };
43962 * var other = { 'a': 1 };
43963 *
43964 * _.eq(object, object);
43965 * // => true
43966 *
43967 * _.eq(object, other);
43968 * // => false
43969 *
43970 * _.eq('a', 'a');
43971 * // => true
43972 *
43973 * _.eq('a', Object('a'));
43974 * // => false
43975 *
43976 * _.eq(NaN, NaN);
43977 * // => true
43978 */
43979function eq(value, other) {
43980 return value === other || (value !== value && other !== other);
43981}
43982
43983module.exports = eq;
43984
43985
43986/***/ }),
43987
43988/***/ "./node_modules/lodash/filter.js":
43989/*!***************************************!*\
43990 !*** ./node_modules/lodash/filter.js ***!
43991 \***************************************/
43992/*! no static exports found */
43993/***/ (function(module, exports, __webpack_require__) {
43994
43995var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./node_modules/lodash/_arrayFilter.js"),
43996 baseFilter = __webpack_require__(/*! ./_baseFilter */ "./node_modules/lodash/_baseFilter.js"),
43997 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
43998 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
43999
44000/**
44001 * Iterates over elements of `collection`, returning an array of all elements
44002 * `predicate` returns truthy for. The predicate is invoked with three
44003 * arguments: (value, index|key, collection).
44004 *
44005 * **Note:** Unlike `_.remove`, this method returns a new array.
44006 *
44007 * @static
44008 * @memberOf _
44009 * @since 0.1.0
44010 * @category Collection
44011 * @param {Array|Object} collection The collection to iterate over.
44012 * @param {Function} [predicate=_.identity] The function invoked per iteration.
44013 * @returns {Array} Returns the new filtered array.
44014 * @see _.reject
44015 * @example
44016 *
44017 * var users = [
44018 * { 'user': 'barney', 'age': 36, 'active': true },
44019 * { 'user': 'fred', 'age': 40, 'active': false }
44020 * ];
44021 *
44022 * _.filter(users, function(o) { return !o.active; });
44023 * // => objects for ['fred']
44024 *
44025 * // The `_.matches` iteratee shorthand.
44026 * _.filter(users, { 'age': 36, 'active': true });
44027 * // => objects for ['barney']
44028 *
44029 * // The `_.matchesProperty` iteratee shorthand.
44030 * _.filter(users, ['active', false]);
44031 * // => objects for ['fred']
44032 *
44033 * // The `_.property` iteratee shorthand.
44034 * _.filter(users, 'active');
44035 * // => objects for ['barney']
44036 */
44037function filter(collection, predicate) {
44038 var func = isArray(collection) ? arrayFilter : baseFilter;
44039 return func(collection, baseIteratee(predicate, 3));
44040}
44041
44042module.exports = filter;
44043
44044
44045/***/ }),
44046
44047/***/ "./node_modules/lodash/find.js":
44048/*!*************************************!*\
44049 !*** ./node_modules/lodash/find.js ***!
44050 \*************************************/
44051/*! no static exports found */
44052/***/ (function(module, exports, __webpack_require__) {
44053
44054var createFind = __webpack_require__(/*! ./_createFind */ "./node_modules/lodash/_createFind.js"),
44055 findIndex = __webpack_require__(/*! ./findIndex */ "./node_modules/lodash/findIndex.js");
44056
44057/**
44058 * Iterates over elements of `collection`, returning the first element
44059 * `predicate` returns truthy for. The predicate is invoked with three
44060 * arguments: (value, index|key, collection).
44061 *
44062 * @static
44063 * @memberOf _
44064 * @since 0.1.0
44065 * @category Collection
44066 * @param {Array|Object} collection The collection to inspect.
44067 * @param {Function} [predicate=_.identity] The function invoked per iteration.
44068 * @param {number} [fromIndex=0] The index to search from.
44069 * @returns {*} Returns the matched element, else `undefined`.
44070 * @example
44071 *
44072 * var users = [
44073 * { 'user': 'barney', 'age': 36, 'active': true },
44074 * { 'user': 'fred', 'age': 40, 'active': false },
44075 * { 'user': 'pebbles', 'age': 1, 'active': true }
44076 * ];
44077 *
44078 * _.find(users, function(o) { return o.age < 40; });
44079 * // => object for 'barney'
44080 *
44081 * // The `_.matches` iteratee shorthand.
44082 * _.find(users, { 'age': 1, 'active': true });
44083 * // => object for 'pebbles'
44084 *
44085 * // The `_.matchesProperty` iteratee shorthand.
44086 * _.find(users, ['active', false]);
44087 * // => object for 'fred'
44088 *
44089 * // The `_.property` iteratee shorthand.
44090 * _.find(users, 'active');
44091 * // => object for 'barney'
44092 */
44093var find = createFind(findIndex);
44094
44095module.exports = find;
44096
44097
44098/***/ }),
44099
44100/***/ "./node_modules/lodash/findIndex.js":
44101/*!******************************************!*\
44102 !*** ./node_modules/lodash/findIndex.js ***!
44103 \******************************************/
44104/*! no static exports found */
44105/***/ (function(module, exports, __webpack_require__) {
44106
44107var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ "./node_modules/lodash/_baseFindIndex.js"),
44108 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
44109 toInteger = __webpack_require__(/*! ./toInteger */ "./node_modules/lodash/toInteger.js");
44110
44111/* Built-in method references for those with the same name as other `lodash` methods. */
44112var nativeMax = Math.max;
44113
44114/**
44115 * This method is like `_.find` except that it returns the index of the first
44116 * element `predicate` returns truthy for instead of the element itself.
44117 *
44118 * @static
44119 * @memberOf _
44120 * @since 1.1.0
44121 * @category Array
44122 * @param {Array} array The array to inspect.
44123 * @param {Function} [predicate=_.identity] The function invoked per iteration.
44124 * @param {number} [fromIndex=0] The index to search from.
44125 * @returns {number} Returns the index of the found element, else `-1`.
44126 * @example
44127 *
44128 * var users = [
44129 * { 'user': 'barney', 'active': false },
44130 * { 'user': 'fred', 'active': false },
44131 * { 'user': 'pebbles', 'active': true }
44132 * ];
44133 *
44134 * _.findIndex(users, function(o) { return o.user == 'barney'; });
44135 * // => 0
44136 *
44137 * // The `_.matches` iteratee shorthand.
44138 * _.findIndex(users, { 'user': 'fred', 'active': false });
44139 * // => 1
44140 *
44141 * // The `_.matchesProperty` iteratee shorthand.
44142 * _.findIndex(users, ['active', false]);
44143 * // => 0
44144 *
44145 * // The `_.property` iteratee shorthand.
44146 * _.findIndex(users, 'active');
44147 * // => 2
44148 */
44149function findIndex(array, predicate, fromIndex) {
44150 var length = array == null ? 0 : array.length;
44151 if (!length) {
44152 return -1;
44153 }
44154 var index = fromIndex == null ? 0 : toInteger(fromIndex);
44155 if (index < 0) {
44156 index = nativeMax(length + index, 0);
44157 }
44158 return baseFindIndex(array, baseIteratee(predicate, 3), index);
44159}
44160
44161module.exports = findIndex;
44162
44163
44164/***/ }),
44165
44166/***/ "./node_modules/lodash/flatten.js":
44167/*!****************************************!*\
44168 !*** ./node_modules/lodash/flatten.js ***!
44169 \****************************************/
44170/*! no static exports found */
44171/***/ (function(module, exports, __webpack_require__) {
44172
44173var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ "./node_modules/lodash/_baseFlatten.js");
44174
44175/**
44176 * Flattens `array` a single level deep.
44177 *
44178 * @static
44179 * @memberOf _
44180 * @since 0.1.0
44181 * @category Array
44182 * @param {Array} array The array to flatten.
44183 * @returns {Array} Returns the new flattened array.
44184 * @example
44185 *
44186 * _.flatten([1, [2, [3, [4]], 5]]);
44187 * // => [1, 2, [3, [4]], 5]
44188 */
44189function flatten(array) {
44190 var length = array == null ? 0 : array.length;
44191 return length ? baseFlatten(array, 1) : [];
44192}
44193
44194module.exports = flatten;
44195
44196
44197/***/ }),
44198
44199/***/ "./node_modules/lodash/forEach.js":
44200/*!****************************************!*\
44201 !*** ./node_modules/lodash/forEach.js ***!
44202 \****************************************/
44203/*! no static exports found */
44204/***/ (function(module, exports, __webpack_require__) {
44205
44206var arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),
44207 baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),
44208 castFunction = __webpack_require__(/*! ./_castFunction */ "./node_modules/lodash/_castFunction.js"),
44209 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
44210
44211/**
44212 * Iterates over elements of `collection` and invokes `iteratee` for each element.
44213 * The iteratee is invoked with three arguments: (value, index|key, collection).
44214 * Iteratee functions may exit iteration early by explicitly returning `false`.
44215 *
44216 * **Note:** As with other "Collections" methods, objects with a "length"
44217 * property are iterated like arrays. To avoid this behavior use `_.forIn`
44218 * or `_.forOwn` for object iteration.
44219 *
44220 * @static
44221 * @memberOf _
44222 * @since 0.1.0
44223 * @alias each
44224 * @category Collection
44225 * @param {Array|Object} collection The collection to iterate over.
44226 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
44227 * @returns {Array|Object} Returns `collection`.
44228 * @see _.forEachRight
44229 * @example
44230 *
44231 * _.forEach([1, 2], function(value) {
44232 * console.log(value);
44233 * });
44234 * // => Logs `1` then `2`.
44235 *
44236 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
44237 * console.log(key);
44238 * });
44239 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
44240 */
44241function forEach(collection, iteratee) {
44242 var func = isArray(collection) ? arrayEach : baseEach;
44243 return func(collection, castFunction(iteratee));
44244}
44245
44246module.exports = forEach;
44247
44248
44249/***/ }),
44250
44251/***/ "./node_modules/lodash/forIn.js":
44252/*!**************************************!*\
44253 !*** ./node_modules/lodash/forIn.js ***!
44254 \**************************************/
44255/*! no static exports found */
44256/***/ (function(module, exports, __webpack_require__) {
44257
44258var baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),
44259 castFunction = __webpack_require__(/*! ./_castFunction */ "./node_modules/lodash/_castFunction.js"),
44260 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
44261
44262/**
44263 * Iterates over own and inherited enumerable string keyed properties of an
44264 * object and invokes `iteratee` for each property. The iteratee is invoked
44265 * with three arguments: (value, key, object). Iteratee functions may exit
44266 * iteration early by explicitly returning `false`.
44267 *
44268 * @static
44269 * @memberOf _
44270 * @since 0.3.0
44271 * @category Object
44272 * @param {Object} object The object to iterate over.
44273 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
44274 * @returns {Object} Returns `object`.
44275 * @see _.forInRight
44276 * @example
44277 *
44278 * function Foo() {
44279 * this.a = 1;
44280 * this.b = 2;
44281 * }
44282 *
44283 * Foo.prototype.c = 3;
44284 *
44285 * _.forIn(new Foo, function(value, key) {
44286 * console.log(key);
44287 * });
44288 * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).
44289 */
44290function forIn(object, iteratee) {
44291 return object == null
44292 ? object
44293 : baseFor(object, castFunction(iteratee), keysIn);
44294}
44295
44296module.exports = forIn;
44297
44298
44299/***/ }),
44300
44301/***/ "./node_modules/lodash/get.js":
44302/*!************************************!*\
44303 !*** ./node_modules/lodash/get.js ***!
44304 \************************************/
44305/*! no static exports found */
44306/***/ (function(module, exports, __webpack_require__) {
44307
44308var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/lodash/_baseGet.js");
44309
44310/**
44311 * Gets the value at `path` of `object`. If the resolved value is
44312 * `undefined`, the `defaultValue` is returned in its place.
44313 *
44314 * @static
44315 * @memberOf _
44316 * @since 3.7.0
44317 * @category Object
44318 * @param {Object} object The object to query.
44319 * @param {Array|string} path The path of the property to get.
44320 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
44321 * @returns {*} Returns the resolved value.
44322 * @example
44323 *
44324 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
44325 *
44326 * _.get(object, 'a[0].b.c');
44327 * // => 3
44328 *
44329 * _.get(object, ['a', '0', 'b', 'c']);
44330 * // => 3
44331 *
44332 * _.get(object, 'a.b.c', 'default');
44333 * // => 'default'
44334 */
44335function get(object, path, defaultValue) {
44336 var result = object == null ? undefined : baseGet(object, path);
44337 return result === undefined ? defaultValue : result;
44338}
44339
44340module.exports = get;
44341
44342
44343/***/ }),
44344
44345/***/ "./node_modules/lodash/has.js":
44346/*!************************************!*\
44347 !*** ./node_modules/lodash/has.js ***!
44348 \************************************/
44349/*! no static exports found */
44350/***/ (function(module, exports, __webpack_require__) {
44351
44352var baseHas = __webpack_require__(/*! ./_baseHas */ "./node_modules/lodash/_baseHas.js"),
44353 hasPath = __webpack_require__(/*! ./_hasPath */ "./node_modules/lodash/_hasPath.js");
44354
44355/**
44356 * Checks if `path` is a direct property of `object`.
44357 *
44358 * @static
44359 * @since 0.1.0
44360 * @memberOf _
44361 * @category Object
44362 * @param {Object} object The object to query.
44363 * @param {Array|string} path The path to check.
44364 * @returns {boolean} Returns `true` if `path` exists, else `false`.
44365 * @example
44366 *
44367 * var object = { 'a': { 'b': 2 } };
44368 * var other = _.create({ 'a': _.create({ 'b': 2 }) });
44369 *
44370 * _.has(object, 'a');
44371 * // => true
44372 *
44373 * _.has(object, 'a.b');
44374 * // => true
44375 *
44376 * _.has(object, ['a', 'b']);
44377 * // => true
44378 *
44379 * _.has(other, 'a');
44380 * // => false
44381 */
44382function has(object, path) {
44383 return object != null && hasPath(object, path, baseHas);
44384}
44385
44386module.exports = has;
44387
44388
44389/***/ }),
44390
44391/***/ "./node_modules/lodash/hasIn.js":
44392/*!**************************************!*\
44393 !*** ./node_modules/lodash/hasIn.js ***!
44394 \**************************************/
44395/*! no static exports found */
44396/***/ (function(module, exports, __webpack_require__) {
44397
44398var baseHasIn = __webpack_require__(/*! ./_baseHasIn */ "./node_modules/lodash/_baseHasIn.js"),
44399 hasPath = __webpack_require__(/*! ./_hasPath */ "./node_modules/lodash/_hasPath.js");
44400
44401/**
44402 * Checks if `path` is a direct or inherited property of `object`.
44403 *
44404 * @static
44405 * @memberOf _
44406 * @since 4.0.0
44407 * @category Object
44408 * @param {Object} object The object to query.
44409 * @param {Array|string} path The path to check.
44410 * @returns {boolean} Returns `true` if `path` exists, else `false`.
44411 * @example
44412 *
44413 * var object = _.create({ 'a': _.create({ 'b': 2 }) });
44414 *
44415 * _.hasIn(object, 'a');
44416 * // => true
44417 *
44418 * _.hasIn(object, 'a.b');
44419 * // => true
44420 *
44421 * _.hasIn(object, ['a', 'b']);
44422 * // => true
44423 *
44424 * _.hasIn(object, 'b');
44425 * // => false
44426 */
44427function hasIn(object, path) {
44428 return object != null && hasPath(object, path, baseHasIn);
44429}
44430
44431module.exports = hasIn;
44432
44433
44434/***/ }),
44435
44436/***/ "./node_modules/lodash/identity.js":
44437/*!*****************************************!*\
44438 !*** ./node_modules/lodash/identity.js ***!
44439 \*****************************************/
44440/*! no static exports found */
44441/***/ (function(module, exports) {
44442
44443/**
44444 * This method returns the first argument it receives.
44445 *
44446 * @static
44447 * @since 0.1.0
44448 * @memberOf _
44449 * @category Util
44450 * @param {*} value Any value.
44451 * @returns {*} Returns `value`.
44452 * @example
44453 *
44454 * var object = { 'a': 1 };
44455 *
44456 * console.log(_.identity(object) === object);
44457 * // => true
44458 */
44459function identity(value) {
44460 return value;
44461}
44462
44463module.exports = identity;
44464
44465
44466/***/ }),
44467
44468/***/ "./node_modules/lodash/isArguments.js":
44469/*!********************************************!*\
44470 !*** ./node_modules/lodash/isArguments.js ***!
44471 \********************************************/
44472/*! no static exports found */
44473/***/ (function(module, exports, __webpack_require__) {
44474
44475var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ "./node_modules/lodash/_baseIsArguments.js"),
44476 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
44477
44478/** Used for built-in method references. */
44479var objectProto = Object.prototype;
44480
44481/** Used to check objects for own properties. */
44482var hasOwnProperty = objectProto.hasOwnProperty;
44483
44484/** Built-in value references. */
44485var propertyIsEnumerable = objectProto.propertyIsEnumerable;
44486
44487/**
44488 * Checks if `value` is likely an `arguments` object.
44489 *
44490 * @static
44491 * @memberOf _
44492 * @since 0.1.0
44493 * @category Lang
44494 * @param {*} value The value to check.
44495 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
44496 * else `false`.
44497 * @example
44498 *
44499 * _.isArguments(function() { return arguments; }());
44500 * // => true
44501 *
44502 * _.isArguments([1, 2, 3]);
44503 * // => false
44504 */
44505var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
44506 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
44507 !propertyIsEnumerable.call(value, 'callee');
44508};
44509
44510module.exports = isArguments;
44511
44512
44513/***/ }),
44514
44515/***/ "./node_modules/lodash/isArray.js":
44516/*!****************************************!*\
44517 !*** ./node_modules/lodash/isArray.js ***!
44518 \****************************************/
44519/*! no static exports found */
44520/***/ (function(module, exports) {
44521
44522/**
44523 * Checks if `value` is classified as an `Array` object.
44524 *
44525 * @static
44526 * @memberOf _
44527 * @since 0.1.0
44528 * @category Lang
44529 * @param {*} value The value to check.
44530 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
44531 * @example
44532 *
44533 * _.isArray([1, 2, 3]);
44534 * // => true
44535 *
44536 * _.isArray(document.body.children);
44537 * // => false
44538 *
44539 * _.isArray('abc');
44540 * // => false
44541 *
44542 * _.isArray(_.noop);
44543 * // => false
44544 */
44545var isArray = Array.isArray;
44546
44547module.exports = isArray;
44548
44549
44550/***/ }),
44551
44552/***/ "./node_modules/lodash/isArrayLike.js":
44553/*!********************************************!*\
44554 !*** ./node_modules/lodash/isArrayLike.js ***!
44555 \********************************************/
44556/*! no static exports found */
44557/***/ (function(module, exports, __webpack_require__) {
44558
44559var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
44560 isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js");
44561
44562/**
44563 * Checks if `value` is array-like. A value is considered array-like if it's
44564 * not a function and has a `value.length` that's an integer greater than or
44565 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
44566 *
44567 * @static
44568 * @memberOf _
44569 * @since 4.0.0
44570 * @category Lang
44571 * @param {*} value The value to check.
44572 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
44573 * @example
44574 *
44575 * _.isArrayLike([1, 2, 3]);
44576 * // => true
44577 *
44578 * _.isArrayLike(document.body.children);
44579 * // => true
44580 *
44581 * _.isArrayLike('abc');
44582 * // => true
44583 *
44584 * _.isArrayLike(_.noop);
44585 * // => false
44586 */
44587function isArrayLike(value) {
44588 return value != null && isLength(value.length) && !isFunction(value);
44589}
44590
44591module.exports = isArrayLike;
44592
44593
44594/***/ }),
44595
44596/***/ "./node_modules/lodash/isArrayLikeObject.js":
44597/*!**************************************************!*\
44598 !*** ./node_modules/lodash/isArrayLikeObject.js ***!
44599 \**************************************************/
44600/*! no static exports found */
44601/***/ (function(module, exports, __webpack_require__) {
44602
44603var isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
44604 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
44605
44606/**
44607 * This method is like `_.isArrayLike` except that it also checks if `value`
44608 * is an object.
44609 *
44610 * @static
44611 * @memberOf _
44612 * @since 4.0.0
44613 * @category Lang
44614 * @param {*} value The value to check.
44615 * @returns {boolean} Returns `true` if `value` is an array-like object,
44616 * else `false`.
44617 * @example
44618 *
44619 * _.isArrayLikeObject([1, 2, 3]);
44620 * // => true
44621 *
44622 * _.isArrayLikeObject(document.body.children);
44623 * // => true
44624 *
44625 * _.isArrayLikeObject('abc');
44626 * // => false
44627 *
44628 * _.isArrayLikeObject(_.noop);
44629 * // => false
44630 */
44631function isArrayLikeObject(value) {
44632 return isObjectLike(value) && isArrayLike(value);
44633}
44634
44635module.exports = isArrayLikeObject;
44636
44637
44638/***/ }),
44639
44640/***/ "./node_modules/lodash/isBuffer.js":
44641/*!*****************************************!*\
44642 !*** ./node_modules/lodash/isBuffer.js ***!
44643 \*****************************************/
44644/*! no static exports found */
44645/***/ (function(module, exports, __webpack_require__) {
44646
44647/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"),
44648 stubFalse = __webpack_require__(/*! ./stubFalse */ "./node_modules/lodash/stubFalse.js");
44649
44650/** Detect free variable `exports`. */
44651var freeExports = true && exports && !exports.nodeType && exports;
44652
44653/** Detect free variable `module`. */
44654var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
44655
44656/** Detect the popular CommonJS extension `module.exports`. */
44657var moduleExports = freeModule && freeModule.exports === freeExports;
44658
44659/** Built-in value references. */
44660var Buffer = moduleExports ? root.Buffer : undefined;
44661
44662/* Built-in method references for those with the same name as other `lodash` methods. */
44663var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
44664
44665/**
44666 * Checks if `value` is a buffer.
44667 *
44668 * @static
44669 * @memberOf _
44670 * @since 4.3.0
44671 * @category Lang
44672 * @param {*} value The value to check.
44673 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
44674 * @example
44675 *
44676 * _.isBuffer(new Buffer(2));
44677 * // => true
44678 *
44679 * _.isBuffer(new Uint8Array(2));
44680 * // => false
44681 */
44682var isBuffer = nativeIsBuffer || stubFalse;
44683
44684module.exports = isBuffer;
44685
44686/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
44687
44688/***/ }),
44689
44690/***/ "./node_modules/lodash/isEmpty.js":
44691/*!****************************************!*\
44692 !*** ./node_modules/lodash/isEmpty.js ***!
44693 \****************************************/
44694/*! no static exports found */
44695/***/ (function(module, exports, __webpack_require__) {
44696
44697var baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
44698 getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
44699 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
44700 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
44701 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
44702 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
44703 isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
44704 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
44705
44706/** `Object#toString` result references. */
44707var mapTag = '[object Map]',
44708 setTag = '[object Set]';
44709
44710/** Used for built-in method references. */
44711var objectProto = Object.prototype;
44712
44713/** Used to check objects for own properties. */
44714var hasOwnProperty = objectProto.hasOwnProperty;
44715
44716/**
44717 * Checks if `value` is an empty object, collection, map, or set.
44718 *
44719 * Objects are considered empty if they have no own enumerable string keyed
44720 * properties.
44721 *
44722 * Array-like values such as `arguments` objects, arrays, buffers, strings, or
44723 * jQuery-like collections are considered empty if they have a `length` of `0`.
44724 * Similarly, maps and sets are considered empty if they have a `size` of `0`.
44725 *
44726 * @static
44727 * @memberOf _
44728 * @since 0.1.0
44729 * @category Lang
44730 * @param {*} value The value to check.
44731 * @returns {boolean} Returns `true` if `value` is empty, else `false`.
44732 * @example
44733 *
44734 * _.isEmpty(null);
44735 * // => true
44736 *
44737 * _.isEmpty(true);
44738 * // => true
44739 *
44740 * _.isEmpty(1);
44741 * // => true
44742 *
44743 * _.isEmpty([1, 2, 3]);
44744 * // => false
44745 *
44746 * _.isEmpty({ 'a': 1 });
44747 * // => false
44748 */
44749function isEmpty(value) {
44750 if (value == null) {
44751 return true;
44752 }
44753 if (isArrayLike(value) &&
44754 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
44755 isBuffer(value) || isTypedArray(value) || isArguments(value))) {
44756 return !value.length;
44757 }
44758 var tag = getTag(value);
44759 if (tag == mapTag || tag == setTag) {
44760 return !value.size;
44761 }
44762 if (isPrototype(value)) {
44763 return !baseKeys(value).length;
44764 }
44765 for (var key in value) {
44766 if (hasOwnProperty.call(value, key)) {
44767 return false;
44768 }
44769 }
44770 return true;
44771}
44772
44773module.exports = isEmpty;
44774
44775
44776/***/ }),
44777
44778/***/ "./node_modules/lodash/isFunction.js":
44779/*!*******************************************!*\
44780 !*** ./node_modules/lodash/isFunction.js ***!
44781 \*******************************************/
44782/*! no static exports found */
44783/***/ (function(module, exports, __webpack_require__) {
44784
44785var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
44786 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
44787
44788/** `Object#toString` result references. */
44789var asyncTag = '[object AsyncFunction]',
44790 funcTag = '[object Function]',
44791 genTag = '[object GeneratorFunction]',
44792 proxyTag = '[object Proxy]';
44793
44794/**
44795 * Checks if `value` is classified as a `Function` object.
44796 *
44797 * @static
44798 * @memberOf _
44799 * @since 0.1.0
44800 * @category Lang
44801 * @param {*} value The value to check.
44802 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
44803 * @example
44804 *
44805 * _.isFunction(_);
44806 * // => true
44807 *
44808 * _.isFunction(/abc/);
44809 * // => false
44810 */
44811function isFunction(value) {
44812 if (!isObject(value)) {
44813 return false;
44814 }
44815 // The use of `Object#toString` avoids issues with the `typeof` operator
44816 // in Safari 9 which returns 'object' for typed arrays and other constructors.
44817 var tag = baseGetTag(value);
44818 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
44819}
44820
44821module.exports = isFunction;
44822
44823
44824/***/ }),
44825
44826/***/ "./node_modules/lodash/isLength.js":
44827/*!*****************************************!*\
44828 !*** ./node_modules/lodash/isLength.js ***!
44829 \*****************************************/
44830/*! no static exports found */
44831/***/ (function(module, exports) {
44832
44833/** Used as references for various `Number` constants. */
44834var MAX_SAFE_INTEGER = 9007199254740991;
44835
44836/**
44837 * Checks if `value` is a valid array-like length.
44838 *
44839 * **Note:** This method is loosely based on
44840 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
44841 *
44842 * @static
44843 * @memberOf _
44844 * @since 4.0.0
44845 * @category Lang
44846 * @param {*} value The value to check.
44847 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
44848 * @example
44849 *
44850 * _.isLength(3);
44851 * // => true
44852 *
44853 * _.isLength(Number.MIN_VALUE);
44854 * // => false
44855 *
44856 * _.isLength(Infinity);
44857 * // => false
44858 *
44859 * _.isLength('3');
44860 * // => false
44861 */
44862function isLength(value) {
44863 return typeof value == 'number' &&
44864 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
44865}
44866
44867module.exports = isLength;
44868
44869
44870/***/ }),
44871
44872/***/ "./node_modules/lodash/isMap.js":
44873/*!**************************************!*\
44874 !*** ./node_modules/lodash/isMap.js ***!
44875 \**************************************/
44876/*! no static exports found */
44877/***/ (function(module, exports, __webpack_require__) {
44878
44879var baseIsMap = __webpack_require__(/*! ./_baseIsMap */ "./node_modules/lodash/_baseIsMap.js"),
44880 baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
44881 nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");
44882
44883/* Node.js helper references. */
44884var nodeIsMap = nodeUtil && nodeUtil.isMap;
44885
44886/**
44887 * Checks if `value` is classified as a `Map` object.
44888 *
44889 * @static
44890 * @memberOf _
44891 * @since 4.3.0
44892 * @category Lang
44893 * @param {*} value The value to check.
44894 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
44895 * @example
44896 *
44897 * _.isMap(new Map);
44898 * // => true
44899 *
44900 * _.isMap(new WeakMap);
44901 * // => false
44902 */
44903var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
44904
44905module.exports = isMap;
44906
44907
44908/***/ }),
44909
44910/***/ "./node_modules/lodash/isObject.js":
44911/*!*****************************************!*\
44912 !*** ./node_modules/lodash/isObject.js ***!
44913 \*****************************************/
44914/*! no static exports found */
44915/***/ (function(module, exports) {
44916
44917/**
44918 * Checks if `value` is the
44919 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
44920 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
44921 *
44922 * @static
44923 * @memberOf _
44924 * @since 0.1.0
44925 * @category Lang
44926 * @param {*} value The value to check.
44927 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
44928 * @example
44929 *
44930 * _.isObject({});
44931 * // => true
44932 *
44933 * _.isObject([1, 2, 3]);
44934 * // => true
44935 *
44936 * _.isObject(_.noop);
44937 * // => true
44938 *
44939 * _.isObject(null);
44940 * // => false
44941 */
44942function isObject(value) {
44943 var type = typeof value;
44944 return value != null && (type == 'object' || type == 'function');
44945}
44946
44947module.exports = isObject;
44948
44949
44950/***/ }),
44951
44952/***/ "./node_modules/lodash/isObjectLike.js":
44953/*!*********************************************!*\
44954 !*** ./node_modules/lodash/isObjectLike.js ***!
44955 \*********************************************/
44956/*! no static exports found */
44957/***/ (function(module, exports) {
44958
44959/**
44960 * Checks if `value` is object-like. A value is object-like if it's not `null`
44961 * and has a `typeof` result of "object".
44962 *
44963 * @static
44964 * @memberOf _
44965 * @since 4.0.0
44966 * @category Lang
44967 * @param {*} value The value to check.
44968 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
44969 * @example
44970 *
44971 * _.isObjectLike({});
44972 * // => true
44973 *
44974 * _.isObjectLike([1, 2, 3]);
44975 * // => true
44976 *
44977 * _.isObjectLike(_.noop);
44978 * // => false
44979 *
44980 * _.isObjectLike(null);
44981 * // => false
44982 */
44983function isObjectLike(value) {
44984 return value != null && typeof value == 'object';
44985}
44986
44987module.exports = isObjectLike;
44988
44989
44990/***/ }),
44991
44992/***/ "./node_modules/lodash/isPlainObject.js":
44993/*!**********************************************!*\
44994 !*** ./node_modules/lodash/isPlainObject.js ***!
44995 \**********************************************/
44996/*! no static exports found */
44997/***/ (function(module, exports, __webpack_require__) {
44998
44999var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
45000 getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
45001 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
45002
45003/** `Object#toString` result references. */
45004var objectTag = '[object Object]';
45005
45006/** Used for built-in method references. */
45007var funcProto = Function.prototype,
45008 objectProto = Object.prototype;
45009
45010/** Used to resolve the decompiled source of functions. */
45011var funcToString = funcProto.toString;
45012
45013/** Used to check objects for own properties. */
45014var hasOwnProperty = objectProto.hasOwnProperty;
45015
45016/** Used to infer the `Object` constructor. */
45017var objectCtorString = funcToString.call(Object);
45018
45019/**
45020 * Checks if `value` is a plain object, that is, an object created by the
45021 * `Object` constructor or one with a `[[Prototype]]` of `null`.
45022 *
45023 * @static
45024 * @memberOf _
45025 * @since 0.8.0
45026 * @category Lang
45027 * @param {*} value The value to check.
45028 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
45029 * @example
45030 *
45031 * function Foo() {
45032 * this.a = 1;
45033 * }
45034 *
45035 * _.isPlainObject(new Foo);
45036 * // => false
45037 *
45038 * _.isPlainObject([1, 2, 3]);
45039 * // => false
45040 *
45041 * _.isPlainObject({ 'x': 0, 'y': 0 });
45042 * // => true
45043 *
45044 * _.isPlainObject(Object.create(null));
45045 * // => true
45046 */
45047function isPlainObject(value) {
45048 if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
45049 return false;
45050 }
45051 var proto = getPrototype(value);
45052 if (proto === null) {
45053 return true;
45054 }
45055 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
45056 return typeof Ctor == 'function' && Ctor instanceof Ctor &&
45057 funcToString.call(Ctor) == objectCtorString;
45058}
45059
45060module.exports = isPlainObject;
45061
45062
45063/***/ }),
45064
45065/***/ "./node_modules/lodash/isSet.js":
45066/*!**************************************!*\
45067 !*** ./node_modules/lodash/isSet.js ***!
45068 \**************************************/
45069/*! no static exports found */
45070/***/ (function(module, exports, __webpack_require__) {
45071
45072var baseIsSet = __webpack_require__(/*! ./_baseIsSet */ "./node_modules/lodash/_baseIsSet.js"),
45073 baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
45074 nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");
45075
45076/* Node.js helper references. */
45077var nodeIsSet = nodeUtil && nodeUtil.isSet;
45078
45079/**
45080 * Checks if `value` is classified as a `Set` object.
45081 *
45082 * @static
45083 * @memberOf _
45084 * @since 4.3.0
45085 * @category Lang
45086 * @param {*} value The value to check.
45087 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
45088 * @example
45089 *
45090 * _.isSet(new Set);
45091 * // => true
45092 *
45093 * _.isSet(new WeakSet);
45094 * // => false
45095 */
45096var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
45097
45098module.exports = isSet;
45099
45100
45101/***/ }),
45102
45103/***/ "./node_modules/lodash/isString.js":
45104/*!*****************************************!*\
45105 !*** ./node_modules/lodash/isString.js ***!
45106 \*****************************************/
45107/*! no static exports found */
45108/***/ (function(module, exports, __webpack_require__) {
45109
45110var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
45111 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
45112 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
45113
45114/** `Object#toString` result references. */
45115var stringTag = '[object String]';
45116
45117/**
45118 * Checks if `value` is classified as a `String` primitive or object.
45119 *
45120 * @static
45121 * @since 0.1.0
45122 * @memberOf _
45123 * @category Lang
45124 * @param {*} value The value to check.
45125 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
45126 * @example
45127 *
45128 * _.isString('abc');
45129 * // => true
45130 *
45131 * _.isString(1);
45132 * // => false
45133 */
45134function isString(value) {
45135 return typeof value == 'string' ||
45136 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
45137}
45138
45139module.exports = isString;
45140
45141
45142/***/ }),
45143
45144/***/ "./node_modules/lodash/isSymbol.js":
45145/*!*****************************************!*\
45146 !*** ./node_modules/lodash/isSymbol.js ***!
45147 \*****************************************/
45148/*! no static exports found */
45149/***/ (function(module, exports, __webpack_require__) {
45150
45151var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
45152 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
45153
45154/** `Object#toString` result references. */
45155var symbolTag = '[object Symbol]';
45156
45157/**
45158 * Checks if `value` is classified as a `Symbol` primitive or object.
45159 *
45160 * @static
45161 * @memberOf _
45162 * @since 4.0.0
45163 * @category Lang
45164 * @param {*} value The value to check.
45165 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
45166 * @example
45167 *
45168 * _.isSymbol(Symbol.iterator);
45169 * // => true
45170 *
45171 * _.isSymbol('abc');
45172 * // => false
45173 */
45174function isSymbol(value) {
45175 return typeof value == 'symbol' ||
45176 (isObjectLike(value) && baseGetTag(value) == symbolTag);
45177}
45178
45179module.exports = isSymbol;
45180
45181
45182/***/ }),
45183
45184/***/ "./node_modules/lodash/isTypedArray.js":
45185/*!*********************************************!*\
45186 !*** ./node_modules/lodash/isTypedArray.js ***!
45187 \*********************************************/
45188/*! no static exports found */
45189/***/ (function(module, exports, __webpack_require__) {
45190
45191var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ "./node_modules/lodash/_baseIsTypedArray.js"),
45192 baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
45193 nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");
45194
45195/* Node.js helper references. */
45196var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
45197
45198/**
45199 * Checks if `value` is classified as a typed array.
45200 *
45201 * @static
45202 * @memberOf _
45203 * @since 3.0.0
45204 * @category Lang
45205 * @param {*} value The value to check.
45206 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
45207 * @example
45208 *
45209 * _.isTypedArray(new Uint8Array);
45210 * // => true
45211 *
45212 * _.isTypedArray([]);
45213 * // => false
45214 */
45215var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
45216
45217module.exports = isTypedArray;
45218
45219
45220/***/ }),
45221
45222/***/ "./node_modules/lodash/isUndefined.js":
45223/*!********************************************!*\
45224 !*** ./node_modules/lodash/isUndefined.js ***!
45225 \********************************************/
45226/*! no static exports found */
45227/***/ (function(module, exports) {
45228
45229/**
45230 * Checks if `value` is `undefined`.
45231 *
45232 * @static
45233 * @since 0.1.0
45234 * @memberOf _
45235 * @category Lang
45236 * @param {*} value The value to check.
45237 * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
45238 * @example
45239 *
45240 * _.isUndefined(void 0);
45241 * // => true
45242 *
45243 * _.isUndefined(null);
45244 * // => false
45245 */
45246function isUndefined(value) {
45247 return value === undefined;
45248}
45249
45250module.exports = isUndefined;
45251
45252
45253/***/ }),
45254
45255/***/ "./node_modules/lodash/keys.js":
45256/*!*************************************!*\
45257 !*** ./node_modules/lodash/keys.js ***!
45258 \*************************************/
45259/*! no static exports found */
45260/***/ (function(module, exports, __webpack_require__) {
45261
45262var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/lodash/_arrayLikeKeys.js"),
45263 baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
45264 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
45265
45266/**
45267 * Creates an array of the own enumerable property names of `object`.
45268 *
45269 * **Note:** Non-object values are coerced to objects. See the
45270 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
45271 * for more details.
45272 *
45273 * @static
45274 * @since 0.1.0
45275 * @memberOf _
45276 * @category Object
45277 * @param {Object} object The object to query.
45278 * @returns {Array} Returns the array of property names.
45279 * @example
45280 *
45281 * function Foo() {
45282 * this.a = 1;
45283 * this.b = 2;
45284 * }
45285 *
45286 * Foo.prototype.c = 3;
45287 *
45288 * _.keys(new Foo);
45289 * // => ['a', 'b'] (iteration order is not guaranteed)
45290 *
45291 * _.keys('hi');
45292 * // => ['0', '1']
45293 */
45294function keys(object) {
45295 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
45296}
45297
45298module.exports = keys;
45299
45300
45301/***/ }),
45302
45303/***/ "./node_modules/lodash/keysIn.js":
45304/*!***************************************!*\
45305 !*** ./node_modules/lodash/keysIn.js ***!
45306 \***************************************/
45307/*! no static exports found */
45308/***/ (function(module, exports, __webpack_require__) {
45309
45310var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/lodash/_arrayLikeKeys.js"),
45311 baseKeysIn = __webpack_require__(/*! ./_baseKeysIn */ "./node_modules/lodash/_baseKeysIn.js"),
45312 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
45313
45314/**
45315 * Creates an array of the own and inherited enumerable property names of `object`.
45316 *
45317 * **Note:** Non-object values are coerced to objects.
45318 *
45319 * @static
45320 * @memberOf _
45321 * @since 3.0.0
45322 * @category Object
45323 * @param {Object} object The object to query.
45324 * @returns {Array} Returns the array of property names.
45325 * @example
45326 *
45327 * function Foo() {
45328 * this.a = 1;
45329 * this.b = 2;
45330 * }
45331 *
45332 * Foo.prototype.c = 3;
45333 *
45334 * _.keysIn(new Foo);
45335 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
45336 */
45337function keysIn(object) {
45338 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
45339}
45340
45341module.exports = keysIn;
45342
45343
45344/***/ }),
45345
45346/***/ "./node_modules/lodash/last.js":
45347/*!*************************************!*\
45348 !*** ./node_modules/lodash/last.js ***!
45349 \*************************************/
45350/*! no static exports found */
45351/***/ (function(module, exports) {
45352
45353/**
45354 * Gets the last element of `array`.
45355 *
45356 * @static
45357 * @memberOf _
45358 * @since 0.1.0
45359 * @category Array
45360 * @param {Array} array The array to query.
45361 * @returns {*} Returns the last element of `array`.
45362 * @example
45363 *
45364 * _.last([1, 2, 3]);
45365 * // => 3
45366 */
45367function last(array) {
45368 var length = array == null ? 0 : array.length;
45369 return length ? array[length - 1] : undefined;
45370}
45371
45372module.exports = last;
45373
45374
45375/***/ }),
45376
45377/***/ "./node_modules/lodash/map.js":
45378/*!************************************!*\
45379 !*** ./node_modules/lodash/map.js ***!
45380 \************************************/
45381/*! no static exports found */
45382/***/ (function(module, exports, __webpack_require__) {
45383
45384var arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js"),
45385 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
45386 baseMap = __webpack_require__(/*! ./_baseMap */ "./node_modules/lodash/_baseMap.js"),
45387 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
45388
45389/**
45390 * Creates an array of values by running each element in `collection` thru
45391 * `iteratee`. The iteratee is invoked with three arguments:
45392 * (value, index|key, collection).
45393 *
45394 * Many lodash methods are guarded to work as iteratees for methods like
45395 * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
45396 *
45397 * The guarded methods are:
45398 * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
45399 * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
45400 * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
45401 * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
45402 *
45403 * @static
45404 * @memberOf _
45405 * @since 0.1.0
45406 * @category Collection
45407 * @param {Array|Object} collection The collection to iterate over.
45408 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
45409 * @returns {Array} Returns the new mapped array.
45410 * @example
45411 *
45412 * function square(n) {
45413 * return n * n;
45414 * }
45415 *
45416 * _.map([4, 8], square);
45417 * // => [16, 64]
45418 *
45419 * _.map({ 'a': 4, 'b': 8 }, square);
45420 * // => [16, 64] (iteration order is not guaranteed)
45421 *
45422 * var users = [
45423 * { 'user': 'barney' },
45424 * { 'user': 'fred' }
45425 * ];
45426 *
45427 * // The `_.property` iteratee shorthand.
45428 * _.map(users, 'user');
45429 * // => ['barney', 'fred']
45430 */
45431function map(collection, iteratee) {
45432 var func = isArray(collection) ? arrayMap : baseMap;
45433 return func(collection, baseIteratee(iteratee, 3));
45434}
45435
45436module.exports = map;
45437
45438
45439/***/ }),
45440
45441/***/ "./node_modules/lodash/mapValues.js":
45442/*!******************************************!*\
45443 !*** ./node_modules/lodash/mapValues.js ***!
45444 \******************************************/
45445/*! no static exports found */
45446/***/ (function(module, exports, __webpack_require__) {
45447
45448var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
45449 baseForOwn = __webpack_require__(/*! ./_baseForOwn */ "./node_modules/lodash/_baseForOwn.js"),
45450 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js");
45451
45452/**
45453 * Creates an object with the same keys as `object` and values generated
45454 * by running each own enumerable string keyed property of `object` thru
45455 * `iteratee`. The iteratee is invoked with three arguments:
45456 * (value, key, object).
45457 *
45458 * @static
45459 * @memberOf _
45460 * @since 2.4.0
45461 * @category Object
45462 * @param {Object} object The object to iterate over.
45463 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
45464 * @returns {Object} Returns the new mapped object.
45465 * @see _.mapKeys
45466 * @example
45467 *
45468 * var users = {
45469 * 'fred': { 'user': 'fred', 'age': 40 },
45470 * 'pebbles': { 'user': 'pebbles', 'age': 1 }
45471 * };
45472 *
45473 * _.mapValues(users, function(o) { return o.age; });
45474 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
45475 *
45476 * // The `_.property` iteratee shorthand.
45477 * _.mapValues(users, 'age');
45478 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
45479 */
45480function mapValues(object, iteratee) {
45481 var result = {};
45482 iteratee = baseIteratee(iteratee, 3);
45483
45484 baseForOwn(object, function(value, key, object) {
45485 baseAssignValue(result, key, iteratee(value, key, object));
45486 });
45487 return result;
45488}
45489
45490module.exports = mapValues;
45491
45492
45493/***/ }),
45494
45495/***/ "./node_modules/lodash/max.js":
45496/*!************************************!*\
45497 !*** ./node_modules/lodash/max.js ***!
45498 \************************************/
45499/*! no static exports found */
45500/***/ (function(module, exports, __webpack_require__) {
45501
45502var baseExtremum = __webpack_require__(/*! ./_baseExtremum */ "./node_modules/lodash/_baseExtremum.js"),
45503 baseGt = __webpack_require__(/*! ./_baseGt */ "./node_modules/lodash/_baseGt.js"),
45504 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
45505
45506/**
45507 * Computes the maximum value of `array`. If `array` is empty or falsey,
45508 * `undefined` is returned.
45509 *
45510 * @static
45511 * @since 0.1.0
45512 * @memberOf _
45513 * @category Math
45514 * @param {Array} array The array to iterate over.
45515 * @returns {*} Returns the maximum value.
45516 * @example
45517 *
45518 * _.max([4, 2, 8, 6]);
45519 * // => 8
45520 *
45521 * _.max([]);
45522 * // => undefined
45523 */
45524function max(array) {
45525 return (array && array.length)
45526 ? baseExtremum(array, identity, baseGt)
45527 : undefined;
45528}
45529
45530module.exports = max;
45531
45532
45533/***/ }),
45534
45535/***/ "./node_modules/lodash/memoize.js":
45536/*!****************************************!*\
45537 !*** ./node_modules/lodash/memoize.js ***!
45538 \****************************************/
45539/*! no static exports found */
45540/***/ (function(module, exports, __webpack_require__) {
45541
45542var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js");
45543
45544/** Error message constants. */
45545var FUNC_ERROR_TEXT = 'Expected a function';
45546
45547/**
45548 * Creates a function that memoizes the result of `func`. If `resolver` is
45549 * provided, it determines the cache key for storing the result based on the
45550 * arguments provided to the memoized function. By default, the first argument
45551 * provided to the memoized function is used as the map cache key. The `func`
45552 * is invoked with the `this` binding of the memoized function.
45553 *
45554 * **Note:** The cache is exposed as the `cache` property on the memoized
45555 * function. Its creation may be customized by replacing the `_.memoize.Cache`
45556 * constructor with one whose instances implement the
45557 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
45558 * method interface of `clear`, `delete`, `get`, `has`, and `set`.
45559 *
45560 * @static
45561 * @memberOf _
45562 * @since 0.1.0
45563 * @category Function
45564 * @param {Function} func The function to have its output memoized.
45565 * @param {Function} [resolver] The function to resolve the cache key.
45566 * @returns {Function} Returns the new memoized function.
45567 * @example
45568 *
45569 * var object = { 'a': 1, 'b': 2 };
45570 * var other = { 'c': 3, 'd': 4 };
45571 *
45572 * var values = _.memoize(_.values);
45573 * values(object);
45574 * // => [1, 2]
45575 *
45576 * values(other);
45577 * // => [3, 4]
45578 *
45579 * object.a = 2;
45580 * values(object);
45581 * // => [1, 2]
45582 *
45583 * // Modify the result cache.
45584 * values.cache.set(object, ['a', 'b']);
45585 * values(object);
45586 * // => ['a', 'b']
45587 *
45588 * // Replace `_.memoize.Cache`.
45589 * _.memoize.Cache = WeakMap;
45590 */
45591function memoize(func, resolver) {
45592 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
45593 throw new TypeError(FUNC_ERROR_TEXT);
45594 }
45595 var memoized = function() {
45596 var args = arguments,
45597 key = resolver ? resolver.apply(this, args) : args[0],
45598 cache = memoized.cache;
45599
45600 if (cache.has(key)) {
45601 return cache.get(key);
45602 }
45603 var result = func.apply(this, args);
45604 memoized.cache = cache.set(key, result) || cache;
45605 return result;
45606 };
45607 memoized.cache = new (memoize.Cache || MapCache);
45608 return memoized;
45609}
45610
45611// Expose `MapCache`.
45612memoize.Cache = MapCache;
45613
45614module.exports = memoize;
45615
45616
45617/***/ }),
45618
45619/***/ "./node_modules/lodash/merge.js":
45620/*!**************************************!*\
45621 !*** ./node_modules/lodash/merge.js ***!
45622 \**************************************/
45623/*! no static exports found */
45624/***/ (function(module, exports, __webpack_require__) {
45625
45626var baseMerge = __webpack_require__(/*! ./_baseMerge */ "./node_modules/lodash/_baseMerge.js"),
45627 createAssigner = __webpack_require__(/*! ./_createAssigner */ "./node_modules/lodash/_createAssigner.js");
45628
45629/**
45630 * This method is like `_.assign` except that it recursively merges own and
45631 * inherited enumerable string keyed properties of source objects into the
45632 * destination object. Source properties that resolve to `undefined` are
45633 * skipped if a destination value exists. Array and plain object properties
45634 * are merged recursively. Other objects and value types are overridden by
45635 * assignment. Source objects are applied from left to right. Subsequent
45636 * sources overwrite property assignments of previous sources.
45637 *
45638 * **Note:** This method mutates `object`.
45639 *
45640 * @static
45641 * @memberOf _
45642 * @since 0.5.0
45643 * @category Object
45644 * @param {Object} object The destination object.
45645 * @param {...Object} [sources] The source objects.
45646 * @returns {Object} Returns `object`.
45647 * @example
45648 *
45649 * var object = {
45650 * 'a': [{ 'b': 2 }, { 'd': 4 }]
45651 * };
45652 *
45653 * var other = {
45654 * 'a': [{ 'c': 3 }, { 'e': 5 }]
45655 * };
45656 *
45657 * _.merge(object, other);
45658 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
45659 */
45660var merge = createAssigner(function(object, source, srcIndex) {
45661 baseMerge(object, source, srcIndex);
45662});
45663
45664module.exports = merge;
45665
45666
45667/***/ }),
45668
45669/***/ "./node_modules/lodash/min.js":
45670/*!************************************!*\
45671 !*** ./node_modules/lodash/min.js ***!
45672 \************************************/
45673/*! no static exports found */
45674/***/ (function(module, exports, __webpack_require__) {
45675
45676var baseExtremum = __webpack_require__(/*! ./_baseExtremum */ "./node_modules/lodash/_baseExtremum.js"),
45677 baseLt = __webpack_require__(/*! ./_baseLt */ "./node_modules/lodash/_baseLt.js"),
45678 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
45679
45680/**
45681 * Computes the minimum value of `array`. If `array` is empty or falsey,
45682 * `undefined` is returned.
45683 *
45684 * @static
45685 * @since 0.1.0
45686 * @memberOf _
45687 * @category Math
45688 * @param {Array} array The array to iterate over.
45689 * @returns {*} Returns the minimum value.
45690 * @example
45691 *
45692 * _.min([4, 2, 8, 6]);
45693 * // => 2
45694 *
45695 * _.min([]);
45696 * // => undefined
45697 */
45698function min(array) {
45699 return (array && array.length)
45700 ? baseExtremum(array, identity, baseLt)
45701 : undefined;
45702}
45703
45704module.exports = min;
45705
45706
45707/***/ }),
45708
45709/***/ "./node_modules/lodash/minBy.js":
45710/*!**************************************!*\
45711 !*** ./node_modules/lodash/minBy.js ***!
45712 \**************************************/
45713/*! no static exports found */
45714/***/ (function(module, exports, __webpack_require__) {
45715
45716var baseExtremum = __webpack_require__(/*! ./_baseExtremum */ "./node_modules/lodash/_baseExtremum.js"),
45717 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
45718 baseLt = __webpack_require__(/*! ./_baseLt */ "./node_modules/lodash/_baseLt.js");
45719
45720/**
45721 * This method is like `_.min` except that it accepts `iteratee` which is
45722 * invoked for each element in `array` to generate the criterion by which
45723 * the value is ranked. The iteratee is invoked with one argument: (value).
45724 *
45725 * @static
45726 * @memberOf _
45727 * @since 4.0.0
45728 * @category Math
45729 * @param {Array} array The array to iterate over.
45730 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
45731 * @returns {*} Returns the minimum value.
45732 * @example
45733 *
45734 * var objects = [{ 'n': 1 }, { 'n': 2 }];
45735 *
45736 * _.minBy(objects, function(o) { return o.n; });
45737 * // => { 'n': 1 }
45738 *
45739 * // The `_.property` iteratee shorthand.
45740 * _.minBy(objects, 'n');
45741 * // => { 'n': 1 }
45742 */
45743function minBy(array, iteratee) {
45744 return (array && array.length)
45745 ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)
45746 : undefined;
45747}
45748
45749module.exports = minBy;
45750
45751
45752/***/ }),
45753
45754/***/ "./node_modules/lodash/noop.js":
45755/*!*************************************!*\
45756 !*** ./node_modules/lodash/noop.js ***!
45757 \*************************************/
45758/*! no static exports found */
45759/***/ (function(module, exports) {
45760
45761/**
45762 * This method returns `undefined`.
45763 *
45764 * @static
45765 * @memberOf _
45766 * @since 2.3.0
45767 * @category Util
45768 * @example
45769 *
45770 * _.times(2, _.noop);
45771 * // => [undefined, undefined]
45772 */
45773function noop() {
45774 // No operation performed.
45775}
45776
45777module.exports = noop;
45778
45779
45780/***/ }),
45781
45782/***/ "./node_modules/lodash/now.js":
45783/*!************************************!*\
45784 !*** ./node_modules/lodash/now.js ***!
45785 \************************************/
45786/*! no static exports found */
45787/***/ (function(module, exports, __webpack_require__) {
45788
45789var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
45790
45791/**
45792 * Gets the timestamp of the number of milliseconds that have elapsed since
45793 * the Unix epoch (1 January 1970 00:00:00 UTC).
45794 *
45795 * @static
45796 * @memberOf _
45797 * @since 2.4.0
45798 * @category Date
45799 * @returns {number} Returns the timestamp.
45800 * @example
45801 *
45802 * _.defer(function(stamp) {
45803 * console.log(_.now() - stamp);
45804 * }, _.now());
45805 * // => Logs the number of milliseconds it took for the deferred invocation.
45806 */
45807var now = function() {
45808 return root.Date.now();
45809};
45810
45811module.exports = now;
45812
45813
45814/***/ }),
45815
45816/***/ "./node_modules/lodash/pick.js":
45817/*!*************************************!*\
45818 !*** ./node_modules/lodash/pick.js ***!
45819 \*************************************/
45820/*! no static exports found */
45821/***/ (function(module, exports, __webpack_require__) {
45822
45823var basePick = __webpack_require__(/*! ./_basePick */ "./node_modules/lodash/_basePick.js"),
45824 flatRest = __webpack_require__(/*! ./_flatRest */ "./node_modules/lodash/_flatRest.js");
45825
45826/**
45827 * Creates an object composed of the picked `object` properties.
45828 *
45829 * @static
45830 * @since 0.1.0
45831 * @memberOf _
45832 * @category Object
45833 * @param {Object} object The source object.
45834 * @param {...(string|string[])} [paths] The property paths to pick.
45835 * @returns {Object} Returns the new object.
45836 * @example
45837 *
45838 * var object = { 'a': 1, 'b': '2', 'c': 3 };
45839 *
45840 * _.pick(object, ['a', 'c']);
45841 * // => { 'a': 1, 'c': 3 }
45842 */
45843var pick = flatRest(function(object, paths) {
45844 return object == null ? {} : basePick(object, paths);
45845});
45846
45847module.exports = pick;
45848
45849
45850/***/ }),
45851
45852/***/ "./node_modules/lodash/property.js":
45853/*!*****************************************!*\
45854 !*** ./node_modules/lodash/property.js ***!
45855 \*****************************************/
45856/*! no static exports found */
45857/***/ (function(module, exports, __webpack_require__) {
45858
45859var baseProperty = __webpack_require__(/*! ./_baseProperty */ "./node_modules/lodash/_baseProperty.js"),
45860 basePropertyDeep = __webpack_require__(/*! ./_basePropertyDeep */ "./node_modules/lodash/_basePropertyDeep.js"),
45861 isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/lodash/_isKey.js"),
45862 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
45863
45864/**
45865 * Creates a function that returns the value at `path` of a given object.
45866 *
45867 * @static
45868 * @memberOf _
45869 * @since 2.4.0
45870 * @category Util
45871 * @param {Array|string} path The path of the property to get.
45872 * @returns {Function} Returns the new accessor function.
45873 * @example
45874 *
45875 * var objects = [
45876 * { 'a': { 'b': 2 } },
45877 * { 'a': { 'b': 1 } }
45878 * ];
45879 *
45880 * _.map(objects, _.property('a.b'));
45881 * // => [2, 1]
45882 *
45883 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
45884 * // => [1, 2]
45885 */
45886function property(path) {
45887 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
45888}
45889
45890module.exports = property;
45891
45892
45893/***/ }),
45894
45895/***/ "./node_modules/lodash/range.js":
45896/*!**************************************!*\
45897 !*** ./node_modules/lodash/range.js ***!
45898 \**************************************/
45899/*! no static exports found */
45900/***/ (function(module, exports, __webpack_require__) {
45901
45902var createRange = __webpack_require__(/*! ./_createRange */ "./node_modules/lodash/_createRange.js");
45903
45904/**
45905 * Creates an array of numbers (positive and/or negative) progressing from
45906 * `start` up to, but not including, `end`. A step of `-1` is used if a negative
45907 * `start` is specified without an `end` or `step`. If `end` is not specified,
45908 * it's set to `start` with `start` then set to `0`.
45909 *
45910 * **Note:** JavaScript follows the IEEE-754 standard for resolving
45911 * floating-point values which can produce unexpected results.
45912 *
45913 * @static
45914 * @since 0.1.0
45915 * @memberOf _
45916 * @category Util
45917 * @param {number} [start=0] The start of the range.
45918 * @param {number} end The end of the range.
45919 * @param {number} [step=1] The value to increment or decrement by.
45920 * @returns {Array} Returns the range of numbers.
45921 * @see _.inRange, _.rangeRight
45922 * @example
45923 *
45924 * _.range(4);
45925 * // => [0, 1, 2, 3]
45926 *
45927 * _.range(-4);
45928 * // => [0, -1, -2, -3]
45929 *
45930 * _.range(1, 5);
45931 * // => [1, 2, 3, 4]
45932 *
45933 * _.range(0, 20, 5);
45934 * // => [0, 5, 10, 15]
45935 *
45936 * _.range(0, -4, -1);
45937 * // => [0, -1, -2, -3]
45938 *
45939 * _.range(1, 4, 0);
45940 * // => [1, 1, 1]
45941 *
45942 * _.range(0);
45943 * // => []
45944 */
45945var range = createRange();
45946
45947module.exports = range;
45948
45949
45950/***/ }),
45951
45952/***/ "./node_modules/lodash/reduce.js":
45953/*!***************************************!*\
45954 !*** ./node_modules/lodash/reduce.js ***!
45955 \***************************************/
45956/*! no static exports found */
45957/***/ (function(module, exports, __webpack_require__) {
45958
45959var arrayReduce = __webpack_require__(/*! ./_arrayReduce */ "./node_modules/lodash/_arrayReduce.js"),
45960 baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),
45961 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
45962 baseReduce = __webpack_require__(/*! ./_baseReduce */ "./node_modules/lodash/_baseReduce.js"),
45963 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
45964
45965/**
45966 * Reduces `collection` to a value which is the accumulated result of running
45967 * each element in `collection` thru `iteratee`, where each successive
45968 * invocation is supplied the return value of the previous. If `accumulator`
45969 * is not given, the first element of `collection` is used as the initial
45970 * value. The iteratee is invoked with four arguments:
45971 * (accumulator, value, index|key, collection).
45972 *
45973 * Many lodash methods are guarded to work as iteratees for methods like
45974 * `_.reduce`, `_.reduceRight`, and `_.transform`.
45975 *
45976 * The guarded methods are:
45977 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,
45978 * and `sortBy`
45979 *
45980 * @static
45981 * @memberOf _
45982 * @since 0.1.0
45983 * @category Collection
45984 * @param {Array|Object} collection The collection to iterate over.
45985 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
45986 * @param {*} [accumulator] The initial value.
45987 * @returns {*} Returns the accumulated value.
45988 * @see _.reduceRight
45989 * @example
45990 *
45991 * _.reduce([1, 2], function(sum, n) {
45992 * return sum + n;
45993 * }, 0);
45994 * // => 3
45995 *
45996 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
45997 * (result[value] || (result[value] = [])).push(key);
45998 * return result;
45999 * }, {});
46000 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
46001 */
46002function reduce(collection, iteratee, accumulator) {
46003 var func = isArray(collection) ? arrayReduce : baseReduce,
46004 initAccum = arguments.length < 3;
46005
46006 return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);
46007}
46008
46009module.exports = reduce;
46010
46011
46012/***/ }),
46013
46014/***/ "./node_modules/lodash/size.js":
46015/*!*************************************!*\
46016 !*** ./node_modules/lodash/size.js ***!
46017 \*************************************/
46018/*! no static exports found */
46019/***/ (function(module, exports, __webpack_require__) {
46020
46021var baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
46022 getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
46023 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
46024 isString = __webpack_require__(/*! ./isString */ "./node_modules/lodash/isString.js"),
46025 stringSize = __webpack_require__(/*! ./_stringSize */ "./node_modules/lodash/_stringSize.js");
46026
46027/** `Object#toString` result references. */
46028var mapTag = '[object Map]',
46029 setTag = '[object Set]';
46030
46031/**
46032 * Gets the size of `collection` by returning its length for array-like
46033 * values or the number of own enumerable string keyed properties for objects.
46034 *
46035 * @static
46036 * @memberOf _
46037 * @since 0.1.0
46038 * @category Collection
46039 * @param {Array|Object|string} collection The collection to inspect.
46040 * @returns {number} Returns the collection size.
46041 * @example
46042 *
46043 * _.size([1, 2, 3]);
46044 * // => 3
46045 *
46046 * _.size({ 'a': 1, 'b': 2 });
46047 * // => 2
46048 *
46049 * _.size('pebbles');
46050 * // => 7
46051 */
46052function size(collection) {
46053 if (collection == null) {
46054 return 0;
46055 }
46056 if (isArrayLike(collection)) {
46057 return isString(collection) ? stringSize(collection) : collection.length;
46058 }
46059 var tag = getTag(collection);
46060 if (tag == mapTag || tag == setTag) {
46061 return collection.size;
46062 }
46063 return baseKeys(collection).length;
46064}
46065
46066module.exports = size;
46067
46068
46069/***/ }),
46070
46071/***/ "./node_modules/lodash/sortBy.js":
46072/*!***************************************!*\
46073 !*** ./node_modules/lodash/sortBy.js ***!
46074 \***************************************/
46075/*! no static exports found */
46076/***/ (function(module, exports, __webpack_require__) {
46077
46078var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ "./node_modules/lodash/_baseFlatten.js"),
46079 baseOrderBy = __webpack_require__(/*! ./_baseOrderBy */ "./node_modules/lodash/_baseOrderBy.js"),
46080 baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
46081 isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js");
46082
46083/**
46084 * Creates an array of elements, sorted in ascending order by the results of
46085 * running each element in a collection thru each iteratee. This method
46086 * performs a stable sort, that is, it preserves the original sort order of
46087 * equal elements. The iteratees are invoked with one argument: (value).
46088 *
46089 * @static
46090 * @memberOf _
46091 * @since 0.1.0
46092 * @category Collection
46093 * @param {Array|Object} collection The collection to iterate over.
46094 * @param {...(Function|Function[])} [iteratees=[_.identity]]
46095 * The iteratees to sort by.
46096 * @returns {Array} Returns the new sorted array.
46097 * @example
46098 *
46099 * var users = [
46100 * { 'user': 'fred', 'age': 48 },
46101 * { 'user': 'barney', 'age': 36 },
46102 * { 'user': 'fred', 'age': 40 },
46103 * { 'user': 'barney', 'age': 34 }
46104 * ];
46105 *
46106 * _.sortBy(users, [function(o) { return o.user; }]);
46107 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
46108 *
46109 * _.sortBy(users, ['user', 'age']);
46110 * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
46111 */
46112var sortBy = baseRest(function(collection, iteratees) {
46113 if (collection == null) {
46114 return [];
46115 }
46116 var length = iteratees.length;
46117 if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
46118 iteratees = [];
46119 } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
46120 iteratees = [iteratees[0]];
46121 }
46122 return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
46123});
46124
46125module.exports = sortBy;
46126
46127
46128/***/ }),
46129
46130/***/ "./node_modules/lodash/stubArray.js":
46131/*!******************************************!*\
46132 !*** ./node_modules/lodash/stubArray.js ***!
46133 \******************************************/
46134/*! no static exports found */
46135/***/ (function(module, exports) {
46136
46137/**
46138 * This method returns a new empty array.
46139 *
46140 * @static
46141 * @memberOf _
46142 * @since 4.13.0
46143 * @category Util
46144 * @returns {Array} Returns the new empty array.
46145 * @example
46146 *
46147 * var arrays = _.times(2, _.stubArray);
46148 *
46149 * console.log(arrays);
46150 * // => [[], []]
46151 *
46152 * console.log(arrays[0] === arrays[1]);
46153 * // => false
46154 */
46155function stubArray() {
46156 return [];
46157}
46158
46159module.exports = stubArray;
46160
46161
46162/***/ }),
46163
46164/***/ "./node_modules/lodash/stubFalse.js":
46165/*!******************************************!*\
46166 !*** ./node_modules/lodash/stubFalse.js ***!
46167 \******************************************/
46168/*! no static exports found */
46169/***/ (function(module, exports) {
46170
46171/**
46172 * This method returns `false`.
46173 *
46174 * @static
46175 * @memberOf _
46176 * @since 4.13.0
46177 * @category Util
46178 * @returns {boolean} Returns `false`.
46179 * @example
46180 *
46181 * _.times(2, _.stubFalse);
46182 * // => [false, false]
46183 */
46184function stubFalse() {
46185 return false;
46186}
46187
46188module.exports = stubFalse;
46189
46190
46191/***/ }),
46192
46193/***/ "./node_modules/lodash/toFinite.js":
46194/*!*****************************************!*\
46195 !*** ./node_modules/lodash/toFinite.js ***!
46196 \*****************************************/
46197/*! no static exports found */
46198/***/ (function(module, exports, __webpack_require__) {
46199
46200var toNumber = __webpack_require__(/*! ./toNumber */ "./node_modules/lodash/toNumber.js");
46201
46202/** Used as references for various `Number` constants. */
46203var INFINITY = 1 / 0,
46204 MAX_INTEGER = 1.7976931348623157e+308;
46205
46206/**
46207 * Converts `value` to a finite number.
46208 *
46209 * @static
46210 * @memberOf _
46211 * @since 4.12.0
46212 * @category Lang
46213 * @param {*} value The value to convert.
46214 * @returns {number} Returns the converted number.
46215 * @example
46216 *
46217 * _.toFinite(3.2);
46218 * // => 3.2
46219 *
46220 * _.toFinite(Number.MIN_VALUE);
46221 * // => 5e-324
46222 *
46223 * _.toFinite(Infinity);
46224 * // => 1.7976931348623157e+308
46225 *
46226 * _.toFinite('3.2');
46227 * // => 3.2
46228 */
46229function toFinite(value) {
46230 if (!value) {
46231 return value === 0 ? value : 0;
46232 }
46233 value = toNumber(value);
46234 if (value === INFINITY || value === -INFINITY) {
46235 var sign = (value < 0 ? -1 : 1);
46236 return sign * MAX_INTEGER;
46237 }
46238 return value === value ? value : 0;
46239}
46240
46241module.exports = toFinite;
46242
46243
46244/***/ }),
46245
46246/***/ "./node_modules/lodash/toInteger.js":
46247/*!******************************************!*\
46248 !*** ./node_modules/lodash/toInteger.js ***!
46249 \******************************************/
46250/*! no static exports found */
46251/***/ (function(module, exports, __webpack_require__) {
46252
46253var toFinite = __webpack_require__(/*! ./toFinite */ "./node_modules/lodash/toFinite.js");
46254
46255/**
46256 * Converts `value` to an integer.
46257 *
46258 * **Note:** This method is loosely based on
46259 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
46260 *
46261 * @static
46262 * @memberOf _
46263 * @since 4.0.0
46264 * @category Lang
46265 * @param {*} value The value to convert.
46266 * @returns {number} Returns the converted integer.
46267 * @example
46268 *
46269 * _.toInteger(3.2);
46270 * // => 3
46271 *
46272 * _.toInteger(Number.MIN_VALUE);
46273 * // => 0
46274 *
46275 * _.toInteger(Infinity);
46276 * // => 1.7976931348623157e+308
46277 *
46278 * _.toInteger('3.2');
46279 * // => 3
46280 */
46281function toInteger(value) {
46282 var result = toFinite(value),
46283 remainder = result % 1;
46284
46285 return result === result ? (remainder ? result - remainder : result) : 0;
46286}
46287
46288module.exports = toInteger;
46289
46290
46291/***/ }),
46292
46293/***/ "./node_modules/lodash/toNumber.js":
46294/*!*****************************************!*\
46295 !*** ./node_modules/lodash/toNumber.js ***!
46296 \*****************************************/
46297/*! no static exports found */
46298/***/ (function(module, exports, __webpack_require__) {
46299
46300var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
46301 isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
46302
46303/** Used as references for various `Number` constants. */
46304var NAN = 0 / 0;
46305
46306/** Used to match leading and trailing whitespace. */
46307var reTrim = /^\s+|\s+$/g;
46308
46309/** Used to detect bad signed hexadecimal string values. */
46310var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
46311
46312/** Used to detect binary string values. */
46313var reIsBinary = /^0b[01]+$/i;
46314
46315/** Used to detect octal string values. */
46316var reIsOctal = /^0o[0-7]+$/i;
46317
46318/** Built-in method references without a dependency on `root`. */
46319var freeParseInt = parseInt;
46320
46321/**
46322 * Converts `value` to a number.
46323 *
46324 * @static
46325 * @memberOf _
46326 * @since 4.0.0
46327 * @category Lang
46328 * @param {*} value The value to process.
46329 * @returns {number} Returns the number.
46330 * @example
46331 *
46332 * _.toNumber(3.2);
46333 * // => 3.2
46334 *
46335 * _.toNumber(Number.MIN_VALUE);
46336 * // => 5e-324
46337 *
46338 * _.toNumber(Infinity);
46339 * // => Infinity
46340 *
46341 * _.toNumber('3.2');
46342 * // => 3.2
46343 */
46344function toNumber(value) {
46345 if (typeof value == 'number') {
46346 return value;
46347 }
46348 if (isSymbol(value)) {
46349 return NAN;
46350 }
46351 if (isObject(value)) {
46352 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
46353 value = isObject(other) ? (other + '') : other;
46354 }
46355 if (typeof value != 'string') {
46356 return value === 0 ? value : +value;
46357 }
46358 value = value.replace(reTrim, '');
46359 var isBinary = reIsBinary.test(value);
46360 return (isBinary || reIsOctal.test(value))
46361 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
46362 : (reIsBadHex.test(value) ? NAN : +value);
46363}
46364
46365module.exports = toNumber;
46366
46367
46368/***/ }),
46369
46370/***/ "./node_modules/lodash/toPlainObject.js":
46371/*!**********************************************!*\
46372 !*** ./node_modules/lodash/toPlainObject.js ***!
46373 \**********************************************/
46374/*! no static exports found */
46375/***/ (function(module, exports, __webpack_require__) {
46376
46377var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
46378 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
46379
46380/**
46381 * Converts `value` to a plain object flattening inherited enumerable string
46382 * keyed properties of `value` to own properties of the plain object.
46383 *
46384 * @static
46385 * @memberOf _
46386 * @since 3.0.0
46387 * @category Lang
46388 * @param {*} value The value to convert.
46389 * @returns {Object} Returns the converted plain object.
46390 * @example
46391 *
46392 * function Foo() {
46393 * this.b = 2;
46394 * }
46395 *
46396 * Foo.prototype.c = 3;
46397 *
46398 * _.assign({ 'a': 1 }, new Foo);
46399 * // => { 'a': 1, 'b': 2 }
46400 *
46401 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
46402 * // => { 'a': 1, 'b': 2, 'c': 3 }
46403 */
46404function toPlainObject(value) {
46405 return copyObject(value, keysIn(value));
46406}
46407
46408module.exports = toPlainObject;
46409
46410
46411/***/ }),
46412
46413/***/ "./node_modules/lodash/toString.js":
46414/*!*****************************************!*\
46415 !*** ./node_modules/lodash/toString.js ***!
46416 \*****************************************/
46417/*! no static exports found */
46418/***/ (function(module, exports, __webpack_require__) {
46419
46420var baseToString = __webpack_require__(/*! ./_baseToString */ "./node_modules/lodash/_baseToString.js");
46421
46422/**
46423 * Converts `value` to a string. An empty string is returned for `null`
46424 * and `undefined` values. The sign of `-0` is preserved.
46425 *
46426 * @static
46427 * @memberOf _
46428 * @since 4.0.0
46429 * @category Lang
46430 * @param {*} value The value to convert.
46431 * @returns {string} Returns the converted string.
46432 * @example
46433 *
46434 * _.toString(null);
46435 * // => ''
46436 *
46437 * _.toString(-0);
46438 * // => '-0'
46439 *
46440 * _.toString([1, 2, 3]);
46441 * // => '1,2,3'
46442 */
46443function toString(value) {
46444 return value == null ? '' : baseToString(value);
46445}
46446
46447module.exports = toString;
46448
46449
46450/***/ }),
46451
46452/***/ "./node_modules/lodash/transform.js":
46453/*!******************************************!*\
46454 !*** ./node_modules/lodash/transform.js ***!
46455 \******************************************/
46456/*! no static exports found */
46457/***/ (function(module, exports, __webpack_require__) {
46458
46459var arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),
46460 baseCreate = __webpack_require__(/*! ./_baseCreate */ "./node_modules/lodash/_baseCreate.js"),
46461 baseForOwn = __webpack_require__(/*! ./_baseForOwn */ "./node_modules/lodash/_baseForOwn.js"),
46462 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
46463 getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
46464 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
46465 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
46466 isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
46467 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
46468 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
46469
46470/**
46471 * An alternative to `_.reduce`; this method transforms `object` to a new
46472 * `accumulator` object which is the result of running each of its own
46473 * enumerable string keyed properties thru `iteratee`, with each invocation
46474 * potentially mutating the `accumulator` object. If `accumulator` is not
46475 * provided, a new object with the same `[[Prototype]]` will be used. The
46476 * iteratee is invoked with four arguments: (accumulator, value, key, object).
46477 * Iteratee functions may exit iteration early by explicitly returning `false`.
46478 *
46479 * @static
46480 * @memberOf _
46481 * @since 1.3.0
46482 * @category Object
46483 * @param {Object} object The object to iterate over.
46484 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
46485 * @param {*} [accumulator] The custom accumulator value.
46486 * @returns {*} Returns the accumulated value.
46487 * @example
46488 *
46489 * _.transform([2, 3, 4], function(result, n) {
46490 * result.push(n *= n);
46491 * return n % 2 == 0;
46492 * }, []);
46493 * // => [4, 9]
46494 *
46495 * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
46496 * (result[value] || (result[value] = [])).push(key);
46497 * }, {});
46498 * // => { '1': ['a', 'c'], '2': ['b'] }
46499 */
46500function transform(object, iteratee, accumulator) {
46501 var isArr = isArray(object),
46502 isArrLike = isArr || isBuffer(object) || isTypedArray(object);
46503
46504 iteratee = baseIteratee(iteratee, 4);
46505 if (accumulator == null) {
46506 var Ctor = object && object.constructor;
46507 if (isArrLike) {
46508 accumulator = isArr ? new Ctor : [];
46509 }
46510 else if (isObject(object)) {
46511 accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
46512 }
46513 else {
46514 accumulator = {};
46515 }
46516 }
46517 (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {
46518 return iteratee(accumulator, value, index, object);
46519 });
46520 return accumulator;
46521}
46522
46523module.exports = transform;
46524
46525
46526/***/ }),
46527
46528/***/ "./node_modules/lodash/union.js":
46529/*!**************************************!*\
46530 !*** ./node_modules/lodash/union.js ***!
46531 \**************************************/
46532/*! no static exports found */
46533/***/ (function(module, exports, __webpack_require__) {
46534
46535var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ "./node_modules/lodash/_baseFlatten.js"),
46536 baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
46537 baseUniq = __webpack_require__(/*! ./_baseUniq */ "./node_modules/lodash/_baseUniq.js"),
46538 isArrayLikeObject = __webpack_require__(/*! ./isArrayLikeObject */ "./node_modules/lodash/isArrayLikeObject.js");
46539
46540/**
46541 * Creates an array of unique values, in order, from all given arrays using
46542 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
46543 * for equality comparisons.
46544 *
46545 * @static
46546 * @memberOf _
46547 * @since 0.1.0
46548 * @category Array
46549 * @param {...Array} [arrays] The arrays to inspect.
46550 * @returns {Array} Returns the new array of combined values.
46551 * @example
46552 *
46553 * _.union([2], [1, 2]);
46554 * // => [2, 1]
46555 */
46556var union = baseRest(function(arrays) {
46557 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
46558});
46559
46560module.exports = union;
46561
46562
46563/***/ }),
46564
46565/***/ "./node_modules/lodash/uniqueId.js":
46566/*!*****************************************!*\
46567 !*** ./node_modules/lodash/uniqueId.js ***!
46568 \*****************************************/
46569/*! no static exports found */
46570/***/ (function(module, exports, __webpack_require__) {
46571
46572var toString = __webpack_require__(/*! ./toString */ "./node_modules/lodash/toString.js");
46573
46574/** Used to generate unique IDs. */
46575var idCounter = 0;
46576
46577/**
46578 * Generates a unique ID. If `prefix` is given, the ID is appended to it.
46579 *
46580 * @static
46581 * @since 0.1.0
46582 * @memberOf _
46583 * @category Util
46584 * @param {string} [prefix=''] The value to prefix the ID with.
46585 * @returns {string} Returns the unique ID.
46586 * @example
46587 *
46588 * _.uniqueId('contact_');
46589 * // => 'contact_104'
46590 *
46591 * _.uniqueId();
46592 * // => '105'
46593 */
46594function uniqueId(prefix) {
46595 var id = ++idCounter;
46596 return toString(prefix) + id;
46597}
46598
46599module.exports = uniqueId;
46600
46601
46602/***/ }),
46603
46604/***/ "./node_modules/lodash/values.js":
46605/*!***************************************!*\
46606 !*** ./node_modules/lodash/values.js ***!
46607 \***************************************/
46608/*! no static exports found */
46609/***/ (function(module, exports, __webpack_require__) {
46610
46611var baseValues = __webpack_require__(/*! ./_baseValues */ "./node_modules/lodash/_baseValues.js"),
46612 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
46613
46614/**
46615 * Creates an array of the own enumerable string keyed property values of `object`.
46616 *
46617 * **Note:** Non-object values are coerced to objects.
46618 *
46619 * @static
46620 * @since 0.1.0
46621 * @memberOf _
46622 * @category Object
46623 * @param {Object} object The object to query.
46624 * @returns {Array} Returns the array of property values.
46625 * @example
46626 *
46627 * function Foo() {
46628 * this.a = 1;
46629 * this.b = 2;
46630 * }
46631 *
46632 * Foo.prototype.c = 3;
46633 *
46634 * _.values(new Foo);
46635 * // => [1, 2] (iteration order is not guaranteed)
46636 *
46637 * _.values('hi');
46638 * // => ['h', 'i']
46639 */
46640function values(object) {
46641 return object == null ? [] : baseValues(object, keys(object));
46642}
46643
46644module.exports = values;
46645
46646
46647/***/ }),
46648
46649/***/ "./node_modules/lodash/zipObject.js":
46650/*!******************************************!*\
46651 !*** ./node_modules/lodash/zipObject.js ***!
46652 \******************************************/
46653/*! no static exports found */
46654/***/ (function(module, exports, __webpack_require__) {
46655
46656var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
46657 baseZipObject = __webpack_require__(/*! ./_baseZipObject */ "./node_modules/lodash/_baseZipObject.js");
46658
46659/**
46660 * This method is like `_.fromPairs` except that it accepts two arrays,
46661 * one of property identifiers and one of corresponding values.
46662 *
46663 * @static
46664 * @memberOf _
46665 * @since 0.4.0
46666 * @category Array
46667 * @param {Array} [props=[]] The property identifiers.
46668 * @param {Array} [values=[]] The property values.
46669 * @returns {Object} Returns the new object.
46670 * @example
46671 *
46672 * _.zipObject(['a', 'b'], [1, 2]);
46673 * // => { 'a': 1, 'b': 2 }
46674 */
46675function zipObject(props, values) {
46676 return baseZipObject(props || [], values || [], assignValue);
46677}
46678
46679module.exports = zipObject;
46680
46681
46682/***/ }),
46683
46684/***/ "./node_modules/moment-mini/locale sync recursive ^\\.\\/.*$":
46685/*!*******************************************************!*\
46686 !*** ./node_modules/moment-mini/locale sync ^\.\/.*$ ***!
46687 \*******************************************************/
46688/*! no static exports found */
46689/***/ (function(module, exports, __webpack_require__) {
46690
46691var map = {
46692 "./locale": "./node_modules/moment-mini/locale/locale.js",
46693 "./locale.js": "./node_modules/moment-mini/locale/locale.js"
46694};
46695
46696
46697function webpackContext(req) {
46698 var id = webpackContextResolve(req);
46699 return __webpack_require__(id);
46700}
46701function webpackContextResolve(req) {
46702 if(!__webpack_require__.o(map, req)) {
46703 var e = new Error("Cannot find module '" + req + "'");
46704 e.code = 'MODULE_NOT_FOUND';
46705 throw e;
46706 }
46707 return map[req];
46708}
46709webpackContext.keys = function webpackContextKeys() {
46710 return Object.keys(map);
46711};
46712webpackContext.resolve = webpackContextResolve;
46713module.exports = webpackContext;
46714webpackContext.id = "./node_modules/moment-mini/locale sync recursive ^\\.\\/.*$";
46715
46716/***/ }),
46717
46718/***/ "./node_modules/moment-mini/locale/locale.js":
46719/*!***************************************************!*\
46720 !*** ./node_modules/moment-mini/locale/locale.js ***!
46721 \***************************************************/
46722/*! no static exports found */
46723/***/ (function(module, exports) {
46724
46725
46726
46727/***/ }),
46728
46729/***/ "./node_modules/moment-mini/moment.min.js":
46730/*!************************************************!*\
46731 !*** ./node_modules/moment-mini/moment.min.js ***!
46732 \************************************************/
46733/*! no static exports found */
46734/***/ (function(module, exports, __webpack_require__) {
46735
46736/* WEBPACK VAR INJECTION */(function(module) {!function(e,t){ true?module.exports=t():undefined}(this,function(){"use strict";var e,i;function c(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){return void 0===e}function h(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return m(t,"toString")&&(e.toString=t.toString),m(t,"valueOf")&&(e.valueOf=t.valueOf),e}function y(e,t,n,s){return Tt(e,t,n,s,!0).utc()}function g(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function v(e){if(null==e._isValid){var t=g(e),n=i.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function p(e){var t=y(NaN);return null!=e?_(g(t),e):g(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var r=c.momentProperties=[];function w(e,t){var n,s,i;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=g(t)),l(t._locale)||(e._locale=t._locale),0<r.length)for(n=0;n<r.length;n++)l(i=t[s=r[n]])||(e[s]=i);return e}var t=!1;function M(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,c.updateOffset(this),t=!1)}function k(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function S(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function D(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=S(t)),n}function a(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&D(e[s])!==D(t[s]))&&a++;return a+r}function Y(e){!1===c.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function n(i,r){var a=!0;return _(function(){if(null!=c.deprecationHandler&&c.deprecationHandler(null,i),a){for(var e,t=[],n=0;n<arguments.length;n++){if(e="","object"==typeof arguments[n]){for(var s in e+="\n["+n+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[n];t.push(e)}Y(i+"\nArguments: "+Array.prototype.slice.call(t).join("")+"\n"+(new Error).stack),a=!1}return r.apply(this,arguments)},r)}var s,O={};function T(e,t){null!=c.deprecationHandler&&c.deprecationHandler(e,t),O[e]||(Y(t),O[e]=!0)}function b(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function x(e,t){var n,s=_({},e);for(n in t)m(t,n)&&(u(e[n])&&u(t[n])?(s[n]={},_(s[n],e[n]),_(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)m(e,n)&&!m(t,n)&&u(e[n])&&(s[n]=_({},s[n]));return s}function P(e){null!=e&&this.set(e)}c.suppressDeprecationWarnings=!1,c.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)m(e,t)&&n.push(t);return n};var W={};function C(e,t){var n=e.toLowerCase();W[n]=W[n+"s"]=W[t]=e}function H(e){return"string"==typeof e?W[e]||W[e.toLowerCase()]:void 0}function R(e){var t,n,s={};for(n in e)m(e,n)&&(t=H(n))&&(s[t]=e[n]);return s}var U={};function F(e,t){U[e]=t}function L(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},E={};function I(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(E[e]=i),t&&(E[t[0]]=function(){return L(i.apply(this,arguments),t[1],t[2])}),n&&(E[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=j(t,e.localeData()),V[t]=V[t]||function(s){var e,i,t,r=s.match(N);for(e=0,i=r.length;e<i;e++)E[r[e]]?r[e]=E[r[e]]:r[e]=(t=r[e]).match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"");return function(e){var t,n="";for(t=0;t<i;t++)n+=b(r[t])?r[t].call(e,s):r[t];return n}}(t),V[t](e)):e.localeData().invalidDate()}function j(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(G.lastIndex=0;0<=n&&G.test(e);)e=e.replace(G,s),G.lastIndex=0,n-=1;return e}var Z=/\d/,z=/\d\d/,$=/\d{3}/,q=/\d{4}/,J=/[+-]?\d{6}/,B=/\d\d?/,Q=/\d\d\d\d?/,X=/\d\d\d\d\d\d?/,K=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,se=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,re=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,oe={};function ue(e,n,s){oe[e]=b(n)?n:function(e,t){return e&&s?s:n}}function le(e,t){return m(oe,e)?oe[e](t._strict,t._locale):new RegExp(he(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function he(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var de={};function ce(e,n){var t,s=n;for("string"==typeof e&&(e=[e]),h(n)&&(s=function(e,t){t[n]=D(e)}),t=0;t<e.length;t++)de[e[t]]=s}function fe(e,i){ce(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}var me=0,_e=1,ye=2,ge=3,ve=4,pe=5,we=6,Me=7,ke=8;function Se(e){return De(e)?366:365}function De(e){return e%4==0&&e%100!=0||e%400==0}I("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),C("year","y"),F("year",1),ue("Y",se),ue("YY",B,z),ue("YYYY",ee,q),ue("YYYYY",te,J),ue("YYYYYY",te,J),ce(["YYYYY","YYYYYY"],me),ce("YYYY",function(e,t){t[me]=2===e.length?c.parseTwoDigitYear(e):D(e)}),ce("YY",function(e,t){t[me]=c.parseTwoDigitYear(e)}),ce("Y",function(e,t){t[me]=parseInt(e,10)}),c.parseTwoDigitYear=function(e){return D(e)+(68<D(e)?1900:2e3)};var Ye,Oe=Te("FullYear",!0);function Te(t,n){return function(e){return null!=e?(xe(this,t,e),c.updateOffset(this,n),this):be(this,t)}}function be(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function xe(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&De(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Pe(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Pe(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?De(e)?29:28:31-s%7%2}Ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),I("MMMM",0,0,function(e){return this.localeData().months(this,e)}),C("month","M"),F("month",8),ue("M",B),ue("MM",B,z),ue("MMM",function(e,t){return t.monthsShortRegex(e)}),ue("MMMM",function(e,t){return t.monthsRegex(e)}),ce(["M","MM"],function(e,t){t[_e]=D(e)-1}),ce(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[_e]=i:g(n).invalidMonth=e});var We=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ce="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var He="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Re(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=D(t);else if(!h(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Pe(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Ue(e){return null!=e?(Re(this,e),c.updateOffset(this,!0),this):be(this,"Month")}var Fe=ae;var Le=ae;function Ne(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=y([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=he(s[t]),i[t]=he(i[t]);for(t=0;t<24;t++)r[t]=he(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ge(e){var t;if(e<100&&0<=e){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Ve(e,t,n){var s=7+t-n;return-((7+Ge(e,0,s).getUTCDay()-t)%7)+s-1}function Ee(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ve(e,s,i);return a=o<=0?Se(r=e-1)+o:o>Se(e)?(r=e+1,o-Se(e)):(r=e,o),{year:r,dayOfYear:a}}function Ie(e,t,n){var s,i,r=Ve(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Ae(i=e.year()-1,t,n):a>Ae(e.year(),t,n)?(s=a-Ae(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Ae(e,t,n){var s=Ve(e,t,n),i=Ve(e+1,t,n);return(Se(e)-s+i)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),C("week","w"),C("isoWeek","W"),F("week",5),F("isoWeek",5),ue("w",B),ue("ww",B,z),ue("W",B),ue("WW",B,z),fe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=D(e)});function je(e,t){return e.slice(t,7).concat(e.slice(0,t))}I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),C("day","d"),C("weekday","e"),C("isoWeekday","E"),F("day",11),F("weekday",11),F("isoWeekday",11),ue("d",B),ue("e",B),ue("E",B),ue("dd",function(e,t){return t.weekdaysMinRegex(e)}),ue("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ue("dddd",function(e,t){return t.weekdaysRegex(e)}),fe(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:g(n).invalidWeekday=e}),fe(["d","e","E"],function(e,t,n,s){t[s]=D(e)});var Ze="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var $e="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var qe=ae;var Je=ae;var Be=ae;function Qe(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=y([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=he(o[t]),u[t]=he(u[t]),l[t]=he(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Xe(){return this.hours()%12||12}function Ke(e,t){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function et(e,t){return t._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Xe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+Xe.apply(this)+L(this.minutes(),2)}),I("hmmss",0,0,function(){return""+Xe.apply(this)+L(this.minutes(),2)+L(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+L(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+L(this.minutes(),2)+L(this.seconds(),2)}),Ke("a",!0),Ke("A",!1),C("hour","h"),F("hour",13),ue("a",et),ue("A",et),ue("H",B),ue("h",B),ue("k",B),ue("HH",B,z),ue("hh",B,z),ue("kk",B,z),ue("hmm",Q),ue("hmmss",X),ue("Hmm",Q),ue("Hmmss",X),ce(["H","HH"],ge),ce(["k","kk"],function(e,t,n){var s=D(e);t[ge]=24===s?0:s}),ce(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ce(["h","hh"],function(e,t,n){t[ge]=D(e),g(n).bigHour=!0}),ce("hmm",function(e,t,n){var s=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s)),g(n).bigHour=!0}),ce("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s,2)),t[pe]=D(e.substr(i)),g(n).bigHour=!0}),ce("Hmm",function(e,t,n){var s=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s))}),ce("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s,2)),t[pe]=D(e.substr(i))});var tt,nt=Te("Hours",!0),st={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ce,monthsShort:He,week:{dow:0,doy:6},weekdays:Ze,weekdaysMin:$e,weekdaysShort:ze,meridiemParse:/[ap]\.?m?\.?/i},it={},rt={};function at(e){return e?e.toLowerCase().replace("_","-"):e}function ot(e){var t=null;if(!it[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=tt._abbr,__webpack_require__("./node_modules/moment-mini/locale sync recursive ^\\.\\/.*$")("./"+e),ut(t)}catch(e){}return it[e]}function ut(e,t){var n;return e&&((n=l(t)?ht(e):lt(e,t))?tt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),tt._abbr}function lt(e,t){if(null===t)return delete it[e],null;var n,s=st;if(t.abbr=e,null!=it[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=it[e]._config;else if(null!=t.parentLocale)if(null!=it[t.parentLocale])s=it[t.parentLocale]._config;else{if(null==(n=ot(t.parentLocale)))return rt[t.parentLocale]||(rt[t.parentLocale]=[]),rt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return it[e]=new P(x(s,t)),rt[e]&&rt[e].forEach(function(e){lt(e.name,e.config)}),ut(e),it[e]}function ht(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tt;if(!o(e)){if(t=ot(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=at(e[r]).split("-")).length,n=(n=at(e[r+1]))?n.split("-"):null;0<t;){if(s=ot(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&a(i,n,!0)>=t-1)break;t--}r++}return tt}(e)}function dt(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[_e]<0||11<n[_e]?_e:n[ye]<1||n[ye]>Pe(n[me],n[_e])?ye:n[ge]<0||24<n[ge]||24===n[ge]&&(0!==n[ve]||0!==n[pe]||0!==n[we])?ge:n[ve]<0||59<n[ve]?ve:n[pe]<0||59<n[pe]?pe:n[we]<0||999<n[we]?we:-1,g(e)._overflowDayOfYear&&(t<me||ye<t)&&(t=ye),g(e)._overflowWeeks&&-1===t&&(t=Me),g(e)._overflowWeekday&&-1===t&&(t=ke),g(e).overflow=t),e}function ct(e,t,n){return null!=e?e:null!=t?t:n}function ft(e){var t,n,s,i,r,a=[];if(!e._d){var o,u;for(o=e,u=new Date(c.now()),s=o._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ye]&&null==e._a[_e]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ct(t.GG,e._a[me],Ie(bt(),1,4).year),s=ct(t.W,1),((i=ct(t.E,1))<1||7<i)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=Ie(bt(),r,a);n=ct(t.gg,e._a[me],l.year),s=ct(t.w,l.week),null!=t.d?((i=t.d)<0||6<i)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(u=!0)):i=r}s<1||s>Ae(n,r,a)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[me]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ct(e._a[me],s[me]),(e._dayOfYear>Se(r)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=Ge(r,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[ve]&&0===e._a[pe]&&0===e._a[we]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ge:function(e,t,n,s,i,r,a){var o;return e<100&&0<=e?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(g(e).weekdayMismatch=!0)}}var mt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/^\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)?)?$/,yt=/Z|[+-]\d\d(?::?\d\d)?/,gt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],vt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function wt(e){var t,n,s,i,r,a,o=e._i,u=mt.exec(o)||_t.exec(o);if(u){for(g(e).iso=!0,t=0,n=gt.length;t<n;t++)if(gt[t][1].exec(u[1])){i=gt[t][0],s=!1!==gt[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=vt.length;t<n;t++)if(vt[t][1].exec(u[3])){r=(u[2]||" ")+vt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!yt.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),Yt(e)}else e._isValid=!1}var Mt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function kt(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),He.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}var St={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Dt(e){var t,n,s,i=Mt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(i){var r=kt(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],n=r,s=e,t&&ze.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(g(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=r,e._tzm=function(e,t,n){if(e)return St[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(i[8],i[9],i[10]),e._d=Ge.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),g(e).rfc2822=!0}else e._isValid=!1}function Yt(e){if(e._f!==c.ISO_8601)if(e._f!==c.RFC_2822){e._a=[],g(e).empty=!0;var t,n,s,i,r,a,o,u,l=""+e._i,h=l.length,d=0;for(s=j(e._f,e._locale).match(N)||[],t=0;t<s.length;t++)i=s[t],(n=(l.match(le(i,e))||[])[0])&&(0<(r=l.substr(0,l.indexOf(n))).length&&g(e).unusedInput.push(r),l=l.slice(l.indexOf(n)+n.length),d+=n.length),E[i]?(n?g(e).empty=!1:g(e).unusedTokens.push(i),a=i,u=e,null!=(o=n)&&m(de,a)&&de[a](o,u._a,u,a)):e._strict&&!n&&g(e).unusedTokens.push(i);g(e).charsLeftOver=h-d,0<l.length&&g(e).unusedInput.push(l),e._a[ge]<=12&&!0===g(e).bigHour&&0<e._a[ge]&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[ge]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),ft(e),dt(e)}else Dt(e);else wt(e)}function Ot(e){var t,n,s,i,r=e._i,a=e._f;return e._locale=e._locale||ht(e._l),null===r||void 0===a&&""===r?p({nullInput:!0}):("string"==typeof r&&(e._i=r=e._locale.preparse(r)),k(r)?new M(dt(r)):(d(r)?e._d=r:o(a)?function(e){var t,n,s,i,r;if(0===e._f.length)return g(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],Yt(t),v(t)&&(r+=g(t).charsLeftOver,r+=10*g(t).unusedTokens.length,g(t).score=r,(null==s||r<s)&&(s=r,n=t));_(e,n||t)}(e):a?Yt(e):l(n=(t=e)._i)?t._d=new Date(c.now()):d(n)?t._d=new Date(n.valueOf()):"string"==typeof n?(s=t,null===(i=pt.exec(s._i))?(wt(s),!1===s._isValid&&(delete s._isValid,Dt(s),!1===s._isValid&&(delete s._isValid,c.createFromInputFallback(s)))):s._d=new Date(+i[1])):o(n)?(t._a=f(n.slice(0),function(e){return parseInt(e,10)}),ft(t)):u(n)?function(e){if(!e._d){var t=R(e._i);e._a=f([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),ft(e)}}(t):h(n)?t._d=new Date(n):c.createFromInputFallback(t),v(e)||(e._d=null),e))}function Tt(e,t,n,s,i){var r,a={};return!0!==n&&!1!==n||(s=n,n=void 0),(u(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||o(e)&&0===e.length)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=n,a._i=e,a._f=t,a._strict=s,(r=new M(dt(Ot(a))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function bt(e,t,n,s){return Tt(e,t,n,s,!1)}c.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),c.ISO_8601=function(){},c.RFC_2822=function(){};var xt=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:p()}),Pt=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:p()});function Wt(e,t){var n,s;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return bt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Ct=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ht(e){var t=R(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||t.isoWeek||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,h=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ye.call(Ct,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<Ct.length;++s)if(e[Ct[s]]){if(n)return!1;parseFloat(e[Ct[s]])!==D(e[Ct[s]])&&(n=!0)}return!0}(t),this._milliseconds=+h+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=ht(),this._bubble()}function Rt(e){return e instanceof Ht}function Ut(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){I(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+L(~~(e/60),2)+n+L(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),ue("Z",re),ue("ZZ",re),ce(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Nt(re,e)});var Lt=/([\+\-]|\d\d)/gi;function Nt(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(Lt)||["-",0,0],i=60*s[1]+D(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Gt(e,t){var n,s;return t._isUTC?(n=t.clone(),s=(k(e)||d(e)?e.valueOf():bt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),c.updateOffset(n,!1),n):bt(e).local()}function Vt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Et(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}c.updateOffset=function(){};var It=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,At=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function jt(e,t){var n,s,i,r=e,a=null;return Rt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:h(e)?(r={},t?r[t]=e:r.milliseconds=e):(a=It.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:D(a[ye])*n,h:D(a[ge])*n,m:D(a[ve])*n,s:D(a[pe])*n,ms:D(Ut(1e3*a[we]))*n}):(a=At.exec(e))?(n="-"===a[1]?-1:1,r={y:Zt(a[2],n),M:Zt(a[3],n),w:Zt(a[4],n),d:Zt(a[5],n),h:Zt(a[6],n),m:Zt(a[7],n),s:Zt(a[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Gt(t,e),e.isBefore(t)?n=zt(e,t):((n=zt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(bt(r.from),bt(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new Ht(r),Rt(e)&&m(e,"_locale")&&(s._locale=e._locale),s}function Zt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function zt(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function $t(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(T(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),qt(this,jt(e="string"==typeof e?+e:e,t),s),this}}function qt(e,t,n,s){var i=t._milliseconds,r=Ut(t._days),a=Ut(t._months);e.isValid()&&(s=null==s||s,a&&Re(e,be(e,"Month")+a*n),r&&xe(e,"Date",be(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s&&c.updateOffset(e,r||a))}jt.fn=Ht.prototype,jt.invalid=function(){return jt(NaN)};var Jt=$t(1,"add"),Bt=$t(-1,"subtract");function Qt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return-(n+(t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(n+1,"months")-s)))||0}function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ht(e))&&(this._locale=t),this)}c.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",c.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Kt=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function en(){return this._locale}var tn=126227808e5;function nn(e,t){return(e%t+t)%t}function sn(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-tn:new Date(e,t,n).valueOf()}function rn(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-tn:Date.UTC(e,t,n)}function an(e,t){I(0,[e,e.length],0,t)}function on(e,t,n,s,i){var r;return null==e?Ie(this,s,i).year:((r=Ae(e,s,i))<t&&(t=r),function(e,t,n,s,i){var r=Ee(e,t,n,s,i),a=Ge(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),an("gggg","weekYear"),an("ggggg","weekYear"),an("GGGG","isoWeekYear"),an("GGGGG","isoWeekYear"),C("weekYear","gg"),C("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),ue("G",se),ue("g",se),ue("GG",B,z),ue("gg",B,z),ue("GGGG",ee,q),ue("gggg",ee,q),ue("GGGGG",te,J),ue("ggggg",te,J),fe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=D(e)}),fe(["gg","GG"],function(e,t,n,s){t[s]=c.parseTwoDigitYear(e)}),I("Q",0,"Qo","quarter"),C("quarter","Q"),F("quarter",7),ue("Q",Z),ce("Q",function(e,t){t[_e]=3*(D(e)-1)}),I("D",["DD",2],"Do","date"),C("date","D"),F("date",9),ue("D",B),ue("DD",B,z),ue("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ce(["D","DD"],ye),ce("Do",function(e,t){t[ye]=D(e.match(B)[0])});var un=Te("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),C("dayOfYear","DDD"),F("dayOfYear",4),ue("DDD",K),ue("DDDD",$),ce(["DDD","DDDD"],function(e,t,n){n._dayOfYear=D(e)}),I("m",["mm",2],0,"minute"),C("minute","m"),F("minute",14),ue("m",B),ue("mm",B,z),ce(["m","mm"],ve);var ln=Te("Minutes",!1);I("s",["ss",2],0,"second"),C("second","s"),F("second",15),ue("s",B),ue("ss",B,z),ce(["s","ss"],pe);var hn,dn=Te("Seconds",!1);for(I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return 10*this.millisecond()}),I(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),I(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),I(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),I(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),I(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),C("millisecond","ms"),F("millisecond",16),ue("S",K,Z),ue("SS",K,z),ue("SSS",K,$),hn="SSSS";hn.length<=9;hn+="S")ue(hn,ne);function cn(e,t){t[we]=D(1e3*("0."+e))}for(hn="S";hn.length<=9;hn+="S")ce(hn,cn);var fn=Te("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var mn=M.prototype;function _n(e){return e}mn.add=Jt,mn.calendar=function(e,t){var n=e||bt(),s=Gt(n,this).startOf("day"),i=c.calendarFormat(this,s)||"sameElse",r=t&&(b(t[i])?t[i].call(this,n):t[i]);return this.format(r||this.localeData().calendar(i,this,bt(n)))},mn.clone=function(){return new M(this)},mn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Gt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=H(t)){case"year":r=Qt(this,s)/12;break;case"month":r=Qt(this,s);break;case"quarter":r=Qt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:S(r)},mn.endOf=function(e){var t;if(void 0===(e=H(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?rn:sn;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-nn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-nn(t,1e3)-1;break}return this._d.setTime(t),c.updateOffset(this,!0),this},mn.format=function(e){e||(e=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},mn.from=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||bt(e).isValid())?jt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mn.fromNow=function(e){return this.from(bt(),e)},mn.to=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||bt(e).isValid())?jt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mn.toNow=function(e){return this.to(bt(),e)},mn.get=function(e){return b(this[e=H(e)])?this[e]():this},mn.invalidAt=function(){return g(this).overflow},mn.isAfter=function(e,t){var n=k(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},mn.isBefore=function(e,t){var n=k(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},mn.isBetween=function(e,t,n,s){var i=k(e)?e:bt(e),r=k(t)?t:bt(t);return!!(this.isValid()&&i.isValid()&&r.isValid())&&("("===(s=s||"()")[0]?this.isAfter(i,n):!this.isBefore(i,n))&&(")"===s[1]?this.isBefore(r,n):!this.isAfter(r,n))},mn.isSame=function(e,t){var n,s=k(e)?e:bt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},mn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},mn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},mn.isValid=function(){return v(this)},mn.lang=Kt,mn.locale=Xt,mn.localeData=en,mn.max=Pt,mn.min=xt,mn.parsingFlags=function(){return _({},g(this))},mn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:U[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=R(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(b(this[e=H(e)]))return this[e](t);return this},mn.startOf=function(e){var t;if(void 0===(e=H(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?rn:sn;switch(e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=nn(t,6e4);break;case"second":t=this._d.valueOf(),t-=nn(t,1e3);break}return this._d.setTime(t),c.updateOffset(this,!0),this},mn.subtract=Bt,mn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},mn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},mn.toDate=function(){return new Date(this.valueOf())},mn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):b(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},mn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},mn.toJSON=function(){return this.isValid()?this.toISOString():null},mn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},mn.unix=function(){return Math.floor(this.valueOf()/1e3)},mn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},mn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},mn.year=Oe,mn.isLeapYear=function(){return De(this.year())},mn.weekYear=function(e){return on.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},mn.isoWeekYear=function(e){return on.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},mn.quarter=mn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},mn.month=Ue,mn.daysInMonth=function(){return Pe(this.year(),this.month())},mn.week=mn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},mn.isoWeek=mn.isoWeeks=function(e){var t=Ie(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},mn.weeksInYear=function(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)},mn.isoWeeksInYear=function(){return Ae(this.year(),1,4)},mn.date=un,mn.day=mn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-s,"d")):s},mn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},mn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,s=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?s:s-7)},mn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},mn.hour=mn.hours=nt,mn.minute=mn.minutes=ln,mn.second=mn.seconds=dn,mn.millisecond=mn.milliseconds=fn,mn.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?i:Vt(this);if("string"==typeof e){if(null===(e=Nt(re,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Vt(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?qt(this,jt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,c.updateOffset(this,!0),this._changeInProgress=null)),this},mn.utc=function(e){return this.utcOffset(0,e)},mn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Vt(this),"m")),this},mn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Nt(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},mn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?bt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},mn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},mn.isLocal=function(){return!!this.isValid()&&!this._isUTC},mn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},mn.isUtc=Et,mn.isUTC=Et,mn.zoneAbbr=function(){return this._isUTC?"UTC":""},mn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},mn.dates=n("dates accessor is deprecated. Use date instead.",un),mn.months=n("months accessor is deprecated. Use month instead",Ue),mn.years=n("years accessor is deprecated. Use year instead",Oe),mn.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),mn.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Ot(e))._a){var t=e._isUTC?y(e._a):bt(e._a);this._isDSTShifted=this.isValid()&&0<a(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var yn=P.prototype;function gn(e,t,n,s){var i=ht(),r=y().set(s,t);return i[n](r,e)}function vn(e,t,n){if(h(e)&&(t=e,e=void 0),e=e||"",null!=t)return gn(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=gn(e,s,n,"month");return i}function pn(e,t,n,s){t=("boolean"==typeof e?h(t)&&(n=t,t=void 0):(t=e,e=!1,h(n=t)&&(n=t,t=void 0)),t||"");var i,r=ht(),a=e?r._week.dow:0;if(null!=n)return gn(t,(n+a)%7,s,"day");var o=[];for(i=0;i<7;i++)o[i]=gn(t,(i+a)%7,s,"day");return o}yn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return b(s)?s.call(t,n):s},yn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},yn.invalidDate=function(){return this._invalidDate},yn.ordinal=function(e){return this._ordinal.replace("%d",e)},yn.preparse=_n,yn.postformat=_n,yn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return b(i)?i(e,t,n,s):i.replace(/%d/i,e)},yn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return b(n)?n(t):n.replace(/%s/i,t)},yn.set=function(e){var t,n;for(n in e)b(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},yn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||We).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},yn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[We.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},yn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=y([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=y([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},yn.monthsRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(m(this,"_monthsRegex")||(this._monthsRegex=Le),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},yn.monthsShortRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(m(this,"_monthsShortRegex")||(this._monthsShortRegex=Fe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},yn.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},yn.firstDayOfYear=function(){return this._week.doy},yn.firstDayOfWeek=function(){return this._week.dow},yn.weekdays=function(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?je(n,this._week.dow):e?n[e.day()]:n},yn.weekdaysMin=function(e){return!0===e?je(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},yn.weekdaysShort=function(e){return!0===e?je(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},yn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=y([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=y([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},yn.weekdaysRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=qe),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},yn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Je),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},yn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Be),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},yn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},yn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},ut("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===D(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),c.lang=n("moment.lang is deprecated. Use moment.locale instead.",ut),c.langData=n("moment.langData is deprecated. Use moment.localeData instead.",ht);var wn=Math.abs;function Mn(e,t,n,s){var i=jt(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function kn(e){return e<0?Math.floor(e):Math.ceil(e)}function Sn(e){return 4800*e/146097}function Dn(e){return 146097*e/4800}function Yn(e){return function(){return this.as(e)}}var On=Yn("ms"),Tn=Yn("s"),bn=Yn("m"),xn=Yn("h"),Pn=Yn("d"),Wn=Yn("w"),Cn=Yn("M"),Hn=Yn("Q"),Rn=Yn("y");function Un(e){return function(){return this.isValid()?this._data[e]:NaN}}var Fn=Un("milliseconds"),Ln=Un("seconds"),Nn=Un("minutes"),Gn=Un("hours"),Vn=Un("days"),En=Un("months"),In=Un("years");var An=Math.round,jn={ss:44,s:45,m:45,h:22,d:26,M:11};var Zn=Math.abs;function zn(e){return(0<e)-(e<0)||+e}function $n(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Zn(this._milliseconds)/1e3,s=Zn(this._days),i=Zn(this._months);t=S((e=S(n/60))/60),n%=60,e%=60;var r=S(i/12),a=i%=12,o=s,u=t,l=e,h=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var c=d<0?"-":"",f=zn(this._months)!==zn(d)?"-":"",m=zn(this._days)!==zn(d)?"-":"",_=zn(this._milliseconds)!==zn(d)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||h?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(h?_+h+"S":"")}var qn=Ht.prototype;return qn.isValid=function(){return this._isValid},qn.abs=function(){var e=this._data;return this._milliseconds=wn(this._milliseconds),this._days=wn(this._days),this._months=wn(this._months),e.milliseconds=wn(e.milliseconds),e.seconds=wn(e.seconds),e.minutes=wn(e.minutes),e.hours=wn(e.hours),e.months=wn(e.months),e.years=wn(e.years),this},qn.add=function(e,t){return Mn(this,e,t,1)},qn.subtract=function(e,t){return Mn(this,e,t,-1)},qn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=H(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,n=this._months+Sn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Dn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},qn.asMilliseconds=On,qn.asSeconds=Tn,qn.asMinutes=bn,qn.asHours=xn,qn.asDays=Pn,qn.asWeeks=Wn,qn.asMonths=Cn,qn.asQuarters=Hn,qn.asYears=Rn,qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*D(this._months/12):NaN},qn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return 0<=r&&0<=a&&0<=o||r<=0&&a<=0&&o<=0||(r+=864e5*kn(Dn(o)+a),o=a=0),u.milliseconds=r%1e3,e=S(r/1e3),u.seconds=e%60,t=S(e/60),u.minutes=t%60,n=S(t/60),u.hours=n%24,o+=i=S(Sn(a+=S(n/24))),a-=kn(Dn(i)),s=S(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},qn.clone=function(){return jt(this)},qn.get=function(e){return e=H(e),this.isValid()?this[e+"s"]():NaN},qn.milliseconds=Fn,qn.seconds=Ln,qn.minutes=Nn,qn.hours=Gn,qn.days=Vn,qn.weeks=function(){return S(this.days()/7)},qn.months=En,qn.years=In,qn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,s,i,r,a,o,u,l,h,d,c=this.localeData(),f=(n=!e,s=c,i=jt(t=this).abs(),r=An(i.as("s")),a=An(i.as("m")),o=An(i.as("h")),u=An(i.as("d")),l=An(i.as("M")),h=An(i.as("y")),(d=r<=jn.ss&&["s",r]||r<jn.s&&["ss",r]||a<=1&&["m"]||a<jn.m&&["mm",a]||o<=1&&["h"]||o<jn.h&&["hh",o]||u<=1&&["d"]||u<jn.d&&["dd",u]||l<=1&&["M"]||l<jn.M&&["MM",l]||h<=1&&["y"]||["yy",h])[2]=n,d[3]=0<+t,d[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,d));return e&&(f=c.pastFuture(+this,f)),c.postformat(f)},qn.toISOString=$n,qn.toString=$n,qn.toJSON=$n,qn.locale=Xt,qn.localeData=en,qn.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",$n),qn.lang=Kt,I("X",0,0,"unix"),I("x",0,0,"valueOf"),ue("x",se),ue("X",/[+-]?\d+(\.\d{1,3})?/),ce("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ce("x",function(e,t,n){n._d=new Date(D(e))}),c.version="2.24.0",e=bt,c.fn=mn,c.min=function(){return Wt("isBefore",[].slice.call(arguments,0))},c.max=function(){return Wt("isAfter",[].slice.call(arguments,0))},c.now=function(){return Date.now?Date.now():+new Date},c.utc=y,c.unix=function(e){return bt(1e3*e)},c.months=function(e,t){return vn(e,t,"months")},c.isDate=d,c.locale=ut,c.invalid=p,c.duration=jt,c.isMoment=k,c.weekdays=function(e,t,n){return pn(e,t,n,"weekdays")},c.parseZone=function(){return bt.apply(null,arguments).parseZone()},c.localeData=ht,c.isDuration=Rt,c.monthsShort=function(e,t){return vn(e,t,"monthsShort")},c.weekdaysMin=function(e,t,n){return pn(e,t,n,"weekdaysMin")},c.defineLocale=lt,c.updateLocale=function(e,t){if(null!=t){var n,s,i=st;null!=(s=ot(e))&&(i=s._config),(n=new P(t=x(i,t))).parentLocale=it[e],it[e]=n,ut(e)}else null!=it[e]&&(null!=it[e].parentLocale?it[e]=it[e].parentLocale:null!=it[e]&&delete it[e]);return it[e]},c.locales=function(){return s(it)},c.weekdaysShort=function(e,t,n){return pn(e,t,n,"weekdaysShort")},c.normalizeUnits=H,c.relativeTimeRounding=function(e){return void 0===e?An:"function"==typeof e&&(An=e,!0)},c.relativeTimeThreshold=function(e,t){return void 0!==jn[e]&&(void 0===t?jn[e]:(jn[e]=t,"s"===e&&(jn.ss=t-1),!0))},c.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},c.prototype=mn,c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},c});
46737/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
46738
46739/***/ }),
46740
46741/***/ "./node_modules/node-libs-browser/mock/empty.js":
46742/*!******************************************************!*\
46743 !*** ./node_modules/node-libs-browser/mock/empty.js ***!
46744 \******************************************************/
46745/*! no static exports found */
46746/***/ (function(module, exports) {
46747
46748
46749
46750/***/ }),
46751
46752/***/ "./node_modules/path-browserify/index.js":
46753/*!***********************************************!*\
46754 !*** ./node_modules/path-browserify/index.js ***!
46755 \***********************************************/
46756/*! no static exports found */
46757/***/ (function(module, exports, __webpack_require__) {
46758
46759/* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,
46760// backported and transplited with Babel, with backwards-compat fixes
46761
46762// Copyright Joyent, Inc. and other Node contributors.
46763//
46764// Permission is hereby granted, free of charge, to any person obtaining a
46765// copy of this software and associated documentation files (the
46766// "Software"), to deal in the Software without restriction, including
46767// without limitation the rights to use, copy, modify, merge, publish,
46768// distribute, sublicense, and/or sell copies of the Software, and to permit
46769// persons to whom the Software is furnished to do so, subject to the
46770// following conditions:
46771//
46772// The above copyright notice and this permission notice shall be included
46773// in all copies or substantial portions of the Software.
46774//
46775// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
46776// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
46777// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
46778// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
46779// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
46780// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
46781// USE OR OTHER DEALINGS IN THE SOFTWARE.
46782
46783// resolves . and .. elements in a path array with directory names there
46784// must be no slashes, empty elements, or device names (c:\) in the array
46785// (so also no leading and trailing slashes - it does not distinguish
46786// relative and absolute paths)
46787function normalizeArray(parts, allowAboveRoot) {
46788 // if the path tries to go above the root, `up` ends up > 0
46789 var up = 0;
46790 for (var i = parts.length - 1; i >= 0; i--) {
46791 var last = parts[i];
46792 if (last === '.') {
46793 parts.splice(i, 1);
46794 } else if (last === '..') {
46795 parts.splice(i, 1);
46796 up++;
46797 } else if (up) {
46798 parts.splice(i, 1);
46799 up--;
46800 }
46801 }
46802
46803 // if the path is allowed to go above the root, restore leading ..s
46804 if (allowAboveRoot) {
46805 for (; up--; up) {
46806 parts.unshift('..');
46807 }
46808 }
46809
46810 return parts;
46811}
46812
46813// path.resolve([from ...], to)
46814// posix version
46815exports.resolve = function() {
46816 var resolvedPath = '',
46817 resolvedAbsolute = false;
46818
46819 for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
46820 var path = (i >= 0) ? arguments[i] : process.cwd();
46821
46822 // Skip empty and invalid entries
46823 if (typeof path !== 'string') {
46824 throw new TypeError('Arguments to path.resolve must be strings');
46825 } else if (!path) {
46826 continue;
46827 }
46828
46829 resolvedPath = path + '/' + resolvedPath;
46830 resolvedAbsolute = path.charAt(0) === '/';
46831 }
46832
46833 // At this point the path should be resolved to a full absolute path, but
46834 // handle relative paths to be safe (might happen when process.cwd() fails)
46835
46836 // Normalize the path
46837 resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
46838 return !!p;
46839 }), !resolvedAbsolute).join('/');
46840
46841 return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
46842};
46843
46844// path.normalize(path)
46845// posix version
46846exports.normalize = function(path) {
46847 var isAbsolute = exports.isAbsolute(path),
46848 trailingSlash = substr(path, -1) === '/';
46849
46850 // Normalize the path
46851 path = normalizeArray(filter(path.split('/'), function(p) {
46852 return !!p;
46853 }), !isAbsolute).join('/');
46854
46855 if (!path && !isAbsolute) {
46856 path = '.';
46857 }
46858 if (path && trailingSlash) {
46859 path += '/';
46860 }
46861
46862 return (isAbsolute ? '/' : '') + path;
46863};
46864
46865// posix version
46866exports.isAbsolute = function(path) {
46867 return path.charAt(0) === '/';
46868};
46869
46870// posix version
46871exports.join = function() {
46872 var paths = Array.prototype.slice.call(arguments, 0);
46873 return exports.normalize(filter(paths, function(p, index) {
46874 if (typeof p !== 'string') {
46875 throw new TypeError('Arguments to path.join must be strings');
46876 }
46877 return p;
46878 }).join('/'));
46879};
46880
46881
46882// path.relative(from, to)
46883// posix version
46884exports.relative = function(from, to) {
46885 from = exports.resolve(from).substr(1);
46886 to = exports.resolve(to).substr(1);
46887
46888 function trim(arr) {
46889 var start = 0;
46890 for (; start < arr.length; start++) {
46891 if (arr[start] !== '') break;
46892 }
46893
46894 var end = arr.length - 1;
46895 for (; end >= 0; end--) {
46896 if (arr[end] !== '') break;
46897 }
46898
46899 if (start > end) return [];
46900 return arr.slice(start, end - start + 1);
46901 }
46902
46903 var fromParts = trim(from.split('/'));
46904 var toParts = trim(to.split('/'));
46905
46906 var length = Math.min(fromParts.length, toParts.length);
46907 var samePartsLength = length;
46908 for (var i = 0; i < length; i++) {
46909 if (fromParts[i] !== toParts[i]) {
46910 samePartsLength = i;
46911 break;
46912 }
46913 }
46914
46915 var outputParts = [];
46916 for (var i = samePartsLength; i < fromParts.length; i++) {
46917 outputParts.push('..');
46918 }
46919
46920 outputParts = outputParts.concat(toParts.slice(samePartsLength));
46921
46922 return outputParts.join('/');
46923};
46924
46925exports.sep = '/';
46926exports.delimiter = ':';
46927
46928exports.dirname = function (path) {
46929 if (typeof path !== 'string') path = path + '';
46930 if (path.length === 0) return '.';
46931 var code = path.charCodeAt(0);
46932 var hasRoot = code === 47 /*/*/;
46933 var end = -1;
46934 var matchedSlash = true;
46935 for (var i = path.length - 1; i >= 1; --i) {
46936 code = path.charCodeAt(i);
46937 if (code === 47 /*/*/) {
46938 if (!matchedSlash) {
46939 end = i;
46940 break;
46941 }
46942 } else {
46943 // We saw the first non-path separator
46944 matchedSlash = false;
46945 }
46946 }
46947
46948 if (end === -1) return hasRoot ? '/' : '.';
46949 if (hasRoot && end === 1) {
46950 // return '//';
46951 // Backwards-compat fix:
46952 return '/';
46953 }
46954 return path.slice(0, end);
46955};
46956
46957function basename(path) {
46958 if (typeof path !== 'string') path = path + '';
46959
46960 var start = 0;
46961 var end = -1;
46962 var matchedSlash = true;
46963 var i;
46964
46965 for (i = path.length - 1; i >= 0; --i) {
46966 if (path.charCodeAt(i) === 47 /*/*/) {
46967 // If we reached a path separator that was not part of a set of path
46968 // separators at the end of the string, stop now
46969 if (!matchedSlash) {
46970 start = i + 1;
46971 break;
46972 }
46973 } else if (end === -1) {
46974 // We saw the first non-path separator, mark this as the end of our
46975 // path component
46976 matchedSlash = false;
46977 end = i + 1;
46978 }
46979 }
46980
46981 if (end === -1) return '';
46982 return path.slice(start, end);
46983}
46984
46985// Uses a mixed approach for backwards-compatibility, as ext behavior changed
46986// in new Node.js versions, so only basename() above is backported here
46987exports.basename = function (path, ext) {
46988 var f = basename(path);
46989 if (ext && f.substr(-1 * ext.length) === ext) {
46990 f = f.substr(0, f.length - ext.length);
46991 }
46992 return f;
46993};
46994
46995exports.extname = function (path) {
46996 if (typeof path !== 'string') path = path + '';
46997 var startDot = -1;
46998 var startPart = 0;
46999 var end = -1;
47000 var matchedSlash = true;
47001 // Track the state of characters (if any) we see before our first dot and
47002 // after any path separator we find
47003 var preDotState = 0;
47004 for (var i = path.length - 1; i >= 0; --i) {
47005 var code = path.charCodeAt(i);
47006 if (code === 47 /*/*/) {
47007 // If we reached a path separator that was not part of a set of path
47008 // separators at the end of the string, stop now
47009 if (!matchedSlash) {
47010 startPart = i + 1;
47011 break;
47012 }
47013 continue;
47014 }
47015 if (end === -1) {
47016 // We saw the first non-path separator, mark this as the end of our
47017 // extension
47018 matchedSlash = false;
47019 end = i + 1;
47020 }
47021 if (code === 46 /*.*/) {
47022 // If this is our first dot, mark it as the start of our extension
47023 if (startDot === -1)
47024 startDot = i;
47025 else if (preDotState !== 1)
47026 preDotState = 1;
47027 } else if (startDot !== -1) {
47028 // We saw a non-dot and non-path separator before our dot, so we should
47029 // have a good chance at having a non-empty extension
47030 preDotState = -1;
47031 }
47032 }
47033
47034 if (startDot === -1 || end === -1 ||
47035 // We saw a non-dot character immediately before the dot
47036 preDotState === 0 ||
47037 // The (right-most) trimmed path component is exactly '..'
47038 preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
47039 return '';
47040 }
47041 return path.slice(startDot, end);
47042};
47043
47044function filter (xs, f) {
47045 if (xs.filter) return xs.filter(f);
47046 var res = [];
47047 for (var i = 0; i < xs.length; i++) {
47048 if (f(xs[i], i, xs)) res.push(xs[i]);
47049 }
47050 return res;
47051}
47052
47053// String.prototype.substr - negative index don't work in IE8
47054var substr = 'ab'.substr(-1) === 'b'
47055 ? function (str, start, len) { return str.substr(start, len) }
47056 : function (str, start, len) {
47057 if (start < 0) start = str.length + start;
47058 return str.substr(start, len);
47059 }
47060;
47061
47062/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))
47063
47064/***/ }),
47065
47066/***/ "./node_modules/process/browser.js":
47067/*!*****************************************!*\
47068 !*** ./node_modules/process/browser.js ***!
47069 \*****************************************/
47070/*! no static exports found */
47071/***/ (function(module, exports) {
47072
47073// shim for using process in browser
47074var process = module.exports = {};
47075
47076// cached from whatever global is present so that test runners that stub it
47077// don't break things. But we need to wrap it in a try catch in case it is
47078// wrapped in strict mode code which doesn't define any globals. It's inside a
47079// function because try/catches deoptimize in certain engines.
47080
47081var cachedSetTimeout;
47082var cachedClearTimeout;
47083
47084function defaultSetTimout() {
47085 throw new Error('setTimeout has not been defined');
47086}
47087function defaultClearTimeout () {
47088 throw new Error('clearTimeout has not been defined');
47089}
47090(function () {
47091 try {
47092 if (typeof setTimeout === 'function') {
47093 cachedSetTimeout = setTimeout;
47094 } else {
47095 cachedSetTimeout = defaultSetTimout;
47096 }
47097 } catch (e) {
47098 cachedSetTimeout = defaultSetTimout;
47099 }
47100 try {
47101 if (typeof clearTimeout === 'function') {
47102 cachedClearTimeout = clearTimeout;
47103 } else {
47104 cachedClearTimeout = defaultClearTimeout;
47105 }
47106 } catch (e) {
47107 cachedClearTimeout = defaultClearTimeout;
47108 }
47109} ())
47110function runTimeout(fun) {
47111 if (cachedSetTimeout === setTimeout) {
47112 //normal enviroments in sane situations
47113 return setTimeout(fun, 0);
47114 }
47115 // if setTimeout wasn't available but was latter defined
47116 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
47117 cachedSetTimeout = setTimeout;
47118 return setTimeout(fun, 0);
47119 }
47120 try {
47121 // when when somebody has screwed with setTimeout but no I.E. maddness
47122 return cachedSetTimeout(fun, 0);
47123 } catch(e){
47124 try {
47125 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
47126 return cachedSetTimeout.call(null, fun, 0);
47127 } catch(e){
47128 // 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
47129 return cachedSetTimeout.call(this, fun, 0);
47130 }
47131 }
47132
47133
47134}
47135function runClearTimeout(marker) {
47136 if (cachedClearTimeout === clearTimeout) {
47137 //normal enviroments in sane situations
47138 return clearTimeout(marker);
47139 }
47140 // if clearTimeout wasn't available but was latter defined
47141 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
47142 cachedClearTimeout = clearTimeout;
47143 return clearTimeout(marker);
47144 }
47145 try {
47146 // when when somebody has screwed with setTimeout but no I.E. maddness
47147 return cachedClearTimeout(marker);
47148 } catch (e){
47149 try {
47150 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
47151 return cachedClearTimeout.call(null, marker);
47152 } catch (e){
47153 // 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.
47154 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
47155 return cachedClearTimeout.call(this, marker);
47156 }
47157 }
47158
47159
47160
47161}
47162var queue = [];
47163var draining = false;
47164var currentQueue;
47165var queueIndex = -1;
47166
47167function cleanUpNextTick() {
47168 if (!draining || !currentQueue) {
47169 return;
47170 }
47171 draining = false;
47172 if (currentQueue.length) {
47173 queue = currentQueue.concat(queue);
47174 } else {
47175 queueIndex = -1;
47176 }
47177 if (queue.length) {
47178 drainQueue();
47179 }
47180}
47181
47182function drainQueue() {
47183 if (draining) {
47184 return;
47185 }
47186 var timeout = runTimeout(cleanUpNextTick);
47187 draining = true;
47188
47189 var len = queue.length;
47190 while(len) {
47191 currentQueue = queue;
47192 queue = [];
47193 while (++queueIndex < len) {
47194 if (currentQueue) {
47195 currentQueue[queueIndex].run();
47196 }
47197 }
47198 queueIndex = -1;
47199 len = queue.length;
47200 }
47201 currentQueue = null;
47202 draining = false;
47203 runClearTimeout(timeout);
47204}
47205
47206process.nextTick = function (fun) {
47207 var args = new Array(arguments.length - 1);
47208 if (arguments.length > 1) {
47209 for (var i = 1; i < arguments.length; i++) {
47210 args[i - 1] = arguments[i];
47211 }
47212 }
47213 queue.push(new Item(fun, args));
47214 if (queue.length === 1 && !draining) {
47215 runTimeout(drainQueue);
47216 }
47217};
47218
47219// v8 likes predictible objects
47220function Item(fun, array) {
47221 this.fun = fun;
47222 this.array = array;
47223}
47224Item.prototype.run = function () {
47225 this.fun.apply(null, this.array);
47226};
47227process.title = 'browser';
47228process.browser = true;
47229process.env = {};
47230process.argv = [];
47231process.version = ''; // empty string to avoid regexp issues
47232process.versions = {};
47233
47234function noop() {}
47235
47236process.on = noop;
47237process.addListener = noop;
47238process.once = noop;
47239process.off = noop;
47240process.removeListener = noop;
47241process.removeAllListeners = noop;
47242process.emit = noop;
47243process.prependListener = noop;
47244process.prependOnceListener = noop;
47245
47246process.listeners = function (name) { return [] }
47247
47248process.binding = function (name) {
47249 throw new Error('process.binding is not supported');
47250};
47251
47252process.cwd = function () { return '/' };
47253process.chdir = function (dir) {
47254 throw new Error('process.chdir is not supported');
47255};
47256process.umask = function() { return 0; };
47257
47258
47259/***/ }),
47260
47261/***/ "./node_modules/stylis/stylis.js":
47262/*!***************************************!*\
47263 !*** ./node_modules/stylis/stylis.js ***!
47264 \***************************************/
47265/*! no static exports found */
47266/***/ (function(module, exports, __webpack_require__) {
47267
47268/*
47269 * __ ___
47270 * _____/ /___ __/ (_)____
47271 * / ___/ __/ / / / / / ___/
47272 * (__ ) /_/ /_/ / / (__ )
47273 * /____/\__/\__, /_/_/____/
47274 * /____/
47275 *
47276 * light - weight css preprocessor @licence MIT
47277 */
47278(function (factory) {/* eslint-disable */
47279 true ? (module['exports'] = factory(null)) :
47280 undefined
47281}(/** @param {*=} options */function factory (options) {/* eslint-disable */
47282
47283 'use strict'
47284
47285 /**
47286 * Notes
47287 *
47288 * The ['<method name>'] pattern is used to support closure compiler
47289 * the jsdoc signatures are also used to the same effect
47290 *
47291 * ----
47292 *
47293 * int + int + int === n4 [faster]
47294 *
47295 * vs
47296 *
47297 * int === n1 && int === n2 && int === n3
47298 *
47299 * ----
47300 *
47301 * switch (int) { case ints...} [faster]
47302 *
47303 * vs
47304 *
47305 * if (int == 1 && int === 2 ...)
47306 *
47307 * ----
47308 *
47309 * The (first*n1 + second*n2 + third*n3) format used in the property parser
47310 * is a simple way to hash the sequence of characters
47311 * taking into account the index they occur in
47312 * since any number of 3 character sequences could produce duplicates.
47313 *
47314 * On the other hand sequences that are directly tied to the index of the character
47315 * resolve a far more accurate measure, it's also faster
47316 * to evaluate one condition in a switch statement
47317 * than three in an if statement regardless of the added math.
47318 *
47319 * This allows the vendor prefixer to be both small and fast.
47320 */
47321
47322 var nullptn = /^\0+/g /* matches leading null characters */
47323 var formatptn = /[\0\r\f]/g /* matches new line, null and formfeed characters */
47324 var colonptn = /: */g /* splits animation rules */
47325 var cursorptn = /zoo|gra/ /* assert cursor varient */
47326 var transformptn = /([,: ])(transform)/g /* vendor prefix transform, older webkit */
47327 var animationptn = /,+\s*(?![^(]*[)])/g /* splits multiple shorthand notation animations */
47328 var propertiesptn = / +\s*(?![^(]*[)])/g /* animation properties */
47329 var elementptn = / *[\0] */g /* selector elements */
47330 var selectorptn = /,\r+?/g /* splits selectors */
47331 var andptn = /([\t\r\n ])*\f?&/g /* match & */
47332 var escapeptn = /:global\(((?:[^\(\)\[\]]*|\[.*\]|\([^\(\)]*\))*)\)/g /* matches :global(.*) */
47333 var invalidptn = /\W+/g /* removes invalid characters from keyframes */
47334 var keyframeptn = /@(k\w+)\s*(\S*)\s*/ /* matches @keyframes $1 */
47335 var plcholdrptn = /::(place)/g /* match ::placeholder varient */
47336 var readonlyptn = /:(read-only)/g /* match :read-only varient */
47337 var beforeptn = /\s+(?=[{\];=:>])/g /* matches \s before ] ; = : */
47338 var afterptn = /([[}=:>])\s+/g /* matches \s after characters [ } = : */
47339 var tailptn = /(\{[^{]+?);(?=\})/g /* matches tail semi-colons ;} */
47340 var whiteptn = /\s{2,}/g /* matches repeating whitespace */
47341 var pseudoptn = /([^\(])(:+) */g /* pseudo element */
47342 var writingptn = /[svh]\w+-[tblr]{2}/ /* match writing mode property values */
47343 var gradientptn = /([\w-]+t\()/g /* match *gradient property */
47344 var supportsptn = /\(\s*(.*)\s*\)/g /* match supports (groups) */
47345 var propertyptn = /([\s\S]*?);/g /* match properties leading semicolon */
47346 var selfptn = /-self|flex-/g /* match flex- and -self in align-self: flex-*; */
47347 var pseudofmt = /[^]*?(:[rp][el]a[\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */
47348 var trimptn = /[ \t]+$/ /* match tail whitspace */
47349 var dimensionptn = /stretch|:\s*\w+\-(?:conte|avail)/ /* match max/min/fit-content, fill-available */
47350 var imgsrcptn = /([^-])(image-set\()/
47351
47352 /* vendors */
47353 var webkit = '-webkit-'
47354 var moz = '-moz-'
47355 var ms = '-ms-'
47356
47357 /* character codes */
47358 var SEMICOLON = 59 /* ; */
47359 var CLOSEBRACES = 125 /* } */
47360 var OPENBRACES = 123 /* { */
47361 var OPENPARENTHESES = 40 /* ( */
47362 var CLOSEPARENTHESES = 41 /* ) */
47363 var OPENBRACKET = 91 /* [ */
47364 var CLOSEBRACKET = 93 /* ] */
47365 var NEWLINE = 10 /* \n */
47366 var CARRIAGE = 13 /* \r */
47367 var TAB = 9 /* \t */
47368 var AT = 64 /* @ */
47369 var SPACE = 32 /* */
47370 var AND = 38 /* & */
47371 var DASH = 45 /* - */
47372 var UNDERSCORE = 95 /* _ */
47373 var STAR = 42 /* * */
47374 var COMMA = 44 /* , */
47375 var COLON = 58 /* : */
47376 var SINGLEQUOTE = 39 /* ' */
47377 var DOUBLEQUOTE = 34 /* " */
47378 var FOWARDSLASH = 47 /* / */
47379 var GREATERTHAN = 62 /* > */
47380 var PLUS = 43 /* + */
47381 var TILDE = 126 /* ~ */
47382 var NULL = 0 /* \0 */
47383 var FORMFEED = 12 /* \f */
47384 var VERTICALTAB = 11 /* \v */
47385
47386 /* special identifiers */
47387 var KEYFRAME = 107 /* k */
47388 var MEDIA = 109 /* m */
47389 var SUPPORTS = 115 /* s */
47390 var PLACEHOLDER = 112 /* p */
47391 var READONLY = 111 /* o */
47392 var IMPORT = 105 /* <at>i */
47393 var CHARSET = 99 /* <at>c */
47394 var DOCUMENT = 100 /* <at>d */
47395 var PAGE = 112 /* <at>p */
47396
47397 var column = 1 /* current column */
47398 var line = 1 /* current line numebr */
47399 var pattern = 0 /* :pattern */
47400
47401 var cascade = 1 /* #id h1 h2 vs h1#id h2#id */
47402 var prefix = 1 /* vendor prefix */
47403 var escape = 1 /* escape :global() pattern */
47404 var compress = 0 /* compress output */
47405 var semicolon = 0 /* no/semicolon option */
47406 var preserve = 0 /* preserve empty selectors */
47407
47408 /* empty reference */
47409 var array = []
47410
47411 /* plugins */
47412 var plugins = []
47413 var plugged = 0
47414 var should = null
47415
47416 /* plugin context */
47417 var POSTS = -2
47418 var PREPS = -1
47419 var UNKWN = 0
47420 var PROPS = 1
47421 var BLCKS = 2
47422 var ATRUL = 3
47423
47424 /* plugin newline context */
47425 var unkwn = 0
47426
47427 /* keyframe animation */
47428 var keyed = 1
47429 var key = ''
47430
47431 /* selector namespace */
47432 var nscopealt = ''
47433 var nscope = ''
47434
47435 /**
47436 * Compile
47437 *
47438 * @param {Array<string>} parent
47439 * @param {Array<string>} current
47440 * @param {string} body
47441 * @param {number} id
47442 * @param {number} depth
47443 * @return {string}
47444 */
47445 function compile (parent, current, body, id, depth) {
47446 var bracket = 0 /* brackets [] */
47447 var comment = 0 /* comments /* // or /* */
47448 var parentheses = 0 /* functions () */
47449 var quote = 0 /* quotes '', "" */
47450
47451 var first = 0 /* first character code */
47452 var second = 0 /* second character code */
47453 var code = 0 /* current character code */
47454 var tail = 0 /* previous character code */
47455 var trail = 0 /* character before previous code */
47456 var peak = 0 /* previous non-whitespace code */
47457
47458 var counter = 0 /* count sequence termination */
47459 var context = 0 /* track current context */
47460 var atrule = 0 /* track @at-rule context */
47461 var pseudo = 0 /* track pseudo token index */
47462 var caret = 0 /* current character index */
47463 var format = 0 /* control character formating context */
47464 var insert = 0 /* auto semicolon insertion */
47465 var invert = 0 /* inverted selector pattern */
47466 var length = 0 /* generic length address */
47467 var eof = body.length /* end of file(length) */
47468 var eol = eof - 1 /* end of file(characters) */
47469
47470 var char = '' /* current character */
47471 var chars = '' /* current buffer of characters */
47472 var child = '' /* next buffer of characters */
47473 var out = '' /* compiled body */
47474 var children = '' /* compiled children */
47475 var flat = '' /* compiled leafs */
47476 var selector /* generic selector address */
47477 var result /* generic address */
47478
47479 // ...build body
47480 while (caret < eof) {
47481 code = body.charCodeAt(caret)
47482
47483 // eof varient
47484 if (caret === eol) {
47485 // last character + noop context, add synthetic padding for noop context to terminate
47486 if (comment + quote + parentheses + bracket !== 0) {
47487 if (comment !== 0) {
47488 code = comment === FOWARDSLASH ? NEWLINE : FOWARDSLASH
47489 }
47490
47491 quote = parentheses = bracket = 0
47492 eof++
47493 eol++
47494 }
47495 }
47496
47497 if (comment + quote + parentheses + bracket === 0) {
47498 // eof varient
47499 if (caret === eol) {
47500 if (format > 0) {
47501 chars = chars.replace(formatptn, '')
47502 }
47503
47504 if (chars.trim().length > 0) {
47505 switch (code) {
47506 case SPACE:
47507 case TAB:
47508 case SEMICOLON:
47509 case CARRIAGE:
47510 case NEWLINE: {
47511 break
47512 }
47513 default: {
47514 chars += body.charAt(caret)
47515 }
47516 }
47517
47518 code = SEMICOLON
47519 }
47520 }
47521
47522 // auto semicolon insertion
47523 if (insert === 1) {
47524 switch (code) {
47525 // false flags
47526 case OPENBRACES:
47527 case CLOSEBRACES:
47528 case SEMICOLON:
47529 case DOUBLEQUOTE:
47530 case SINGLEQUOTE:
47531 case OPENPARENTHESES:
47532 case CLOSEPARENTHESES:
47533 case COMMA: {
47534 insert = 0
47535 }
47536 // ignore
47537 case TAB:
47538 case CARRIAGE:
47539 case NEWLINE:
47540 case SPACE: {
47541 break
47542 }
47543 // valid
47544 default: {
47545 insert = 0
47546 length = caret
47547 first = code
47548 caret--
47549 code = SEMICOLON
47550
47551 while (length < eof) {
47552 switch (body.charCodeAt(length++)) {
47553 case NEWLINE:
47554 case CARRIAGE:
47555 case SEMICOLON: {
47556 ++caret
47557 code = first
47558 length = eof
47559 break
47560 }
47561 case COLON: {
47562 if (format > 0) {
47563 ++caret
47564 code = first
47565 }
47566 }
47567 case OPENBRACES: {
47568 length = eof
47569 }
47570 }
47571 }
47572 }
47573 }
47574 }
47575
47576 // token varient
47577 switch (code) {
47578 case OPENBRACES: {
47579 chars = chars.trim()
47580 first = chars.charCodeAt(0)
47581 counter = 1
47582 length = ++caret
47583
47584 while (caret < eof) {
47585 switch (code = body.charCodeAt(caret)) {
47586 case OPENBRACES: {
47587 counter++
47588 break
47589 }
47590 case CLOSEBRACES: {
47591 counter--
47592 break
47593 }
47594 case FOWARDSLASH: {
47595 switch (second = body.charCodeAt(caret + 1)) {
47596 // /*, //
47597 case STAR:
47598 case FOWARDSLASH: {
47599 caret = delimited(second, caret, eol, body)
47600 }
47601 }
47602 break
47603 }
47604 // given "[" === 91 & "]" === 93 hence forth 91 + 1 + 1 === 93
47605 case OPENBRACKET: {
47606 code++
47607 }
47608 // given "(" === 40 & ")" === 41 hence forth 40 + 1 === 41
47609 case OPENPARENTHESES: {
47610 code++
47611 }
47612 // quote tail delimiter is identical to the head delimiter hence noop,
47613 // fallthrough clauses have been shifted to the correct tail delimiter
47614 case DOUBLEQUOTE:
47615 case SINGLEQUOTE: {
47616 while (caret++ < eol) {
47617 if (body.charCodeAt(caret) === code) {
47618 break
47619 }
47620 }
47621 }
47622 }
47623
47624 if (counter === 0) {
47625 break
47626 }
47627
47628 caret++
47629 }
47630
47631 child = body.substring(length, caret)
47632
47633 if (first === NULL) {
47634 first = (chars = chars.replace(nullptn, '').trim()).charCodeAt(0)
47635 }
47636
47637 switch (first) {
47638 // @at-rule
47639 case AT: {
47640 if (format > 0) {
47641 chars = chars.replace(formatptn, '')
47642 }
47643
47644 second = chars.charCodeAt(1)
47645
47646 switch (second) {
47647 case DOCUMENT:
47648 case MEDIA:
47649 case SUPPORTS:
47650 case DASH: {
47651 selector = current
47652 break
47653 }
47654 default: {
47655 selector = array
47656 }
47657 }
47658
47659 child = compile(current, selector, child, second, depth+1)
47660 length = child.length
47661
47662 // preserve empty @at-rule
47663 if (preserve > 0 && length === 0) {
47664 length = chars.length
47665 }
47666
47667 // execute plugins, @at-rule context
47668 if (plugged > 0) {
47669 selector = select(array, chars, invert)
47670 result = proxy(ATRUL, child, selector, current, line, column, length, second, depth, id)
47671 chars = selector.join('')
47672
47673 if (result !== void 0) {
47674 if ((length = (child = result.trim()).length) === 0) {
47675 second = 0
47676 child = ''
47677 }
47678 }
47679 }
47680
47681 if (length > 0) {
47682 switch (second) {
47683 case SUPPORTS: {
47684 chars = chars.replace(supportsptn, supports)
47685 }
47686 case DOCUMENT:
47687 case MEDIA:
47688 case DASH: {
47689 child = chars + '{' + child + '}'
47690 break
47691 }
47692 case KEYFRAME: {
47693 chars = chars.replace(keyframeptn, '$1 $2' + (keyed > 0 ? key : ''))
47694 child = chars + '{' + child + '}'
47695
47696 if (prefix === 1 || (prefix === 2 && vendor('@'+child, 3))) {
47697 child = '@' + webkit + child + '@' + child
47698 } else {
47699 child = '@' + child
47700 }
47701 break
47702 }
47703 default: {
47704 child = chars + child
47705
47706 if (id === PAGE) {
47707 child = (out += child, '')
47708 }
47709 }
47710 }
47711 } else {
47712 child = ''
47713 }
47714
47715 break
47716 }
47717 // selector
47718 default: {
47719 child = compile(current, select(current, chars, invert), child, id, depth+1)
47720 }
47721 }
47722
47723 children += child
47724
47725 // reset
47726 context = 0
47727 insert = 0
47728 pseudo = 0
47729 format = 0
47730 invert = 0
47731 atrule = 0
47732 chars = ''
47733 child = ''
47734 code = body.charCodeAt(++caret)
47735 break
47736 }
47737 case CLOSEBRACES:
47738 case SEMICOLON: {
47739 chars = (format > 0 ? chars.replace(formatptn, '') : chars).trim()
47740
47741 if ((length = chars.length) > 1) {
47742 // monkey-patch missing colon
47743 if (pseudo === 0) {
47744 first = chars.charCodeAt(0)
47745
47746 // first character is a letter or dash, buffer has a space character
47747 if ((first === DASH || first > 96 && first < 123)) {
47748 length = (chars = chars.replace(' ', ':')).length
47749 }
47750 }
47751
47752 // execute plugins, property context
47753 if (plugged > 0) {
47754 if ((result = proxy(PROPS, chars, current, parent, line, column, out.length, id, depth, id)) !== void 0) {
47755 if ((length = (chars = result.trim()).length) === 0) {
47756 chars = '\0\0'
47757 }
47758 }
47759 }
47760
47761 first = chars.charCodeAt(0)
47762 second = chars.charCodeAt(1)
47763
47764 switch (first) {
47765 case NULL: {
47766 break
47767 }
47768 case AT: {
47769 if (second === IMPORT || second === CHARSET) {
47770 flat += chars + body.charAt(caret)
47771 break
47772 }
47773 }
47774 default: {
47775 if (chars.charCodeAt(length-1) === COLON) {
47776 break
47777 }
47778
47779 out += property(chars, first, second, chars.charCodeAt(2))
47780 }
47781 }
47782 }
47783
47784 // reset
47785 context = 0
47786 insert = 0
47787 pseudo = 0
47788 format = 0
47789 invert = 0
47790 chars = ''
47791 code = body.charCodeAt(++caret)
47792 break
47793 }
47794 }
47795 }
47796
47797 // parse characters
47798 switch (code) {
47799 case CARRIAGE:
47800 case NEWLINE: {
47801 // auto insert semicolon
47802 if (comment + quote + parentheses + bracket + semicolon === 0) {
47803 // valid non-whitespace characters that
47804 // may precede a newline
47805 switch (peak) {
47806 case CLOSEPARENTHESES:
47807 case SINGLEQUOTE:
47808 case DOUBLEQUOTE:
47809 case AT:
47810 case TILDE:
47811 case GREATERTHAN:
47812 case STAR:
47813 case PLUS:
47814 case FOWARDSLASH:
47815 case DASH:
47816 case COLON:
47817 case COMMA:
47818 case SEMICOLON:
47819 case OPENBRACES:
47820 case CLOSEBRACES: {
47821 break
47822 }
47823 default: {
47824 // current buffer has a colon
47825 if (pseudo > 0) {
47826 insert = 1
47827 }
47828 }
47829 }
47830 }
47831
47832 // terminate line comment
47833 if (comment === FOWARDSLASH) {
47834 comment = 0
47835 } else if (cascade + context === 0 && id !== KEYFRAME && chars.length > 0) {
47836 format = 1
47837 chars += '\0'
47838 }
47839
47840 // execute plugins, newline context
47841 if (plugged * unkwn > 0) {
47842 proxy(UNKWN, chars, current, parent, line, column, out.length, id, depth, id)
47843 }
47844
47845 // next line, reset column position
47846 column = 1
47847 line++
47848 break
47849 }
47850 case SEMICOLON:
47851 case CLOSEBRACES: {
47852 if (comment + quote + parentheses + bracket === 0) {
47853 column++
47854 break
47855 }
47856 }
47857 default: {
47858 // increment column position
47859 column++
47860
47861 // current character
47862 char = body.charAt(caret)
47863
47864 // remove comments, escape functions, strings, attributes and prepare selectors
47865 switch (code) {
47866 case TAB:
47867 case SPACE: {
47868 if (quote + bracket + comment === 0) {
47869 switch (tail) {
47870 case COMMA:
47871 case COLON:
47872 case TAB:
47873 case SPACE: {
47874 char = ''
47875 break
47876 }
47877 default: {
47878 if (code !== SPACE) {
47879 char = ' '
47880 }
47881 }
47882 }
47883 }
47884 break
47885 }
47886 // escape breaking control characters
47887 case NULL: {
47888 char = '\\0'
47889 break
47890 }
47891 case FORMFEED: {
47892 char = '\\f'
47893 break
47894 }
47895 case VERTICALTAB: {
47896 char = '\\v'
47897 break
47898 }
47899 // &
47900 case AND: {
47901 // inverted selector pattern i.e html &
47902 if (quote + comment + bracket === 0 && cascade > 0) {
47903 invert = 1
47904 format = 1
47905 char = '\f' + char
47906 }
47907 break
47908 }
47909 // ::p<l>aceholder, l
47910 // :read-on<l>y, l
47911 case 108: {
47912 if (quote + comment + bracket + pattern === 0 && pseudo > 0) {
47913 switch (caret - pseudo) {
47914 // ::placeholder
47915 case 2: {
47916 if (tail === PLACEHOLDER && body.charCodeAt(caret-3) === COLON) {
47917 pattern = tail
47918 }
47919 }
47920 // :read-only
47921 case 8: {
47922 if (trail === READONLY) {
47923 pattern = trail
47924 }
47925 }
47926 }
47927 }
47928 break
47929 }
47930 // :<pattern>
47931 case COLON: {
47932 if (quote + comment + bracket === 0) {
47933 pseudo = caret
47934 }
47935 break
47936 }
47937 // selectors
47938 case COMMA: {
47939 if (comment + parentheses + quote + bracket === 0) {
47940 format = 1
47941 char += '\r'
47942 }
47943 break
47944 }
47945 // quotes
47946 case DOUBLEQUOTE:
47947 case SINGLEQUOTE: {
47948 if (comment === 0) {
47949 quote = quote === code ? 0 : (quote === 0 ? code : quote)
47950 }
47951 break
47952 }
47953 // attributes
47954 case OPENBRACKET: {
47955 if (quote + comment + parentheses === 0) {
47956 bracket++
47957 }
47958 break
47959 }
47960 case CLOSEBRACKET: {
47961 if (quote + comment + parentheses === 0) {
47962 bracket--
47963 }
47964 break
47965 }
47966 // functions
47967 case CLOSEPARENTHESES: {
47968 if (quote + comment + bracket === 0) {
47969 parentheses--
47970 }
47971 break
47972 }
47973 case OPENPARENTHESES: {
47974 if (quote + comment + bracket === 0) {
47975 if (context === 0) {
47976 switch (tail*2 + trail*3) {
47977 // :matches
47978 case 533: {
47979 break
47980 }
47981 // :global, :not, :nth-child etc...
47982 default: {
47983 counter = 0
47984 context = 1
47985 }
47986 }
47987 }
47988
47989 parentheses++
47990 }
47991 break
47992 }
47993 case AT: {
47994 if (comment + parentheses + quote + bracket + pseudo + atrule === 0) {
47995 atrule = 1
47996 }
47997 break
47998 }
47999 // block/line comments
48000 case STAR:
48001 case FOWARDSLASH: {
48002 if (quote + bracket + parentheses > 0) {
48003 break
48004 }
48005
48006 switch (comment) {
48007 // initialize line/block comment context
48008 case 0: {
48009 switch (code*2 + body.charCodeAt(caret+1)*3) {
48010 // //
48011 case 235: {
48012 comment = FOWARDSLASH
48013 break
48014 }
48015 // /*
48016 case 220: {
48017 length = caret
48018 comment = STAR
48019 break
48020 }
48021 }
48022 break
48023 }
48024 // end block comment context
48025 case STAR: {
48026 if (code === FOWARDSLASH && tail === STAR && length + 2 !== caret) {
48027 // /*<!> ... */, !
48028 if (body.charCodeAt(length+2) === 33) {
48029 out += body.substring(length, caret+1)
48030 }
48031 char = ''
48032 comment = 0
48033 }
48034 }
48035 }
48036 }
48037 }
48038
48039 // ignore comment blocks
48040 if (comment === 0) {
48041 // aggressive isolation mode, divide each individual selector
48042 // including selectors in :not function but excluding selectors in :global function
48043 if (cascade + quote + bracket + atrule === 0 && id !== KEYFRAME && code !== SEMICOLON) {
48044 switch (code) {
48045 case COMMA:
48046 case TILDE:
48047 case GREATERTHAN:
48048 case PLUS:
48049 case CLOSEPARENTHESES:
48050 case OPENPARENTHESES: {
48051 if (context === 0) {
48052 // outside of an isolated context i.e nth-child(<...>)
48053 switch (tail) {
48054 case TAB:
48055 case SPACE:
48056 case NEWLINE:
48057 case CARRIAGE: {
48058 char = char + '\0'
48059 break
48060 }
48061 default: {
48062 char = '\0' + char + (code === COMMA ? '' : '\0')
48063 }
48064 }
48065 format = 1
48066 } else {
48067 // within an isolated context, sleep untill it's terminated
48068 switch (code) {
48069 case OPENPARENTHESES: {
48070 // :globa<l>(
48071 if (pseudo + 7 === caret && tail === 108) {
48072 pseudo = 0
48073 }
48074 context = ++counter
48075 break
48076 }
48077 case CLOSEPARENTHESES: {
48078 if ((context = --counter) === 0) {
48079 format = 1
48080 char += '\0'
48081 }
48082 break
48083 }
48084 }
48085 }
48086 break
48087 }
48088 case TAB:
48089 case SPACE: {
48090 switch (tail) {
48091 case NULL:
48092 case OPENBRACES:
48093 case CLOSEBRACES:
48094 case SEMICOLON:
48095 case COMMA:
48096 case FORMFEED:
48097 case TAB:
48098 case SPACE:
48099 case NEWLINE:
48100 case CARRIAGE: {
48101 break
48102 }
48103 default: {
48104 // ignore in isolated contexts
48105 if (context === 0) {
48106 format = 1
48107 char += '\0'
48108 }
48109 }
48110 }
48111 }
48112 }
48113 }
48114
48115 // concat buffer of characters
48116 chars += char
48117
48118 // previous non-whitespace character code
48119 if (code !== SPACE && code !== TAB) {
48120 peak = code
48121 }
48122 }
48123 }
48124 }
48125
48126 // tail character codes
48127 trail = tail
48128 tail = code
48129
48130 // visit every character
48131 caret++
48132 }
48133
48134 length = out.length
48135
48136 // preserve empty selector
48137 if (preserve > 0) {
48138 if (length === 0 && children.length === 0 && (current[0].length === 0) === false) {
48139 if (id !== MEDIA || (current.length === 1 && (cascade > 0 ? nscopealt : nscope) === current[0])) {
48140 length = current.join(',').length + 2
48141 }
48142 }
48143 }
48144
48145 if (length > 0) {
48146 // cascade isolation mode?
48147 selector = cascade === 0 && id !== KEYFRAME ? isolate(current) : current
48148
48149 // execute plugins, block context
48150 if (plugged > 0) {
48151 result = proxy(BLCKS, out, selector, parent, line, column, length, id, depth, id)
48152
48153 if (result !== void 0 && (out = result).length === 0) {
48154 return flat + out + children
48155 }
48156 }
48157
48158 out = selector.join(',') + '{' + out + '}'
48159
48160 if (prefix*pattern !== 0) {
48161 if (prefix === 2 && !vendor(out, 2))
48162 pattern = 0
48163
48164 switch (pattern) {
48165 // ::read-only
48166 case READONLY: {
48167 out = out.replace(readonlyptn, ':'+moz+'$1')+out
48168 break
48169 }
48170 // ::placeholder
48171 case PLACEHOLDER: {
48172 out = (
48173 out.replace(plcholdrptn, '::' + webkit + 'input-$1') +
48174 out.replace(plcholdrptn, '::' + moz + '$1') +
48175 out.replace(plcholdrptn, ':' + ms + 'input-$1') + out
48176 )
48177 break
48178 }
48179 }
48180
48181 pattern = 0
48182 }
48183 }
48184
48185 return flat + out + children
48186 }
48187
48188 /**
48189 * Select
48190 *
48191 * @param {Array<string>} parent
48192 * @param {string} current
48193 * @param {number} invert
48194 * @return {Array<string>}
48195 */
48196 function select (parent, current, invert) {
48197 var selectors = current.trim().split(selectorptn)
48198 var out = selectors
48199
48200 var length = selectors.length
48201 var l = parent.length
48202
48203 switch (l) {
48204 // 0-1 parent selectors
48205 case 0:
48206 case 1: {
48207 for (var i = 0, selector = l === 0 ? '' : parent[0] + ' '; i < length; ++i) {
48208 out[i] = scope(selector, out[i], invert, l).trim()
48209 }
48210 break
48211 }
48212 // >2 parent selectors, nested
48213 default: {
48214 for (var i = 0, j = 0, out = []; i < length; ++i) {
48215 for (var k = 0; k < l; ++k) {
48216 out[j++] = scope(parent[k] + ' ', selectors[i], invert, l).trim()
48217 }
48218 }
48219 }
48220 }
48221
48222 return out
48223 }
48224
48225 /**
48226 * Scope
48227 *
48228 * @param {string} parent
48229 * @param {string} current
48230 * @param {number} invert
48231 * @param {number} level
48232 * @return {string}
48233 */
48234 function scope (parent, current, invert, level) {
48235 var selector = current
48236 var code = selector.charCodeAt(0)
48237
48238 // trim leading whitespace
48239 if (code < 33) {
48240 code = (selector = selector.trim()).charCodeAt(0)
48241 }
48242
48243 switch (code) {
48244 // &
48245 case AND: {
48246 switch (cascade + level) {
48247 case 0:
48248 case 1: {
48249 if (parent.trim().length === 0) {
48250 break
48251 }
48252 }
48253 default: {
48254 return selector.replace(andptn, '$1'+parent.trim())
48255 }
48256 }
48257 break
48258 }
48259 // :
48260 case COLON: {
48261 switch (selector.charCodeAt(1)) {
48262 // g in :global
48263 case 103: {
48264 if (escape > 0 && cascade > 0) {
48265 return selector.replace(escapeptn, '$1').replace(andptn, '$1'+nscope)
48266 }
48267 break
48268 }
48269 default: {
48270 // :hover
48271 return parent.trim() + selector.replace(andptn, '$1'+parent.trim())
48272 }
48273 }
48274 }
48275 default: {
48276 // html &
48277 if (invert*cascade > 0 && selector.indexOf('\f') > 0) {
48278 return selector.replace(andptn, (parent.charCodeAt(0) === COLON ? '' : '$1')+parent.trim())
48279 }
48280 }
48281 }
48282
48283 return parent + selector
48284 }
48285
48286 /**
48287 * Property
48288 *
48289 * @param {string} input
48290 * @param {number} first
48291 * @param {number} second
48292 * @param {number} third
48293 * @return {string}
48294 */
48295 function property (input, first, second, third) {
48296 var index = 0
48297 var out = input + ';'
48298 var hash = (first*2) + (second*3) + (third*4)
48299 var cache
48300
48301 // animation: a, n, i characters
48302 if (hash === 944) {
48303 return animation(out)
48304 } else if (prefix === 0 || (prefix === 2 && !vendor(out, 1))) {
48305 return out
48306 }
48307
48308 // vendor prefix
48309 switch (hash) {
48310 // text-decoration/text-size-adjust/text-shadow/text-align/text-transform: t, e, x
48311 case 1015: {
48312 // text-shadow/text-align/text-transform, a
48313 return out.charCodeAt(10) === 97 ? webkit + out + out : out
48314 }
48315 // filter/fill f, i, l
48316 case 951: {
48317 // filter, t
48318 return out.charCodeAt(3) === 116 ? webkit + out + out : out
48319 }
48320 // color/column, c, o, l
48321 case 963: {
48322 // column, n
48323 return out.charCodeAt(5) === 110 ? webkit + out + out : out
48324 }
48325 // box-decoration-break, b, o, x
48326 case 1009: {
48327 if (out.charCodeAt(4) !== 100) {
48328 break
48329 }
48330 }
48331 // mask, m, a, s
48332 // clip-path, c, l, i
48333 case 969:
48334 case 942: {
48335 return webkit + out + out
48336 }
48337 // appearance: a, p, p
48338 case 978: {
48339 return webkit + out + moz + out + out
48340 }
48341 // hyphens: h, y, p
48342 // user-select: u, s, e
48343 case 1019:
48344 case 983: {
48345 return webkit + out + moz + out + ms + out + out
48346 }
48347 // background/backface-visibility, b, a, c
48348 case 883: {
48349 // backface-visibility, -
48350 if (out.charCodeAt(8) === DASH) {
48351 return webkit + out + out
48352 }
48353
48354 // image-set(...)
48355 if (out.indexOf('image-set(', 11) > 0) {
48356 return out.replace(imgsrcptn, '$1'+webkit+'$2') + out
48357 }
48358
48359 return out
48360 }
48361 // flex: f, l, e
48362 case 932: {
48363 if (out.charCodeAt(4) === DASH) {
48364 switch (out.charCodeAt(5)) {
48365 // flex-grow, g
48366 case 103: {
48367 return webkit + 'box-' + out.replace('-grow', '') + webkit + out + ms + out.replace('grow', 'positive') + out
48368 }
48369 // flex-shrink, s
48370 case 115: {
48371 return webkit + out + ms + out.replace('shrink', 'negative') + out
48372 }
48373 // flex-basis, b
48374 case 98: {
48375 return webkit + out + ms + out.replace('basis', 'preferred-size') + out
48376 }
48377 }
48378 }
48379
48380 return webkit + out + ms + out + out
48381 }
48382 // order: o, r, d
48383 case 964: {
48384 return webkit + out + ms + 'flex' + '-' + out + out
48385 }
48386 // justify-items/justify-content, j, u, s
48387 case 1023: {
48388 // justify-content, c
48389 if (out.charCodeAt(8) !== 99) {
48390 break
48391 }
48392
48393 cache = out.substring(out.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify')
48394 return webkit + 'box-pack' + cache + webkit + out + ms + 'flex-pack' + cache + out
48395 }
48396 // cursor, c, u, r
48397 case 1005: {
48398 return cursorptn.test(out) ? out.replace(colonptn, ':' + webkit) + out.replace(colonptn, ':' + moz) + out : out
48399 }
48400 // writing-mode, w, r, i
48401 case 1000: {
48402 cache = out.substring(13).trim()
48403 index = cache.indexOf('-') + 1
48404
48405 switch (cache.charCodeAt(0)+cache.charCodeAt(index)) {
48406 // vertical-lr
48407 case 226: {
48408 cache = out.replace(writingptn, 'tb')
48409 break
48410 }
48411 // vertical-rl
48412 case 232: {
48413 cache = out.replace(writingptn, 'tb-rl')
48414 break
48415 }
48416 // horizontal-tb
48417 case 220: {
48418 cache = out.replace(writingptn, 'lr')
48419 break
48420 }
48421 default: {
48422 return out
48423 }
48424 }
48425
48426 return webkit + out + ms + cache + out
48427 }
48428 // position: sticky
48429 case 1017: {
48430 if (out.indexOf('sticky', 9) === -1) {
48431 return out
48432 }
48433 }
48434 // display(flex/inline-flex/inline-box): d, i, s
48435 case 975: {
48436 index = (out = input).length - 10
48437 cache = (out.charCodeAt(index) === 33 ? out.substring(0, index) : out).substring(input.indexOf(':', 7) + 1).trim()
48438
48439 switch (hash = cache.charCodeAt(0) + (cache.charCodeAt(7)|0)) {
48440 // inline-
48441 case 203: {
48442 // inline-box
48443 if (cache.charCodeAt(8) < 111) {
48444 break
48445 }
48446 }
48447 // inline-box/sticky
48448 case 115: {
48449 out = out.replace(cache, webkit+cache)+';'+out
48450 break
48451 }
48452 // inline-flex
48453 // flex
48454 case 207:
48455 case 102: {
48456 out = (
48457 out.replace(cache, webkit+(hash > 102 ? 'inline-' : '')+'box')+';'+
48458 out.replace(cache, webkit+cache)+';'+
48459 out.replace(cache, ms+cache+'box')+';'+
48460 out
48461 )
48462 }
48463 }
48464
48465 return out + ';'
48466 }
48467 // align-items, align-center, align-self: a, l, i, -
48468 case 938: {
48469 if (out.charCodeAt(5) === DASH) {
48470 switch (out.charCodeAt(6)) {
48471 // align-items, i
48472 case 105: {
48473 cache = out.replace('-items', '')
48474 return webkit + out + webkit + 'box-' + cache + ms + 'flex-' + cache + out
48475 }
48476 // align-self, s
48477 case 115: {
48478 return webkit + out + ms + 'flex-item-' + out.replace(selfptn, '') + out
48479 }
48480 // align-content
48481 default: {
48482 return webkit + out + ms + 'flex-line-pack' + out.replace('align-content', '').replace(selfptn, '') + out
48483 }
48484 }
48485 }
48486 break
48487 }
48488 // min/max
48489 case 973:
48490 case 989: {
48491 // min-/max- height/width/block-size/inline-size
48492 if (out.charCodeAt(3) !== DASH || out.charCodeAt(4) === 122) {
48493 break
48494 }
48495 }
48496 // height/width: min-content / width: max-content
48497 case 931:
48498 case 953: {
48499 if (dimensionptn.test(input) === true) {
48500 // stretch
48501 if ((cache = input.substring(input.indexOf(':') + 1)).charCodeAt(0) === 115)
48502 return property(input.replace('stretch', 'fill-available'), first, second, third).replace(':fill-available', ':stretch')
48503 else
48504 return out.replace(cache, webkit + cache) + out.replace(cache, moz + cache.replace('fill-', '')) + out
48505 }
48506 break
48507 }
48508 // transform, transition: t, r, a
48509 case 962: {
48510 out = webkit + out + (out.charCodeAt(5) === 102 ? ms + out : '') + out
48511
48512 // transitions
48513 if (second + third === 211 && out.charCodeAt(13) === 105 && out.indexOf('transform', 10) > 0) {
48514 return out.substring(0, out.indexOf(';', 27) + 1).replace(transformptn, '$1' + webkit + '$2') + out
48515 }
48516
48517 break
48518 }
48519 }
48520
48521 return out
48522 }
48523
48524 /**
48525 * Vendor
48526 *
48527 * @param {string} content
48528 * @param {number} context
48529 * @return {boolean}
48530 */
48531 function vendor (content, context) {
48532 var index = content.indexOf(context === 1 ? ':' : '{')
48533 var key = content.substring(0, context !== 3 ? index : 10)
48534 var value = content.substring(index + 1, content.length - 1)
48535
48536 return should(context !== 2 ? key : key.replace(pseudofmt, '$1'), value, context)
48537 }
48538
48539 /**
48540 * Supports
48541 *
48542 * @param {string} match
48543 * @param {string} group
48544 * @return {string}
48545 */
48546 function supports (match, group) {
48547 var out = property(group, group.charCodeAt(0), group.charCodeAt(1), group.charCodeAt(2))
48548
48549 return out !== group+';' ? out.replace(propertyptn, ' or ($1)').substring(4) : '('+group+')'
48550 }
48551
48552 /**
48553 * Animation
48554 *
48555 * @param {string} input
48556 * @return {string}
48557 */
48558 function animation (input) {
48559 var length = input.length
48560 var index = input.indexOf(':', 9) + 1
48561 var declare = input.substring(0, index).trim()
48562 var out = input.substring(index, length-1).trim()
48563
48564 switch (input.charCodeAt(9)*keyed) {
48565 case 0: {
48566 break
48567 }
48568 // animation-*, -
48569 case DASH: {
48570 // animation-name, n
48571 if (input.charCodeAt(10) !== 110) {
48572 break
48573 }
48574 }
48575 // animation/animation-name
48576 default: {
48577 // split in case of multiple animations
48578 var list = out.split((out = '', animationptn))
48579
48580 for (var i = 0, index = 0, length = list.length; i < length; index = 0, ++i) {
48581 var value = list[i]
48582 var items = value.split(propertiesptn)
48583
48584 while (value = items[index]) {
48585 var peak = value.charCodeAt(0)
48586
48587 if (keyed === 1 && (
48588 // letters
48589 (peak > AT && peak < 90) || (peak > 96 && peak < 123) || peak === UNDERSCORE ||
48590 // dash but not in sequence i.e --
48591 (peak === DASH && value.charCodeAt(1) !== DASH)
48592 )) {
48593 // not a number/function
48594 switch (isNaN(parseFloat(value)) + (value.indexOf('(') !== -1)) {
48595 case 1: {
48596 switch (value) {
48597 // not a valid reserved keyword
48598 case 'infinite': case 'alternate': case 'backwards': case 'running':
48599 case 'normal': case 'forwards': case 'both': case 'none': case 'linear':
48600 case 'ease': case 'ease-in': case 'ease-out': case 'ease-in-out':
48601 case 'paused': case 'reverse': case 'alternate-reverse': case 'inherit':
48602 case 'initial': case 'unset': case 'step-start': case 'step-end': {
48603 break
48604 }
48605 default: {
48606 value += key
48607 }
48608 }
48609 }
48610 }
48611 }
48612
48613 items[index++] = value
48614 }
48615
48616 out += (i === 0 ? '' : ',') + items.join(' ')
48617 }
48618 }
48619 }
48620
48621 out = declare + out + ';'
48622
48623 if (prefix === 1 || (prefix === 2 && vendor(out, 1)))
48624 return webkit + out + out
48625
48626 return out
48627 }
48628
48629 /**
48630 * Isolate
48631 *
48632 * @param {Array<string>} current
48633 */
48634 function isolate (current) {
48635 for (var i = 0, length = current.length, selector = Array(length), padding, element; i < length; ++i) {
48636 // split individual elements in a selector i.e h1 h2 === [h1, h2]
48637 var elements = current[i].split(elementptn)
48638 var out = ''
48639
48640 for (var j = 0, size = 0, tail = 0, code = 0, l = elements.length; j < l; ++j) {
48641 // empty element
48642 if ((size = (element = elements[j]).length) === 0 && l > 1) {
48643 continue
48644 }
48645
48646 tail = out.charCodeAt(out.length-1)
48647 code = element.charCodeAt(0)
48648 padding = ''
48649
48650 if (j !== 0) {
48651 // determine if we need padding
48652 switch (tail) {
48653 case STAR:
48654 case TILDE:
48655 case GREATERTHAN:
48656 case PLUS:
48657 case SPACE:
48658 case OPENPARENTHESES: {
48659 break
48660 }
48661 default: {
48662 padding = ' '
48663 }
48664 }
48665 }
48666
48667 switch (code) {
48668 case AND: {
48669 element = padding + nscopealt
48670 }
48671 case TILDE:
48672 case GREATERTHAN:
48673 case PLUS:
48674 case SPACE:
48675 case CLOSEPARENTHESES:
48676 case OPENPARENTHESES: {
48677 break
48678 }
48679 case OPENBRACKET: {
48680 element = padding + element + nscopealt
48681 break
48682 }
48683 case COLON: {
48684 switch (element.charCodeAt(1)*2 + element.charCodeAt(2)*3) {
48685 // :global
48686 case 530: {
48687 if (escape > 0) {
48688 element = padding + element.substring(8, size - 1)
48689 break
48690 }
48691 }
48692 // :hover, :nth-child(), ...
48693 default: {
48694 if (j < 1 || elements[j-1].length < 1) {
48695 element = padding + nscopealt + element
48696 }
48697 }
48698 }
48699 break
48700 }
48701 case COMMA: {
48702 padding = ''
48703 }
48704 default: {
48705 if (size > 1 && element.indexOf(':') > 0) {
48706 element = padding + element.replace(pseudoptn, '$1' + nscopealt + '$2')
48707 } else {
48708 element = padding + element + nscopealt
48709 }
48710 }
48711 }
48712
48713 out += element
48714 }
48715
48716 selector[i] = out.replace(formatptn, '').trim()
48717 }
48718
48719 return selector
48720 }
48721
48722 /**
48723 * Proxy
48724 *
48725 * @param {number} context
48726 * @param {string} content
48727 * @param {Array<string>} selectors
48728 * @param {Array<string>} parents
48729 * @param {number} line
48730 * @param {number} column
48731 * @param {number} length
48732 * @param {number} id
48733 * @param {number} depth
48734 * @param {number} at
48735 * @return {(string|void|*)}
48736 */
48737 function proxy (context, content, selectors, parents, line, column, length, id, depth, at) {
48738 for (var i = 0, out = content, next; i < plugged; ++i) {
48739 switch (next = plugins[i].call(stylis, context, out, selectors, parents, line, column, length, id, depth, at)) {
48740 case void 0:
48741 case false:
48742 case true:
48743 case null: {
48744 break
48745 }
48746 default: {
48747 out = next
48748 }
48749 }
48750 }
48751 if (out !== content) {
48752 return out
48753 }
48754 }
48755
48756 /**
48757 * @param {number} code
48758 * @param {number} index
48759 * @param {number} length
48760 * @param {string} body
48761 * @return {number}
48762 */
48763 function delimited (code, index, length, body) {
48764 for (var i = index + 1; i < length; ++i) {
48765 switch (body.charCodeAt(i)) {
48766 // /*
48767 case FOWARDSLASH: {
48768 if (code === STAR) {
48769 if (body.charCodeAt(i - 1) === STAR && index + 2 !== i) {
48770 return i + 1
48771 }
48772 }
48773 break
48774 }
48775 // //
48776 case NEWLINE: {
48777 if (code === FOWARDSLASH) {
48778 return i + 1
48779 }
48780 }
48781 }
48782 }
48783
48784 return i
48785 }
48786
48787 /**
48788 * @param {number} type
48789 * @param {number} index
48790 * @param {number} length
48791 * @param {number} find
48792 * @param {string} body
48793 * @return {number}
48794 */
48795 function match (type, index, length, body) {
48796 for (var i = index + 1; i < length; ++i) {
48797 switch (body.charCodeAt(i)) {
48798 case type: {
48799 return i
48800 }
48801 }
48802 }
48803
48804 return i
48805 }
48806
48807 /**
48808 * Minify
48809 *
48810 * @param {(string|*)} output
48811 * @return {string}
48812 */
48813 function minify (output) {
48814 return output
48815 .replace(formatptn, '')
48816 .replace(beforeptn, '')
48817 .replace(afterptn, '$1')
48818 .replace(tailptn, '$1')
48819 .replace(whiteptn, ' ')
48820 }
48821
48822 /**
48823 * Use
48824 *
48825 * @param {(Array<function(...?)>|function(...?)|number|void)?} plugin
48826 */
48827 function use (plugin) {
48828 switch (plugin) {
48829 case void 0:
48830 case null: {
48831 plugged = plugins.length = 0
48832 break
48833 }
48834 default: {
48835 if (typeof plugin === 'function') {
48836 plugins[plugged++] = plugin
48837 } else if (typeof plugin === 'object') {
48838 for (var i = 0, length = plugin.length; i < length; ++i) {
48839 use(plugin[i])
48840 }
48841 } else {
48842 unkwn = !!plugin|0
48843 }
48844 }
48845 }
48846
48847 return use
48848 }
48849
48850 /**
48851 * Set
48852 *
48853 * @param {*} options
48854 */
48855 function set (options) {
48856 for (var name in options) {
48857 var value = options[name]
48858 switch (name) {
48859 case 'keyframe': keyed = value|0; break
48860 case 'global': escape = value|0; break
48861 case 'cascade': cascade = value|0; break
48862 case 'compress': compress = value|0; break
48863 case 'semicolon': semicolon = value|0; break
48864 case 'preserve': preserve = value|0; break
48865 case 'prefix':
48866 should = null
48867
48868 if (!value) {
48869 prefix = 0
48870 } else if (typeof value !== 'function') {
48871 prefix = 1
48872 } else {
48873 prefix = 2
48874 should = value
48875 }
48876 }
48877 }
48878
48879 return set
48880 }
48881
48882 /**
48883 * Stylis
48884 *
48885 * @param {string} selector
48886 * @param {string} input
48887 * @return {*}
48888 */
48889 function stylis (selector, input) {
48890 if (this !== void 0 && this.constructor === stylis) {
48891 return factory(selector)
48892 }
48893
48894 // setup
48895 var ns = selector
48896 var code = ns.charCodeAt(0)
48897
48898 // trim leading whitespace
48899 if (code < 33) {
48900 code = (ns = ns.trim()).charCodeAt(0)
48901 }
48902
48903 // keyframe/animation namespace
48904 if (keyed > 0) {
48905 key = ns.replace(invalidptn, code === OPENBRACKET ? '' : '-')
48906 }
48907
48908 // reset, used to assert if a plugin is moneky-patching the return value
48909 code = 1
48910
48911 // cascade/isolate
48912 if (cascade === 1) {
48913 nscope = ns
48914 } else {
48915 nscopealt = ns
48916 }
48917
48918 var selectors = [nscope]
48919 var result
48920
48921 // execute plugins, pre-process context
48922 if (plugged > 0) {
48923 result = proxy(PREPS, input, selectors, selectors, line, column, 0, 0, 0, 0)
48924
48925 if (result !== void 0 && typeof result === 'string') {
48926 input = result
48927 }
48928 }
48929
48930 // build
48931 var output = compile(array, selectors, input, 0, 0)
48932
48933 // execute plugins, post-process context
48934 if (plugged > 0) {
48935 result = proxy(POSTS, output, selectors, selectors, line, column, output.length, 0, 0, 0)
48936
48937 // bypass minification
48938 if (result !== void 0 && typeof(output = result) !== 'string') {
48939 code = 0
48940 }
48941 }
48942
48943 // reset
48944 key = ''
48945 nscope = ''
48946 nscopealt = ''
48947 pattern = 0
48948 line = 1
48949 column = 1
48950
48951 return compress*code === 0 ? output : minify(output)
48952 }
48953
48954 stylis['use'] = use
48955 stylis['set'] = set
48956
48957 if (options !== void 0) {
48958 set(options)
48959 }
48960
48961 return stylis
48962}));
48963
48964
48965/***/ }),
48966
48967/***/ "./node_modules/webpack/buildin/global.js":
48968/*!***********************************!*\
48969 !*** (webpack)/buildin/global.js ***!
48970 \***********************************/
48971/*! no static exports found */
48972/***/ (function(module, exports) {
48973
48974var g;
48975
48976// This works in non-strict mode
48977g = (function() {
48978 return this;
48979})();
48980
48981try {
48982 // This works if eval is allowed (see CSP)
48983 g = g || new Function("return this")();
48984} catch (e) {
48985 // This works if the window reference is available
48986 if (typeof window === "object") g = window;
48987}
48988
48989// g can still be undefined, but nothing to do about it...
48990// We return undefined, instead of nothing here, so it's
48991// easier to handle this case. if(!global) { ...}
48992
48993module.exports = g;
48994
48995
48996/***/ }),
48997
48998/***/ "./node_modules/webpack/buildin/module.js":
48999/*!***********************************!*\
49000 !*** (webpack)/buildin/module.js ***!
49001 \***********************************/
49002/*! no static exports found */
49003/***/ (function(module, exports) {
49004
49005module.exports = function(module) {
49006 if (!module.webpackPolyfill) {
49007 module.deprecate = function() {};
49008 module.paths = [];
49009 // module.parent = undefined by default
49010 if (!module.children) module.children = [];
49011 Object.defineProperty(module, "loaded", {
49012 enumerable: true,
49013 get: function() {
49014 return module.l;
49015 }
49016 });
49017 Object.defineProperty(module, "id", {
49018 enumerable: true,
49019 get: function() {
49020 return module.i;
49021 }
49022 });
49023 module.webpackPolyfill = 1;
49024 }
49025 return module;
49026};
49027
49028
49029/***/ }),
49030
49031/***/ "./package.json":
49032/*!**********************!*\
49033 !*** ./package.json ***!
49034 \**********************/
49035/*! exports provided: name, version, description, main, keywords, scripts, repository, author, license, standard, dependencies, devDependencies, files, yarn-upgrade-all, sideEffects, husky, default */
49036/***/ (function(module) {
49037
49038module.exports = JSON.parse("{\"name\":\"mermaid\",\"version\":\"8.8.3\",\"description\":\"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.\",\"main\":\"dist/mermaid.core.js\",\"keywords\":[\"diagram\",\"markdown\",\"flowchart\",\"sequence diagram\",\"gantt\",\"class diagram\",\"git graph\"],\"scripts\":{\"build:development\":\"webpack --progress --colors\",\"build:production\":\"yarn build:development -p --config webpack.config.prod.babel.js\",\"build\":\"yarn build:development && yarn build:production\",\"postbuild\":\"documentation build src/mermaidAPI.js src/config.js --shallow -f md --markdown-toc false > docs/Setup.md\",\"build:watch\":\"yarn build --watch\",\"minify\":\"minify ./dist/mermaid.js > ./dist/mermaid.min.js\",\"release\":\"yarn build\",\"lint\":\"eslint src\",\"e2e:depr\":\"yarn lint && jest e2e --config e2e/jest.config.js\",\"cypress\":\"percy exec -- cypress run\",\"e2e\":\"start-server-and-test dev http://localhost:9000/ cypress\",\"e2e-upd\":\"yarn lint && jest e2e -u --config e2e/jest.config.js\",\"dev\":\"webpack-dev-server --config webpack.config.e2e.js\",\"test\":\"yarn lint && jest src/.*\",\"test:watch\":\"jest --watch src\",\"prepublishOnly\":\"yarn build && yarn test\",\"prepare\":\"yarn build\"},\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/knsv/mermaid\"},\"author\":\"Knut Sveidqvist\",\"license\":\"MIT\",\"standard\":{\"ignore\":[\"**/parser/*.js\",\"dist/**/*.js\",\"cypress/**/*.js\"],\"globals\":[\"page\"]},\"dependencies\":{\"@braintree/sanitize-url\":\"^3.1.0\",\"babel-eslint\":\"^10.1.0\",\"d3\":\"^5.7.0\",\"dagre\":\"^0.8.4\",\"dagre-d3\":\"^0.6.4\",\"entity-decode\":\"^2.0.2\",\"graphlib\":\"^2.1.7\",\"he\":\"^1.2.0\",\"khroma\":\"^1.1.0\",\"minify\":\"^4.1.1\",\"moment-mini\":\"^2.22.1\",\"stylis\":\"^3.5.2\"},\"devDependencies\":{\"@babel/core\":\"^7.2.2\",\"@babel/preset-env\":\"^7.8.4\",\"@babel/register\":\"^7.0.0\",\"@percy/cypress\":\"*\",\"babel-core\":\"7.0.0-bridge.0\",\"babel-jest\":\"^24.9.0\",\"babel-loader\":\"^8.0.4\",\"coveralls\":\"^3.0.2\",\"css-loader\":\"^2.0.1\",\"css-to-string-loader\":\"^0.1.3\",\"cypress\":\"4.0.1\",\"documentation\":\"^12.0.1\",\"eslint\":\"^6.3.0\",\"eslint-config-prettier\":\"^6.3.0\",\"eslint-plugin-prettier\":\"^3.1.0\",\"husky\":\"^1.2.1\",\"identity-obj-proxy\":\"^3.0.0\",\"jest\":\"^24.9.0\",\"jison\":\"^0.4.18\",\"moment\":\"^2.23.0\",\"node-sass\":\"^4.12.0\",\"prettier\":\"^1.18.2\",\"puppeteer\":\"^1.17.0\",\"sass-loader\":\"^7.1.0\",\"start-server-and-test\":\"^1.10.6\",\"terser-webpack-plugin\":\"^2.2.2\",\"webpack\":\"^4.41.2\",\"webpack-bundle-analyzer\":\"^3.7.0\",\"webpack-cli\":\"^3.1.2\",\"webpack-dev-server\":\"^3.4.1\",\"webpack-node-externals\":\"^1.7.2\",\"yarn-upgrade-all\":\"^0.5.0\"},\"files\":[\"dist\"],\"yarn-upgrade-all\":{\"ignore\":[\"babel-core\"]},\"sideEffects\":[\"**/*.css\",\"**/*.scss\"],\"husky\":{\"hooks\":{\"pre-push\":\"yarn test\"}}}");
49039
49040/***/ }),
49041
49042/***/ "./src/config.js":
49043/*!***********************!*\
49044 !*** ./src/config.js ***!
49045 \***********************/
49046/*! exports provided: defaultConfig, updateCurrentConfig, setSiteConfig, setSiteConfigDelta, updateSiteConfig, getSiteConfig, setConfig, getConfig, sanitize, addDirective, reset */
49047/***/ (function(module, __webpack_exports__, __webpack_require__) {
49048
49049"use strict";
49050__webpack_require__.r(__webpack_exports__);
49051/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultConfig", function() { return defaultConfig; });
49052/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateCurrentConfig", function() { return updateCurrentConfig; });
49053/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setSiteConfig", function() { return setSiteConfig; });
49054/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setSiteConfigDelta", function() { return setSiteConfigDelta; });
49055/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateSiteConfig", function() { return updateSiteConfig; });
49056/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSiteConfig", function() { return getSiteConfig; });
49057/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConfig", function() { return setConfig; });
49058/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getConfig", function() { return getConfig; });
49059/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sanitize", function() { return sanitize; });
49060/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addDirective", function() { return addDirective; });
49061/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reset", function() { return reset; });
49062/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
49063/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
49064/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
49065/* harmony import */ var _defaultConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultConfig */ "./src/defaultConfig.js");
49066
49067
49068
49069 // debugger;
49070
49071var defaultConfig = Object.freeze(_defaultConfig__WEBPACK_IMPORTED_MODULE_3__["default"]);
49072var siteConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, defaultConfig);
49073var siteConfigDelta;
49074var directives = [];
49075var currentConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, defaultConfig);
49076var updateCurrentConfig = function updateCurrentConfig(siteCfg, _directives) {
49077 // start with config beeing the siteConfig
49078 var cfg = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, siteCfg); // let sCfg = assignWithDepth(defaultConfig, siteConfigDelta);
49079 // Join directives
49080
49081 var sumOfDirectives = {};
49082
49083 for (var i = 0; i < _directives.length; i++) {
49084 var d = _directives[i];
49085 sanitize(d); // Apply the data from the directive where the the overrides the themeVaraibles
49086
49087 sumOfDirectives = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(sumOfDirectives, d);
49088 }
49089
49090 cfg = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(cfg, sumOfDirectives);
49091
49092 if (sumOfDirectives.theme) {
49093 var themeVariables = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(siteConfigDelta.themeVariables || {}, sumOfDirectives.themeVariables);
49094 cfg.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_2__["default"][cfg.theme].getThemeVariables(themeVariables);
49095 } // if (cfg.theme && theme[cfg.theme]) {
49096 // let tVars = assignWithDepth({}, cfg.themeVariables);
49097 // tVars = assignWithDepth(tVars, themeVariables);
49098 // const variables = theme[cfg.theme].getThemeVariables(tVars);
49099 // cfg.themeVariables = variables;
49100 // }
49101
49102
49103 currentConfig = cfg;
49104 return cfg;
49105};
49106/**
49107 *## setSiteConfig
49108 *| Function | Description | Type | Values |
49109 *| --------- | ------------------- | ------- | ------------------ |
49110 *| setSiteConfig|Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array|
49111 ***Notes:**
49112 *Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset
49113 *the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig
49114 *to the defaultConfig
49115 *Note: currentConfig is set in this function
49116 **Default value: At default, will mirror Global Config**
49117 * @param conf - the base currentConfig to use as siteConfig
49118 * @returns {*} - the siteConfig
49119 */
49120
49121var setSiteConfig = function setSiteConfig(conf) {
49122 siteConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, defaultConfig);
49123 siteConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(siteConfig, conf);
49124
49125 if (conf.theme) {
49126 siteConfig.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_2__["default"][conf.theme].getThemeVariables(conf.themeVariables);
49127 }
49128
49129 currentConfig = updateCurrentConfig(siteConfig, directives);
49130 return siteConfig;
49131};
49132var setSiteConfigDelta = function setSiteConfigDelta(conf) {
49133 siteConfigDelta = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, conf);
49134};
49135var updateSiteConfig = function updateSiteConfig(conf) {
49136 siteConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(siteConfig, conf);
49137 updateCurrentConfig(siteConfig, directives);
49138 return siteConfig;
49139};
49140/**
49141 *## getSiteConfig
49142 *| Function | Description | Type | Values |
49143 *| --------- | ------------------- | ------- | ------------------ |
49144 *| setSiteConfig|Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig|
49145 ***Notes**:
49146 *Returns **any** values in siteConfig.
49147 * @returns {*}
49148 */
49149
49150var getSiteConfig = function getSiteConfig() {
49151 return Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, siteConfig);
49152};
49153/**
49154 *## setConfig
49155 *| Function | Description | Type | Values |
49156 *| --------- | ------------------- | ------- | ------------------ |
49157 *| setSiteConfig|Sets the siteConfig to desired values | Put Request| Any Values, except ones in secure array|
49158 ***Notes**:
49159 *Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any
49160 *values found in conf with key found in siteConfig.secure will be replaced with the corresponding
49161 *siteConfig value.
49162 * @param conf - the potential currentConfig
49163 * @returns {*} - the currentConfig merged with the sanitized conf
49164 */
49165
49166var setConfig = function setConfig(conf) {
49167 // sanitize(conf);
49168 // Object.keys(conf).forEach(key => {
49169 // const manipulator = manipulators[key];
49170 // conf[key] = manipulator ? manipulator(conf[key]) : conf[key];
49171 // });
49172 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(currentConfig, conf);
49173 return getConfig();
49174};
49175/**
49176 * ## getConfig
49177 *| Function | Description | Type | Return Values |
49178 *| --------- | ------------------- | ------- | ------------------ |
49179 *| getConfig |Obtains the currentConfig | Get Request | Any Values from currentConfig|
49180 ***Notes**:
49181 *Returns **any** the currentConfig
49182 * @returns {*} - the currentConfig
49183 */
49184
49185var getConfig = function getConfig() {
49186 return Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, currentConfig);
49187};
49188/**
49189 *## sanitize
49190 *| Function | Description | Type | Values |
49191 *| --------- | ------------------- | ------- | ------------------ |
49192 *| sanitize |Sets the siteConfig to desired values. | Put Request |None|
49193 *Ensures options parameter does not attempt to override siteConfig secure keys
49194 *Note: modifies options in-place
49195 * @param options - the potential setConfig parameter
49196 */
49197
49198var sanitize = function sanitize(options) {
49199 Object.keys(siteConfig.secure).forEach(function (key) {
49200 if (typeof options[siteConfig.secure[key]] !== 'undefined') {
49201 // DO NOT attempt to print options[siteConfig.secure[key]] within `${}` as a malicious script
49202 // can exploit the logger's attempt to stringify the value and execute arbitrary code
49203 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug("Denied attempt to modify a secure key ".concat(siteConfig.secure[key]), options[siteConfig.secure[key]]);
49204 delete options[siteConfig.secure[key]];
49205 }
49206 });
49207};
49208var addDirective = function addDirective(directive) {
49209 if (directive.fontFamily) {
49210 if (!directive.themeVariables) {
49211 directive.themeVariables = {
49212 fontFamily: directive.fontFamily
49213 };
49214 } else {
49215 if (!directive.themeVariables.fontFamily) {
49216 directive.themeVariables = {
49217 fontFamily: directive.fontFamily
49218 };
49219 }
49220 }
49221 }
49222
49223 directives.push(directive);
49224 updateCurrentConfig(siteConfig, directives);
49225};
49226/**
49227 *## reset
49228 *| Function | Description | Type | Required | Values |
49229 *| --------- | ------------------- | ------- | -------- | ------------------ |
49230 *| reset|Resets currentConfig to conf| Put Request | Required | None|
49231 *
49232 *| Parameter | Description |Type | Required | Values|
49233 *| --- | --- | --- | --- | --- |
49234 *| conf| base set of values, which currentConfig coul be **reset** to.| Dictionary | Required | Any Values, with respect to the secure Array|
49235 *
49236 **Notes :
49237 (default: current siteConfig ) (optional, default `getSiteConfig()`)
49238 * @param conf the base currentConfig to reset to (default: current siteConfig ) (optional, default `getSiteConfig()`)
49239 */
49240
49241var reset = function reset() {
49242 // Replace current config with siteConfig
49243 directives = [];
49244 updateCurrentConfig(siteConfig, directives);
49245};
49246
49247/***/ }),
49248
49249/***/ "./src/dagre-wrapper/clusters.js":
49250/*!***************************************!*\
49251 !*** ./src/dagre-wrapper/clusters.js ***!
49252 \***************************************/
49253/*! exports provided: insertCluster, getClusterTitleWidth, clear, positionCluster */
49254/***/ (function(module, __webpack_exports__, __webpack_require__) {
49255
49256"use strict";
49257__webpack_require__.r(__webpack_exports__);
49258/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertCluster", function() { return insertCluster; });
49259/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClusterTitleWidth", function() { return getClusterTitleWidth; });
49260/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
49261/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionCluster", function() { return positionCluster; });
49262/* harmony import */ var _intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect/intersect-rect */ "./src/dagre-wrapper/intersect/intersect-rect.js");
49263/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
49264/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
49265/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
49266/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config.js");
49267
49268 // eslint-disable-line
49269
49270
49271
49272
49273
49274var rect = function rect(parent, node) {
49275 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Creating subgraph rect for ', node.id, node); // Add outer g element
49276
49277 var shapeSvg = parent.insert('g').attr('class', 'cluster' + (node.class ? ' ' + node.class : '')).attr('id', node.id); // add the rect
49278
49279 var rect = shapeSvg.insert('rect', ':first-child'); // Create the label and insert it after the rect
49280
49281 var label = shapeSvg.insert('g').attr('class', 'cluster-label');
49282 var text = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true)); // Get the size of the label
49283
49284 var bbox = text.getBBox();
49285
49286 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
49287 var div = text.children[0];
49288 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_3__["select"])(text);
49289 bbox = div.getBoundingClientRect();
49290 dv.attr('width', bbox.width);
49291 dv.attr('height', bbox.height);
49292 }
49293
49294 var padding = 0 * node.padding;
49295 var halfPadding = padding / 2;
49296 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Data ', node, JSON.stringify(node)); // center the rect around its coordinate
49297
49298 rect.attr('rx', node.rx).attr('ry', node.ry).attr('x', node.x - node.width / 2 - halfPadding).attr('y', node.y - node.height / 2 - halfPadding).attr('width', node.width + padding).attr('height', node.height + padding); // Center the label
49299
49300 label.attr('transform', 'translate(' + (node.x - bbox.width / 2) + ', ' + (node.y - node.height / 2 - node.padding / 3 + 3) + ')');
49301 var rectBox = rect.node().getBBox();
49302 node.width = rectBox.width;
49303 node.height = rectBox.height;
49304
49305 node.intersect = function (point) {
49306 return Object(_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point);
49307 };
49308
49309 return shapeSvg;
49310};
49311/**
49312 * Non visiable cluster where the note is group with its
49313 */
49314
49315
49316var noteGroup = function noteGroup(parent, node) {
49317 // Add outer g element
49318 var shapeSvg = parent.insert('g').attr('class', 'note-cluster').attr('id', node.id); // add the rect
49319
49320 var rect = shapeSvg.insert('rect', ':first-child');
49321 var padding = 0 * node.padding;
49322 var halfPadding = padding / 2; // center the rect around its coordinate
49323
49324 rect.attr('rx', node.rx).attr('ry', node.ry).attr('x', node.x - node.width / 2 - halfPadding).attr('y', node.y - node.height / 2 - halfPadding).attr('width', node.width + padding).attr('height', node.height + padding).attr('fill', 'none');
49325 var rectBox = rect.node().getBBox();
49326 node.width = rectBox.width;
49327 node.height = rectBox.height;
49328
49329 node.intersect = function (point) {
49330 return Object(_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point);
49331 };
49332
49333 return shapeSvg;
49334};
49335
49336var roundedWithTitle = function roundedWithTitle(parent, node) {
49337 // Add outer g element
49338 var shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id); // add the rect
49339
49340 var rect = shapeSvg.insert('rect', ':first-child'); // Create the label and insert it after the rect
49341
49342 var label = shapeSvg.insert('g').attr('class', 'cluster-label');
49343 var innerRect = shapeSvg.append('rect');
49344 var text = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true)); // Get the size of the label
49345
49346 var bbox = text.getBBox();
49347
49348 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
49349 var div = text.children[0];
49350 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_3__["select"])(text);
49351 bbox = div.getBoundingClientRect();
49352 dv.attr('width', bbox.width);
49353 dv.attr('height', bbox.height);
49354 }
49355
49356 bbox = text.getBBox();
49357 var padding = 0 * node.padding;
49358 var halfPadding = padding / 2; // center the rect around its coordinate
49359
49360 rect.attr('class', 'outer').attr('x', node.x - node.width / 2 - halfPadding).attr('y', node.y - node.height / 2 - halfPadding).attr('width', node.width + padding).attr('height', node.height + padding);
49361 innerRect.attr('class', 'inner').attr('x', node.x - node.width / 2 - halfPadding).attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1).attr('width', node.width + padding).attr('height', node.height + padding - bbox.height - 3); // Center the label
49362
49363 label.attr('transform', 'translate(' + (node.x - bbox.width / 2) + ', ' + (node.y - node.height / 2 - node.padding / 3 + (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels ? 5 : 3)) + ')');
49364 var rectBox = rect.node().getBBox();
49365 node.width = rectBox.width;
49366 node.height = rectBox.height;
49367
49368 node.intersect = function (point) {
49369 return Object(_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point);
49370 };
49371
49372 return shapeSvg;
49373};
49374
49375var divider = function divider(parent, node) {
49376 // Add outer g element
49377 var shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id); // add the rect
49378
49379 var rect = shapeSvg.insert('rect', ':first-child');
49380 var padding = 0 * node.padding;
49381 var halfPadding = padding / 2; // center the rect around its coordinate
49382
49383 rect.attr('class', 'divider').attr('x', node.x - node.width / 2 - halfPadding).attr('y', node.y - node.height / 2).attr('width', node.width + padding).attr('height', node.height + padding);
49384 var rectBox = rect.node().getBBox();
49385 node.width = rectBox.width;
49386 node.height = rectBox.height;
49387
49388 node.intersect = function (point) {
49389 return Object(_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point);
49390 };
49391
49392 return shapeSvg;
49393};
49394
49395var shapes = {
49396 rect: rect,
49397 roundedWithTitle: roundedWithTitle,
49398 noteGroup: noteGroup,
49399 divider: divider
49400};
49401var clusterElems = {};
49402var insertCluster = function insertCluster(elem, node) {
49403 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Inserting cluster');
49404 var shape = node.shape || 'rect';
49405 clusterElems[node.id] = shapes[shape](elem, node);
49406};
49407var getClusterTitleWidth = function getClusterTitleWidth(elem, node) {
49408 var label = Object(_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true);
49409 elem.node().appendChild(label);
49410 var width = label.getBBox().width;
49411 elem.node().removeChild(label);
49412 return width;
49413};
49414var clear = function clear() {
49415 clusterElems = {};
49416};
49417var positionCluster = function positionCluster(node) {
49418 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Position cluster');
49419 var el = clusterElems[node.id];
49420 el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');
49421};
49422
49423/***/ }),
49424
49425/***/ "./src/dagre-wrapper/createLabel.js":
49426/*!******************************************!*\
49427 !*** ./src/dagre-wrapper/createLabel.js ***!
49428 \******************************************/
49429/*! exports provided: default */
49430/***/ (function(module, __webpack_exports__, __webpack_require__) {
49431
49432"use strict";
49433__webpack_require__.r(__webpack_exports__);
49434/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
49435/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
49436/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../config */ "./src/config.js");
49437
49438 // eslint-disable-line
49439// let vertexNode;
49440// if (getConfig().flowchart.htmlLabels) {
49441// // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
49442// const node = {
49443// label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, s => `<i class='${s.replace(':', ' ')}'></i>`)
49444// };
49445// vertexNode = addHtmlLabel(svg, node).node();
49446// vertexNode.parentNode.removeChild(vertexNode);
49447// } else {
49448// const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
49449// svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
49450// const rows = vertexText.split(common.lineBreakRegex);
49451// for (let j = 0; j < rows.length; j++) {
49452// const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
49453// tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
49454// tspan.setAttribute('dy', '1em');
49455// tspan.setAttribute('x', '1');
49456// tspan.textContent = rows[j];
49457// svgLabel.appendChild(tspan);
49458// }
49459// vertexNode = svgLabel;
49460// }
49461
49462
49463
49464function applyStyle(dom, styleFn) {
49465 if (styleFn) {
49466 dom.attr('style', styleFn);
49467 }
49468}
49469
49470function addHtmlLabel(node) {
49471 // var fo = root.append('foreignObject').attr('width', '100000');
49472 // var div = fo.append('xhtml:div');
49473 // div.attr('xmlns', 'http://www.w3.org/1999/xhtml');
49474 // var label = node.label;
49475 // switch (typeof label) {
49476 // case 'function':
49477 // div.insert(label);
49478 // break;
49479 // case 'object':
49480 // // Currently we assume this is a DOM object.
49481 // div.insert(function() {
49482 // return label;
49483 // });
49484 // break;
49485 // default:
49486 // div.html(label);
49487 // }
49488 // applyStyle(div, node.labelStyle);
49489 // div.style('display', 'inline-block');
49490 // // Fix for firefox
49491 // div.style('white-space', 'nowrap');
49492 // var client = div.node().getBoundingClientRect();
49493 // fo.attr('width', client.width).attr('height', client.height);
49494 var fo = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));
49495 var div = fo.append('xhtml:div');
49496 var label = node.label;
49497 var labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';
49498 div.html('<span class="' + labelClass + '">' + label + '</span>');
49499 applyStyle(div, node.labelStyle);
49500 div.style('display', 'inline-block'); // Fix for firefox
49501
49502 div.style('white-space', 'nowrap');
49503 div.attr('xmlns', 'http://www.w3.org/1999/xhtml');
49504 return fo.node();
49505}
49506
49507var createLabel = function createLabel(_vertexText, style, isTitle, isNode) {
49508 var vertexText = _vertexText || '';
49509
49510 if (Object(_config__WEBPACK_IMPORTED_MODULE_2__["getConfig"])().flowchart.htmlLabels) {
49511 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
49512 vertexText = vertexText.replace(/\\n|\n/g, '<br />');
49513 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('vertexText' + vertexText);
49514 var node = {
49515 isNode: isNode,
49516 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
49517 return "<i class='".concat(s.replace(':', ' '), "'></i>");
49518 }),
49519 labelStyle: style.replace('fill:', 'color:')
49520 };
49521 var vertexNode = addHtmlLabel(node); // vertexNode.parentNode.removeChild(vertexNode);
49522
49523 return vertexNode;
49524 } else {
49525 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
49526 svgLabel.setAttribute('style', style.replace('color:', 'fill:'));
49527 var rows = [];
49528
49529 if (typeof vertexText === 'string') {
49530 rows = vertexText.split(/\\n|\n|<br\s*\/?>/gi);
49531 } else if (Array.isArray(vertexText)) {
49532 rows = vertexText;
49533 } else {
49534 rows = [];
49535 }
49536
49537 for (var j = 0; j < rows.length; j++) {
49538 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
49539 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
49540 tspan.setAttribute('dy', '1em');
49541 tspan.setAttribute('x', '0');
49542
49543 if (isTitle) {
49544 tspan.setAttribute('class', 'title-row');
49545 } else {
49546 tspan.setAttribute('class', 'row');
49547 }
49548
49549 tspan.textContent = rows[j].trim();
49550 svgLabel.appendChild(tspan);
49551 }
49552
49553 return svgLabel;
49554 }
49555};
49556
49557/* harmony default export */ __webpack_exports__["default"] = (createLabel);
49558
49559/***/ }),
49560
49561/***/ "./src/dagre-wrapper/edges.js":
49562/*!************************************!*\
49563 !*** ./src/dagre-wrapper/edges.js ***!
49564 \************************************/
49565/*! exports provided: clear, insertEdgeLabel, positionEdgeLabel, intersection, insertEdge */
49566/***/ (function(module, __webpack_exports__, __webpack_require__) {
49567
49568"use strict";
49569__webpack_require__.r(__webpack_exports__);
49570/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
49571/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertEdgeLabel", function() { return insertEdgeLabel; });
49572/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionEdgeLabel", function() { return positionEdgeLabel; });
49573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "intersection", function() { return intersection; });
49574/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertEdge", function() { return insertEdge; });
49575/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
49576/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
49577/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
49578/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config.js");
49579/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./src/utils.js");
49580 // eslint-disable-line
49581
49582
49583
49584
49585 // import { calcLabelPosition } from '../utils';
49586
49587var edgeLabels = {};
49588var terminalLabels = {};
49589var clear = function clear() {
49590 edgeLabels = {};
49591 terminalLabels = {};
49592};
49593var insertEdgeLabel = function insertEdgeLabel(elem, edge) {
49594 // Create the actual text element
49595 var labelElement = Object(_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.label, edge.labelStyle); // Create outer g, edgeLabel, this will be positioned after graph layout
49596
49597 var edgeLabel = elem.insert('g').attr('class', 'edgeLabel'); // Create inner g, label, this will be positioned now for centering the text
49598
49599 var label = edgeLabel.insert('g').attr('class', 'label');
49600 label.node().appendChild(labelElement); // Center the label
49601
49602 var bbox = labelElement.getBBox();
49603
49604 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
49605 var div = labelElement.children[0];
49606 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_2__["select"])(labelElement);
49607 bbox = div.getBoundingClientRect();
49608 dv.attr('width', bbox.width);
49609 dv.attr('height', bbox.height);
49610 }
49611
49612 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')'); // Make element accessible by id for positioning
49613
49614 edgeLabels[edge.id] = edgeLabel; // Update the abstract data of the edge with the new information about its width and height
49615
49616 edge.width = bbox.width;
49617 edge.height = bbox.height;
49618
49619 if (edge.startLabelLeft) {
49620 // Create the actual text element
49621 var startLabelElement = Object(_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.startLabelLeft, edge.labelStyle);
49622 var startEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');
49623 var inner = startEdgeLabelLeft.insert('g').attr('class', 'inner');
49624 inner.node().appendChild(startLabelElement);
49625 var slBox = startLabelElement.getBBox();
49626 inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');
49627
49628 if (!terminalLabels[edge.id]) {
49629 terminalLabels[edge.id] = {};
49630 }
49631
49632 terminalLabels[edge.id].startLeft = startEdgeLabelLeft;
49633 }
49634
49635 if (edge.startLabelRight) {
49636 // Create the actual text element
49637 var _startLabelElement = Object(_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.startLabelRight, edge.labelStyle);
49638
49639 var startEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');
49640
49641 var _inner = startEdgeLabelRight.insert('g').attr('class', 'inner');
49642
49643 startEdgeLabelRight.node().appendChild(_startLabelElement);
49644
49645 _inner.node().appendChild(_startLabelElement);
49646
49647 var _slBox = _startLabelElement.getBBox();
49648
49649 _inner.attr('transform', 'translate(' + -_slBox.width / 2 + ', ' + -_slBox.height / 2 + ')');
49650
49651 if (!terminalLabels[edge.id]) {
49652 terminalLabels[edge.id] = {};
49653 }
49654
49655 terminalLabels[edge.id].startRight = startEdgeLabelRight;
49656 }
49657
49658 if (edge.endLabelLeft) {
49659 // Create the actual text element
49660 var endLabelElement = Object(_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.endLabelLeft, edge.labelStyle);
49661 var endEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');
49662
49663 var _inner2 = endEdgeLabelLeft.insert('g').attr('class', 'inner');
49664
49665 _inner2.node().appendChild(endLabelElement);
49666
49667 var _slBox2 = endLabelElement.getBBox();
49668
49669 _inner2.attr('transform', 'translate(' + -_slBox2.width / 2 + ', ' + -_slBox2.height / 2 + ')');
49670
49671 endEdgeLabelLeft.node().appendChild(endLabelElement);
49672
49673 if (!terminalLabels[edge.id]) {
49674 terminalLabels[edge.id] = {};
49675 }
49676
49677 terminalLabels[edge.id].endLeft = endEdgeLabelLeft;
49678 }
49679
49680 if (edge.endLabelRight) {
49681 // Create the actual text element
49682 var _endLabelElement = Object(_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.endLabelRight, edge.labelStyle);
49683
49684 var endEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');
49685
49686 var _inner3 = endEdgeLabelRight.insert('g').attr('class', 'inner');
49687
49688 _inner3.node().appendChild(_endLabelElement);
49689
49690 var _slBox3 = _endLabelElement.getBBox();
49691
49692 _inner3.attr('transform', 'translate(' + -_slBox3.width / 2 + ', ' + -_slBox3.height / 2 + ')');
49693
49694 endEdgeLabelRight.node().appendChild(_endLabelElement);
49695
49696 if (!terminalLabels[edge.id]) {
49697 terminalLabels[edge.id] = {};
49698 }
49699
49700 terminalLabels[edge.id].endRight = endEdgeLabelRight;
49701 }
49702};
49703var positionEdgeLabel = function positionEdgeLabel(edge, paths) {
49704 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Moving label', edge.id, edge.label, edgeLabels[edge.id]);
49705 var path = paths.updatedPath ? paths.updatedPath : paths.originalPath;
49706
49707 if (edge.label) {
49708 var el = edgeLabels[edge.id];
49709 var x = edge.x;
49710 var y = edge.y;
49711
49712 if (path) {
49713 // // debugger;
49714 var pos = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calcLabelPosition(path);
49715 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ')'); // x = pos.x;
49716 // y = pos.y;
49717 }
49718
49719 el.attr('transform', 'translate(' + x + ', ' + y + ')');
49720 } //let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;
49721
49722
49723 if (edge.startLabelLeft) {
49724 var _el = terminalLabels[edge.id].startLeft;
49725 var _x = edge.x;
49726 var _y = edge.y;
49727
49728 if (path) {
49729 // debugger;
49730 var _pos = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calcTerminalLabelPosition(0, 'start_left', path);
49731
49732 _x = _pos.x;
49733 _y = _pos.y;
49734 }
49735
49736 _el.attr('transform', 'translate(' + _x + ', ' + _y + ')');
49737 }
49738
49739 if (edge.startLabelRight) {
49740 var _el2 = terminalLabels[edge.id].startRight;
49741 var _x2 = edge.x;
49742 var _y2 = edge.y;
49743
49744 if (path) {
49745 // debugger;
49746 var _pos2 = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calcTerminalLabelPosition(0, 'start_right', path);
49747
49748 _x2 = _pos2.x;
49749 _y2 = _pos2.y;
49750 }
49751
49752 _el2.attr('transform', 'translate(' + _x2 + ', ' + _y2 + ')');
49753 }
49754
49755 if (edge.endLabelLeft) {
49756 var _el3 = terminalLabels[edge.id].endLeft;
49757 var _x3 = edge.x;
49758 var _y3 = edge.y;
49759
49760 if (path) {
49761 // debugger;
49762 var _pos3 = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calcTerminalLabelPosition(0, 'end_left', path);
49763
49764 _x3 = _pos3.x;
49765 _y3 = _pos3.y;
49766 }
49767
49768 _el3.attr('transform', 'translate(' + _x3 + ', ' + _y3 + ')');
49769 }
49770
49771 if (edge.endLabelRight) {
49772 var _el4 = terminalLabels[edge.id].endRight;
49773 var _x4 = edge.x;
49774 var _y4 = edge.y;
49775
49776 if (path) {
49777 // debugger;
49778 var _pos4 = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calcTerminalLabelPosition(0, 'end_right', path);
49779
49780 _x4 = _pos4.x;
49781 _y4 = _pos4.y;
49782 }
49783
49784 _el4.attr('transform', 'translate(' + _x4 + ', ' + _y4 + ')');
49785 }
49786}; // const getRelationType = function(type) {
49787// switch (type) {
49788// case stateDb.relationType.AGGREGATION:
49789// return 'aggregation';
49790// case stateDb.relationType.EXTENSION:
49791// return 'extension';
49792// case stateDb.relationType.COMPOSITION:
49793// return 'composition';
49794// case stateDb.relationType.DEPENDENCY:
49795// return 'dependency';
49796// }
49797// };
49798
49799var outsideNode = function outsideNode(node, point) {
49800 // logger.warn('Checking bounds ', node, point);
49801 var x = node.x;
49802 var y = node.y;
49803 var dx = Math.abs(point.x - x);
49804 var dy = Math.abs(point.y - y);
49805 var w = node.width / 2;
49806 var h = node.height / 2;
49807
49808 if (dx >= w || dy >= h) {
49809 return true;
49810 }
49811
49812 return false;
49813};
49814
49815var intersection = function intersection(node, outsidePoint, insidePoint) {
49816 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('intersection calc o:', outsidePoint, ' i:', insidePoint, node);
49817 var x = node.x;
49818 var y = node.y;
49819 var dx = Math.abs(x - insidePoint.x);
49820 var w = node.width / 2;
49821 var r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;
49822 var h = node.height / 2;
49823 var edges = {
49824 x1: x - w,
49825 x2: x + w,
49826 y1: y - h,
49827 y2: y + h
49828 };
49829
49830 if (outsidePoint.x === edges.x1 || outsidePoint.x === edges.x2 || outsidePoint.y === edges.y1 || outsidePoint.y === edges.y2) {
49831 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('calc equals on edge');
49832 return outsidePoint;
49833 }
49834
49835 var Q = Math.abs(outsidePoint.y - insidePoint.y);
49836 var R = Math.abs(outsidePoint.x - insidePoint.x); // log.warn();
49837
49838 if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {
49839 // eslint-disable-line
49840 // Intersection is top or bottom of rect.
49841 // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
49842 var q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
49843 r = R * q / Q;
49844 var res = {
49845 x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - r,
49846 y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - q
49847 };
49848 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn("topp/bott calc, Q ".concat(Q, ", q ").concat(q, ", R ").concat(R, ", r ").concat(r), res);
49849 return res;
49850 } else {
49851 // Intersection onn sides of rect
49852 // q = (Q * r) / R;
49853 // q = 2;
49854 // r = (R * q) / Q;
49855 if (insidePoint.x < outsidePoint.x) {
49856 r = outsidePoint.x - w - x;
49857 } else {
49858 // r = outsidePoint.x - w - x;
49859 r = x - w - outsidePoint.x;
49860 }
49861
49862 var _q = _q = Q * r / R;
49863
49864 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn("sides calc, Q ".concat(Q, ", q ").concat(_q, ", R ").concat(R, ", r ").concat(r), {
49865 x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w,
49866 y: insidePoint.y < outsidePoint.y ? insidePoint.y + _q : insidePoint.y - _q
49867 });
49868 return {
49869 x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w,
49870 y: insidePoint.y < outsidePoint.y ? insidePoint.y + _q : insidePoint.y - _q
49871 };
49872 }
49873}; //(edgePaths, e, edge, clusterDb, diagramtype, graph)
49874
49875var insertEdge = function insertEdge(elem, e, edge, clusterDb, diagramType, graph) {
49876 var points = edge.points;
49877 var pointsHasChanged = false;
49878 var tail = graph.node(e.v);
49879 var head = graph.node(e.w);
49880
49881 if (head.intersect && tail.intersect) {
49882 points = points.slice(1, edge.points.length - 1);
49883 points.unshift(tail.intersect(points[0]));
49884 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Last point', points[points.length - 1], head, head.intersect(points[points.length - 1]));
49885 points.push(head.intersect(points[points.length - 1]));
49886 }
49887
49888 if (edge.toCluster) {
49889 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('edge', edge);
49890 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('to cluster', clusterDb[edge.toCluster]);
49891 points = [];
49892 var lastPointOutside;
49893 var isInside = false;
49894 edge.points.forEach(function (point) {
49895 var node = clusterDb[edge.toCluster].node;
49896
49897 if (!outsideNode(node, point) && !isInside) {
49898 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('inside', edge.toCluster, point, lastPointOutside); // First point inside the rect
49899
49900 var inter = intersection(node, lastPointOutside, point);
49901 var pointPresent = false;
49902 points.forEach(function (p) {
49903 pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;
49904 }); // if (!pointPresent) {
49905
49906 if (!points.find(function (e) {
49907 return e.x === inter.x && e.y === inter.y;
49908 })) {
49909 points.push(inter);
49910 } else {
49911 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('no intersect', inter, points);
49912 }
49913
49914 isInside = true;
49915 } else {
49916 if (!isInside) points.push(point);
49917 }
49918
49919 lastPointOutside = point;
49920 });
49921 pointsHasChanged = true;
49922 }
49923
49924 if (edge.fromCluster) {
49925 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('edge', edge);
49926 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('from cluster', clusterDb[edge.fromCluster]);
49927 var updatedPoints = [];
49928
49929 var _lastPointOutside;
49930
49931 var _isInside = false;
49932
49933 for (var i = points.length - 1; i >= 0; i--) {
49934 var point = points[i];
49935 var node = clusterDb[edge.fromCluster].node;
49936
49937 if (!outsideNode(node, point) && !_isInside) {
49938 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('inside', edge.fromCluster, point, node); // First point inside the rect
49939
49940 var insterection = intersection(node, _lastPointOutside, point); // logger.trace('intersect', intersection(node, lastPointOutside, point));
49941
49942 updatedPoints.unshift(insterection); // points.push(insterection);
49943
49944 _isInside = true;
49945 } else {
49946 // at the outside
49947 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Outside point', point);
49948 if (!_isInside) updatedPoints.unshift(point);
49949 }
49950
49951 _lastPointOutside = point;
49952 }
49953
49954 points = updatedPoints;
49955 pointsHasChanged = true;
49956 } // The data for our line
49957
49958
49959 var lineData = points.filter(function (p) {
49960 return !Number.isNaN(p.y);
49961 }); // This is the accessor function we talked about above
49962
49963 var lineFunction = Object(d3__WEBPACK_IMPORTED_MODULE_2__["line"])().x(function (d) {
49964 return d.x;
49965 }).y(function (d) {
49966 return d.y;
49967 }).curve(d3__WEBPACK_IMPORTED_MODULE_2__["curveBasis"]); // Contruct stroke classes based on properties
49968
49969 var strokeClasses;
49970
49971 switch (edge.thickness) {
49972 case 'normal':
49973 strokeClasses = 'edge-thickness-normal';
49974 break;
49975
49976 case 'thick':
49977 strokeClasses = 'edge-thickness-thick';
49978 break;
49979
49980 default:
49981 strokeClasses = '';
49982 }
49983
49984 switch (edge.pattern) {
49985 case 'solid':
49986 strokeClasses += ' edge-pattern-solid';
49987 break;
49988
49989 case 'dotted':
49990 strokeClasses += ' edge-pattern-dotted';
49991 break;
49992
49993 case 'dashed':
49994 strokeClasses += ' edge-pattern-dashed';
49995 break;
49996 }
49997
49998 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', edge.id).attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : '')).attr('style', edge.style); // DEBUG code, adds a red circle at each edge coordinate
49999 // edge.points.forEach(point => {
50000 // elem
50001 // .append('circle')
50002 // .style('stroke', 'red')
50003 // .style('fill', 'red')
50004 // .attr('r', 1)
50005 // .attr('cx', point.x)
50006 // .attr('cy', point.y);
50007 // });
50008
50009 var url = '';
50010
50011 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().state.arrowMarkerAbsolute) {
50012 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
50013 url = url.replace(/\(/g, '\\(');
50014 url = url.replace(/\)/g, '\\)');
50015 }
50016
50017 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('arrowTypeStart', edge.arrowTypeStart);
50018 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('arrowTypeEnd', edge.arrowTypeEnd);
50019
50020 switch (edge.arrowTypeStart) {
50021 case 'arrow_cross':
50022 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');
50023 break;
50024
50025 case 'arrow_point':
50026 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');
50027 break;
50028
50029 case 'arrow_barb':
50030 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');
50031 break;
50032
50033 case 'arrow_circle':
50034 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');
50035 break;
50036
50037 case 'aggregation':
50038 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');
50039 break;
50040
50041 case 'extension':
50042 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');
50043 break;
50044
50045 case 'composition':
50046 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');
50047 break;
50048
50049 case 'dependency':
50050 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');
50051 break;
50052
50053 default:
50054 }
50055
50056 switch (edge.arrowTypeEnd) {
50057 case 'arrow_cross':
50058 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');
50059 break;
50060
50061 case 'arrow_point':
50062 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');
50063 break;
50064
50065 case 'arrow_barb':
50066 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');
50067 break;
50068
50069 case 'arrow_circle':
50070 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');
50071 break;
50072
50073 case 'aggregation':
50074 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');
50075 break;
50076
50077 case 'extension':
50078 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');
50079 break;
50080
50081 case 'composition':
50082 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');
50083 break;
50084
50085 case 'dependency':
50086 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');
50087 break;
50088
50089 default:
50090 }
50091
50092 var paths = {};
50093
50094 if (pointsHasChanged) {
50095 paths.updatedPath = points;
50096 }
50097
50098 paths.originalPath = edge.points;
50099 return paths;
50100};
50101
50102/***/ }),
50103
50104/***/ "./src/dagre-wrapper/index.js":
50105/*!************************************!*\
50106 !*** ./src/dagre-wrapper/index.js ***!
50107 \************************************/
50108/*! exports provided: render */
50109/***/ (function(module, __webpack_exports__, __webpack_require__) {
50110
50111"use strict";
50112__webpack_require__.r(__webpack_exports__);
50113/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
50114/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
50115/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_0__);
50116/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
50117/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_1__);
50118/* harmony import */ var _markers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./markers */ "./src/dagre-wrapper/markers.js");
50119/* harmony import */ var _shapes_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./shapes/util */ "./src/dagre-wrapper/shapes/util.js");
50120/* harmony import */ var _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mermaid-graphlib */ "./src/dagre-wrapper/mermaid-graphlib.js");
50121/* harmony import */ var _nodes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./nodes */ "./src/dagre-wrapper/nodes.js");
50122/* harmony import */ var _clusters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./clusters */ "./src/dagre-wrapper/clusters.js");
50123/* harmony import */ var _edges__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./edges */ "./src/dagre-wrapper/edges.js");
50124/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
50125
50126
50127
50128
50129
50130
50131
50132
50133
50134
50135var recursiveRender = function recursiveRender(_elem, graph, diagramtype, parentCluster) {
50136 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Graph in recursive render: XXX', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph), parentCluster);
50137 var dir = graph.graph().rankdir;
50138 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Dir in recursive render - dir:', dir);
50139
50140 var elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line
50141
50142
50143 if (!graph.nodes()) {
50144 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('No nodes found for', graph);
50145 } else {
50146 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Recursive render XXX', graph.nodes());
50147 }
50148
50149 if (graph.edges().length > 0) {
50150 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Recursive edges', graph.edge(graph.edges()[0]));
50151 }
50152
50153 var clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line
50154
50155 var edgePaths = elem.insert('g').attr('class', 'edgePaths');
50156 var edgeLabels = elem.insert('g').attr('class', 'edgeLabels');
50157 var nodes = elem.insert('g').attr('class', 'nodes'); // Insert nodes, this will insert them into the dom and each node will get a size. The size is updated
50158 // to the abstract node and is later used by dagre for the layout
50159
50160 graph.nodes().forEach(function (v) {
50161 var node = graph.node(v);
50162
50163 if (typeof parentCluster !== 'undefined') {
50164 var data = JSON.parse(JSON.stringify(parentCluster.clusterData)); // data.clusterPositioning = true;
50165
50166 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Setting data for cluster XXX (', v, ') ', data, parentCluster);
50167 graph.setNode(parentCluster.id, data);
50168
50169 if (!graph.parent(v)) {
50170 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Setting parent', v, parentCluster.id);
50171 graph.setParent(v, parentCluster.id, data);
50172 }
50173 }
50174
50175 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('(Insert) Node XXX' + v + ': ' + JSON.stringify(graph.node(v)));
50176
50177 if (node && node.clusterNode) {
50178 // const children = graph.children(v);
50179 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Cluster identified', v, node, graph.node(v));
50180 var newEl = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));
50181 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_3__["updateNodeBounds"])(node, newEl);
50182 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["setNodeElem"])(newEl, node);
50183 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Recursive render complete', newEl, node);
50184 } else {
50185 if (graph.children(v).length > 0) {
50186 // This is a cluster but not to be rendered recusively
50187 // Render as before
50188 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Cluster - the non recursive path XXX', v, node.id, node, graph);
50189 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info(Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["findNonClusterChild"])(node.id, graph));
50190 _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"][node.id] = {
50191 id: Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["findNonClusterChild"])(node.id, graph),
50192 node: node
50193 }; // insertCluster(clusters, graph.node(v));
50194 } else {
50195 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Node - the non recursive path', v, node.id, node);
50196 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["insertNode"])(nodes, graph.node(v), dir);
50197 }
50198 }
50199 }); // Insert labels, this will insert them into the dom so that the width can be calculated
50200 // Also figure out which edges point to/from clusters and adjust them accordingly
50201 // Edges from/to clusters really points to the first child in the cluster.
50202 // TODO: pick optimal child in the cluster to us as link anchor
50203
50204 graph.edges().forEach(function (e) {
50205 var edge = graph.edge(e.v, e.w, e.name);
50206 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
50207 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Edge ' + e.v + ' -> ' + e.w + ': ', e, ' ', JSON.stringify(graph.edge(e))); // Check if link is either from or to a cluster
50208
50209 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Fix', _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"], 'ids:', e.v, e.w, 'Translateing: ', _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"][e.v], _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"][e.w]);
50210 Object(_edges__WEBPACK_IMPORTED_MODULE_7__["insertEdgeLabel"])(edgeLabels, edge);
50211 });
50212 graph.edges().forEach(function (e) {
50213 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
50214 });
50215 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('#############################################');
50216 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('### Layout ###');
50217 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('#############################################');
50218 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info(graph);
50219 dagre__WEBPACK_IMPORTED_MODULE_0___default.a.layout(graph);
50220 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Graph after layout:', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph)); // Move the nodes to the correct place
50221
50222 Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["sortNodesByHierarchy"])(graph).forEach(function (v) {
50223 var node = graph.node(v);
50224 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));
50225 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Position ' + v + ': (' + node.x, ',' + node.y, ') width: ', node.width, ' height: ', node.height);
50226
50227 if (node && node.clusterNode) {
50228 // clusterDb[node.id].node = node;
50229 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["positionNode"])(node);
50230 } else {
50231 // Non cluster node
50232 if (graph.children(v).length > 0) {
50233 // A cluster in the non-recurive way
50234 // positionCluster(node);
50235 Object(_clusters__WEBPACK_IMPORTED_MODULE_6__["insertCluster"])(clusters, node);
50236 _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"][node.id].node = node;
50237 } else {
50238 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["positionNode"])(node);
50239 }
50240 }
50241 }); // Move the edge labels to the correct place after layout
50242
50243 graph.edges().forEach(function (e) {
50244 var edge = graph.edge(e);
50245 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);
50246 var paths = Object(_edges__WEBPACK_IMPORTED_MODULE_7__["insertEdge"])(edgePaths, e, edge, _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"], diagramtype, graph);
50247 Object(_edges__WEBPACK_IMPORTED_MODULE_7__["positionEdgeLabel"])(edge, paths);
50248 });
50249 return elem;
50250};
50251
50252var render = function render(elem, graph, markers, diagramtype, id) {
50253 Object(_markers__WEBPACK_IMPORTED_MODULE_2__["default"])(elem, markers, diagramtype, id);
50254 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["clear"])();
50255 Object(_edges__WEBPACK_IMPORTED_MODULE_7__["clear"])();
50256 Object(_clusters__WEBPACK_IMPORTED_MODULE_6__["clear"])();
50257 Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clear"])();
50258 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Graph at first:', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
50259 Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["adjustClustersAndEdges"])(graph);
50260 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Graph after:', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph)); // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph));
50261
50262 recursiveRender(elem, graph, diagramtype);
50263}; // const shapeDefinitions = {};
50264// export const addShape = ({ shapeType: fun }) => {
50265// shapeDefinitions[shapeType] = fun;
50266// };
50267// const arrowDefinitions = {};
50268// export const addArrow = ({ arrowType: fun }) => {
50269// arrowDefinitions[arrowType] = fun;
50270// };
50271
50272/***/ }),
50273
50274/***/ "./src/dagre-wrapper/intersect/index.js":
50275/*!**********************************************!*\
50276 !*** ./src/dagre-wrapper/intersect/index.js ***!
50277 \**********************************************/
50278/*! exports provided: default */
50279/***/ (function(module, __webpack_exports__, __webpack_require__) {
50280
50281"use strict";
50282__webpack_require__.r(__webpack_exports__);
50283/* harmony import */ var _intersect_node_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-node.js */ "./src/dagre-wrapper/intersect/intersect-node.js");
50284/* harmony import */ var _intersect_node_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_intersect_node_js__WEBPACK_IMPORTED_MODULE_0__);
50285/* harmony import */ var _intersect_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intersect-circle.js */ "./src/dagre-wrapper/intersect/intersect-circle.js");
50286/* harmony import */ var _intersect_ellipse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./intersect-ellipse.js */ "./src/dagre-wrapper/intersect/intersect-ellipse.js");
50287/* harmony import */ var _intersect_polygon_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./intersect-polygon.js */ "./src/dagre-wrapper/intersect/intersect-polygon.js");
50288/* harmony import */ var _intersect_rect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./intersect-rect.js */ "./src/dagre-wrapper/intersect/intersect-rect.js");
50289/*
50290 * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!
50291 */
50292
50293
50294
50295
50296
50297/* harmony default export */ __webpack_exports__["default"] = ({
50298 node: _intersect_node_js__WEBPACK_IMPORTED_MODULE_0___default.a,
50299 circle: _intersect_circle_js__WEBPACK_IMPORTED_MODULE_1__["default"],
50300 ellipse: _intersect_ellipse_js__WEBPACK_IMPORTED_MODULE_2__["default"],
50301 polygon: _intersect_polygon_js__WEBPACK_IMPORTED_MODULE_3__["default"],
50302 rect: _intersect_rect_js__WEBPACK_IMPORTED_MODULE_4__["default"]
50303});
50304
50305/***/ }),
50306
50307/***/ "./src/dagre-wrapper/intersect/intersect-circle.js":
50308/*!*********************************************************!*\
50309 !*** ./src/dagre-wrapper/intersect/intersect-circle.js ***!
50310 \*********************************************************/
50311/*! exports provided: default */
50312/***/ (function(module, __webpack_exports__, __webpack_require__) {
50313
50314"use strict";
50315__webpack_require__.r(__webpack_exports__);
50316/* harmony import */ var _intersect_ellipse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-ellipse */ "./src/dagre-wrapper/intersect/intersect-ellipse.js");
50317
50318
50319function intersectCircle(node, rx, point) {
50320 return Object(_intersect_ellipse__WEBPACK_IMPORTED_MODULE_0__["default"])(node, rx, rx, point);
50321}
50322
50323/* harmony default export */ __webpack_exports__["default"] = (intersectCircle);
50324
50325/***/ }),
50326
50327/***/ "./src/dagre-wrapper/intersect/intersect-ellipse.js":
50328/*!**********************************************************!*\
50329 !*** ./src/dagre-wrapper/intersect/intersect-ellipse.js ***!
50330 \**********************************************************/
50331/*! exports provided: default */
50332/***/ (function(module, __webpack_exports__, __webpack_require__) {
50333
50334"use strict";
50335__webpack_require__.r(__webpack_exports__);
50336function intersectEllipse(node, rx, ry, point) {
50337 // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html
50338 var cx = node.x;
50339 var cy = node.y;
50340 var px = cx - point.x;
50341 var py = cy - point.y;
50342 var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
50343 var dx = Math.abs(rx * ry * px / det);
50344
50345 if (point.x < cx) {
50346 dx = -dx;
50347 }
50348
50349 var dy = Math.abs(rx * ry * py / det);
50350
50351 if (point.y < cy) {
50352 dy = -dy;
50353 }
50354
50355 return {
50356 x: cx + dx,
50357 y: cy + dy
50358 };
50359}
50360
50361/* harmony default export */ __webpack_exports__["default"] = (intersectEllipse);
50362
50363/***/ }),
50364
50365/***/ "./src/dagre-wrapper/intersect/intersect-line.js":
50366/*!*******************************************************!*\
50367 !*** ./src/dagre-wrapper/intersect/intersect-line.js ***!
50368 \*******************************************************/
50369/*! exports provided: default */
50370/***/ (function(module, __webpack_exports__, __webpack_require__) {
50371
50372"use strict";
50373__webpack_require__.r(__webpack_exports__);
50374/*
50375 * Returns the point at which two lines, p and q, intersect or returns
50376 * undefined if they do not intersect.
50377 */
50378function intersectLine(p1, p2, q1, q2) {
50379 // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,
50380 // p7 and p473.
50381 var a1, a2, b1, b2, c1, c2;
50382 var r1, r2, r3, r4;
50383 var denom, offset, num;
50384 var x, y; // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +
50385 // b1 y + c1 = 0.
50386
50387 a1 = p2.y - p1.y;
50388 b1 = p1.x - p2.x;
50389 c1 = p2.x * p1.y - p1.x * p2.y; // Compute r3 and r4.
50390
50391 r3 = a1 * q1.x + b1 * q1.y + c1;
50392 r4 = a1 * q2.x + b1 * q2.y + c1; // Check signs of r3 and r4. If both point 3 and point 4 lie on
50393 // same side of line 1, the line segments do not intersect.
50394
50395 if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
50396 return;
50397 } // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0
50398
50399
50400 a2 = q2.y - q1.y;
50401 b2 = q1.x - q2.x;
50402 c2 = q2.x * q1.y - q1.x * q2.y; // Compute r1 and r2
50403
50404 r1 = a2 * p1.x + b2 * p1.y + c2;
50405 r2 = a2 * p2.x + b2 * p2.y + c2; // Check signs of r1 and r2. If both point 1 and point 2 lie
50406 // on same side of second line segment, the line segments do
50407 // not intersect.
50408
50409 if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
50410 return;
50411 } // Line segments intersect: compute intersection point.
50412
50413
50414 denom = a1 * b2 - a2 * b1;
50415
50416 if (denom === 0) {
50417 return;
50418 }
50419
50420 offset = Math.abs(denom / 2); // The denom/2 is to get rounding instead of truncating. It
50421 // is added or subtracted to the numerator, depending upon the
50422 // sign of the numerator.
50423
50424 num = b1 * c2 - b2 * c1;
50425 x = num < 0 ? (num - offset) / denom : (num + offset) / denom;
50426 num = a2 * c1 - a1 * c2;
50427 y = num < 0 ? (num - offset) / denom : (num + offset) / denom;
50428 return {
50429 x: x,
50430 y: y
50431 };
50432}
50433
50434function sameSign(r1, r2) {
50435 return r1 * r2 > 0;
50436}
50437
50438/* harmony default export */ __webpack_exports__["default"] = (intersectLine);
50439
50440/***/ }),
50441
50442/***/ "./src/dagre-wrapper/intersect/intersect-node.js":
50443/*!*******************************************************!*\
50444 !*** ./src/dagre-wrapper/intersect/intersect-node.js ***!
50445 \*******************************************************/
50446/*! no static exports found */
50447/***/ (function(module, exports) {
50448
50449module.exports = intersectNode;
50450
50451function intersectNode(node, point) {
50452 // console.info('Intersect Node');
50453 return node.intersect(point);
50454}
50455
50456/***/ }),
50457
50458/***/ "./src/dagre-wrapper/intersect/intersect-polygon.js":
50459/*!**********************************************************!*\
50460 !*** ./src/dagre-wrapper/intersect/intersect-polygon.js ***!
50461 \**********************************************************/
50462/*! exports provided: default */
50463/***/ (function(module, __webpack_exports__, __webpack_require__) {
50464
50465"use strict";
50466__webpack_require__.r(__webpack_exports__);
50467/* harmony import */ var _intersect_line__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-line */ "./src/dagre-wrapper/intersect/intersect-line.js");
50468/* eslint "no-console": off */
50469
50470/* harmony default export */ __webpack_exports__["default"] = (intersectPolygon);
50471/*
50472 * Returns the point ({x, y}) at which the point argument intersects with the
50473 * node argument assuming that it has the shape specified by polygon.
50474 */
50475
50476function intersectPolygon(node, polyPoints, point) {
50477 var x1 = node.x;
50478 var y1 = node.y;
50479 var intersections = [];
50480 var minX = Number.POSITIVE_INFINITY;
50481 var minY = Number.POSITIVE_INFINITY;
50482
50483 if (typeof polyPoints.forEach === 'function') {
50484 polyPoints.forEach(function (entry) {
50485 minX = Math.min(minX, entry.x);
50486 minY = Math.min(minY, entry.y);
50487 });
50488 } else {
50489 minX = Math.min(minX, polyPoints.x);
50490 minY = Math.min(minY, polyPoints.y);
50491 }
50492
50493 var left = x1 - node.width / 2 - minX;
50494 var top = y1 - node.height / 2 - minY;
50495
50496 for (var i = 0; i < polyPoints.length; i++) {
50497 var p1 = polyPoints[i];
50498 var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];
50499 var intersect = Object(_intersect_line__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point, {
50500 x: left + p1.x,
50501 y: top + p1.y
50502 }, {
50503 x: left + p2.x,
50504 y: top + p2.y
50505 });
50506
50507 if (intersect) {
50508 intersections.push(intersect);
50509 }
50510 }
50511
50512 if (!intersections.length) {
50513 // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);
50514 return node;
50515 }
50516
50517 if (intersections.length > 1) {
50518 // More intersections, find the one nearest to edge end point
50519 intersections.sort(function (p, q) {
50520 var pdx = p.x - point.x;
50521 var pdy = p.y - point.y;
50522 var distp = Math.sqrt(pdx * pdx + pdy * pdy);
50523 var qdx = q.x - point.x;
50524 var qdy = q.y - point.y;
50525 var distq = Math.sqrt(qdx * qdx + qdy * qdy);
50526 return distp < distq ? -1 : distp === distq ? 0 : 1;
50527 });
50528 }
50529
50530 return intersections[0];
50531}
50532
50533/***/ }),
50534
50535/***/ "./src/dagre-wrapper/intersect/intersect-rect.js":
50536/*!*******************************************************!*\
50537 !*** ./src/dagre-wrapper/intersect/intersect-rect.js ***!
50538 \*******************************************************/
50539/*! exports provided: default */
50540/***/ (function(module, __webpack_exports__, __webpack_require__) {
50541
50542"use strict";
50543__webpack_require__.r(__webpack_exports__);
50544var intersectRect = function intersectRect(node, point) {
50545 var x = node.x;
50546 var y = node.y; // Rectangle intersection algorithm from:
50547 // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
50548
50549 var dx = point.x - x;
50550 var dy = point.y - y;
50551 var w = node.width / 2;
50552 var h = node.height / 2;
50553 var sx, sy;
50554
50555 if (Math.abs(dy) * w > Math.abs(dx) * h) {
50556 // Intersection is top or bottom of rect.
50557 if (dy < 0) {
50558 h = -h;
50559 }
50560
50561 sx = dy === 0 ? 0 : h * dx / dy;
50562 sy = h;
50563 } else {
50564 // Intersection is left or right of rect.
50565 if (dx < 0) {
50566 w = -w;
50567 }
50568
50569 sx = w;
50570 sy = dx === 0 ? 0 : w * dy / dx;
50571 }
50572
50573 return {
50574 x: x + sx,
50575 y: y + sy
50576 };
50577};
50578
50579/* harmony default export */ __webpack_exports__["default"] = (intersectRect);
50580
50581/***/ }),
50582
50583/***/ "./src/dagre-wrapper/markers.js":
50584/*!**************************************!*\
50585 !*** ./src/dagre-wrapper/markers.js ***!
50586 \**************************************/
50587/*! exports provided: default */
50588/***/ (function(module, __webpack_exports__, __webpack_require__) {
50589
50590"use strict";
50591__webpack_require__.r(__webpack_exports__);
50592/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
50593/**
50594 * Setup arrow head and define the marker. The result is appended to the svg.
50595 */
50596 // Only add the number of markers that the diagram needs
50597
50598var insertMarkers = function insertMarkers(elem, markerArray, type, id) {
50599 markerArray.forEach(function (markerName) {
50600 markers[markerName](elem, type, id);
50601 });
50602};
50603
50604var extension = function extension(elem, type, id) {
50605 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Making markers for ', id);
50606 elem.append('defs').append('marker').attr('id', type + '-extensionStart').attr('class', 'marker extension ' + type).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');
50607 elem.append('defs').append('marker').attr('id', type + '-extensionEnd').attr('class', 'marker extension ' + type).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
50608};
50609
50610var composition = function composition(elem, type) {
50611 elem.append('defs').append('marker').attr('id', type + '-compositionStart').attr('class', 'marker composition ' + type).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');
50612 elem.append('defs').append('marker').attr('id', type + '-compositionEnd').attr('class', 'marker composition ' + type).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');
50613};
50614
50615var aggregation = function aggregation(elem, type) {
50616 elem.append('defs').append('marker').attr('id', type + '-aggregationStart').attr('class', 'marker aggregation ' + type).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');
50617 elem.append('defs').append('marker').attr('id', type + '-aggregationEnd').attr('class', 'marker aggregation ' + type).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');
50618};
50619
50620var dependency = function dependency(elem, type) {
50621 elem.append('defs').append('marker').attr('id', type + '-dependencyStart').attr('class', 'marker dependency ' + type).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');
50622 elem.append('defs').append('marker').attr('id', type + '-dependencyEnd').attr('class', 'marker dependency ' + type).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');
50623};
50624
50625var point = function point(elem, type) {
50626 elem.append('marker').attr('id', type + '-pointEnd').attr('class', 'marker ' + type).attr('viewBox', '0 0 10 10').attr('refX', 9).attr('refY', 5).attr('markerUnits', 'userSpaceOnUse').attr('markerWidth', 12).attr('markerHeight', 12).attr('orient', 'auto').append('path').attr('d', 'M 0 0 L 10 5 L 0 10 z').attr('class', 'arrowMarkerPath').style('stroke-width', 1).style('stroke-dasharray', '1,0');
50627 elem.append('marker').attr('id', type + '-pointStart').attr('class', 'marker ' + type).attr('viewBox', '0 0 10 10').attr('refX', 0).attr('refY', 5).attr('markerUnits', 'userSpaceOnUse').attr('markerWidth', 12).attr('markerHeight', 12).attr('orient', 'auto').append('path').attr('d', 'M 0 5 L 10 10 L 10 0 z').attr('class', 'arrowMarkerPath').style('stroke-width', 1).style('stroke-dasharray', '1,0');
50628};
50629
50630var circle = function circle(elem, type) {
50631 elem.append('marker').attr('id', type + '-circleEnd').attr('class', 'marker ' + type).attr('viewBox', '0 0 10 10').attr('refX', 11).attr('refY', 5).attr('markerUnits', 'userSpaceOnUse').attr('markerWidth', 11).attr('markerHeight', 11).attr('orient', 'auto').append('circle').attr('cx', '5').attr('cy', '5').attr('r', '5').attr('class', 'arrowMarkerPath').style('stroke-width', 1).style('stroke-dasharray', '1,0');
50632 elem.append('marker').attr('id', type + '-circleStart').attr('class', 'marker ' + type).attr('viewBox', '0 0 10 10').attr('refX', -1).attr('refY', 5).attr('markerUnits', 'userSpaceOnUse').attr('markerWidth', 11).attr('markerHeight', 11).attr('orient', 'auto').append('circle').attr('cx', '5').attr('cy', '5').attr('r', '5').attr('class', 'arrowMarkerPath').style('stroke-width', 1).style('stroke-dasharray', '1,0');
50633};
50634
50635var cross = function cross(elem, type) {
50636 elem.append('marker').attr('id', type + '-crossEnd').attr('class', 'marker cross ' + type).attr('viewBox', '0 0 11 11').attr('refX', 12).attr('refY', 5.2).attr('markerUnits', 'userSpaceOnUse').attr('markerWidth', 11).attr('markerHeight', 11).attr('orient', 'auto').append('path') // .attr('stroke', 'black')
50637 .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9').attr('class', 'arrowMarkerPath').style('stroke-width', 2).style('stroke-dasharray', '1,0');
50638 elem.append('marker').attr('id', type + '-crossStart').attr('class', 'marker cross ' + type).attr('viewBox', '0 0 11 11').attr('refX', -1).attr('refY', 5.2).attr('markerUnits', 'userSpaceOnUse').attr('markerWidth', 11).attr('markerHeight', 11).attr('orient', 'auto').append('path') // .attr('stroke', 'black')
50639 .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9').attr('class', 'arrowMarkerPath').style('stroke-width', 2).style('stroke-dasharray', '1,0');
50640};
50641
50642var barb = function barb(elem, type) {
50643 elem.append('defs').append('marker').attr('id', type + '-barbEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 14).attr('markerUnits', 'strokeWidth').attr('orient', 'auto').append('path').attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');
50644}; // TODO rename the class diagram markers to something shape descriptive and semanitc free
50645
50646
50647var markers = {
50648 extension: extension,
50649 composition: composition,
50650 aggregation: aggregation,
50651 dependency: dependency,
50652 point: point,
50653 circle: circle,
50654 cross: cross,
50655 barb: barb
50656};
50657/* harmony default export */ __webpack_exports__["default"] = (insertMarkers);
50658
50659/***/ }),
50660
50661/***/ "./src/dagre-wrapper/mermaid-graphlib.js":
50662/*!***********************************************!*\
50663 !*** ./src/dagre-wrapper/mermaid-graphlib.js ***!
50664 \***********************************************/
50665/*! exports provided: clusterDb, clear, extractDecendants, validate, findNonClusterChild, adjustClustersAndEdges, extractor, sortNodesByHierarchy */
50666/***/ (function(module, __webpack_exports__, __webpack_require__) {
50667
50668"use strict";
50669__webpack_require__.r(__webpack_exports__);
50670/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clusterDb", function() { return clusterDb; });
50671/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
50672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractDecendants", function() { return extractDecendants; });
50673/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validate", function() { return validate; });
50674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findNonClusterChild", function() { return findNonClusterChild; });
50675/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "adjustClustersAndEdges", function() { return adjustClustersAndEdges; });
50676/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractor", function() { return extractor; });
50677/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortNodesByHierarchy", function() { return sortNodesByHierarchy; });
50678/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
50679/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
50680/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_1__);
50681/**
50682 * Decorates with functions required by mermaids dagre-wrapper.
50683 */
50684
50685
50686var clusterDb = {};
50687var decendants = {};
50688var parents = {};
50689var clear = function clear() {
50690 decendants = {};
50691 parents = {};
50692 clusterDb = {};
50693};
50694
50695var isDecendant = function isDecendant(id, ancenstorId) {
50696 // if (id === ancenstorId) return true;
50697 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('In isDecendant', ancenstorId, ' ', id, ' = ', decendants[ancenstorId].indexOf(id) >= 0);
50698 if (decendants[ancenstorId].indexOf(id) >= 0) return true;
50699 return false;
50700};
50701
50702var edgeInCluster = function edgeInCluster(edge, clusterId) {
50703 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Decendants of ', clusterId, ' is ', decendants[clusterId]);
50704 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Edge is ', edge); // Edges to/from the cluster is not in the cluster, they are in the parent
50705
50706 if (edge.v === clusterId) return false;
50707 if (edge.w === clusterId) return false;
50708
50709 if (!decendants[clusterId]) {
50710 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Tilt, ', clusterId, ',not in decendants');
50711 return false;
50712 }
50713
50714 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Here ');
50715 if (decendants[clusterId].indexOf(edge.v) >= 0) return true;
50716 if (isDecendant(edge.v, clusterId)) return true;
50717 if (isDecendant(edge.w, clusterId)) return true;
50718 if (decendants[clusterId].indexOf(edge.w) >= 0) return true;
50719 return false;
50720};
50721
50722var copy = function copy(clusterId, graph, newGraph, rootId) {
50723 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Copying children of ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);
50724 var nodes = graph.children(clusterId) || []; // Include cluster node if it is not the root
50725
50726 if (clusterId !== rootId) {
50727 nodes.push(clusterId);
50728 }
50729
50730 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Copying (nodes) clusterId', clusterId, 'nodes', nodes);
50731 nodes.forEach(function (node) {
50732 if (graph.children(node).length > 0) {
50733 copy(node, graph, newGraph, rootId);
50734 } else {
50735 var data = graph.node(node);
50736 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);
50737
50738 newGraph.setNode(node, data);
50739
50740 if (rootId !== graph.parent(node)) {
50741 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Setting parent', node, graph.parent(node));
50742 newGraph.setParent(node, graph.parent(node));
50743 }
50744
50745 if (clusterId !== rootId && node !== clusterId) {
50746 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Setting parent', node, clusterId);
50747 newGraph.setParent(node, clusterId);
50748 } else {
50749 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);
50750 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Not Setting parent for node=', node, 'cluster!==rootId', clusterId !== rootId, 'node!==clusterId', node !== clusterId);
50751 }
50752
50753 var edges = graph.edges(node);
50754 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Copying Edges', edges);
50755 edges.forEach(function (edge) {
50756 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Edge', edge);
50757 var data = graph.edge(edge.v, edge.w, edge.name);
50758 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Edge data', data, rootId);
50759
50760 try {
50761 // Do not copy edges in and out of the root cluster, they belong to the parent graph
50762 if (edgeInCluster(edge, rootId)) {
50763 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Copying as ', edge.v, edge.w, data, edge.name);
50764 newGraph.setEdge(edge.v, edge.w, data, edge.name);
50765 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
50766 } else {
50767 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Skipping copy of edge ', edge.v, '-->', edge.w, ' rootId: ', rootId, ' clusterId:', clusterId);
50768 }
50769 } catch (e) {
50770 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].error(e);
50771 }
50772 });
50773 }
50774
50775 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Removing node', node);
50776 graph.removeNode(node);
50777 });
50778};
50779
50780var extractDecendants = function extractDecendants(id, graph) {
50781 // log.debug('Extracting ', id);
50782 var children = graph.children(id);
50783 var res = [].concat(children);
50784
50785 for (var i = 0; i < children.length; i++) {
50786 parents[children[i]] = id;
50787 res = res.concat(extractDecendants(children[i], graph));
50788 }
50789
50790 return res;
50791};
50792/**
50793 * Validates the graph, checking that all parent child relation points to existing nodes and that
50794 * edges between nodes also ia correct. When not correct the function logs the discrepancies.
50795 * @param {graphlib graph} g
50796 */
50797
50798var validate = function validate(graph) {
50799 var edges = graph.edges();
50800 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Edges: ', edges);
50801
50802 for (var i = 0; i < edges.length; i++) {
50803 if (graph.children(edges[i].v).length > 0) {
50804 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('The node ', edges[i].v, ' is part of and edge even though it has children');
50805 return false;
50806 }
50807
50808 if (graph.children(edges[i].w).length > 0) {
50809 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('The node ', edges[i].w, ' is part of and edge even though it has children');
50810 return false;
50811 }
50812 }
50813
50814 return true;
50815};
50816/**
50817 * Finds a child that is not a cluster. When faking a edge between a node and a cluster.
50818 * @param {Finds a } id
50819 * @param {*} graph
50820 */
50821
50822var findNonClusterChild = function findNonClusterChild(id, graph) {
50823 // const node = graph.node(id);
50824 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Searching', id); // const children = graph.children(id).reverse();
50825
50826 var children = graph.children(id); //.reverse();
50827
50828 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Searching children of id ', id, children);
50829
50830 if (children.length < 1) {
50831 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('This is a valid node', id);
50832 return id;
50833 }
50834
50835 for (var i = 0; i < children.length; i++) {
50836 var _id = findNonClusterChild(children[i], graph);
50837
50838 if (_id) {
50839 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Found replacement for', id, ' => ', _id);
50840 return _id;
50841 }
50842 }
50843};
50844
50845var getAnchorId = function getAnchorId(id) {
50846 if (!clusterDb[id]) {
50847 return id;
50848 } // If the cluster has no external connections
50849
50850
50851 if (!clusterDb[id].externalConnections) {
50852 return id;
50853 } // Return the replacement node
50854
50855
50856 if (clusterDb[id]) {
50857 return clusterDb[id].id;
50858 }
50859
50860 return id;
50861};
50862
50863var adjustClustersAndEdges = function adjustClustersAndEdges(graph, depth) {
50864 if (!graph || depth > 10) {
50865 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Opting out, no graph ');
50866 return;
50867 } else {
50868 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Opting in, graph ');
50869 } // Go through the nodes and for each cluster found, save a replacment node, this can be used when
50870 // faking a link to a cluster
50871
50872
50873 graph.nodes().forEach(function (id) {
50874 var children = graph.children(id);
50875
50876 if (children.length > 0) {
50877 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Cluster identified', id, ' Replacement id in edges: ', findNonClusterChild(id, graph));
50878 decendants[id] = extractDecendants(id, graph);
50879 clusterDb[id] = {
50880 id: findNonClusterChild(id, graph),
50881 clusterData: graph.node(id)
50882 };
50883 }
50884 }); // Check incoming and outgoing edges for each cluster
50885
50886 graph.nodes().forEach(function (id) {
50887 var children = graph.children(id);
50888 var edges = graph.edges();
50889
50890 if (children.length > 0) {
50891 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Cluster identified', id, decendants);
50892 edges.forEach(function (edge) {
50893 // log.debug('Edge, decendants: ', edge, decendants[id]);
50894 // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)
50895 if (edge.v !== id && edge.w !== id) {
50896 // Any edge where either the one of the nodes is decending to the cluster but not the other
50897 // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {
50898 var d1 = isDecendant(edge.v, id);
50899 var d2 = isDecendant(edge.w, id); // d1 xor d2 - if either d1 is true and d2 is false or the other way around
50900
50901 if (d1 ^ d2) {
50902 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Edge: ', edge, ' leaves cluster ', id);
50903 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Decendants of XXX ', id, ': ', decendants[id]);
50904 clusterDb[id].externalConnections = true;
50905 }
50906 }
50907 });
50908 } else {
50909 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Not a cluster ', id, decendants);
50910 }
50911 }); // For clusters with incoming and/or outgoing edges translate those edges to a real node
50912 // in the cluster inorder to fake the edge
50913
50914 graph.edges().forEach(function (e) {
50915 var edge = graph.edge(e);
50916 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
50917 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));
50918 var v = e.v;
50919 var w = e.w; // Check if link is either from or to a cluster
50920
50921 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Fix XXX', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], ' --- ', clusterDb[e.w]);
50922
50923 if (clusterDb[e.v] || clusterDb[e.w]) {
50924 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);
50925 v = getAnchorId(e.v);
50926 w = getAnchorId(e.w);
50927 graph.removeEdge(e.v, e.w, e.name);
50928 if (v !== e.v) edge.fromCluster = e.v;
50929 if (w !== e.w) edge.toCluster = e.w;
50930 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Fix Replacing with XXX', v, w, e.name);
50931 graph.setEdge(v, w, edge, e.name);
50932 }
50933 });
50934 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Adjusted Graph', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
50935 extractor(graph, 0);
50936 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace(clusterDb); // Remove references to extracted cluster
50937 // graph.edges().forEach(edge => {
50938 // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {
50939 // graph.removeEdge(edge);
50940 // }
50941 // });
50942};
50943var extractor = function extractor(graph, depth) {
50944 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('extractor - ', depth, graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph), graph.children('D'));
50945
50946 if (depth > 10) {
50947 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].error('Bailing out');
50948 return;
50949 } // For clusters without incoming and/or outgoing edges, create a new cluster-node
50950 // containing the nodes and edges in the custer in a new graph
50951 // for (let i = 0;)
50952
50953
50954 var nodes = graph.nodes();
50955 var hasChildren = false;
50956
50957 for (var i = 0; i < nodes.length; i++) {
50958 var node = nodes[i];
50959 var children = graph.children(node);
50960 hasChildren = hasChildren || children.length > 0;
50961 }
50962
50963 if (!hasChildren) {
50964 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Done, no node has children', graph.nodes());
50965 return;
50966 } // const clusters = Object.keys(clusterDb);
50967 // clusters.forEach(clusterId => {
50968
50969
50970 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Nodes = ', nodes, depth);
50971
50972 for (var _i = 0; _i < nodes.length; _i++) {
50973 var _node = nodes[_i];
50974 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Extracting node', _node, clusterDb, clusterDb[_node] && !clusterDb[_node].externalConnections, !graph.parent(_node), graph.node(_node), graph.children('D'), ' Depth ', depth); // Note that the node might have been removed after the Object.keys call so better check
50975 // that it still is in the game
50976
50977 if (!clusterDb[_node]) {
50978 // Skip if the node is not a cluster
50979 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Not a cluster', _node, depth); // break;
50980 } else if (!clusterDb[_node].externalConnections && // !graph.parent(node) &&
50981 graph.children(_node) && graph.children(_node).length > 0) {
50982 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Cluster without external connections, without a parent and with children', _node, depth);
50983 var graphSettings = graph.graph();
50984 var clusterGraph = new graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.Graph({
50985 multigraph: true,
50986 compound: true
50987 }).setGraph({
50988 rankdir: graphSettings.rankdir === 'TB' ? 'LR' : 'TB',
50989 // Todo: set proper spacing
50990 nodesep: 50,
50991 ranksep: 50,
50992 marginx: 8,
50993 marginy: 8
50994 }).setDefaultEdgeLabel(function () {
50995 return {};
50996 });
50997 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Old graph before copy', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
50998 copy(_node, graph, clusterGraph, _node);
50999 graph.setNode(_node, {
51000 clusterNode: true,
51001 id: _node,
51002 clusterData: clusterDb[_node].clusterData,
51003 labelText: clusterDb[_node].labelText,
51004 graph: clusterGraph
51005 });
51006 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('New graph after copy node: (', _node, ')', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(clusterGraph));
51007 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Old graph after copy', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
51008 } else {
51009 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Cluster ** ', _node, ' **not meeting the criteria !externalConnections:', !clusterDb[_node].externalConnections, ' no parent: ', !graph.parent(_node), ' children ', graph.children(_node) && graph.children(_node).length > 0, graph.children('D'), depth);
51010 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(clusterDb);
51011 }
51012 }
51013
51014 nodes = graph.nodes();
51015 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('New list of nodes', nodes);
51016
51017 for (var _i2 = 0; _i2 < nodes.length; _i2++) {
51018 var _node2 = nodes[_i2];
51019 var data = graph.node(_node2);
51020 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn(' Now next level', _node2, data);
51021
51022 if (data.clusterNode) {
51023 extractor(data.graph, depth + 1);
51024 }
51025 }
51026};
51027
51028var sorter = function sorter(graph, nodes) {
51029 if (nodes.length === 0) return [];
51030 var result = Object.assign(nodes);
51031 nodes.forEach(function (node) {
51032 var children = graph.children(node);
51033 var sorted = sorter(graph, children);
51034 result = result.concat(sorted);
51035 });
51036 return result;
51037};
51038
51039var sortNodesByHierarchy = function sortNodesByHierarchy(graph) {
51040 return sorter(graph, graph.children());
51041};
51042
51043/***/ }),
51044
51045/***/ "./src/dagre-wrapper/nodes.js":
51046/*!************************************!*\
51047 !*** ./src/dagre-wrapper/nodes.js ***!
51048 \************************************/
51049/*! exports provided: insertNode, setNodeElem, clear, positionNode */
51050/***/ (function(module, __webpack_exports__, __webpack_require__) {
51051
51052"use strict";
51053__webpack_require__.r(__webpack_exports__);
51054/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertNode", function() { return insertNode; });
51055/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setNodeElem", function() { return setNodeElem; });
51056/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
51057/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionNode", function() { return positionNode; });
51058/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
51059/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
51060/* harmony import */ var _shapes_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shapes/util */ "./src/dagre-wrapper/shapes/util.js");
51061/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config.js");
51062/* harmony import */ var _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./intersect/index.js */ "./src/dagre-wrapper/intersect/index.js");
51063/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
51064/* harmony import */ var _shapes_note__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./shapes/note */ "./src/dagre-wrapper/shapes/note.js");
51065/* harmony import */ var _diagrams_class_svgDraw__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../diagrams/class/svgDraw */ "./src/diagrams/class/svgDraw.js");
51066
51067 // eslint-disable-line
51068
51069
51070
51071
51072
51073
51074
51075
51076var question = function question(parent, node) {
51077 var _labelHelper = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51078 shapeSvg = _labelHelper.shapeSvg,
51079 bbox = _labelHelper.bbox;
51080
51081 var w = bbox.width + node.padding;
51082 var h = bbox.height + node.padding;
51083 var s = w + h;
51084 var points = [{
51085 x: s / 2,
51086 y: 0
51087 }, {
51088 x: s,
51089 y: -s / 2
51090 }, {
51091 x: s / 2,
51092 y: -s
51093 }, {
51094 x: 0,
51095 y: -s / 2
51096 }];
51097 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Question main (Circle)');
51098 var questionElem = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, s, s, points);
51099 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, questionElem);
51100
51101 node.intersect = function (point) {
51102 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].warn('Intersect called');
51103 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, points, point);
51104 };
51105
51106 return shapeSvg;
51107};
51108
51109var hexagon = function hexagon(parent, node) {
51110 var _labelHelper2 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51111 shapeSvg = _labelHelper2.shapeSvg,
51112 bbox = _labelHelper2.bbox;
51113
51114 var f = 4;
51115 var h = bbox.height + node.padding;
51116 var m = h / f;
51117 var w = bbox.width + 2 * m + node.padding;
51118 var points = [{
51119 x: m,
51120 y: 0
51121 }, {
51122 x: w - m,
51123 y: 0
51124 }, {
51125 x: w,
51126 y: -h / 2
51127 }, {
51128 x: w - m,
51129 y: -h
51130 }, {
51131 x: m,
51132 y: -h
51133 }, {
51134 x: 0,
51135 y: -h / 2
51136 }];
51137 var hex = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51138 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, hex);
51139
51140 node.intersect = function (point) {
51141 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51142 };
51143
51144 return shapeSvg;
51145};
51146
51147var rect_left_inv_arrow = function rect_left_inv_arrow(parent, node) {
51148 var _labelHelper3 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51149 shapeSvg = _labelHelper3.shapeSvg,
51150 bbox = _labelHelper3.bbox;
51151
51152 var w = bbox.width + node.padding;
51153 var h = bbox.height + node.padding;
51154 var points = [{
51155 x: -h / 2,
51156 y: 0
51157 }, {
51158 x: w,
51159 y: 0
51160 }, {
51161 x: w,
51162 y: -h
51163 }, {
51164 x: -h / 2,
51165 y: -h
51166 }, {
51167 x: 0,
51168 y: -h / 2
51169 }];
51170 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51171 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51172
51173 node.intersect = function (point) {
51174 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51175 };
51176
51177 return shapeSvg;
51178};
51179
51180var lean_right = function lean_right(parent, node) {
51181 var _labelHelper4 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51182 shapeSvg = _labelHelper4.shapeSvg,
51183 bbox = _labelHelper4.bbox;
51184
51185 var w = bbox.width + node.padding;
51186 var h = bbox.height + node.padding;
51187 var points = [{
51188 x: -2 * h / 6,
51189 y: 0
51190 }, {
51191 x: w - h / 6,
51192 y: 0
51193 }, {
51194 x: w + 2 * h / 6,
51195 y: -h
51196 }, {
51197 x: h / 6,
51198 y: -h
51199 }];
51200 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51201 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51202
51203 node.intersect = function (point) {
51204 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51205 };
51206
51207 return shapeSvg;
51208};
51209
51210var lean_left = function lean_left(parent, node) {
51211 var _labelHelper5 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51212 shapeSvg = _labelHelper5.shapeSvg,
51213 bbox = _labelHelper5.bbox;
51214
51215 var w = bbox.width + node.padding;
51216 var h = bbox.height + node.padding;
51217 var points = [{
51218 x: 2 * h / 6,
51219 y: 0
51220 }, {
51221 x: w + h / 6,
51222 y: 0
51223 }, {
51224 x: w - 2 * h / 6,
51225 y: -h
51226 }, {
51227 x: -h / 6,
51228 y: -h
51229 }];
51230 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51231 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51232
51233 node.intersect = function (point) {
51234 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51235 };
51236
51237 return shapeSvg;
51238};
51239
51240var trapezoid = function trapezoid(parent, node) {
51241 var _labelHelper6 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51242 shapeSvg = _labelHelper6.shapeSvg,
51243 bbox = _labelHelper6.bbox;
51244
51245 var w = bbox.width + node.padding;
51246 var h = bbox.height + node.padding;
51247 var points = [{
51248 x: -2 * h / 6,
51249 y: 0
51250 }, {
51251 x: w + 2 * h / 6,
51252 y: 0
51253 }, {
51254 x: w - h / 6,
51255 y: -h
51256 }, {
51257 x: h / 6,
51258 y: -h
51259 }];
51260 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51261 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51262
51263 node.intersect = function (point) {
51264 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51265 };
51266
51267 return shapeSvg;
51268};
51269
51270var inv_trapezoid = function inv_trapezoid(parent, node) {
51271 var _labelHelper7 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51272 shapeSvg = _labelHelper7.shapeSvg,
51273 bbox = _labelHelper7.bbox;
51274
51275 var w = bbox.width + node.padding;
51276 var h = bbox.height + node.padding;
51277 var points = [{
51278 x: h / 6,
51279 y: 0
51280 }, {
51281 x: w - h / 6,
51282 y: 0
51283 }, {
51284 x: w + 2 * h / 6,
51285 y: -h
51286 }, {
51287 x: -2 * h / 6,
51288 y: -h
51289 }];
51290 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51291 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51292
51293 node.intersect = function (point) {
51294 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51295 };
51296
51297 return shapeSvg;
51298};
51299
51300var rect_right_inv_arrow = function rect_right_inv_arrow(parent, node) {
51301 var _labelHelper8 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51302 shapeSvg = _labelHelper8.shapeSvg,
51303 bbox = _labelHelper8.bbox;
51304
51305 var w = bbox.width + node.padding;
51306 var h = bbox.height + node.padding;
51307 var points = [{
51308 x: 0,
51309 y: 0
51310 }, {
51311 x: w + h / 2,
51312 y: 0
51313 }, {
51314 x: w,
51315 y: -h / 2
51316 }, {
51317 x: w + h / 2,
51318 y: -h
51319 }, {
51320 x: 0,
51321 y: -h
51322 }];
51323 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51324 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51325
51326 node.intersect = function (point) {
51327 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51328 };
51329
51330 return shapeSvg;
51331};
51332
51333var cylinder = function cylinder(parent, node) {
51334 var _labelHelper9 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51335 shapeSvg = _labelHelper9.shapeSvg,
51336 bbox = _labelHelper9.bbox;
51337
51338 var w = bbox.width + node.padding;
51339 var rx = w / 2;
51340 var ry = rx / (2.5 + w / 50);
51341 var h = bbox.height + ry + node.padding;
51342 var shape = 'M 0,' + ry + ' a ' + rx + ',' + ry + ' 0,0,0 ' + w + ' 0 a ' + rx + ',' + ry + ' 0,0,0 ' + -w + ' 0 l 0,' + h + ' a ' + rx + ',' + ry + ' 0,0,0 ' + w + ' 0 l 0,' + -h;
51343 var el = shapeSvg.attr('label-offset-y', ry).insert('path', ':first-child').attr('d', shape).attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');
51344 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51345
51346 node.intersect = function (point) {
51347 var pos = _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51348 var x = pos.x - node.x;
51349
51350 if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {
51351 // ellipsis equation: x*x / a*a + y*y / b*b = 1
51352 // solve for y to get adjustion value for pos.y
51353 var y = ry * ry * (1 - x * x / (rx * rx));
51354 if (y != 0) y = Math.sqrt(y);
51355 y = ry - y;
51356 if (point.y - node.y > 0) y = -y;
51357 pos.y += y;
51358 }
51359
51360 return pos;
51361 };
51362
51363 return shapeSvg;
51364};
51365
51366var rect = function rect(parent, node) {
51367 var _labelHelper10 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, 'node ' + node.classes, true),
51368 shapeSvg = _labelHelper10.shapeSvg,
51369 bbox = _labelHelper10.bbox,
51370 halfPadding = _labelHelper10.halfPadding;
51371
51372 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Classes = ', node.classes); // add the rect
51373
51374 var rect = shapeSvg.insert('rect', ':first-child');
51375 rect.attr('class', 'basic label-container').attr('style', node.style).attr('rx', node.rx).attr('ry', node.ry).attr('x', -bbox.width / 2 - halfPadding).attr('y', -bbox.height / 2 - halfPadding).attr('width', bbox.width + node.padding).attr('height', bbox.height + node.padding);
51376 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, rect);
51377
51378 node.intersect = function (point) {
51379 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51380 };
51381
51382 return shapeSvg;
51383};
51384
51385var rectWithTitle = function rectWithTitle(parent, node) {
51386 // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);
51387 var classes;
51388
51389 if (!node.classes) {
51390 classes = 'node default';
51391 } else {
51392 classes = 'node ' + node.classes;
51393 } // Add outer g element
51394
51395
51396 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.domId || node.id); // Create the title label and insert it after the rect
51397
51398 var rect = shapeSvg.insert('rect', ':first-child'); // const innerRect = shapeSvg.insert('rect');
51399
51400 var innerLine = shapeSvg.insert('line');
51401 var label = shapeSvg.insert('g').attr('class', 'label');
51402 var text2 = node.labelText.flat();
51403 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Label text', text2[0]);
51404 var text = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(text2[0], node.labelStyle, true, true));
51405 var bbox;
51406
51407 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51408 var div = text.children[0];
51409 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(text);
51410 bbox = div.getBoundingClientRect();
51411 dv.attr('width', bbox.width);
51412 dv.attr('height', bbox.height);
51413 }
51414
51415 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Text 2', text2);
51416 var textRows = text2.slice(1, text2.length);
51417 var titleBox = text.getBBox();
51418 var descr = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(textRows.join('<br/>'), node.labelStyle, true, true));
51419
51420 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51421 var _div = descr.children[0];
51422
51423 var _dv = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(descr);
51424
51425 bbox = _div.getBoundingClientRect();
51426
51427 _dv.attr('width', bbox.width);
51428
51429 _dv.attr('height', bbox.height);
51430 } // bbox = label.getBBox();
51431 // logger.info(descr);
51432
51433
51434 var halfPadding = node.padding / 2;
51435 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(descr).attr('transform', 'translate( ' + ( // (titleBox.width - bbox.width) / 2 +
51436 bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ', ' + (titleBox.height + halfPadding + 5) + ')');
51437 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(text).attr('transform', 'translate( ' + ( // (titleBox.width - bbox.width) / 2 +
51438 bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ', ' + 0 + ')'); // Get the size of the label
51439 // Bounding box for title and text
51440
51441 bbox = label.node().getBBox(); // Center the label
51442
51443 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')');
51444 rect.attr('class', 'outer title-state').attr('x', -bbox.width / 2 - halfPadding).attr('y', -bbox.height / 2 - halfPadding).attr('width', bbox.width + node.padding).attr('height', bbox.height + node.padding);
51445 innerLine.attr('class', 'divider').attr('x1', -bbox.width / 2 - halfPadding).attr('x2', bbox.width / 2 + halfPadding).attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
51446 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, rect);
51447
51448 node.intersect = function (point) {
51449 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51450 };
51451
51452 return shapeSvg;
51453};
51454
51455var stadium = function stadium(parent, node) {
51456 var _labelHelper11 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51457 shapeSvg = _labelHelper11.shapeSvg,
51458 bbox = _labelHelper11.bbox;
51459
51460 var h = bbox.height + node.padding;
51461 var w = bbox.width + h / 4 + node.padding; // add the rect
51462
51463 var rect = shapeSvg.insert('rect', ':first-child').attr('rx', h / 2).attr('ry', h / 2).attr('x', -w / 2).attr('y', -h / 2).attr('width', w).attr('height', h);
51464 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, rect);
51465
51466 node.intersect = function (point) {
51467 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51468 };
51469
51470 return shapeSvg;
51471};
51472
51473var circle = function circle(parent, node) {
51474 var _labelHelper12 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51475 shapeSvg = _labelHelper12.shapeSvg,
51476 bbox = _labelHelper12.bbox,
51477 halfPadding = _labelHelper12.halfPadding;
51478
51479 var circle = shapeSvg.insert('circle', ':first-child'); // center the circle around its coordinate
51480
51481 circle.attr('rx', node.rx).attr('ry', node.ry).attr('r', bbox.width / 2 + halfPadding).attr('width', bbox.width + node.padding).attr('height', bbox.height + node.padding);
51482 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Circle main');
51483 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, circle);
51484
51485 node.intersect = function (point) {
51486 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Circle intersect', node, bbox.width / 2 + halfPadding, point);
51487 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].circle(node, bbox.width / 2 + halfPadding, point);
51488 };
51489
51490 return shapeSvg;
51491};
51492
51493var subroutine = function subroutine(parent, node) {
51494 var _labelHelper13 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51495 shapeSvg = _labelHelper13.shapeSvg,
51496 bbox = _labelHelper13.bbox;
51497
51498 var w = bbox.width + node.padding;
51499 var h = bbox.height + node.padding;
51500 var points = [{
51501 x: 0,
51502 y: 0
51503 }, {
51504 x: w,
51505 y: 0
51506 }, {
51507 x: w,
51508 y: -h
51509 }, {
51510 x: 0,
51511 y: -h
51512 }, {
51513 x: 0,
51514 y: 0
51515 }, {
51516 x: -8,
51517 y: 0
51518 }, {
51519 x: w + 8,
51520 y: 0
51521 }, {
51522 x: w + 8,
51523 y: -h
51524 }, {
51525 x: -8,
51526 y: -h
51527 }, {
51528 x: -8,
51529 y: 0
51530 }];
51531 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51532 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51533
51534 node.intersect = function (point) {
51535 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51536 };
51537
51538 return shapeSvg;
51539};
51540
51541var start = function start(parent, node) {
51542 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.domId || node.id);
51543 var circle = shapeSvg.insert('circle', ':first-child'); // center the circle around its coordinate
51544
51545 circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);
51546 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, circle);
51547
51548 node.intersect = function (point) {
51549 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].circle(node, 7, point);
51550 };
51551
51552 return shapeSvg;
51553};
51554
51555var forkJoin = function forkJoin(parent, node, dir) {
51556 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.domId || node.id);
51557 var width = 70;
51558 var height = 10;
51559
51560 if (dir === 'LR') {
51561 width = 10;
51562 height = 70;
51563 }
51564
51565 var shape = shapeSvg.append('rect').style('stroke', 'black').style('fill', 'black').attr('x', -1 * width / 2).attr('y', -1 * height / 2).attr('width', width).attr('height', height).attr('class', 'fork-join');
51566 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, shape);
51567 node.height = node.height + node.padding / 2;
51568 node.width = node.width + node.padding / 2;
51569
51570 node.intersect = function (point) {
51571 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51572 };
51573
51574 return shapeSvg;
51575};
51576
51577var end = function end(parent, node) {
51578 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.domId || node.id);
51579 var innerCircle = shapeSvg.insert('circle', ':first-child');
51580 var circle = shapeSvg.insert('circle', ':first-child');
51581 circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);
51582 innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);
51583 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, circle);
51584
51585 node.intersect = function (point) {
51586 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].circle(node, 7, point);
51587 };
51588
51589 return shapeSvg;
51590};
51591
51592var class_box = function class_box(parent, node) {
51593 var halfPadding = node.padding / 2;
51594 var rowPadding = 4;
51595 var lineHeight = 8;
51596 var classes;
51597
51598 if (!node.classes) {
51599 classes = 'node default';
51600 } else {
51601 classes = 'node ' + node.classes;
51602 } // Add outer g element
51603
51604
51605 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.domId || node.id); // Create the title label and insert it after the rect
51606
51607 var rect = shapeSvg.insert('rect', ':first-child');
51608 var topLine = shapeSvg.insert('line');
51609 var bottomLine = shapeSvg.insert('line');
51610 var maxWidth = 0;
51611 var maxHeight = rowPadding;
51612 var labelContainer = shapeSvg.insert('g').attr('class', 'label');
51613 var verticalPos = 0;
51614 var hasInterface = node.classData.annotations && node.classData.annotations[0]; // 1. Create the labels
51615
51616 var interfaceLabelText = node.classData.annotations[0] ? '«' + node.classData.annotations[0] + '»' : '';
51617 var interfaceLabel = labelContainer.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(interfaceLabelText, node.labelStyle, true, true));
51618 var interfaceBBox = interfaceLabel.getBBox();
51619
51620 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51621 var div = interfaceLabel.children[0];
51622 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(interfaceLabel);
51623 interfaceBBox = div.getBoundingClientRect();
51624 dv.attr('width', interfaceBBox.width);
51625 dv.attr('height', interfaceBBox.height);
51626 }
51627
51628 if (node.classData.annotations[0]) {
51629 maxHeight += interfaceBBox.height + rowPadding;
51630 maxWidth += interfaceBBox.width;
51631 }
51632
51633 var classTitleString = node.classData.id;
51634
51635 if (node.classData.type !== undefined && node.classData.type !== '') {
51636 classTitleString += '<' + node.classData.type + '>';
51637 }
51638
51639 var classTitleLabel = labelContainer.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(classTitleString, node.labelStyle, true, true));
51640 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(classTitleLabel).attr('class', 'classTitle');
51641 var classTitleBBox = classTitleLabel.getBBox();
51642
51643 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51644 var _div2 = classTitleLabel.children[0];
51645
51646 var _dv2 = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(classTitleLabel);
51647
51648 classTitleBBox = _div2.getBoundingClientRect();
51649
51650 _dv2.attr('width', classTitleBBox.width);
51651
51652 _dv2.attr('height', classTitleBBox.height);
51653 }
51654
51655 maxHeight += classTitleBBox.height + rowPadding;
51656
51657 if (classTitleBBox.width > maxWidth) {
51658 maxWidth = classTitleBBox.width;
51659 }
51660
51661 var classAttributes = [];
51662 node.classData.members.forEach(function (str) {
51663 var parsedText = Object(_diagrams_class_svgDraw__WEBPACK_IMPORTED_MODULE_7__["parseMember"])(str).displayText;
51664 var lbl = labelContainer.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(parsedText, node.labelStyle, true, true));
51665 var bbox = lbl.getBBox();
51666
51667 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51668 var _div3 = lbl.children[0];
51669
51670 var _dv3 = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(lbl);
51671
51672 bbox = _div3.getBoundingClientRect();
51673
51674 _dv3.attr('width', bbox.width);
51675
51676 _dv3.attr('height', bbox.height);
51677 }
51678
51679 if (bbox.width > maxWidth) {
51680 maxWidth = bbox.width;
51681 }
51682
51683 maxHeight += bbox.height + rowPadding;
51684 classAttributes.push(lbl);
51685 });
51686 maxHeight += lineHeight;
51687 var classMethods = [];
51688 node.classData.methods.forEach(function (str) {
51689 var parsedText = Object(_diagrams_class_svgDraw__WEBPACK_IMPORTED_MODULE_7__["parseMember"])(str).displayText;
51690 var lbl = labelContainer.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(parsedText, node.labelStyle, true, true));
51691 var bbox = lbl.getBBox();
51692
51693 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51694 var _div4 = lbl.children[0];
51695
51696 var _dv4 = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(lbl);
51697
51698 bbox = _div4.getBoundingClientRect();
51699
51700 _dv4.attr('width', bbox.width);
51701
51702 _dv4.attr('height', bbox.height);
51703 }
51704
51705 if (bbox.width > maxWidth) {
51706 maxWidth = bbox.width;
51707 }
51708
51709 maxHeight += bbox.height + rowPadding;
51710 classMethods.push(lbl);
51711 });
51712 maxHeight += lineHeight; // 2. Position the labels
51713 // position the interface label
51714
51715 if (hasInterface) {
51716 var _diffX = (maxWidth - interfaceBBox.width) / 2;
51717
51718 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(interfaceLabel).attr('transform', 'translate( ' + (-1 * maxWidth / 2 + _diffX) + ', ' + -1 * maxHeight / 2 + ')');
51719 verticalPos = interfaceBBox.height + rowPadding;
51720 } // Positin the class title label
51721
51722
51723 var diffX = (maxWidth - classTitleBBox.width) / 2;
51724 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(classTitleLabel).attr('transform', 'translate( ' + (-1 * maxWidth / 2 + diffX) + ', ' + (-1 * maxHeight / 2 + verticalPos) + ')');
51725 verticalPos += classTitleBBox.height + rowPadding;
51726 topLine.attr('class', 'divider').attr('x1', -maxWidth / 2 - halfPadding).attr('x2', maxWidth / 2 + halfPadding).attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
51727 verticalPos += lineHeight;
51728 classAttributes.forEach(function (lbl) {
51729 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(lbl).attr('transform', 'translate( ' + -maxWidth / 2 + ', ' + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ')');
51730 verticalPos += classTitleBBox.height + rowPadding;
51731 });
51732 verticalPos += lineHeight;
51733 bottomLine.attr('class', 'divider').attr('x1', -maxWidth / 2 - halfPadding).attr('x2', maxWidth / 2 + halfPadding).attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
51734 verticalPos += lineHeight;
51735 classMethods.forEach(function (lbl) {
51736 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(lbl).attr('transform', 'translate( ' + -maxWidth / 2 + ', ' + (-1 * maxHeight / 2 + verticalPos) + ')');
51737 verticalPos += classTitleBBox.height + rowPadding;
51738 }); //
51739 // let bbox;
51740 // if (getConfig().flowchart.htmlLabels) {
51741 // const div = interfaceLabel.children[0];
51742 // const dv = select(interfaceLabel);
51743 // bbox = div.getBoundingClientRect();
51744 // dv.attr('width', bbox.width);
51745 // dv.attr('height', bbox.height);
51746 // }
51747 // bbox = labelContainer.getBBox();
51748 // logger.info('Text 2', text2);
51749 // const textRows = text2.slice(1, text2.length);
51750 // let titleBox = text.getBBox();
51751 // const descr = label
51752 // .node()
51753 // .appendChild(createLabel(textRows.join('<br/>'), node.labelStyle, true, true));
51754 // if (getConfig().flowchart.htmlLabels) {
51755 // const div = descr.children[0];
51756 // const dv = select(descr);
51757 // bbox = div.getBoundingClientRect();
51758 // dv.attr('width', bbox.width);
51759 // dv.attr('height', bbox.height);
51760 // }
51761 // // bbox = label.getBBox();
51762 // // logger.info(descr);
51763 // select(descr).attr(
51764 // 'transform',
51765 // 'translate( ' +
51766 // // (titleBox.width - bbox.width) / 2 +
51767 // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +
51768 // ', ' +
51769 // (titleBox.height + halfPadding + 5) +
51770 // ')'
51771 // );
51772 // select(text).attr(
51773 // 'transform',
51774 // 'translate( ' +
51775 // // (titleBox.width - bbox.width) / 2 +
51776 // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +
51777 // ', ' +
51778 // 0 +
51779 // ')'
51780 // );
51781 // // Get the size of the label
51782 // // Bounding box for title and text
51783 // bbox = label.node().getBBox();
51784 // // Center the label
51785 // label.attr(
51786 // 'transform',
51787 // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'
51788 // );
51789
51790 rect.attr('class', 'outer title-state').attr('x', -maxWidth / 2 - halfPadding).attr('y', -(maxHeight / 2) - halfPadding).attr('width', maxWidth + node.padding).attr('height', maxHeight + node.padding); // innerLine
51791 // .attr('class', 'divider')
51792 // .attr('x1', -bbox.width / 2 - halfPadding)
51793 // .attr('x2', bbox.width / 2 + halfPadding)
51794 // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)
51795 // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
51796
51797 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, rect);
51798
51799 node.intersect = function (point) {
51800 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51801 };
51802
51803 return shapeSvg;
51804};
51805
51806var shapes = {
51807 question: question,
51808 rect: rect,
51809 rectWithTitle: rectWithTitle,
51810 circle: circle,
51811 stadium: stadium,
51812 hexagon: hexagon,
51813 rect_left_inv_arrow: rect_left_inv_arrow,
51814 lean_right: lean_right,
51815 lean_left: lean_left,
51816 trapezoid: trapezoid,
51817 inv_trapezoid: inv_trapezoid,
51818 rect_right_inv_arrow: rect_right_inv_arrow,
51819 cylinder: cylinder,
51820 start: start,
51821 end: end,
51822 note: _shapes_note__WEBPACK_IMPORTED_MODULE_6__["default"],
51823 subroutine: subroutine,
51824 fork: forkJoin,
51825 join: forkJoin,
51826 class_box: class_box
51827};
51828var nodeElems = {};
51829var insertNode = function insertNode(elem, node, dir) {
51830 var newEl;
51831 var el; // Add link when appropriate
51832
51833 if (node.link) {
51834 newEl = elem.insert('svg:a').attr('xlink:href', node.link).attr('target', node.linkTarget || '_blank');
51835 el = shapes[node.shape](newEl, node, dir);
51836 } else {
51837 el = shapes[node.shape](elem, node, dir);
51838 newEl = el;
51839 }
51840
51841 if (node.tooltip) {
51842 el.attr('title', node.tooltip);
51843 }
51844
51845 if (node.class) {
51846 el.attr('class', 'node default ' + node.class);
51847 }
51848
51849 nodeElems[node.id] = newEl;
51850
51851 if (node.haveCallback) {
51852 nodeElems[node.id].attr('class', nodeElems[node.id].attr('class') + ' clickable');
51853 }
51854};
51855var setNodeElem = function setNodeElem(elem, node) {
51856 nodeElems[node.id] = elem;
51857};
51858var clear = function clear() {
51859 nodeElems = {};
51860};
51861var positionNode = function positionNode(node) {
51862 var el = nodeElems[node.id];
51863 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Transforming node', node, 'translate(' + (node.x - node.width / 2 - 5) + ', ' + (node.y - node.height / 2 - 5) + ')');
51864 var padding = 8;
51865
51866 if (node.clusterNode) {
51867 el.attr('transform', 'translate(' + (node.x - node.width / 2 - padding) + ', ' + (node.y - node.height / 2 - padding) + ')');
51868 } else {
51869 el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');
51870 }
51871};
51872
51873/***/ }),
51874
51875/***/ "./src/dagre-wrapper/shapes/note.js":
51876/*!******************************************!*\
51877 !*** ./src/dagre-wrapper/shapes/note.js ***!
51878 \******************************************/
51879/*! exports provided: default */
51880/***/ (function(module, __webpack_exports__, __webpack_require__) {
51881
51882"use strict";
51883__webpack_require__.r(__webpack_exports__);
51884/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./src/dagre-wrapper/shapes/util.js");
51885/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
51886/* harmony import */ var _intersect_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../intersect/index.js */ "./src/dagre-wrapper/intersect/index.js");
51887
51888 // eslint-disable-line
51889
51890
51891
51892var note = function note(parent, node) {
51893 var _labelHelper = Object(_util__WEBPACK_IMPORTED_MODULE_0__["labelHelper"])(parent, node, 'node ' + node.classes, true),
51894 shapeSvg = _labelHelper.shapeSvg,
51895 bbox = _labelHelper.bbox,
51896 halfPadding = _labelHelper.halfPadding;
51897
51898 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Classes = ', node.classes); // add the rect
51899
51900 var rect = shapeSvg.insert('rect', ':first-child');
51901 rect.attr('rx', node.rx).attr('ry', node.ry).attr('x', -bbox.width / 2 - halfPadding).attr('y', -bbox.height / 2 - halfPadding).attr('width', bbox.width + node.padding).attr('height', bbox.height + node.padding);
51902 Object(_util__WEBPACK_IMPORTED_MODULE_0__["updateNodeBounds"])(node, rect);
51903
51904 node.intersect = function (point) {
51905 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].rect(node, point);
51906 };
51907
51908 return shapeSvg;
51909};
51910
51911/* harmony default export */ __webpack_exports__["default"] = (note);
51912
51913/***/ }),
51914
51915/***/ "./src/dagre-wrapper/shapes/util.js":
51916/*!******************************************!*\
51917 !*** ./src/dagre-wrapper/shapes/util.js ***!
51918 \******************************************/
51919/*! exports provided: labelHelper, updateNodeBounds, insertPolygonShape */
51920/***/ (function(module, __webpack_exports__, __webpack_require__) {
51921
51922"use strict";
51923__webpack_require__.r(__webpack_exports__);
51924/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "labelHelper", function() { return labelHelper; });
51925/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateNodeBounds", function() { return updateNodeBounds; });
51926/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertPolygonShape", function() { return insertPolygonShape; });
51927/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLabel */ "./src/dagre-wrapper/createLabel.js");
51928/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
51929/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
51930
51931
51932
51933var labelHelper = function labelHelper(parent, node, _classes, isNode) {
51934 var classes;
51935
51936 if (!_classes) {
51937 classes = 'node default';
51938 } else {
51939 classes = _classes;
51940 } // Add outer g element
51941
51942
51943 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.domId || node.id); // Create the label and insert it after the rect
51944
51945 var label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle);
51946 var text = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_0__["default"])(node.labelText, node.labelStyle, false, isNode)); // Get the size of the label
51947
51948 var bbox = text.getBBox();
51949
51950 if (Object(_config__WEBPACK_IMPORTED_MODULE_1__["getConfig"])().flowchart.htmlLabels) {
51951 var div = text.children[0];
51952 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_2__["select"])(text);
51953 bbox = div.getBoundingClientRect();
51954 dv.attr('width', bbox.width);
51955 dv.attr('height', bbox.height);
51956 }
51957
51958 var halfPadding = node.padding / 2; // Center the label
51959
51960 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');
51961 return {
51962 shapeSvg: shapeSvg,
51963 bbox: bbox,
51964 halfPadding: halfPadding,
51965 label: label
51966 };
51967};
51968var updateNodeBounds = function updateNodeBounds(node, element) {
51969 var bbox = element.node().getBBox();
51970 node.width = bbox.width;
51971 node.height = bbox.height;
51972};
51973function insertPolygonShape(parent, w, h, points) {
51974 return parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51975 return d.x + ',' + d.y;
51976 }).join(' ')).attr('class', 'label-container').attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');
51977}
51978
51979/***/ }),
51980
51981/***/ "./src/defaultConfig.js":
51982/*!******************************!*\
51983 !*** ./src/defaultConfig.js ***!
51984 \******************************/
51985/*! exports provided: default */
51986/***/ (function(module, __webpack_exports__, __webpack_require__) {
51987
51988"use strict";
51989__webpack_require__.r(__webpack_exports__);
51990/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
51991
51992/**
51993 * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click here](8.6.0_docs.md)].**
51994 *
51995 * ## **What follows are config instructions for older versions**
51996 * These are the default options which can be overridden with the initialization call like so:
51997 * **Example 1:**
51998 * <pre>
51999 * mermaid.initialize({
52000 * flowchart:{
52001 * htmlLabels: false
52002 * }
52003 * });
52004 * </pre>
52005 *
52006 * **Example 2:**
52007 * <pre>
52008 * &lt;script>
52009 * var config = {
52010 * startOnLoad:true,
52011 * flowchart:{
52012 * useMaxWidth:true,
52013 * htmlLabels:true,
52014 * curve:'cardinal',
52015 * },
52016 *
52017 * securityLevel:'loose',
52018 * };
52019 * mermaid.initialize(config);
52020 * &lt;/script>
52021 * </pre>
52022 * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). A description of each option follows below.
52023 *
52024 * @name Configuration
52025 */
52026
52027var config = {
52028 /** theme , the CSS style sheet
52029 *
52030 * theme , the CSS style sheet
52031 *
52032 *| Parameter | Description |Type | Required | Values|
52033 *| --- | --- | --- | --- | --- |
52034 *| Theme |Built in Themes| String | Optional | Values include, default, forest, dark, neutral, null|
52035 *
52036 ***Notes:**To disable any pre-defined mermaid theme, use "null".
52037 * <pre>
52038 * "theme": "forest",
52039 * "themeCSS": ".node rect { fill: red; }"
52040 * </pre>
52041 */
52042 theme: 'default',
52043 themeVariables: _themes__WEBPACK_IMPORTED_MODULE_0__["default"]['default'].getThemeVariables(),
52044 themeCSS: undefined,
52045
52046 /* **maxTextSize** - The maximum allowed size of the users text diamgram */
52047 maxTextSize: 50000,
52048
52049 /**
52050 *| Parameter | Description |Type | Required | Values|
52051 *| --- | --- | --- | --- | --- |
52052 *|fontFamily | specifies the font to be used in the rendered diagrams| String | Required | Verdana, Arial, Trebuchet MS,|
52053 *
52054 ***notes: Default value is \\"trebuchet ms\\".
52055 */
52056 fontFamily: '"trebuchet ms", verdana, arial;',
52057
52058 /**
52059 *| Parameter | Description |Type | Required | Values|
52060 *| --- | --- | --- | --- | --- |
52061 *| logLevel |This option decides the amount of logging to be used.| String | Required | 1, 2, 3, 4, 5 |
52062 *
52063 *
52064 ***Notes:**
52065 *- debug: 1.
52066 *- info: 2.
52067 *- warn: 3.
52068 *- error: 4.
52069 *- fatal: 5(default).
52070 */
52071 logLevel: 5,
52072
52073 /**
52074 *| Parameter | Description |Type | Required | Values|
52075 *| --- | --- | --- | --- | --- |
52076 *| securitylevel | Level of trust for parsed diagram|String | Required | Strict, Loose, antiscript |
52077 *
52078 ***Notes:
52079 *- **strict**: (**default**) tags in text are encoded, click functionality is disabeled
52080 *- **loose**: tags in text are allowed, click functionality is enabled
52081 *- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled
52082 */
52083 securityLevel: 'strict',
52084
52085 /**
52086 *| Parameter | Description |Type | Required | Values|
52087 *| --- | --- | --- | --- | --- |
52088 *| startOnLoad| Dictates whether mermaind starts on Page load | Boolean | Required | True, False |
52089 *
52090 ***Notes:**
52091 ***Default value: true**
52092 */
52093 startOnLoad: true,
52094
52095 /**
52096 *| Parameter | Description |Type | Required |Values|
52097 *| --- | --- | --- | --- | --- |
52098 *| arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | Boolean | Required | True, False |
52099 *
52100 *
52101 *## Notes**: This matters if you are using base tag settings.
52102 ***Default value: false**.
52103 */
52104 arrowMarkerAbsolute: false,
52105
52106 /**
52107 * This option controls which currentConfig keys are considered _secure_ and can only be changed via
52108 * call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to
52109 * the `secure` keys in the current currentConfig. This prevents malicious graph directives from
52110 * overriding a site's default security.
52111 */
52112 secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],
52113
52114 /**
52115 * The object containing configurations specific for flowcharts
52116 */
52117 flowchart: {
52118 /**
52119 *| Parameter | Description |Type | Required | Values|
52120 *| --- | --- | --- | --- | --- |
52121 *| diagramPadding | amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
52122 *
52123 ***Notes:**The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels
52124 ***Default value: 8**.
52125 */
52126 diagramPadding: 8,
52127
52128 /**
52129 *| Parameter | Description |Type | Required | Values|
52130 *| --- | --- | --- | --- | --- |
52131 *| htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | Boolean| Required | True, False|
52132 *
52133 ***Notes: Default value: true**.
52134 */
52135 htmlLabels: true,
52136
52137 /**
52138 *| Parameter | Description |Type | Required | Values|
52139 *| --- | --- | --- | --- | --- |
52140 *| nodeSpacing | Defines the spacing between nodes on the same level | Integer| Required | Any positive Numbers |
52141 *
52142 ***Notes:
52143 *Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the vertical spacing for LR as well as RL graphs.**
52144 ***Default value 50**.
52145 */
52146 nodeSpacing: 50,
52147
52148 /**
52149 *| Parameter | Description |Type | Required | Values|
52150 *| --- | --- | --- | --- | --- |
52151 *| rankSpacing | Defines the spacing between nodes on different levels | Integer | Required| Any Positive Numbers |
52152 *
52153 ***Notes: pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal spacing for LR as well as RL graphs.
52154 ***Default value 50**.
52155 */
52156 rankSpacing: 50,
52157
52158 /**
52159 *| Parameter | Description |Type | Required | Values|
52160 *| --- | --- | --- | --- | --- |
52161 *| curve | Defines how mermaid renders curves for flowcharts. | String | Required | Basis, Linear, Cardinal|
52162 *
52163 ***Notes:
52164 *Default Vaue: Linear**
52165 */
52166 curve: 'linear',
52167 // Only used in new experimental rendering
52168 // represents the padding between the labels and the shape
52169 padding: 15,
52170
52171 /**
52172 *| Parameter | Description |Type | Required | Values|
52173 *| --- | --- | --- | --- | --- |
52174 *| useMaxWidth | See notes | Boolean | 4 | True, False |
52175 *
52176 ***Notes:**when this flag is set the height and width is set to 100% and is then scaling with the
52177 *available space if not the absolute space required is used.
52178 *
52179 ***Default value true**.
52180 */
52181 useMaxWidth: true
52182 },
52183
52184 /**
52185 * The object containing configurations specific for sequence diagrams
52186 */
52187 sequence: {
52188 /**
52189 * widt of the activation rect
52190 * **Default value 10**.
52191 */
52192 activationWidth: 10,
52193
52194 /**
52195 *| Parameter | Description |Type | Required | Values|
52196 *| --- | --- | --- | --- | --- |
52197 *| diagramMarginX | margin to the right and left of the sequence diagram | Integer | Required | Any Positive Values |
52198 *
52199 ***Notes:**
52200 ***Default value 50**.
52201 */
52202 diagramMarginX: 50,
52203
52204 /**
52205 *| Parameter | Description |Type | Required | Values|
52206 *| --- | --- | --- | --- | --- |
52207 *| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Values|
52208 *
52209 ***Notes:**
52210 ***Default value 10**.
52211 */
52212 diagramMarginY: 10,
52213
52214 /**
52215 *| Parameter | Description |Type | Required | Values|
52216 *| --- | --- | --- | --- | --- |
52217 *| actorMargin | Margin between actors. | Integer | Required | Any Positive Value |
52218 *
52219 ***Notes:**
52220 ***Default value 50**.
52221 */
52222 actorMargin: 50,
52223
52224 /**
52225 *| Parameter | Description |Type | Required | Values|
52226 *| --- | --- | --- | --- | --- |
52227 *| width | Width of actor boxes | Integer | Required | Any Positive Value |
52228 *
52229 ***Notes:**
52230 ***Default value 150**.
52231 */
52232 width: 150,
52233
52234 /**
52235 *| Parameter | Description |Type | Required | Values|
52236 *| --- | --- | --- | --- | --- |
52237 *| height | Height of actor boxes | Integer | Required | Any Positive Value|
52238 *
52239 ***Notes:**
52240 ***Default value 65**..
52241 */
52242 height: 65,
52243
52244 /**
52245 *| Parameter | Description |Type | Required | Values|
52246 *| --- | --- | --- | --- | --- |
52247 *| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
52248 *
52249 ***Notes:**
52250 *
52251 ***Default value 10**.
52252 */
52253 boxMargin: 10,
52254
52255 /**
52256 *| Parameter | Description |Type | Required | Values|
52257 *| --- | --- | --- | --- | --- |
52258 *| boxTextMargin| margin around the text in loop/alt/opt boxes | Integer | Required| Any Positive Value|
52259 *
52260 ***Notes:**
52261 *
52262 ***Default value 5**.
52263 */
52264 boxTextMargin: 5,
52265
52266 /**
52267 *| Parameter | Description |Type | Required | Values|
52268 *| --- | --- | --- | --- | --- |
52269 *| noteMargin | margin around notes. | Integer | Required | Any Positive Value |
52270 *
52271 ***Notes:**
52272 *
52273 ***Default value 10**.
52274 */
52275 noteMargin: 10,
52276
52277 /**
52278 *| Parameter | Description |Type | Required | Values|
52279 *| --- | --- | --- | --- | --- |
52280 *| messageMargin | Space between messages. | Integer | Required | Any Positive Value |
52281 *
52282 ***Notes:**
52283 *
52284 *Space between messages.
52285 ***Default value 35**.
52286 */
52287 messageMargin: 35,
52288
52289 /**
52290 *| Parameter | Description |Type | Required | Values|
52291 *| --- | --- | --- | --- | --- |
52292 *| messageAlign | Multiline message alignment | Integer | Required | left, center, right |
52293 *
52294 ***Notes:**center **default**
52295 */
52296 messageAlign: 'center',
52297
52298 /**
52299 *| Parameter | Description |Type | Required | Values|
52300 *| --- | --- | --- | --- | --- |
52301 *| mirrorActors | mirror actors under diagram. | Boolean| Required | True, False |
52302 *
52303 ***Notes:**
52304 *
52305 ***Default value true**.
52306 */
52307 mirrorActors: true,
52308
52309 /**
52310 *| Parameter | Description |Type | Required | Values|
52311 *| --- | --- | --- | --- | --- |
52312 *| bottomMarginAdj | Prolongs the edge of the diagram downwards. | Integer | Required | Any Positive Value |
52313 *
52314 ***Notes:**Depending on css styling this might need adjustment.
52315 ***Default value 1**.
52316 */
52317 bottomMarginAdj: 1,
52318
52319 /**
52320 *| Parameter | Description |Type | Required | Values|
52321 *| --- | --- | --- | --- | --- |
52322 *| useMaxWidth | See Notes | Boolean | Required | True, False |
52323 *
52324 ***Notes:**
52325 *when this flag is set to true, the height and width is set to 100% and is then scaling with the
52326 *available space. If set to false, the absolute space required is used.
52327 ***Default value: True**.
52328 */
52329 useMaxWidth: true,
52330
52331 /**
52332 *| Parameter | Description |Type | Required | Values|
52333 *| --- | --- | --- | --- | --- |
52334 *| rightAngles | display curve arrows as right angles| Boolean | Required | True, False |
52335 *
52336 ***Notes:**
52337 *
52338 *This will display arrows that start and begin at the same node as right angles, rather than a curve
52339 ***Default value false**.
52340 */
52341 rightAngles: false,
52342
52343 /**
52344 *| Parameter | Description |Type | Required | Values|
52345 *| --- | --- | --- | --- | --- |
52346 *| showSequenceNumbers | This will show the node numbers | Boolean | Required | True, False |
52347 *
52348 ***Notes:**
52349 ***Default value false**.
52350 */
52351 showSequenceNumbers: false,
52352
52353 /**
52354 *| Parameter | Description |Type | Required | Values|
52355 *| --- | --- | --- | --- | --- |
52356 *| actorFontSize| This sets the font size of the actor's description | Integer | Require | Any Positive Value |
52357 *
52358 ***Notes:**
52359 ***Default value 14**..
52360 */
52361 actorFontSize: 14,
52362
52363 /**
52364 *| Parameter | Description |Type | Required | Values|
52365 *| --- | --- | --- | --- | --- |
52366 *| actorFontFamily |This sets the font family of the actor's description | 3 | 4 | Open-Sans, Sans-Serif |
52367 *
52368 ***Notes:**
52369 ***Default value "Open-Sans", "sans-serif"**.
52370 */
52371 actorFontFamily: '"Open-Sans", "sans-serif"',
52372
52373 /**
52374 * This sets the font weight of the actor's description
52375 * **Default value 400.
52376 */
52377 actorFontWeight: 400,
52378
52379 /**
52380 *| Parameter | Description |Type | Required | Values|
52381 *| --- | --- | --- | --- | --- |
52382 *| noteFontSize |This sets the font size of actor-attached notes. | Integer | Required | Any Positive Value |
52383 *
52384 ***Notes:**
52385 ***Default value 14**..
52386 */
52387 noteFontSize: 14,
52388
52389 /**
52390 *| Parameter | Description |Type | Required | Values|
52391 *| --- | --- | --- | --- | --- |
52392 *| noteFontFamily| This sets the font family of actor-attached notes. | String | Required | trebuchet ms, verdana, arial |
52393 *
52394 ***Notes:**
52395 ***Default value: trebuchet ms **.
52396 */
52397 noteFontFamily: '"trebuchet ms", verdana, arial',
52398
52399 /**
52400 * This sets the font weight of the note's description
52401 * **Default value 400.
52402 */
52403 noteFontWeight: 400,
52404
52405 /**
52406 *| Parameter | Description |Type | Required | Values|
52407 *| --- | --- | --- | --- | --- |
52408 *| noteAlign | This sets the text alignment of actor-attached notes. | string | required | left, center, right|
52409 *
52410 ***Notes:**
52411 ***Default value center**.
52412 */
52413 noteAlign: 'center',
52414
52415 /**
52416 *| Parameter | Description |Type | Required | Values|
52417 *| --- | --- | --- | --- | --- |
52418 *| messageFontSize | This sets the font size of actor messages. | Integer | Required | Any Positive Number |
52419 *
52420 ***Notes:**
52421 ***Default value 16**.
52422 */
52423 messageFontSize: 16,
52424
52425 /**
52426 *| Parameter | Description |Type | Required | Values|
52427 *| --- | --- | --- | --- | --- |
52428 *| messageFontFamily | This sets the font family of actor messages. | String| Required | trebuchet ms", verdana, aria |
52429 *
52430 ***Notes:**
52431 ***Default value:"trebuchet ms**.
52432 */
52433 messageFontFamily: '"trebuchet ms", verdana, arial',
52434
52435 /**
52436 * This sets the font weight of the message's description
52437 * **Default value 400.
52438 */
52439 messageFontWeight: 400,
52440
52441 /**
52442 * This sets the auto-wrap state for the diagram
52443 * **Default value false.
52444 */
52445 wrap: false,
52446
52447 /**
52448 * This sets the auto-wrap padding for the diagram (sides only)
52449 * **Default value 10.
52450 */
52451 wrapPadding: 10,
52452
52453 /**
52454 * This sets the width of the loop-box (loop, alt, opt, par)
52455 * **Default value 50.
52456 */
52457 labelBoxWidth: 50,
52458
52459 /**
52460 * This sets the height of the loop-box (loop, alt, opt, par)
52461 * **Default value 20.
52462 */
52463 labelBoxHeight: 20,
52464 messageFont: function messageFont() {
52465 return {
52466 fontFamily: this.messageFontFamily,
52467 fontSize: this.messageFontSize,
52468 fontWeight: this.messageFontWeight
52469 };
52470 },
52471 noteFont: function noteFont() {
52472 return {
52473 fontFamily: this.noteFontFamily,
52474 fontSize: this.noteFontSize,
52475 fontWeight: this.noteFontWeight
52476 };
52477 },
52478 actorFont: function actorFont() {
52479 return {
52480 fontFamily: this.actorFontFamily,
52481 fontSize: this.actorFontSize,
52482 fontWeight: this.actorFontWeight
52483 };
52484 }
52485 },
52486
52487 /**
52488 * The object containing configurations specific for gantt diagrams*
52489 */
52490 gantt: {
52491 /**
52492 *### titleTopMargin
52493 *
52494 *| Parameter | Description |Type | Required | Values|
52495 *| --- | --- | --- | --- | --- |
52496 *| titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
52497 *
52498 ***Notes:**
52499 ***Default value 25**.
52500 */
52501 titleTopMargin: 25,
52502
52503 /**
52504 *| Parameter | Description |Type | Required | Values|
52505 *| --- | --- | --- | --- | --- |
52506 *| barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
52507 *
52508 ***Notes:**
52509 ***Default value 20**.
52510 */
52511 barHeight: 20,
52512
52513 /**
52514 *| Parameter | Description |Type | Required | Values|
52515 *| --- | --- | --- | --- | --- |
52516 *| barGap | The margin between the different activities in the gantt diagram. | Integer | Optional |Any Positive Value |
52517 *
52518 ***Notes:**
52519 ***Default value 4**.
52520 */
52521 barGap: 4,
52522
52523 /**
52524 *| Parameter | Description |Type | Required | Values|
52525 *| --- | --- | --- | --- | --- |
52526 *| topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
52527 *
52528 ***Notes:**
52529 ***Default value 50**.
52530 */
52531 topPadding: 50,
52532
52533 /**
52534 *| Parameter | Description |Type | Required | Values|
52535 *| --- | --- | --- | --- | --- |
52536 *| leftPadding | The space allocated for the section name to the left of the activities. | Integer| Required | Any Positive Value |
52537 *
52538 ***Notes:**
52539 ***Default value 75**.
52540 */
52541 leftPadding: 75,
52542
52543 /**
52544 *| Parameter | Description |Type | Required | Values|
52545 *| --- | --- | --- | --- | --- |
52546 *| gridLineStartPadding | Vertical starting position of the grid lines. | Integer | Required | Any Positive Value |
52547 *
52548 ***Notes:**
52549 ***Default value 35**.
52550 */
52551 gridLineStartPadding: 35,
52552
52553 /**
52554 *| Parameter | Description |Type | Required | Values|
52555 *| --- | --- | --- | --- | --- |
52556 *| fontSize | Font size| Integer | Required | Any Positive Value |
52557 *
52558 ***Notes:**
52559 ***Default value 11**.
52560 */
52561 fontSize: 11,
52562
52563 /**
52564 *| Parameter | Description |Type | Required | Values|
52565 *| --- | --- | --- | --- | --- |
52566 *| fontFamily | font Family | string | required |"Open-Sans", "sans-serif" |
52567 *
52568 ***Notes:**
52569 *
52570 ***Default value '"Open-Sans", "sans-serif"'**.
52571 */
52572 fontFamily: '"Open-Sans", "sans-serif"',
52573
52574 /**
52575 *| Parameter | Description |Type | Required | Values|
52576 *| --- | --- | --- | --- | --- |
52577 *| numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
52578 *
52579 ***Notes:**
52580 ***Default value 4**.
52581 */
52582 numberSectionStyles: 4,
52583
52584 /**
52585 *| Parameter | Description |Type | Required | Values|
52586 *| --- | --- | --- | --- | --- |
52587 *| axisFormat | Datetime format of the axis. | 3 | Required | Date in yy-mm-dd |
52588 *
52589 ***Notes:**
52590 *
52591 * This might need adjustment to match your locale and preferences
52592 ***Default value '%Y-%m-%d'**.
52593 */
52594 axisFormat: '%Y-%m-%d',
52595
52596 /**
52597 *| Parameter | Description |Type | Required | Values|
52598 *| --- | --- | --- | --- | --- |
52599 *| useMaxWidth | See notes | Boolean | 4 | True, False |
52600 *
52601 ***Notes:**when this flag is set the height and width is set to 100% and is then scaling with the
52602 *available space if not the absolute space required is used.
52603 *
52604 ***Default value true**.
52605 */
52606 useMaxWidth: true,
52607 useWidth: undefined
52608 },
52609
52610 /**
52611 * The object containing configurations specific for journey diagrams
52612 */
52613 journey: {
52614 /**
52615 *| Parameter | Description |Type | Required | Values|
52616 *| --- | --- | --- | --- | --- |
52617 *| diagramMarginX | margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
52618 *
52619 ***Notes:**
52620 ***Default value 50**.
52621 */
52622 diagramMarginX: 50,
52623
52624 /**
52625 *| Parameter | Description |Type | Required | Values|
52626 *| --- | --- | --- | --- | --- |
52627 *| diagramMarginY | margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value|
52628 *
52629 ***Notes:**
52630 ***Default value 10**..
52631 */
52632 diagramMarginY: 10,
52633
52634 /**
52635 *| Parameter | Description |Type | Required | Values|
52636 *| --- | --- | --- | --- | --- |
52637 *| actorMargin | Margin between actors. | Integer | Required | Any Positive Value|
52638 *
52639 ***Notes:**
52640 ***Default value 50**.
52641 */
52642 actorMargin: 50,
52643
52644 /**
52645 *| Parameter | Description |Type | Required | Values|
52646 *| --- | --- | --- | --- | --- |
52647 *| width | Width of actor boxes | Integer | Required | Any Positive Value |
52648 *
52649 ***Notes:**
52650 ***Default value 150**.
52651 */
52652 width: 150,
52653
52654 /**
52655 *| Parameter | Description |Type | Required | Values|
52656 *| --- | --- | --- | --- | --- |
52657 *| height | Height of actor boxes | Integer | Required | Any Positive Value |
52658 *
52659 ***Notes:**
52660 ***Default value 65**.
52661 */
52662 height: 65,
52663
52664 /**
52665 *| Parameter | Description |Type | Required | Values|
52666 *| --- | --- | --- | --- | --- |
52667 *| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
52668 *
52669 ***Notes:**
52670 ***Default value 10**.
52671 */
52672 boxMargin: 10,
52673
52674 /**
52675 *| Parameter | Description |Type | Required | Values|
52676 *| --- | --- | --- | --- | --- |
52677 *| boxTextMargin | margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
52678 *
52679 ***Notes:**
52680 */
52681 boxTextMargin: 5,
52682
52683 /**
52684 *| Parameter | Description |Type | Required | Values|
52685 *| --- | --- | --- | --- | --- |
52686 *| noteMargin | margin around notes. | Integer | Required | Any Positive Value |
52687 *
52688 ***Notes:**
52689 ***Default value 10**.
52690 */
52691 noteMargin: 10,
52692
52693 /**
52694 *| Parameter | Description |Type | Required | Values|
52695 *| --- | --- | --- | --- | --- |
52696 *| messageMargin |Space between messages. | Integer | Required | Any Positive Value |
52697 *
52698 ***Notes:**
52699 *
52700 *Space between messages.
52701 ***Default value 35**.
52702 */
52703 messageMargin: 35,
52704
52705 /**
52706 *| Parameter | Description |Type | Required | Values|
52707 *| --- | --- | --- | --- | --- |
52708 *| messageAlign |Multiline message alignment | 3 | 4 | left, center, right |
52709 *
52710 ***Notes:**default:center**
52711 */
52712 messageAlign: 'center',
52713
52714 /**
52715 *| Parameter | Description |Type | Required | Values|
52716 *| --- | --- | --- | --- | --- |
52717 *| bottomMarginAdj | Prolongs the edge of the diagram downwards. | Integer | 4 | Any Positive Value |
52718 *
52719 ***Notes:**Depending on css styling this might need adjustment.
52720 ***Default value 1**.
52721 */
52722 bottomMarginAdj: 1,
52723
52724 /**
52725 *| Parameter | Description |Type | Required | Values|
52726 *| --- | --- | --- | --- | --- |
52727 *| useMaxWidth | See notes | Boolean | 4 | True, False |
52728 *
52729 ***Notes:**when this flag is set the height and width is set to 100% and is then scaling with the
52730 *available space if not the absolute space required is used.
52731 *
52732 ***Default value true**.
52733 */
52734 useMaxWidth: true,
52735
52736 /**
52737 *| Parameter | Description |Type | Required | Values|
52738 *| --- | --- | --- | --- | --- |
52739 *| rightAngles | Curved Arrows become Right Angles, | 3 | 4 | True, False |
52740 *
52741 ***Notes:**This will display arrows that start and begin at the same node as right angles, rather than a curves
52742 ***Default value false**.
52743 */
52744 rightAngles: false
52745 },
52746 class: {
52747 arrowMarkerAbsolute: false,
52748
52749 /**
52750 *| Parameter | Description |Type | Required | Values|
52751 *| --- | --- | --- | --- | --- |
52752 *| useMaxWidth | See notes | Boolean | 4 | True, False |
52753 *
52754 ***Notes:**when this flag is set the height and width is set to 100% and is then scaling with the
52755 *available space if not the absolute space required is used.
52756 *
52757 ***Default value true**.
52758 */
52759 useMaxWidth: true
52760 },
52761 git: {
52762 arrowMarkerAbsolute: false,
52763 useWidth: undefined,
52764
52765 /**
52766 *| Parameter | Description |Type | Required | Values|
52767 *| --- | --- | --- | --- | --- |
52768 *| useMaxWidth | See notes | Boolean | 4 | True, False |
52769 *
52770 ***Notes:**when this flag is set the height and width is set to 100% and is then scaling with the
52771 *available space if not the absolute space required is used.
52772 *
52773 ***Default value true**.
52774 */
52775 useMaxWidth: true
52776 },
52777 state: {
52778 dividerMargin: 10,
52779 sizeUnit: 5,
52780 padding: 8,
52781 textHeight: 10,
52782 titleShift: -15,
52783 noteMargin: 10,
52784 forkWidth: 70,
52785 forkHeight: 7,
52786 // Used
52787 miniPadding: 2,
52788 // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
52789 // layout. This might need updating if/when switching font
52790 fontSizeFactor: 5.02,
52791 fontSize: 24,
52792 labelHeight: 16,
52793 edgeLengthFactor: '20',
52794 compositTitleSize: 35,
52795 radius: 5,
52796
52797 /**
52798 *| Parameter | Description |Type | Required | Values|
52799 *| --- | --- | --- | --- | --- |
52800 *| useMaxWidth | See notes | Boolean | 4 | True, False |
52801 *
52802 ***Notes:**when this flag is set the height and width is set to 100% and is then scaling with the
52803 *available space if not the absolute space required is used.
52804 *
52805 ***Default value true**.
52806 */
52807 useMaxWidth: true
52808 },
52809
52810 /**
52811 * The object containing configurations specific for entity relationship diagrams
52812 */
52813 er: {
52814 /**
52815 *| Parameter | Description |Type | Required | Values|
52816 *| --- | --- | --- | --- | --- |
52817 *| diagramPadding | amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
52818 *
52819 ***Notes:**The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels
52820 ***Default value: 20**.
52821 */
52822 diagramPadding: 20,
52823
52824 /**
52825 *| Parameter | Description |Type | Required | Values|
52826 *| --- | --- | --- | --- | --- |
52827 *| layoutDirection | Directional bias for layout of entities. | String | Required | "TB", "BT","LR","RL" |
52828 *
52829 ***Notes:**
52830 *'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
52831 * T = top, B = bottom, L = left, and R = right.
52832 ***Default value: TB **.
52833 */
52834 layoutDirection: 'TB',
52835
52836 /**
52837 *| Parameter | Description |Type | Required | Values|
52838 *| --- | --- | --- | --- | --- |
52839 *| minEntityWidth | The mimimum width of an entity box, | Integer | Required| Any Positive Value |
52840 *
52841 ***Notes:**expressed in pixels
52842 ***Default value: 100**.
52843 */
52844 minEntityWidth: 100,
52845
52846 /**
52847 *| Parameter | Description |Type | Required | Values|
52848 *| --- | --- | --- | --- | --- |
52849 *| minEntityHeight| The minimum height of an entity box, | Integer | 4 | Any Positive Value |
52850 *
52851 ***Notes:**expressed in pixels
52852 ***Default value: 75 **
52853 */
52854 minEntityHeight: 75,
52855
52856 /**
52857 *| Parameter | Description |Type | Required | Values|
52858 *| --- | --- | --- | --- | --- |
52859 *| entityPadding|minimum internal padding betweentext in box and box borders| Integer | 4 | Any Positive Value |
52860 *
52861 ***Notes:**The minimum internal padding betweentext in an entity box and the enclosing box borders, expressed in pixels.
52862 ***Default value: 15 **
52863 */
52864 entityPadding: 15,
52865
52866 /**
52867 *| Parameter | Description |Type | Required | Values|
52868 *| --- | --- | --- | --- | --- |
52869 *| stroke | Stroke color of box edges and lines | String | 4 | Any recognized color |
52870 ***Default value: gray **
52871 */
52872 stroke: 'gray',
52873
52874 /**
52875 *| Parameter | Description |Type | Required | Values|
52876 *| --- | --- | --- | --- | --- |
52877 *| fill | Fill color of entity boxes | String | 4 | Any recognized color |
52878 *
52879 ***Notes:**
52880 ***Default value:'honeydew'**
52881 */
52882 fill: 'honeydew',
52883
52884 /**
52885 *| Parameter | Description |Type | Required | Values|
52886 *| --- | --- | --- | --- | --- |
52887 *| fontSize| Font Size in pixels| Integer | | Any Positive Value |
52888 *
52889 ***Notes:**Font size (expressed as an integer representing a number of pixels)
52890 ***Default value: 12 **
52891 */
52892 fontSize: 12,
52893
52894 /**
52895 *| Parameter | Description |Type | Required | Values|
52896 *| --- | --- | --- | --- | --- |
52897 *| useMaxWidth | See Notes | Boolean | Required | true, false |
52898 *
52899 ***Notes:**
52900 *When this flag is set to true, the diagram width is locked to 100% and
52901 *scaled based on available space. If set to false, the diagram reserves its
52902 *absolute width.
52903 ***Default value: true**.
52904 */
52905 useMaxWidth: true
52906 },
52907
52908 /**
52909 * The object containing configurations specific for pie diagrams
52910 */
52911 pie: {
52912 useWidth: undefined,
52913
52914 /**
52915 *| Parameter | Description |Type | Required | Values|
52916 *| --- | --- | --- | --- | --- |
52917 *| useMaxWidth | See Notes | Boolean | Required | true, false |
52918 *
52919 ***Notes:**
52920 *When this flag is set to true, the diagram width is locked to 100% and
52921 *scaled based on available space. If set to false, the diagram reserves its
52922 *absolute width.
52923 ***Default value: true**.
52924 */
52925 useMaxWidth: true
52926 }
52927};
52928config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
52929config.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
52930/* harmony default export */ __webpack_exports__["default"] = (config);
52931
52932/***/ }),
52933
52934/***/ "./src/diagrams/class/classDb.js":
52935/*!***************************************!*\
52936 !*** ./src/diagrams/class/classDb.js ***!
52937 \***************************************/
52938/*! exports provided: parseDirective, addClass, lookUpDomId, clear, getClass, getClasses, getRelations, addRelation, addAnnotation, addMember, addMembers, cleanupLabel, setCssClass, setLink, setClickEvent, bindFunctions, lineType, relationType, default */
52939/***/ (function(module, __webpack_exports__, __webpack_require__) {
52940
52941"use strict";
52942__webpack_require__.r(__webpack_exports__);
52943/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
52944/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; });
52945/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lookUpDomId", function() { return lookUpDomId; });
52946/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
52947/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClass", function() { return getClass; });
52948/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
52949/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRelations", function() { return getRelations; });
52950/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addRelation", function() { return addRelation; });
52951/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addAnnotation", function() { return addAnnotation; });
52952/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMember", function() { return addMember; });
52953/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMembers", function() { return addMembers; });
52954/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanupLabel", function() { return cleanupLabel; });
52955/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setCssClass", function() { return setCssClass; });
52956/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
52957/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
52958/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
52959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineType", function() { return lineType; });
52960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "relationType", function() { return relationType; });
52961/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
52962/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
52963/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
52964/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
52965/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
52966/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
52967
52968
52969
52970
52971
52972
52973var MERMAID_DOM_ID_PREFIX = 'classid-';
52974var relations = [];
52975var classes = {};
52976var classCounter = 0;
52977var funs = [];
52978var parseDirective = function parseDirective(statement, context, type) {
52979 _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__["default"].parseDirective(this, statement, context, type);
52980};
52981
52982var splitClassNameAndType = function splitClassNameAndType(id) {
52983 var genericType = '';
52984 var className = id;
52985
52986 if (id.indexOf('~') > 0) {
52987 var split = id.split('~');
52988 className = split[0];
52989 genericType = split[1];
52990 }
52991
52992 return {
52993 className: className,
52994 type: genericType
52995 };
52996};
52997/**
52998 * Function called by parser when a node definition has been found.
52999 * @param id
53000 * @public
53001 */
53002
53003
53004var addClass = function addClass(id) {
53005 var classId = splitClassNameAndType(id); // Only add class if not exists
53006
53007 if (typeof classes[classId.className] !== 'undefined') return;
53008 classes[classId.className] = {
53009 id: classId.className,
53010 type: classId.type,
53011 cssClasses: [],
53012 methods: [],
53013 members: [],
53014 annotations: [],
53015 domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter
53016 };
53017 classCounter++;
53018};
53019/**
53020 * Function to lookup domId from id in the graph definition.
53021 * @param id
53022 * @public
53023 */
53024
53025var lookUpDomId = function lookUpDomId(id) {
53026 var classKeys = Object.keys(classes);
53027
53028 for (var i = 0; i < classKeys.length; i++) {
53029 if (classes[classKeys[i]].id === id) {
53030 return classes[classKeys[i]].domId;
53031 }
53032 }
53033};
53034var clear = function clear() {
53035 relations = [];
53036 classes = {};
53037 funs = [];
53038 funs.push(setupToolTips);
53039};
53040var getClass = function getClass(id) {
53041 return classes[id];
53042};
53043var getClasses = function getClasses() {
53044 return classes;
53045};
53046var getRelations = function getRelations() {
53047 return relations;
53048};
53049var addRelation = function addRelation(relation) {
53050 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Adding relation: ' + JSON.stringify(relation));
53051 addClass(relation.id1);
53052 addClass(relation.id2);
53053 relation.id1 = splitClassNameAndType(relation.id1).className;
53054 relation.id2 = splitClassNameAndType(relation.id2).className;
53055 relations.push(relation);
53056};
53057/**
53058 * Adds an annotation to the specified class
53059 * Annotations mark special properties of the given type (like 'interface' or 'service')
53060 * @param className The class name
53061 * @param annotation The name of the annotation without any brackets
53062 * @public
53063 */
53064
53065var addAnnotation = function addAnnotation(className, annotation) {
53066 var validatedClassName = splitClassNameAndType(className).className;
53067 classes[validatedClassName].annotations.push(annotation);
53068};
53069/**
53070 * Adds a member to the specified class
53071 * @param className The class name
53072 * @param member The full name of the member.
53073 * If the member is enclosed in <<brackets>> it is treated as an annotation
53074 * If the member is ending with a closing bracket ) it is treated as a method
53075 * Otherwise the member will be treated as a normal property
53076 * @public
53077 */
53078
53079var addMember = function addMember(className, member) {
53080 var validatedClassName = splitClassNameAndType(className).className;
53081 var theClass = classes[validatedClassName];
53082
53083 if (typeof member === 'string') {
53084 // Member can contain white spaces, we trim them out
53085 var memberString = member.trim();
53086
53087 if (memberString.startsWith('<<') && memberString.endsWith('>>')) {
53088 // Remove leading and trailing brackets
53089 theClass.annotations.push(memberString.substring(2, memberString.length - 2));
53090 } else if (memberString.indexOf(')') > 0) {
53091 theClass.methods.push(memberString);
53092 } else if (memberString) {
53093 theClass.members.push(memberString);
53094 }
53095 }
53096};
53097var addMembers = function addMembers(className, members) {
53098 if (Array.isArray(members)) {
53099 members.reverse();
53100 members.forEach(function (member) {
53101 return addMember(className, member);
53102 });
53103 }
53104};
53105var cleanupLabel = function cleanupLabel(label) {
53106 if (label.substring(0, 1) === ':') {
53107 return label.substr(1).trim();
53108 } else {
53109 return label.trim();
53110 }
53111};
53112/**
53113 * Called by parser when a special node is found, e.g. a clickable element.
53114 * @param ids Comma separated list of ids
53115 * @param className Class to add
53116 */
53117
53118var setCssClass = function setCssClass(ids, className) {
53119 ids.split(',').forEach(function (_id) {
53120 var id = _id;
53121 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
53122
53123 if (typeof classes[id] !== 'undefined') {
53124 classes[id].cssClasses.push(className);
53125 }
53126 });
53127};
53128/**
53129 * Called by parser when a link is found. Adds the URL to the vertex data.
53130 * @param ids Comma separated list of ids
53131 * @param linkStr URL to create a link for
53132 * @param tooltip Tooltip for the clickable element
53133 */
53134
53135var setLink = function setLink(ids, linkStr, tooltip) {
53136 var config = _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]();
53137 ids.split(',').forEach(function (_id) {
53138 var id = _id;
53139 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
53140
53141 if (typeof classes[id] !== 'undefined') {
53142 classes[id].link = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].formatUrl(linkStr, config);
53143
53144 if (tooltip) {
53145 classes[id].tooltip = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(tooltip, config);
53146 }
53147 }
53148 });
53149 setCssClass(ids, 'clickable');
53150};
53151/**
53152 * Called by parser when a click definition is found. Registers an event handler.
53153 * @param ids Comma separated list of ids
53154 * @param functionName Function to be called on click
53155 * @param tooltip Tooltip for the clickable element
53156 */
53157
53158var setClickEvent = function setClickEvent(ids, functionName, tooltip) {
53159 ids.split(',').forEach(function (id) {
53160 setClickFunc(id, functionName, tooltip);
53161 classes[id].haveCallback = true;
53162 });
53163 setCssClass(ids, 'clickable');
53164};
53165
53166var setClickFunc = function setClickFunc(domId, functionName, tooltip) {
53167 var config = _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]();
53168 var id = domId;
53169 var elemId = lookUpDomId(id);
53170
53171 if (config.securityLevel !== 'loose') {
53172 return;
53173 }
53174
53175 if (typeof functionName === 'undefined') {
53176 return;
53177 }
53178
53179 if (typeof classes[id] !== 'undefined') {
53180 if (tooltip) {
53181 classes[id].tooltip = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(tooltip, config);
53182 }
53183
53184 funs.push(function () {
53185 var elem = document.querySelector("[id=\"".concat(elemId, "\"]"));
53186
53187 if (elem !== null) {
53188 elem.addEventListener('click', function () {
53189 _utils__WEBPACK_IMPORTED_MODULE_4__["default"].runFunc(functionName, elemId);
53190 }, false);
53191 }
53192 });
53193 }
53194};
53195
53196var bindFunctions = function bindFunctions(element) {
53197 funs.forEach(function (fun) {
53198 fun(element);
53199 });
53200};
53201var lineType = {
53202 LINE: 0,
53203 DOTTED_LINE: 1
53204};
53205var relationType = {
53206 AGGREGATION: 0,
53207 EXTENSION: 1,
53208 COMPOSITION: 2,
53209 DEPENDENCY: 3
53210};
53211
53212var setupToolTips = function setupToolTips(element) {
53213 var tooltipElem = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('.mermaidTooltip');
53214
53215 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
53216 tooltipElem = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
53217 }
53218
53219 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(element).select('svg');
53220 var nodes = svg.selectAll('g.node');
53221 nodes.on('mouseover', function () {
53222 var el = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(this);
53223 var title = el.attr('title'); // Dont try to draw a tooltip if no data is provided
53224
53225 if (title === null) {
53226 return;
53227 }
53228
53229 var rect = this.getBoundingClientRect();
53230 tooltipElem.transition().duration(200).style('opacity', '.9');
53231 tooltipElem.html(el.attr('title')).style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px').style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px');
53232 el.classed('hover', true);
53233 }).on('mouseout', function () {
53234 tooltipElem.transition().duration(500).style('opacity', 0);
53235 var el = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(this);
53236 el.classed('hover', false);
53237 });
53238};
53239
53240funs.push(setupToolTips);
53241/* harmony default export */ __webpack_exports__["default"] = ({
53242 parseDirective: parseDirective,
53243 getConfig: function getConfig() {
53244 return _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]().class;
53245 },
53246 addClass: addClass,
53247 bindFunctions: bindFunctions,
53248 clear: clear,
53249 getClass: getClass,
53250 getClasses: getClasses,
53251 addAnnotation: addAnnotation,
53252 getRelations: getRelations,
53253 addRelation: addRelation,
53254 addMember: addMember,
53255 addMembers: addMembers,
53256 cleanupLabel: cleanupLabel,
53257 lineType: lineType,
53258 relationType: relationType,
53259 setClickEvent: setClickEvent,
53260 setCssClass: setCssClass,
53261 setLink: setLink,
53262 lookUpDomId: lookUpDomId
53263});
53264
53265/***/ }),
53266
53267/***/ "./src/diagrams/class/classRenderer-v2.js":
53268/*!************************************************!*\
53269 !*** ./src/diagrams/class/classRenderer-v2.js ***!
53270 \************************************************/
53271/*! exports provided: addClasses, addRelations, setConf, drawOld, draw, default */
53272/***/ (function(module, __webpack_exports__, __webpack_require__) {
53273
53274"use strict";
53275__webpack_require__.r(__webpack_exports__);
53276/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClasses", function() { return addClasses; });
53277/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addRelations", function() { return addRelations; });
53278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
53279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawOld", function() { return drawOld; });
53280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
53281/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
53282/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
53283/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
53284/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
53285/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
53286/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
53287/* harmony import */ var _classDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./classDb */ "./src/diagrams/class/classDb.js");
53288/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
53289/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__);
53290/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/class/svgDraw.js");
53291/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../config */ "./src/config.js");
53292/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
53293/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
53294/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
53295
53296
53297
53298
53299
53300
53301
53302
53303 // import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js';
53304
53305
53306
53307
53308_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"];
53309var idCache = {};
53310var padding = 20;
53311var conf = {
53312 dividerMargin: 10,
53313 padding: 5,
53314 textHeight: 10
53315};
53316/**
53317 * Function that adds the vertices found during parsing to the graph to be rendered.
53318 * @param vert Object containing the vertices.
53319 * @param g The graph that is to be drawn.
53320 */
53321
53322var addClasses = function addClasses(classes, g) {
53323 // const svg = select(`[id="${svgId}"]`);
53324 var keys = Object.keys(classes);
53325 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('keys:', keys);
53326 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(classes); // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
53327
53328 keys.forEach(function (id) {
53329 var vertex = classes[id];
53330 /**
53331 * Variable for storing the classes for the vertex
53332 * @type {string}
53333 */
53334
53335 var cssClassStr = '';
53336
53337 if (vertex.cssClasses.length > 0) {
53338 cssClassStr = cssClassStr + ' ' + vertex.cssClasses.join(' ');
53339 } // if (vertex.classes.length > 0) {
53340 // classStr = vertex.classes.join(' ');
53341 // }
53342
53343
53344 var styles = {
53345 labelStyle: ''
53346 }; //getStylesFromArray(vertex.styles);
53347 // Use vertex id as text in the box if no text is provided by the graph definition
53348
53349 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
53350 // let vertexNode;
53351 // if (getConfig().flowchart.htmlLabels) {
53352 // const node = {
53353 // label: vertexText.replace(
53354 // /fa[lrsb]?:fa-[\w-]+/g,
53355 // s => `<i class='${s.replace(':', ' ')}'></i>`
53356 // )
53357 // };
53358 // vertexNode = addHtmlLabel(svg, node).node();
53359 // vertexNode.parentNode.removeChild(vertexNode);
53360 // } else {
53361 // const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
53362 // svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
53363 // const rows = vertexText.split(common.lineBreakRegex);
53364 // for (let j = 0; j < rows.length; j++) {
53365 // const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
53366 // tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
53367 // tspan.setAttribute('dy', '1em');
53368 // tspan.setAttribute('x', '1');
53369 // tspan.textContent = rows[j];
53370 // svgLabel.appendChild(tspan);
53371 // }
53372 // vertexNode = svgLabel;
53373 // }
53374
53375 var radious = 0;
53376 var _shape = ''; // Set the shape based parameters
53377
53378 switch (vertex.type) {
53379 case 'class':
53380 _shape = 'class_box';
53381 break;
53382
53383 default:
53384 _shape = 'class_box';
53385 } // Add the node
53386
53387
53388 g.setNode(vertex.id, {
53389 labelStyle: styles.labelStyle,
53390 shape: _shape,
53391 labelText: vertexText,
53392 classData: vertex,
53393 rx: radious,
53394 ry: radious,
53395 class: cssClassStr,
53396 style: styles.style,
53397 id: vertex.id,
53398 domId: vertex.domId,
53399 haveCallback: vertex.haveCallback,
53400 link: vertex.link,
53401 width: vertex.type === 'group' ? 500 : undefined,
53402 type: vertex.type,
53403 padding: Object(_config__WEBPACK_IMPORTED_MODULE_7__["getConfig"])().flowchart.padding
53404 });
53405 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('setNode', {
53406 labelStyle: styles.labelStyle,
53407 shape: _shape,
53408 labelText: vertexText,
53409 rx: radious,
53410 ry: radious,
53411 class: cssClassStr,
53412 style: styles.style,
53413 id: vertex.id,
53414 width: vertex.type === 'group' ? 500 : undefined,
53415 type: vertex.type,
53416 padding: Object(_config__WEBPACK_IMPORTED_MODULE_7__["getConfig"])().flowchart.padding
53417 });
53418 });
53419};
53420/**
53421 * Add edges to graph based on parsed graph defninition
53422 * @param {Object} edges The edges to add to the graph
53423 * @param {Object} g The graph object
53424 */
53425
53426var addRelations = function addRelations(relations, g) {
53427 var cnt = 0;
53428 var defaultStyle;
53429 var defaultLabelStyle; // if (typeof relations.defaultStyle !== 'undefined') {
53430 // const defaultStyles = getStylesFromArray(relations.defaultStyle);
53431 // defaultStyle = defaultStyles.style;
53432 // defaultLabelStyle = defaultStyles.labelStyle;
53433 // }
53434
53435 relations.forEach(function (edge) {
53436 cnt++;
53437 var edgeData = {}; //Set relationship style and line type
53438
53439 edgeData.classes = 'relation';
53440 edgeData.pattern = edge.relation.lineType == 1 ? 'dashed' : 'solid';
53441 edgeData.id = 'id' + cnt; // Set link type for rendering
53442
53443 if (edge.type === 'arrow_open') {
53444 edgeData.arrowhead = 'none';
53445 } else {
53446 edgeData.arrowhead = 'normal';
53447 }
53448
53449 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(edgeData, edge); //Set edge extra labels
53450 //edgeData.startLabelLeft = edge.relationTitle1;
53451
53452 edgeData.startLabelRight = edge.relationTitle1 === 'none' ? '' : edge.relationTitle1;
53453 edgeData.endLabelLeft = edge.relationTitle2 === 'none' ? '' : edge.relationTitle2; //edgeData.endLabelRight = edge.relationTitle2;
53454 //Set relation arrow types
53455
53456 edgeData.arrowTypeStart = getArrowMarker(edge.relation.type1);
53457 edgeData.arrowTypeEnd = getArrowMarker(edge.relation.type2);
53458 var style = '';
53459 var labelStyle = '';
53460
53461 if (typeof edge.style !== 'undefined') {
53462 var styles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edge.style);
53463 style = styles.style;
53464 labelStyle = styles.labelStyle;
53465 } else {
53466 style = 'fill:none';
53467
53468 if (typeof defaultStyle !== 'undefined') {
53469 style = defaultStyle;
53470 }
53471
53472 if (typeof defaultLabelStyle !== 'undefined') {
53473 labelStyle = defaultLabelStyle;
53474 }
53475 }
53476
53477 edgeData.style = style;
53478 edgeData.labelStyle = labelStyle;
53479
53480 if (typeof edge.interpolate !== 'undefined') {
53481 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_0__["curveLinear"]);
53482 } else if (typeof relations.defaultInterpolate !== 'undefined') {
53483 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(relations.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_0__["curveLinear"]);
53484 } else {
53485 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(conf.curve, d3__WEBPACK_IMPORTED_MODULE_0__["curveLinear"]);
53486 }
53487
53488 edge.text = edge.title;
53489
53490 if (typeof edge.text === 'undefined') {
53491 if (typeof edge.style !== 'undefined') {
53492 edgeData.arrowheadStyle = 'fill: #333';
53493 }
53494 } else {
53495 edgeData.arrowheadStyle = 'fill: #333';
53496 edgeData.labelpos = 'c';
53497
53498 if (Object(_config__WEBPACK_IMPORTED_MODULE_7__["getConfig"])().flowchart.htmlLabels && false) {
53499 // eslint-disable-line
53500 edgeData.labelType = 'html';
53501 edgeData.label = '<span class="edgeLabel">' + edge.text + '</span>';
53502 } else {
53503 edgeData.labelType = 'text';
53504 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_10__["default"].lineBreakRegex, '\n');
53505
53506 if (typeof edge.style === 'undefined') {
53507 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
53508 }
53509
53510 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
53511 }
53512 } // Add the edge to the graph
53513
53514
53515 g.setEdge(edge.id1, edge.id2, edgeData, cnt);
53516 });
53517}; // Todo optimize
53518
53519var getGraphId = function getGraphId(label) {
53520 var keys = Object.keys(idCache);
53521
53522 for (var i = 0; i < keys.length; i++) {
53523 if (idCache[keys[i]].label === label) {
53524 return keys[i];
53525 }
53526 }
53527
53528 return undefined;
53529};
53530
53531var setConf = function setConf(cnf) {
53532 var keys = Object.keys(cnf);
53533 keys.forEach(function (key) {
53534 conf[key] = cnf[key];
53535 });
53536};
53537/**
53538 * Draws a flowchart in the tag with id: id based on the graph definition in text.
53539 * @param text
53540 * @param id
53541 */
53542
53543var drawOld = function drawOld(text, id) {
53544 idCache = {};
53545 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy.clear();
53546 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].parse(text);
53547 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering diagram ' + text); // Fetch the default direction, use TD if none was found
53548
53549 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id='".concat(id, "']")); // insertMarkers(diagram);
53550 // Layout graph, Create a new directed graph
53551
53552 var g = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
53553 multigraph: true
53554 }); // Set an object for the graph label
53555
53556 g.setGraph({
53557 isMultiGraph: true
53558 }); // Default to assigning a new object as a label for each new edge.
53559
53560 g.setDefaultEdgeLabel(function () {
53561 return {};
53562 });
53563 var classes = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getClasses();
53564 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('classes:');
53565 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(classes);
53566 var keys = Object.keys(classes);
53567
53568 for (var i = 0; i < keys.length; i++) {
53569 var classDef = classes[keys[i]];
53570 var node = _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawClass(diagram, classDef, conf);
53571 idCache[node.id] = node; // Add nodes to the graph. The first argument is the node id. The second is
53572 // metadata about the node. In this case we're going to add labels to each of
53573 // our nodes.
53574
53575 g.setNode(node.id, node);
53576 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Org height: ' + node.height);
53577 }
53578
53579 var relations = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
53580 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('relations:', relations);
53581 relations.forEach(function (relation) {
53582 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation));
53583 g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), {
53584 relation: relation
53585 }, relation.title || 'DEFAULT');
53586 });
53587 dagre__WEBPACK_IMPORTED_MODULE_1___default.a.layout(g);
53588 g.nodes().forEach(function (v) {
53589 if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {
53590 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));
53591 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + Object(_classDb__WEBPACK_IMPORTED_MODULE_4__["lookUpDomId"])(v)).attr('transform', 'translate(' + (g.node(v).x - g.node(v).width / 2) + ',' + (g.node(v).y - g.node(v).height / 2) + ' )');
53592 }
53593 });
53594 g.edges().forEach(function (e) {
53595 if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {
53596 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));
53597 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawEdge(diagram, g.edge(e), g.edge(e).relation, conf);
53598 }
53599 });
53600 var svgBounds = diagram.node().getBBox();
53601 var width = svgBounds.width + padding * 2;
53602 var height = svgBounds.height + padding * 2;
53603 Object(_utils__WEBPACK_IMPORTED_MODULE_9__["configureSvgSize"])(diagram, height, width, conf.useMaxWidth); // Ensure the viewBox includes the whole svgBounds area with extra space for padding
53604
53605 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
53606 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug("viewBox ".concat(vBox));
53607 diagram.attr('viewBox', vBox);
53608};
53609var draw = function draw(text, id) {
53610 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Drawing class');
53611 _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].clear(); // const parser = classDb.parser;
53612 // parser.yy = classDb;
53613 // Parse the graph definition
53614 // try {
53615
53616 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].parse(text); // } catch (err) {
53617 // logger.debug('Parsing failed');
53618 // }
53619 // Fetch the default direction, use TD if none was found
53620
53621 var dir = 'TD';
53622 var conf = Object(_config__WEBPACK_IMPORTED_MODULE_7__["getConfig"])().flowchart;
53623 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('config:', conf);
53624 var nodeSpacing = conf.nodeSpacing || 50;
53625 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
53626
53627 var g = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
53628 multigraph: true,
53629 compound: true
53630 }).setGraph({
53631 rankdir: dir,
53632 nodesep: nodeSpacing,
53633 ranksep: rankSpacing,
53634 marginx: 8,
53635 marginy: 8
53636 }).setDefaultEdgeLabel(function () {
53637 return {};
53638 }); // let subG;
53639 // const subGraphs = flowDb.getSubGraphs();
53640 // logger.info('Subgraphs - ', subGraphs);
53641 // for (let i = subGraphs.length - 1; i >= 0; i--) {
53642 // subG = subGraphs[i];
53643 // logger.info('Subgraph - ', subG);
53644 // flowDb.addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
53645 // }
53646 // Fetch the verices/nodes and edges/links from the parsed graph definition
53647
53648 var classes = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getClasses();
53649 var relations = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
53650 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(relations); // let i = 0;
53651 // for (i = subGraphs.length - 1; i >= 0; i--) {
53652 // subG = subGraphs[i];
53653 // selectAll('cluster').append('text');
53654 // for (let j = 0; j < subG.nodes.length; j++) {
53655 // g.setParent(subG.nodes[j], subG.id);
53656 // }
53657 // }
53658
53659 addClasses(classes, g, id);
53660 addRelations(relations, g); // Add custom shapes
53661 // flowChartShapes.addToRenderV2(addShape);
53662 // Set up an SVG group so that we can translate the final graph.
53663
53664 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id=\"".concat(id, "\"]"));
53665 svg.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink'); // Run the renderer. This is what draws the final graph.
53666
53667 var element = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id + ' g');
53668 Object(_dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_8__["render"])(element, g, ['aggregation', 'extension', 'composition', 'dependency'], 'classDiagram', id); // element.selectAll('g.node').attr('title', function() {
53669 // return flowDb.getTooltip(this.id);
53670 // });
53671
53672 var padding = 8;
53673 var svgBounds = svg.node().getBBox();
53674 var width = svgBounds.width + padding * 2;
53675 var height = svgBounds.height + padding * 2;
53676 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug("new ViewBox 0 0 ".concat(width, " ").concat(height), "translate(".concat(padding - g._label.marginx, ", ").concat(padding - g._label.marginy, ")"));
53677 Object(_utils__WEBPACK_IMPORTED_MODULE_9__["configureSvgSize"])(svg, height, width, conf.useMaxWidth);
53678 svg.attr('viewBox', "0 0 ".concat(width, " ").concat(height));
53679 svg.select('g').attr('transform', "translate(".concat(padding - g._label.marginx, ", ").concat(padding - svgBounds.y, ")")); // Index nodes
53680 // flowDb.indexNodes('subGraph' + i);
53681 // Add label rects for non html labels
53682
53683 if (!conf.htmlLabels) {
53684 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
53685
53686 for (var k = 0; k < labels.length; k++) {
53687 var label = labels[k]; // Get dimensions of label
53688
53689 var dim = label.getBBox();
53690 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
53691 rect.setAttribute('rx', 0);
53692 rect.setAttribute('ry', 0);
53693 rect.setAttribute('width', dim.width);
53694 rect.setAttribute('height', dim.height);
53695 rect.setAttribute('style', 'fill:#e8e8e8;');
53696 label.insertBefore(rect, label.firstChild);
53697 }
53698 } // If node has a link, wrap it in an anchor SVG object.
53699 // const keys = Object.keys(classes);
53700 // keys.forEach(function(key) {
53701 // const vertex = classes[key];
53702 // if (vertex.link) {
53703 // const node = select('#' + id + ' [id="' + key + '"]');
53704 // if (node) {
53705 // const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
53706 // link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
53707 // link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
53708 // link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
53709 // const linkNode = node.insert(function() {
53710 // return link;
53711 // }, ':first-child');
53712 // const shape = node.select('.label-container');
53713 // if (shape) {
53714 // linkNode.append(function() {
53715 // return shape.node();
53716 // });
53717 // }
53718 // const label = node.select('.label');
53719 // if (label) {
53720 // linkNode.append(function() {
53721 // return label.node();
53722 // });
53723 // }
53724 // }
53725 // }
53726 // });
53727
53728};
53729/* harmony default export */ __webpack_exports__["default"] = ({
53730 setConf: setConf,
53731 draw: draw
53732});
53733
53734function getArrowMarker(type) {
53735 var marker;
53736
53737 switch (type) {
53738 case 0:
53739 marker = 'aggregation';
53740 break;
53741
53742 case 1:
53743 marker = 'extension';
53744 break;
53745
53746 case 2:
53747 marker = 'composition';
53748 break;
53749
53750 case 3:
53751 marker = 'dependency';
53752 break;
53753
53754 default:
53755 marker = 'none';
53756 }
53757
53758 return marker;
53759}
53760
53761/***/ }),
53762
53763/***/ "./src/diagrams/class/classRenderer.js":
53764/*!*********************************************!*\
53765 !*** ./src/diagrams/class/classRenderer.js ***!
53766 \*********************************************/
53767/*! exports provided: setConf, draw, default */
53768/***/ (function(module, __webpack_exports__, __webpack_require__) {
53769
53770"use strict";
53771__webpack_require__.r(__webpack_exports__);
53772/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
53773/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
53774/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
53775/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
53776/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
53777/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
53778/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
53779/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
53780/* harmony import */ var _classDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./classDb */ "./src/diagrams/class/classDb.js");
53781/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
53782/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__);
53783/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/class/svgDraw.js");
53784/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
53785
53786
53787
53788
53789
53790
53791
53792
53793_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"];
53794var idCache = {};
53795var padding = 20;
53796var conf = {
53797 dividerMargin: 10,
53798 padding: 5,
53799 textHeight: 10
53800}; // Todo optimize
53801
53802var getGraphId = function getGraphId(label) {
53803 var keys = Object.keys(idCache);
53804
53805 for (var i = 0; i < keys.length; i++) {
53806 if (idCache[keys[i]].label === label) {
53807 return keys[i];
53808 }
53809 }
53810
53811 return undefined;
53812};
53813/**
53814 * Setup arrow head and define the marker. The result is appended to the svg.
53815 */
53816
53817
53818var insertMarkers = function insertMarkers(elem) {
53819 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');
53820 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
53821
53822 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');
53823 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');
53824 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');
53825 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');
53826 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');
53827 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');
53828};
53829
53830var setConf = function setConf(cnf) {
53831 var keys = Object.keys(cnf);
53832 keys.forEach(function (key) {
53833 conf[key] = cnf[key];
53834 });
53835};
53836/**
53837 * Draws a flowchart in the tag with id: id based on the graph definition in text.
53838 * @param text
53839 * @param id
53840 */
53841
53842var draw = function draw(text, id) {
53843 idCache = {};
53844 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy.clear();
53845 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].parse(text);
53846 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering diagram ' + text); // Fetch the default direction, use TD if none was found
53847
53848 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id='".concat(id, "']"));
53849 diagram.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');
53850 insertMarkers(diagram); // Layout graph, Create a new directed graph
53851
53852 var g = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
53853 multigraph: true
53854 }); // Set an object for the graph label
53855
53856 g.setGraph({
53857 isMultiGraph: true
53858 }); // Default to assigning a new object as a label for each new edge.
53859
53860 g.setDefaultEdgeLabel(function () {
53861 return {};
53862 });
53863 var classes = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getClasses();
53864 var keys = Object.keys(classes);
53865
53866 for (var i = 0; i < keys.length; i++) {
53867 var classDef = classes[keys[i]];
53868 var node = _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawClass(diagram, classDef, conf);
53869 idCache[node.id] = node; // Add nodes to the graph. The first argument is the node id. The second is
53870 // metadata about the node. In this case we're going to add labels to each of
53871 // our nodes.
53872
53873 g.setNode(node.id, node);
53874 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Org height: ' + node.height);
53875 }
53876
53877 var relations = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
53878 relations.forEach(function (relation) {
53879 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation));
53880 g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), {
53881 relation: relation
53882 }, relation.title || 'DEFAULT');
53883 });
53884 dagre__WEBPACK_IMPORTED_MODULE_1___default.a.layout(g);
53885 g.nodes().forEach(function (v) {
53886 if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {
53887 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));
53888 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + Object(_classDb__WEBPACK_IMPORTED_MODULE_4__["lookUpDomId"])(v)).attr('transform', 'translate(' + (g.node(v).x - g.node(v).width / 2) + ',' + (g.node(v).y - g.node(v).height / 2) + ' )');
53889 }
53890 });
53891 g.edges().forEach(function (e) {
53892 if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {
53893 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));
53894 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawEdge(diagram, g.edge(e), g.edge(e).relation, conf);
53895 }
53896 });
53897 var svgBounds = diagram.node().getBBox();
53898 var width = svgBounds.width + padding * 2;
53899 var height = svgBounds.height + padding * 2;
53900 Object(_utils__WEBPACK_IMPORTED_MODULE_7__["configureSvgSize"])(diagram, height, width, conf.useMaxWidth); // Ensure the viewBox includes the whole svgBounds area with extra space for padding
53901
53902 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
53903 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug("viewBox ".concat(vBox));
53904 diagram.attr('viewBox', vBox);
53905};
53906/* harmony default export */ __webpack_exports__["default"] = ({
53907 setConf: setConf,
53908 draw: draw
53909});
53910
53911/***/ }),
53912
53913/***/ "./src/diagrams/class/parser/classDiagram.jison":
53914/*!******************************************************!*\
53915 !*** ./src/diagrams/class/parser/classDiagram.jison ***!
53916 \******************************************************/
53917/*! no static exports found */
53918/***/ (function(module, exports, __webpack_require__) {
53919
53920/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
53921/*
53922 Returns a Parser object of the following structure:
53923
53924 Parser: {
53925 yy: {}
53926 }
53927
53928 Parser.prototype: {
53929 yy: {},
53930 trace: function(),
53931 symbols_: {associative list: name ==> number},
53932 terminals_: {associative list: number ==> name},
53933 productions_: [...],
53934 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
53935 table: [...],
53936 defaultActions: {...},
53937 parseError: function(str, hash),
53938 parse: function(input),
53939
53940 lexer: {
53941 EOF: 1,
53942 parseError: function(str, hash),
53943 setInput: function(input),
53944 input: function(),
53945 unput: function(str),
53946 more: function(),
53947 less: function(n),
53948 pastInput: function(),
53949 upcomingInput: function(),
53950 showPosition: function(),
53951 test_match: function(regex_match_array, rule_index),
53952 next: function(),
53953 lex: function(),
53954 begin: function(condition),
53955 popState: function(),
53956 _currentRules: function(),
53957 topState: function(),
53958 pushState: function(condition),
53959
53960 options: {
53961 ranges: boolean (optional: true ==> token location info will include a .range[] member)
53962 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
53963 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)
53964 },
53965
53966 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
53967 rules: [...],
53968 conditions: {associative list: name ==> set},
53969 }
53970 }
53971
53972
53973 token location info (@$, _$, etc.): {
53974 first_line: n,
53975 last_line: n,
53976 first_column: n,
53977 last_column: n,
53978 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
53979 }
53980
53981
53982 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
53983 text: (matched text)
53984 token: (the produced terminal token, if any)
53985 line: (yylineno)
53986 }
53987 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
53988 loc: (yylloc)
53989 expected: (string describing the set of expected tokens)
53990 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
53991 }
53992*/
53993var parser = (function(){
53994var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,7],$V1=[1,6],$V2=[1,14],$V3=[1,25],$V4=[1,28],$V5=[1,26],$V6=[1,27],$V7=[1,29],$V8=[1,30],$V9=[1,31],$Va=[1,33],$Vb=[1,34],$Vc=[1,35],$Vd=[10,19],$Ve=[1,47],$Vf=[1,48],$Vg=[1,49],$Vh=[1,50],$Vi=[1,51],$Vj=[1,52],$Vk=[10,19,25,32,33,41,44,45,46,47,48,49],$Vl=[10,19,23,25,32,33,37,41,44,45,46,47,48,49,66,67,68],$Vm=[10,13,17,19],$Vn=[41,66,67,68],$Vo=[41,48,49,66,67,68],$Vp=[41,44,45,46,47,66,67,68],$Vq=[10,19,25],$Vr=[1,81];
53995var parser = {trace: function trace () { },
53996yy: {},
53997symbols_: {"error":2,"start":3,"mermaidDoc":4,"directive":5,"graphConfig":6,"openDirective":7,"typeDirective":8,"closeDirective":9,"NEWLINE":10,":":11,"argDirective":12,"open_directive":13,"type_directive":14,"arg_directive":15,"close_directive":16,"CLASS_DIAGRAM":17,"statements":18,"EOF":19,"statement":20,"className":21,"alphaNumToken":22,"GENERICTYPE":23,"relationStatement":24,"LABEL":25,"classStatement":26,"methodStatement":27,"annotationStatement":28,"clickStatement":29,"cssClassStatement":30,"CLASS":31,"STYLE_SEPARATOR":32,"STRUCT_START":33,"members":34,"STRUCT_STOP":35,"ANNOTATION_START":36,"ANNOTATION_END":37,"MEMBER":38,"SEPARATOR":39,"relation":40,"STR":41,"relationType":42,"lineType":43,"AGGREGATION":44,"EXTENSION":45,"COMPOSITION":46,"DEPENDENCY":47,"LINE":48,"DOTTED_LINE":49,"CALLBACK":50,"LINK":51,"CSSCLASS":52,"commentToken":53,"textToken":54,"graphCodeTokens":55,"textNoTagsToken":56,"TAGSTART":57,"TAGEND":58,"==":59,"--":60,"PCT":61,"DEFAULT":62,"SPACE":63,"MINUS":64,"keywords":65,"UNICODE_TEXT":66,"NUM":67,"ALPHA":68,"$accept":0,"$end":1},
53998terminals_: {2:"error",10:"NEWLINE",11:":",13:"open_directive",14:"type_directive",15:"arg_directive",16:"close_directive",17:"CLASS_DIAGRAM",19:"EOF",23:"GENERICTYPE",25:"LABEL",31:"CLASS",32:"STYLE_SEPARATOR",33:"STRUCT_START",35:"STRUCT_STOP",36:"ANNOTATION_START",37:"ANNOTATION_END",38:"MEMBER",39:"SEPARATOR",41:"STR",44:"AGGREGATION",45:"EXTENSION",46:"COMPOSITION",47:"DEPENDENCY",48:"LINE",49:"DOTTED_LINE",50:"CALLBACK",51:"LINK",52:"CSSCLASS",55:"graphCodeTokens",57:"TAGSTART",58:"TAGEND",59:"==",60:"--",61:"PCT",62:"DEFAULT",63:"SPACE",64:"MINUS",65:"keywords",66:"UNICODE_TEXT",67:"NUM",68:"ALPHA"},
53999productions_: [0,[3,1],[3,2],[4,1],[5,4],[5,6],[7,1],[8,1],[12,1],[9,1],[6,4],[18,1],[18,2],[18,3],[21,1],[21,2],[21,3],[21,2],[20,1],[20,2],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[26,2],[26,4],[26,5],[26,7],[28,4],[34,1],[34,2],[27,1],[27,2],[27,1],[27,1],[24,3],[24,4],[24,4],[24,5],[40,3],[40,2],[40,2],[40,1],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[29,3],[29,4],[29,3],[29,4],[30,3],[53,1],[53,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[56,1],[56,1],[56,1],[56,1],[22,1],[22,1],[22,1]],
54000performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
54001/* this == yyval */
54002
54003var $0 = $$.length - 1;
54004switch (yystate) {
54005case 6:
54006 yy.parseDirective('%%{', 'open_directive');
54007break;
54008case 7:
54009 yy.parseDirective($$[$0], 'type_directive');
54010break;
54011case 8:
54012 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
54013break;
54014case 9:
54015 yy.parseDirective('}%%', 'close_directive', 'class');
54016break;
54017case 14:
54018 this.$=$$[$0];
54019break;
54020case 15:
54021 this.$=$$[$0-1]+$$[$0];
54022break;
54023case 16:
54024 this.$=$$[$0-2]+'~'+$$[$0-1]+$$[$0];
54025break;
54026case 17:
54027 this.$=$$[$0-1]+'~'+$$[$0];
54028break;
54029case 18:
54030 yy.addRelation($$[$0]);
54031break;
54032case 19:
54033 $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]);
54034break;
54035case 26:
54036yy.addClass($$[$0]);
54037break;
54038case 27:
54039yy.addClass($$[$0-2]);yy.setCssClass($$[$0-2], $$[$0]);
54040break;
54041case 28:
54042/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);
54043break;
54044case 29:
54045yy.addClass($$[$0-5]);yy.setCssClass($$[$0-5], $$[$0-3]);yy.addMembers($$[$0-5],$$[$0-1]);
54046break;
54047case 30:
54048 yy.addAnnotation($$[$0],$$[$0-2]);
54049break;
54050case 31:
54051 this.$ = [$$[$0]];
54052break;
54053case 32:
54054 $$[$0].push($$[$0-1]);this.$=$$[$0];
54055break;
54056case 33:
54057/*console.log('Rel found',$$[$0]);*/
54058break;
54059case 34:
54060yy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));
54061break;
54062case 35:
54063/*console.warn('Member',$$[$0]);*/
54064break;
54065case 36:
54066/*console.log('sep found',$$[$0]);*/
54067break;
54068case 37:
54069 this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'};
54070break;
54071case 38:
54072 this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}
54073break;
54074case 39:
54075 this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]};
54076break;
54077case 40:
54078 this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]}
54079break;
54080case 41:
54081 this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]};
54082break;
54083case 42:
54084 this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]};
54085break;
54086case 43:
54087 this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]};
54088break;
54089case 44:
54090 this.$={type1:'none',type2:'none',lineType:$$[$0]};
54091break;
54092case 45:
54093 this.$=yy.relationType.AGGREGATION;
54094break;
54095case 46:
54096 this.$=yy.relationType.EXTENSION;
54097break;
54098case 47:
54099 this.$=yy.relationType.COMPOSITION;
54100break;
54101case 48:
54102 this.$=yy.relationType.DEPENDENCY;
54103break;
54104case 49:
54105this.$=yy.lineType.LINE;
54106break;
54107case 50:
54108this.$=yy.lineType.DOTTED_LINE;
54109break;
54110case 51:
54111this.$ = $$[$0-2];yy.setClickEvent($$[$0-1], $$[$0], undefined);
54112break;
54113case 52:
54114this.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);
54115break;
54116case 53:
54117this.$ = $$[$0-2];yy.setLink($$[$0-1], $$[$0], undefined);
54118break;
54119case 54:
54120this.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1], $$[$0]);
54121break;
54122case 55:
54123yy.setCssClass($$[$0-1], $$[$0]);
54124break;
54125}
54126},
54127table: [{3:1,4:2,5:3,6:4,7:5,13:$V0,17:$V1},{1:[3]},{1:[2,1]},{3:8,4:2,5:3,6:4,7:5,13:$V0,17:$V1},{1:[2,3]},{8:9,14:[1,10]},{10:[1,11]},{14:[2,6]},{1:[2,2]},{9:12,11:[1,13],16:$V2},o([11,16],[2,7]),{5:23,7:5,13:$V0,18:15,20:16,21:24,22:32,24:17,26:18,27:19,28:20,29:21,30:22,31:$V3,36:$V4,38:$V5,39:$V6,50:$V7,51:$V8,52:$V9,66:$Va,67:$Vb,68:$Vc},{10:[1,36]},{12:37,15:[1,38]},{10:[2,9]},{19:[1,39]},{10:[1,40],19:[2,11]},o($Vd,[2,18],{25:[1,41]}),o($Vd,[2,20]),o($Vd,[2,21]),o($Vd,[2,22]),o($Vd,[2,23]),o($Vd,[2,24]),o($Vd,[2,25]),o($Vd,[2,33],{40:42,42:45,43:46,25:[1,44],41:[1,43],44:$Ve,45:$Vf,46:$Vg,47:$Vh,48:$Vi,49:$Vj}),{21:53,22:32,66:$Va,67:$Vb,68:$Vc},o($Vd,[2,35]),o($Vd,[2,36]),{22:54,66:$Va,67:$Vb,68:$Vc},{21:55,22:32,66:$Va,67:$Vb,68:$Vc},{21:56,22:32,66:$Va,67:$Vb,68:$Vc},{41:[1,57]},o($Vk,[2,14],{22:32,21:58,23:[1,59],66:$Va,67:$Vb,68:$Vc}),o($Vl,[2,69]),o($Vl,[2,70]),o($Vl,[2,71]),o($Vm,[2,4]),{9:60,16:$V2},{16:[2,8]},{1:[2,10]},{5:23,7:5,13:$V0,18:61,19:[2,12],20:16,21:24,22:32,24:17,26:18,27:19,28:20,29:21,30:22,31:$V3,36:$V4,38:$V5,39:$V6,50:$V7,51:$V8,52:$V9,66:$Va,67:$Vb,68:$Vc},o($Vd,[2,19]),{21:62,22:32,41:[1,63],66:$Va,67:$Vb,68:$Vc},{40:64,42:45,43:46,44:$Ve,45:$Vf,46:$Vg,47:$Vh,48:$Vi,49:$Vj},o($Vd,[2,34]),{43:65,48:$Vi,49:$Vj},o($Vn,[2,44],{42:66,44:$Ve,45:$Vf,46:$Vg,47:$Vh}),o($Vo,[2,45]),o($Vo,[2,46]),o($Vo,[2,47]),o($Vo,[2,48]),o($Vp,[2,49]),o($Vp,[2,50]),o($Vd,[2,26],{32:[1,67],33:[1,68]}),{37:[1,69]},{41:[1,70]},{41:[1,71]},{22:72,66:$Va,67:$Vb,68:$Vc},o($Vk,[2,15]),o($Vk,[2,17],{22:32,21:73,66:$Va,67:$Vb,68:$Vc}),{10:[1,74]},{19:[2,13]},o($Vq,[2,37]),{21:75,22:32,66:$Va,67:$Vb,68:$Vc},{21:76,22:32,41:[1,77],66:$Va,67:$Vb,68:$Vc},o($Vn,[2,43],{42:78,44:$Ve,45:$Vf,46:$Vg,47:$Vh}),o($Vn,[2,42]),{22:79,66:$Va,67:$Vb,68:$Vc},{34:80,38:$Vr},{21:82,22:32,66:$Va,67:$Vb,68:$Vc},o($Vd,[2,51],{41:[1,83]}),o($Vd,[2,53],{41:[1,84]}),o($Vd,[2,55]),o($Vk,[2,16]),o($Vm,[2,5]),o($Vq,[2,39]),o($Vq,[2,38]),{21:85,22:32,66:$Va,67:$Vb,68:$Vc},o($Vn,[2,41]),o($Vd,[2,27],{33:[1,86]}),{35:[1,87]},{34:88,35:[2,31],38:$Vr},o($Vd,[2,30]),o($Vd,[2,52]),o($Vd,[2,54]),o($Vq,[2,40]),{34:89,38:$Vr},o($Vd,[2,28]),{35:[2,32]},{35:[1,90]},o($Vd,[2,29])],
54128defaultActions: {2:[2,1],4:[2,3],7:[2,6],8:[2,2],14:[2,9],38:[2,8],39:[2,10],61:[2,13],88:[2,32]},
54129parseError: function parseError (str, hash) {
54130 if (hash.recoverable) {
54131 this.trace(str);
54132 } else {
54133 var error = new Error(str);
54134 error.hash = hash;
54135 throw error;
54136 }
54137},
54138parse: function parse(input) {
54139 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
54140 var args = lstack.slice.call(arguments, 1);
54141 var lexer = Object.create(this.lexer);
54142 var sharedState = { yy: {} };
54143 for (var k in this.yy) {
54144 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
54145 sharedState.yy[k] = this.yy[k];
54146 }
54147 }
54148 lexer.setInput(input, sharedState.yy);
54149 sharedState.yy.lexer = lexer;
54150 sharedState.yy.parser = this;
54151 if (typeof lexer.yylloc == 'undefined') {
54152 lexer.yylloc = {};
54153 }
54154 var yyloc = lexer.yylloc;
54155 lstack.push(yyloc);
54156 var ranges = lexer.options && lexer.options.ranges;
54157 if (typeof sharedState.yy.parseError === 'function') {
54158 this.parseError = sharedState.yy.parseError;
54159 } else {
54160 this.parseError = Object.getPrototypeOf(this).parseError;
54161 }
54162 function popStack(n) {
54163 stack.length = stack.length - 2 * n;
54164 vstack.length = vstack.length - n;
54165 lstack.length = lstack.length - n;
54166 }
54167 function lex() {
54168 var token;
54169 token = tstack.pop() || lexer.lex() || EOF;
54170 if (typeof token !== 'number') {
54171 if (token instanceof Array) {
54172 tstack = token;
54173 token = tstack.pop();
54174 }
54175 token = self.symbols_[token] || token;
54176 }
54177 return token;
54178 }
54179 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
54180 while (true) {
54181 state = stack[stack.length - 1];
54182 if (this.defaultActions[state]) {
54183 action = this.defaultActions[state];
54184 } else {
54185 if (symbol === null || typeof symbol == 'undefined') {
54186 symbol = lex();
54187 }
54188 action = table[state] && table[state][symbol];
54189 }
54190 if (typeof action === 'undefined' || !action.length || !action[0]) {
54191 var errStr = '';
54192 expected = [];
54193 for (p in table[state]) {
54194 if (this.terminals_[p] && p > TERROR) {
54195 expected.push('\'' + this.terminals_[p] + '\'');
54196 }
54197 }
54198 if (lexer.showPosition) {
54199 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
54200 } else {
54201 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
54202 }
54203 this.parseError(errStr, {
54204 text: lexer.match,
54205 token: this.terminals_[symbol] || symbol,
54206 line: lexer.yylineno,
54207 loc: yyloc,
54208 expected: expected
54209 });
54210 }
54211 if (action[0] instanceof Array && action.length > 1) {
54212 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
54213 }
54214 switch (action[0]) {
54215 case 1:
54216 stack.push(symbol);
54217 vstack.push(lexer.yytext);
54218 lstack.push(lexer.yylloc);
54219 stack.push(action[1]);
54220 symbol = null;
54221 if (!preErrorSymbol) {
54222 yyleng = lexer.yyleng;
54223 yytext = lexer.yytext;
54224 yylineno = lexer.yylineno;
54225 yyloc = lexer.yylloc;
54226 if (recovering > 0) {
54227 recovering--;
54228 }
54229 } else {
54230 symbol = preErrorSymbol;
54231 preErrorSymbol = null;
54232 }
54233 break;
54234 case 2:
54235 len = this.productions_[action[1]][1];
54236 yyval.$ = vstack[vstack.length - len];
54237 yyval._$ = {
54238 first_line: lstack[lstack.length - (len || 1)].first_line,
54239 last_line: lstack[lstack.length - 1].last_line,
54240 first_column: lstack[lstack.length - (len || 1)].first_column,
54241 last_column: lstack[lstack.length - 1].last_column
54242 };
54243 if (ranges) {
54244 yyval._$.range = [
54245 lstack[lstack.length - (len || 1)].range[0],
54246 lstack[lstack.length - 1].range[1]
54247 ];
54248 }
54249 r = this.performAction.apply(yyval, [
54250 yytext,
54251 yyleng,
54252 yylineno,
54253 sharedState.yy,
54254 action[1],
54255 vstack,
54256 lstack
54257 ].concat(args));
54258 if (typeof r !== 'undefined') {
54259 return r;
54260 }
54261 if (len) {
54262 stack = stack.slice(0, -1 * len * 2);
54263 vstack = vstack.slice(0, -1 * len);
54264 lstack = lstack.slice(0, -1 * len);
54265 }
54266 stack.push(this.productions_[action[1]][0]);
54267 vstack.push(yyval.$);
54268 lstack.push(yyval._$);
54269 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
54270 stack.push(newState);
54271 break;
54272 case 3:
54273 return true;
54274 }
54275 }
54276 return true;
54277}};
54278
54279/* generated by jison-lex 0.3.4 */
54280var lexer = (function(){
54281var lexer = ({
54282
54283EOF:1,
54284
54285parseError:function parseError(str, hash) {
54286 if (this.yy.parser) {
54287 this.yy.parser.parseError(str, hash);
54288 } else {
54289 throw new Error(str);
54290 }
54291 },
54292
54293// resets the lexer, sets new input
54294setInput:function (input, yy) {
54295 this.yy = yy || this.yy || {};
54296 this._input = input;
54297 this._more = this._backtrack = this.done = false;
54298 this.yylineno = this.yyleng = 0;
54299 this.yytext = this.matched = this.match = '';
54300 this.conditionStack = ['INITIAL'];
54301 this.yylloc = {
54302 first_line: 1,
54303 first_column: 0,
54304 last_line: 1,
54305 last_column: 0
54306 };
54307 if (this.options.ranges) {
54308 this.yylloc.range = [0,0];
54309 }
54310 this.offset = 0;
54311 return this;
54312 },
54313
54314// consumes and returns one char from the input
54315input:function () {
54316 var ch = this._input[0];
54317 this.yytext += ch;
54318 this.yyleng++;
54319 this.offset++;
54320 this.match += ch;
54321 this.matched += ch;
54322 var lines = ch.match(/(?:\r\n?|\n).*/g);
54323 if (lines) {
54324 this.yylineno++;
54325 this.yylloc.last_line++;
54326 } else {
54327 this.yylloc.last_column++;
54328 }
54329 if (this.options.ranges) {
54330 this.yylloc.range[1]++;
54331 }
54332
54333 this._input = this._input.slice(1);
54334 return ch;
54335 },
54336
54337// unshifts one char (or a string) into the input
54338unput:function (ch) {
54339 var len = ch.length;
54340 var lines = ch.split(/(?:\r\n?|\n)/g);
54341
54342 this._input = ch + this._input;
54343 this.yytext = this.yytext.substr(0, this.yytext.length - len);
54344 //this.yyleng -= len;
54345 this.offset -= len;
54346 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
54347 this.match = this.match.substr(0, this.match.length - 1);
54348 this.matched = this.matched.substr(0, this.matched.length - 1);
54349
54350 if (lines.length - 1) {
54351 this.yylineno -= lines.length - 1;
54352 }
54353 var r = this.yylloc.range;
54354
54355 this.yylloc = {
54356 first_line: this.yylloc.first_line,
54357 last_line: this.yylineno + 1,
54358 first_column: this.yylloc.first_column,
54359 last_column: lines ?
54360 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
54361 + oldLines[oldLines.length - lines.length].length - lines[0].length :
54362 this.yylloc.first_column - len
54363 };
54364
54365 if (this.options.ranges) {
54366 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
54367 }
54368 this.yyleng = this.yytext.length;
54369 return this;
54370 },
54371
54372// When called from action, caches matched text and appends it on next action
54373more:function () {
54374 this._more = true;
54375 return this;
54376 },
54377
54378// 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.
54379reject:function () {
54380 if (this.options.backtrack_lexer) {
54381 this._backtrack = true;
54382 } else {
54383 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(), {
54384 text: "",
54385 token: null,
54386 line: this.yylineno
54387 });
54388
54389 }
54390 return this;
54391 },
54392
54393// retain first n characters of the match
54394less:function (n) {
54395 this.unput(this.match.slice(n));
54396 },
54397
54398// displays already matched input, i.e. for error messages
54399pastInput:function () {
54400 var past = this.matched.substr(0, this.matched.length - this.match.length);
54401 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
54402 },
54403
54404// displays upcoming input, i.e. for error messages
54405upcomingInput:function () {
54406 var next = this.match;
54407 if (next.length < 20) {
54408 next += this._input.substr(0, 20-next.length);
54409 }
54410 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
54411 },
54412
54413// displays the character position where the lexing error occurred, i.e. for error messages
54414showPosition:function () {
54415 var pre = this.pastInput();
54416 var c = new Array(pre.length + 1).join("-");
54417 return pre + this.upcomingInput() + "\n" + c + "^";
54418 },
54419
54420// test the lexed token: return FALSE when not a match, otherwise return token
54421test_match:function(match, indexed_rule) {
54422 var token,
54423 lines,
54424 backup;
54425
54426 if (this.options.backtrack_lexer) {
54427 // save context
54428 backup = {
54429 yylineno: this.yylineno,
54430 yylloc: {
54431 first_line: this.yylloc.first_line,
54432 last_line: this.last_line,
54433 first_column: this.yylloc.first_column,
54434 last_column: this.yylloc.last_column
54435 },
54436 yytext: this.yytext,
54437 match: this.match,
54438 matches: this.matches,
54439 matched: this.matched,
54440 yyleng: this.yyleng,
54441 offset: this.offset,
54442 _more: this._more,
54443 _input: this._input,
54444 yy: this.yy,
54445 conditionStack: this.conditionStack.slice(0),
54446 done: this.done
54447 };
54448 if (this.options.ranges) {
54449 backup.yylloc.range = this.yylloc.range.slice(0);
54450 }
54451 }
54452
54453 lines = match[0].match(/(?:\r\n?|\n).*/g);
54454 if (lines) {
54455 this.yylineno += lines.length;
54456 }
54457 this.yylloc = {
54458 first_line: this.yylloc.last_line,
54459 last_line: this.yylineno + 1,
54460 first_column: this.yylloc.last_column,
54461 last_column: lines ?
54462 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
54463 this.yylloc.last_column + match[0].length
54464 };
54465 this.yytext += match[0];
54466 this.match += match[0];
54467 this.matches = match;
54468 this.yyleng = this.yytext.length;
54469 if (this.options.ranges) {
54470 this.yylloc.range = [this.offset, this.offset += this.yyleng];
54471 }
54472 this._more = false;
54473 this._backtrack = false;
54474 this._input = this._input.slice(match[0].length);
54475 this.matched += match[0];
54476 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
54477 if (this.done && this._input) {
54478 this.done = false;
54479 }
54480 if (token) {
54481 return token;
54482 } else if (this._backtrack) {
54483 // recover context
54484 for (var k in backup) {
54485 this[k] = backup[k];
54486 }
54487 return false; // rule action called reject() implying the next rule should be tested instead.
54488 }
54489 return false;
54490 },
54491
54492// return next match in input
54493next:function () {
54494 if (this.done) {
54495 return this.EOF;
54496 }
54497 if (!this._input) {
54498 this.done = true;
54499 }
54500
54501 var token,
54502 match,
54503 tempMatch,
54504 index;
54505 if (!this._more) {
54506 this.yytext = '';
54507 this.match = '';
54508 }
54509 var rules = this._currentRules();
54510 for (var i = 0; i < rules.length; i++) {
54511 tempMatch = this._input.match(this.rules[rules[i]]);
54512 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
54513 match = tempMatch;
54514 index = i;
54515 if (this.options.backtrack_lexer) {
54516 token = this.test_match(tempMatch, rules[i]);
54517 if (token !== false) {
54518 return token;
54519 } else if (this._backtrack) {
54520 match = false;
54521 continue; // rule action called reject() implying a rule MISmatch.
54522 } else {
54523 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
54524 return false;
54525 }
54526 } else if (!this.options.flex) {
54527 break;
54528 }
54529 }
54530 }
54531 if (match) {
54532 token = this.test_match(match, rules[index]);
54533 if (token !== false) {
54534 return token;
54535 }
54536 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
54537 return false;
54538 }
54539 if (this._input === "") {
54540 return this.EOF;
54541 } else {
54542 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
54543 text: "",
54544 token: null,
54545 line: this.yylineno
54546 });
54547 }
54548 },
54549
54550// return next match that has a token
54551lex:function lex () {
54552 var r = this.next();
54553 if (r) {
54554 return r;
54555 } else {
54556 return this.lex();
54557 }
54558 },
54559
54560// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
54561begin:function begin (condition) {
54562 this.conditionStack.push(condition);
54563 },
54564
54565// pop the previously active lexer condition state off the condition stack
54566popState:function popState () {
54567 var n = this.conditionStack.length - 1;
54568 if (n > 0) {
54569 return this.conditionStack.pop();
54570 } else {
54571 return this.conditionStack[0];
54572 }
54573 },
54574
54575// produce the lexer rule set which is active for the currently active lexer condition state
54576_currentRules:function _currentRules () {
54577 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
54578 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
54579 } else {
54580 return this.conditions["INITIAL"].rules;
54581 }
54582 },
54583
54584// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
54585topState:function topState (n) {
54586 n = this.conditionStack.length - 1 - Math.abs(n || 0);
54587 if (n >= 0) {
54588 return this.conditionStack[n];
54589 } else {
54590 return "INITIAL";
54591 }
54592 },
54593
54594// alias for begin(condition)
54595pushState:function pushState (condition) {
54596 this.begin(condition);
54597 },
54598
54599// return the number of states currently on the stack
54600stateStackSize:function stateStackSize() {
54601 return this.conditionStack.length;
54602 },
54603options: {},
54604performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
54605var YYSTATE=YY_START;
54606switch($avoiding_name_collisions) {
54607case 0: this.begin('open_directive'); return 13;
54608break;
54609case 1: this.begin('type_directive'); return 14;
54610break;
54611case 2: this.popState(); this.begin('arg_directive'); return 11;
54612break;
54613case 3: this.popState(); this.popState(); return 16;
54614break;
54615case 4:return 15;
54616break;
54617case 5:/* skip comments */
54618break;
54619case 6:/* skip comments */
54620break;
54621case 7:return 10;
54622break;
54623case 8:/* skip whitespace */
54624break;
54625case 9:return 17;
54626break;
54627case 10:return 17;
54628break;
54629case 11: this.begin("struct"); /*console.log('Starting struct');*/ return 33;
54630break;
54631case 12:return "EOF_IN_STRUCT";
54632break;
54633case 13:return "OPEN_IN_STRUCT";
54634break;
54635case 14: /*console.log('Ending struct');*/this.popState(); return 35;
54636break;
54637case 15:/* nothing */
54638break;
54639case 16: /*console.log('lex-member: ' + yy_.yytext);*/ return "MEMBER";
54640break;
54641case 17:return 31;
54642break;
54643case 18:return 52;
54644break;
54645case 19:return 50;
54646break;
54647case 20:return 51;
54648break;
54649case 21:return 36;
54650break;
54651case 22:return 37;
54652break;
54653case 23:this.begin("generic");
54654break;
54655case 24:this.popState();
54656break;
54657case 25:return "GENERICTYPE";
54658break;
54659case 26:this.begin("string");
54660break;
54661case 27:this.popState();
54662break;
54663case 28:return "STR";
54664break;
54665case 29:return 45;
54666break;
54667case 30:return 45;
54668break;
54669case 31:return 47;
54670break;
54671case 32:return 47;
54672break;
54673case 33:return 46;
54674break;
54675case 34:return 44;
54676break;
54677case 35:return 48;
54678break;
54679case 36:return 49;
54680break;
54681case 37:return 25;
54682break;
54683case 38:return 32;
54684break;
54685case 39:return 64;
54686break;
54687case 40:return 'DOT';
54688break;
54689case 41:return 'PLUS';
54690break;
54691case 42:return 61;
54692break;
54693case 43:return 'EQUALS';
54694break;
54695case 44:return 'EQUALS';
54696break;
54697case 45:return 68;
54698break;
54699case 46:return 'PUNCTUATION';
54700break;
54701case 47:return 67;
54702break;
54703case 48:return 66;
54704break;
54705case 49:return 63;
54706break;
54707case 50:return 19;
54708break;
54709}
54710},
54711rules: [/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[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)/,/^(?:$)/],
54712conditions: {"string":{"rules":[27,28],"inclusive":false},"generic":{"rules":[24,25],"inclusive":false},"struct":{"rules":[12,13,14,15,16],"inclusive":false},"open_directive":{"rules":[1],"inclusive":false},"type_directive":{"rules":[2,3],"inclusive":false},"arg_directive":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,8,9,10,11,17,18,19,20,21,22,23,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"inclusive":true}}
54713});
54714return lexer;
54715})();
54716parser.lexer = lexer;
54717function Parser () {
54718 this.yy = {};
54719}
54720Parser.prototype = parser;parser.Parser = Parser;
54721return new Parser;
54722})();
54723
54724
54725if (true) {
54726exports.parser = parser;
54727exports.Parser = parser.Parser;
54728exports.parse = function () { return parser.parse.apply(parser, arguments); };
54729exports.main = function commonjsMain (args) {
54730 if (!args[1]) {
54731 console.log('Usage: '+args[0]+' FILE');
54732 process.exit(1);
54733 }
54734 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");
54735 return exports.parser.parse(source);
54736};
54737if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
54738 exports.main(process.argv.slice(1));
54739}
54740}
54741/* 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)))
54742
54743/***/ }),
54744
54745/***/ "./src/diagrams/class/styles.js":
54746/*!**************************************!*\
54747 !*** ./src/diagrams/class/styles.js ***!
54748 \**************************************/
54749/*! exports provided: default */
54750/***/ (function(module, __webpack_exports__, __webpack_require__) {
54751
54752"use strict";
54753__webpack_require__.r(__webpack_exports__);
54754var getStyles = function getStyles(options) {
54755 return "g.classGroup text {\n fill: ".concat(options.nodeBorder, ";\n fill: ").concat(options.classText, ";\n stroke: none;\n font-family: ").concat(options.fontFamily, ";\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ").concat(options.nodeBorder, ";\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n}\n\ng.classGroup line {\n stroke: ").concat(options.nodeBorder, ";\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ").concat(options.mainBkg, ";\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ").concat(options.nodeBorder, ";\n font-size: 10px;\n}\n\n.relation {\n stroke: ").concat(options.lineColor, ";\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ").concat(options.mainBkg, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ").concat(options.mainBkg, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n");
54756};
54757
54758/* harmony default export */ __webpack_exports__["default"] = (getStyles);
54759
54760/***/ }),
54761
54762/***/ "./src/diagrams/class/svgDraw.js":
54763/*!***************************************!*\
54764 !*** ./src/diagrams/class/svgDraw.js ***!
54765 \***************************************/
54766/*! exports provided: drawEdge, drawClass, parseMember, default */
54767/***/ (function(module, __webpack_exports__, __webpack_require__) {
54768
54769"use strict";
54770__webpack_require__.r(__webpack_exports__);
54771/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawEdge", function() { return drawEdge; });
54772/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawClass", function() { return drawClass; });
54773/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMember", function() { return parseMember; });
54774/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
54775/* harmony import */ var _classDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classDb */ "./src/diagrams/class/classDb.js");
54776/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
54777/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
54778
54779
54780
54781
54782var edgeCount = 0;
54783var drawEdge = function drawEdge(elem, path, relation, conf) {
54784 var getRelationType = function getRelationType(type) {
54785 switch (type) {
54786 case _classDb__WEBPACK_IMPORTED_MODULE_1__["relationType"].AGGREGATION:
54787 return 'aggregation';
54788
54789 case _classDb__WEBPACK_IMPORTED_MODULE_1__["relationType"].EXTENSION:
54790 return 'extension';
54791
54792 case _classDb__WEBPACK_IMPORTED_MODULE_1__["relationType"].COMPOSITION:
54793 return 'composition';
54794
54795 case _classDb__WEBPACK_IMPORTED_MODULE_1__["relationType"].DEPENDENCY:
54796 return 'dependency';
54797 }
54798 };
54799
54800 path.points = path.points.filter(function (p) {
54801 return !Number.isNaN(p.y);
54802 }); // The data for our line
54803
54804 var lineData = path.points; // This is the accessor function we talked about above
54805
54806 var lineFunction = Object(d3__WEBPACK_IMPORTED_MODULE_0__["line"])().x(function (d) {
54807 return d.x;
54808 }).y(function (d) {
54809 return d.y;
54810 }).curve(d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
54811 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'relation');
54812 var url = '';
54813
54814 if (conf.arrowMarkerAbsolute) {
54815 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
54816 url = url.replace(/\(/g, '\\(');
54817 url = url.replace(/\)/g, '\\)');
54818 }
54819
54820 if (relation.relation.lineType == 1) {
54821 svgPath.attr('class', 'relation dashed-line');
54822 }
54823
54824 if (relation.relation.type1 !== 'none') {
54825 svgPath.attr('marker-start', 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')');
54826 }
54827
54828 if (relation.relation.type2 !== 'none') {
54829 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')');
54830 }
54831
54832 var x, y;
54833 var l = path.points.length; // Calculate Label position
54834
54835 var labelPosition = _utils__WEBPACK_IMPORTED_MODULE_2__["default"].calcLabelPosition(path.points);
54836 x = labelPosition.x;
54837 y = labelPosition.y;
54838 var p1_card_x, p1_card_y;
54839 var p2_card_x, p2_card_y;
54840
54841 if (l % 2 !== 0 && l > 1) {
54842 var cardinality_1_point = _utils__WEBPACK_IMPORTED_MODULE_2__["default"].calcCardinalityPosition(relation.relation.type1 !== 'none', path.points, path.points[0]);
54843 var cardinality_2_point = _utils__WEBPACK_IMPORTED_MODULE_2__["default"].calcCardinalityPosition(relation.relation.type2 !== 'none', path.points, path.points[l - 1]);
54844 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('cardinality_1_point ' + JSON.stringify(cardinality_1_point));
54845 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('cardinality_2_point ' + JSON.stringify(cardinality_2_point));
54846 p1_card_x = cardinality_1_point.x;
54847 p1_card_y = cardinality_1_point.y;
54848 p2_card_x = cardinality_2_point.x;
54849 p2_card_y = cardinality_2_point.y;
54850 }
54851
54852 if (typeof relation.title !== 'undefined') {
54853 var g = elem.append('g').attr('class', 'classLabel');
54854 var label = g.append('text').attr('class', 'label').attr('x', x).attr('y', y).attr('fill', 'red').attr('text-anchor', 'middle').text(relation.title);
54855 window.label = label;
54856 var bounds = label.node().getBBox();
54857 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);
54858 }
54859
54860 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering relation ' + JSON.stringify(relation));
54861
54862 if (typeof relation.relationTitle1 !== 'undefined' && relation.relationTitle1 !== 'none') {
54863 var _g = elem.append('g').attr('class', 'cardinality');
54864
54865 _g.append('text').attr('class', 'type1').attr('x', p1_card_x).attr('y', p1_card_y).attr('fill', 'black').attr('font-size', '6').text(relation.relationTitle1);
54866 }
54867
54868 if (typeof relation.relationTitle2 !== 'undefined' && relation.relationTitle2 !== 'none') {
54869 var _g2 = elem.append('g').attr('class', 'cardinality');
54870
54871 _g2.append('text').attr('class', 'type2').attr('x', p2_card_x).attr('y', p2_card_y).attr('fill', 'black').attr('font-size', '6').text(relation.relationTitle2);
54872 }
54873
54874 edgeCount++;
54875};
54876var drawClass = function drawClass(elem, classDef, conf) {
54877 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering class ' + classDef);
54878 var id = classDef.id;
54879 var classInfo = {
54880 id: id,
54881 label: classDef.id,
54882 width: 0,
54883 height: 0
54884 }; // add class group
54885
54886 var g = elem.append('g').attr('id', Object(_classDb__WEBPACK_IMPORTED_MODULE_1__["lookUpDomId"])(id)).attr('class', 'classGroup'); // add title
54887
54888 var title;
54889
54890 if (classDef.link) {
54891 title = g.append('svg:a').attr('xlink:href', classDef.link).attr('target', '_blank').append('text').attr('y', conf.textHeight + conf.padding).attr('x', 0);
54892 } else {
54893 title = g.append('text').attr('y', conf.textHeight + conf.padding).attr('x', 0);
54894 } // add annotations
54895
54896
54897 var isFirst = true;
54898 classDef.annotations.forEach(function (member) {
54899 var titleText2 = title.append('tspan').text('«' + member + '»');
54900 if (!isFirst) titleText2.attr('dy', conf.textHeight);
54901 isFirst = false;
54902 });
54903 var classTitleString = classDef.id;
54904
54905 if (classDef.type !== undefined && classDef.type !== '') {
54906 classTitleString += '<' + classDef.type + '>';
54907 }
54908
54909 var classTitle = title.append('tspan').text(classTitleString).attr('class', 'title'); // If class has annotations the title needs to have an offset of the text height
54910
54911 if (!isFirst) classTitle.attr('dy', conf.textHeight);
54912 var titleHeight = title.node().getBBox().height;
54913 var membersLine = g.append('line') // text label for the x axis
54914 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2).attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);
54915 var members = g.append('text') // text label for the x axis
54916 .attr('x', conf.padding).attr('y', titleHeight + conf.dividerMargin + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
54917 isFirst = true;
54918 classDef.members.forEach(function (member) {
54919 addTspan(members, member, isFirst, conf);
54920 isFirst = false;
54921 });
54922 var membersBox = members.node().getBBox();
54923 var methodsLine = g.append('line') // text label for the x axis
54924 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
54925 var methods = g.append('text') // text label for the x axis
54926 .attr('x', conf.padding).attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
54927 isFirst = true;
54928 classDef.methods.forEach(function (method) {
54929 addTspan(methods, method, isFirst, conf);
54930 isFirst = false;
54931 });
54932 var classBox = g.node().getBBox();
54933 var cssClassStr = ' ';
54934
54935 if (classDef.cssClasses.length > 0) {
54936 cssClassStr = cssClassStr + classDef.cssClasses.join(' ');
54937 }
54938
54939 var rect = 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).attr('class', cssClassStr);
54940 var rectWidth = rect.node().getBBox().width; // Center title
54941 // We subtract the width of each text element from the class box width and divide it by 2
54942
54943 title.node().childNodes.forEach(function (x) {
54944 x.setAttribute('x', (rectWidth - x.getBBox().width) / 2);
54945 });
54946
54947 if (classDef.tooltip) {
54948 title.insert('title').text(classDef.tooltip);
54949 }
54950
54951 membersLine.attr('x2', rectWidth);
54952 methodsLine.attr('x2', rectWidth);
54953 classInfo.width = rectWidth;
54954 classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
54955 return classInfo;
54956};
54957var parseMember = function parseMember(text) {
54958 var fieldRegEx = /(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+)/;
54959 var methodRegEx = /^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/;
54960 var fieldMatch = text.match(fieldRegEx);
54961 var methodMatch = text.match(methodRegEx);
54962
54963 if (fieldMatch && !methodMatch) {
54964 return buildFieldDisplay(fieldMatch);
54965 } else if (methodMatch) {
54966 return buildMethodDisplay(methodMatch);
54967 } else {
54968 return buildLegacyDisplay(text);
54969 }
54970};
54971
54972var buildFieldDisplay = function buildFieldDisplay(parsedText) {
54973 var displayText = '';
54974
54975 try {
54976 var visibility = parsedText[1] ? parsedText[1].trim() : '';
54977 var fieldType = parsedText[2] ? parsedText[2].trim() : '';
54978 var genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';
54979 var fieldName = parsedText[4] ? parsedText[4].trim() : '';
54980 displayText = visibility + fieldType + genericType + ' ' + fieldName;
54981 } catch (err) {
54982 displayText = parsedText;
54983 }
54984
54985 return {
54986 displayText: displayText,
54987 cssStyle: ''
54988 };
54989};
54990
54991var buildMethodDisplay = function buildMethodDisplay(parsedText) {
54992 var cssStyle = '';
54993 var displayText = '';
54994
54995 try {
54996 var visibility = parsedText[1] ? parsedText[1].trim() : '';
54997 var methodName = parsedText[2] ? parsedText[2].trim() : '';
54998 var parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';
54999 var classifier = parsedText[4] ? parsedText[4].trim() : '';
55000 var returnType = parsedText[5] ? ' : ' + parseGenericTypes(parsedText[5]).trim() : '';
55001 displayText = visibility + methodName + '(' + parameters + ')' + returnType;
55002 cssStyle = parseClassifier(classifier);
55003 } catch (err) {
55004 displayText = parsedText;
55005 }
55006
55007 return {
55008 displayText: displayText,
55009 cssStyle: cssStyle
55010 };
55011};
55012
55013var buildLegacyDisplay = function buildLegacyDisplay(text) {
55014 // if for some reason we dont have any match, use old format to parse text
55015 var displayText = '';
55016 var cssStyle = '';
55017 var memberText = '';
55018 var returnType = '';
55019 var methodStart = text.indexOf('(');
55020 var methodEnd = text.indexOf(')');
55021
55022 if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {
55023 var visibility = '';
55024 var methodName = '';
55025 var firstChar = text.substring(0, 1);
55026
55027 if (firstChar.match(/\w/)) {
55028 methodName = text.substring(0, methodStart).trim();
55029 } else {
55030 if (firstChar.match(/\+|-|~|#/)) {
55031 visibility = firstChar;
55032 }
55033
55034 methodName = text.substring(1, methodStart).trim();
55035 }
55036
55037 var parameters = text.substring(methodStart + 1, methodEnd);
55038 var classifier = text.substring(methodEnd + 1, 1);
55039 cssStyle = parseClassifier(classifier);
55040 displayText = visibility + methodName + '(' + parseGenericTypes(parameters.trim()) + ')';
55041
55042 if (methodEnd < memberText.length) {
55043 returnType = text.substring(methodEnd + 2).trim();
55044
55045 if (returnType !== '') {
55046 returnType = ' : ' + parseGenericTypes(returnType);
55047 }
55048 }
55049 } else {
55050 // finally - if all else fails, just send the text back as written (other than parsing for generic types)
55051 displayText = parseGenericTypes(text);
55052 }
55053
55054 return {
55055 displayText: displayText,
55056 cssStyle: cssStyle
55057 };
55058};
55059
55060var addTspan = function addTspan(textEl, txt, isFirst, conf) {
55061 var member = parseMember(txt);
55062 var tSpan = textEl.append('tspan').attr('x', conf.padding).text(member.displayText);
55063
55064 if (member.cssStyle !== '') {
55065 tSpan.attr('style', member.cssStyle);
55066 }
55067
55068 if (!isFirst) {
55069 tSpan.attr('dy', conf.textHeight);
55070 }
55071};
55072
55073var parseGenericTypes = function parseGenericTypes(text) {
55074 var cleanedText = text;
55075
55076 if (text.indexOf('~') != -1) {
55077 cleanedText = cleanedText.replace('~', '<');
55078 cleanedText = cleanedText.replace('~', '>');
55079 return parseGenericTypes(cleanedText);
55080 } else {
55081 return cleanedText;
55082 }
55083};
55084
55085var parseClassifier = function parseClassifier(classifier) {
55086 switch (classifier) {
55087 case '*':
55088 return 'font-style:italic;';
55089
55090 case '$':
55091 return 'text-decoration:underline;';
55092
55093 default:
55094 return '';
55095 }
55096};
55097
55098/* harmony default export */ __webpack_exports__["default"] = ({
55099 drawClass: drawClass,
55100 drawEdge: drawEdge,
55101 parseMember: parseMember
55102});
55103
55104/***/ }),
55105
55106/***/ "./src/diagrams/common/common.js":
55107/*!***************************************!*\
55108 !*** ./src/diagrams/common/common.js ***!
55109 \***************************************/
55110/*! exports provided: getRows, removeScript, sanitizeText, lineBreakRegex, hasBreaks, splitBreaks, default */
55111/***/ (function(module, __webpack_exports__, __webpack_require__) {
55112
55113"use strict";
55114__webpack_require__.r(__webpack_exports__);
55115/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRows", function() { return getRows; });
55116/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeScript", function() { return removeScript; });
55117/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sanitizeText", function() { return sanitizeText; });
55118/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineBreakRegex", function() { return lineBreakRegex; });
55119/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasBreaks", function() { return hasBreaks; });
55120/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitBreaks", function() { return splitBreaks; });
55121var getRows = function getRows(s) {
55122 if (!s) return 1;
55123 var str = breakToPlaceholder(s);
55124 str = str.replace(/\\n/g, '#br#');
55125 return str.split('#br#');
55126};
55127var removeScript = function removeScript(txt) {
55128 var rs = '';
55129 var idx = 0;
55130
55131 while (idx >= 0) {
55132 idx = txt.indexOf('<script');
55133
55134 if (idx >= 0) {
55135 rs += txt.substr(0, idx);
55136 txt = txt.substr(idx + 1);
55137 idx = txt.indexOf('</script>');
55138
55139 if (idx >= 0) {
55140 idx += 9;
55141 txt = txt.substr(idx);
55142 }
55143 } else {
55144 rs += txt;
55145 idx = -1;
55146 break;
55147 }
55148 }
55149
55150 return rs;
55151};
55152var sanitizeText = function sanitizeText(text, config) {
55153 var txt = text;
55154 var htmlLabels = true;
55155
55156 if (config.flowchart && (config.flowchart.htmlLabels === false || config.flowchart.htmlLabels === 'false')) {
55157 htmlLabels = false;
55158 }
55159
55160 if (htmlLabels) {
55161 var level = config.securityLevel;
55162
55163 if (level === 'antiscript') {
55164 txt = removeScript(txt);
55165 } else if (level !== 'loose') {
55166 // eslint-disable-line
55167 txt = breakToPlaceholder(txt);
55168 txt = txt.replace(/</g, '&lt;').replace(/>/g, '&gt;');
55169 txt = txt.replace(/=/g, '&equals;');
55170 txt = placeholderToBreak(txt);
55171 }
55172 }
55173
55174 return txt;
55175};
55176var lineBreakRegex = /<br\s*\/?>/gi;
55177var hasBreaks = function hasBreaks(text) {
55178 return /<br\s*[/]?>/gi.test(text);
55179};
55180var splitBreaks = function splitBreaks(text) {
55181 return text.split(/<br\s*[/]?>/gi);
55182};
55183
55184var breakToPlaceholder = function breakToPlaceholder(s) {
55185 return s.replace(lineBreakRegex, '#br#');
55186};
55187
55188var placeholderToBreak = function placeholderToBreak(s) {
55189 return s.replace(/#br#/g, '<br/>');
55190};
55191
55192/* harmony default export */ __webpack_exports__["default"] = ({
55193 getRows: getRows,
55194 sanitizeText: sanitizeText,
55195 hasBreaks: hasBreaks,
55196 splitBreaks: splitBreaks,
55197 lineBreakRegex: lineBreakRegex,
55198 removeScript: removeScript
55199});
55200
55201/***/ }),
55202
55203/***/ "./src/diagrams/er/erDb.js":
55204/*!*********************************!*\
55205 !*** ./src/diagrams/er/erDb.js ***!
55206 \*********************************/
55207/*! exports provided: parseDirective, default */
55208/***/ (function(module, __webpack_exports__, __webpack_require__) {
55209
55210"use strict";
55211__webpack_require__.r(__webpack_exports__);
55212/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
55213/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
55214/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
55215/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
55216/**
55217 *
55218 */
55219
55220
55221
55222var entities = {};
55223var relationships = [];
55224var title = '';
55225var Cardinality = {
55226 ZERO_OR_ONE: 'ZERO_OR_ONE',
55227 ZERO_OR_MORE: 'ZERO_OR_MORE',
55228 ONE_OR_MORE: 'ONE_OR_MORE',
55229 ONLY_ONE: 'ONLY_ONE'
55230};
55231var Identification = {
55232 NON_IDENTIFYING: 'NON_IDENTIFYING',
55233 IDENTIFYING: 'IDENTIFYING'
55234};
55235var parseDirective = function parseDirective(statement, context, type) {
55236 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parseDirective(this, statement, context, type);
55237};
55238
55239var addEntity = function addEntity(name) {
55240 if (typeof entities[name] === 'undefined') {
55241 entities[name] = name;
55242 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Added new entity :', name);
55243 }
55244};
55245
55246var getEntities = function getEntities() {
55247 return entities;
55248};
55249/**
55250 * Add a relationship
55251 * @param entA The first entity in the relationship
55252 * @param rolA The role played by the first entity in relation to the second
55253 * @param entB The second entity in the relationship
55254 * @param rSpec The details of the relationship between the two entities
55255 */
55256
55257
55258var addRelationship = function addRelationship(entA, rolA, entB, rSpec) {
55259 var rel = {
55260 entityA: entA,
55261 roleA: rolA,
55262 entityB: entB,
55263 relSpec: rSpec
55264 };
55265 relationships.push(rel);
55266 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Added new relationship :', rel);
55267};
55268
55269var getRelationships = function getRelationships() {
55270 return relationships;
55271}; // Keep this - TODO: revisit...allow the diagram to have a title
55272
55273
55274var setTitle = function setTitle(txt) {
55275 title = txt;
55276};
55277
55278var getTitle = function getTitle() {
55279 return title;
55280};
55281
55282var clear = function clear() {
55283 entities = {};
55284 relationships = [];
55285 title = '';
55286};
55287
55288/* harmony default export */ __webpack_exports__["default"] = ({
55289 Cardinality: Cardinality,
55290 Identification: Identification,
55291 parseDirective: parseDirective,
55292 getConfig: function getConfig() {
55293 return _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]().er;
55294 },
55295 addEntity: addEntity,
55296 getEntities: getEntities,
55297 addRelationship: addRelationship,
55298 getRelationships: getRelationships,
55299 clear: clear,
55300 setTitle: setTitle,
55301 getTitle: getTitle
55302});
55303
55304/***/ }),
55305
55306/***/ "./src/diagrams/er/erMarkers.js":
55307/*!**************************************!*\
55308 !*** ./src/diagrams/er/erMarkers.js ***!
55309 \**************************************/
55310/*! exports provided: default */
55311/***/ (function(module, __webpack_exports__, __webpack_require__) {
55312
55313"use strict";
55314__webpack_require__.r(__webpack_exports__);
55315var ERMarkers = {
55316 ONLY_ONE_START: 'ONLY_ONE_START',
55317 ONLY_ONE_END: 'ONLY_ONE_END',
55318 ZERO_OR_ONE_START: 'ZERO_OR_ONE_START',
55319 ZERO_OR_ONE_END: 'ZERO_OR_ONE_END',
55320 ONE_OR_MORE_START: 'ONE_OR_MORE_START',
55321 ONE_OR_MORE_END: 'ONE_OR_MORE_END',
55322 ZERO_OR_MORE_START: 'ZERO_OR_MORE_START',
55323 ZERO_OR_MORE_END: 'ZERO_OR_MORE_END'
55324};
55325/**
55326 * Put the markers into the svg DOM for later use with edge paths
55327 */
55328
55329var insertMarkers = function insertMarkers(elem, conf) {
55330 var marker;
55331 elem.append('defs').append('marker').attr('id', ERMarkers.ONLY_ONE_START).attr('refX', 0).attr('refY', 9).attr('markerWidth', 18).attr('markerHeight', 18).attr('orient', 'auto').append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M9,0 L9,18 M15,0 L15,18');
55332 elem.append('defs').append('marker').attr('id', ERMarkers.ONLY_ONE_END).attr('refX', 18).attr('refY', 9).attr('markerWidth', 18).attr('markerHeight', 18).attr('orient', 'auto').append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M3,0 L3,18 M9,0 L9,18');
55333 marker = elem.append('defs').append('marker').attr('id', ERMarkers.ZERO_OR_ONE_START).attr('refX', 0).attr('refY', 9).attr('markerWidth', 30).attr('markerHeight', 18).attr('orient', 'auto');
55334 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 21).attr('cy', 9).attr('r', 6);
55335 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M9,0 L9,18');
55336 marker = elem.append('defs').append('marker').attr('id', ERMarkers.ZERO_OR_ONE_END).attr('refX', 30).attr('refY', 9).attr('markerWidth', 30).attr('markerHeight', 18).attr('orient', 'auto');
55337 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 9).attr('cy', 9).attr('r', 6);
55338 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M21,0 L21,18');
55339 elem.append('defs').append('marker').attr('id', ERMarkers.ONE_OR_MORE_START).attr('refX', 18).attr('refY', 18).attr('markerWidth', 45).attr('markerHeight', 36).attr('orient', 'auto').append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27');
55340 elem.append('defs').append('marker').attr('id', ERMarkers.ONE_OR_MORE_END).attr('refX', 27).attr('refY', 18).attr('markerWidth', 45).attr('markerHeight', 36).attr('orient', 'auto').append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18');
55341 marker = elem.append('defs').append('marker').attr('id', ERMarkers.ZERO_OR_MORE_START).attr('refX', 18).attr('refY', 18).attr('markerWidth', 57).attr('markerHeight', 36).attr('orient', 'auto');
55342 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 48).attr('cy', 18).attr('r', 6);
55343 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M0,18 Q18,0 36,18 Q18,36 0,18');
55344 marker = elem.append('defs').append('marker').attr('id', ERMarkers.ZERO_OR_MORE_END).attr('refX', 39).attr('refY', 18).attr('markerWidth', 57).attr('markerHeight', 36).attr('orient', 'auto');
55345 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 9).attr('cy', 18).attr('r', 6);
55346 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M21,18 Q39,0 57,18 Q39,36 21,18');
55347 return;
55348};
55349
55350/* harmony default export */ __webpack_exports__["default"] = ({
55351 ERMarkers: ERMarkers,
55352 insertMarkers: insertMarkers
55353});
55354
55355/***/ }),
55356
55357/***/ "./src/diagrams/er/erRenderer.js":
55358/*!***************************************!*\
55359 !*** ./src/diagrams/er/erRenderer.js ***!
55360 \***************************************/
55361/*! exports provided: setConf, draw, default */
55362/***/ (function(module, __webpack_exports__, __webpack_require__) {
55363
55364"use strict";
55365__webpack_require__.r(__webpack_exports__);
55366/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
55367/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
55368/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
55369/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
55370/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
55371/* harmony import */ var _erDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./erDb */ "./src/diagrams/er/erDb.js");
55372/* harmony import */ var _parser_erDiagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/erDiagram */ "./src/diagrams/er/parser/erDiagram.jison");
55373/* harmony import */ var _parser_erDiagram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_erDiagram__WEBPACK_IMPORTED_MODULE_3__);
55374/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
55375/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_4__);
55376/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config */ "./src/config.js");
55377/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
55378/* harmony import */ var _erMarkers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./erMarkers */ "./src/diagrams/er/erMarkers.js");
55379/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
55380
55381
55382
55383
55384
55385
55386
55387
55388
55389var conf = {};
55390/**
55391 * Allows the top-level API module to inject config specific to this renderer,
55392 * storing it in the local conf object. Note that generic config still needs to be
55393 * retrieved using getConfig() imported from the config module
55394 */
55395
55396var setConf = function setConf(cnf) {
55397 var keys = Object.keys(cnf);
55398
55399 for (var i = 0; i < keys.length; i++) {
55400 conf[keys[i]] = cnf[keys[i]];
55401 }
55402};
55403/**
55404 * Use D3 to construct the svg elements for the entities
55405 * @param svgNode the svg node that contains the diagram
55406 * @param entities The entities to be drawn
55407 * @param graph The graph that contains the vertex and edge definitions post-layout
55408 * @return The first entity that was inserted
55409 */
55410
55411var drawEntities = function drawEntities(svgNode, entities, graph) {
55412 var keys = Object.keys(entities);
55413 var firstOne;
55414 keys.forEach(function (id) {
55415 // Create a group for each entity
55416 var groupNode = svgNode.append('g').attr('id', id);
55417 firstOne = firstOne === undefined ? id : firstOne; // Label the entity - this is done first so that we can get the bounding box
55418 // which then determines the size of the rectangle
55419
55420 var textId = 'entity-' + id;
55421 var textNode = groupNode.append('text').attr('class', 'er entityLabel').attr('id', textId).attr('x', 0).attr('y', 0).attr('dominant-baseline', 'middle').attr('text-anchor', 'middle').attr('style', 'font-family: ' + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().fontFamily + '; font-size: ' + conf.fontSize + 'px').text(id); // Calculate the width and height of the entity
55422
55423 var textBBox = textNode.node().getBBox();
55424 var entityWidth = Math.max(conf.minEntityWidth, textBBox.width + conf.entityPadding * 2);
55425 var entityHeight = Math.max(conf.minEntityHeight, textBBox.height + conf.entityPadding * 2); // Make sure the text gets centred relative to the entity box
55426
55427 textNode.attr('transform', 'translate(' + entityWidth / 2 + ',' + entityHeight / 2 + ')'); // Draw the rectangle - insert it before the text so that the text is not obscured
55428
55429 var rectNode = groupNode.insert('rect', '#' + textId).attr('class', 'er entityBox').attr('fill', conf.fill).attr('fill-opacity', '100%').attr('stroke', conf.stroke).attr('x', 0).attr('y', 0).attr('width', entityWidth).attr('height', entityHeight);
55430 var rectBBox = rectNode.node().getBBox(); // Add the entity to the graph
55431
55432 graph.setNode(id, {
55433 width: rectBBox.width,
55434 height: rectBBox.height,
55435 shape: 'rect',
55436 id: id
55437 });
55438 });
55439 return firstOne;
55440}; // drawEntities
55441
55442
55443var adjustEntities = function adjustEntities(svgNode, graph) {
55444 graph.nodes().forEach(function (v) {
55445 if (typeof v !== 'undefined' && typeof graph.node(v) !== 'undefined') {
55446 svgNode.select('#' + v).attr('transform', 'translate(' + (graph.node(v).x - graph.node(v).width / 2) + ',' + (graph.node(v).y - graph.node(v).height / 2) + ' )');
55447 }
55448 });
55449 return;
55450};
55451
55452var getEdgeName = function getEdgeName(rel) {
55453 return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, '');
55454};
55455/**
55456 * Add each relationship to the graph
55457 * @param relationships the relationships to be added
55458 * @param g the graph
55459 * @return {Array} The array of relationships
55460 */
55461
55462
55463var addRelationships = function addRelationships(relationships, g) {
55464 relationships.forEach(function (r) {
55465 g.setEdge(r.entityA, r.entityB, {
55466 relationship: r
55467 }, getEdgeName(r));
55468 });
55469 return relationships;
55470}; // addRelationships
55471
55472
55473var relCnt = 0;
55474/**
55475 * Draw a relationship using edge information from the graph
55476 * @param svg the svg node
55477 * @param rel the relationship to draw in the svg
55478 * @param g the graph containing the edge information
55479 * @param insert the insertion point in the svg DOM (because relationships have markers that need to sit 'behind' opaque entity boxes)
55480 */
55481
55482var drawRelationshipFromLayout = function drawRelationshipFromLayout(svg, rel, g, insert) {
55483 relCnt++; // Find the edge relating to this relationship
55484
55485 var edge = g.edge(rel.entityA, rel.entityB, getEdgeName(rel)); // Get a function that will generate the line path
55486
55487 var lineFunction = Object(d3__WEBPACK_IMPORTED_MODULE_1__["line"])().x(function (d) {
55488 return d.x;
55489 }).y(function (d) {
55490 return d.y;
55491 }).curve(d3__WEBPACK_IMPORTED_MODULE_1__["curveBasis"]); // Insert the line at the right place
55492
55493 var svgPath = svg.insert('path', '#' + insert).attr('class', 'er relationshipLine').attr('d', lineFunction(edge.points)).attr('stroke', conf.stroke).attr('fill', 'none'); // ...and with dashes if necessary
55494
55495 if (rel.relSpec.relType === _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Identification.NON_IDENTIFYING) {
55496 svgPath.attr('stroke-dasharray', '8,8');
55497 } // TODO: Understand this better
55498
55499
55500 var url = '';
55501
55502 if (conf.arrowMarkerAbsolute) {
55503 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
55504 url = url.replace(/\(/g, '\\(');
55505 url = url.replace(/\)/g, '\\)');
55506 } // Decide which start and end markers it needs. It may be possible to be more concise here
55507 // by reversing a start marker to make an end marker...but this will do for now
55508 // Note that the 'A' entity's marker is at the end of the relationship and the 'B' entity's marker is at the start
55509
55510
55511 switch (rel.relSpec.cardA) {
55512 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ZERO_OR_ONE:
55513 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ZERO_OR_ONE_END + ')');
55514 break;
55515
55516 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ZERO_OR_MORE:
55517 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ZERO_OR_MORE_END + ')');
55518 break;
55519
55520 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ONE_OR_MORE:
55521 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ONE_OR_MORE_END + ')');
55522 break;
55523
55524 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ONLY_ONE:
55525 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ONLY_ONE_END + ')');
55526 break;
55527 }
55528
55529 switch (rel.relSpec.cardB) {
55530 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ZERO_OR_ONE:
55531 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ZERO_OR_ONE_START + ')');
55532 break;
55533
55534 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ZERO_OR_MORE:
55535 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ZERO_OR_MORE_START + ')');
55536 break;
55537
55538 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ONE_OR_MORE:
55539 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ONE_OR_MORE_START + ')');
55540 break;
55541
55542 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ONLY_ONE:
55543 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ONLY_ONE_START + ')');
55544 break;
55545 } // Now label the relationship
55546 // Find the half-way point
55547
55548
55549 var len = svgPath.node().getTotalLength();
55550 var labelPoint = svgPath.node().getPointAtLength(len * 0.5); // Append a text node containing the label
55551
55552 var labelId = 'rel' + relCnt;
55553 var labelNode = svg.append('text').attr('class', 'er relationshipLabel').attr('id', labelId).attr('x', labelPoint.x).attr('y', labelPoint.y).attr('text-anchor', 'middle').attr('dominant-baseline', 'middle').attr('style', 'font-family: ' + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().fontFamily + '; font-size: ' + conf.fontSize + 'px').text(rel.roleA); // Figure out how big the opaque 'container' rectangle needs to be
55554
55555 var labelBBox = labelNode.node().getBBox(); // Insert the opaque rectangle before the text label
55556
55557 svg.insert('rect', '#' + labelId).attr('class', 'er relationshipLabelBox').attr('x', labelPoint.x - labelBBox.width / 2).attr('y', labelPoint.y - labelBBox.height / 2).attr('width', labelBBox.width).attr('height', labelBBox.height).attr('fill', 'white').attr('fill-opacity', '85%');
55558 return;
55559};
55560/**
55561 * Draw en E-R diagram in the tag with id: id based on the text definition of the diagram
55562 * @param text the text of the diagram
55563 * @param id the unique id of the DOM node that contains the diagram
55564 */
55565
55566
55567var draw = function draw(text, id) {
55568 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Drawing ER diagram');
55569 _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
55570 var parser = _parser_erDiagram__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
55571 parser.yy = _erDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the text to populate erDb
55572
55573 try {
55574 parser.parse(text);
55575 } catch (err) {
55576 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].debug('Parsing failed');
55577 } // Get a reference to the svg node that contains the text
55578
55579
55580 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id='".concat(id, "']")); // Add cardinality marker definitions to the svg
55581
55582 _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].insertMarkers(svg, conf); // Now we have to construct the diagram in a specific way:
55583 // ---
55584 // 1. Create all the entities in the svg node at 0,0, but with the correct dimensions (allowing for text content)
55585 // 2. Make sure they are all added to the graph
55586 // 3. Add all the edges (relationships) to the graph aswell
55587 // 4. Let dagre do its magic to layout the graph. This assigns:
55588 // - the centre co-ordinates for each node, bearing in mind the dimensions and edge relationships
55589 // - the path co-ordinates for each edge
55590 // But it has no impact on the svg child nodes - the diagram remains with every entity rooted at 0,0
55591 // 5. Now assign a transform to each entity in the svg node so that it gets drawn in the correct place, as determined by
55592 // its centre point, which is obtained from the graph, and it's width and height
55593 // 6. And finally, create all the edges in the svg node using information from the graph
55594 // ---
55595 // Create the graph
55596
55597 var g; // TODO: Explore directed vs undirected graphs, and how the layout is affected
55598 // An E-R diagram could be said to be undirected, but there is merit in setting
55599 // the direction from parent to child in a one-to-many as this influences graphlib to
55600 // put the parent above the child (does it?), which is intuitive. Most relationships
55601 // in ER diagrams are one-to-many.
55602
55603 g = new graphlib__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
55604 multigraph: true,
55605 directed: true,
55606 compound: false
55607 }).setGraph({
55608 rankdir: conf.layoutDirection,
55609 marginx: 20,
55610 marginy: 20,
55611 nodesep: 100,
55612 edgesep: 100,
55613 ranksep: 100
55614 }).setDefaultEdgeLabel(function () {
55615 return {};
55616 }); // Draw the entities (at 0,0), returning the first svg node that got
55617 // inserted - this represents the insertion point for relationship paths
55618
55619 var firstEntity = drawEntities(svg, _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].getEntities(), g); // TODO: externalise the addition of entities to the graph - it's a bit 'buried' in the above
55620 // Add all the relationships to the graph
55621
55622 var relationships = addRelationships(_erDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRelationships(), g);
55623 dagre__WEBPACK_IMPORTED_MODULE_4___default.a.layout(g); // Node and edge positions will be updated
55624 // Adjust the positions of the entities so that they adhere to the layout
55625
55626 adjustEntities(svg, g); // Draw the relationships
55627
55628 relationships.forEach(function (rel) {
55629 drawRelationshipFromLayout(svg, rel, g, firstEntity);
55630 });
55631 var padding = conf.diagramPadding;
55632 var svgBounds = svg.node().getBBox();
55633 var width = svgBounds.width + padding * 2;
55634 var height = svgBounds.height + padding * 2;
55635 Object(_utils__WEBPACK_IMPORTED_MODULE_8__["configureSvgSize"])(svg, height, width, conf.useMaxWidth);
55636 svg.attr('viewBox', "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height));
55637}; // draw
55638
55639/* harmony default export */ __webpack_exports__["default"] = ({
55640 setConf: setConf,
55641 draw: draw
55642});
55643
55644/***/ }),
55645
55646/***/ "./src/diagrams/er/parser/erDiagram.jison":
55647/*!************************************************!*\
55648 !*** ./src/diagrams/er/parser/erDiagram.jison ***!
55649 \************************************************/
55650/*! no static exports found */
55651/***/ (function(module, exports, __webpack_require__) {
55652
55653/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
55654/*
55655 Returns a Parser object of the following structure:
55656
55657 Parser: {
55658 yy: {}
55659 }
55660
55661 Parser.prototype: {
55662 yy: {},
55663 trace: function(),
55664 symbols_: {associative list: name ==> number},
55665 terminals_: {associative list: number ==> name},
55666 productions_: [...],
55667 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
55668 table: [...],
55669 defaultActions: {...},
55670 parseError: function(str, hash),
55671 parse: function(input),
55672
55673 lexer: {
55674 EOF: 1,
55675 parseError: function(str, hash),
55676 setInput: function(input),
55677 input: function(),
55678 unput: function(str),
55679 more: function(),
55680 less: function(n),
55681 pastInput: function(),
55682 upcomingInput: function(),
55683 showPosition: function(),
55684 test_match: function(regex_match_array, rule_index),
55685 next: function(),
55686 lex: function(),
55687 begin: function(condition),
55688 popState: function(),
55689 _currentRules: function(),
55690 topState: function(),
55691 pushState: function(condition),
55692
55693 options: {
55694 ranges: boolean (optional: true ==> token location info will include a .range[] member)
55695 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
55696 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)
55697 },
55698
55699 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
55700 rules: [...],
55701 conditions: {associative list: name ==> set},
55702 }
55703 }
55704
55705
55706 token location info (@$, _$, etc.): {
55707 first_line: n,
55708 last_line: n,
55709 first_column: n,
55710 last_column: n,
55711 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
55712 }
55713
55714
55715 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
55716 text: (matched text)
55717 token: (the produced terminal token, if any)
55718 line: (yylineno)
55719 }
55720 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
55721 loc: (yylloc)
55722 expected: (string describing the set of expected tokens)
55723 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
55724 }
55725*/
55726var parser = (function(){
55727var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,20,30],$V3=[1,17],$V4=[1,20],$V5=[1,24],$V6=[1,25],$V7=[1,26],$V8=[1,27],$V9=[20,27,28],$Va=[4,6,9,11,20,30],$Vb=[23,24,25,26];
55728var parser = {trace: function trace () { },
55729yy: {},
55730symbols_: {"error":2,"start":3,"ER_DIAGRAM":4,"document":5,"EOF":6,"directive":7,"line":8,"SPACE":9,"statement":10,"NEWLINE":11,"openDirective":12,"typeDirective":13,"closeDirective":14,":":15,"argDirective":16,"entityName":17,"relSpec":18,"role":19,"ALPHANUM":20,"cardinality":21,"relType":22,"ZERO_OR_ONE":23,"ZERO_OR_MORE":24,"ONE_OR_MORE":25,"ONLY_ONE":26,"NON_IDENTIFYING":27,"IDENTIFYING":28,"WORD":29,"open_directive":30,"type_directive":31,"arg_directive":32,"close_directive":33,"$accept":0,"$end":1},
55731terminals_: {2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"ALPHANUM",23:"ZERO_OR_ONE",24:"ZERO_OR_MORE",25:"ONE_OR_MORE",26:"ONLY_ONE",27:"NON_IDENTIFYING",28:"IDENTIFYING",29:"WORD",30:"open_directive",31:"type_directive",32:"arg_directive",33:"close_directive"},
55732productions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,1],[17,1],[18,3],[21,1],[21,1],[21,1],[21,1],[22,1],[22,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],
55733performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
55734/* this == yyval */
55735
55736var $0 = $$.length - 1;
55737switch (yystate) {
55738case 1:
55739 /*console.log('finished parsing');*/
55740break;
55741case 3:
55742 this.$ = []
55743break;
55744case 4:
55745$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
55746break;
55747case 5: case 6:
55748 this.$ = $$[$0]
55749break;
55750case 7: case 8:
55751 this.$=[];
55752break;
55753case 12:
55754
55755 yy.addEntity($$[$0-4]);
55756 yy.addEntity($$[$0-2]);
55757 yy.addRelationship($$[$0-4], $$[$0], $$[$0-2], $$[$0-3]);
55758 /*console.log($$[$0-4] + $$[$0-3] + $$[$0-2] + ':' + $$[$0]);*/
55759
55760break;
55761case 13:
55762 yy.addEntity($$[$0]);
55763break;
55764case 14:
55765 this.$ = $$[$0]; /*console.log('Entity: ' + $$[$0]);*/
55766break;
55767case 15:
55768
55769 this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };
55770 /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/
55771
55772break;
55773case 16:
55774 this.$ = yy.Cardinality.ZERO_OR_ONE;
55775break;
55776case 17:
55777 this.$ = yy.Cardinality.ZERO_OR_MORE;
55778break;
55779case 18:
55780 this.$ = yy.Cardinality.ONE_OR_MORE;
55781break;
55782case 19:
55783 this.$ = yy.Cardinality.ONLY_ONE;
55784break;
55785case 20:
55786 this.$ = yy.Identification.NON_IDENTIFYING;
55787break;
55788case 21:
55789 this.$ = yy.Identification.IDENTIFYING;
55790break;
55791case 22:
55792 this.$ = $$[$0].replace(/"/g, '');
55793break;
55794case 23:
55795 this.$ = $$[$0];
55796break;
55797case 24:
55798 yy.parseDirective('%%{', 'open_directive');
55799break;
55800case 25:
55801 yy.parseDirective($$[$0], 'type_directive');
55802break;
55803case 26:
55804 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
55805break;
55806case 27:
55807 yy.parseDirective('}%%', 'close_directive', 'er');
55808break;
55809}
55810},
55811table: [{3:1,4:$V0,7:3,12:4,30:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,30:$V1},{13:8,31:[1,9]},{31:[2,24]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,20:$V3,30:$V1},{1:[2,2]},{14:18,15:[1,19],33:$V4},o([15,33],[2,25]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:15,10:21,12:4,17:16,20:$V3,30:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,13],{18:22,21:23,23:$V5,24:$V6,25:$V7,26:$V8}),o([6,9,11,15,20,23,24,25,26,30],[2,14]),{11:[1,28]},{16:29,32:[1,30]},{11:[2,27]},o($V2,[2,5]),{17:31,20:$V3},{22:32,27:[1,33],28:[1,34]},o($V9,[2,16]),o($V9,[2,17]),o($V9,[2,18]),o($V9,[2,19]),o($Va,[2,9]),{14:35,33:$V4},{33:[2,26]},{15:[1,36]},{21:37,23:$V5,24:$V6,25:$V7,26:$V8},o($Vb,[2,20]),o($Vb,[2,21]),{11:[1,38]},{19:39,20:[1,41],29:[1,40]},{20:[2,15]},o($Va,[2,10]),o($V2,[2,12]),o($V2,[2,22]),o($V2,[2,23])],
55812defaultActions: {5:[2,24],7:[2,2],20:[2,27],30:[2,26],37:[2,15]},
55813parseError: function parseError (str, hash) {
55814 if (hash.recoverable) {
55815 this.trace(str);
55816 } else {
55817 var error = new Error(str);
55818 error.hash = hash;
55819 throw error;
55820 }
55821},
55822parse: function parse(input) {
55823 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
55824 var args = lstack.slice.call(arguments, 1);
55825 var lexer = Object.create(this.lexer);
55826 var sharedState = { yy: {} };
55827 for (var k in this.yy) {
55828 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
55829 sharedState.yy[k] = this.yy[k];
55830 }
55831 }
55832 lexer.setInput(input, sharedState.yy);
55833 sharedState.yy.lexer = lexer;
55834 sharedState.yy.parser = this;
55835 if (typeof lexer.yylloc == 'undefined') {
55836 lexer.yylloc = {};
55837 }
55838 var yyloc = lexer.yylloc;
55839 lstack.push(yyloc);
55840 var ranges = lexer.options && lexer.options.ranges;
55841 if (typeof sharedState.yy.parseError === 'function') {
55842 this.parseError = sharedState.yy.parseError;
55843 } else {
55844 this.parseError = Object.getPrototypeOf(this).parseError;
55845 }
55846 function popStack(n) {
55847 stack.length = stack.length - 2 * n;
55848 vstack.length = vstack.length - n;
55849 lstack.length = lstack.length - n;
55850 }
55851 function lex() {
55852 var token;
55853 token = tstack.pop() || lexer.lex() || EOF;
55854 if (typeof token !== 'number') {
55855 if (token instanceof Array) {
55856 tstack = token;
55857 token = tstack.pop();
55858 }
55859 token = self.symbols_[token] || token;
55860 }
55861 return token;
55862 }
55863 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
55864 while (true) {
55865 state = stack[stack.length - 1];
55866 if (this.defaultActions[state]) {
55867 action = this.defaultActions[state];
55868 } else {
55869 if (symbol === null || typeof symbol == 'undefined') {
55870 symbol = lex();
55871 }
55872 action = table[state] && table[state][symbol];
55873 }
55874 if (typeof action === 'undefined' || !action.length || !action[0]) {
55875 var errStr = '';
55876 expected = [];
55877 for (p in table[state]) {
55878 if (this.terminals_[p] && p > TERROR) {
55879 expected.push('\'' + this.terminals_[p] + '\'');
55880 }
55881 }
55882 if (lexer.showPosition) {
55883 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
55884 } else {
55885 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
55886 }
55887 this.parseError(errStr, {
55888 text: lexer.match,
55889 token: this.terminals_[symbol] || symbol,
55890 line: lexer.yylineno,
55891 loc: yyloc,
55892 expected: expected
55893 });
55894 }
55895 if (action[0] instanceof Array && action.length > 1) {
55896 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
55897 }
55898 switch (action[0]) {
55899 case 1:
55900 stack.push(symbol);
55901 vstack.push(lexer.yytext);
55902 lstack.push(lexer.yylloc);
55903 stack.push(action[1]);
55904 symbol = null;
55905 if (!preErrorSymbol) {
55906 yyleng = lexer.yyleng;
55907 yytext = lexer.yytext;
55908 yylineno = lexer.yylineno;
55909 yyloc = lexer.yylloc;
55910 if (recovering > 0) {
55911 recovering--;
55912 }
55913 } else {
55914 symbol = preErrorSymbol;
55915 preErrorSymbol = null;
55916 }
55917 break;
55918 case 2:
55919 len = this.productions_[action[1]][1];
55920 yyval.$ = vstack[vstack.length - len];
55921 yyval._$ = {
55922 first_line: lstack[lstack.length - (len || 1)].first_line,
55923 last_line: lstack[lstack.length - 1].last_line,
55924 first_column: lstack[lstack.length - (len || 1)].first_column,
55925 last_column: lstack[lstack.length - 1].last_column
55926 };
55927 if (ranges) {
55928 yyval._$.range = [
55929 lstack[lstack.length - (len || 1)].range[0],
55930 lstack[lstack.length - 1].range[1]
55931 ];
55932 }
55933 r = this.performAction.apply(yyval, [
55934 yytext,
55935 yyleng,
55936 yylineno,
55937 sharedState.yy,
55938 action[1],
55939 vstack,
55940 lstack
55941 ].concat(args));
55942 if (typeof r !== 'undefined') {
55943 return r;
55944 }
55945 if (len) {
55946 stack = stack.slice(0, -1 * len * 2);
55947 vstack = vstack.slice(0, -1 * len);
55948 lstack = lstack.slice(0, -1 * len);
55949 }
55950 stack.push(this.productions_[action[1]][0]);
55951 vstack.push(yyval.$);
55952 lstack.push(yyval._$);
55953 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
55954 stack.push(newState);
55955 break;
55956 case 3:
55957 return true;
55958 }
55959 }
55960 return true;
55961}};
55962
55963/* generated by jison-lex 0.3.4 */
55964var lexer = (function(){
55965var lexer = ({
55966
55967EOF:1,
55968
55969parseError:function parseError(str, hash) {
55970 if (this.yy.parser) {
55971 this.yy.parser.parseError(str, hash);
55972 } else {
55973 throw new Error(str);
55974 }
55975 },
55976
55977// resets the lexer, sets new input
55978setInput:function (input, yy) {
55979 this.yy = yy || this.yy || {};
55980 this._input = input;
55981 this._more = this._backtrack = this.done = false;
55982 this.yylineno = this.yyleng = 0;
55983 this.yytext = this.matched = this.match = '';
55984 this.conditionStack = ['INITIAL'];
55985 this.yylloc = {
55986 first_line: 1,
55987 first_column: 0,
55988 last_line: 1,
55989 last_column: 0
55990 };
55991 if (this.options.ranges) {
55992 this.yylloc.range = [0,0];
55993 }
55994 this.offset = 0;
55995 return this;
55996 },
55997
55998// consumes and returns one char from the input
55999input:function () {
56000 var ch = this._input[0];
56001 this.yytext += ch;
56002 this.yyleng++;
56003 this.offset++;
56004 this.match += ch;
56005 this.matched += ch;
56006 var lines = ch.match(/(?:\r\n?|\n).*/g);
56007 if (lines) {
56008 this.yylineno++;
56009 this.yylloc.last_line++;
56010 } else {
56011 this.yylloc.last_column++;
56012 }
56013 if (this.options.ranges) {
56014 this.yylloc.range[1]++;
56015 }
56016
56017 this._input = this._input.slice(1);
56018 return ch;
56019 },
56020
56021// unshifts one char (or a string) into the input
56022unput:function (ch) {
56023 var len = ch.length;
56024 var lines = ch.split(/(?:\r\n?|\n)/g);
56025
56026 this._input = ch + this._input;
56027 this.yytext = this.yytext.substr(0, this.yytext.length - len);
56028 //this.yyleng -= len;
56029 this.offset -= len;
56030 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
56031 this.match = this.match.substr(0, this.match.length - 1);
56032 this.matched = this.matched.substr(0, this.matched.length - 1);
56033
56034 if (lines.length - 1) {
56035 this.yylineno -= lines.length - 1;
56036 }
56037 var r = this.yylloc.range;
56038
56039 this.yylloc = {
56040 first_line: this.yylloc.first_line,
56041 last_line: this.yylineno + 1,
56042 first_column: this.yylloc.first_column,
56043 last_column: lines ?
56044 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
56045 + oldLines[oldLines.length - lines.length].length - lines[0].length :
56046 this.yylloc.first_column - len
56047 };
56048
56049 if (this.options.ranges) {
56050 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
56051 }
56052 this.yyleng = this.yytext.length;
56053 return this;
56054 },
56055
56056// When called from action, caches matched text and appends it on next action
56057more:function () {
56058 this._more = true;
56059 return this;
56060 },
56061
56062// 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.
56063reject:function () {
56064 if (this.options.backtrack_lexer) {
56065 this._backtrack = true;
56066 } else {
56067 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(), {
56068 text: "",
56069 token: null,
56070 line: this.yylineno
56071 });
56072
56073 }
56074 return this;
56075 },
56076
56077// retain first n characters of the match
56078less:function (n) {
56079 this.unput(this.match.slice(n));
56080 },
56081
56082// displays already matched input, i.e. for error messages
56083pastInput:function () {
56084 var past = this.matched.substr(0, this.matched.length - this.match.length);
56085 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
56086 },
56087
56088// displays upcoming input, i.e. for error messages
56089upcomingInput:function () {
56090 var next = this.match;
56091 if (next.length < 20) {
56092 next += this._input.substr(0, 20-next.length);
56093 }
56094 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
56095 },
56096
56097// displays the character position where the lexing error occurred, i.e. for error messages
56098showPosition:function () {
56099 var pre = this.pastInput();
56100 var c = new Array(pre.length + 1).join("-");
56101 return pre + this.upcomingInput() + "\n" + c + "^";
56102 },
56103
56104// test the lexed token: return FALSE when not a match, otherwise return token
56105test_match:function(match, indexed_rule) {
56106 var token,
56107 lines,
56108 backup;
56109
56110 if (this.options.backtrack_lexer) {
56111 // save context
56112 backup = {
56113 yylineno: this.yylineno,
56114 yylloc: {
56115 first_line: this.yylloc.first_line,
56116 last_line: this.last_line,
56117 first_column: this.yylloc.first_column,
56118 last_column: this.yylloc.last_column
56119 },
56120 yytext: this.yytext,
56121 match: this.match,
56122 matches: this.matches,
56123 matched: this.matched,
56124 yyleng: this.yyleng,
56125 offset: this.offset,
56126 _more: this._more,
56127 _input: this._input,
56128 yy: this.yy,
56129 conditionStack: this.conditionStack.slice(0),
56130 done: this.done
56131 };
56132 if (this.options.ranges) {
56133 backup.yylloc.range = this.yylloc.range.slice(0);
56134 }
56135 }
56136
56137 lines = match[0].match(/(?:\r\n?|\n).*/g);
56138 if (lines) {
56139 this.yylineno += lines.length;
56140 }
56141 this.yylloc = {
56142 first_line: this.yylloc.last_line,
56143 last_line: this.yylineno + 1,
56144 first_column: this.yylloc.last_column,
56145 last_column: lines ?
56146 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
56147 this.yylloc.last_column + match[0].length
56148 };
56149 this.yytext += match[0];
56150 this.match += match[0];
56151 this.matches = match;
56152 this.yyleng = this.yytext.length;
56153 if (this.options.ranges) {
56154 this.yylloc.range = [this.offset, this.offset += this.yyleng];
56155 }
56156 this._more = false;
56157 this._backtrack = false;
56158 this._input = this._input.slice(match[0].length);
56159 this.matched += match[0];
56160 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
56161 if (this.done && this._input) {
56162 this.done = false;
56163 }
56164 if (token) {
56165 return token;
56166 } else if (this._backtrack) {
56167 // recover context
56168 for (var k in backup) {
56169 this[k] = backup[k];
56170 }
56171 return false; // rule action called reject() implying the next rule should be tested instead.
56172 }
56173 return false;
56174 },
56175
56176// return next match in input
56177next:function () {
56178 if (this.done) {
56179 return this.EOF;
56180 }
56181 if (!this._input) {
56182 this.done = true;
56183 }
56184
56185 var token,
56186 match,
56187 tempMatch,
56188 index;
56189 if (!this._more) {
56190 this.yytext = '';
56191 this.match = '';
56192 }
56193 var rules = this._currentRules();
56194 for (var i = 0; i < rules.length; i++) {
56195 tempMatch = this._input.match(this.rules[rules[i]]);
56196 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
56197 match = tempMatch;
56198 index = i;
56199 if (this.options.backtrack_lexer) {
56200 token = this.test_match(tempMatch, rules[i]);
56201 if (token !== false) {
56202 return token;
56203 } else if (this._backtrack) {
56204 match = false;
56205 continue; // rule action called reject() implying a rule MISmatch.
56206 } else {
56207 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
56208 return false;
56209 }
56210 } else if (!this.options.flex) {
56211 break;
56212 }
56213 }
56214 }
56215 if (match) {
56216 token = this.test_match(match, rules[index]);
56217 if (token !== false) {
56218 return token;
56219 }
56220 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
56221 return false;
56222 }
56223 if (this._input === "") {
56224 return this.EOF;
56225 } else {
56226 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
56227 text: "",
56228 token: null,
56229 line: this.yylineno
56230 });
56231 }
56232 },
56233
56234// return next match that has a token
56235lex:function lex () {
56236 var r = this.next();
56237 if (r) {
56238 return r;
56239 } else {
56240 return this.lex();
56241 }
56242 },
56243
56244// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
56245begin:function begin (condition) {
56246 this.conditionStack.push(condition);
56247 },
56248
56249// pop the previously active lexer condition state off the condition stack
56250popState:function popState () {
56251 var n = this.conditionStack.length - 1;
56252 if (n > 0) {
56253 return this.conditionStack.pop();
56254 } else {
56255 return this.conditionStack[0];
56256 }
56257 },
56258
56259// produce the lexer rule set which is active for the currently active lexer condition state
56260_currentRules:function _currentRules () {
56261 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
56262 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
56263 } else {
56264 return this.conditions["INITIAL"].rules;
56265 }
56266 },
56267
56268// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
56269topState:function topState (n) {
56270 n = this.conditionStack.length - 1 - Math.abs(n || 0);
56271 if (n >= 0) {
56272 return this.conditionStack[n];
56273 } else {
56274 return "INITIAL";
56275 }
56276 },
56277
56278// alias for begin(condition)
56279pushState:function pushState (condition) {
56280 this.begin(condition);
56281 },
56282
56283// return the number of states currently on the stack
56284stateStackSize:function stateStackSize() {
56285 return this.conditionStack.length;
56286 },
56287options: {"case-insensitive":true},
56288performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
56289var YYSTATE=YY_START;
56290switch($avoiding_name_collisions) {
56291case 0: this.begin('open_directive'); return 30;
56292break;
56293case 1: this.begin('type_directive'); return 31;
56294break;
56295case 2: this.popState(); this.begin('arg_directive'); return 15;
56296break;
56297case 3: this.popState(); this.popState(); return 33;
56298break;
56299case 4:return 32;
56300break;
56301case 5:/* skip comments */
56302break;
56303case 6:/* skip comments */
56304break;
56305case 7:return 11;
56306break;
56307case 8:/* skip whitespace */
56308break;
56309case 9:return 9;
56310break;
56311case 10:return 29;
56312break;
56313case 11:return 4;
56314break;
56315case 12:return 23;
56316break;
56317case 13:return 24;
56318break;
56319case 14:return 25;
56320break;
56321case 15:return 26;
56322break;
56323case 16:return 23;
56324break;
56325case 17:return 24;
56326break;
56327case 18:return 25;
56328break;
56329case 19:return 27;
56330break;
56331case 20:return 28;
56332break;
56333case 21:return 27;
56334break;
56335case 22:return 27;
56336break;
56337case 23:return 20;
56338break;
56339case 24:return yy_.yytext[0];
56340break;
56341case 25:return 6;
56342break;
56343}
56344},
56345rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\|o\b)/i,/^(?:\}o\b)/i,/^(?:\}\|)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],
56346conditions: {"open_directive":{"rules":[1],"inclusive":false},"type_directive":{"rules":[2,3],"inclusive":false},"arg_directive":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],"inclusive":true}}
56347});
56348return lexer;
56349})();
56350parser.lexer = lexer;
56351function Parser () {
56352 this.yy = {};
56353}
56354Parser.prototype = parser;parser.Parser = Parser;
56355return new Parser;
56356})();
56357
56358
56359if (true) {
56360exports.parser = parser;
56361exports.Parser = parser.Parser;
56362exports.parse = function () { return parser.parse.apply(parser, arguments); };
56363exports.main = function commonjsMain (args) {
56364 if (!args[1]) {
56365 console.log('Usage: '+args[0]+' FILE');
56366 process.exit(1);
56367 }
56368 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");
56369 return exports.parser.parse(source);
56370};
56371if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
56372 exports.main(process.argv.slice(1));
56373}
56374}
56375/* 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)))
56376
56377/***/ }),
56378
56379/***/ "./src/diagrams/er/styles.js":
56380/*!***********************************!*\
56381 !*** ./src/diagrams/er/styles.js ***!
56382 \***********************************/
56383/*! exports provided: default */
56384/***/ (function(module, __webpack_exports__, __webpack_require__) {
56385
56386"use strict";
56387__webpack_require__.r(__webpack_exports__);
56388var getStyles = function getStyles(options) {
56389 return "\n .entityBox {\n fill: ".concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n }\n\n .relationshipLabelBox {\n fill: ").concat(options.tertiaryColor, ";\n opacity: 0.7;\n background-color: ").concat(options.tertiaryColor, ";\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ").concat(options.lineColor, ";\n }\n");
56390};
56391
56392/* harmony default export */ __webpack_exports__["default"] = (getStyles);
56393
56394/***/ }),
56395
56396/***/ "./src/diagrams/flowchart/flowChartShapes.js":
56397/*!***************************************************!*\
56398 !*** ./src/diagrams/flowchart/flowChartShapes.js ***!
56399 \***************************************************/
56400/*! exports provided: addToRender, addToRenderV2, default */
56401/***/ (function(module, __webpack_exports__, __webpack_require__) {
56402
56403"use strict";
56404__webpack_require__.r(__webpack_exports__);
56405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addToRender", function() { return addToRender; });
56406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addToRenderV2", function() { return addToRenderV2; });
56407/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dagre-d3 */ "./node_modules/dagre-d3/index.js");
56408/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_0__);
56409
56410
56411function question(parent, bbox, node) {
56412 var w = bbox.width;
56413 var h = bbox.height;
56414 var s = (w + h) * 0.9;
56415 var points = [{
56416 x: s / 2,
56417 y: 0
56418 }, {
56419 x: s,
56420 y: -s / 2
56421 }, {
56422 x: s / 2,
56423 y: -s
56424 }, {
56425 x: 0,
56426 y: -s / 2
56427 }];
56428 var shapeSvg = insertPolygonShape(parent, s, s, points);
56429
56430 node.intersect = function (point) {
56431 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56432 };
56433
56434 return shapeSvg;
56435}
56436
56437function hexagon(parent, bbox, node) {
56438 var f = 4;
56439 var h = bbox.height;
56440 var m = h / f;
56441 var w = bbox.width + 2 * m;
56442 var points = [{
56443 x: m,
56444 y: 0
56445 }, {
56446 x: w - m,
56447 y: 0
56448 }, {
56449 x: w,
56450 y: -h / 2
56451 }, {
56452 x: w - m,
56453 y: -h
56454 }, {
56455 x: m,
56456 y: -h
56457 }, {
56458 x: 0,
56459 y: -h / 2
56460 }];
56461 var shapeSvg = insertPolygonShape(parent, w, h, points);
56462
56463 node.intersect = function (point) {
56464 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56465 };
56466
56467 return shapeSvg;
56468}
56469
56470function rect_left_inv_arrow(parent, bbox, node) {
56471 var w = bbox.width;
56472 var h = bbox.height;
56473 var points = [{
56474 x: -h / 2,
56475 y: 0
56476 }, {
56477 x: w,
56478 y: 0
56479 }, {
56480 x: w,
56481 y: -h
56482 }, {
56483 x: -h / 2,
56484 y: -h
56485 }, {
56486 x: 0,
56487 y: -h / 2
56488 }];
56489 var shapeSvg = insertPolygonShape(parent, w, h, points);
56490
56491 node.intersect = function (point) {
56492 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56493 };
56494
56495 return shapeSvg;
56496}
56497
56498function lean_right(parent, bbox, node) {
56499 var w = bbox.width;
56500 var h = bbox.height;
56501 var points = [{
56502 x: -2 * h / 6,
56503 y: 0
56504 }, {
56505 x: w - h / 6,
56506 y: 0
56507 }, {
56508 x: w + 2 * h / 6,
56509 y: -h
56510 }, {
56511 x: h / 6,
56512 y: -h
56513 }];
56514 var shapeSvg = insertPolygonShape(parent, w, h, points);
56515
56516 node.intersect = function (point) {
56517 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56518 };
56519
56520 return shapeSvg;
56521}
56522
56523function lean_left(parent, bbox, node) {
56524 var w = bbox.width;
56525 var h = bbox.height;
56526 var points = [{
56527 x: 2 * h / 6,
56528 y: 0
56529 }, {
56530 x: w + h / 6,
56531 y: 0
56532 }, {
56533 x: w - 2 * h / 6,
56534 y: -h
56535 }, {
56536 x: -h / 6,
56537 y: -h
56538 }];
56539 var shapeSvg = insertPolygonShape(parent, w, h, points);
56540
56541 node.intersect = function (point) {
56542 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56543 };
56544
56545 return shapeSvg;
56546}
56547
56548function trapezoid(parent, bbox, node) {
56549 var w = bbox.width;
56550 var h = bbox.height;
56551 var points = [{
56552 x: -2 * h / 6,
56553 y: 0
56554 }, {
56555 x: w + 2 * h / 6,
56556 y: 0
56557 }, {
56558 x: w - h / 6,
56559 y: -h
56560 }, {
56561 x: h / 6,
56562 y: -h
56563 }];
56564 var shapeSvg = insertPolygonShape(parent, w, h, points);
56565
56566 node.intersect = function (point) {
56567 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56568 };
56569
56570 return shapeSvg;
56571}
56572
56573function inv_trapezoid(parent, bbox, node) {
56574 var w = bbox.width;
56575 var h = bbox.height;
56576 var points = [{
56577 x: h / 6,
56578 y: 0
56579 }, {
56580 x: w - h / 6,
56581 y: 0
56582 }, {
56583 x: w + 2 * h / 6,
56584 y: -h
56585 }, {
56586 x: -2 * h / 6,
56587 y: -h
56588 }];
56589 var shapeSvg = insertPolygonShape(parent, w, h, points);
56590
56591 node.intersect = function (point) {
56592 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56593 };
56594
56595 return shapeSvg;
56596}
56597
56598function rect_right_inv_arrow(parent, bbox, node) {
56599 var w = bbox.width;
56600 var h = bbox.height;
56601 var points = [{
56602 x: 0,
56603 y: 0
56604 }, {
56605 x: w + h / 2,
56606 y: 0
56607 }, {
56608 x: w,
56609 y: -h / 2
56610 }, {
56611 x: w + h / 2,
56612 y: -h
56613 }, {
56614 x: 0,
56615 y: -h
56616 }];
56617 var shapeSvg = insertPolygonShape(parent, w, h, points);
56618
56619 node.intersect = function (point) {
56620 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56621 };
56622
56623 return shapeSvg;
56624}
56625
56626function stadium(parent, bbox, node) {
56627 var h = bbox.height;
56628 var w = bbox.width + h / 4;
56629 var shapeSvg = parent.insert('rect', ':first-child').attr('rx', h / 2).attr('ry', h / 2).attr('x', -w / 2).attr('y', -h / 2).attr('width', w).attr('height', h);
56630
56631 node.intersect = function (point) {
56632 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.rect(node, point);
56633 };
56634
56635 return shapeSvg;
56636}
56637
56638function subroutine(parent, bbox, node) {
56639 var w = bbox.width;
56640 var h = bbox.height;
56641 var points = [{
56642 x: 0,
56643 y: 0
56644 }, {
56645 x: w,
56646 y: 0
56647 }, {
56648 x: w,
56649 y: -h
56650 }, {
56651 x: 0,
56652 y: -h
56653 }, {
56654 x: 0,
56655 y: 0
56656 }, {
56657 x: -8,
56658 y: 0
56659 }, {
56660 x: w + 8,
56661 y: 0
56662 }, {
56663 x: w + 8,
56664 y: -h
56665 }, {
56666 x: -8,
56667 y: -h
56668 }, {
56669 x: -8,
56670 y: 0
56671 }];
56672 var shapeSvg = insertPolygonShape(parent, w, h, points);
56673
56674 node.intersect = function (point) {
56675 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56676 };
56677
56678 return shapeSvg;
56679}
56680
56681function cylinder(parent, bbox, node) {
56682 var w = bbox.width;
56683 var rx = w / 2;
56684 var ry = rx / (2.5 + w / 50);
56685 var h = bbox.height + ry;
56686 var shape = 'M 0,' + ry + ' a ' + rx + ',' + ry + ' 0,0,0 ' + w + ' 0 a ' + rx + ',' + ry + ' 0,0,0 ' + -w + ' 0 l 0,' + h + ' a ' + rx + ',' + ry + ' 0,0,0 ' + w + ' 0 l 0,' + -h;
56687 var shapeSvg = parent.attr('label-offset-y', ry).insert('path', ':first-child').attr('d', shape).attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');
56688
56689 node.intersect = function (point) {
56690 var pos = dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.rect(node, point);
56691 var x = pos.x - node.x;
56692
56693 if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {
56694 // ellipsis equation: x*x / a*a + y*y / b*b = 1
56695 // solve for y to get adjustion value for pos.y
56696 var y = ry * ry * (1 - x * x / (rx * rx));
56697 if (y != 0) y = Math.sqrt(y);
56698 y = ry - y;
56699 if (point.y - node.y > 0) y = -y;
56700 pos.y += y;
56701 }
56702
56703 return pos;
56704 };
56705
56706 return shapeSvg;
56707}
56708
56709function addToRender(render) {
56710 render.shapes().question = question;
56711 render.shapes().hexagon = hexagon;
56712 render.shapes().stadium = stadium;
56713 render.shapes().subroutine = subroutine;
56714 render.shapes().cylinder = cylinder; // Add custom shape for box with inverted arrow on left side
56715
56716 render.shapes().rect_left_inv_arrow = rect_left_inv_arrow; // Add custom shape for box with inverted arrow on left side
56717
56718 render.shapes().lean_right = lean_right; // Add custom shape for box with inverted arrow on left side
56719
56720 render.shapes().lean_left = lean_left; // Add custom shape for box with inverted arrow on left side
56721
56722 render.shapes().trapezoid = trapezoid; // Add custom shape for box with inverted arrow on left side
56723
56724 render.shapes().inv_trapezoid = inv_trapezoid; // Add custom shape for box with inverted arrow on right side
56725
56726 render.shapes().rect_right_inv_arrow = rect_right_inv_arrow;
56727}
56728function addToRenderV2(addShape) {
56729 addShape({
56730 question: question
56731 });
56732 addShape({
56733 hexagon: hexagon
56734 });
56735 addShape({
56736 stadium: stadium
56737 });
56738 addShape({
56739 subroutine: subroutine
56740 });
56741 addShape({
56742 cylinder: cylinder
56743 }); // Add custom shape for box with inverted arrow on left side
56744
56745 addShape({
56746 rect_left_inv_arrow: rect_left_inv_arrow
56747 }); // Add custom shape for box with inverted arrow on left side
56748
56749 addShape({
56750 lean_right: lean_right
56751 }); // Add custom shape for box with inverted arrow on left side
56752
56753 addShape({
56754 lean_left: lean_left
56755 }); // Add custom shape for box with inverted arrow on left side
56756
56757 addShape({
56758 trapezoid: trapezoid
56759 }); // Add custom shape for box with inverted arrow on left side
56760
56761 addShape({
56762 inv_trapezoid: inv_trapezoid
56763 }); // Add custom shape for box with inverted arrow on right side
56764
56765 addShape({
56766 rect_right_inv_arrow: rect_right_inv_arrow
56767 });
56768}
56769
56770function insertPolygonShape(parent, w, h, points) {
56771 return parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
56772 return d.x + ',' + d.y;
56773 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');
56774}
56775
56776/* harmony default export */ __webpack_exports__["default"] = ({
56777 addToRender: addToRender,
56778 addToRenderV2: addToRenderV2
56779});
56780
56781/***/ }),
56782
56783/***/ "./src/diagrams/flowchart/flowDb.js":
56784/*!******************************************!*\
56785 !*** ./src/diagrams/flowchart/flowDb.js ***!
56786 \******************************************/
56787/*! exports provided: parseDirective, lookUpDomId, addVertex, addSingleLink, addLink, updateLinkInterpolate, updateLink, addClass, setDirection, setClass, setLink, getTooltip, setClickEvent, bindFunctions, getDirection, getVertices, getEdges, getClasses, clear, setGen, defaultStyle, addSubGraph, getDepthFirstPos, indexNodes, getSubGraphs, firstGraph, default */
56788/***/ (function(module, __webpack_exports__, __webpack_require__) {
56789
56790"use strict";
56791__webpack_require__.r(__webpack_exports__);
56792/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
56793/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lookUpDomId", function() { return lookUpDomId; });
56794/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertex", function() { return addVertex; });
56795/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSingleLink", function() { return addSingleLink; });
56796/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addLink", function() { return addLink; });
56797/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLinkInterpolate", function() { return updateLinkInterpolate; });
56798/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLink", function() { return updateLink; });
56799/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; });
56800/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDirection", function() { return setDirection; });
56801/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClass", function() { return setClass; });
56802/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
56803/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTooltip", function() { return getTooltip; });
56804/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
56805/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
56806/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; });
56807/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVertices", function() { return getVertices; });
56808/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEdges", function() { return getEdges; });
56809/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
56810/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
56811/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setGen", function() { return setGen; });
56812/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultStyle", function() { return defaultStyle; });
56813/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSubGraph", function() { return addSubGraph; });
56814/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDepthFirstPos", function() { return getDepthFirstPos; });
56815/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "indexNodes", function() { return indexNodes; });
56816/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSubGraphs", function() { return getSubGraphs; });
56817/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstGraph", function() { return firstGraph; });
56818/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
56819/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
56820/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
56821/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
56822/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
56823/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
56824function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
56825
56826
56827
56828
56829
56830
56831
56832var MERMAID_DOM_ID_PREFIX = 'flowchart-';
56833var vertexCounter = 0;
56834var config = _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]();
56835var vertices = {};
56836var edges = [];
56837var classes = [];
56838var subGraphs = [];
56839var subGraphLookup = {};
56840var tooltips = {};
56841var subCount = 0;
56842var firstGraphFlag = true;
56843var direction;
56844var version; // As in graph
56845// Functions to be run after graph rendering
56846
56847var funs = [];
56848var parseDirective = function parseDirective(statement, context, type) {
56849 _mermaidAPI__WEBPACK_IMPORTED_MODULE_4__["default"].parseDirective(this, statement, context, type);
56850};
56851/**
56852 * Function to lookup domId from id in the graph definition.
56853 * @param id
56854 * @public
56855 */
56856
56857var lookUpDomId = function lookUpDomId(id) {
56858 var veritceKeys = Object.keys(vertices);
56859
56860 for (var i = 0; i < veritceKeys.length; i++) {
56861 if (vertices[veritceKeys[i]].id === id) {
56862 return vertices[veritceKeys[i]].domId;
56863 }
56864 }
56865
56866 return id;
56867};
56868/**
56869 * Function called by parser when a node definition has been found
56870 * @param id
56871 * @param text
56872 * @param type
56873 * @param style
56874 * @param classes
56875 */
56876
56877var addVertex = function addVertex(_id, text, type, style, classes) {
56878 var txt;
56879 var id = _id;
56880
56881 if (typeof id === 'undefined') {
56882 return;
56883 }
56884
56885 if (id.trim().length === 0) {
56886 return;
56887 } // if (id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
56888
56889
56890 if (typeof vertices[id] === 'undefined') {
56891 vertices[id] = {
56892 id: id,
56893 domId: MERMAID_DOM_ID_PREFIX + id + '-' + vertexCounter,
56894 styles: [],
56895 classes: []
56896 };
56897 }
56898
56899 vertexCounter++;
56900
56901 if (typeof text !== 'undefined') {
56902 config = _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]();
56903 txt = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(text.trim(), config); // strip quotes if string starts and ends with a quote
56904
56905 if (txt[0] === '"' && txt[txt.length - 1] === '"') {
56906 txt = txt.substring(1, txt.length - 1);
56907 }
56908
56909 vertices[id].text = txt;
56910 } else {
56911 if (typeof vertices[id].text === 'undefined') {
56912 vertices[id].text = _id;
56913 }
56914 }
56915
56916 if (typeof type !== 'undefined') {
56917 vertices[id].type = type;
56918 }
56919
56920 if (typeof style !== 'undefined') {
56921 if (style !== null) {
56922 style.forEach(function (s) {
56923 vertices[id].styles.push(s);
56924 });
56925 }
56926 }
56927
56928 if (typeof classes !== 'undefined') {
56929 if (classes !== null) {
56930 classes.forEach(function (s) {
56931 vertices[id].classes.push(s);
56932 });
56933 }
56934 }
56935};
56936/**
56937 * Function called by parser when a link/edge definition has been found
56938 * @param start
56939 * @param end
56940 * @param type
56941 * @param linktext
56942 */
56943
56944var addSingleLink = function addSingleLink(_start, _end, type, linktext) {
56945 var start = _start;
56946 var end = _end; // if (start[0].match(/\d/)) start = MERMAID_DOM_ID_PREFIX + start;
56947 // if (end[0].match(/\d/)) end = MERMAID_DOM_ID_PREFIX + end;
56948 // logger.info('Got edge...', start, end);
56949
56950 var edge = {
56951 start: start,
56952 end: end,
56953 type: undefined,
56954 text: ''
56955 };
56956 linktext = type.text;
56957
56958 if (typeof linktext !== 'undefined') {
56959 edge.text = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(linktext.trim(), config); // strip quotes if string starts and exnds with a quote
56960
56961 if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
56962 edge.text = edge.text.substring(1, edge.text.length - 1);
56963 }
56964 }
56965
56966 if (typeof type !== 'undefined') {
56967 edge.type = type.type;
56968 edge.stroke = type.stroke;
56969 edge.length = type.length;
56970 }
56971
56972 edges.push(edge);
56973};
56974var addLink = function addLink(_start, _end, type, linktext) {
56975 var i, j;
56976
56977 for (i = 0; i < _start.length; i++) {
56978 for (j = 0; j < _end.length; j++) {
56979 addSingleLink(_start[i], _end[j], type, linktext);
56980 }
56981 }
56982};
56983/**
56984 * Updates a link's line interpolation algorithm
56985 * @param pos
56986 * @param interpolate
56987 */
56988
56989var updateLinkInterpolate = function updateLinkInterpolate(positions, interp) {
56990 positions.forEach(function (pos) {
56991 if (pos === 'default') {
56992 edges.defaultInterpolate = interp;
56993 } else {
56994 edges[pos].interpolate = interp;
56995 }
56996 });
56997};
56998/**
56999 * Updates a link with a style
57000 * @param pos
57001 * @param style
57002 */
57003
57004var updateLink = function updateLink(positions, style) {
57005 positions.forEach(function (pos) {
57006 if (pos === 'default') {
57007 edges.defaultStyle = style;
57008 } else {
57009 if (_utils__WEBPACK_IMPORTED_MODULE_1__["default"].isSubstringInArray('fill', style) === -1) {
57010 style.push('fill:none');
57011 }
57012
57013 edges[pos].style = style;
57014 }
57015 });
57016};
57017var addClass = function addClass(id, style) {
57018 if (typeof classes[id] === 'undefined') {
57019 classes[id] = {
57020 id: id,
57021 styles: [],
57022 textStyles: []
57023 };
57024 }
57025
57026 if (typeof style !== 'undefined') {
57027 if (style !== null) {
57028 style.forEach(function (s) {
57029 if (s.match('color')) {
57030 var newStyle1 = s.replace('fill', 'bgFill');
57031 var newStyle2 = newStyle1.replace('color', 'fill');
57032 classes[id].textStyles.push(newStyle2);
57033 }
57034
57035 classes[id].styles.push(s);
57036 });
57037 }
57038 }
57039};
57040/**
57041 * Called by parser when a graph definition is found, stores the direction of the chart.
57042 * @param dir
57043 */
57044
57045var setDirection = function setDirection(dir) {
57046 direction = dir;
57047
57048 if (direction.match(/.*</)) {
57049 direction = 'RL';
57050 }
57051
57052 if (direction.match(/.*\^/)) {
57053 direction = 'BT';
57054 }
57055
57056 if (direction.match(/.*>/)) {
57057 direction = 'LR';
57058 }
57059
57060 if (direction.match(/.*v/)) {
57061 direction = 'TB';
57062 }
57063};
57064/**
57065 * Called by parser when a special node is found, e.g. a clickable element.
57066 * @param ids Comma separated list of ids
57067 * @param className Class to add
57068 */
57069
57070var setClass = function setClass(ids, className) {
57071 ids.split(',').forEach(function (_id) {
57072 // let id = version === 'gen-2' ? lookUpDomId(_id) : _id;
57073 var id = _id; // if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
57074
57075 if (typeof vertices[id] !== 'undefined') {
57076 vertices[id].classes.push(className);
57077 }
57078
57079 if (typeof subGraphLookup[id] !== 'undefined') {
57080 subGraphLookup[id].classes.push(className);
57081 }
57082 });
57083};
57084
57085var setTooltip = function setTooltip(ids, tooltip) {
57086 ids.split(',').forEach(function (id) {
57087 if (typeof tooltip !== 'undefined') {
57088 tooltips[version === 'gen-1' ? lookUpDomId(id) : id] = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(tooltip, config);
57089 }
57090 });
57091};
57092
57093var setClickFun = function setClickFun(id, functionName) {
57094 var domId = lookUpDomId(id); // if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
57095
57096 if (_config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]().securityLevel !== 'loose') {
57097 return;
57098 }
57099
57100 if (typeof functionName === 'undefined') {
57101 return;
57102 }
57103
57104 if (typeof vertices[id] !== 'undefined') {
57105 vertices[id].haveCallback = true;
57106 funs.push(function () {
57107 var elem = document.querySelector("[id=\"".concat(domId, "\"]"));
57108
57109 if (elem !== null) {
57110 elem.addEventListener('click', function () {
57111 _utils__WEBPACK_IMPORTED_MODULE_1__["default"].runFunc(functionName, id);
57112 }, false);
57113 }
57114 });
57115 }
57116};
57117/**
57118 * Called by parser when a link is found. Adds the URL to the vertex data.
57119 * @param ids Comma separated list of ids
57120 * @param linkStr URL to create a link for
57121 * @param tooltip Tooltip for the clickable element
57122 */
57123
57124
57125var setLink = function setLink(ids, linkStr, tooltip, target) {
57126 ids.split(',').forEach(function (id) {
57127 if (typeof vertices[id] !== 'undefined') {
57128 vertices[id].link = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].formatUrl(linkStr, config);
57129 vertices[id].linkTarget = target;
57130 }
57131 });
57132 setTooltip(ids, tooltip);
57133 setClass(ids, 'clickable');
57134};
57135var getTooltip = function getTooltip(id) {
57136 return tooltips[id];
57137};
57138/**
57139 * Called by parser when a click definition is found. Registers an event handler.
57140 * @param ids Comma separated list of ids
57141 * @param functionName Function to be called on click
57142 * @param tooltip Tooltip for the clickable element
57143 */
57144
57145var setClickEvent = function setClickEvent(ids, functionName, tooltip) {
57146 ids.split(',').forEach(function (id) {
57147 setClickFun(id, functionName);
57148 });
57149 setTooltip(ids, tooltip);
57150 setClass(ids, 'clickable');
57151};
57152var bindFunctions = function bindFunctions(element) {
57153 funs.forEach(function (fun) {
57154 fun(element);
57155 });
57156};
57157var getDirection = function getDirection() {
57158 return direction.trim();
57159};
57160/**
57161 * Retrieval function for fetching the found nodes after parsing has completed.
57162 * @returns {{}|*|vertices}
57163 */
57164
57165var getVertices = function getVertices() {
57166 return vertices;
57167};
57168/**
57169 * Retrieval function for fetching the found links after parsing has completed.
57170 * @returns {{}|*|edges}
57171 */
57172
57173var getEdges = function getEdges() {
57174 return edges;
57175};
57176/**
57177 * Retrieval function for fetching the found class definitions after parsing has completed.
57178 * @returns {{}|*|classes}
57179 */
57180
57181var getClasses = function getClasses() {
57182 return classes;
57183};
57184
57185var setupToolTips = function setupToolTips(element) {
57186 var tooltipElem = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('.mermaidTooltip');
57187
57188 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
57189 tooltipElem = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
57190 }
57191
57192 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(element).select('svg');
57193 var nodes = svg.selectAll('g.node');
57194 nodes.on('mouseover', function () {
57195 var el = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(this);
57196 var title = el.attr('title'); // Dont try to draw a tooltip if no data is provided
57197
57198 if (title === null) {
57199 return;
57200 }
57201
57202 var rect = this.getBoundingClientRect();
57203 tooltipElem.transition().duration(200).style('opacity', '.9');
57204 tooltipElem.html(el.attr('title')).style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px').style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px');
57205 el.classed('hover', true);
57206 }).on('mouseout', function () {
57207 tooltipElem.transition().duration(500).style('opacity', 0);
57208 var el = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(this);
57209 el.classed('hover', false);
57210 });
57211};
57212
57213funs.push(setupToolTips);
57214/**
57215 * Clears the internal graph db so that a new graph can be parsed.
57216 */
57217
57218var clear = function clear(ver) {
57219 vertices = {};
57220 classes = {};
57221 edges = [];
57222 funs = [];
57223 funs.push(setupToolTips);
57224 subGraphs = [];
57225 subGraphLookup = {};
57226 subCount = 0;
57227 tooltips = [];
57228 firstGraphFlag = true;
57229 version = ver || 'gen-1';
57230};
57231var setGen = function setGen(ver) {
57232 version = ver || 'gen-1';
57233};
57234/**
57235 *
57236 * @returns {string}
57237 */
57238
57239var defaultStyle = function defaultStyle() {
57240 return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;';
57241};
57242/**
57243 * Clears the internal graph db so that a new graph can be parsed.
57244 */
57245
57246var addSubGraph = function addSubGraph(_id, list, _title) {
57247 var id = _id.trim();
57248
57249 var title = _title;
57250
57251 if (_id === _title && _title.match(/\s/)) {
57252 id = undefined;
57253 }
57254
57255 function uniq(a) {
57256 var prims = {
57257 boolean: {},
57258 number: {},
57259 string: {}
57260 };
57261 var objs = [];
57262 return a.filter(function (item) {
57263 var type = _typeof(item);
57264
57265 if (item.trim() === '') {
57266 return false;
57267 }
57268
57269 if (type in prims) {
57270 return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true; // eslint-disable-line
57271 } else {
57272 return objs.indexOf(item) >= 0 ? false : objs.push(item);
57273 }
57274 });
57275 }
57276
57277 var nodeList = [];
57278 nodeList = uniq(nodeList.concat.apply(nodeList, list));
57279
57280 if (version === 'gen-1') {
57281 _logger__WEBPACK_IMPORTED_MODULE_5__["logger"].warn('LOOKING UP');
57282
57283 for (var i = 0; i < nodeList.length; i++) {
57284 nodeList[i] = lookUpDomId(nodeList[i]);
57285 }
57286 }
57287
57288 id = id || 'subGraph' + subCount; // if (id[0].match(/\d/)) id = lookUpDomId(id);
57289
57290 title = title || '';
57291 title = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(title, config);
57292 subCount = subCount + 1;
57293 var subGraph = {
57294 id: id,
57295 nodes: nodeList,
57296 title: title.trim(),
57297 classes: []
57298 };
57299 console.log('Adding', subGraph.id, subGraph.nodes);
57300 /**
57301 * Deletes an id from all subgraphs
57302 */
57303 // const del = _id => {
57304 // subGraphs.forEach(sg => {
57305 // const pos = sg.nodes.indexOf(_id);
57306 // if (pos >= 0) {
57307 // sg.nodes.splice(pos, 1);
57308 // }
57309 // });
57310 // };
57311 // // Removes the members of this subgraph from any other subgraphs, a node only belong to one subgraph
57312 // subGraph.nodes.forEach(_id => del(_id));
57313 // Remove the members in the new subgraph if they already belong to another subgraph
57314
57315 subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;
57316 subGraphs.push(subGraph);
57317 subGraphLookup[id] = subGraph;
57318 return id;
57319};
57320
57321var getPosForId = function getPosForId(id) {
57322 for (var i = 0; i < subGraphs.length; i++) {
57323 if (subGraphs[i].id === id) {
57324 return i;
57325 }
57326 }
57327
57328 return -1;
57329};
57330
57331var secCount = -1;
57332var posCrossRef = [];
57333
57334var indexNodes2 = function indexNodes2(id, pos) {
57335 var nodes = subGraphs[pos].nodes;
57336 secCount = secCount + 1;
57337
57338 if (secCount > 2000) {
57339 return;
57340 }
57341
57342 posCrossRef[secCount] = pos; // Check if match
57343
57344 if (subGraphs[pos].id === id) {
57345 return {
57346 result: true,
57347 count: 0
57348 };
57349 }
57350
57351 var count = 0;
57352 var posCount = 1;
57353
57354 while (count < nodes.length) {
57355 var childPos = getPosForId(nodes[count]); // Ignore regular nodes (pos will be -1)
57356
57357 if (childPos >= 0) {
57358 var res = indexNodes2(id, childPos);
57359
57360 if (res.result) {
57361 return {
57362 result: true,
57363 count: posCount + res.count
57364 };
57365 } else {
57366 posCount = posCount + res.count;
57367 }
57368 }
57369
57370 count = count + 1;
57371 }
57372
57373 return {
57374 result: false,
57375 count: posCount
57376 };
57377};
57378
57379var getDepthFirstPos = function getDepthFirstPos(pos) {
57380 return posCrossRef[pos];
57381};
57382var indexNodes = function indexNodes() {
57383 secCount = -1;
57384
57385 if (subGraphs.length > 0) {
57386 indexNodes2('none', subGraphs.length - 1, 0);
57387 }
57388};
57389var getSubGraphs = function getSubGraphs() {
57390 return subGraphs;
57391};
57392var firstGraph = function firstGraph() {
57393 if (firstGraphFlag) {
57394 firstGraphFlag = false;
57395 return true;
57396 }
57397
57398 return false;
57399};
57400
57401var destructStartLink = function destructStartLink(_str) {
57402 var str = _str.trim();
57403
57404 var type = 'arrow_open';
57405
57406 switch (str[0]) {
57407 case '<':
57408 type = 'arrow_point';
57409 str = str.slice(1);
57410 break;
57411
57412 case 'x':
57413 type = 'arrow_cross';
57414 str = str.slice(1);
57415 break;
57416
57417 case 'o':
57418 type = 'arrow_circle';
57419 str = str.slice(1);
57420 break;
57421 }
57422
57423 var stroke = 'normal';
57424
57425 if (str.indexOf('=') !== -1) {
57426 stroke = 'thick';
57427 }
57428
57429 if (str.indexOf('.') !== -1) {
57430 stroke = 'dotted';
57431 }
57432
57433 return {
57434 type: type,
57435 stroke: stroke
57436 };
57437};
57438
57439var countChar = function countChar(char, str) {
57440 var length = str.length;
57441 var count = 0;
57442
57443 for (var i = 0; i < length; ++i) {
57444 if (str[i] === char) {
57445 ++count;
57446 }
57447 }
57448
57449 return count;
57450};
57451
57452var destructEndLink = function destructEndLink(_str) {
57453 var str = _str.trim();
57454
57455 var line = str.slice(0, -1);
57456 var type = 'arrow_open';
57457
57458 switch (str.slice(-1)) {
57459 case 'x':
57460 type = 'arrow_cross';
57461
57462 if (str[0] === 'x') {
57463 type = 'double_' + type;
57464 line = line.slice(1);
57465 }
57466
57467 break;
57468
57469 case '>':
57470 type = 'arrow_point';
57471
57472 if (str[0] === '<') {
57473 type = 'double_' + type;
57474 line = line.slice(1);
57475 }
57476
57477 break;
57478
57479 case 'o':
57480 type = 'arrow_circle';
57481
57482 if (str[0] === 'o') {
57483 type = 'double_' + type;
57484 line = line.slice(1);
57485 }
57486
57487 break;
57488 }
57489
57490 var stroke = 'normal';
57491 var length = line.length - 1;
57492
57493 if (line[0] === '=') {
57494 stroke = 'thick';
57495 }
57496
57497 var dots = countChar('.', line);
57498
57499 if (dots) {
57500 stroke = 'dotted';
57501 length = dots;
57502 }
57503
57504 return {
57505 type: type,
57506 stroke: stroke,
57507 length: length
57508 };
57509};
57510
57511var destructLink = function destructLink(_str, _startStr) {
57512 var info = destructEndLink(_str);
57513 var startInfo;
57514
57515 if (_startStr) {
57516 startInfo = destructStartLink(_startStr);
57517
57518 if (startInfo.stroke !== info.stroke) {
57519 return {
57520 type: 'INVALID',
57521 stroke: 'INVALID'
57522 };
57523 }
57524
57525 if (startInfo.type === 'arrow_open') {
57526 // -- xyz --> - take arrow type from ending
57527 startInfo.type = info.type;
57528 } else {
57529 // x-- xyz --> - not supported
57530 if (startInfo.type !== info.type) return {
57531 type: 'INVALID',
57532 stroke: 'INVALID'
57533 };
57534 startInfo.type = 'double_' + startInfo.type;
57535 }
57536
57537 if (startInfo.type === 'double_arrow') {
57538 startInfo.type = 'double_arrow_point';
57539 }
57540
57541 startInfo.length = info.length;
57542 return startInfo;
57543 }
57544
57545 return info;
57546}; // Todo optimizer this by caching existing nodes
57547
57548
57549var exists = function exists(allSgs, _id) {
57550 var res = false;
57551 allSgs.forEach(function (sg) {
57552 var pos = sg.nodes.indexOf(_id);
57553
57554 if (pos >= 0) {
57555 res = true;
57556 }
57557 });
57558 return res;
57559};
57560/**
57561 * Deletes an id from all subgraphs
57562 */
57563
57564
57565var makeUniq = function makeUniq(sg, allSubgraphs) {
57566 var res = [];
57567 sg.nodes.forEach(function (_id, pos) {
57568 if (!exists(allSubgraphs, _id)) {
57569 res.push(sg.nodes[pos]);
57570 }
57571 });
57572 return {
57573 nodes: res
57574 };
57575};
57576
57577/* harmony default export */ __webpack_exports__["default"] = ({
57578 parseDirective: parseDirective,
57579 defaultConfig: function defaultConfig() {
57580 return _config__WEBPACK_IMPORTED_MODULE_2__["defaultConfig"].flowchart;
57581 },
57582 addVertex: addVertex,
57583 lookUpDomId: lookUpDomId,
57584 addLink: addLink,
57585 updateLinkInterpolate: updateLinkInterpolate,
57586 updateLink: updateLink,
57587 addClass: addClass,
57588 setDirection: setDirection,
57589 setClass: setClass,
57590 getTooltip: getTooltip,
57591 setClickEvent: setClickEvent,
57592 setLink: setLink,
57593 bindFunctions: bindFunctions,
57594 getDirection: getDirection,
57595 getVertices: getVertices,
57596 getEdges: getEdges,
57597 getClasses: getClasses,
57598 clear: clear,
57599 setGen: setGen,
57600 defaultStyle: defaultStyle,
57601 addSubGraph: addSubGraph,
57602 getDepthFirstPos: getDepthFirstPos,
57603 indexNodes: indexNodes,
57604 getSubGraphs: getSubGraphs,
57605 destructLink: destructLink,
57606 lex: {
57607 firstGraph: firstGraph
57608 },
57609 exists: exists,
57610 makeUniq: makeUniq
57611});
57612
57613/***/ }),
57614
57615/***/ "./src/diagrams/flowchart/flowRenderer-v2.js":
57616/*!***************************************************!*\
57617 !*** ./src/diagrams/flowchart/flowRenderer-v2.js ***!
57618 \***************************************************/
57619/*! exports provided: setConf, addVertices, addEdges, getClasses, draw, default */
57620/***/ (function(module, __webpack_exports__, __webpack_require__) {
57621
57622"use strict";
57623__webpack_require__.r(__webpack_exports__);
57624/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
57625/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertices", function() { return addVertices; });
57626/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEdges", function() { return addEdges; });
57627/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
57628/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
57629/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
57630/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
57631/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
57632/* harmony import */ var _flowDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flowDb */ "./src/diagrams/flowchart/flowDb.js");
57633/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
57634/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_flow__WEBPACK_IMPORTED_MODULE_3__);
57635/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
57636/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
57637/* harmony import */ var dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! dagre-d3/lib/label/add-html-label.js */ "./node_modules/dagre-d3/lib/label/add-html-label.js");
57638/* harmony import */ var dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6__);
57639/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
57640/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
57641/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
57642
57643
57644
57645
57646
57647
57648
57649
57650
57651
57652var conf = {};
57653var setConf = function setConf(cnf) {
57654 var keys = Object.keys(cnf);
57655
57656 for (var i = 0; i < keys.length; i++) {
57657 conf[keys[i]] = cnf[keys[i]];
57658 }
57659};
57660/**
57661 * Function that adds the vertices found during parsing to the graph to be rendered.
57662 * @param vert Object containing the vertices.
57663 * @param g The graph that is to be drawn.
57664 */
57665
57666var addVertices = function addVertices(vert, g, svgId) {
57667 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(svgId, "\"]"));
57668 var keys = Object.keys(vert); // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
57669
57670 keys.forEach(function (id) {
57671 var vertex = vert[id];
57672 /**
57673 * Variable for storing the classes for the vertex
57674 * @type {string}
57675 */
57676
57677 var classStr = 'default';
57678
57679 if (vertex.classes.length > 0) {
57680 classStr = vertex.classes.join(' ');
57681 }
57682
57683 var styles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(vertex.styles); // Use vertex id as text in the box if no text is provided by the graph definition
57684
57685 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
57686
57687 var vertexNode;
57688
57689 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
57690 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
57691 var node = {
57692 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
57693 return "<i class='".concat(s.replace(':', ' '), "'></i>");
57694 })
57695 };
57696 vertexNode = dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6___default()(svg, node).node();
57697 vertexNode.parentNode.removeChild(vertexNode);
57698 } else {
57699 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
57700 svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
57701 var rows = vertexText.split(_common_common__WEBPACK_IMPORTED_MODULE_8__["default"].lineBreakRegex);
57702
57703 for (var j = 0; j < rows.length; j++) {
57704 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
57705 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
57706 tspan.setAttribute('dy', '1em');
57707 tspan.setAttribute('x', '1');
57708 tspan.textContent = rows[j];
57709 svgLabel.appendChild(tspan);
57710 }
57711
57712 vertexNode = svgLabel;
57713 }
57714
57715 var radious = 0;
57716 var _shape = ''; // Set the shape based parameters
57717
57718 switch (vertex.type) {
57719 case 'round':
57720 radious = 5;
57721 _shape = 'rect';
57722 break;
57723
57724 case 'square':
57725 _shape = 'rect';
57726 break;
57727
57728 case 'diamond':
57729 _shape = 'question';
57730 break;
57731
57732 case 'hexagon':
57733 _shape = 'hexagon';
57734 break;
57735
57736 case 'odd':
57737 _shape = 'rect_left_inv_arrow';
57738 break;
57739
57740 case 'lean_right':
57741 _shape = 'lean_right';
57742 break;
57743
57744 case 'lean_left':
57745 _shape = 'lean_left';
57746 break;
57747
57748 case 'trapezoid':
57749 _shape = 'trapezoid';
57750 break;
57751
57752 case 'inv_trapezoid':
57753 _shape = 'inv_trapezoid';
57754 break;
57755
57756 case 'odd_right':
57757 _shape = 'rect_left_inv_arrow';
57758 break;
57759
57760 case 'circle':
57761 _shape = 'circle';
57762 break;
57763
57764 case 'ellipse':
57765 _shape = 'ellipse';
57766 break;
57767
57768 case 'stadium':
57769 _shape = 'stadium';
57770 break;
57771
57772 case 'subroutine':
57773 _shape = 'subroutine';
57774 break;
57775
57776 case 'cylinder':
57777 _shape = 'cylinder';
57778 break;
57779
57780 case 'group':
57781 _shape = 'rect';
57782 break;
57783
57784 default:
57785 _shape = 'rect';
57786 } // Add the node
57787
57788
57789 g.setNode(vertex.id, {
57790 labelStyle: styles.labelStyle,
57791 shape: _shape,
57792 labelText: vertexText,
57793 rx: radious,
57794 ry: radious,
57795 class: classStr,
57796 style: styles.style,
57797 id: vertex.id,
57798 link: vertex.link,
57799 linkTarget: vertex.linkTarget,
57800 tooltip: _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getTooltip(vertex.id) || '',
57801 domId: _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(vertex.id),
57802 haveCallback: vertex.haveCallback,
57803 width: vertex.type === 'group' ? 500 : undefined,
57804 type: vertex.type,
57805 padding: Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.padding
57806 });
57807 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('setNode', {
57808 labelStyle: styles.labelStyle,
57809 shape: _shape,
57810 labelText: vertexText,
57811 rx: radious,
57812 ry: radious,
57813 class: classStr,
57814 style: styles.style,
57815 id: vertex.id,
57816 domId: _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(vertex.id),
57817 width: vertex.type === 'group' ? 500 : undefined,
57818 type: vertex.type,
57819 padding: Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.padding
57820 });
57821 });
57822};
57823/**
57824 * Add edges to graph based on parsed graph defninition
57825 * @param {Object} edges The edges to add to the graph
57826 * @param {Object} g The graph object
57827 */
57828
57829var addEdges = function addEdges(edges, g) {
57830 var cnt = 0;
57831 var defaultStyle;
57832 var defaultLabelStyle;
57833
57834 if (typeof edges.defaultStyle !== 'undefined') {
57835 var defaultStyles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edges.defaultStyle);
57836 defaultStyle = defaultStyles.style;
57837 defaultLabelStyle = defaultStyles.labelStyle;
57838 }
57839
57840 edges.forEach(function (edge) {
57841 cnt++; // Identify Link
57842
57843 var linkId = 'L-' + edge.start + '-' + edge.end;
57844 var linkNameStart = 'LS-' + edge.start;
57845 var linkNameEnd = 'LE-' + edge.end;
57846 var edgeData = {
57847 style: '',
57848 labelStyle: ''
57849 };
57850 edgeData.minlen = edge.length || 1; //edgeData.id = 'id' + cnt;
57851 // Set link type for rendering
57852
57853 if (edge.type === 'arrow_open') {
57854 edgeData.arrowhead = 'none';
57855 } else {
57856 edgeData.arrowhead = 'normal';
57857 } // Check of arrow types, placed here in order not to break old rendering
57858
57859
57860 edgeData.arrowTypeStart = 'arrow_open';
57861 edgeData.arrowTypeEnd = 'arrow_open';
57862 /* eslint-disable no-fallthrough */
57863
57864 switch (edge.type) {
57865 case 'double_arrow_cross':
57866 edgeData.arrowTypeStart = 'arrow_cross';
57867
57868 case 'arrow_cross':
57869 edgeData.arrowTypeEnd = 'arrow_cross';
57870 break;
57871
57872 case 'double_arrow_point':
57873 edgeData.arrowTypeStart = 'arrow_point';
57874
57875 case 'arrow_point':
57876 edgeData.arrowTypeEnd = 'arrow_point';
57877 break;
57878
57879 case 'double_arrow_circle':
57880 edgeData.arrowTypeStart = 'arrow_circle';
57881
57882 case 'arrow_circle':
57883 edgeData.arrowTypeEnd = 'arrow_circle';
57884 break;
57885 }
57886
57887 var style = '';
57888 var labelStyle = '';
57889
57890 switch (edge.stroke) {
57891 case 'normal':
57892 style = 'fill:none;';
57893
57894 if (typeof defaultStyle !== 'undefined') {
57895 style = defaultStyle;
57896 }
57897
57898 if (typeof defaultLabelStyle !== 'undefined') {
57899 labelStyle = defaultLabelStyle;
57900 }
57901
57902 edgeData.thickness = 'normal';
57903 edgeData.pattern = 'solid';
57904 break;
57905
57906 case 'dotted':
57907 edgeData.thickness = 'normal';
57908 edgeData.pattern = 'dotted';
57909 edgeData.style = 'fill:none;stroke-width:2px;stroke-dasharray:3;';
57910 break;
57911
57912 case 'thick':
57913 edgeData.thickness = 'thick';
57914 edgeData.pattern = 'solid';
57915 edgeData.style = 'stroke-width: 3.5px;fill:none;';
57916 break;
57917 }
57918
57919 if (typeof edge.style !== 'undefined') {
57920 var styles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edge.style);
57921 style = styles.style;
57922 labelStyle = styles.labelStyle;
57923 }
57924
57925 edgeData.style = edgeData.style += style;
57926 edgeData.labelStyle = edgeData.labelStyle += labelStyle;
57927
57928 if (typeof edge.interpolate !== 'undefined') {
57929 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
57930 } else if (typeof edges.defaultInterpolate !== 'undefined') {
57931 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
57932 } else {
57933 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(conf.curve, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
57934 }
57935
57936 if (typeof edge.text === 'undefined') {
57937 if (typeof edge.style !== 'undefined') {
57938 edgeData.arrowheadStyle = 'fill: #333';
57939 }
57940 } else {
57941 edgeData.arrowheadStyle = 'fill: #333';
57942 edgeData.labelpos = 'c';
57943 } // if (getConfig().flowchart.htmlLabels && false) {
57944 // // eslint-disable-line
57945 // edgeData.labelType = 'html';
57946 // edgeData.label = `<span id="L-${linkId}" class="edgeLabel L-${linkNameStart}' L-${linkNameEnd}">${edge.text}</span>`;
57947 // } else {
57948
57949
57950 edgeData.labelType = 'text';
57951 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_8__["default"].lineBreakRegex, '\n');
57952
57953 if (typeof edge.style === 'undefined') {
57954 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none;';
57955 }
57956
57957 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:'); // }
57958
57959 edgeData.id = linkId;
57960 edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd; // Add the edge to the graph
57961
57962 g.setEdge(edge.start, edge.end, edgeData, cnt);
57963 });
57964};
57965/**
57966 * Returns the all the styles from classDef statements in the graph definition.
57967 * @returns {object} classDef styles
57968 */
57969
57970var getClasses = function getClasses(text) {
57971 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Extracting classes');
57972 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
57973 var parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
57974 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"];
57975
57976 try {
57977 // Parse the graph definition
57978 parser.parse(text);
57979 } catch (e) {
57980 return;
57981 }
57982
57983 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getClasses();
57984};
57985/**
57986 * Draws a flowchart in the tag with id: id based on the graph definition in text.
57987 * @param text
57988 * @param id
57989 */
57990
57991var draw = function draw(text, id) {
57992 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Drawing flowchart');
57993 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
57994 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].setGen('gen-2');
57995 var parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
57996 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
57997 // try {
57998
57999 parser.parse(text); // } catch (err) {
58000 // logger.debug('Parsing failed');
58001 // }
58002 // Fetch the default direction, use TD if none was found
58003
58004 var dir = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
58005
58006 if (typeof dir === 'undefined') {
58007 dir = 'TD';
58008 }
58009
58010 var conf = Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart;
58011 var nodeSpacing = conf.nodeSpacing || 50;
58012 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
58013
58014 var g = new graphlib__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
58015 multigraph: true,
58016 compound: true
58017 }).setGraph({
58018 rankdir: dir,
58019 nodesep: nodeSpacing,
58020 ranksep: rankSpacing,
58021 marginx: 8,
58022 marginy: 8
58023 }).setDefaultEdgeLabel(function () {
58024 return {};
58025 });
58026 var subG;
58027 var subGraphs = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getSubGraphs();
58028 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Subgraphs - ', subGraphs);
58029
58030 for (var _i = subGraphs.length - 1; _i >= 0; _i--) {
58031 subG = subGraphs[_i];
58032 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Subgraph - ', subG);
58033 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
58034 } // Fetch the verices/nodes and edges/links from the parsed graph definition
58035
58036
58037 var vert = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getVertices();
58038 var edges = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getEdges();
58039 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info(edges);
58040 var i = 0;
58041
58042 for (i = subGraphs.length - 1; i >= 0; i--) {
58043 // for (let i = 0; i < subGraphs.length; i++) {
58044 subG = subGraphs[i];
58045 Object(d3__WEBPACK_IMPORTED_MODULE_1__["selectAll"])('cluster').append('text');
58046
58047 for (var j = 0; j < subG.nodes.length; j++) {
58048 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Setting up subgraphs', subG.nodes[j], subG.id);
58049 g.setParent(subG.nodes[j], subG.id);
58050 }
58051 }
58052
58053 addVertices(vert, g, id);
58054 addEdges(edges, g); // Add custom shapes
58055 // flowChartShapes.addToRenderV2(addShape);
58056 // Set up an SVG group so that we can translate the final graph.
58057
58058 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(id, "\"]"));
58059 svg.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink'); // Run the renderer. This is what draws the final graph.
58060
58061 var element = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' g');
58062 Object(_dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__["render"])(element, g, ['point', 'circle', 'cross'], 'flowchart', id);
58063 var padding = conf.diagramPadding;
58064 var svgBounds = svg.node().getBBox();
58065 var width = svgBounds.width + padding * 2;
58066 var height = svgBounds.height + padding * 2;
58067 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].debug("new ViewBox 0 0 ".concat(width, " ").concat(height), "translate(".concat(padding - g._label.marginx, ", ").concat(padding - g._label.marginy, ")"));
58068 Object(_utils__WEBPACK_IMPORTED_MODULE_9__["configureSvgSize"])(svg, height, width, conf.useMaxWidth);
58069 svg.attr('viewBox', "0 0 ".concat(width, " ").concat(height));
58070 svg.select('g').attr('transform', "translate(".concat(padding - g._label.marginx, ", ").concat(padding - svgBounds.y, ")")); // Index nodes
58071
58072 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].indexNodes('subGraph' + i); // Add label rects for non html labels
58073
58074 if (!conf.htmlLabels) {
58075 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
58076
58077 for (var k = 0; k < labels.length; k++) {
58078 var label = labels[k]; // Get dimensions of label
58079
58080 var dim = label.getBBox();
58081 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
58082 rect.setAttribute('rx', 0);
58083 rect.setAttribute('ry', 0);
58084 rect.setAttribute('width', dim.width);
58085 rect.setAttribute('height', dim.height); // rect.setAttribute('style', 'fill:#e8e8e8;');
58086
58087 label.insertBefore(rect, label.firstChild);
58088 }
58089 } // If node has a link, wrap it in an anchor SVG object.
58090
58091
58092 var keys = Object.keys(vert);
58093 keys.forEach(function (key) {
58094 var vertex = vert[key];
58095
58096 if (vertex.link) {
58097 var node = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' [id="' + key + '"]');
58098
58099 if (node) {
58100 var link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
58101 link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
58102 link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
58103 link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
58104
58105 if (vertex.linkTarget) {
58106 link.setAttributeNS('http://www.w3.org/2000/svg', 'target', vertex.linkTarget);
58107 }
58108
58109 var linkNode = node.insert(function () {
58110 return link;
58111 }, ':first-child');
58112 var shape = node.select('.label-container');
58113
58114 if (shape) {
58115 linkNode.append(function () {
58116 return shape.node();
58117 });
58118 }
58119
58120 var _label = node.select('.label');
58121
58122 if (_label) {
58123 linkNode.append(function () {
58124 return _label.node();
58125 });
58126 }
58127 }
58128 }
58129 });
58130};
58131/* harmony default export */ __webpack_exports__["default"] = ({
58132 setConf: setConf,
58133 addVertices: addVertices,
58134 addEdges: addEdges,
58135 getClasses: getClasses,
58136 draw: draw
58137});
58138
58139/***/ }),
58140
58141/***/ "./src/diagrams/flowchart/flowRenderer.js":
58142/*!************************************************!*\
58143 !*** ./src/diagrams/flowchart/flowRenderer.js ***!
58144 \************************************************/
58145/*! exports provided: setConf, addVertices, addEdges, getClasses, draw, default */
58146/***/ (function(module, __webpack_exports__, __webpack_require__) {
58147
58148"use strict";
58149__webpack_require__.r(__webpack_exports__);
58150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
58151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertices", function() { return addVertices; });
58152/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEdges", function() { return addEdges; });
58153/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
58154/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
58155/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
58156/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
58157/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
58158/* harmony import */ var _flowDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flowDb */ "./src/diagrams/flowchart/flowDb.js");
58159/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
58160/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_flow__WEBPACK_IMPORTED_MODULE_3__);
58161/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
58162/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! dagre-d3 */ "./node_modules/dagre-d3/index.js");
58163/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_5__);
58164/* harmony import */ var dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! dagre-d3/lib/label/add-html-label.js */ "./node_modules/dagre-d3/lib/label/add-html-label.js");
58165/* harmony import */ var dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6__);
58166/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
58167/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
58168/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
58169/* harmony import */ var _flowChartShapes__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./flowChartShapes */ "./src/diagrams/flowchart/flowChartShapes.js");
58170
58171
58172
58173
58174
58175
58176
58177
58178
58179
58180
58181var conf = {};
58182var setConf = function setConf(cnf) {
58183 var keys = Object.keys(cnf);
58184
58185 for (var i = 0; i < keys.length; i++) {
58186 conf[keys[i]] = cnf[keys[i]];
58187 }
58188};
58189/**
58190 * Function that adds the vertices found in the graph definition to the graph to be rendered.
58191 * @param vert Object containing the vertices.
58192 * @param g The graph that is to be drawn.
58193 */
58194
58195var addVertices = function addVertices(vert, g, svgId) {
58196 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(svgId, "\"]"));
58197 var keys = Object.keys(vert); // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
58198
58199 keys.forEach(function (id) {
58200 var vertex = vert[id];
58201 /**
58202 * Variable for storing the classes for the vertex
58203 * @type {string}
58204 */
58205
58206 var classStr = 'default';
58207
58208 if (vertex.classes.length > 0) {
58209 classStr = vertex.classes.join(' ');
58210 }
58211
58212 var styles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(vertex.styles); // Use vertex id as text in the box if no text is provided by the graph definition
58213
58214 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
58215
58216 var vertexNode;
58217
58218 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
58219 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
58220 var node = {
58221 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
58222 return "<i class='".concat(s.replace(':', ' '), "'></i>");
58223 })
58224 };
58225 vertexNode = dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6___default()(svg, node).node();
58226 vertexNode.parentNode.removeChild(vertexNode);
58227 } else {
58228 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
58229 svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
58230 var rows = vertexText.split(_common_common__WEBPACK_IMPORTED_MODULE_8__["default"].lineBreakRegex);
58231
58232 for (var j = 0; j < rows.length; j++) {
58233 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
58234 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
58235 tspan.setAttribute('dy', '1em');
58236 tspan.setAttribute('x', '1');
58237 tspan.textContent = rows[j];
58238 svgLabel.appendChild(tspan);
58239 }
58240
58241 vertexNode = svgLabel;
58242 }
58243
58244 var radious = 0;
58245 var _shape = ''; // Set the shape based parameters
58246
58247 switch (vertex.type) {
58248 case 'round':
58249 radious = 5;
58250 _shape = 'rect';
58251 break;
58252
58253 case 'square':
58254 _shape = 'rect';
58255 break;
58256
58257 case 'diamond':
58258 _shape = 'question';
58259 break;
58260
58261 case 'hexagon':
58262 _shape = 'hexagon';
58263 break;
58264
58265 case 'odd':
58266 _shape = 'rect_left_inv_arrow';
58267 break;
58268
58269 case 'lean_right':
58270 _shape = 'lean_right';
58271 break;
58272
58273 case 'lean_left':
58274 _shape = 'lean_left';
58275 break;
58276
58277 case 'trapezoid':
58278 _shape = 'trapezoid';
58279 break;
58280
58281 case 'inv_trapezoid':
58282 _shape = 'inv_trapezoid';
58283 break;
58284
58285 case 'odd_right':
58286 _shape = 'rect_left_inv_arrow';
58287 break;
58288
58289 case 'circle':
58290 _shape = 'circle';
58291 break;
58292
58293 case 'ellipse':
58294 _shape = 'ellipse';
58295 break;
58296
58297 case 'stadium':
58298 _shape = 'stadium';
58299 break;
58300
58301 case 'subroutine':
58302 _shape = 'subroutine';
58303 break;
58304
58305 case 'cylinder':
58306 _shape = 'cylinder';
58307 break;
58308
58309 case 'group':
58310 _shape = 'rect';
58311 break;
58312
58313 default:
58314 _shape = 'rect';
58315 } // Add the node
58316
58317
58318 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].warn('Adding node', vertex.id, vertex.domId);
58319 g.setNode(_flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(vertex.id), {
58320 labelType: 'svg',
58321 labelStyle: styles.labelStyle,
58322 shape: _shape,
58323 label: vertexNode,
58324 rx: radious,
58325 ry: radious,
58326 class: classStr,
58327 style: styles.style,
58328 id: _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(vertex.id)
58329 });
58330 });
58331};
58332/**
58333 * Add edges to graph based on parsed graph defninition
58334 * @param {Object} edges The edges to add to the graph
58335 * @param {Object} g The graph object
58336 */
58337
58338var addEdges = function addEdges(edges, g) {
58339 var cnt = 0;
58340 var defaultStyle;
58341 var defaultLabelStyle;
58342
58343 if (typeof edges.defaultStyle !== 'undefined') {
58344 var defaultStyles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edges.defaultStyle);
58345 defaultStyle = defaultStyles.style;
58346 defaultLabelStyle = defaultStyles.labelStyle;
58347 }
58348
58349 edges.forEach(function (edge) {
58350 cnt++; // Identify Link
58351
58352 var linkId = 'L-' + edge.start + '-' + edge.end;
58353 var linkNameStart = 'LS-' + edge.start;
58354 var linkNameEnd = 'LE-' + edge.end;
58355 var edgeData = {}; // Set link type for rendering
58356
58357 if (edge.type === 'arrow_open') {
58358 edgeData.arrowhead = 'none';
58359 } else {
58360 edgeData.arrowhead = 'normal';
58361 }
58362
58363 var style = '';
58364 var labelStyle = '';
58365
58366 if (typeof edge.style !== 'undefined') {
58367 var styles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edge.style);
58368 style = styles.style;
58369 labelStyle = styles.labelStyle;
58370 } else {
58371 switch (edge.stroke) {
58372 case 'normal':
58373 style = 'fill:none';
58374
58375 if (typeof defaultStyle !== 'undefined') {
58376 style = defaultStyle;
58377 }
58378
58379 if (typeof defaultLabelStyle !== 'undefined') {
58380 labelStyle = defaultLabelStyle;
58381 }
58382
58383 break;
58384
58385 case 'dotted':
58386 style = 'fill:none;stroke-width:2px;stroke-dasharray:3;';
58387 break;
58388
58389 case 'thick':
58390 style = ' stroke-width: 3.5px;fill:none';
58391 break;
58392 }
58393 }
58394
58395 edgeData.style = style;
58396 edgeData.labelStyle = labelStyle;
58397
58398 if (typeof edge.interpolate !== 'undefined') {
58399 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
58400 } else if (typeof edges.defaultInterpolate !== 'undefined') {
58401 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
58402 } else {
58403 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(conf.curve, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
58404 }
58405
58406 if (typeof edge.text === 'undefined') {
58407 if (typeof edge.style !== 'undefined') {
58408 edgeData.arrowheadStyle = 'fill: #333';
58409 }
58410 } else {
58411 edgeData.arrowheadStyle = 'fill: #333';
58412 edgeData.labelpos = 'c';
58413
58414 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
58415 edgeData.labelType = 'html';
58416 edgeData.label = "<span id=\"L-".concat(linkId, "\" class=\"edgeLabel L-").concat(linkNameStart, "' L-").concat(linkNameEnd, "\">").concat(edge.text.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
58417 return "<i class='".concat(s.replace(':', ' '), "'></i>");
58418 }), "</span>");
58419 } else {
58420 edgeData.labelType = 'text';
58421 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_8__["default"].lineBreakRegex, '\n');
58422
58423 if (typeof edge.style === 'undefined') {
58424 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
58425 }
58426
58427 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
58428 }
58429 }
58430
58431 edgeData.id = linkId;
58432 edgeData.class = linkNameStart + ' ' + linkNameEnd;
58433 edgeData.minlen = edge.length || 1; // Add the edge to the graph
58434
58435 g.setEdge(_flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(edge.start), _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(edge.end), edgeData, cnt);
58436 });
58437};
58438/**
58439 * Returns the all the styles from classDef statements in the graph definition.
58440 * @returns {object} classDef styles
58441 */
58442
58443var getClasses = function getClasses(text) {
58444 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Extracting classes');
58445 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
58446
58447 try {
58448 var parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
58449 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
58450
58451 parser.parse(text);
58452 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getClasses();
58453 } catch (e) {
58454 return;
58455 }
58456};
58457/**
58458 * Draws a flowchart in the tag with id: id based on the graph definition in text.
58459 * @param text
58460 * @param id
58461 */
58462
58463var draw = function draw(text, id) {
58464 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Drawing flowchart');
58465 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
58466 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].setGen('gen-1');
58467 var parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
58468 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
58469 // try {
58470
58471 parser.parse(text); // } catch (err) {
58472 // logger.debug('Parsing failed');
58473 // }
58474 // Fetch the default direction, use TD if none was found
58475
58476 var dir = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
58477
58478 if (typeof dir === 'undefined') {
58479 dir = 'TD';
58480 }
58481
58482 var conf = Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart;
58483 var nodeSpacing = conf.nodeSpacing || 50;
58484 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
58485
58486 var g = new graphlib__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
58487 multigraph: true,
58488 compound: true
58489 }).setGraph({
58490 rankdir: dir,
58491 nodesep: nodeSpacing,
58492 ranksep: rankSpacing,
58493 marginx: 8,
58494 marginy: 8
58495 }).setDefaultEdgeLabel(function () {
58496 return {};
58497 });
58498 var subG;
58499 var subGraphs = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getSubGraphs();
58500
58501 for (var _i = subGraphs.length - 1; _i >= 0; _i--) {
58502 subG = subGraphs[_i];
58503 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
58504 } // Fetch the verices/nodes and edges/links from the parsed graph definition
58505
58506
58507 var vert = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getVertices();
58508 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].warn('Get vertices', vert);
58509 var edges = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getEdges();
58510 var i = 0;
58511
58512 for (i = subGraphs.length - 1; i >= 0; i--) {
58513 subG = subGraphs[i];
58514 Object(d3__WEBPACK_IMPORTED_MODULE_1__["selectAll"])('cluster').append('text');
58515
58516 for (var j = 0; j < subG.nodes.length; j++) {
58517 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].warn('Setting subgraph', subG.nodes[j], _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(subG.nodes[j]), _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(subG.id));
58518 g.setParent(_flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(subG.nodes[j]), _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(subG.id));
58519 }
58520 }
58521
58522 addVertices(vert, g, id);
58523 addEdges(edges, g); // Create the renderer
58524
58525 var Render = dagre_d3__WEBPACK_IMPORTED_MODULE_5___default.a.render;
58526 var render = new Render(); // Add custom shapes
58527
58528 _flowChartShapes__WEBPACK_IMPORTED_MODULE_10__["default"].addToRender(render); // Add our custom arrow - an empty arrowhead
58529
58530 render.arrows().none = function normal(parent, id, edge, type) {
58531 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');
58532 var path = marker.append('path').attr('d', 'M 0 0 L 0 0 L 0 0 z');
58533 dagre_d3__WEBPACK_IMPORTED_MODULE_5___default.a.util.applyStyle(path, edge[type + 'Style']);
58534 }; // Override normal arrowhead defined in d3. Remove style & add class to allow css styling.
58535
58536
58537 render.arrows().normal = function normal(parent, id) {
58538 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');
58539 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');
58540 }; // Set up an SVG group so that we can translate the final graph.
58541
58542
58543 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(id, "\"]"));
58544 svg.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');
58545 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].warn(g); // Run the renderer. This is what draws the final graph.
58546
58547 var element = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' g');
58548 render(element, g);
58549 element.selectAll('g.node').attr('title', function () {
58550 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getTooltip(this.id);
58551 });
58552 var padding = conf.diagramPadding;
58553 var svgBounds = svg.node().getBBox();
58554 var width = svgBounds.width + padding * 2;
58555 var height = svgBounds.height + padding * 2;
58556 Object(_utils__WEBPACK_IMPORTED_MODULE_9__["configureSvgSize"])(svg, height, width, conf.useMaxWidth); // Ensure the viewBox includes the whole svgBounds area with extra space for padding
58557
58558 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
58559 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].debug("viewBox ".concat(vBox));
58560 svg.attr('viewBox', vBox); // Index nodes
58561
58562 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].indexNodes('subGraph' + i); // reposition labels
58563
58564 for (i = 0; i < subGraphs.length; i++) {
58565 subG = subGraphs[i];
58566
58567 if (subG.title !== 'undefined') {
58568 var clusterRects = document.querySelectorAll('#' + id + ' [id="' + _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(subG.id) + '"] rect');
58569 var clusterEl = document.querySelectorAll('#' + id + ' [id="' + _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(subG.id) + '"]');
58570 var xPos = clusterRects[0].x.baseVal.value;
58571 var yPos = clusterRects[0].y.baseVal.value;
58572 var _width = clusterRects[0].width.baseVal.value;
58573 var cluster = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])(clusterEl[0]);
58574 var te = cluster.select('.label');
58575 te.attr('transform', "translate(".concat(xPos + _width / 2, ", ").concat(yPos + 14, ")"));
58576 te.attr('id', id + 'Text');
58577
58578 for (var _j = 0; _j < subG.classes.length; _j++) {
58579 clusterEl[0].classList.add(subG.classes[_j]);
58580 }
58581 }
58582 } // Add label rects for non html labels
58583
58584
58585 if (!conf.htmlLabels || true) {
58586 // eslint-disable-line
58587 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
58588
58589 for (var k = 0; k < labels.length; k++) {
58590 var label = labels[k]; // Get dimensions of label
58591
58592 var dim = label.getBBox();
58593 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
58594 rect.setAttribute('rx', 0);
58595 rect.setAttribute('ry', 0);
58596 rect.setAttribute('width', dim.width);
58597 rect.setAttribute('height', dim.height); // rect.setAttribute('style', 'fill:#e8e8e8;');
58598
58599 label.insertBefore(rect, label.firstChild);
58600 }
58601 } // If node has a link, wrap it in an anchor SVG object.
58602
58603
58604 var keys = Object.keys(vert);
58605 keys.forEach(function (key) {
58606 var vertex = vert[key];
58607
58608 if (vertex.link) {
58609 var node = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' [id="' + _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].lookUpDomId(key) + '"]');
58610
58611 if (node) {
58612 var link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
58613 link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
58614 link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
58615 link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
58616
58617 if (vertex.linkTarget) {
58618 link.setAttributeNS('http://www.w3.org/2000/svg', 'target', vertex.linkTarget);
58619 }
58620
58621 var linkNode = node.insert(function () {
58622 return link;
58623 }, ':first-child');
58624 var shape = node.select('.label-container');
58625
58626 if (shape) {
58627 linkNode.append(function () {
58628 return shape.node();
58629 });
58630 }
58631
58632 var _label = node.select('.label');
58633
58634 if (_label) {
58635 linkNode.append(function () {
58636 return _label.node();
58637 });
58638 }
58639 }
58640 }
58641 });
58642};
58643/* harmony default export */ __webpack_exports__["default"] = ({
58644 setConf: setConf,
58645 addVertices: addVertices,
58646 addEdges: addEdges,
58647 getClasses: getClasses,
58648 draw: draw
58649});
58650
58651/***/ }),
58652
58653/***/ "./src/diagrams/flowchart/parser/flow.jison":
58654/*!**************************************************!*\
58655 !*** ./src/diagrams/flowchart/parser/flow.jison ***!
58656 \**************************************************/
58657/*! no static exports found */
58658/***/ (function(module, exports, __webpack_require__) {
58659
58660/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
58661/*
58662 Returns a Parser object of the following structure:
58663
58664 Parser: {
58665 yy: {}
58666 }
58667
58668 Parser.prototype: {
58669 yy: {},
58670 trace: function(),
58671 symbols_: {associative list: name ==> number},
58672 terminals_: {associative list: number ==> name},
58673 productions_: [...],
58674 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
58675 table: [...],
58676 defaultActions: {...},
58677 parseError: function(str, hash),
58678 parse: function(input),
58679
58680 lexer: {
58681 EOF: 1,
58682 parseError: function(str, hash),
58683 setInput: function(input),
58684 input: function(),
58685 unput: function(str),
58686 more: function(),
58687 less: function(n),
58688 pastInput: function(),
58689 upcomingInput: function(),
58690 showPosition: function(),
58691 test_match: function(regex_match_array, rule_index),
58692 next: function(),
58693 lex: function(),
58694 begin: function(condition),
58695 popState: function(),
58696 _currentRules: function(),
58697 topState: function(),
58698 pushState: function(condition),
58699
58700 options: {
58701 ranges: boolean (optional: true ==> token location info will include a .range[] member)
58702 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
58703 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)
58704 },
58705
58706 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
58707 rules: [...],
58708 conditions: {associative list: name ==> set},
58709 }
58710 }
58711
58712
58713 token location info (@$, _$, etc.): {
58714 first_line: n,
58715 last_line: n,
58716 first_column: n,
58717 last_column: n,
58718 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
58719 }
58720
58721
58722 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
58723 text: (matched text)
58724 token: (the produced terminal token, if any)
58725 line: (yylineno)
58726 }
58727 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
58728 loc: (yylloc)
58729 expected: (string describing the set of expected tokens)
58730 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
58731 }
58732*/
58733var parser = (function(){
58734var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,9],$V1=[1,7],$V2=[1,6],$V3=[1,8],$V4=[1,20,21,22,23,38,46,75,76,77,78,79,80,91,92,95,96,97,99,100,106,107,108,109,110,111],$V5=[2,10],$V6=[1,20],$V7=[1,21],$V8=[1,22],$V9=[1,23],$Va=[1,30],$Vb=[1,54],$Vc=[1,32],$Vd=[1,33],$Ve=[1,34],$Vf=[1,35],$Vg=[1,36],$Vh=[1,48],$Vi=[1,43],$Vj=[1,45],$Vk=[1,40],$Vl=[1,44],$Vm=[1,47],$Vn=[1,51],$Vo=[1,52],$Vp=[1,53],$Vq=[1,42],$Vr=[1,46],$Vs=[1,49],$Vt=[1,50],$Vu=[1,41],$Vv=[1,57],$Vw=[1,62],$Vx=[1,20,21,22,23,38,42,46,75,76,77,78,79,80,91,92,95,96,97,99,100,106,107,108,109,110,111],$Vy=[1,66],$Vz=[1,65],$VA=[1,67],$VB=[20,21,23,69,70],$VC=[20,21,22,23,69,70],$VD=[20,21,22,23,47,69,70],$VE=[20,21,22,23,40,46,47,49,51,53,55,57,59,61,62,64,69,70,80,91,92,95,96,97,99,100,106,107,108,109,110,111],$VF=[20,21,23],$VG=[20,21,23,46,69,70,80,91,92,95,96,97,99,100,106,107,108,109,110,111],$VH=[1,12,20,21,22,23,24,38,42,46,75,76,77,78,79,80,91,92,95,96,97,99,100,106,107,108,109,110,111],$VI=[46,80,91,92,95,96,97,99,100,106,107,108,109,110,111],$VJ=[1,115],$VK=[1,136],$VL=[1,137],$VM=[1,138],$VN=[1,139],$VO=[1,119],$VP=[1,110],$VQ=[1,111],$VR=[1,107],$VS=[1,131],$VT=[1,132],$VU=[1,133],$VV=[1,134],$VW=[1,135],$VX=[1,140],$VY=[1,141],$VZ=[1,113],$V_=[1,121],$V$=[1,124],$V01=[1,122],$V11=[1,123],$V21=[1,116],$V31=[1,129],$V41=[1,128],$V51=[1,112],$V61=[1,109],$V71=[1,118],$V81=[1,120],$V91=[1,125],$Va1=[1,126],$Vb1=[1,127],$Vc1=[1,130],$Vd1=[20,21,22,23,38,42,46,75,76,77,78,79,80,91,92,95,96,97,99,100,106,107,108,109,110,111],$Ve1=[1,144],$Vf1=[1,148],$Vg1=[1,150],$Vh1=[1,151],$Vi1=[12,21,22,24],$Vj1=[20,21,22,23,24,26,38,40,41,42,46,50,52,54,56,58,60,61,63,65,69,70,71,75,76,77,78,79,80,81,84,91,92,95,96,97,99,100,101,102,106,107,108,109,110,111],$Vk1=[20,21,22,23,26,46,80,91,92,95,96,97,99,100,106,107,108,109,110,111],$Vl1=[22,92],$Vm1=[1,220],$Vn1=[1,224],$Vo1=[1,221],$Vp1=[1,218],$Vq1=[1,215],$Vr1=[1,216],$Vs1=[1,217],$Vt1=[1,219],$Vu1=[1,222],$Vv1=[1,223],$Vw1=[1,225],$Vx1=[1,241],$Vy1=[20,21,23,92],$Vz1=[20,21,22,23,75,88,91,92,95,96,97,98,99,100,101];
58735var parser = {trace: function trace () { },
58736yy: {},
58737symbols_: {"error":2,"start":3,"mermaidDoc":4,"directive":5,"openDirective":6,"typeDirective":7,"closeDirective":8,"separator":9,":":10,"argDirective":11,"open_directive":12,"type_directive":13,"arg_directive":14,"close_directive":15,"graphConfig":16,"document":17,"line":18,"statement":19,"SEMI":20,"NEWLINE":21,"SPACE":22,"EOF":23,"GRAPH":24,"NODIR":25,"DIR":26,"FirstStmtSeperator":27,"ending":28,"endToken":29,"spaceList":30,"spaceListNewline":31,"verticeStatement":32,"styleStatement":33,"linkStyleStatement":34,"classDefStatement":35,"classStatement":36,"clickStatement":37,"subgraph":38,"text":39,"SQS":40,"SQE":41,"end":42,"link":43,"node":44,"vertex":45,"AMP":46,"STYLE_SEPARATOR":47,"idString":48,"PS":49,"PE":50,"(-":51,"-)":52,"STADIUMSTART":53,"STADIUMEND":54,"SUBROUTINESTART":55,"SUBROUTINEEND":56,"CYLINDERSTART":57,"CYLINDEREND":58,"DIAMOND_START":59,"DIAMOND_STOP":60,"TAGEND":61,"TRAPSTART":62,"TRAPEND":63,"INVTRAPSTART":64,"INVTRAPEND":65,"linkStatement":66,"arrowText":67,"TESTSTR":68,"START_LINK":69,"LINK":70,"PIPE":71,"textToken":72,"STR":73,"keywords":74,"STYLE":75,"LINKSTYLE":76,"CLASSDEF":77,"CLASS":78,"CLICK":79,"DOWN":80,"UP":81,"textNoTags":82,"textNoTagsToken":83,"DEFAULT":84,"stylesOpt":85,"alphaNum":86,"LINK_TARGET":87,"HEX":88,"numList":89,"INTERPOLATE":90,"NUM":91,"COMMA":92,"style":93,"styleComponent":94,"ALPHA":95,"COLON":96,"MINUS":97,"UNIT":98,"BRKT":99,"DOT":100,"PCT":101,"TAGSTART":102,"alphaNumToken":103,"idStringToken":104,"alphaNumStatement":105,"PUNCTUATION":106,"UNICODE_TEXT":107,"PLUS":108,"EQUALS":109,"MULT":110,"UNDERSCORE":111,"graphCodeTokens":112,"ARROW_CROSS":113,"ARROW_POINT":114,"ARROW_CIRCLE":115,"ARROW_OPEN":116,"QUOTE":117,"$accept":0,"$end":1},
58738terminals_: {2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",46:"AMP",47:"STYLE_SEPARATOR",49:"PS",50:"PE",51:"(-",52:"-)",53:"STADIUMSTART",54:"STADIUMEND",55:"SUBROUTINESTART",56:"SUBROUTINEEND",57:"CYLINDERSTART",58:"CYLINDEREND",59:"DIAMOND_START",60:"DIAMOND_STOP",61:"TAGEND",62:"TRAPSTART",63:"TRAPEND",64:"INVTRAPSTART",65:"INVTRAPEND",68:"TESTSTR",69:"START_LINK",70:"LINK",71:"PIPE",73:"STR",75:"STYLE",76:"LINKSTYLE",77:"CLASSDEF",78:"CLASS",79:"CLICK",80:"DOWN",81:"UP",84:"DEFAULT",87:"LINK_TARGET",88:"HEX",90:"INTERPOLATE",91:"NUM",92:"COMMA",95:"ALPHA",96:"COLON",97:"MINUS",98:"UNIT",99:"BRKT",100:"DOT",101:"PCT",102:"TAGSTART",106:"PUNCTUATION",107:"UNICODE_TEXT",108:"PLUS",109:"EQUALS",110:"MULT",111:"UNDERSCORE",113:"ARROW_CROSS",114:"ARROW_POINT",115:"ARROW_CIRCLE",116:"ARROW_OPEN",117:"QUOTE"},
58739productions_: [0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[44,1],[44,5],[44,3],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[43,2],[43,3],[43,3],[43,1],[43,3],[66,1],[67,3],[39,1],[39,2],[39,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[82,1],[82,2],[35,5],[35,5],[36,5],[37,5],[37,7],[37,5],[37,7],[37,7],[37,9],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[89,1],[89,3],[85,1],[85,3],[93,1],[93,2],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[72,1],[72,1],[72,1],[72,1],[72,1],[72,1],[83,1],[83,1],[83,1],[83,1],[48,1],[48,2],[86,1],[86,2],[105,1],[105,1],[105,1],[105,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[104,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1]],
58740performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
58741/* this == yyval */
58742
58743var $0 = $$.length - 1;
58744switch (yystate) {
58745case 5:
58746 yy.parseDirective('%%{', 'open_directive');
58747break;
58748case 6:
58749 yy.parseDirective($$[$0], 'type_directive');
58750break;
58751case 7:
58752 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
58753break;
58754case 8:
58755 yy.parseDirective('}%%', 'close_directive', 'flowchart');
58756break;
58757case 10:
58758 this.$ = [];
58759break;
58760case 11:
58761
58762 if($$[$0] !== []){
58763 $$[$0-1].push($$[$0]);
58764 }
58765 this.$=$$[$0-1];
58766break;
58767case 12: case 76: case 78: case 90: case 138: case 140: case 141:
58768this.$=$$[$0];
58769break;
58770case 19:
58771 yy.setDirection('TB');this.$ = 'TB';
58772break;
58773case 20:
58774 yy.setDirection($$[$0-1]);this.$ = $$[$0-1];
58775break;
58776case 35:
58777 /* console.warn('finat vs', $$[$0-1].nodes); */ this.$=$$[$0-1].nodes
58778break;
58779case 36: case 37: case 38: case 39: case 40:
58780this.$=[];
58781break;
58782case 41:
58783this.$=yy.addSubGraph($$[$0-6],$$[$0-1],$$[$0-4]);
58784break;
58785case 42:
58786this.$=yy.addSubGraph($$[$0-3],$$[$0-1],$$[$0-3]);
58787break;
58788case 43:
58789this.$=yy.addSubGraph(undefined,$$[$0-1],undefined);
58790break;
58791case 47:
58792 /* console.warn('vs',$$[$0-2].stmt,$$[$0]); */ yy.addLink($$[$0-2].stmt,$$[$0],$$[$0-1]); this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0-2].nodes) }
58793break;
58794case 48:
58795 /* console.warn('vs',$$[$0-3].stmt,$$[$0-1]); */ yy.addLink($$[$0-3].stmt,$$[$0-1],$$[$0-2]); this.$ = { stmt: $$[$0-1], nodes: $$[$0-1].concat($$[$0-3].nodes) }
58796break;
58797case 49:
58798/*console.warn('noda', $$[$0-1]);*/ this.$ = {stmt: $$[$0-1], nodes:$$[$0-1] }
58799break;
58800case 50:
58801 /*console.warn('noda', $$[$0]);*/ this.$ = {stmt: $$[$0], nodes:$$[$0] }
58802break;
58803case 51:
58804 /* console.warn('nod', $$[$0]); */ this.$ = [$$[$0]];
58805break;
58806case 52:
58807 this.$ = $$[$0-4].concat($$[$0]); /* console.warn('pip', $$[$0-4][0], $$[$0], this.$); */
58808break;
58809case 53:
58810this.$ = [$$[$0-2]];yy.setClass($$[$0-2],$$[$0])
58811break;
58812case 54:
58813this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');
58814break;
58815case 55:
58816this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle');
58817break;
58818case 56:
58819this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'ellipse');
58820break;
58821case 57:
58822this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'stadium');
58823break;
58824case 58:
58825this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'subroutine');
58826break;
58827case 59:
58828this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'cylinder');
58829break;
58830case 60:
58831this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');
58832break;
58833case 61:
58834this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');
58835break;
58836case 62:
58837this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'hexagon');
58838break;
58839case 63:
58840this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd');
58841break;
58842case 64:
58843this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'trapezoid');
58844break;
58845case 65:
58846this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'inv_trapezoid');
58847break;
58848case 66:
58849this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_right');
58850break;
58851case 67:
58852this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_left');
58853break;
58854case 68:
58855 /*console.warn('h: ', $$[$0]);*/this.$ = $$[$0];yy.addVertex($$[$0]);
58856break;
58857case 69:
58858$$[$0-1].text = $$[$0];this.$ = $$[$0-1];
58859break;
58860case 70: case 71:
58861$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2];
58862break;
58863case 72:
58864this.$ = $$[$0];
58865break;
58866case 73:
58867var inf = yy.destructLink($$[$0], $$[$0-2]); this.$ = {"type":inf.type,"stroke":inf.stroke,"length":inf.length,"text":$$[$0-1]};
58868break;
58869case 74:
58870var inf = yy.destructLink($$[$0]);this.$ = {"type":inf.type,"stroke":inf.stroke,"length":inf.length};
58871break;
58872case 75:
58873this.$ = $$[$0-1];
58874break;
58875case 77: case 91: case 139:
58876this.$=$$[$0-1]+''+$$[$0];
58877break;
58878case 92: case 93:
58879this.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]);
58880break;
58881case 94:
58882this.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]);
58883break;
58884case 95:
58885this.$ = $$[$0-4];yy.setClickEvent($$[$0-2], $$[$0], undefined);
58886break;
58887case 96:
58888this.$ = $$[$0-6];yy.setClickEvent($$[$0-4], $$[$0-2], $$[$0]) ;
58889break;
58890case 97:
58891this.$ = $$[$0-4];yy.setLink($$[$0-2], $$[$0], undefined, undefined);
58892break;
58893case 98:
58894this.$ = $$[$0-6];yy.setLink($$[$0-4], $$[$0-2], $$[$0], undefined );
58895break;
58896case 99:
58897this.$ = $$[$0-6];yy.setLink($$[$0-4], $$[$0-2], undefined, $$[$0] );
58898break;
58899case 100:
58900this.$ = $$[$0-8];yy.setLink($$[$0-6], $$[$0-4], $$[$0-2], $$[$0] );
58901break;
58902case 101:
58903this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);
58904break;
58905case 102: case 104:
58906this.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]);
58907break;
58908case 103:
58909this.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]);
58910break;
58911case 105:
58912this.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]);
58913break;
58914case 106:
58915this.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]);
58916break;
58917case 107:
58918this.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]);
58919break;
58920case 108:
58921this.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]);
58922break;
58923case 109: case 111:
58924this.$ = [$$[$0]]
58925break;
58926case 110: case 112:
58927$$[$0-2].push($$[$0]);this.$ = $$[$0-2];
58928break;
58929case 114:
58930this.$ = $$[$0-1] + $$[$0];
58931break;
58932case 136:
58933this.$=$$[$0]
58934break;
58935case 137:
58936this.$=$$[$0-1]+''+$$[$0]
58937break;
58938case 142:
58939this.$='v';
58940break;
58941case 143:
58942this.$='-';
58943break;
58944}
58945},
58946table: [{3:1,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},o($V4,$V5,{17:11}),{7:12,13:[1,13]},{16:14,21:$V1,22:$V2,24:$V3},{16:15,21:$V1,22:$V2,24:$V3},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,44:31,45:37,46:$Vb,48:38,75:$Vc,76:$Vd,77:$Ve,78:$Vf,79:$Vg,80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,104:39,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu},{8:55,10:[1,56],15:$Vv},o([10,15],[2,6]),o($V4,[2,17]),o($V4,[2,18]),o($V4,[2,19]),{20:[1,59],21:[1,60],22:$Vw,27:58,30:61},o($Vx,[2,11]),o($Vx,[2,12]),o($Vx,[2,13]),o($Vx,[2,14]),o($Vx,[2,15]),o($Vx,[2,16]),{9:63,20:$Vy,21:$Vz,23:$VA,43:64,66:68,69:[1,69],70:[1,70]},{9:71,20:$Vy,21:$Vz,23:$VA},{9:72,20:$Vy,21:$Vz,23:$VA},{9:73,20:$Vy,21:$Vz,23:$VA},{9:74,20:$Vy,21:$Vz,23:$VA},{9:75,20:$Vy,21:$Vz,23:$VA},{9:77,20:$Vy,21:$Vz,22:[1,76],23:$VA},o($VB,[2,50],{30:78,22:$Vw}),{22:[1,79]},{22:[1,80]},{22:[1,81]},{22:[1,82]},{22:[1,83]},o($VC,[2,51],{47:[1,84]}),o($VD,[2,68],{104:95,40:[1,85],46:$Vb,49:[1,86],51:[1,87],53:[1,88],55:[1,89],57:[1,90],59:[1,91],61:[1,92],62:[1,93],64:[1,94],80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu}),o($VE,[2,136]),o($VE,[2,157]),o($VE,[2,158]),o($VE,[2,159]),o($VE,[2,160]),o($VE,[2,161]),o($VE,[2,162]),o($VE,[2,163]),o($VE,[2,164]),o($VE,[2,165]),o($VE,[2,166]),o($VE,[2,167]),o($VE,[2,168]),o($VE,[2,169]),o($VE,[2,170]),o($VE,[2,171]),{9:96,20:$Vy,21:$Vz,23:$VA},{11:97,14:[1,98]},o($VF,[2,8]),o($V4,[2,20]),o($V4,[2,26]),o($V4,[2,27]),{21:[1,99]},o($VG,[2,34],{30:100,22:$Vw}),o($Vx,[2,35]),{44:101,45:37,46:$Vb,48:38,80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,104:39,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu},o($VH,[2,44]),o($VH,[2,45]),o($VH,[2,46]),o($VI,[2,72],{67:102,68:[1,103],71:[1,104]}),{22:$VJ,24:$VK,26:$VL,38:$VM,39:105,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o([46,68,71,80,91,92,95,96,97,99,100,106,107,108,109,110,111],[2,74]),o($Vx,[2,36]),o($Vx,[2,37]),o($Vx,[2,38]),o($Vx,[2,39]),o($Vx,[2,40]),{22:$VJ,24:$VK,26:$VL,38:$VM,39:142,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($Vd1,$V5,{17:143}),o($VB,[2,49],{46:$Ve1}),{26:$Vf1,46:$VO,80:$Vg1,86:145,88:[1,146],91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:147,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{84:[1,152],89:153,91:[1,154]},{26:$Vf1,46:$VO,80:$Vg1,84:[1,155],86:156,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:147,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{26:$Vf1,46:$VO,80:$Vg1,86:157,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:147,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{26:$Vf1,46:$VO,80:$Vg1,86:158,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:147,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{46:$Vb,48:159,80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,104:39,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu},{22:$VJ,24:$VK,26:$VL,38:$VM,39:160,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:162,42:$VN,46:$VO,49:[1,161],61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:163,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:164,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:165,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:166,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:167,42:$VN,46:$VO,59:[1,168],61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:169,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:170,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:171,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($VE,[2,137]),o($Vi1,[2,3]),{8:172,15:$Vv},{15:[2,7]},o($V4,[2,28]),o($VG,[2,33]),o($VB,[2,47],{30:173,22:$Vw}),o($VI,[2,69],{22:[1,174]}),{22:[1,175]},{22:$VJ,24:$VK,26:$VL,38:$VM,39:176,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,61:$VP,69:$VQ,70:[1,177],72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($Vj1,[2,76]),o($Vj1,[2,78]),o($Vj1,[2,126]),o($Vj1,[2,127]),o($Vj1,[2,128]),o($Vj1,[2,129]),o($Vj1,[2,130]),o($Vj1,[2,131]),o($Vj1,[2,132]),o($Vj1,[2,133]),o($Vj1,[2,134]),o($Vj1,[2,135]),o($Vj1,[2,144]),o($Vj1,[2,145]),o($Vj1,[2,146]),o($Vj1,[2,147]),o($Vj1,[2,148]),o($Vj1,[2,149]),o($Vj1,[2,150]),o($Vj1,[2,151]),o($Vj1,[2,152]),o($Vj1,[2,153]),o($Vj1,[2,154]),o($Vj1,[2,155]),o($Vj1,[2,156]),o($Vj1,[2,79]),o($Vj1,[2,80]),o($Vj1,[2,81]),o($Vj1,[2,82]),o($Vj1,[2,83]),o($Vj1,[2,84]),o($Vj1,[2,85]),o($Vj1,[2,86]),o($Vj1,[2,87]),o($Vj1,[2,88]),o($Vj1,[2,89]),{9:180,20:$Vy,21:$Vz,22:$VJ,23:$VA,24:$VK,26:$VL,38:$VM,40:[1,179],42:$VN,46:$VO,61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,181],44:31,45:37,46:$Vb,48:38,75:$Vc,76:$Vd,77:$Ve,78:$Vf,79:$Vg,80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,104:39,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu},{22:$Vw,30:182},{22:[1,183],26:$Vf1,46:$VO,80:$Vg1,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:184,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:[1,185]},o($Vk1,[2,138]),o($Vk1,[2,140]),o($Vk1,[2,141]),o($Vk1,[2,142]),o($Vk1,[2,143]),{22:[1,186]},{22:[1,187],92:[1,188]},o($Vl1,[2,109]),{22:[1,189]},{22:[1,190],26:$Vf1,46:$VO,80:$Vg1,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:184,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:[1,191],26:$Vf1,46:$VO,80:$Vg1,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:184,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:[1,192],26:$Vf1,46:$VO,80:$Vg1,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:184,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($VC,[2,53],{104:95,46:$Vb,80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu}),{22:$VJ,24:$VK,26:$VL,38:$VM,41:[1,193],42:$VN,46:$VO,61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:194,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,50:[1,195],61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,52:[1,196],61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,54:[1,197],61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,56:[1,198],61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,58:[1,199],61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,60:[1,200],61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,39:201,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,41:[1,202],42:$VN,46:$VO,61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,61:$VP,63:[1,203],65:[1,204],69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,61:$VP,63:[1,206],65:[1,205],69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{9:207,20:$Vy,21:$Vz,23:$VA},o($VB,[2,48],{46:$Ve1}),o($VI,[2,71]),o($VI,[2,70]),{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,61:$VP,69:$VQ,71:[1,208],72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($VI,[2,73]),o($Vj1,[2,77]),{22:$VJ,24:$VK,26:$VL,38:$VM,39:209,42:$VN,46:$VO,61:$VP,69:$VQ,72:106,73:$VR,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($Vd1,$V5,{17:210}),o($Vx,[2,43]),{45:211,46:$Vb,48:38,80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,104:39,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu},{22:$Vm1,75:$Vn1,85:212,88:$Vo1,91:$Vp1,93:213,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},o($Vk1,[2,139]),{22:$Vm1,75:$Vn1,85:226,88:$Vo1,91:$Vp1,93:213,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},{22:$Vm1,75:$Vn1,85:227,88:$Vo1,90:[1,228],91:$Vp1,93:213,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},{22:$Vm1,75:$Vn1,85:229,88:$Vo1,90:[1,230],91:$Vp1,93:213,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},{91:[1,231]},{22:$Vm1,75:$Vn1,85:232,88:$Vo1,91:$Vp1,93:213,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},{22:$Vm1,75:$Vn1,85:233,88:$Vo1,91:$Vp1,93:213,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},{26:$Vf1,46:$VO,80:$Vg1,86:234,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:147,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{26:$Vf1,46:$VO,73:[1,236],80:$Vg1,86:235,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:147,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($VD,[2,54]),{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,50:[1,237],61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($VD,[2,60]),o($VD,[2,56]),o($VD,[2,57]),o($VD,[2,58]),o($VD,[2,59]),o($VD,[2,61]),{22:$VJ,24:$VK,26:$VL,38:$VM,42:$VN,46:$VO,60:[1,238],61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},o($VD,[2,63]),o($VD,[2,64]),o($VD,[2,66]),o($VD,[2,65]),o($VD,[2,67]),o($Vi1,[2,4]),o([22,46,80,91,92,95,96,97,99,100,106,107,108,109,110,111],[2,75]),{22:$VJ,24:$VK,26:$VL,38:$VM,41:[1,239],42:$VN,46:$VO,61:$VP,69:$VQ,72:178,74:117,75:$VS,76:$VT,77:$VU,78:$VV,79:$VW,80:$VX,81:$VY,83:108,84:$VZ,91:$V_,92:$V$,95:$V01,96:$V11,97:$V21,99:$V31,100:$V41,101:$V51,102:$V61,103:114,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,240],44:31,45:37,46:$Vb,48:38,75:$Vc,76:$Vd,77:$Ve,78:$Vf,79:$Vg,80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,104:39,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu},o($VC,[2,52]),o($VF,[2,101],{92:$Vx1}),o($Vy1,[2,111],{94:242,22:$Vm1,75:$Vn1,88:$Vo1,91:$Vp1,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1}),o($Vz1,[2,113]),o($Vz1,[2,115]),o($Vz1,[2,116]),o($Vz1,[2,117]),o($Vz1,[2,118]),o($Vz1,[2,119]),o($Vz1,[2,120]),o($Vz1,[2,121]),o($Vz1,[2,122]),o($Vz1,[2,123]),o($Vz1,[2,124]),o($Vz1,[2,125]),o($VF,[2,102],{92:$Vx1}),o($VF,[2,103],{92:$Vx1}),{22:[1,243]},o($VF,[2,104],{92:$Vx1}),{22:[1,244]},o($Vl1,[2,110]),o($VF,[2,92],{92:$Vx1}),o($VF,[2,93],{92:$Vx1}),o($VF,[2,94],{103:149,105:184,26:$Vf1,46:$VO,80:$Vg1,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1}),o($VF,[2,95],{103:149,105:184,22:[1,245],26:$Vf1,46:$VO,80:$Vg1,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1}),o($VF,[2,97],{22:[1,246]}),{50:[1,247]},{60:[1,248]},{9:249,20:$Vy,21:$Vz,23:$VA},o($Vx,[2,42]),{22:$Vm1,75:$Vn1,88:$Vo1,91:$Vp1,93:250,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},o($Vz1,[2,114]),{26:$Vf1,46:$VO,80:$Vg1,86:251,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:147,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{26:$Vf1,46:$VO,80:$Vg1,86:252,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,103:149,105:147,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1},{73:[1,253]},{73:[1,254],87:[1,255]},o($VD,[2,55]),o($VD,[2,62]),o($Vd1,$V5,{17:256}),o($Vy1,[2,112],{94:242,22:$Vm1,75:$Vn1,88:$Vo1,91:$Vp1,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1}),o($VF,[2,107],{103:149,105:184,22:[1,257],26:$Vf1,46:$VO,80:$Vg1,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1}),o($VF,[2,108],{103:149,105:184,22:[1,258],26:$Vf1,46:$VO,80:$Vg1,91:$V_,92:$V$,95:$V01,96:$V11,97:$Vh1,99:$V31,100:$V41,106:$V71,107:$V81,108:$V91,109:$Va1,110:$Vb1,111:$Vc1}),o($VF,[2,96]),o($VF,[2,98],{22:[1,259]}),o($VF,[2,99]),{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,260],44:31,45:37,46:$Vb,48:38,75:$Vc,76:$Vd,77:$Ve,78:$Vf,79:$Vg,80:$Vh,91:$Vi,92:$Vj,95:$Vk,96:$Vl,97:$Vm,99:$Vn,100:$Vo,104:39,106:$Vp,107:$Vq,108:$Vr,109:$Vs,110:$Vt,111:$Vu},{22:$Vm1,75:$Vn1,85:261,88:$Vo1,91:$Vp1,93:213,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},{22:$Vm1,75:$Vn1,85:262,88:$Vo1,91:$Vp1,93:213,94:214,95:$Vq1,96:$Vr1,97:$Vs1,98:$Vt1,99:$Vu1,100:$Vv1,101:$Vw1},{87:[1,263]},o($Vx,[2,41]),o($VF,[2,105],{92:$Vx1}),o($VF,[2,106],{92:$Vx1}),o($VF,[2,100])],
58947defaultActions: {2:[2,1],9:[2,5],10:[2,2],98:[2,7]},
58948parseError: function parseError (str, hash) {
58949 if (hash.recoverable) {
58950 this.trace(str);
58951 } else {
58952 var error = new Error(str);
58953 error.hash = hash;
58954 throw error;
58955 }
58956},
58957parse: function parse(input) {
58958 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
58959 var args = lstack.slice.call(arguments, 1);
58960 var lexer = Object.create(this.lexer);
58961 var sharedState = { yy: {} };
58962 for (var k in this.yy) {
58963 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
58964 sharedState.yy[k] = this.yy[k];
58965 }
58966 }
58967 lexer.setInput(input, sharedState.yy);
58968 sharedState.yy.lexer = lexer;
58969 sharedState.yy.parser = this;
58970 if (typeof lexer.yylloc == 'undefined') {
58971 lexer.yylloc = {};
58972 }
58973 var yyloc = lexer.yylloc;
58974 lstack.push(yyloc);
58975 var ranges = lexer.options && lexer.options.ranges;
58976 if (typeof sharedState.yy.parseError === 'function') {
58977 this.parseError = sharedState.yy.parseError;
58978 } else {
58979 this.parseError = Object.getPrototypeOf(this).parseError;
58980 }
58981 function popStack(n) {
58982 stack.length = stack.length - 2 * n;
58983 vstack.length = vstack.length - n;
58984 lstack.length = lstack.length - n;
58985 }
58986 function lex() {
58987 var token;
58988 token = tstack.pop() || lexer.lex() || EOF;
58989 if (typeof token !== 'number') {
58990 if (token instanceof Array) {
58991 tstack = token;
58992 token = tstack.pop();
58993 }
58994 token = self.symbols_[token] || token;
58995 }
58996 return token;
58997 }
58998 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
58999 while (true) {
59000 state = stack[stack.length - 1];
59001 if (this.defaultActions[state]) {
59002 action = this.defaultActions[state];
59003 } else {
59004 if (symbol === null || typeof symbol == 'undefined') {
59005 symbol = lex();
59006 }
59007 action = table[state] && table[state][symbol];
59008 }
59009 if (typeof action === 'undefined' || !action.length || !action[0]) {
59010 var errStr = '';
59011 expected = [];
59012 for (p in table[state]) {
59013 if (this.terminals_[p] && p > TERROR) {
59014 expected.push('\'' + this.terminals_[p] + '\'');
59015 }
59016 }
59017 if (lexer.showPosition) {
59018 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
59019 } else {
59020 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
59021 }
59022 this.parseError(errStr, {
59023 text: lexer.match,
59024 token: this.terminals_[symbol] || symbol,
59025 line: lexer.yylineno,
59026 loc: yyloc,
59027 expected: expected
59028 });
59029 }
59030 if (action[0] instanceof Array && action.length > 1) {
59031 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
59032 }
59033 switch (action[0]) {
59034 case 1:
59035 stack.push(symbol);
59036 vstack.push(lexer.yytext);
59037 lstack.push(lexer.yylloc);
59038 stack.push(action[1]);
59039 symbol = null;
59040 if (!preErrorSymbol) {
59041 yyleng = lexer.yyleng;
59042 yytext = lexer.yytext;
59043 yylineno = lexer.yylineno;
59044 yyloc = lexer.yylloc;
59045 if (recovering > 0) {
59046 recovering--;
59047 }
59048 } else {
59049 symbol = preErrorSymbol;
59050 preErrorSymbol = null;
59051 }
59052 break;
59053 case 2:
59054 len = this.productions_[action[1]][1];
59055 yyval.$ = vstack[vstack.length - len];
59056 yyval._$ = {
59057 first_line: lstack[lstack.length - (len || 1)].first_line,
59058 last_line: lstack[lstack.length - 1].last_line,
59059 first_column: lstack[lstack.length - (len || 1)].first_column,
59060 last_column: lstack[lstack.length - 1].last_column
59061 };
59062 if (ranges) {
59063 yyval._$.range = [
59064 lstack[lstack.length - (len || 1)].range[0],
59065 lstack[lstack.length - 1].range[1]
59066 ];
59067 }
59068 r = this.performAction.apply(yyval, [
59069 yytext,
59070 yyleng,
59071 yylineno,
59072 sharedState.yy,
59073 action[1],
59074 vstack,
59075 lstack
59076 ].concat(args));
59077 if (typeof r !== 'undefined') {
59078 return r;
59079 }
59080 if (len) {
59081 stack = stack.slice(0, -1 * len * 2);
59082 vstack = vstack.slice(0, -1 * len);
59083 lstack = lstack.slice(0, -1 * len);
59084 }
59085 stack.push(this.productions_[action[1]][0]);
59086 vstack.push(yyval.$);
59087 lstack.push(yyval._$);
59088 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
59089 stack.push(newState);
59090 break;
59091 case 3:
59092 return true;
59093 }
59094 }
59095 return true;
59096}};
59097
59098/* generated by jison-lex 0.3.4 */
59099var lexer = (function(){
59100var lexer = ({
59101
59102EOF:1,
59103
59104parseError:function parseError(str, hash) {
59105 if (this.yy.parser) {
59106 this.yy.parser.parseError(str, hash);
59107 } else {
59108 throw new Error(str);
59109 }
59110 },
59111
59112// resets the lexer, sets new input
59113setInput:function (input, yy) {
59114 this.yy = yy || this.yy || {};
59115 this._input = input;
59116 this._more = this._backtrack = this.done = false;
59117 this.yylineno = this.yyleng = 0;
59118 this.yytext = this.matched = this.match = '';
59119 this.conditionStack = ['INITIAL'];
59120 this.yylloc = {
59121 first_line: 1,
59122 first_column: 0,
59123 last_line: 1,
59124 last_column: 0
59125 };
59126 if (this.options.ranges) {
59127 this.yylloc.range = [0,0];
59128 }
59129 this.offset = 0;
59130 return this;
59131 },
59132
59133// consumes and returns one char from the input
59134input:function () {
59135 var ch = this._input[0];
59136 this.yytext += ch;
59137 this.yyleng++;
59138 this.offset++;
59139 this.match += ch;
59140 this.matched += ch;
59141 var lines = ch.match(/(?:\r\n?|\n).*/g);
59142 if (lines) {
59143 this.yylineno++;
59144 this.yylloc.last_line++;
59145 } else {
59146 this.yylloc.last_column++;
59147 }
59148 if (this.options.ranges) {
59149 this.yylloc.range[1]++;
59150 }
59151
59152 this._input = this._input.slice(1);
59153 return ch;
59154 },
59155
59156// unshifts one char (or a string) into the input
59157unput:function (ch) {
59158 var len = ch.length;
59159 var lines = ch.split(/(?:\r\n?|\n)/g);
59160
59161 this._input = ch + this._input;
59162 this.yytext = this.yytext.substr(0, this.yytext.length - len);
59163 //this.yyleng -= len;
59164 this.offset -= len;
59165 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
59166 this.match = this.match.substr(0, this.match.length - 1);
59167 this.matched = this.matched.substr(0, this.matched.length - 1);
59168
59169 if (lines.length - 1) {
59170 this.yylineno -= lines.length - 1;
59171 }
59172 var r = this.yylloc.range;
59173
59174 this.yylloc = {
59175 first_line: this.yylloc.first_line,
59176 last_line: this.yylineno + 1,
59177 first_column: this.yylloc.first_column,
59178 last_column: lines ?
59179 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
59180 + oldLines[oldLines.length - lines.length].length - lines[0].length :
59181 this.yylloc.first_column - len
59182 };
59183
59184 if (this.options.ranges) {
59185 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
59186 }
59187 this.yyleng = this.yytext.length;
59188 return this;
59189 },
59190
59191// When called from action, caches matched text and appends it on next action
59192more:function () {
59193 this._more = true;
59194 return this;
59195 },
59196
59197// 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.
59198reject:function () {
59199 if (this.options.backtrack_lexer) {
59200 this._backtrack = true;
59201 } else {
59202 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(), {
59203 text: "",
59204 token: null,
59205 line: this.yylineno
59206 });
59207
59208 }
59209 return this;
59210 },
59211
59212// retain first n characters of the match
59213less:function (n) {
59214 this.unput(this.match.slice(n));
59215 },
59216
59217// displays already matched input, i.e. for error messages
59218pastInput:function () {
59219 var past = this.matched.substr(0, this.matched.length - this.match.length);
59220 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
59221 },
59222
59223// displays upcoming input, i.e. for error messages
59224upcomingInput:function () {
59225 var next = this.match;
59226 if (next.length < 20) {
59227 next += this._input.substr(0, 20-next.length);
59228 }
59229 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
59230 },
59231
59232// displays the character position where the lexing error occurred, i.e. for error messages
59233showPosition:function () {
59234 var pre = this.pastInput();
59235 var c = new Array(pre.length + 1).join("-");
59236 return pre + this.upcomingInput() + "\n" + c + "^";
59237 },
59238
59239// test the lexed token: return FALSE when not a match, otherwise return token
59240test_match:function(match, indexed_rule) {
59241 var token,
59242 lines,
59243 backup;
59244
59245 if (this.options.backtrack_lexer) {
59246 // save context
59247 backup = {
59248 yylineno: this.yylineno,
59249 yylloc: {
59250 first_line: this.yylloc.first_line,
59251 last_line: this.last_line,
59252 first_column: this.yylloc.first_column,
59253 last_column: this.yylloc.last_column
59254 },
59255 yytext: this.yytext,
59256 match: this.match,
59257 matches: this.matches,
59258 matched: this.matched,
59259 yyleng: this.yyleng,
59260 offset: this.offset,
59261 _more: this._more,
59262 _input: this._input,
59263 yy: this.yy,
59264 conditionStack: this.conditionStack.slice(0),
59265 done: this.done
59266 };
59267 if (this.options.ranges) {
59268 backup.yylloc.range = this.yylloc.range.slice(0);
59269 }
59270 }
59271
59272 lines = match[0].match(/(?:\r\n?|\n).*/g);
59273 if (lines) {
59274 this.yylineno += lines.length;
59275 }
59276 this.yylloc = {
59277 first_line: this.yylloc.last_line,
59278 last_line: this.yylineno + 1,
59279 first_column: this.yylloc.last_column,
59280 last_column: lines ?
59281 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
59282 this.yylloc.last_column + match[0].length
59283 };
59284 this.yytext += match[0];
59285 this.match += match[0];
59286 this.matches = match;
59287 this.yyleng = this.yytext.length;
59288 if (this.options.ranges) {
59289 this.yylloc.range = [this.offset, this.offset += this.yyleng];
59290 }
59291 this._more = false;
59292 this._backtrack = false;
59293 this._input = this._input.slice(match[0].length);
59294 this.matched += match[0];
59295 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
59296 if (this.done && this._input) {
59297 this.done = false;
59298 }
59299 if (token) {
59300 return token;
59301 } else if (this._backtrack) {
59302 // recover context
59303 for (var k in backup) {
59304 this[k] = backup[k];
59305 }
59306 return false; // rule action called reject() implying the next rule should be tested instead.
59307 }
59308 return false;
59309 },
59310
59311// return next match in input
59312next:function () {
59313 if (this.done) {
59314 return this.EOF;
59315 }
59316 if (!this._input) {
59317 this.done = true;
59318 }
59319
59320 var token,
59321 match,
59322 tempMatch,
59323 index;
59324 if (!this._more) {
59325 this.yytext = '';
59326 this.match = '';
59327 }
59328 var rules = this._currentRules();
59329 for (var i = 0; i < rules.length; i++) {
59330 tempMatch = this._input.match(this.rules[rules[i]]);
59331 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
59332 match = tempMatch;
59333 index = i;
59334 if (this.options.backtrack_lexer) {
59335 token = this.test_match(tempMatch, rules[i]);
59336 if (token !== false) {
59337 return token;
59338 } else if (this._backtrack) {
59339 match = false;
59340 continue; // rule action called reject() implying a rule MISmatch.
59341 } else {
59342 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
59343 return false;
59344 }
59345 } else if (!this.options.flex) {
59346 break;
59347 }
59348 }
59349 }
59350 if (match) {
59351 token = this.test_match(match, rules[index]);
59352 if (token !== false) {
59353 return token;
59354 }
59355 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
59356 return false;
59357 }
59358 if (this._input === "") {
59359 return this.EOF;
59360 } else {
59361 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
59362 text: "",
59363 token: null,
59364 line: this.yylineno
59365 });
59366 }
59367 },
59368
59369// return next match that has a token
59370lex:function lex () {
59371 var r = this.next();
59372 if (r) {
59373 return r;
59374 } else {
59375 return this.lex();
59376 }
59377 },
59378
59379// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
59380begin:function begin (condition) {
59381 this.conditionStack.push(condition);
59382 },
59383
59384// pop the previously active lexer condition state off the condition stack
59385popState:function popState () {
59386 var n = this.conditionStack.length - 1;
59387 if (n > 0) {
59388 return this.conditionStack.pop();
59389 } else {
59390 return this.conditionStack[0];
59391 }
59392 },
59393
59394// produce the lexer rule set which is active for the currently active lexer condition state
59395_currentRules:function _currentRules () {
59396 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
59397 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
59398 } else {
59399 return this.conditions["INITIAL"].rules;
59400 }
59401 },
59402
59403// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
59404topState:function topState (n) {
59405 n = this.conditionStack.length - 1 - Math.abs(n || 0);
59406 if (n >= 0) {
59407 return this.conditionStack[n];
59408 } else {
59409 return "INITIAL";
59410 }
59411 },
59412
59413// alias for begin(condition)
59414pushState:function pushState (condition) {
59415 this.begin(condition);
59416 },
59417
59418// return the number of states currently on the stack
59419stateStackSize:function stateStackSize() {
59420 return this.conditionStack.length;
59421 },
59422options: {},
59423performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
59424var YYSTATE=YY_START;
59425switch($avoiding_name_collisions) {
59426case 0: this.begin('open_directive'); return 12;
59427break;
59428case 1: this.begin('type_directive'); return 13;
59429break;
59430case 2: this.popState(); this.begin('arg_directive'); return 10;
59431break;
59432case 3: this.popState(); this.popState(); return 15;
59433break;
59434case 4:return 14;
59435break;
59436case 5:/* skip comments */
59437break;
59438case 6:/* skip comments */
59439break;
59440case 7:this.begin("string");
59441break;
59442case 8:this.popState();
59443break;
59444case 9:return "STR";
59445break;
59446case 10:return 75;
59447break;
59448case 11:return 84;
59449break;
59450case 12:return 76;
59451break;
59452case 13:return 90;
59453break;
59454case 14:return 77;
59455break;
59456case 15:return 78;
59457break;
59458case 16:return 79;
59459break;
59460case 17:if(yy.lex.firstGraph()){this.begin("dir");} return 24;
59461break;
59462case 18:if(yy.lex.firstGraph()){this.begin("dir");} return 24;
59463break;
59464case 19:return 38;
59465break;
59466case 20:return 42;
59467break;
59468case 21:return 87;
59469break;
59470case 22:return 87;
59471break;
59472case 23:return 87;
59473break;
59474case 24:return 87;
59475break;
59476case 25: this.popState(); return 25;
59477break;
59478case 26: this.popState(); return 26;
59479break;
59480case 27: this.popState(); return 26;
59481break;
59482case 28: this.popState(); return 26;
59483break;
59484case 29: this.popState(); return 26;
59485break;
59486case 30: this.popState(); return 26;
59487break;
59488case 31: this.popState(); return 26;
59489break;
59490case 32: this.popState(); return 26;
59491break;
59492case 33: this.popState(); return 26;
59493break;
59494case 34: this.popState(); return 26;
59495break;
59496case 35: this.popState(); return 26;
59497break;
59498case 36: return 91;
59499break;
59500case 37:return 99;
59501break;
59502case 38:return 47;
59503break;
59504case 39:return 96;
59505break;
59506case 40:return 46;
59507break;
59508case 41:return 20;
59509break;
59510case 42:return 92;
59511break;
59512case 43:return 110;
59513break;
59514case 44:return 70;
59515break;
59516case 45:return 70;
59517break;
59518case 46:return 70;
59519break;
59520case 47:return 69;
59521break;
59522case 48:return 69;
59523break;
59524case 49:return 69;
59525break;
59526case 50:return 51;
59527break;
59528case 51:return 52;
59529break;
59530case 52:return 53;
59531break;
59532case 53:return 54;
59533break;
59534case 54:return 55;
59535break;
59536case 55:return 56;
59537break;
59538case 56:return 57;
59539break;
59540case 57:return 58;
59541break;
59542case 58:return 97;
59543break;
59544case 59:return 100;
59545break;
59546case 60:return 111;
59547break;
59548case 61:return 108;
59549break;
59550case 62:return 101;
59551break;
59552case 63:return 109;
59553break;
59554case 64:return 109;
59555break;
59556case 65:return 102;
59557break;
59558case 66:return 61;
59559break;
59560case 67:return 81;
59561break;
59562case 68:return 'SEP';
59563break;
59564case 69:return 80;
59565break;
59566case 70:return 95;
59567break;
59568case 71:return 63;
59569break;
59570case 72:return 62;
59571break;
59572case 73:return 65;
59573break;
59574case 74:return 64;
59575break;
59576case 75:return 106;
59577break;
59578case 76:return 107;
59579break;
59580case 77:return 71;
59581break;
59582case 78:return 49;
59583break;
59584case 79:return 50;
59585break;
59586case 80:return 40;
59587break;
59588case 81:return 41;
59589break;
59590case 82:return 59
59591break;
59592case 83:return 60
59593break;
59594case 84:return 117;
59595break;
59596case 85:return 21;
59597break;
59598case 86:return 22;
59599break;
59600case 87:return 23;
59601break;
59602}
59603},
59604rules: [/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:click\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\()/,/^(?:\)\])/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],
59605conditions: {"close_directive":{"rules":[],"inclusive":false},"arg_directive":{"rules":[3,4],"inclusive":false},"type_directive":{"rules":[2,3],"inclusive":false},"open_directive":{"rules":[1],"inclusive":false},"vertex":{"rules":[],"inclusive":false},"dir":{"rules":[25,26,27,28,29,30,31,32,33,34,35],"inclusive":false},"string":{"rules":[8,9],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87],"inclusive":true}}
59606});
59607return lexer;
59608})();
59609parser.lexer = lexer;
59610function Parser () {
59611 this.yy = {};
59612}
59613Parser.prototype = parser;parser.Parser = Parser;
59614return new Parser;
59615})();
59616
59617
59618if (true) {
59619exports.parser = parser;
59620exports.Parser = parser.Parser;
59621exports.parse = function () { return parser.parse.apply(parser, arguments); };
59622exports.main = function commonjsMain (args) {
59623 if (!args[1]) {
59624 console.log('Usage: '+args[0]+' FILE');
59625 process.exit(1);
59626 }
59627 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");
59628 return exports.parser.parse(source);
59629};
59630if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
59631 exports.main(process.argv.slice(1));
59632}
59633}
59634/* 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)))
59635
59636/***/ }),
59637
59638/***/ "./src/diagrams/flowchart/styles.js":
59639/*!******************************************!*\
59640 !*** ./src/diagrams/flowchart/styles.js ***!
59641 \******************************************/
59642/*! exports provided: default */
59643/***/ (function(module, __webpack_exports__, __webpack_require__) {
59644
59645"use strict";
59646__webpack_require__.r(__webpack_exports__);
59647var getStyles = function getStyles(options) {
59648 return ".label {\n font-family: ".concat(options.fontFamily, ";\n color: ").concat(options.nodeTextColor || options.textColor, ";\n }\n\n .label text {\n fill: ").concat(options.nodeTextColor || options.textColor, ";\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ").concat(options.arrowheadColor, ";\n }\n\n .edgePath .path {\n stroke: ").concat(options.lineColor, ";\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ").concat(options.lineColor, ";\n fill: none;\n }\n\n .edgeLabel {\n background-color: ").concat(options.edgeLabelBackground, ";\n rect {\n opacity: 0.5;\n background-color: ").concat(options.edgeLabelBackground, ";\n fill: ").concat(options.edgeLabelBackground, ";\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ").concat(options.clusterBkg, ";\n stroke: ").concat(options.clusterBorder, ";\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ").concat(options.titleColor, ";\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ").concat(options.fontFamily, ";\n font-size: 12px;\n background: ").concat(options.tertiaryColor, ";\n border: 1px solid ").concat(options.border2, ";\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n");
59649};
59650
59651/* harmony default export */ __webpack_exports__["default"] = (getStyles);
59652
59653/***/ }),
59654
59655/***/ "./src/diagrams/gantt/ganttDb.js":
59656/*!***************************************!*\
59657 !*** ./src/diagrams/gantt/ganttDb.js ***!
59658 \***************************************/
59659/*! exports provided: parseDirective, clear, setAxisFormat, getAxisFormat, setTodayMarker, getTodayMarker, setDateFormat, enableInclusiveEndDates, endDatesAreInclusive, getDateFormat, setExcludes, getExcludes, setTitle, getTitle, addSection, getSections, getTasks, addTask, findTaskById, addTaskOrg, setLink, setClass, setClickEvent, bindFunctions, default */
59660/***/ (function(module, __webpack_exports__, __webpack_require__) {
59661
59662"use strict";
59663__webpack_require__.r(__webpack_exports__);
59664/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
59665/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
59666/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAxisFormat", function() { return setAxisFormat; });
59667/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAxisFormat", function() { return getAxisFormat; });
59668/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTodayMarker", function() { return setTodayMarker; });
59669/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTodayMarker", function() { return getTodayMarker; });
59670/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDateFormat", function() { return setDateFormat; });
59671/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableInclusiveEndDates", function() { return enableInclusiveEndDates; });
59672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endDatesAreInclusive", function() { return endDatesAreInclusive; });
59673/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDateFormat", function() { return getDateFormat; });
59674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setExcludes", function() { return setExcludes; });
59675/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getExcludes", function() { return getExcludes; });
59676/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
59677/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
59678/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSection", function() { return addSection; });
59679/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSections", function() { return getSections; });
59680/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTasks", function() { return getTasks; });
59681/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTask", function() { return addTask; });
59682/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findTaskById", function() { return findTaskById; });
59683/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTaskOrg", function() { return addTaskOrg; });
59684/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
59685/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClass", function() { return setClass; });
59686/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
59687/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
59688/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
59689/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
59690/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js");
59691/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__);
59692/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
59693/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
59694/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
59695/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
59696function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
59697
59698function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
59699
59700function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
59701
59702function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
59703
59704
59705
59706
59707
59708
59709
59710var dateFormat = '';
59711var axisFormat = '';
59712var todayMarker = '';
59713var excludes = [];
59714var title = '';
59715var sections = [];
59716var tasks = [];
59717var currentSection = '';
59718var tags = ['active', 'done', 'crit', 'milestone'];
59719var funs = [];
59720var inclusiveEndDates = false; // The serial order of the task in the script
59721
59722var lastOrder = 0;
59723var parseDirective = function parseDirective(statement, context, type) {
59724 _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__["default"].parseDirective(this, statement, context, type);
59725};
59726var clear = function clear() {
59727 sections = [];
59728 tasks = [];
59729 currentSection = '';
59730 funs = [];
59731 title = '';
59732 taskCnt = 0;
59733 lastTask = undefined;
59734 lastTaskID = undefined;
59735 rawTasks = [];
59736 dateFormat = '';
59737 axisFormat = '';
59738 todayMarker = '';
59739 excludes = [];
59740 inclusiveEndDates = false;
59741 lastOrder = 0;
59742};
59743var setAxisFormat = function setAxisFormat(txt) {
59744 axisFormat = txt;
59745};
59746var getAxisFormat = function getAxisFormat() {
59747 return axisFormat;
59748};
59749var setTodayMarker = function setTodayMarker(txt) {
59750 todayMarker = txt;
59751};
59752var getTodayMarker = function getTodayMarker() {
59753 return todayMarker;
59754};
59755var setDateFormat = function setDateFormat(txt) {
59756 dateFormat = txt;
59757};
59758var enableInclusiveEndDates = function enableInclusiveEndDates() {
59759 inclusiveEndDates = true;
59760};
59761var endDatesAreInclusive = function endDatesAreInclusive() {
59762 return inclusiveEndDates;
59763};
59764var getDateFormat = function getDateFormat() {
59765 return dateFormat;
59766};
59767var setExcludes = function setExcludes(txt) {
59768 excludes = txt.toLowerCase().split(/[\s,]+/);
59769};
59770var getExcludes = function getExcludes() {
59771 return excludes;
59772};
59773var setTitle = function setTitle(txt) {
59774 title = txt;
59775};
59776var getTitle = function getTitle() {
59777 return title;
59778};
59779var addSection = function addSection(txt) {
59780 currentSection = txt;
59781 sections.push(txt);
59782};
59783var getSections = function getSections() {
59784 return sections;
59785};
59786var getTasks = function getTasks() {
59787 var allItemsPricessed = compileTasks();
59788 var maxDepth = 10;
59789 var iterationCount = 0;
59790
59791 while (!allItemsPricessed && iterationCount < maxDepth) {
59792 allItemsPricessed = compileTasks();
59793 iterationCount++;
59794 }
59795
59796 tasks = rawTasks;
59797 return tasks;
59798};
59799
59800var isInvalidDate = function isInvalidDate(date, dateFormat, excludes) {
59801 if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) {
59802 return true;
59803 }
59804
59805 if (excludes.indexOf(date.format('dddd').toLowerCase()) >= 0) {
59806 return true;
59807 }
59808
59809 return excludes.indexOf(date.format(dateFormat.trim())) >= 0;
59810};
59811
59812var checkTaskDates = function checkTaskDates(task, dateFormat, excludes) {
59813 if (!excludes.length || task.manualEndTime) return;
59814 var startTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.startTime, dateFormat, true);
59815 startTime.add(1, 'd');
59816 var endTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.endTime, dateFormat, true);
59817 var renderEndTime = fixTaskDates(startTime, endTime, dateFormat, excludes);
59818 task.endTime = endTime.toDate();
59819 task.renderEndTime = renderEndTime;
59820};
59821
59822var fixTaskDates = function fixTaskDates(startTime, endTime, dateFormat, excludes) {
59823 var invalid = false;
59824 var renderEndTime = null;
59825
59826 while (startTime <= endTime) {
59827 if (!invalid) {
59828 renderEndTime = endTime.toDate();
59829 }
59830
59831 invalid = isInvalidDate(startTime, dateFormat, excludes);
59832
59833 if (invalid) {
59834 endTime.add(1, 'd');
59835 }
59836
59837 startTime.add(1, 'd');
59838 }
59839
59840 return renderEndTime;
59841};
59842
59843var getStartDate = function getStartDate(prevTime, dateFormat, str) {
59844 str = str.trim(); // Test for after
59845
59846 var re = /^after\s+([\d\w- ]+)/;
59847 var afterStatement = re.exec(str.trim());
59848
59849 if (afterStatement !== null) {
59850 // check all after ids and take the latest
59851 var latestEndingTask = null;
59852 afterStatement[1].split(' ').forEach(function (id) {
59853 var task = findTaskById(id);
59854
59855 if (typeof task !== 'undefined') {
59856 if (!latestEndingTask) {
59857 latestEndingTask = task;
59858 } else {
59859 if (task.endTime > latestEndingTask.endTime) {
59860 latestEndingTask = task;
59861 }
59862 }
59863 }
59864 });
59865
59866 if (!latestEndingTask) {
59867 var dt = new Date();
59868 dt.setHours(0, 0, 0, 0);
59869 return dt;
59870 } else {
59871 return latestEndingTask.endTime;
59872 }
59873 } // Check for actual date set
59874
59875
59876 var mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
59877
59878 if (mDate.isValid()) {
59879 return mDate.toDate();
59880 } else {
59881 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Invalid date:' + str);
59882 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('With date format:' + dateFormat.trim());
59883 } // Default date - now
59884
59885
59886 return new Date();
59887};
59888
59889var durationToDate = function durationToDate(durationStatement, relativeTime) {
59890 if (durationStatement !== null) {
59891 switch (durationStatement[2]) {
59892 case 's':
59893 relativeTime.add(durationStatement[1], 'seconds');
59894 break;
59895
59896 case 'm':
59897 relativeTime.add(durationStatement[1], 'minutes');
59898 break;
59899
59900 case 'h':
59901 relativeTime.add(durationStatement[1], 'hours');
59902 break;
59903
59904 case 'd':
59905 relativeTime.add(durationStatement[1], 'days');
59906 break;
59907
59908 case 'w':
59909 relativeTime.add(durationStatement[1], 'weeks');
59910 break;
59911 }
59912 } // Default date - now
59913
59914
59915 return relativeTime.toDate();
59916};
59917
59918var getEndDate = function getEndDate(prevTime, dateFormat, str, inclusive) {
59919 inclusive = inclusive || false;
59920 str = str.trim(); // Check for actual date
59921
59922 var mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
59923
59924 if (mDate.isValid()) {
59925 if (inclusive) {
59926 mDate.add(1, 'd');
59927 }
59928
59929 return mDate.toDate();
59930 }
59931
59932 return durationToDate(/^([\d]+)([wdhms])/.exec(str.trim()), moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(prevTime));
59933};
59934
59935var taskCnt = 0;
59936
59937var parseId = function parseId(idStr) {
59938 if (typeof idStr === 'undefined') {
59939 taskCnt = taskCnt + 1;
59940 return 'task' + taskCnt;
59941 }
59942
59943 return idStr;
59944}; // id, startDate, endDate
59945// id, startDate, length
59946// id, after x, endDate
59947// id, after x, length
59948// startDate, endDate
59949// startDate, length
59950// after x, endDate
59951// after x, length
59952// endDate
59953// length
59954
59955
59956var compileData = function compileData(prevTask, dataStr) {
59957 var ds;
59958
59959 if (dataStr.substr(0, 1) === ':') {
59960 ds = dataStr.substr(1, dataStr.length);
59961 } else {
59962 ds = dataStr;
59963 }
59964
59965 var data = ds.split(',');
59966 var task = {}; // Get tags like active, done, crit and milestone
59967
59968 getTaskTags(data, task, tags);
59969
59970 for (var i = 0; i < data.length; i++) {
59971 data[i] = data[i].trim();
59972 }
59973
59974 var endTimeData = '';
59975
59976 switch (data.length) {
59977 case 1:
59978 task.id = parseId();
59979 task.startTime = prevTask.endTime;
59980 endTimeData = data[0];
59981 break;
59982
59983 case 2:
59984 task.id = parseId();
59985 task.startTime = getStartDate(undefined, dateFormat, data[0]);
59986 endTimeData = data[1];
59987 break;
59988
59989 case 3:
59990 task.id = parseId(data[0]);
59991 task.startTime = getStartDate(undefined, dateFormat, data[1]);
59992 endTimeData = data[2];
59993 break;
59994
59995 default:
59996 }
59997
59998 if (endTimeData) {
59999 task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
60000 task.manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(endTimeData, 'YYYY-MM-DD', true).isValid();
60001 checkTaskDates(task, dateFormat, excludes);
60002 }
60003
60004 return task;
60005};
60006
60007var parseData = function parseData(prevTaskId, dataStr) {
60008 var ds;
60009
60010 if (dataStr.substr(0, 1) === ':') {
60011 ds = dataStr.substr(1, dataStr.length);
60012 } else {
60013 ds = dataStr;
60014 }
60015
60016 var data = ds.split(',');
60017 var task = {}; // Get tags like active, done, crit and milestone
60018
60019 getTaskTags(data, task, tags);
60020
60021 for (var i = 0; i < data.length; i++) {
60022 data[i] = data[i].trim();
60023 }
60024
60025 switch (data.length) {
60026 case 1:
60027 task.id = parseId();
60028 task.startTime = {
60029 type: 'prevTaskEnd',
60030 id: prevTaskId
60031 };
60032 task.endTime = {
60033 data: data[0]
60034 };
60035 break;
60036
60037 case 2:
60038 task.id = parseId();
60039 task.startTime = {
60040 type: 'getStartDate',
60041 startData: data[0]
60042 };
60043 task.endTime = {
60044 data: data[1]
60045 };
60046 break;
60047
60048 case 3:
60049 task.id = parseId(data[0]);
60050 task.startTime = {
60051 type: 'getStartDate',
60052 startData: data[1]
60053 };
60054 task.endTime = {
60055 data: data[2]
60056 };
60057 break;
60058
60059 default:
60060 }
60061
60062 return task;
60063};
60064
60065var lastTask;
60066var lastTaskID;
60067var rawTasks = [];
60068var taskDb = {};
60069var addTask = function addTask(descr, data) {
60070 var rawTask = {
60071 section: currentSection,
60072 type: currentSection,
60073 processed: false,
60074 manualEndTime: false,
60075 renderEndTime: null,
60076 raw: {
60077 data: data
60078 },
60079 task: descr,
60080 classes: []
60081 };
60082 var taskInfo = parseData(lastTaskID, data);
60083 rawTask.raw.startTime = taskInfo.startTime;
60084 rawTask.raw.endTime = taskInfo.endTime;
60085 rawTask.id = taskInfo.id;
60086 rawTask.prevTaskId = lastTaskID;
60087 rawTask.active = taskInfo.active;
60088 rawTask.done = taskInfo.done;
60089 rawTask.crit = taskInfo.crit;
60090 rawTask.milestone = taskInfo.milestone;
60091 rawTask.order = lastOrder;
60092 lastOrder++;
60093 var pos = rawTasks.push(rawTask);
60094 lastTaskID = rawTask.id; // Store cross ref
60095
60096 taskDb[rawTask.id] = pos - 1;
60097};
60098var findTaskById = function findTaskById(id) {
60099 var pos = taskDb[id];
60100 return rawTasks[pos];
60101};
60102var addTaskOrg = function addTaskOrg(descr, data) {
60103 var newTask = {
60104 section: currentSection,
60105 type: currentSection,
60106 description: descr,
60107 task: descr,
60108 classes: []
60109 };
60110 var taskInfo = compileData(lastTask, data);
60111 newTask.startTime = taskInfo.startTime;
60112 newTask.endTime = taskInfo.endTime;
60113 newTask.id = taskInfo.id;
60114 newTask.active = taskInfo.active;
60115 newTask.done = taskInfo.done;
60116 newTask.crit = taskInfo.crit;
60117 newTask.milestone = taskInfo.milestone;
60118 lastTask = newTask;
60119 tasks.push(newTask);
60120};
60121
60122var compileTasks = function compileTasks() {
60123 var compileTask = function compileTask(pos) {
60124 var task = rawTasks[pos];
60125 var startTime = '';
60126
60127 switch (rawTasks[pos].raw.startTime.type) {
60128 case 'prevTaskEnd':
60129 {
60130 var prevTask = findTaskById(task.prevTaskId);
60131 task.startTime = prevTask.endTime;
60132 break;
60133 }
60134
60135 case 'getStartDate':
60136 startTime = getStartDate(undefined, dateFormat, rawTasks[pos].raw.startTime.startData);
60137
60138 if (startTime) {
60139 rawTasks[pos].startTime = startTime;
60140 }
60141
60142 break;
60143 }
60144
60145 if (rawTasks[pos].startTime) {
60146 rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data, inclusiveEndDates);
60147
60148 if (rawTasks[pos].endTime) {
60149 rawTasks[pos].processed = true;
60150 rawTasks[pos].manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(rawTasks[pos].raw.endTime.data, 'YYYY-MM-DD', true).isValid();
60151 checkTaskDates(rawTasks[pos], dateFormat, excludes);
60152 }
60153 }
60154
60155 return rawTasks[pos].processed;
60156 };
60157
60158 var allProcessed = true;
60159
60160 for (var i = 0; i < rawTasks.length; i++) {
60161 compileTask(i);
60162 allProcessed = allProcessed && rawTasks[i].processed;
60163 }
60164
60165 return allProcessed;
60166};
60167/**
60168 * Called by parser when a link is found. Adds the URL to the vertex data.
60169 * @param ids Comma separated list of ids
60170 * @param linkStr URL to create a link for
60171 */
60172
60173
60174var setLink = function setLink(ids, _linkStr) {
60175 var linkStr = _linkStr;
60176
60177 if (_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]().securityLevel !== 'loose') {
60178 linkStr = Object(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__["sanitizeUrl"])(_linkStr);
60179 }
60180
60181 ids.split(',').forEach(function (id) {
60182 var rawTask = findTaskById(id);
60183
60184 if (typeof rawTask !== 'undefined') {
60185 pushFun(id, function () {
60186 window.open(linkStr, '_self');
60187 });
60188 }
60189 });
60190 setClass(ids, 'clickable');
60191};
60192/**
60193 * Called by parser when a special node is found, e.g. a clickable element.
60194 * @param ids Comma separated list of ids
60195 * @param className Class to add
60196 */
60197
60198var setClass = function setClass(ids, className) {
60199 ids.split(',').forEach(function (id) {
60200 var rawTask = findTaskById(id);
60201
60202 if (typeof rawTask !== 'undefined') {
60203 rawTask.classes.push(className);
60204 }
60205 });
60206};
60207
60208var setClickFun = function setClickFun(id, functionName, functionArgs) {
60209 if (_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]().securityLevel !== 'loose') {
60210 return;
60211 }
60212
60213 if (typeof functionName === 'undefined') {
60214 return;
60215 }
60216
60217 var argList = [];
60218
60219 if (typeof functionArgs === 'string') {
60220 /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */
60221 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
60222
60223 for (var i = 0; i < argList.length; i++) {
60224 var item = argList[i].trim();
60225 /* Removes all double quotes at the start and end of an argument */
60226
60227 /* This preserves all starting and ending whitespace inside */
60228
60229 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
60230 item = item.substr(1, item.length - 2);
60231 }
60232
60233 argList[i] = item;
60234 }
60235 }
60236 /* if no arguments passed into callback, default to passing in id */
60237
60238
60239 if (argList.length === 0) {
60240 argList.push(id);
60241 }
60242
60243 var rawTask = findTaskById(id);
60244
60245 if (typeof rawTask !== 'undefined') {
60246 pushFun(id, function () {
60247 _utils__WEBPACK_IMPORTED_MODULE_4__["default"].runFunc.apply(_utils__WEBPACK_IMPORTED_MODULE_4__["default"], [functionName].concat(_toConsumableArray(argList)));
60248 });
60249 }
60250};
60251/**
60252 * The callbackFunction is executed in a click event bound to the task with the specified id or the task's assigned text
60253 * @param id The task's id
60254 * @param callbackFunction A function to be executed when clicked on the task or the task's text
60255 */
60256
60257
60258var pushFun = function pushFun(id, callbackFunction) {
60259 funs.push(function () {
60260 // const elem = d3.select(element).select(`[id="${id}"]`)
60261 var elem = document.querySelector("[id=\"".concat(id, "\"]"));
60262
60263 if (elem !== null) {
60264 elem.addEventListener('click', function () {
60265 callbackFunction();
60266 });
60267 }
60268 });
60269 funs.push(function () {
60270 // const elem = d3.select(element).select(`[id="${id}-text"]`)
60271 var elem = document.querySelector("[id=\"".concat(id, "-text\"]"));
60272
60273 if (elem !== null) {
60274 elem.addEventListener('click', function () {
60275 callbackFunction();
60276 });
60277 }
60278 });
60279};
60280/**
60281 * Called by parser when a click definition is found. Registers an event handler.
60282 * @param ids Comma separated list of ids
60283 * @param functionName Function to be called on click
60284 * @param functionArgs Function args the function should be called with
60285 */
60286
60287
60288var setClickEvent = function setClickEvent(ids, functionName, functionArgs) {
60289 ids.split(',').forEach(function (id) {
60290 setClickFun(id, functionName, functionArgs);
60291 });
60292 setClass(ids, 'clickable');
60293};
60294/**
60295 * Binds all functions previously added to fun (specified through click) to the element
60296 * @param element
60297 */
60298
60299var bindFunctions = function bindFunctions(element) {
60300 funs.forEach(function (fun) {
60301 fun(element);
60302 });
60303};
60304/* harmony default export */ __webpack_exports__["default"] = ({
60305 parseDirective: parseDirective,
60306 getConfig: function getConfig() {
60307 return _config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]().gantt;
60308 },
60309 clear: clear,
60310 setDateFormat: setDateFormat,
60311 getDateFormat: getDateFormat,
60312 enableInclusiveEndDates: enableInclusiveEndDates,
60313 endDatesAreInclusive: endDatesAreInclusive,
60314 setAxisFormat: setAxisFormat,
60315 getAxisFormat: getAxisFormat,
60316 setTodayMarker: setTodayMarker,
60317 getTodayMarker: getTodayMarker,
60318 setTitle: setTitle,
60319 getTitle: getTitle,
60320 addSection: addSection,
60321 getSections: getSections,
60322 getTasks: getTasks,
60323 addTask: addTask,
60324 findTaskById: findTaskById,
60325 addTaskOrg: addTaskOrg,
60326 setExcludes: setExcludes,
60327 getExcludes: getExcludes,
60328 setClickEvent: setClickEvent,
60329 setLink: setLink,
60330 bindFunctions: bindFunctions,
60331 durationToDate: durationToDate
60332});
60333
60334function getTaskTags(data, task, tags) {
60335 var matchFound = true;
60336
60337 while (matchFound) {
60338 matchFound = false;
60339 tags.forEach(function (t) {
60340 var pattern = '^\\s*' + t + '\\s*$';
60341 var regex = new RegExp(pattern);
60342
60343 if (data[0].match(regex)) {
60344 task[t] = true;
60345 data.shift(1);
60346 matchFound = true;
60347 }
60348 });
60349 }
60350}
60351
60352/***/ }),
60353
60354/***/ "./src/diagrams/gantt/ganttRenderer.js":
60355/*!*********************************************!*\
60356 !*** ./src/diagrams/gantt/ganttRenderer.js ***!
60357 \*********************************************/
60358/*! exports provided: setConf, draw, default */
60359/***/ (function(module, __webpack_exports__, __webpack_require__) {
60360
60361"use strict";
60362__webpack_require__.r(__webpack_exports__);
60363/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
60364/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
60365/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
60366/* harmony import */ var _parser_gantt__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser/gantt */ "./src/diagrams/gantt/parser/gantt.jison");
60367/* harmony import */ var _parser_gantt__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__);
60368/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
60369/* harmony import */ var _ganttDb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ganttDb */ "./src/diagrams/gantt/ganttDb.js");
60370/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
60371
60372
60373
60374
60375
60376_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy = _ganttDb__WEBPACK_IMPORTED_MODULE_3__["default"];
60377var conf = {
60378 titleTopMargin: 25,
60379 barHeight: 20,
60380 barGap: 4,
60381 topPadding: 50,
60382 rightPadding: 75,
60383 leftPadding: 75,
60384 gridLineStartPadding: 35,
60385 fontSize: 11,
60386 fontFamily: '"Open-Sans", "sans-serif"'
60387};
60388var setConf = function setConf(cnf) {
60389 var keys = Object.keys(cnf);
60390 keys.forEach(function (key) {
60391 conf[key] = cnf[key];
60392 });
60393};
60394var w;
60395var draw = function draw(text, id) {
60396 _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.clear();
60397 _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].parse(text);
60398 var elem = document.getElementById(id);
60399 w = elem.parentElement.offsetWidth;
60400
60401 if (typeof w === 'undefined') {
60402 w = 1200;
60403 }
60404
60405 if (typeof conf.useWidth !== 'undefined') {
60406 w = conf.useWidth;
60407 }
60408
60409 var taskArray = _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTasks(); // Set height based on number of tasks
60410
60411 var h = taskArray.length * (conf.barHeight + conf.barGap) + 2 * conf.topPadding; // Set viewBox
60412
60413 elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h);
60414 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id=\"".concat(id, "\"]")); // Set timescale
60415
60416 var timeScale = Object(d3__WEBPACK_IMPORTED_MODULE_0__["scaleTime"])().domain([Object(d3__WEBPACK_IMPORTED_MODULE_0__["min"])(taskArray, function (d) {
60417 return d.startTime;
60418 }), Object(d3__WEBPACK_IMPORTED_MODULE_0__["max"])(taskArray, function (d) {
60419 return d.endTime;
60420 })]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
60421 var categories = [];
60422
60423 for (var i = 0; i < taskArray.length; i++) {
60424 categories.push(taskArray[i].type);
60425 }
60426
60427 var catsUnfiltered = categories; // for vert labels
60428
60429 categories = checkUnique(categories);
60430
60431 function taskCompare(a, b) {
60432 var taskA = a.startTime;
60433 var taskB = b.startTime;
60434 var result = 0;
60435
60436 if (taskA > taskB) {
60437 result = 1;
60438 } else if (taskA < taskB) {
60439 result = -1;
60440 }
60441
60442 return result;
60443 } // Sort the task array using the above taskCompare() so that
60444 // tasks are created based on their order of startTime
60445
60446
60447 taskArray.sort(taskCompare);
60448 makeGant(taskArray, w, h);
60449 Object(_utils__WEBPACK_IMPORTED_MODULE_4__["configureSvgSize"])(svg, h, w, conf.useMaxWidth);
60450 svg.append('text').text(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTitle()).attr('x', w / 2).attr('y', conf.titleTopMargin).attr('class', 'titleText');
60451
60452 function makeGant(tasks, pageWidth, pageHeight) {
60453 var barHeight = conf.barHeight;
60454 var gap = barHeight + conf.barGap;
60455 var topPadding = conf.topPadding;
60456 var leftPadding = conf.leftPadding;
60457 var colorScale = Object(d3__WEBPACK_IMPORTED_MODULE_0__["scaleLinear"])().domain([0, categories.length]).range(['#00B9FA', '#F95002']).interpolate(d3__WEBPACK_IMPORTED_MODULE_0__["interpolateHcl"]);
60458 makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
60459 drawRects(tasks, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth, pageHeight);
60460 vertLabels(gap, topPadding, leftPadding, barHeight, colorScale);
60461 drawToday(leftPadding, topPadding, pageWidth, pageHeight);
60462 }
60463
60464 function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w) {
60465 // Draw background rects covering the entire width of the graph, these form the section rows.
60466 svg.append('g').selectAll('rect').data(theArray).enter().append('rect').attr('x', 0).attr('y', function (d, i) {
60467 // Ignore the incoming i value and use our order instead
60468 i = d.order;
60469 return i * theGap + theTopPad - 2;
60470 }).attr('width', function () {
60471 return w - conf.rightPadding / 2;
60472 }).attr('height', theGap).attr('class', function (d) {
60473 for (var _i = 0; _i < categories.length; _i++) {
60474 if (d.type === categories[_i]) {
60475 return 'section section' + _i % conf.numberSectionStyles;
60476 }
60477 }
60478
60479 return 'section section0';
60480 }); // Draw the rects representing the tasks
60481
60482 var rectangles = svg.append('g').selectAll('rect').data(theArray).enter();
60483 rectangles.append('rect').attr('id', function (d) {
60484 return d.id;
60485 }).attr('rx', 3).attr('ry', 3).attr('x', function (d) {
60486 if (d.milestone) {
60487 return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
60488 }
60489
60490 return timeScale(d.startTime) + theSidePad;
60491 }).attr('y', function (d, i) {
60492 // Ignore the incoming i value and use our order instead
60493 i = d.order;
60494 return i * theGap + theTopPad;
60495 }).attr('width', function (d) {
60496 if (d.milestone) {
60497 return theBarHeight;
60498 }
60499
60500 return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
60501 }).attr('height', theBarHeight).attr('transform-origin', function (d, i) {
60502 return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + 'px ' + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + 'px';
60503 }).attr('class', function (d) {
60504 var res = 'task';
60505 var classStr = '';
60506
60507 if (d.classes.length > 0) {
60508 classStr = d.classes.join(' ');
60509 }
60510
60511 var secNum = 0;
60512
60513 for (var _i2 = 0; _i2 < categories.length; _i2++) {
60514 if (d.type === categories[_i2]) {
60515 secNum = _i2 % conf.numberSectionStyles;
60516 }
60517 }
60518
60519 var taskClass = '';
60520
60521 if (d.active) {
60522 if (d.crit) {
60523 taskClass += ' activeCrit';
60524 } else {
60525 taskClass = ' active';
60526 }
60527 } else if (d.done) {
60528 if (d.crit) {
60529 taskClass = ' doneCrit';
60530 } else {
60531 taskClass = ' done';
60532 }
60533 } else {
60534 if (d.crit) {
60535 taskClass += ' crit';
60536 }
60537 }
60538
60539 if (taskClass.length === 0) {
60540 taskClass = ' task';
60541 }
60542
60543 if (d.milestone) {
60544 taskClass = ' milestone ' + taskClass;
60545 }
60546
60547 taskClass += secNum;
60548 taskClass += ' ' + classStr;
60549 return res + taskClass;
60550 }); // Append task labels
60551
60552 rectangles.append('text').attr('id', function (d) {
60553 return d.id + '-text';
60554 }).text(function (d) {
60555 return d.task;
60556 }).attr('font-size', conf.fontSize).attr('x', function (d) {
60557 var startX = timeScale(d.startTime);
60558 var endX = timeScale(d.renderEndTime || d.endTime);
60559
60560 if (d.milestone) {
60561 startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
60562 }
60563
60564 if (d.milestone) {
60565 endX = startX + theBarHeight;
60566 }
60567
60568 var textWidth = this.getBBox().width; // Check id text width > width of rectangle
60569
60570 if (textWidth > endX - startX) {
60571 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
60572 return startX + theSidePad - 5;
60573 } else {
60574 return endX + theSidePad + 5;
60575 }
60576 } else {
60577 return (endX - startX) / 2 + startX + theSidePad;
60578 }
60579 }).attr('y', function (d, i) {
60580 // Ignore the incoming i value and use our order instead
60581 i = d.order;
60582 return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
60583 }).attr('text-height', theBarHeight).attr('class', function (d) {
60584 var startX = timeScale(d.startTime);
60585 var endX = timeScale(d.endTime);
60586
60587 if (d.milestone) {
60588 endX = startX + theBarHeight;
60589 }
60590
60591 var textWidth = this.getBBox().width;
60592 var classStr = '';
60593
60594 if (d.classes.length > 0) {
60595 classStr = d.classes.join(' ');
60596 }
60597
60598 var secNum = 0;
60599
60600 for (var _i3 = 0; _i3 < categories.length; _i3++) {
60601 if (d.type === categories[_i3]) {
60602 secNum = _i3 % conf.numberSectionStyles;
60603 }
60604 }
60605
60606 var taskType = '';
60607
60608 if (d.active) {
60609 if (d.crit) {
60610 taskType = 'activeCritText' + secNum;
60611 } else {
60612 taskType = 'activeText' + secNum;
60613 }
60614 }
60615
60616 if (d.done) {
60617 if (d.crit) {
60618 taskType = taskType + ' doneCritText' + secNum;
60619 } else {
60620 taskType = taskType + ' doneText' + secNum;
60621 }
60622 } else {
60623 if (d.crit) {
60624 taskType = taskType + ' critText' + secNum;
60625 }
60626 }
60627
60628 if (d.milestone) {
60629 taskType += ' milestoneText';
60630 } // Check id text width > width of rectangle
60631
60632
60633 if (textWidth > endX - startX) {
60634 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
60635 return classStr + ' taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType;
60636 } else {
60637 return classStr + ' taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType + ' width-' + textWidth;
60638 }
60639 } else {
60640 return classStr + ' taskText taskText' + secNum + ' ' + taskType + ' width-' + textWidth;
60641 }
60642 });
60643 }
60644
60645 function makeGrid(theSidePad, theTopPad, w, h) {
60646 var xAxis = Object(d3__WEBPACK_IMPORTED_MODULE_0__["axisBottom"])(timeScale).tickSize(-h + theTopPad + conf.gridLineStartPadding).tickFormat(Object(d3__WEBPACK_IMPORTED_MODULE_0__["timeFormat"])(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getAxisFormat() || conf.axisFormat || '%Y-%m-%d'));
60647 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');
60648 }
60649
60650 function vertLabels(theGap, theTopPad) {
60651 var numOccurances = [];
60652 var prevGap = 0;
60653
60654 for (var _i4 = 0; _i4 < categories.length; _i4++) {
60655 numOccurances[_i4] = [categories[_i4], getCount(categories[_i4], catsUnfiltered)];
60656 }
60657
60658 svg.append('g') // without doing this, impossible to put grid lines behind text
60659 .selectAll('text').data(numOccurances).enter().append(function (d) {
60660 var rows = d[0].split(_common_common__WEBPACK_IMPORTED_MODULE_2__["default"].lineBreakRegex);
60661 var dy = -(rows.length - 1) / 2;
60662 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
60663 svgLabel.setAttribute('dy', dy + 'em');
60664
60665 for (var j = 0; j < rows.length; j++) {
60666 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
60667 tspan.setAttribute('alignment-baseline', 'central');
60668 tspan.setAttribute('x', '10');
60669 if (j > 0) tspan.setAttribute('dy', '1em');
60670 tspan.textContent = rows[j];
60671 svgLabel.appendChild(tspan);
60672 }
60673
60674 return svgLabel;
60675 }).attr('x', 10).attr('y', function (d, i) {
60676 if (i > 0) {
60677 for (var j = 0; j < i; j++) {
60678 prevGap += numOccurances[i - 1][1];
60679 return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
60680 }
60681 } else {
60682 return d[1] * theGap / 2 + theTopPad;
60683 }
60684 }).attr('class', function (d) {
60685 for (var _i5 = 0; _i5 < categories.length; _i5++) {
60686 if (d[0] === categories[_i5]) {
60687 return 'sectionTitle sectionTitle' + _i5 % conf.numberSectionStyles;
60688 }
60689 }
60690
60691 return 'sectionTitle';
60692 });
60693 }
60694
60695 function drawToday(theSidePad, theTopPad, w, h) {
60696 var todayMarker = _ganttDb__WEBPACK_IMPORTED_MODULE_3__["default"].getTodayMarker();
60697
60698 if (todayMarker === 'off') {
60699 return;
60700 }
60701
60702 var todayG = svg.append('g').attr('class', 'today');
60703 var today = new Date();
60704 var todayLine = todayG.append('line');
60705 todayLine.attr('x1', timeScale(today) + theSidePad).attr('x2', timeScale(today) + theSidePad).attr('y1', conf.titleTopMargin).attr('y2', h - conf.titleTopMargin).attr('class', 'today');
60706
60707 if (todayMarker !== '') {
60708 todayLine.attr('style', todayMarker.replace(/,/g, ';'));
60709 }
60710 } // from this stackexchange question: http://stackoverflow.com/questions/1890203/unique-for-arrays-in-javascript
60711
60712
60713 function checkUnique(arr) {
60714 var hash = {};
60715 var result = [];
60716
60717 for (var _i6 = 0, l = arr.length; _i6 < l; ++_i6) {
60718 if (!hash.hasOwnProperty(arr[_i6])) {
60719 // eslint-disable-line
60720 // it works with objects! in FF, at least
60721 hash[arr[_i6]] = true;
60722 result.push(arr[_i6]);
60723 }
60724 }
60725
60726 return result;
60727 } // from this stackexchange question: http://stackoverflow.com/questions/14227981/count-how-many-strings-in-an-array-have-duplicates-in-the-same-array
60728
60729
60730 function getCounts(arr) {
60731 var i = arr.length; // const to loop over
60732
60733 var obj = {}; // obj to store results
60734
60735 while (i) {
60736 obj[arr[--i]] = (obj[arr[i]] || 0) + 1; // count occurrences
60737 }
60738
60739 return obj;
60740 } // get specific from everything
60741
60742
60743 function getCount(word, arr) {
60744 return getCounts(arr)[word] || 0;
60745 }
60746};
60747/* harmony default export */ __webpack_exports__["default"] = ({
60748 setConf: setConf,
60749 draw: draw
60750});
60751
60752/***/ }),
60753
60754/***/ "./src/diagrams/gantt/parser/gantt.jison":
60755/*!***********************************************!*\
60756 !*** ./src/diagrams/gantt/parser/gantt.jison ***!
60757 \***********************************************/
60758/*! no static exports found */
60759/***/ (function(module, exports, __webpack_require__) {
60760
60761/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
60762/*
60763 Returns a Parser object of the following structure:
60764
60765 Parser: {
60766 yy: {}
60767 }
60768
60769 Parser.prototype: {
60770 yy: {},
60771 trace: function(),
60772 symbols_: {associative list: name ==> number},
60773 terminals_: {associative list: number ==> name},
60774 productions_: [...],
60775 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
60776 table: [...],
60777 defaultActions: {...},
60778 parseError: function(str, hash),
60779 parse: function(input),
60780
60781 lexer: {
60782 EOF: 1,
60783 parseError: function(str, hash),
60784 setInput: function(input),
60785 input: function(),
60786 unput: function(str),
60787 more: function(),
60788 less: function(n),
60789 pastInput: function(),
60790 upcomingInput: function(),
60791 showPosition: function(),
60792 test_match: function(regex_match_array, rule_index),
60793 next: function(),
60794 lex: function(),
60795 begin: function(condition),
60796 popState: function(),
60797 _currentRules: function(),
60798 topState: function(),
60799 pushState: function(condition),
60800
60801 options: {
60802 ranges: boolean (optional: true ==> token location info will include a .range[] member)
60803 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
60804 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)
60805 },
60806
60807 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
60808 rules: [...],
60809 conditions: {associative list: name ==> set},
60810 }
60811 }
60812
60813
60814 token location info (@$, _$, etc.): {
60815 first_line: n,
60816 last_line: n,
60817 first_column: n,
60818 last_column: n,
60819 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
60820 }
60821
60822
60823 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
60824 text: (matched text)
60825 token: (the produced terminal token, if any)
60826 line: (yylineno)
60827 }
60828 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
60829 loc: (yylloc)
60830 expected: (string describing the set of expected tokens)
60831 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
60832 }
60833*/
60834var parser = (function(){
60835var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[7,9,11,12,13,14,15,16,17,18,20,27,32],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,23],$Vb=[1,25],$Vc=[1,28],$Vd=[5,7,9,11,12,13,14,15,16,17,18,20,27,32];
60836var parser = {trace: function trace () { },
60837yy: {},
60838symbols_: {"error":2,"start":3,"directive":4,"gantt":5,"document":6,"EOF":7,"line":8,"SPACE":9,"statement":10,"NL":11,"dateFormat":12,"inclusiveEndDates":13,"axisFormat":14,"excludes":15,"todayMarker":16,"title":17,"section":18,"clickStatement":19,"taskTxt":20,"taskData":21,"openDirective":22,"typeDirective":23,"closeDirective":24,":":25,"argDirective":26,"click":27,"callbackname":28,"callbackargs":29,"href":30,"clickStatementDebug":31,"open_directive":32,"type_directive":33,"arg_directive":34,"close_directive":35,"$accept":0,"$end":1},
60839terminals_: {2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"axisFormat",15:"excludes",16:"todayMarker",17:"title",18:"section",20:"taskTxt",21:"taskData",25:":",27:"click",28:"callbackname",29:"callbackargs",30:"href",32:"open_directive",33:"type_directive",34:"arg_directive",35:"close_directive"},
60840productions_: [0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[19,2],[19,3],[19,3],[19,4],[19,3],[19,4],[19,2],[31,2],[31,3],[31,3],[31,4],[31,3],[31,4],[31,2],[22,1],[23,1],[26,1],[24,1]],
60841performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
60842/* this == yyval */
60843
60844var $0 = $$.length - 1;
60845switch (yystate) {
60846case 2:
60847 return $$[$0-1];
60848break;
60849case 3:
60850 this.$ = []
60851break;
60852case 4:
60853$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
60854break;
60855case 5: case 6:
60856 this.$ = $$[$0]
60857break;
60858case 7: case 8:
60859 this.$=[];
60860break;
60861case 9:
60862yy.setDateFormat($$[$0].substr(11));this.$=$$[$0].substr(11);
60863break;
60864case 10:
60865yy.enableInclusiveEndDates();this.$=$$[$0].substr(18);
60866break;
60867case 11:
60868yy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11);
60869break;
60870case 12:
60871yy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9);
60872break;
60873case 13:
60874yy.setTodayMarker($$[$0].substr(12));this.$=$$[$0].substr(12);
60875break;
60876case 14:
60877yy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);
60878break;
60879case 15:
60880yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
60881break;
60882case 17:
60883yy.addTask($$[$0-1],$$[$0]);this.$='task';
60884break;
60885case 21:
60886this.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null);
60887break;
60888case 22:
60889this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);
60890break;
60891case 23:
60892this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]);
60893break;
60894case 24:
60895this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]);
60896break;
60897case 25:
60898this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]);
60899break;
60900case 26:
60901this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]);
60902break;
60903case 27:
60904this.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);
60905break;
60906case 28: case 34:
60907this.$=$$[$0-1] + ' ' + $$[$0];
60908break;
60909case 29: case 30: case 32:
60910this.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];
60911break;
60912case 31: case 33:
60913this.$=$$[$0-3] + ' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];
60914break;
60915case 35:
60916 yy.parseDirective('%%{', 'open_directive');
60917break;
60918case 36:
60919 yy.parseDirective($$[$0], 'type_directive');
60920break;
60921case 37:
60922 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
60923break;
60924case 38:
60925 yy.parseDirective('}%%', 'close_directive', 'gantt');
60926break;
60927}
60928},
60929table: [{3:1,4:2,5:$V0,22:4,32:$V1},{1:[3]},{3:6,4:2,5:$V0,22:4,32:$V1},o($V2,[2,3],{6:7}),{23:8,33:[1,9]},{33:[2,35]},{1:[2,1]},{4:24,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:22,20:$Va,22:4,27:$Vb,32:$V1},{24:26,25:[1,27],35:$Vc},o([25,35],[2,36]),o($V2,[2,8],{1:[2,2]}),o($V2,[2,4]),{4:24,10:29,12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:22,20:$Va,22:4,27:$Vb,32:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),{21:[1,30]},o($V2,[2,18]),{28:[1,31],30:[1,32]},{11:[1,33]},{26:34,34:[1,35]},{11:[2,38]},o($V2,[2,5]),o($V2,[2,17]),o($V2,[2,21],{29:[1,36],30:[1,37]}),o($V2,[2,27],{28:[1,38]}),o($Vd,[2,19]),{24:39,35:$Vc},{35:[2,37]},o($V2,[2,22],{30:[1,40]}),o($V2,[2,23]),o($V2,[2,25],{29:[1,41]}),{11:[1,42]},o($V2,[2,24]),o($V2,[2,26]),o($Vd,[2,20])],
60930defaultActions: {5:[2,35],6:[2,1],28:[2,38],35:[2,37]},
60931parseError: function parseError (str, hash) {
60932 if (hash.recoverable) {
60933 this.trace(str);
60934 } else {
60935 var error = new Error(str);
60936 error.hash = hash;
60937 throw error;
60938 }
60939},
60940parse: function parse(input) {
60941 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
60942 var args = lstack.slice.call(arguments, 1);
60943 var lexer = Object.create(this.lexer);
60944 var sharedState = { yy: {} };
60945 for (var k in this.yy) {
60946 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
60947 sharedState.yy[k] = this.yy[k];
60948 }
60949 }
60950 lexer.setInput(input, sharedState.yy);
60951 sharedState.yy.lexer = lexer;
60952 sharedState.yy.parser = this;
60953 if (typeof lexer.yylloc == 'undefined') {
60954 lexer.yylloc = {};
60955 }
60956 var yyloc = lexer.yylloc;
60957 lstack.push(yyloc);
60958 var ranges = lexer.options && lexer.options.ranges;
60959 if (typeof sharedState.yy.parseError === 'function') {
60960 this.parseError = sharedState.yy.parseError;
60961 } else {
60962 this.parseError = Object.getPrototypeOf(this).parseError;
60963 }
60964 function popStack(n) {
60965 stack.length = stack.length - 2 * n;
60966 vstack.length = vstack.length - n;
60967 lstack.length = lstack.length - n;
60968 }
60969 function lex() {
60970 var token;
60971 token = tstack.pop() || lexer.lex() || EOF;
60972 if (typeof token !== 'number') {
60973 if (token instanceof Array) {
60974 tstack = token;
60975 token = tstack.pop();
60976 }
60977 token = self.symbols_[token] || token;
60978 }
60979 return token;
60980 }
60981 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
60982 while (true) {
60983 state = stack[stack.length - 1];
60984 if (this.defaultActions[state]) {
60985 action = this.defaultActions[state];
60986 } else {
60987 if (symbol === null || typeof symbol == 'undefined') {
60988 symbol = lex();
60989 }
60990 action = table[state] && table[state][symbol];
60991 }
60992 if (typeof action === 'undefined' || !action.length || !action[0]) {
60993 var errStr = '';
60994 expected = [];
60995 for (p in table[state]) {
60996 if (this.terminals_[p] && p > TERROR) {
60997 expected.push('\'' + this.terminals_[p] + '\'');
60998 }
60999 }
61000 if (lexer.showPosition) {
61001 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
61002 } else {
61003 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
61004 }
61005 this.parseError(errStr, {
61006 text: lexer.match,
61007 token: this.terminals_[symbol] || symbol,
61008 line: lexer.yylineno,
61009 loc: yyloc,
61010 expected: expected
61011 });
61012 }
61013 if (action[0] instanceof Array && action.length > 1) {
61014 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
61015 }
61016 switch (action[0]) {
61017 case 1:
61018 stack.push(symbol);
61019 vstack.push(lexer.yytext);
61020 lstack.push(lexer.yylloc);
61021 stack.push(action[1]);
61022 symbol = null;
61023 if (!preErrorSymbol) {
61024 yyleng = lexer.yyleng;
61025 yytext = lexer.yytext;
61026 yylineno = lexer.yylineno;
61027 yyloc = lexer.yylloc;
61028 if (recovering > 0) {
61029 recovering--;
61030 }
61031 } else {
61032 symbol = preErrorSymbol;
61033 preErrorSymbol = null;
61034 }
61035 break;
61036 case 2:
61037 len = this.productions_[action[1]][1];
61038 yyval.$ = vstack[vstack.length - len];
61039 yyval._$ = {
61040 first_line: lstack[lstack.length - (len || 1)].first_line,
61041 last_line: lstack[lstack.length - 1].last_line,
61042 first_column: lstack[lstack.length - (len || 1)].first_column,
61043 last_column: lstack[lstack.length - 1].last_column
61044 };
61045 if (ranges) {
61046 yyval._$.range = [
61047 lstack[lstack.length - (len || 1)].range[0],
61048 lstack[lstack.length - 1].range[1]
61049 ];
61050 }
61051 r = this.performAction.apply(yyval, [
61052 yytext,
61053 yyleng,
61054 yylineno,
61055 sharedState.yy,
61056 action[1],
61057 vstack,
61058 lstack
61059 ].concat(args));
61060 if (typeof r !== 'undefined') {
61061 return r;
61062 }
61063 if (len) {
61064 stack = stack.slice(0, -1 * len * 2);
61065 vstack = vstack.slice(0, -1 * len);
61066 lstack = lstack.slice(0, -1 * len);
61067 }
61068 stack.push(this.productions_[action[1]][0]);
61069 vstack.push(yyval.$);
61070 lstack.push(yyval._$);
61071 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
61072 stack.push(newState);
61073 break;
61074 case 3:
61075 return true;
61076 }
61077 }
61078 return true;
61079}};
61080
61081/* generated by jison-lex 0.3.4 */
61082var lexer = (function(){
61083var lexer = ({
61084
61085EOF:1,
61086
61087parseError:function parseError(str, hash) {
61088 if (this.yy.parser) {
61089 this.yy.parser.parseError(str, hash);
61090 } else {
61091 throw new Error(str);
61092 }
61093 },
61094
61095// resets the lexer, sets new input
61096setInput:function (input, yy) {
61097 this.yy = yy || this.yy || {};
61098 this._input = input;
61099 this._more = this._backtrack = this.done = false;
61100 this.yylineno = this.yyleng = 0;
61101 this.yytext = this.matched = this.match = '';
61102 this.conditionStack = ['INITIAL'];
61103 this.yylloc = {
61104 first_line: 1,
61105 first_column: 0,
61106 last_line: 1,
61107 last_column: 0
61108 };
61109 if (this.options.ranges) {
61110 this.yylloc.range = [0,0];
61111 }
61112 this.offset = 0;
61113 return this;
61114 },
61115
61116// consumes and returns one char from the input
61117input:function () {
61118 var ch = this._input[0];
61119 this.yytext += ch;
61120 this.yyleng++;
61121 this.offset++;
61122 this.match += ch;
61123 this.matched += ch;
61124 var lines = ch.match(/(?:\r\n?|\n).*/g);
61125 if (lines) {
61126 this.yylineno++;
61127 this.yylloc.last_line++;
61128 } else {
61129 this.yylloc.last_column++;
61130 }
61131 if (this.options.ranges) {
61132 this.yylloc.range[1]++;
61133 }
61134
61135 this._input = this._input.slice(1);
61136 return ch;
61137 },
61138
61139// unshifts one char (or a string) into the input
61140unput:function (ch) {
61141 var len = ch.length;
61142 var lines = ch.split(/(?:\r\n?|\n)/g);
61143
61144 this._input = ch + this._input;
61145 this.yytext = this.yytext.substr(0, this.yytext.length - len);
61146 //this.yyleng -= len;
61147 this.offset -= len;
61148 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
61149 this.match = this.match.substr(0, this.match.length - 1);
61150 this.matched = this.matched.substr(0, this.matched.length - 1);
61151
61152 if (lines.length - 1) {
61153 this.yylineno -= lines.length - 1;
61154 }
61155 var r = this.yylloc.range;
61156
61157 this.yylloc = {
61158 first_line: this.yylloc.first_line,
61159 last_line: this.yylineno + 1,
61160 first_column: this.yylloc.first_column,
61161 last_column: lines ?
61162 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
61163 + oldLines[oldLines.length - lines.length].length - lines[0].length :
61164 this.yylloc.first_column - len
61165 };
61166
61167 if (this.options.ranges) {
61168 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
61169 }
61170 this.yyleng = this.yytext.length;
61171 return this;
61172 },
61173
61174// When called from action, caches matched text and appends it on next action
61175more:function () {
61176 this._more = true;
61177 return this;
61178 },
61179
61180// 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.
61181reject:function () {
61182 if (this.options.backtrack_lexer) {
61183 this._backtrack = true;
61184 } else {
61185 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(), {
61186 text: "",
61187 token: null,
61188 line: this.yylineno
61189 });
61190
61191 }
61192 return this;
61193 },
61194
61195// retain first n characters of the match
61196less:function (n) {
61197 this.unput(this.match.slice(n));
61198 },
61199
61200// displays already matched input, i.e. for error messages
61201pastInput:function () {
61202 var past = this.matched.substr(0, this.matched.length - this.match.length);
61203 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
61204 },
61205
61206// displays upcoming input, i.e. for error messages
61207upcomingInput:function () {
61208 var next = this.match;
61209 if (next.length < 20) {
61210 next += this._input.substr(0, 20-next.length);
61211 }
61212 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
61213 },
61214
61215// displays the character position where the lexing error occurred, i.e. for error messages
61216showPosition:function () {
61217 var pre = this.pastInput();
61218 var c = new Array(pre.length + 1).join("-");
61219 return pre + this.upcomingInput() + "\n" + c + "^";
61220 },
61221
61222// test the lexed token: return FALSE when not a match, otherwise return token
61223test_match:function(match, indexed_rule) {
61224 var token,
61225 lines,
61226 backup;
61227
61228 if (this.options.backtrack_lexer) {
61229 // save context
61230 backup = {
61231 yylineno: this.yylineno,
61232 yylloc: {
61233 first_line: this.yylloc.first_line,
61234 last_line: this.last_line,
61235 first_column: this.yylloc.first_column,
61236 last_column: this.yylloc.last_column
61237 },
61238 yytext: this.yytext,
61239 match: this.match,
61240 matches: this.matches,
61241 matched: this.matched,
61242 yyleng: this.yyleng,
61243 offset: this.offset,
61244 _more: this._more,
61245 _input: this._input,
61246 yy: this.yy,
61247 conditionStack: this.conditionStack.slice(0),
61248 done: this.done
61249 };
61250 if (this.options.ranges) {
61251 backup.yylloc.range = this.yylloc.range.slice(0);
61252 }
61253 }
61254
61255 lines = match[0].match(/(?:\r\n?|\n).*/g);
61256 if (lines) {
61257 this.yylineno += lines.length;
61258 }
61259 this.yylloc = {
61260 first_line: this.yylloc.last_line,
61261 last_line: this.yylineno + 1,
61262 first_column: this.yylloc.last_column,
61263 last_column: lines ?
61264 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
61265 this.yylloc.last_column + match[0].length
61266 };
61267 this.yytext += match[0];
61268 this.match += match[0];
61269 this.matches = match;
61270 this.yyleng = this.yytext.length;
61271 if (this.options.ranges) {
61272 this.yylloc.range = [this.offset, this.offset += this.yyleng];
61273 }
61274 this._more = false;
61275 this._backtrack = false;
61276 this._input = this._input.slice(match[0].length);
61277 this.matched += match[0];
61278 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
61279 if (this.done && this._input) {
61280 this.done = false;
61281 }
61282 if (token) {
61283 return token;
61284 } else if (this._backtrack) {
61285 // recover context
61286 for (var k in backup) {
61287 this[k] = backup[k];
61288 }
61289 return false; // rule action called reject() implying the next rule should be tested instead.
61290 }
61291 return false;
61292 },
61293
61294// return next match in input
61295next:function () {
61296 if (this.done) {
61297 return this.EOF;
61298 }
61299 if (!this._input) {
61300 this.done = true;
61301 }
61302
61303 var token,
61304 match,
61305 tempMatch,
61306 index;
61307 if (!this._more) {
61308 this.yytext = '';
61309 this.match = '';
61310 }
61311 var rules = this._currentRules();
61312 for (var i = 0; i < rules.length; i++) {
61313 tempMatch = this._input.match(this.rules[rules[i]]);
61314 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
61315 match = tempMatch;
61316 index = i;
61317 if (this.options.backtrack_lexer) {
61318 token = this.test_match(tempMatch, rules[i]);
61319 if (token !== false) {
61320 return token;
61321 } else if (this._backtrack) {
61322 match = false;
61323 continue; // rule action called reject() implying a rule MISmatch.
61324 } else {
61325 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
61326 return false;
61327 }
61328 } else if (!this.options.flex) {
61329 break;
61330 }
61331 }
61332 }
61333 if (match) {
61334 token = this.test_match(match, rules[index]);
61335 if (token !== false) {
61336 return token;
61337 }
61338 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
61339 return false;
61340 }
61341 if (this._input === "") {
61342 return this.EOF;
61343 } else {
61344 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
61345 text: "",
61346 token: null,
61347 line: this.yylineno
61348 });
61349 }
61350 },
61351
61352// return next match that has a token
61353lex:function lex () {
61354 var r = this.next();
61355 if (r) {
61356 return r;
61357 } else {
61358 return this.lex();
61359 }
61360 },
61361
61362// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
61363begin:function begin (condition) {
61364 this.conditionStack.push(condition);
61365 },
61366
61367// pop the previously active lexer condition state off the condition stack
61368popState:function popState () {
61369 var n = this.conditionStack.length - 1;
61370 if (n > 0) {
61371 return this.conditionStack.pop();
61372 } else {
61373 return this.conditionStack[0];
61374 }
61375 },
61376
61377// produce the lexer rule set which is active for the currently active lexer condition state
61378_currentRules:function _currentRules () {
61379 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
61380 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
61381 } else {
61382 return this.conditions["INITIAL"].rules;
61383 }
61384 },
61385
61386// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
61387topState:function topState (n) {
61388 n = this.conditionStack.length - 1 - Math.abs(n || 0);
61389 if (n >= 0) {
61390 return this.conditionStack[n];
61391 } else {
61392 return "INITIAL";
61393 }
61394 },
61395
61396// alias for begin(condition)
61397pushState:function pushState (condition) {
61398 this.begin(condition);
61399 },
61400
61401// return the number of states currently on the stack
61402stateStackSize:function stateStackSize() {
61403 return this.conditionStack.length;
61404 },
61405options: {"case-insensitive":true},
61406performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
61407var YYSTATE=YY_START;
61408switch($avoiding_name_collisions) {
61409case 0: this.begin('open_directive'); return 32;
61410break;
61411case 1: this.begin('type_directive'); return 33;
61412break;
61413case 2: this.popState(); this.begin('arg_directive'); return 25;
61414break;
61415case 3: this.popState(); this.popState(); return 35;
61416break;
61417case 4:return 34;
61418break;
61419case 5:/* skip comments */
61420break;
61421case 6:/* skip comments */
61422break;
61423case 7:/* do nothing */
61424break;
61425case 8:return 11;
61426break;
61427case 9:/* skip whitespace */
61428break;
61429case 10:/* skip comments */
61430break;
61431case 11:/* skip comments */
61432break;
61433case 12:this.begin("href");
61434break;
61435case 13:this.popState();
61436break;
61437case 14:return 30;
61438break;
61439case 15:this.begin("callbackname");
61440break;
61441case 16:this.popState();
61442break;
61443case 17:this.popState(); this.begin("callbackargs");
61444break;
61445case 18:return 28;
61446break;
61447case 19:this.popState();
61448break;
61449case 20:return 29;
61450break;
61451case 21:this.begin("click");
61452break;
61453case 22:this.popState();
61454break;
61455case 23:return 27;
61456break;
61457case 24:return 5;
61458break;
61459case 25:return 12;
61460break;
61461case 26:return 13;
61462break;
61463case 27:return 14;
61464break;
61465case 28:return 15;
61466break;
61467case 29:return 16;
61468break;
61469case 30:return 'date';
61470break;
61471case 31:return 17;
61472break;
61473case 32:return 18;
61474break;
61475case 33:return 20;
61476break;
61477case 34:return 21;
61478break;
61479case 35:return 25;
61480break;
61481case 36:return 7;
61482break;
61483case 37:return 'INVALID';
61484break;
61485}
61486},
61487rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\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],
61488conditions: {"close_directive":{"rules":[],"inclusive":false},"arg_directive":{"rules":[3,4],"inclusive":false},"type_directive":{"rules":[2,3],"inclusive":false},"open_directive":{"rules":[1],"inclusive":false},"callbackargs":{"rules":[19,20],"inclusive":false},"callbackname":{"rules":[16,17,18],"inclusive":false},"href":{"rules":[13,14],"inclusive":false},"click":{"rules":[22,23],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,8,9,10,11,12,15,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"inclusive":true}}
61489});
61490return lexer;
61491})();
61492parser.lexer = lexer;
61493function Parser () {
61494 this.yy = {};
61495}
61496Parser.prototype = parser;parser.Parser = Parser;
61497return new Parser;
61498})();
61499
61500
61501if (true) {
61502exports.parser = parser;
61503exports.Parser = parser.Parser;
61504exports.parse = function () { return parser.parse.apply(parser, arguments); };
61505exports.main = function commonjsMain (args) {
61506 if (!args[1]) {
61507 console.log('Usage: '+args[0]+' FILE');
61508 process.exit(1);
61509 }
61510 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");
61511 return exports.parser.parse(source);
61512};
61513if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
61514 exports.main(process.argv.slice(1));
61515}
61516}
61517/* 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)))
61518
61519/***/ }),
61520
61521/***/ "./src/diagrams/gantt/styles.js":
61522/*!**************************************!*\
61523 !*** ./src/diagrams/gantt/styles.js ***!
61524 \**************************************/
61525/*! exports provided: default */
61526/***/ (function(module, __webpack_exports__, __webpack_require__) {
61527
61528"use strict";
61529__webpack_require__.r(__webpack_exports__);
61530var getStyles = function getStyles(options) {
61531 return "\n .mermaid-main-font {\n font-family: \"trebuchet ms\", verdana, arial;\n font-family: var(--mermaid-font-family);\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ".concat(options.sectionBkgColor, ";\n }\n\n .section2 {\n fill: ").concat(options.sectionBkgColor2, ";\n }\n\n .section1,\n .section3 {\n fill: ").concat(options.altSectionBkgColor, ";\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ").concat(options.titleColor, ";\n }\n\n .sectionTitle1 {\n fill: ").concat(options.titleColor, ";\n }\n\n .sectionTitle2 {\n fill: ").concat(options.titleColor, ";\n }\n\n .sectionTitle3 {\n fill: ").concat(options.titleColor, ";\n }\n\n .sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ").concat(options.gridColor, ";\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ").concat(options.fontFamily, ";\n fill: ").concat(options.textColor, ";\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ").concat(options.todayLineColor, ";\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n }\n\n .taskText:not([font-size]) {\n font-size: 11px;\n }\n\n .taskTextOutsideRight {\n fill: ").concat(options.taskTextDarkColor, ";\n text-anchor: start;\n font-size: 11px;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ").concat(options.taskTextDarkColor, ";\n text-anchor: end;\n font-size: 11px;\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ").concat(options.taskTextClickableColor, " !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ").concat(options.taskTextClickableColor, " !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ").concat(options.taskTextClickableColor, " !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ").concat(options.taskTextColor, ";\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ").concat(options.taskBkgColor, ";\n stroke: ").concat(options.taskBorderColor, ";\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ").concat(options.taskTextOutsideColor, ";\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ").concat(options.taskTextOutsideColor, ";\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ").concat(options.activeTaskBkgColor, ";\n stroke: ").concat(options.activeTaskBorderColor, ";\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ").concat(options.taskTextDarkColor, " !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ").concat(options.doneTaskBorderColor, ";\n fill: ").concat(options.doneTaskBkgColor, ";\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ").concat(options.taskTextDarkColor, " !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ").concat(options.critBorderColor, ";\n fill: ").concat(options.critBkgColor, ";\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ").concat(options.critBorderColor, ";\n fill: ").concat(options.activeTaskBkgColor, ";\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ").concat(options.critBorderColor, ";\n fill: ").concat(options.doneTaskBkgColor, ";\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ").concat(options.taskTextDarkColor, " !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ").concat(options.taskTextDarkColor, " !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ").concat(options.textColor, " ;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n }\n");
61532};
61533
61534/* harmony default export */ __webpack_exports__["default"] = (getStyles);
61535
61536/***/ }),
61537
61538/***/ "./src/diagrams/git/gitGraphAst.js":
61539/*!*****************************************!*\
61540 !*** ./src/diagrams/git/gitGraphAst.js ***!
61541 \*****************************************/
61542/*! exports provided: setDirection, setOptions, getOptions, commit, branch, merge, checkout, reset, prettyPrint, clear, getBranchesAsObjArray, getBranches, getCommits, getCommitsArray, getCurrentBranch, getDirection, getHead, default */
61543/***/ (function(module, __webpack_exports__, __webpack_require__) {
61544
61545"use strict";
61546__webpack_require__.r(__webpack_exports__);
61547/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDirection", function() { return setDirection; });
61548/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setOptions", function() { return setOptions; });
61549/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOptions", function() { return getOptions; });
61550/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commit", function() { return commit; });
61551/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "branch", function() { return branch; });
61552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; });
61553/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkout", function() { return checkout; });
61554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reset", function() { return reset; });
61555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prettyPrint", function() { return prettyPrint; });
61556/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
61557/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBranchesAsObjArray", function() { return getBranchesAsObjArray; });
61558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBranches", function() { return getBranches; });
61559/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCommits", function() { return getCommits; });
61560/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCommitsArray", function() { return getCommitsArray; });
61561/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCurrentBranch", function() { return getCurrentBranch; });
61562/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; });
61563/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getHead", function() { return getHead; });
61564/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
61565/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
61566
61567
61568var commits = {};
61569var head = null;
61570var branches = {
61571 master: head
61572};
61573var curBranch = 'master';
61574var direction = 'LR';
61575var seq = 0;
61576
61577function getId() {
61578 return Object(_utils__WEBPACK_IMPORTED_MODULE_1__["random"])({
61579 length: 7
61580 });
61581}
61582
61583function isfastforwardable(currentCommit, otherCommit) {
61584 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id);
61585
61586 while (currentCommit.seq <= otherCommit.seq && currentCommit !== otherCommit) {
61587 // only if other branch has more commits
61588 if (otherCommit.parent == null) break;
61589
61590 if (Array.isArray(otherCommit.parent)) {
61591 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('In merge commit:', otherCommit.parent);
61592 return isfastforwardable(currentCommit, commits[otherCommit.parent[0]]) || isfastforwardable(currentCommit, commits[otherCommit.parent[1]]);
61593 } else {
61594 otherCommit = commits[otherCommit.parent];
61595 }
61596 }
61597
61598 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(currentCommit.id, otherCommit.id);
61599 return currentCommit.id === otherCommit.id;
61600}
61601
61602function isReachableFrom(currentCommit, otherCommit) {
61603 var currentSeq = currentCommit.seq;
61604 var otherSeq = otherCommit.seq;
61605 if (currentSeq > otherSeq) return isfastforwardable(otherCommit, currentCommit);
61606 return false;
61607}
61608
61609function uniqBy(list, fn) {
61610 var recordMap = Object.create(null);
61611 return list.reduce(function (out, item) {
61612 var key = fn(item);
61613
61614 if (!recordMap[key]) {
61615 recordMap[key] = true;
61616 out.push(item);
61617 }
61618
61619 return out;
61620 }, []);
61621}
61622
61623var setDirection = function setDirection(dir) {
61624 direction = dir;
61625};
61626var options = {};
61627var setOptions = function setOptions(rawOptString) {
61628 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('options str', rawOptString);
61629 rawOptString = rawOptString && rawOptString.trim();
61630 rawOptString = rawOptString || '{}';
61631
61632 try {
61633 options = JSON.parse(rawOptString);
61634 } catch (e) {
61635 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].error('error while parsing gitGraph options', e.message);
61636 }
61637};
61638var getOptions = function getOptions() {
61639 return options;
61640};
61641var commit = function commit(msg) {
61642 var commit = {
61643 id: getId(),
61644 message: msg,
61645 seq: seq++,
61646 parent: head == null ? null : head.id
61647 };
61648 head = commit;
61649 commits[commit.id] = commit;
61650 branches[curBranch] = commit.id;
61651 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in pushCommit ' + commit.id);
61652};
61653var branch = function branch(name) {
61654 branches[name] = head != null ? head.id : null;
61655 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in createBranch');
61656};
61657var merge = function merge(otherBranch) {
61658 var currentCommit = commits[branches[curBranch]];
61659 var otherCommit = commits[branches[otherBranch]];
61660
61661 if (isReachableFrom(currentCommit, otherCommit)) {
61662 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Already merged');
61663 return;
61664 }
61665
61666 if (isfastforwardable(currentCommit, otherCommit)) {
61667 branches[curBranch] = branches[otherBranch];
61668 head = commits[branches[curBranch]];
61669 } else {
61670 // create merge commit
61671 var _commit = {
61672 id: getId(),
61673 message: 'merged branch ' + otherBranch + ' into ' + curBranch,
61674 seq: seq++,
61675 parent: [head == null ? null : head.id, branches[otherBranch]]
61676 };
61677 head = _commit;
61678 commits[_commit.id] = _commit;
61679 branches[curBranch] = _commit.id;
61680 }
61681
61682 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(branches);
61683 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in mergeBranch');
61684};
61685var checkout = function checkout(branch) {
61686 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in checkout');
61687 curBranch = branch;
61688 var id = branches[curBranch];
61689 head = commits[id];
61690};
61691var reset = function reset(commitRef) {
61692 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in reset', commitRef);
61693 var ref = commitRef.split(':')[0];
61694 var parentCount = parseInt(commitRef.split(':')[1]);
61695 var commit = ref === 'HEAD' ? head : commits[branches[ref]];
61696 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(commit, parentCount);
61697
61698 while (parentCount > 0) {
61699 commit = commits[commit.parent];
61700 parentCount--;
61701
61702 if (!commit) {
61703 var err = 'Critical error - unique parent commit not found during reset';
61704 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].error(err);
61705 throw err;
61706 }
61707 }
61708
61709 head = commit;
61710 branches[curBranch] = commit.id;
61711};
61712
61713function upsert(arr, key, newval) {
61714 var index = arr.indexOf(key);
61715
61716 if (index === -1) {
61717 arr.push(newval);
61718 } else {
61719 arr.splice(index, 1, newval);
61720 }
61721}
61722
61723function prettyPrintCommitHistory(commitArr) {
61724 var commit = commitArr.reduce(function (out, commit) {
61725 if (out.seq > commit.seq) return out;
61726 return commit;
61727 }, commitArr[0]);
61728 var line = '';
61729 commitArr.forEach(function (c) {
61730 if (c === commit) {
61731 line += '\t*';
61732 } else {
61733 line += '\t|';
61734 }
61735 });
61736 var label = [line, commit.id, commit.seq];
61737
61738 for (var _branch in branches) {
61739 if (branches[_branch] === commit.id) label.push(_branch);
61740 }
61741
61742 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(label.join(' '));
61743
61744 if (Array.isArray(commit.parent)) {
61745 var newCommit = commits[commit.parent[0]];
61746 upsert(commitArr, commit, newCommit);
61747 commitArr.push(commits[commit.parent[1]]);
61748 } else if (commit.parent == null) {
61749 return;
61750 } else {
61751 var nextCommit = commits[commit.parent];
61752 upsert(commitArr, commit, nextCommit);
61753 }
61754
61755 commitArr = uniqBy(commitArr, function (c) {
61756 return c.id;
61757 });
61758 prettyPrintCommitHistory(commitArr);
61759}
61760
61761var prettyPrint = function prettyPrint() {
61762 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(commits);
61763 var node = getCommitsArray()[0];
61764 prettyPrintCommitHistory([node]);
61765};
61766var clear = function clear() {
61767 commits = {};
61768 head = null;
61769 branches = {
61770 master: head
61771 };
61772 curBranch = 'master';
61773 seq = 0;
61774};
61775var getBranchesAsObjArray = function getBranchesAsObjArray() {
61776 var branchArr = [];
61777
61778 for (var _branch2 in branches) {
61779 branchArr.push({
61780 name: _branch2,
61781 commit: commits[branches[_branch2]]
61782 });
61783 }
61784
61785 return branchArr;
61786};
61787var getBranches = function getBranches() {
61788 return branches;
61789};
61790var getCommits = function getCommits() {
61791 return commits;
61792};
61793var getCommitsArray = function getCommitsArray() {
61794 var commitArr = Object.keys(commits).map(function (key) {
61795 return commits[key];
61796 });
61797 commitArr.forEach(function (o) {
61798 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(o.id);
61799 });
61800 commitArr.sort(function (a, b) {
61801 return b.seq - a.seq;
61802 });
61803 return commitArr;
61804};
61805var getCurrentBranch = function getCurrentBranch() {
61806 return curBranch;
61807};
61808var getDirection = function getDirection() {
61809 return direction;
61810};
61811var getHead = function getHead() {
61812 return head;
61813};
61814/* harmony default export */ __webpack_exports__["default"] = ({
61815 setDirection: setDirection,
61816 setOptions: setOptions,
61817 getOptions: getOptions,
61818 commit: commit,
61819 branch: branch,
61820 merge: merge,
61821 checkout: checkout,
61822 reset: reset,
61823 prettyPrint: prettyPrint,
61824 clear: clear,
61825 getBranchesAsObjArray: getBranchesAsObjArray,
61826 getBranches: getBranches,
61827 getCommits: getCommits,
61828 getCommitsArray: getCommitsArray,
61829 getCurrentBranch: getCurrentBranch,
61830 getDirection: getDirection,
61831 getHead: getHead
61832});
61833
61834/***/ }),
61835
61836/***/ "./src/diagrams/git/gitGraphRenderer.js":
61837/*!**********************************************!*\
61838 !*** ./src/diagrams/git/gitGraphRenderer.js ***!
61839 \**********************************************/
61840/*! exports provided: setConf, draw, default */
61841/***/ (function(module, __webpack_exports__, __webpack_require__) {
61842
61843"use strict";
61844__webpack_require__.r(__webpack_exports__);
61845/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
61846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
61847/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
61848/* harmony import */ var _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
61849/* harmony import */ var _parser_gitGraph__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.jison");
61850/* harmony import */ var _parser_gitGraph__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_gitGraph__WEBPACK_IMPORTED_MODULE_2__);
61851/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
61852/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
61853
61854
61855
61856
61857
61858var allCommitsDict = {};
61859var branchNum;
61860var config = {
61861 nodeSpacing: 150,
61862 nodeFillColor: 'yellow',
61863 nodeStrokeWidth: 2,
61864 nodeStrokeColor: 'grey',
61865 lineStrokeWidth: 4,
61866 branchOffset: 50,
61867 lineColor: 'grey',
61868 leftMargin: 50,
61869 branchColors: ['#442f74', '#983351', '#609732', '#AA9A39'],
61870 nodeRadius: 10,
61871 nodeLabel: {
61872 width: 75,
61873 height: 100,
61874 x: -25,
61875 y: 0
61876 }
61877};
61878var apiConfig = {};
61879var setConf = function setConf(c) {
61880 apiConfig = c;
61881};
61882
61883function svgCreateDefs(svg) {
61884 svg.append('defs').append('g').attr('id', 'def-commit').append('circle').attr('r', config.nodeRadius).attr('cx', 0).attr('cy', 0);
61885 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('');
61886}
61887
61888function svgDrawLine(svg, points, colorIdx, interpolate) {
61889 var curve = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["interpolateToCurve"])(interpolate, d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
61890 var color = config.branchColors[colorIdx % config.branchColors.length];
61891 var lineGen = Object(d3__WEBPACK_IMPORTED_MODULE_0__["line"])().x(function (d) {
61892 return Math.round(d.x);
61893 }).y(function (d) {
61894 return Math.round(d.y);
61895 }).curve(curve);
61896 svg.append('svg:path').attr('d', lineGen(points)).style('stroke', color).style('stroke-width', config.lineStrokeWidth).style('fill', 'none');
61897} // Pass in the element and its pre-transform coords
61898
61899
61900function getElementCoords(element, coords) {
61901 coords = coords || element.node().getBBox();
61902 var ctm = element.node().getCTM();
61903 var xn = ctm.e + coords.x * ctm.a;
61904 var yn = ctm.f + coords.y * ctm.d;
61905 return {
61906 left: xn,
61907 top: yn,
61908 width: coords.width,
61909 height: coords.height
61910 };
61911}
61912
61913function svgDrawLineForCommits(svg, fromId, toId, direction, color) {
61914 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('svgDrawLineForCommits: ', fromId, toId);
61915 var fromBbox = getElementCoords(svg.select('#node-' + fromId + ' circle'));
61916 var toBbox = getElementCoords(svg.select('#node-' + toId + ' circle'));
61917
61918 switch (direction) {
61919 case 'LR':
61920 // (toBbox)
61921 // +--------
61922 // + (fromBbox)
61923 if (fromBbox.left - toBbox.left > config.nodeSpacing) {
61924 var lineStart = {
61925 x: fromBbox.left - config.nodeSpacing,
61926 y: toBbox.top + toBbox.height / 2
61927 };
61928 var lineEnd = {
61929 x: toBbox.left + toBbox.width,
61930 y: toBbox.top + toBbox.height / 2
61931 };
61932 svgDrawLine(svg, [lineStart, lineEnd], color, 'linear');
61933 svgDrawLine(svg, [{
61934 x: fromBbox.left,
61935 y: fromBbox.top + fromBbox.height / 2
61936 }, {
61937 x: fromBbox.left - config.nodeSpacing / 2,
61938 y: fromBbox.top + fromBbox.height / 2
61939 }, {
61940 x: fromBbox.left - config.nodeSpacing / 2,
61941 y: lineStart.y
61942 }, lineStart], color);
61943 } else {
61944 svgDrawLine(svg, [{
61945 x: fromBbox.left,
61946 y: fromBbox.top + fromBbox.height / 2
61947 }, {
61948 x: fromBbox.left - config.nodeSpacing / 2,
61949 y: fromBbox.top + fromBbox.height / 2
61950 }, {
61951 x: fromBbox.left - config.nodeSpacing / 2,
61952 y: toBbox.top + toBbox.height / 2
61953 }, {
61954 x: toBbox.left + toBbox.width,
61955 y: toBbox.top + toBbox.height / 2
61956 }], color);
61957 }
61958
61959 break;
61960
61961 case 'BT':
61962 // + (fromBbox)
61963 // |
61964 // |
61965 // + (toBbox)
61966 if (toBbox.top - fromBbox.top > config.nodeSpacing) {
61967 var _lineStart = {
61968 x: toBbox.left + toBbox.width / 2,
61969 y: fromBbox.top + fromBbox.height + config.nodeSpacing
61970 };
61971 var _lineEnd = {
61972 x: toBbox.left + toBbox.width / 2,
61973 y: toBbox.top
61974 };
61975 svgDrawLine(svg, [_lineStart, _lineEnd], color, 'linear');
61976 svgDrawLine(svg, [{
61977 x: fromBbox.left + fromBbox.width / 2,
61978 y: fromBbox.top + fromBbox.height
61979 }, {
61980 x: fromBbox.left + fromBbox.width / 2,
61981 y: fromBbox.top + fromBbox.height + config.nodeSpacing / 2
61982 }, {
61983 x: toBbox.left + toBbox.width / 2,
61984 y: _lineStart.y - config.nodeSpacing / 2
61985 }, _lineStart], color);
61986 } else {
61987 svgDrawLine(svg, [{
61988 x: fromBbox.left + fromBbox.width / 2,
61989 y: fromBbox.top + fromBbox.height
61990 }, {
61991 x: fromBbox.left + fromBbox.width / 2,
61992 y: fromBbox.top + config.nodeSpacing / 2
61993 }, {
61994 x: toBbox.left + toBbox.width / 2,
61995 y: toBbox.top - config.nodeSpacing / 2
61996 }, {
61997 x: toBbox.left + toBbox.width / 2,
61998 y: toBbox.top
61999 }], color);
62000 }
62001
62002 break;
62003 }
62004}
62005
62006function cloneNode(svg, selector) {
62007 return svg.select(selector).node().cloneNode(true);
62008}
62009
62010function renderCommitHistory(svg, commitid, branches, direction) {
62011 var commit;
62012 var numCommits = Object.keys(allCommitsDict).length;
62013
62014 if (typeof commitid === 'string') {
62015 do {
62016 commit = allCommitsDict[commitid];
62017 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('in renderCommitHistory', commit.id, commit.seq);
62018
62019 if (svg.select('#node-' + commitid).size() > 0) {
62020 return;
62021 }
62022
62023 svg.append(function () {
62024 return cloneNode(svg, '#def-commit');
62025 }).attr('class', 'commit').attr('id', function () {
62026 return 'node-' + commit.id;
62027 }).attr('transform', function () {
62028 switch (direction) {
62029 case 'LR':
62030 return 'translate(' + (commit.seq * config.nodeSpacing + config.leftMargin) + ', ' + branchNum * config.branchOffset + ')';
62031
62032 case 'BT':
62033 return 'translate(' + (branchNum * config.branchOffset + config.leftMargin) + ', ' + (numCommits - commit.seq) * config.nodeSpacing + ')';
62034 }
62035 }).attr('fill', config.nodeFillColor).attr('stroke', config.nodeStrokeColor).attr('stroke-width', config.nodeStrokeWidth);
62036 var branch = void 0;
62037
62038 for (var branchName in branches) {
62039 if (branches[branchName].commit === commit) {
62040 branch = branches[branchName];
62041 break;
62042 }
62043 }
62044
62045 if (branch) {
62046 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('found branch ', branch.name);
62047 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'branch-label').text(branch.name + ', ');
62048 }
62049
62050 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-id').text(commit.id);
62051
62052 if (commit.message !== '' && direction === 'BT') {
62053 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-msg').text(', ' + commit.message);
62054 }
62055
62056 commitid = commit.parent;
62057 } while (commitid && allCommitsDict[commitid]);
62058 }
62059
62060 if (Array.isArray(commitid)) {
62061 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('found merge commmit', commitid);
62062 renderCommitHistory(svg, commitid[0], branches, direction);
62063 branchNum++;
62064 renderCommitHistory(svg, commitid[1], branches, direction);
62065 branchNum--;
62066 }
62067}
62068
62069function renderLines(svg, commit, direction, branchColor) {
62070 branchColor = branchColor || 0;
62071
62072 while (commit.seq > 0 && !commit.lineDrawn) {
62073 if (typeof commit.parent === 'string') {
62074 svgDrawLineForCommits(svg, commit.id, commit.parent, direction, branchColor);
62075 commit.lineDrawn = true;
62076 commit = allCommitsDict[commit.parent];
62077 } else if (Array.isArray(commit.parent)) {
62078 svgDrawLineForCommits(svg, commit.id, commit.parent[0], direction, branchColor);
62079 svgDrawLineForCommits(svg, commit.id, commit.parent[1], direction, branchColor + 1);
62080 renderLines(svg, allCommitsDict[commit.parent[1]], direction, branchColor + 1);
62081 commit.lineDrawn = true;
62082 commit = allCommitsDict[commit.parent[0]];
62083 }
62084 }
62085}
62086
62087var draw = function draw(txt, id, ver) {
62088 try {
62089 var parser = _parser_gitGraph__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
62090 parser.yy = _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"];
62091 parser.yy.clear();
62092 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('in gitgraph renderer', txt + '\n', 'id:', id, ver); // Parse the graph definition
62093
62094 parser.parse(txt + '\n');
62095 config = Object.assign(config, apiConfig, _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"].getOptions());
62096 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('effective options', config);
62097 var direction = _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"].getDirection();
62098 allCommitsDict = _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"].getCommits();
62099 var branches = _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"].getBranchesAsObjArray();
62100
62101 if (direction === 'BT') {
62102 config.nodeLabel.x = branches.length * config.branchOffset;
62103 config.nodeLabel.width = '100%';
62104 config.nodeLabel.y = -1 * 2 * config.nodeRadius;
62105 }
62106
62107 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id=\"".concat(id, "\"]"));
62108 svgCreateDefs(svg);
62109 branchNum = 1;
62110
62111 for (var branch in branches) {
62112 var v = branches[branch];
62113 renderCommitHistory(svg, v.commit.id, branches, direction);
62114 renderLines(svg, v.commit, direction);
62115 branchNum++;
62116 }
62117
62118 svg.attr('height', function () {
62119 if (direction === 'BT') return Object.keys(allCommitsDict).length * config.nodeSpacing;
62120 return (branches.length + 1) * config.branchOffset;
62121 });
62122 } catch (e) {
62123 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering gitgraph');
62124 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e.message);
62125 }
62126};
62127/* harmony default export */ __webpack_exports__["default"] = ({
62128 setConf: setConf,
62129 draw: draw
62130});
62131
62132/***/ }),
62133
62134/***/ "./src/diagrams/git/parser/gitGraph.jison":
62135/*!************************************************!*\
62136 !*** ./src/diagrams/git/parser/gitGraph.jison ***!
62137 \************************************************/
62138/*! no static exports found */
62139/***/ (function(module, exports, __webpack_require__) {
62140
62141/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
62142/*
62143 Returns a Parser object of the following structure:
62144
62145 Parser: {
62146 yy: {}
62147 }
62148
62149 Parser.prototype: {
62150 yy: {},
62151 trace: function(),
62152 symbols_: {associative list: name ==> number},
62153 terminals_: {associative list: number ==> name},
62154 productions_: [...],
62155 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
62156 table: [...],
62157 defaultActions: {...},
62158 parseError: function(str, hash),
62159 parse: function(input),
62160
62161 lexer: {
62162 EOF: 1,
62163 parseError: function(str, hash),
62164 setInput: function(input),
62165 input: function(),
62166 unput: function(str),
62167 more: function(),
62168 less: function(n),
62169 pastInput: function(),
62170 upcomingInput: function(),
62171 showPosition: function(),
62172 test_match: function(regex_match_array, rule_index),
62173 next: function(),
62174 lex: function(),
62175 begin: function(condition),
62176 popState: function(),
62177 _currentRules: function(),
62178 topState: function(),
62179 pushState: function(condition),
62180
62181 options: {
62182 ranges: boolean (optional: true ==> token location info will include a .range[] member)
62183 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
62184 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)
62185 },
62186
62187 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
62188 rules: [...],
62189 conditions: {associative list: name ==> set},
62190 }
62191 }
62192
62193
62194 token location info (@$, _$, etc.): {
62195 first_line: n,
62196 last_line: n,
62197 first_column: n,
62198 last_column: n,
62199 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
62200 }
62201
62202
62203 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
62204 text: (matched text)
62205 token: (the produced terminal token, if any)
62206 line: (yylineno)
62207 }
62208 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
62209 loc: (yylloc)
62210 expected: (string describing the set of expected tokens)
62211 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
62212 }
62213*/
62214var parser = (function(){
62215var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,3],$V1=[1,7],$V2=[7,12,15,17,19,20,21],$V3=[7,11,12,15,17,19,20,21],$V4=[2,20],$V5=[1,32];
62216var parser = {trace: function trace () { },
62217yy: {},
62218symbols_: {"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},
62219terminals_: {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"},
62220productions_: [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]],
62221performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
62222/* this == yyval */
62223
62224var $0 = $$.length - 1;
62225switch (yystate) {
62226case 1:
62227 return $$[$0-1];
62228break;
62229case 2:
62230yy.setDirection($$[$0-3]); return $$[$0-1];
62231break;
62232case 4:
62233 yy.setOptions($$[$0-1]); this.$ = $$[$0]
62234break;
62235case 5:
62236$$[$0-1] +=$$[$0]; this.$=$$[$0-1]
62237break;
62238case 7:
62239this.$ = []
62240break;
62241case 8:
62242$$[$0-1].push($$[$0]); this.$=$$[$0-1];
62243break;
62244case 9:
62245this.$ =$$[$0-1]
62246break;
62247case 11:
62248yy.commit($$[$0])
62249break;
62250case 12:
62251yy.branch($$[$0])
62252break;
62253case 13:
62254yy.checkout($$[$0])
62255break;
62256case 14:
62257yy.merge($$[$0])
62258break;
62259case 15:
62260yy.reset($$[$0])
62261break;
62262case 16:
62263this.$ = ""
62264break;
62265case 17:
62266this.$=$$[$0]
62267break;
62268case 18:
62269this.$ = $$[$0-1]+ ":" + $$[$0]
62270break;
62271case 19:
62272this.$ = $$[$0-1]+ ":" + yy.count; yy.count = 0
62273break;
62274case 20:
62275yy.count = 0
62276break;
62277case 21:
62278 yy.count += 1
62279break;
62280}
62281},
62282table: [{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]}],
62283defaultActions: {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]},
62284parseError: function parseError (str, hash) {
62285 if (hash.recoverable) {
62286 this.trace(str);
62287 } else {
62288 var error = new Error(str);
62289 error.hash = hash;
62290 throw error;
62291 }
62292},
62293parse: function parse(input) {
62294 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
62295 var args = lstack.slice.call(arguments, 1);
62296 var lexer = Object.create(this.lexer);
62297 var sharedState = { yy: {} };
62298 for (var k in this.yy) {
62299 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
62300 sharedState.yy[k] = this.yy[k];
62301 }
62302 }
62303 lexer.setInput(input, sharedState.yy);
62304 sharedState.yy.lexer = lexer;
62305 sharedState.yy.parser = this;
62306 if (typeof lexer.yylloc == 'undefined') {
62307 lexer.yylloc = {};
62308 }
62309 var yyloc = lexer.yylloc;
62310 lstack.push(yyloc);
62311 var ranges = lexer.options && lexer.options.ranges;
62312 if (typeof sharedState.yy.parseError === 'function') {
62313 this.parseError = sharedState.yy.parseError;
62314 } else {
62315 this.parseError = Object.getPrototypeOf(this).parseError;
62316 }
62317 function popStack(n) {
62318 stack.length = stack.length - 2 * n;
62319 vstack.length = vstack.length - n;
62320 lstack.length = lstack.length - n;
62321 }
62322 function lex() {
62323 var token;
62324 token = tstack.pop() || lexer.lex() || EOF;
62325 if (typeof token !== 'number') {
62326 if (token instanceof Array) {
62327 tstack = token;
62328 token = tstack.pop();
62329 }
62330 token = self.symbols_[token] || token;
62331 }
62332 return token;
62333 }
62334 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
62335 while (true) {
62336 state = stack[stack.length - 1];
62337 if (this.defaultActions[state]) {
62338 action = this.defaultActions[state];
62339 } else {
62340 if (symbol === null || typeof symbol == 'undefined') {
62341 symbol = lex();
62342 }
62343 action = table[state] && table[state][symbol];
62344 }
62345 if (typeof action === 'undefined' || !action.length || !action[0]) {
62346 var errStr = '';
62347 expected = [];
62348 for (p in table[state]) {
62349 if (this.terminals_[p] && p > TERROR) {
62350 expected.push('\'' + this.terminals_[p] + '\'');
62351 }
62352 }
62353 if (lexer.showPosition) {
62354 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
62355 } else {
62356 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
62357 }
62358 this.parseError(errStr, {
62359 text: lexer.match,
62360 token: this.terminals_[symbol] || symbol,
62361 line: lexer.yylineno,
62362 loc: yyloc,
62363 expected: expected
62364 });
62365 }
62366 if (action[0] instanceof Array && action.length > 1) {
62367 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
62368 }
62369 switch (action[0]) {
62370 case 1:
62371 stack.push(symbol);
62372 vstack.push(lexer.yytext);
62373 lstack.push(lexer.yylloc);
62374 stack.push(action[1]);
62375 symbol = null;
62376 if (!preErrorSymbol) {
62377 yyleng = lexer.yyleng;
62378 yytext = lexer.yytext;
62379 yylineno = lexer.yylineno;
62380 yyloc = lexer.yylloc;
62381 if (recovering > 0) {
62382 recovering--;
62383 }
62384 } else {
62385 symbol = preErrorSymbol;
62386 preErrorSymbol = null;
62387 }
62388 break;
62389 case 2:
62390 len = this.productions_[action[1]][1];
62391 yyval.$ = vstack[vstack.length - len];
62392 yyval._$ = {
62393 first_line: lstack[lstack.length - (len || 1)].first_line,
62394 last_line: lstack[lstack.length - 1].last_line,
62395 first_column: lstack[lstack.length - (len || 1)].first_column,
62396 last_column: lstack[lstack.length - 1].last_column
62397 };
62398 if (ranges) {
62399 yyval._$.range = [
62400 lstack[lstack.length - (len || 1)].range[0],
62401 lstack[lstack.length - 1].range[1]
62402 ];
62403 }
62404 r = this.performAction.apply(yyval, [
62405 yytext,
62406 yyleng,
62407 yylineno,
62408 sharedState.yy,
62409 action[1],
62410 vstack,
62411 lstack
62412 ].concat(args));
62413 if (typeof r !== 'undefined') {
62414 return r;
62415 }
62416 if (len) {
62417 stack = stack.slice(0, -1 * len * 2);
62418 vstack = vstack.slice(0, -1 * len);
62419 lstack = lstack.slice(0, -1 * len);
62420 }
62421 stack.push(this.productions_[action[1]][0]);
62422 vstack.push(yyval.$);
62423 lstack.push(yyval._$);
62424 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
62425 stack.push(newState);
62426 break;
62427 case 3:
62428 return true;
62429 }
62430 }
62431 return true;
62432}};
62433/* generated by jison-lex 0.3.4 */
62434var lexer = (function(){
62435var lexer = ({
62436
62437EOF:1,
62438
62439parseError:function parseError(str, hash) {
62440 if (this.yy.parser) {
62441 this.yy.parser.parseError(str, hash);
62442 } else {
62443 throw new Error(str);
62444 }
62445 },
62446
62447// resets the lexer, sets new input
62448setInput:function (input, yy) {
62449 this.yy = yy || this.yy || {};
62450 this._input = input;
62451 this._more = this._backtrack = this.done = false;
62452 this.yylineno = this.yyleng = 0;
62453 this.yytext = this.matched = this.match = '';
62454 this.conditionStack = ['INITIAL'];
62455 this.yylloc = {
62456 first_line: 1,
62457 first_column: 0,
62458 last_line: 1,
62459 last_column: 0
62460 };
62461 if (this.options.ranges) {
62462 this.yylloc.range = [0,0];
62463 }
62464 this.offset = 0;
62465 return this;
62466 },
62467
62468// consumes and returns one char from the input
62469input:function () {
62470 var ch = this._input[0];
62471 this.yytext += ch;
62472 this.yyleng++;
62473 this.offset++;
62474 this.match += ch;
62475 this.matched += ch;
62476 var lines = ch.match(/(?:\r\n?|\n).*/g);
62477 if (lines) {
62478 this.yylineno++;
62479 this.yylloc.last_line++;
62480 } else {
62481 this.yylloc.last_column++;
62482 }
62483 if (this.options.ranges) {
62484 this.yylloc.range[1]++;
62485 }
62486
62487 this._input = this._input.slice(1);
62488 return ch;
62489 },
62490
62491// unshifts one char (or a string) into the input
62492unput:function (ch) {
62493 var len = ch.length;
62494 var lines = ch.split(/(?:\r\n?|\n)/g);
62495
62496 this._input = ch + this._input;
62497 this.yytext = this.yytext.substr(0, this.yytext.length - len);
62498 //this.yyleng -= len;
62499 this.offset -= len;
62500 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
62501 this.match = this.match.substr(0, this.match.length - 1);
62502 this.matched = this.matched.substr(0, this.matched.length - 1);
62503
62504 if (lines.length - 1) {
62505 this.yylineno -= lines.length - 1;
62506 }
62507 var r = this.yylloc.range;
62508
62509 this.yylloc = {
62510 first_line: this.yylloc.first_line,
62511 last_line: this.yylineno + 1,
62512 first_column: this.yylloc.first_column,
62513 last_column: lines ?
62514 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
62515 + oldLines[oldLines.length - lines.length].length - lines[0].length :
62516 this.yylloc.first_column - len
62517 };
62518
62519 if (this.options.ranges) {
62520 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
62521 }
62522 this.yyleng = this.yytext.length;
62523 return this;
62524 },
62525
62526// When called from action, caches matched text and appends it on next action
62527more:function () {
62528 this._more = true;
62529 return this;
62530 },
62531
62532// 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.
62533reject:function () {
62534 if (this.options.backtrack_lexer) {
62535 this._backtrack = true;
62536 } else {
62537 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(), {
62538 text: "",
62539 token: null,
62540 line: this.yylineno
62541 });
62542
62543 }
62544 return this;
62545 },
62546
62547// retain first n characters of the match
62548less:function (n) {
62549 this.unput(this.match.slice(n));
62550 },
62551
62552// displays already matched input, i.e. for error messages
62553pastInput:function () {
62554 var past = this.matched.substr(0, this.matched.length - this.match.length);
62555 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
62556 },
62557
62558// displays upcoming input, i.e. for error messages
62559upcomingInput:function () {
62560 var next = this.match;
62561 if (next.length < 20) {
62562 next += this._input.substr(0, 20-next.length);
62563 }
62564 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
62565 },
62566
62567// displays the character position where the lexing error occurred, i.e. for error messages
62568showPosition:function () {
62569 var pre = this.pastInput();
62570 var c = new Array(pre.length + 1).join("-");
62571 return pre + this.upcomingInput() + "\n" + c + "^";
62572 },
62573
62574// test the lexed token: return FALSE when not a match, otherwise return token
62575test_match:function(match, indexed_rule) {
62576 var token,
62577 lines,
62578 backup;
62579
62580 if (this.options.backtrack_lexer) {
62581 // save context
62582 backup = {
62583 yylineno: this.yylineno,
62584 yylloc: {
62585 first_line: this.yylloc.first_line,
62586 last_line: this.last_line,
62587 first_column: this.yylloc.first_column,
62588 last_column: this.yylloc.last_column
62589 },
62590 yytext: this.yytext,
62591 match: this.match,
62592 matches: this.matches,
62593 matched: this.matched,
62594 yyleng: this.yyleng,
62595 offset: this.offset,
62596 _more: this._more,
62597 _input: this._input,
62598 yy: this.yy,
62599 conditionStack: this.conditionStack.slice(0),
62600 done: this.done
62601 };
62602 if (this.options.ranges) {
62603 backup.yylloc.range = this.yylloc.range.slice(0);
62604 }
62605 }
62606
62607 lines = match[0].match(/(?:\r\n?|\n).*/g);
62608 if (lines) {
62609 this.yylineno += lines.length;
62610 }
62611 this.yylloc = {
62612 first_line: this.yylloc.last_line,
62613 last_line: this.yylineno + 1,
62614 first_column: this.yylloc.last_column,
62615 last_column: lines ?
62616 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
62617 this.yylloc.last_column + match[0].length
62618 };
62619 this.yytext += match[0];
62620 this.match += match[0];
62621 this.matches = match;
62622 this.yyleng = this.yytext.length;
62623 if (this.options.ranges) {
62624 this.yylloc.range = [this.offset, this.offset += this.yyleng];
62625 }
62626 this._more = false;
62627 this._backtrack = false;
62628 this._input = this._input.slice(match[0].length);
62629 this.matched += match[0];
62630 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
62631 if (this.done && this._input) {
62632 this.done = false;
62633 }
62634 if (token) {
62635 return token;
62636 } else if (this._backtrack) {
62637 // recover context
62638 for (var k in backup) {
62639 this[k] = backup[k];
62640 }
62641 return false; // rule action called reject() implying the next rule should be tested instead.
62642 }
62643 return false;
62644 },
62645
62646// return next match in input
62647next:function () {
62648 if (this.done) {
62649 return this.EOF;
62650 }
62651 if (!this._input) {
62652 this.done = true;
62653 }
62654
62655 var token,
62656 match,
62657 tempMatch,
62658 index;
62659 if (!this._more) {
62660 this.yytext = '';
62661 this.match = '';
62662 }
62663 var rules = this._currentRules();
62664 for (var i = 0; i < rules.length; i++) {
62665 tempMatch = this._input.match(this.rules[rules[i]]);
62666 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
62667 match = tempMatch;
62668 index = i;
62669 if (this.options.backtrack_lexer) {
62670 token = this.test_match(tempMatch, rules[i]);
62671 if (token !== false) {
62672 return token;
62673 } else if (this._backtrack) {
62674 match = false;
62675 continue; // rule action called reject() implying a rule MISmatch.
62676 } else {
62677 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
62678 return false;
62679 }
62680 } else if (!this.options.flex) {
62681 break;
62682 }
62683 }
62684 }
62685 if (match) {
62686 token = this.test_match(match, rules[index]);
62687 if (token !== false) {
62688 return token;
62689 }
62690 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
62691 return false;
62692 }
62693 if (this._input === "") {
62694 return this.EOF;
62695 } else {
62696 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
62697 text: "",
62698 token: null,
62699 line: this.yylineno
62700 });
62701 }
62702 },
62703
62704// return next match that has a token
62705lex:function lex () {
62706 var r = this.next();
62707 if (r) {
62708 return r;
62709 } else {
62710 return this.lex();
62711 }
62712 },
62713
62714// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
62715begin:function begin (condition) {
62716 this.conditionStack.push(condition);
62717 },
62718
62719// pop the previously active lexer condition state off the condition stack
62720popState:function popState () {
62721 var n = this.conditionStack.length - 1;
62722 if (n > 0) {
62723 return this.conditionStack.pop();
62724 } else {
62725 return this.conditionStack[0];
62726 }
62727 },
62728
62729// produce the lexer rule set which is active for the currently active lexer condition state
62730_currentRules:function _currentRules () {
62731 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
62732 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
62733 } else {
62734 return this.conditions["INITIAL"].rules;
62735 }
62736 },
62737
62738// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
62739topState:function topState (n) {
62740 n = this.conditionStack.length - 1 - Math.abs(n || 0);
62741 if (n >= 0) {
62742 return this.conditionStack[n];
62743 } else {
62744 return "INITIAL";
62745 }
62746 },
62747
62748// alias for begin(condition)
62749pushState:function pushState (condition) {
62750 this.begin(condition);
62751 },
62752
62753// return the number of states currently on the stack
62754stateStackSize:function stateStackSize() {
62755 return this.conditionStack.length;
62756 },
62757options: {"case-insensitive":true},
62758performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
62759var YYSTATE=YY_START;
62760switch($avoiding_name_collisions) {
62761case 0:return 12;
62762break;
62763case 1:/* skip all whitespace */
62764break;
62765case 2:/* skip comments */
62766break;
62767case 3:/* skip comments */
62768break;
62769case 4:return 4;
62770break;
62771case 5:return 15;
62772break;
62773case 6:return 17;
62774break;
62775case 7:return 20;
62776break;
62777case 8:return 21;
62778break;
62779case 9:return 19;
62780break;
62781case 10:return 8;
62782break;
62783case 11:return 8;
62784break;
62785case 12:return 5;
62786break;
62787case 13:return 26
62788break;
62789case 14:this.begin("options");
62790break;
62791case 15:this.popState();
62792break;
62793case 16:return 11;
62794break;
62795case 17:this.begin("string");
62796break;
62797case 18:this.popState();
62798break;
62799case 19:return 23;
62800break;
62801case 20:return 18;
62802break;
62803case 21:return 7;
62804break;
62805}
62806},
62807rules: [/^(?:(\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]*[-_a-zA-Z0-9])/i,/^(?:$)/i],
62808conditions: {"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}}
62809});
62810return lexer;
62811})();
62812parser.lexer = lexer;
62813function Parser () {
62814 this.yy = {};
62815}
62816Parser.prototype = parser;parser.Parser = Parser;
62817return new Parser;
62818})();
62819
62820
62821if (true) {
62822exports.parser = parser;
62823exports.Parser = parser.Parser;
62824exports.parse = function () { return parser.parse.apply(parser, arguments); };
62825exports.main = function commonjsMain (args) {
62826 if (!args[1]) {
62827 console.log('Usage: '+args[0]+' FILE');
62828 process.exit(1);
62829 }
62830 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");
62831 return exports.parser.parse(source);
62832};
62833if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
62834 exports.main(process.argv.slice(1));
62835}
62836}
62837/* 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)))
62838
62839/***/ }),
62840
62841/***/ "./src/diagrams/git/styles.js":
62842/*!************************************!*\
62843 !*** ./src/diagrams/git/styles.js ***!
62844 \************************************/
62845/*! exports provided: default */
62846/***/ (function(module, __webpack_exports__, __webpack_require__) {
62847
62848"use strict";
62849__webpack_require__.r(__webpack_exports__);
62850var getStyles = function getStyles() {
62851 return "\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n }\n";
62852};
62853
62854/* harmony default export */ __webpack_exports__["default"] = (getStyles);
62855
62856/***/ }),
62857
62858/***/ "./src/diagrams/info/infoDb.js":
62859/*!*************************************!*\
62860 !*** ./src/diagrams/info/infoDb.js ***!
62861 \*************************************/
62862/*! exports provided: setMessage, getMessage, setInfo, getInfo, default */
62863/***/ (function(module, __webpack_exports__, __webpack_require__) {
62864
62865"use strict";
62866__webpack_require__.r(__webpack_exports__);
62867/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMessage", function() { return setMessage; });
62868/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMessage", function() { return getMessage; });
62869/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setInfo", function() { return setInfo; });
62870/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInfo", function() { return getInfo; });
62871/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
62872/**
62873 * Created by knut on 15-01-14.
62874 */
62875
62876var message = '';
62877var info = false;
62878var setMessage = function setMessage(txt) {
62879 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Setting message to: ' + txt);
62880 message = txt;
62881};
62882var getMessage = function getMessage() {
62883 return message;
62884};
62885var setInfo = function setInfo(inf) {
62886 info = inf;
62887};
62888var getInfo = function getInfo() {
62889 return info;
62890}; // export const parseError = (err, hash) => {
62891// global.mermaidAPI.parseError(err, hash)
62892// }
62893
62894/* harmony default export */ __webpack_exports__["default"] = ({
62895 setMessage: setMessage,
62896 getMessage: getMessage,
62897 setInfo: setInfo,
62898 getInfo: getInfo // parseError
62899
62900});
62901
62902/***/ }),
62903
62904/***/ "./src/diagrams/info/infoRenderer.js":
62905/*!*******************************************!*\
62906 !*** ./src/diagrams/info/infoRenderer.js ***!
62907 \*******************************************/
62908/*! exports provided: setConf, draw, default */
62909/***/ (function(module, __webpack_exports__, __webpack_require__) {
62910
62911"use strict";
62912__webpack_require__.r(__webpack_exports__);
62913/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
62914/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
62915/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
62916/* harmony import */ var _infoDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./infoDb */ "./src/diagrams/info/infoDb.js");
62917/* harmony import */ var _parser_info__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/info */ "./src/diagrams/info/parser/info.jison");
62918/* harmony import */ var _parser_info__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_info__WEBPACK_IMPORTED_MODULE_2__);
62919/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
62920/**
62921 * Created by knut on 14-12-11.
62922 */
62923
62924
62925
62926
62927var conf = {};
62928var setConf = function setConf(cnf) {
62929 var keys = Object.keys(cnf);
62930 keys.forEach(function (key) {
62931 conf[key] = cnf[key];
62932 });
62933};
62934/**
62935 * Draws a an info picture in the tag with id: id based on the graph definition in text.
62936 * @param text
62937 * @param id
62938 */
62939
62940var draw = function draw(txt, id, ver) {
62941 try {
62942 var parser = _parser_info__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
62943 parser.yy = _infoDb__WEBPACK_IMPORTED_MODULE_1__["default"];
62944 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Renering info diagram\n' + txt); // Parse the graph definition
62945
62946 parser.parse(txt);
62947 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Parsed info diagram'); // Fetch the default direction, use TD if none was found
62948
62949 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id);
62950 var g = svg.append('g');
62951 g.append('text') // text label for the x axis
62952 .attr('x', 100).attr('y', 40).attr('class', 'version').attr('font-size', '32px').style('text-anchor', 'middle').text('v ' + ver);
62953 svg.attr('height', 100);
62954 svg.attr('width', 400); // svg.attr('viewBox', '0 0 300 150');
62955 } catch (e) {
62956 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering info diagram');
62957 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e.message);
62958 }
62959};
62960/* harmony default export */ __webpack_exports__["default"] = ({
62961 setConf: setConf,
62962 draw: draw
62963});
62964
62965/***/ }),
62966
62967/***/ "./src/diagrams/info/parser/info.jison":
62968/*!*********************************************!*\
62969 !*** ./src/diagrams/info/parser/info.jison ***!
62970 \*********************************************/
62971/*! no static exports found */
62972/***/ (function(module, exports, __webpack_require__) {
62973
62974/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
62975/*
62976 Returns a Parser object of the following structure:
62977
62978 Parser: {
62979 yy: {}
62980 }
62981
62982 Parser.prototype: {
62983 yy: {},
62984 trace: function(),
62985 symbols_: {associative list: name ==> number},
62986 terminals_: {associative list: number ==> name},
62987 productions_: [...],
62988 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
62989 table: [...],
62990 defaultActions: {...},
62991 parseError: function(str, hash),
62992 parse: function(input),
62993
62994 lexer: {
62995 EOF: 1,
62996 parseError: function(str, hash),
62997 setInput: function(input),
62998 input: function(),
62999 unput: function(str),
63000 more: function(),
63001 less: function(n),
63002 pastInput: function(),
63003 upcomingInput: function(),
63004 showPosition: function(),
63005 test_match: function(regex_match_array, rule_index),
63006 next: function(),
63007 lex: function(),
63008 begin: function(condition),
63009 popState: function(),
63010 _currentRules: function(),
63011 topState: function(),
63012 pushState: function(condition),
63013
63014 options: {
63015 ranges: boolean (optional: true ==> token location info will include a .range[] member)
63016 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
63017 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)
63018 },
63019
63020 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
63021 rules: [...],
63022 conditions: {associative list: name ==> set},
63023 }
63024 }
63025
63026
63027 token location info (@$, _$, etc.): {
63028 first_line: n,
63029 last_line: n,
63030 first_column: n,
63031 last_column: n,
63032 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
63033 }
63034
63035
63036 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
63037 text: (matched text)
63038 token: (the produced terminal token, if any)
63039 line: (yylineno)
63040 }
63041 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
63042 loc: (yylloc)
63043 expected: (string describing the set of expected tokens)
63044 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
63045 }
63046*/
63047var parser = (function(){
63048var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10];
63049var parser = {trace: function trace () { },
63050yy: {},
63051symbols_: {"error":2,"start":3,"info":4,"document":5,"EOF":6,"line":7,"statement":8,"NL":9,"showInfo":10,"$accept":0,"$end":1},
63052terminals_: {2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},
63053productions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],
63054performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
63055/* this == yyval */
63056
63057var $0 = $$.length - 1;
63058switch (yystate) {
63059case 1:
63060 return yy;
63061break;
63062case 4:
63063
63064break;
63065case 6:
63066 yy.setInfo(true);
63067break;
63068}
63069},
63070table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),o($V0,[2,6])],
63071defaultActions: {4:[2,1]},
63072parseError: function parseError (str, hash) {
63073 if (hash.recoverable) {
63074 this.trace(str);
63075 } else {
63076 var error = new Error(str);
63077 error.hash = hash;
63078 throw error;
63079 }
63080},
63081parse: function parse(input) {
63082 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
63083 var args = lstack.slice.call(arguments, 1);
63084 var lexer = Object.create(this.lexer);
63085 var sharedState = { yy: {} };
63086 for (var k in this.yy) {
63087 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
63088 sharedState.yy[k] = this.yy[k];
63089 }
63090 }
63091 lexer.setInput(input, sharedState.yy);
63092 sharedState.yy.lexer = lexer;
63093 sharedState.yy.parser = this;
63094 if (typeof lexer.yylloc == 'undefined') {
63095 lexer.yylloc = {};
63096 }
63097 var yyloc = lexer.yylloc;
63098 lstack.push(yyloc);
63099 var ranges = lexer.options && lexer.options.ranges;
63100 if (typeof sharedState.yy.parseError === 'function') {
63101 this.parseError = sharedState.yy.parseError;
63102 } else {
63103 this.parseError = Object.getPrototypeOf(this).parseError;
63104 }
63105 function popStack(n) {
63106 stack.length = stack.length - 2 * n;
63107 vstack.length = vstack.length - n;
63108 lstack.length = lstack.length - n;
63109 }
63110 function lex() {
63111 var token;
63112 token = tstack.pop() || lexer.lex() || EOF;
63113 if (typeof token !== 'number') {
63114 if (token instanceof Array) {
63115 tstack = token;
63116 token = tstack.pop();
63117 }
63118 token = self.symbols_[token] || token;
63119 }
63120 return token;
63121 }
63122 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
63123 while (true) {
63124 state = stack[stack.length - 1];
63125 if (this.defaultActions[state]) {
63126 action = this.defaultActions[state];
63127 } else {
63128 if (symbol === null || typeof symbol == 'undefined') {
63129 symbol = lex();
63130 }
63131 action = table[state] && table[state][symbol];
63132 }
63133 if (typeof action === 'undefined' || !action.length || !action[0]) {
63134 var errStr = '';
63135 expected = [];
63136 for (p in table[state]) {
63137 if (this.terminals_[p] && p > TERROR) {
63138 expected.push('\'' + this.terminals_[p] + '\'');
63139 }
63140 }
63141 if (lexer.showPosition) {
63142 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
63143 } else {
63144 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
63145 }
63146 this.parseError(errStr, {
63147 text: lexer.match,
63148 token: this.terminals_[symbol] || symbol,
63149 line: lexer.yylineno,
63150 loc: yyloc,
63151 expected: expected
63152 });
63153 }
63154 if (action[0] instanceof Array && action.length > 1) {
63155 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
63156 }
63157 switch (action[0]) {
63158 case 1:
63159 stack.push(symbol);
63160 vstack.push(lexer.yytext);
63161 lstack.push(lexer.yylloc);
63162 stack.push(action[1]);
63163 symbol = null;
63164 if (!preErrorSymbol) {
63165 yyleng = lexer.yyleng;
63166 yytext = lexer.yytext;
63167 yylineno = lexer.yylineno;
63168 yyloc = lexer.yylloc;
63169 if (recovering > 0) {
63170 recovering--;
63171 }
63172 } else {
63173 symbol = preErrorSymbol;
63174 preErrorSymbol = null;
63175 }
63176 break;
63177 case 2:
63178 len = this.productions_[action[1]][1];
63179 yyval.$ = vstack[vstack.length - len];
63180 yyval._$ = {
63181 first_line: lstack[lstack.length - (len || 1)].first_line,
63182 last_line: lstack[lstack.length - 1].last_line,
63183 first_column: lstack[lstack.length - (len || 1)].first_column,
63184 last_column: lstack[lstack.length - 1].last_column
63185 };
63186 if (ranges) {
63187 yyval._$.range = [
63188 lstack[lstack.length - (len || 1)].range[0],
63189 lstack[lstack.length - 1].range[1]
63190 ];
63191 }
63192 r = this.performAction.apply(yyval, [
63193 yytext,
63194 yyleng,
63195 yylineno,
63196 sharedState.yy,
63197 action[1],
63198 vstack,
63199 lstack
63200 ].concat(args));
63201 if (typeof r !== 'undefined') {
63202 return r;
63203 }
63204 if (len) {
63205 stack = stack.slice(0, -1 * len * 2);
63206 vstack = vstack.slice(0, -1 * len);
63207 lstack = lstack.slice(0, -1 * len);
63208 }
63209 stack.push(this.productions_[action[1]][0]);
63210 vstack.push(yyval.$);
63211 lstack.push(yyval._$);
63212 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
63213 stack.push(newState);
63214 break;
63215 case 3:
63216 return true;
63217 }
63218 }
63219 return true;
63220}};
63221
63222/* generated by jison-lex 0.3.4 */
63223var lexer = (function(){
63224var lexer = ({
63225
63226EOF:1,
63227
63228parseError:function parseError(str, hash) {
63229 if (this.yy.parser) {
63230 this.yy.parser.parseError(str, hash);
63231 } else {
63232 throw new Error(str);
63233 }
63234 },
63235
63236// resets the lexer, sets new input
63237setInput:function (input, yy) {
63238 this.yy = yy || this.yy || {};
63239 this._input = input;
63240 this._more = this._backtrack = this.done = false;
63241 this.yylineno = this.yyleng = 0;
63242 this.yytext = this.matched = this.match = '';
63243 this.conditionStack = ['INITIAL'];
63244 this.yylloc = {
63245 first_line: 1,
63246 first_column: 0,
63247 last_line: 1,
63248 last_column: 0
63249 };
63250 if (this.options.ranges) {
63251 this.yylloc.range = [0,0];
63252 }
63253 this.offset = 0;
63254 return this;
63255 },
63256
63257// consumes and returns one char from the input
63258input:function () {
63259 var ch = this._input[0];
63260 this.yytext += ch;
63261 this.yyleng++;
63262 this.offset++;
63263 this.match += ch;
63264 this.matched += ch;
63265 var lines = ch.match(/(?:\r\n?|\n).*/g);
63266 if (lines) {
63267 this.yylineno++;
63268 this.yylloc.last_line++;
63269 } else {
63270 this.yylloc.last_column++;
63271 }
63272 if (this.options.ranges) {
63273 this.yylloc.range[1]++;
63274 }
63275
63276 this._input = this._input.slice(1);
63277 return ch;
63278 },
63279
63280// unshifts one char (or a string) into the input
63281unput:function (ch) {
63282 var len = ch.length;
63283 var lines = ch.split(/(?:\r\n?|\n)/g);
63284
63285 this._input = ch + this._input;
63286 this.yytext = this.yytext.substr(0, this.yytext.length - len);
63287 //this.yyleng -= len;
63288 this.offset -= len;
63289 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
63290 this.match = this.match.substr(0, this.match.length - 1);
63291 this.matched = this.matched.substr(0, this.matched.length - 1);
63292
63293 if (lines.length - 1) {
63294 this.yylineno -= lines.length - 1;
63295 }
63296 var r = this.yylloc.range;
63297
63298 this.yylloc = {
63299 first_line: this.yylloc.first_line,
63300 last_line: this.yylineno + 1,
63301 first_column: this.yylloc.first_column,
63302 last_column: lines ?
63303 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
63304 + oldLines[oldLines.length - lines.length].length - lines[0].length :
63305 this.yylloc.first_column - len
63306 };
63307
63308 if (this.options.ranges) {
63309 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
63310 }
63311 this.yyleng = this.yytext.length;
63312 return this;
63313 },
63314
63315// When called from action, caches matched text and appends it on next action
63316more:function () {
63317 this._more = true;
63318 return this;
63319 },
63320
63321// 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.
63322reject:function () {
63323 if (this.options.backtrack_lexer) {
63324 this._backtrack = true;
63325 } else {
63326 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(), {
63327 text: "",
63328 token: null,
63329 line: this.yylineno
63330 });
63331
63332 }
63333 return this;
63334 },
63335
63336// retain first n characters of the match
63337less:function (n) {
63338 this.unput(this.match.slice(n));
63339 },
63340
63341// displays already matched input, i.e. for error messages
63342pastInput:function () {
63343 var past = this.matched.substr(0, this.matched.length - this.match.length);
63344 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
63345 },
63346
63347// displays upcoming input, i.e. for error messages
63348upcomingInput:function () {
63349 var next = this.match;
63350 if (next.length < 20) {
63351 next += this._input.substr(0, 20-next.length);
63352 }
63353 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
63354 },
63355
63356// displays the character position where the lexing error occurred, i.e. for error messages
63357showPosition:function () {
63358 var pre = this.pastInput();
63359 var c = new Array(pre.length + 1).join("-");
63360 return pre + this.upcomingInput() + "\n" + c + "^";
63361 },
63362
63363// test the lexed token: return FALSE when not a match, otherwise return token
63364test_match:function(match, indexed_rule) {
63365 var token,
63366 lines,
63367 backup;
63368
63369 if (this.options.backtrack_lexer) {
63370 // save context
63371 backup = {
63372 yylineno: this.yylineno,
63373 yylloc: {
63374 first_line: this.yylloc.first_line,
63375 last_line: this.last_line,
63376 first_column: this.yylloc.first_column,
63377 last_column: this.yylloc.last_column
63378 },
63379 yytext: this.yytext,
63380 match: this.match,
63381 matches: this.matches,
63382 matched: this.matched,
63383 yyleng: this.yyleng,
63384 offset: this.offset,
63385 _more: this._more,
63386 _input: this._input,
63387 yy: this.yy,
63388 conditionStack: this.conditionStack.slice(0),
63389 done: this.done
63390 };
63391 if (this.options.ranges) {
63392 backup.yylloc.range = this.yylloc.range.slice(0);
63393 }
63394 }
63395
63396 lines = match[0].match(/(?:\r\n?|\n).*/g);
63397 if (lines) {
63398 this.yylineno += lines.length;
63399 }
63400 this.yylloc = {
63401 first_line: this.yylloc.last_line,
63402 last_line: this.yylineno + 1,
63403 first_column: this.yylloc.last_column,
63404 last_column: lines ?
63405 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
63406 this.yylloc.last_column + match[0].length
63407 };
63408 this.yytext += match[0];
63409 this.match += match[0];
63410 this.matches = match;
63411 this.yyleng = this.yytext.length;
63412 if (this.options.ranges) {
63413 this.yylloc.range = [this.offset, this.offset += this.yyleng];
63414 }
63415 this._more = false;
63416 this._backtrack = false;
63417 this._input = this._input.slice(match[0].length);
63418 this.matched += match[0];
63419 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
63420 if (this.done && this._input) {
63421 this.done = false;
63422 }
63423 if (token) {
63424 return token;
63425 } else if (this._backtrack) {
63426 // recover context
63427 for (var k in backup) {
63428 this[k] = backup[k];
63429 }
63430 return false; // rule action called reject() implying the next rule should be tested instead.
63431 }
63432 return false;
63433 },
63434
63435// return next match in input
63436next:function () {
63437 if (this.done) {
63438 return this.EOF;
63439 }
63440 if (!this._input) {
63441 this.done = true;
63442 }
63443
63444 var token,
63445 match,
63446 tempMatch,
63447 index;
63448 if (!this._more) {
63449 this.yytext = '';
63450 this.match = '';
63451 }
63452 var rules = this._currentRules();
63453 for (var i = 0; i < rules.length; i++) {
63454 tempMatch = this._input.match(this.rules[rules[i]]);
63455 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
63456 match = tempMatch;
63457 index = i;
63458 if (this.options.backtrack_lexer) {
63459 token = this.test_match(tempMatch, rules[i]);
63460 if (token !== false) {
63461 return token;
63462 } else if (this._backtrack) {
63463 match = false;
63464 continue; // rule action called reject() implying a rule MISmatch.
63465 } else {
63466 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
63467 return false;
63468 }
63469 } else if (!this.options.flex) {
63470 break;
63471 }
63472 }
63473 }
63474 if (match) {
63475 token = this.test_match(match, rules[index]);
63476 if (token !== false) {
63477 return token;
63478 }
63479 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
63480 return false;
63481 }
63482 if (this._input === "") {
63483 return this.EOF;
63484 } else {
63485 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
63486 text: "",
63487 token: null,
63488 line: this.yylineno
63489 });
63490 }
63491 },
63492
63493// return next match that has a token
63494lex:function lex () {
63495 var r = this.next();
63496 if (r) {
63497 return r;
63498 } else {
63499 return this.lex();
63500 }
63501 },
63502
63503// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
63504begin:function begin (condition) {
63505 this.conditionStack.push(condition);
63506 },
63507
63508// pop the previously active lexer condition state off the condition stack
63509popState:function popState () {
63510 var n = this.conditionStack.length - 1;
63511 if (n > 0) {
63512 return this.conditionStack.pop();
63513 } else {
63514 return this.conditionStack[0];
63515 }
63516 },
63517
63518// produce the lexer rule set which is active for the currently active lexer condition state
63519_currentRules:function _currentRules () {
63520 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
63521 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
63522 } else {
63523 return this.conditions["INITIAL"].rules;
63524 }
63525 },
63526
63527// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
63528topState:function topState (n) {
63529 n = this.conditionStack.length - 1 - Math.abs(n || 0);
63530 if (n >= 0) {
63531 return this.conditionStack[n];
63532 } else {
63533 return "INITIAL";
63534 }
63535 },
63536
63537// alias for begin(condition)
63538pushState:function pushState (condition) {
63539 this.begin(condition);
63540 },
63541
63542// return the number of states currently on the stack
63543stateStackSize:function stateStackSize() {
63544 return this.conditionStack.length;
63545 },
63546options: {"case-insensitive":true},
63547performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
63548 // Pre-lexer code can go here
63549
63550var YYSTATE=YY_START;
63551switch($avoiding_name_collisions) {
63552case 0:return 4 ;
63553break;
63554case 1:return 9 ;
63555break;
63556case 2:return 'space';
63557break;
63558case 3:return 10;
63559break;
63560case 4:return 6 ;
63561break;
63562case 5:return 'TXT' ;
63563break;
63564}
63565},
63566rules: [/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],
63567conditions: {"INITIAL":{"rules":[0,1,2,3,4,5],"inclusive":true}}
63568});
63569return lexer;
63570})();
63571parser.lexer = lexer;
63572function Parser () {
63573 this.yy = {};
63574}
63575Parser.prototype = parser;parser.Parser = Parser;
63576return new Parser;
63577})();
63578
63579
63580if (true) {
63581exports.parser = parser;
63582exports.Parser = parser.Parser;
63583exports.parse = function () { return parser.parse.apply(parser, arguments); };
63584exports.main = function commonjsMain (args) {
63585 if (!args[1]) {
63586 console.log('Usage: '+args[0]+' FILE');
63587 process.exit(1);
63588 }
63589 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");
63590 return exports.parser.parse(source);
63591};
63592if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
63593 exports.main(process.argv.slice(1));
63594}
63595}
63596/* 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)))
63597
63598/***/ }),
63599
63600/***/ "./src/diagrams/info/styles.js":
63601/*!*************************************!*\
63602 !*** ./src/diagrams/info/styles.js ***!
63603 \*************************************/
63604/*! exports provided: default */
63605/***/ (function(module, __webpack_exports__, __webpack_require__) {
63606
63607"use strict";
63608__webpack_require__.r(__webpack_exports__);
63609var getStyles = function getStyles() {
63610 return "";
63611};
63612
63613/* harmony default export */ __webpack_exports__["default"] = (getStyles);
63614
63615/***/ }),
63616
63617/***/ "./src/diagrams/pie/parser/pie.jison":
63618/*!*******************************************!*\
63619 !*** ./src/diagrams/pie/parser/pie.jison ***!
63620 \*******************************************/
63621/*! no static exports found */
63622/***/ (function(module, exports, __webpack_require__) {
63623
63624/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
63625/*
63626 Returns a Parser object of the following structure:
63627
63628 Parser: {
63629 yy: {}
63630 }
63631
63632 Parser.prototype: {
63633 yy: {},
63634 trace: function(),
63635 symbols_: {associative list: name ==> number},
63636 terminals_: {associative list: number ==> name},
63637 productions_: [...],
63638 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
63639 table: [...],
63640 defaultActions: {...},
63641 parseError: function(str, hash),
63642 parse: function(input),
63643
63644 lexer: {
63645 EOF: 1,
63646 parseError: function(str, hash),
63647 setInput: function(input),
63648 input: function(),
63649 unput: function(str),
63650 more: function(),
63651 less: function(n),
63652 pastInput: function(),
63653 upcomingInput: function(),
63654 showPosition: function(),
63655 test_match: function(regex_match_array, rule_index),
63656 next: function(),
63657 lex: function(),
63658 begin: function(condition),
63659 popState: function(),
63660 _currentRules: function(),
63661 topState: function(),
63662 pushState: function(condition),
63663
63664 options: {
63665 ranges: boolean (optional: true ==> token location info will include a .range[] member)
63666 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
63667 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)
63668 },
63669
63670 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
63671 rules: [...],
63672 conditions: {associative list: name ==> set},
63673 }
63674 }
63675
63676
63677 token location info (@$, _$, etc.): {
63678 first_line: n,
63679 last_line: n,
63680 first_column: n,
63681 last_column: n,
63682 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
63683 }
63684
63685
63686 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
63687 text: (matched text)
63688 token: (the produced terminal token, if any)
63689 line: (yylineno)
63690 }
63691 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
63692 loc: (yylloc)
63693 expected: (string describing the set of expected tokens)
63694 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
63695 }
63696*/
63697var parser = (function(){
63698var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,5],$V2=[1,6],$V3=[1,7],$V4=[1,9],$V5=[1,10,12,19,20,21,22],$V6=[1,6,10,12,19,20,21,22],$V7=[19,20,21],$V8=[1,22],$V9=[6,19,20,21,22];
63699var parser = {trace: function trace () { },
63700yy: {},
63701symbols_: {"error":2,"start":3,"eol":4,"directive":5,"PIE":6,"document":7,"line":8,"statement":9,"txt":10,"value":11,"title":12,"title_value":13,"openDirective":14,"typeDirective":15,"closeDirective":16,":":17,"argDirective":18,"NEWLINE":19,";":20,"EOF":21,"open_directive":22,"type_directive":23,"arg_directive":24,"close_directive":25,"$accept":0,"$end":1},
63702terminals_: {2:"error",6:"PIE",10:"txt",11:"value",12:"title",13:"title_value",17:":",19:"NEWLINE",20:";",21:"EOF",22:"open_directive",23:"type_directive",24:"arg_directive",25:"close_directive"},
63703productions_: [0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,2],[9,1],[5,3],[5,5],[4,1],[4,1],[4,1],[14,1],[15,1],[18,1],[16,1]],
63704performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
63705/* this == yyval */
63706
63707var $0 = $$.length - 1;
63708switch (yystate) {
63709case 6:
63710 this.$ = $$[$0-1]
63711break;
63712case 8:
63713 yy.addSection($$[$0-1],yy.cleanupValue($$[$0]));
63714break;
63715case 9:
63716 this.$=$$[$0].trim();yy.setTitle(this.$);
63717break;
63718case 16:
63719 yy.parseDirective('%%{', 'open_directive');
63720break;
63721case 17:
63722 yy.parseDirective($$[$0], 'type_directive');
63723break;
63724case 18:
63725 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
63726break;
63727case 19:
63728 yy.parseDirective('}%%', 'close_directive', 'pie');
63729break;
63730}
63731},
63732table: [{3:1,4:2,5:3,6:$V0,14:8,19:$V1,20:$V2,21:$V3,22:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,14:8,19:$V1,20:$V2,21:$V3,22:$V4},{3:11,4:2,5:3,6:$V0,14:8,19:$V1,20:$V2,21:$V3,22:$V4},o($V5,[2,4],{7:12}),o($V6,[2,13]),o($V6,[2,14]),o($V6,[2,15]),{15:13,23:[1,14]},{23:[2,16]},{1:[2,1]},{1:[2,2]},o($V7,[2,7],{14:8,8:15,9:16,5:19,1:[2,3],10:[1,17],12:[1,18],22:$V4}),{16:20,17:[1,21],25:$V8},o([17,25],[2,17]),o($V5,[2,5]),{4:23,19:$V1,20:$V2,21:$V3},{11:[1,24]},{13:[1,25]},o($V7,[2,10]),o($V9,[2,11]),{18:26,24:[1,27]},o($V9,[2,19]),o($V5,[2,6]),o($V7,[2,8]),o($V7,[2,9]),{16:28,25:$V8},{25:[2,18]},o($V9,[2,12])],
63733defaultActions: {9:[2,16],10:[2,1],11:[2,2],27:[2,18]},
63734parseError: function parseError (str, hash) {
63735 if (hash.recoverable) {
63736 this.trace(str);
63737 } else {
63738 var error = new Error(str);
63739 error.hash = hash;
63740 throw error;
63741 }
63742},
63743parse: function parse(input) {
63744 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
63745 var args = lstack.slice.call(arguments, 1);
63746 var lexer = Object.create(this.lexer);
63747 var sharedState = { yy: {} };
63748 for (var k in this.yy) {
63749 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
63750 sharedState.yy[k] = this.yy[k];
63751 }
63752 }
63753 lexer.setInput(input, sharedState.yy);
63754 sharedState.yy.lexer = lexer;
63755 sharedState.yy.parser = this;
63756 if (typeof lexer.yylloc == 'undefined') {
63757 lexer.yylloc = {};
63758 }
63759 var yyloc = lexer.yylloc;
63760 lstack.push(yyloc);
63761 var ranges = lexer.options && lexer.options.ranges;
63762 if (typeof sharedState.yy.parseError === 'function') {
63763 this.parseError = sharedState.yy.parseError;
63764 } else {
63765 this.parseError = Object.getPrototypeOf(this).parseError;
63766 }
63767 function popStack(n) {
63768 stack.length = stack.length - 2 * n;
63769 vstack.length = vstack.length - n;
63770 lstack.length = lstack.length - n;
63771 }
63772 function lex() {
63773 var token;
63774 token = tstack.pop() || lexer.lex() || EOF;
63775 if (typeof token !== 'number') {
63776 if (token instanceof Array) {
63777 tstack = token;
63778 token = tstack.pop();
63779 }
63780 token = self.symbols_[token] || token;
63781 }
63782 return token;
63783 }
63784 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
63785 while (true) {
63786 state = stack[stack.length - 1];
63787 if (this.defaultActions[state]) {
63788 action = this.defaultActions[state];
63789 } else {
63790 if (symbol === null || typeof symbol == 'undefined') {
63791 symbol = lex();
63792 }
63793 action = table[state] && table[state][symbol];
63794 }
63795 if (typeof action === 'undefined' || !action.length || !action[0]) {
63796 var errStr = '';
63797 expected = [];
63798 for (p in table[state]) {
63799 if (this.terminals_[p] && p > TERROR) {
63800 expected.push('\'' + this.terminals_[p] + '\'');
63801 }
63802 }
63803 if (lexer.showPosition) {
63804 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
63805 } else {
63806 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
63807 }
63808 this.parseError(errStr, {
63809 text: lexer.match,
63810 token: this.terminals_[symbol] || symbol,
63811 line: lexer.yylineno,
63812 loc: yyloc,
63813 expected: expected
63814 });
63815 }
63816 if (action[0] instanceof Array && action.length > 1) {
63817 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
63818 }
63819 switch (action[0]) {
63820 case 1:
63821 stack.push(symbol);
63822 vstack.push(lexer.yytext);
63823 lstack.push(lexer.yylloc);
63824 stack.push(action[1]);
63825 symbol = null;
63826 if (!preErrorSymbol) {
63827 yyleng = lexer.yyleng;
63828 yytext = lexer.yytext;
63829 yylineno = lexer.yylineno;
63830 yyloc = lexer.yylloc;
63831 if (recovering > 0) {
63832 recovering--;
63833 }
63834 } else {
63835 symbol = preErrorSymbol;
63836 preErrorSymbol = null;
63837 }
63838 break;
63839 case 2:
63840 len = this.productions_[action[1]][1];
63841 yyval.$ = vstack[vstack.length - len];
63842 yyval._$ = {
63843 first_line: lstack[lstack.length - (len || 1)].first_line,
63844 last_line: lstack[lstack.length - 1].last_line,
63845 first_column: lstack[lstack.length - (len || 1)].first_column,
63846 last_column: lstack[lstack.length - 1].last_column
63847 };
63848 if (ranges) {
63849 yyval._$.range = [
63850 lstack[lstack.length - (len || 1)].range[0],
63851 lstack[lstack.length - 1].range[1]
63852 ];
63853 }
63854 r = this.performAction.apply(yyval, [
63855 yytext,
63856 yyleng,
63857 yylineno,
63858 sharedState.yy,
63859 action[1],
63860 vstack,
63861 lstack
63862 ].concat(args));
63863 if (typeof r !== 'undefined') {
63864 return r;
63865 }
63866 if (len) {
63867 stack = stack.slice(0, -1 * len * 2);
63868 vstack = vstack.slice(0, -1 * len);
63869 lstack = lstack.slice(0, -1 * len);
63870 }
63871 stack.push(this.productions_[action[1]][0]);
63872 vstack.push(yyval.$);
63873 lstack.push(yyval._$);
63874 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
63875 stack.push(newState);
63876 break;
63877 case 3:
63878 return true;
63879 }
63880 }
63881 return true;
63882}};
63883
63884/* generated by jison-lex 0.3.4 */
63885var lexer = (function(){
63886var lexer = ({
63887
63888EOF:1,
63889
63890parseError:function parseError(str, hash) {
63891 if (this.yy.parser) {
63892 this.yy.parser.parseError(str, hash);
63893 } else {
63894 throw new Error(str);
63895 }
63896 },
63897
63898// resets the lexer, sets new input
63899setInput:function (input, yy) {
63900 this.yy = yy || this.yy || {};
63901 this._input = input;
63902 this._more = this._backtrack = this.done = false;
63903 this.yylineno = this.yyleng = 0;
63904 this.yytext = this.matched = this.match = '';
63905 this.conditionStack = ['INITIAL'];
63906 this.yylloc = {
63907 first_line: 1,
63908 first_column: 0,
63909 last_line: 1,
63910 last_column: 0
63911 };
63912 if (this.options.ranges) {
63913 this.yylloc.range = [0,0];
63914 }
63915 this.offset = 0;
63916 return this;
63917 },
63918
63919// consumes and returns one char from the input
63920input:function () {
63921 var ch = this._input[0];
63922 this.yytext += ch;
63923 this.yyleng++;
63924 this.offset++;
63925 this.match += ch;
63926 this.matched += ch;
63927 var lines = ch.match(/(?:\r\n?|\n).*/g);
63928 if (lines) {
63929 this.yylineno++;
63930 this.yylloc.last_line++;
63931 } else {
63932 this.yylloc.last_column++;
63933 }
63934 if (this.options.ranges) {
63935 this.yylloc.range[1]++;
63936 }
63937
63938 this._input = this._input.slice(1);
63939 return ch;
63940 },
63941
63942// unshifts one char (or a string) into the input
63943unput:function (ch) {
63944 var len = ch.length;
63945 var lines = ch.split(/(?:\r\n?|\n)/g);
63946
63947 this._input = ch + this._input;
63948 this.yytext = this.yytext.substr(0, this.yytext.length - len);
63949 //this.yyleng -= len;
63950 this.offset -= len;
63951 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
63952 this.match = this.match.substr(0, this.match.length - 1);
63953 this.matched = this.matched.substr(0, this.matched.length - 1);
63954
63955 if (lines.length - 1) {
63956 this.yylineno -= lines.length - 1;
63957 }
63958 var r = this.yylloc.range;
63959
63960 this.yylloc = {
63961 first_line: this.yylloc.first_line,
63962 last_line: this.yylineno + 1,
63963 first_column: this.yylloc.first_column,
63964 last_column: lines ?
63965 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
63966 + oldLines[oldLines.length - lines.length].length - lines[0].length :
63967 this.yylloc.first_column - len
63968 };
63969
63970 if (this.options.ranges) {
63971 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
63972 }
63973 this.yyleng = this.yytext.length;
63974 return this;
63975 },
63976
63977// When called from action, caches matched text and appends it on next action
63978more:function () {
63979 this._more = true;
63980 return this;
63981 },
63982
63983// 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.
63984reject:function () {
63985 if (this.options.backtrack_lexer) {
63986 this._backtrack = true;
63987 } else {
63988 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(), {
63989 text: "",
63990 token: null,
63991 line: this.yylineno
63992 });
63993
63994 }
63995 return this;
63996 },
63997
63998// retain first n characters of the match
63999less:function (n) {
64000 this.unput(this.match.slice(n));
64001 },
64002
64003// displays already matched input, i.e. for error messages
64004pastInput:function () {
64005 var past = this.matched.substr(0, this.matched.length - this.match.length);
64006 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
64007 },
64008
64009// displays upcoming input, i.e. for error messages
64010upcomingInput:function () {
64011 var next = this.match;
64012 if (next.length < 20) {
64013 next += this._input.substr(0, 20-next.length);
64014 }
64015 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
64016 },
64017
64018// displays the character position where the lexing error occurred, i.e. for error messages
64019showPosition:function () {
64020 var pre = this.pastInput();
64021 var c = new Array(pre.length + 1).join("-");
64022 return pre + this.upcomingInput() + "\n" + c + "^";
64023 },
64024
64025// test the lexed token: return FALSE when not a match, otherwise return token
64026test_match:function(match, indexed_rule) {
64027 var token,
64028 lines,
64029 backup;
64030
64031 if (this.options.backtrack_lexer) {
64032 // save context
64033 backup = {
64034 yylineno: this.yylineno,
64035 yylloc: {
64036 first_line: this.yylloc.first_line,
64037 last_line: this.last_line,
64038 first_column: this.yylloc.first_column,
64039 last_column: this.yylloc.last_column
64040 },
64041 yytext: this.yytext,
64042 match: this.match,
64043 matches: this.matches,
64044 matched: this.matched,
64045 yyleng: this.yyleng,
64046 offset: this.offset,
64047 _more: this._more,
64048 _input: this._input,
64049 yy: this.yy,
64050 conditionStack: this.conditionStack.slice(0),
64051 done: this.done
64052 };
64053 if (this.options.ranges) {
64054 backup.yylloc.range = this.yylloc.range.slice(0);
64055 }
64056 }
64057
64058 lines = match[0].match(/(?:\r\n?|\n).*/g);
64059 if (lines) {
64060 this.yylineno += lines.length;
64061 }
64062 this.yylloc = {
64063 first_line: this.yylloc.last_line,
64064 last_line: this.yylineno + 1,
64065 first_column: this.yylloc.last_column,
64066 last_column: lines ?
64067 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
64068 this.yylloc.last_column + match[0].length
64069 };
64070 this.yytext += match[0];
64071 this.match += match[0];
64072 this.matches = match;
64073 this.yyleng = this.yytext.length;
64074 if (this.options.ranges) {
64075 this.yylloc.range = [this.offset, this.offset += this.yyleng];
64076 }
64077 this._more = false;
64078 this._backtrack = false;
64079 this._input = this._input.slice(match[0].length);
64080 this.matched += match[0];
64081 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
64082 if (this.done && this._input) {
64083 this.done = false;
64084 }
64085 if (token) {
64086 return token;
64087 } else if (this._backtrack) {
64088 // recover context
64089 for (var k in backup) {
64090 this[k] = backup[k];
64091 }
64092 return false; // rule action called reject() implying the next rule should be tested instead.
64093 }
64094 return false;
64095 },
64096
64097// return next match in input
64098next:function () {
64099 if (this.done) {
64100 return this.EOF;
64101 }
64102 if (!this._input) {
64103 this.done = true;
64104 }
64105
64106 var token,
64107 match,
64108 tempMatch,
64109 index;
64110 if (!this._more) {
64111 this.yytext = '';
64112 this.match = '';
64113 }
64114 var rules = this._currentRules();
64115 for (var i = 0; i < rules.length; i++) {
64116 tempMatch = this._input.match(this.rules[rules[i]]);
64117 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
64118 match = tempMatch;
64119 index = i;
64120 if (this.options.backtrack_lexer) {
64121 token = this.test_match(tempMatch, rules[i]);
64122 if (token !== false) {
64123 return token;
64124 } else if (this._backtrack) {
64125 match = false;
64126 continue; // rule action called reject() implying a rule MISmatch.
64127 } else {
64128 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
64129 return false;
64130 }
64131 } else if (!this.options.flex) {
64132 break;
64133 }
64134 }
64135 }
64136 if (match) {
64137 token = this.test_match(match, rules[index]);
64138 if (token !== false) {
64139 return token;
64140 }
64141 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
64142 return false;
64143 }
64144 if (this._input === "") {
64145 return this.EOF;
64146 } else {
64147 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
64148 text: "",
64149 token: null,
64150 line: this.yylineno
64151 });
64152 }
64153 },
64154
64155// return next match that has a token
64156lex:function lex () {
64157 var r = this.next();
64158 if (r) {
64159 return r;
64160 } else {
64161 return this.lex();
64162 }
64163 },
64164
64165// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
64166begin:function begin (condition) {
64167 this.conditionStack.push(condition);
64168 },
64169
64170// pop the previously active lexer condition state off the condition stack
64171popState:function popState () {
64172 var n = this.conditionStack.length - 1;
64173 if (n > 0) {
64174 return this.conditionStack.pop();
64175 } else {
64176 return this.conditionStack[0];
64177 }
64178 },
64179
64180// produce the lexer rule set which is active for the currently active lexer condition state
64181_currentRules:function _currentRules () {
64182 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
64183 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
64184 } else {
64185 return this.conditions["INITIAL"].rules;
64186 }
64187 },
64188
64189// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
64190topState:function topState (n) {
64191 n = this.conditionStack.length - 1 - Math.abs(n || 0);
64192 if (n >= 0) {
64193 return this.conditionStack[n];
64194 } else {
64195 return "INITIAL";
64196 }
64197 },
64198
64199// alias for begin(condition)
64200pushState:function pushState (condition) {
64201 this.begin(condition);
64202 },
64203
64204// return the number of states currently on the stack
64205stateStackSize:function stateStackSize() {
64206 return this.conditionStack.length;
64207 },
64208options: {"case-insensitive":true},
64209performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
64210var YYSTATE=YY_START;
64211switch($avoiding_name_collisions) {
64212case 0: this.begin('open_directive'); return 22;
64213break;
64214case 1: this.begin('type_directive'); return 23;
64215break;
64216case 2: this.popState(); this.begin('arg_directive'); return 17;
64217break;
64218case 3: this.popState(); this.popState(); return 25;
64219break;
64220case 4:return 24;
64221break;
64222case 5:/* skip comments */
64223break;
64224case 6:/* skip comments */{ /*console.log('');*/ }
64225break;
64226case 7:return 19;
64227break;
64228case 8:/* do nothing */
64229break;
64230case 9:/* ignore */
64231break;
64232case 10: this.begin("title");return 12;
64233break;
64234case 11: this.popState(); return "title_value";
64235break;
64236case 12: this.begin("string");
64237break;
64238case 13: this.popState();
64239break;
64240case 14: return "txt";
64241break;
64242case 15:return 6;
64243break;
64244case 16:return "value";
64245break;
64246case 17:return 21;
64247break;
64248}
64249},
64250rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],
64251conditions: {"close_directive":{"rules":[],"inclusive":false},"arg_directive":{"rules":[3,4],"inclusive":false},"type_directive":{"rules":[2,3],"inclusive":false},"open_directive":{"rules":[1],"inclusive":false},"title":{"rules":[11],"inclusive":false},"string":{"rules":[13,14],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,8,9,10,12,15,16,17],"inclusive":true}}
64252});
64253return lexer;
64254})();
64255parser.lexer = lexer;
64256function Parser () {
64257 this.yy = {};
64258}
64259Parser.prototype = parser;parser.Parser = Parser;
64260return new Parser;
64261})();
64262
64263
64264if (true) {
64265exports.parser = parser;
64266exports.Parser = parser.Parser;
64267exports.parse = function () { return parser.parse.apply(parser, arguments); };
64268exports.main = function commonjsMain (args) {
64269 if (!args[1]) {
64270 console.log('Usage: '+args[0]+' FILE');
64271 process.exit(1);
64272 }
64273 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");
64274 return exports.parser.parse(source);
64275};
64276if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
64277 exports.main(process.argv.slice(1));
64278}
64279}
64280/* 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)))
64281
64282/***/ }),
64283
64284/***/ "./src/diagrams/pie/pieDb.js":
64285/*!***********************************!*\
64286 !*** ./src/diagrams/pie/pieDb.js ***!
64287 \***********************************/
64288/*! exports provided: parseDirective, default */
64289/***/ (function(module, __webpack_exports__, __webpack_require__) {
64290
64291"use strict";
64292__webpack_require__.r(__webpack_exports__);
64293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
64294/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
64295/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
64296/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
64297/**
64298 *
64299 */
64300
64301
64302
64303var sections = {};
64304var title = '';
64305var parseDirective = function parseDirective(statement, context, type) {
64306 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parseDirective(this, statement, context, type);
64307};
64308
64309var addSection = function addSection(id, value) {
64310 if (typeof sections[id] === 'undefined') {
64311 sections[id] = value;
64312 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Added new section :', id);
64313 }
64314};
64315
64316var getSections = function getSections() {
64317 return sections;
64318};
64319
64320var setTitle = function setTitle(txt) {
64321 title = txt;
64322};
64323
64324var getTitle = function getTitle() {
64325 return title;
64326};
64327
64328var cleanupValue = function cleanupValue(value) {
64329 if (value.substring(0, 1) === ':') {
64330 value = value.substring(1).trim();
64331 return Number(value.trim());
64332 } else {
64333 return Number(value.trim());
64334 }
64335};
64336
64337var clear = function clear() {
64338 sections = {};
64339 title = '';
64340}; // export const parseError = (err, hash) => {
64341// global.mermaidAPI.parseError(err, hash)
64342// }
64343
64344
64345/* harmony default export */ __webpack_exports__["default"] = ({
64346 parseDirective: parseDirective,
64347 getConfig: function getConfig() {
64348 return _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]().pie;
64349 },
64350 addSection: addSection,
64351 getSections: getSections,
64352 cleanupValue: cleanupValue,
64353 clear: clear,
64354 setTitle: setTitle,
64355 getTitle: getTitle // parseError
64356
64357});
64358
64359/***/ }),
64360
64361/***/ "./src/diagrams/pie/pieRenderer.js":
64362/*!*****************************************!*\
64363 !*** ./src/diagrams/pie/pieRenderer.js ***!
64364 \*****************************************/
64365/*! exports provided: setConf, draw, default */
64366/***/ (function(module, __webpack_exports__, __webpack_require__) {
64367
64368"use strict";
64369__webpack_require__.r(__webpack_exports__);
64370/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
64371/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
64372/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
64373/* harmony import */ var _pieDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pieDb */ "./src/diagrams/pie/pieDb.js");
64374/* harmony import */ var _parser_pie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/pie */ "./src/diagrams/pie/parser/pie.jison");
64375/* harmony import */ var _parser_pie__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_pie__WEBPACK_IMPORTED_MODULE_2__);
64376/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
64377/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
64378/**
64379 * Created by AshishJ on 11-09-2019.
64380 */
64381
64382
64383
64384
64385
64386var conf = {};
64387var setConf = function setConf(cnf) {
64388 var keys = Object.keys(cnf);
64389 keys.forEach(function (key) {
64390 conf[key] = cnf[key];
64391 });
64392};
64393/**
64394 * Draws a Pie Chart with the data given in text.
64395 * @param text
64396 * @param id
64397 */
64398
64399var width;
64400var height = 450;
64401var draw = function draw(txt, id) {
64402 try {
64403 var parser = _parser_pie__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
64404 parser.yy = _pieDb__WEBPACK_IMPORTED_MODULE_1__["default"];
64405 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Rendering info diagram\n' + txt); // Parse the Pie Chart definition
64406
64407 parser.yy.clear();
64408 parser.parse(txt);
64409 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Parsed info diagram');
64410 var elem = document.getElementById(id);
64411 width = elem.parentElement.offsetWidth;
64412
64413 if (typeof width === 'undefined') {
64414 width = 1200;
64415 }
64416
64417 if (typeof conf.useWidth !== 'undefined') {
64418 width = conf.useWidth;
64419 }
64420
64421 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id);
64422 Object(_utils__WEBPACK_IMPORTED_MODULE_4__["configureSvgSize"])(diagram, height, width, conf.useMaxWidth); // Set viewBox
64423
64424 elem.setAttribute('viewBox', '0 0 ' + width + ' ' + height); // Fetch the default direction, use TD if none was found
64425
64426 var margin = 40;
64427 var legendRectSize = 18;
64428 var legendSpacing = 4;
64429 var radius = Math.min(width, height) / 2 - margin;
64430 var svg = diagram.append('g').attr('transform', 'translate(' + width / 2 + ',' + height / 2 + ')');
64431 var data = _pieDb__WEBPACK_IMPORTED_MODULE_1__["default"].getSections();
64432 var sum = 0;
64433 Object.keys(data).forEach(function (key) {
64434 sum += data[key];
64435 }); // Set the color scale
64436
64437 var color = Object(d3__WEBPACK_IMPORTED_MODULE_0__["scaleOrdinal"])().domain(data).range(d3__WEBPACK_IMPORTED_MODULE_0__["schemeSet2"]); // Compute the position of each group on the pie:
64438
64439 var pie = Object(d3__WEBPACK_IMPORTED_MODULE_0__["pie"])().value(function (d) {
64440 return d.value;
64441 });
64442 var dataReady = pie(Object(d3__WEBPACK_IMPORTED_MODULE_0__["entries"])(data)); // Shape helper to build arcs:
64443
64444 var arcGenerator = Object(d3__WEBPACK_IMPORTED_MODULE_0__["arc"])().innerRadius(0).outerRadius(radius); // Build the pie chart: each part of the pie is a path that we build using the arc function.
64445
64446 svg.selectAll('mySlices').data(dataReady).enter().append('path').attr('d', arcGenerator).attr('fill', function (d) {
64447 return color(d.data.key);
64448 }).attr('stroke', 'black').style('stroke-width', '2px').style('opacity', 0.7); // Now add the percentage.
64449 // Use the centroid method to get the best coordinates.
64450
64451 svg.selectAll('mySlices').data(dataReady).enter().append('text').text(function (d) {
64452 return (d.data.value / sum * 100).toFixed(0) + '%';
64453 }).attr('transform', function (d) {
64454 return 'translate(' + arcGenerator.centroid(d) + ')';
64455 }).style('text-anchor', 'middle').attr('class', 'slice').style('font-size', 17);
64456 svg.append('text').text(parser.yy.getTitle()).attr('x', 0).attr('y', -(height - 50) / 2).attr('class', 'pieTitleText'); // Add the legends/annotations for each section
64457
64458 var legend = svg.selectAll('.legend').data(color.domain()).enter().append('g').attr('class', 'legend').attr('transform', function (d, i) {
64459 var height = legendRectSize + legendSpacing;
64460 var offset = height * color.domain().length / 2;
64461 var horz = 12 * legendRectSize;
64462 var vert = i * height - offset;
64463 return 'translate(' + horz + ',' + vert + ')';
64464 });
64465 legend.append('rect').attr('width', legendRectSize).attr('height', legendRectSize).style('fill', color).style('stroke', color);
64466 legend.append('text').attr('x', legendRectSize + legendSpacing).attr('y', legendRectSize - legendSpacing).text(function (d) {
64467 return d;
64468 });
64469 } catch (e) {
64470 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering info diagram');
64471 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e);
64472 }
64473};
64474/* harmony default export */ __webpack_exports__["default"] = ({
64475 setConf: setConf,
64476 draw: draw
64477});
64478
64479/***/ }),
64480
64481/***/ "./src/diagrams/pie/styles.js":
64482/*!************************************!*\
64483 !*** ./src/diagrams/pie/styles.js ***!
64484 \************************************/
64485/*! exports provided: default */
64486/***/ (function(module, __webpack_exports__, __webpack_require__) {
64487
64488"use strict";
64489__webpack_require__.r(__webpack_exports__);
64490var getStyles = function getStyles(options) {
64491 return ".pieTitleText {\n text-anchor: middle;\n font-size: 25px;\n fill: ".concat(options.taskTextDarkColor, ";\n font-family: ").concat(options.fontFamily, ";\n }\n .slice {\n font-family: ").concat(options.fontFamily, ";\n fill: ").concat(options.textColor, ";\n // fill: white;\n }\n .legend text {\n fill: ").concat(options.taskTextDarkColor, ";\n font-family: ").concat(options.fontFamily, ";\n font-size: 17px;\n }\n");
64492};
64493
64494/* harmony default export */ __webpack_exports__["default"] = (getStyles);
64495
64496/***/ }),
64497
64498/***/ "./src/diagrams/sequence/parser/sequenceDiagram.jison":
64499/*!************************************************************!*\
64500 !*** ./src/diagrams/sequence/parser/sequenceDiagram.jison ***!
64501 \************************************************************/
64502/*! no static exports found */
64503/***/ (function(module, exports, __webpack_require__) {
64504
64505/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
64506/*
64507 Returns a Parser object of the following structure:
64508
64509 Parser: {
64510 yy: {}
64511 }
64512
64513 Parser.prototype: {
64514 yy: {},
64515 trace: function(),
64516 symbols_: {associative list: name ==> number},
64517 terminals_: {associative list: number ==> name},
64518 productions_: [...],
64519 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
64520 table: [...],
64521 defaultActions: {...},
64522 parseError: function(str, hash),
64523 parse: function(input),
64524
64525 lexer: {
64526 EOF: 1,
64527 parseError: function(str, hash),
64528 setInput: function(input),
64529 input: function(),
64530 unput: function(str),
64531 more: function(),
64532 less: function(n),
64533 pastInput: function(),
64534 upcomingInput: function(),
64535 showPosition: function(),
64536 test_match: function(regex_match_array, rule_index),
64537 next: function(),
64538 lex: function(),
64539 begin: function(condition),
64540 popState: function(),
64541 _currentRules: function(),
64542 topState: function(),
64543 pushState: function(condition),
64544
64545 options: {
64546 ranges: boolean (optional: true ==> token location info will include a .range[] member)
64547 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
64548 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)
64549 },
64550
64551 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
64552 rules: [...],
64553 conditions: {associative list: name ==> set},
64554 }
64555 }
64556
64557
64558 token location info (@$, _$, etc.): {
64559 first_line: n,
64560 last_line: n,
64561 first_column: n,
64562 last_column: n,
64563 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
64564 }
64565
64566
64567 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
64568 text: (matched text)
64569 token: (the produced terminal token, if any)
64570 line: (yylineno)
64571 }
64572 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
64573 loc: (yylloc)
64574 expected: (string describing the set of expected tokens)
64575 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
64576 }
64577*/
64578var parser = (function(){
64579var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,18],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,24],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,32],$Vi=[1,33],$Vj=[1,36],$Vk=[1,4,5,16,21,22,23,25,27,28,29,30,31,33,35,36,37,48,56],$Vl=[1,44],$Vm=[4,5,16,21,22,23,25,27,28,29,30,31,33,37,48,56],$Vn=[4,5,16,21,22,23,25,27,28,29,30,31,33,36,37,48,56],$Vo=[4,5,16,21,22,23,25,27,28,29,30,31,33,35,37,48,56],$Vp=[46,47,48],$Vq=[1,4,5,7,16,21,22,23,25,27,28,29,30,31,33,35,36,37,48,56];
64580var parser = {trace: function trace () { },
64581yy: {},
64582symbols_: {"error":2,"start":3,"SPACE":4,"NEWLINE":5,"directive":6,"SD":7,"document":8,"line":9,"statement":10,"openDirective":11,"typeDirective":12,"closeDirective":13,":":14,"argDirective":15,"participant":16,"actor":17,"AS":18,"restOfLine":19,"signal":20,"autonumber":21,"activate":22,"deactivate":23,"note_statement":24,"title":25,"text2":26,"loop":27,"end":28,"rect":29,"opt":30,"alt":31,"else_sections":32,"par":33,"par_sections":34,"and":35,"else":36,"note":37,"placement":38,"over":39,"actor_pair":40,"spaceList":41,",":42,"left_of":43,"right_of":44,"signaltype":45,"+":46,"-":47,"ACTOR":48,"SOLID_OPEN_ARROW":49,"DOTTED_OPEN_ARROW":50,"SOLID_ARROW":51,"DOTTED_ARROW":52,"SOLID_CROSS":53,"DOTTED_CROSS":54,"TXT":55,"open_directive":56,"type_directive":57,"arg_directive":58,"close_directive":59,"$accept":0,"$end":1},
64583terminals_: {2:"error",4:"SPACE",5:"NEWLINE",7:"SD",14:":",16:"participant",18:"AS",19:"restOfLine",21:"autonumber",22:"activate",23:"deactivate",25:"title",27:"loop",28:"end",29:"rect",30:"opt",31:"alt",33:"par",35:"and",36:"else",37:"note",39:"over",42:",",43:"left_of",44:"right_of",46:"+",47:"-",48:"ACTOR",49:"SOLID_OPEN_ARROW",50:"DOTTED_OPEN_ARROW",51:"SOLID_ARROW",52:"DOTTED_ARROW",53:"SOLID_CROSS",54:"DOTTED_CROSS",55:"TXT",56:"open_directive",57:"type_directive",58:"arg_directive",59:"close_directive"},
64584productions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,2],[10,1],[10,3],[10,3],[10,2],[10,3],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[34,1],[34,4],[32,1],[32,4],[24,4],[24,4],[41,2],[41,1],[40,3],[40,1],[38,1],[38,1],[20,5],[20,5],[20,4],[17,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[26,1],[11,1],[12,1],[15,1],[13,1]],
64585performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
64586/* this == yyval */
64587
64588var $0 = $$.length - 1;
64589switch (yystate) {
64590case 4:
64591 yy.apply($$[$0]);return $$[$0];
64592break;
64593case 5:
64594 this.$ = []
64595break;
64596case 6:
64597$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
64598break;
64599case 7: case 8:
64600 this.$ = $$[$0]
64601break;
64602case 9:
64603 this.$=[];
64604break;
64605case 12:
64606$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];
64607break;
64608case 13:
64609this.$=$$[$0-1];
64610break;
64611case 15:
64612yy.enableSequenceNumbers()
64613break;
64614case 16:
64615this.$={type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]};
64616break;
64617case 17:
64618this.$={type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-1]};
64619break;
64620case 19:
64621this.$=[{type:'setTitle', text:$$[$0-1]}]
64622break;
64623case 20:
64624
64625 $$[$0-1].unshift({type: 'loopStart', loopText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.LOOP_START});
64626 $$[$0-1].push({type: 'loopEnd', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_END});
64627 this.$=$$[$0-1];
64628break;
64629case 21:
64630
64631 $$[$0-1].unshift({type: 'rectStart', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_START });
64632 $$[$0-1].push({type: 'rectEnd', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_END });
64633 this.$=$$[$0-1];
64634break;
64635case 22:
64636
64637 $$[$0-1].unshift({type: 'optStart', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_START});
64638 $$[$0-1].push({type: 'optEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_END});
64639 this.$=$$[$0-1];
64640break;
64641case 23:
64642
64643 // Alt start
64644 $$[$0-1].unshift({type: 'altStart', altText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.ALT_START});
64645 // Content in alt is already in $$[$0-1]
64646 // End
64647 $$[$0-1].push({type: 'altEnd', signalType: yy.LINETYPE.ALT_END});
64648 this.$=$$[$0-1];
64649break;
64650case 24:
64651
64652 // Parallel start
64653 $$[$0-1].unshift({type: 'parStart', parText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.PAR_START});
64654 // Content in par is already in $$[$0-1]
64655 // End
64656 $$[$0-1].push({type: 'parEnd', signalType: yy.LINETYPE.PAR_END});
64657 this.$=$$[$0-1];
64658break;
64659case 27:
64660 this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]);
64661break;
64662case 29:
64663 this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]);
64664break;
64665case 30:
64666
64667 this.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];
64668break;
64669case 31:
64670
64671 // Coerce actor_pair into a [to, from, ...] array
64672 $$[$0-2] = [].concat($$[$0-1], $$[$0-1]).slice(0, 2);
64673 $$[$0-2][0] = $$[$0-2][0].actor;
64674 $$[$0-2][1] = $$[$0-2][1].actor;
64675 this.$ = [$$[$0-1], {type:'addNote', placement:yy.PLACEMENT.OVER, actor:$$[$0-2].slice(0, 2), text:$$[$0]}];
64676break;
64677case 34:
64678 this.$ = [$$[$0-2], $$[$0]];
64679break;
64680case 35:
64681 this.$ = $$[$0];
64682break;
64683case 36:
64684 this.$ = yy.PLACEMENT.LEFTOF;
64685break;
64686case 37:
64687 this.$ = yy.PLACEMENT.RIGHTOF;
64688break;
64689case 38:
64690 this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},
64691 {type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]}
64692 ]
64693break;
64694case 39:
64695 this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},
64696 {type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-4]}
64697 ]
64698break;
64699case 40:
64700 this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]
64701break;
64702case 41:
64703this.$={type: 'addActor', actor:$$[$0]}
64704break;
64705case 42:
64706 this.$ = yy.LINETYPE.SOLID_OPEN;
64707break;
64708case 43:
64709 this.$ = yy.LINETYPE.DOTTED_OPEN;
64710break;
64711case 44:
64712 this.$ = yy.LINETYPE.SOLID;
64713break;
64714case 45:
64715 this.$ = yy.LINETYPE.DOTTED;
64716break;
64717case 46:
64718 this.$ = yy.LINETYPE.SOLID_CROSS;
64719break;
64720case 47:
64721 this.$ = yy.LINETYPE.DOTTED_CROSS;
64722break;
64723case 48:
64724this.$ = yy.parseMessage($$[$0].trim().substring(1))
64725break;
64726case 49:
64727 yy.parseDirective('%%{', 'open_directive');
64728break;
64729case 50:
64730 yy.parseDirective($$[$0], 'type_directive');
64731break;
64732case 51:
64733 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
64734break;
64735case 52:
64736 yy.parseDirective('}%%', 'close_directive', 'sequence');
64737break;
64738}
64739},
64740table: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,56:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,56:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,56:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,56:$V3},o([1,4,5,16,21,22,23,25,27,29,30,31,33,37,48,56],$V4,{8:11}),{12:12,57:[1,13]},{57:[2,49]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:30,9:14,10:16,11:6,16:$V7,17:31,20:19,21:$V8,22:$V9,23:$Va,24:23,25:$Vb,27:$Vc,29:$Vd,30:$Ve,31:$Vf,33:$Vg,37:$Vh,48:$Vi,56:$V3},{13:34,14:[1,35],59:$Vj},o([14,59],[2,50]),o($Vk,[2,6]),{6:30,10:37,11:6,16:$V7,17:31,20:19,21:$V8,22:$V9,23:$Va,24:23,25:$Vb,27:$Vc,29:$Vd,30:$Ve,31:$Vf,33:$Vg,37:$Vh,48:$Vi,56:$V3},o($Vk,[2,8]),o($Vk,[2,9]),{17:38,48:$Vi},{5:[1,39]},o($Vk,[2,15]),{17:40,48:$Vi},{17:41,48:$Vi},{5:[1,42]},{26:43,55:$Vl},{19:[1,45]},{19:[1,46]},{19:[1,47]},{19:[1,48]},{19:[1,49]},o($Vk,[2,25]),{45:50,49:[1,51],50:[1,52],51:[1,53],52:[1,54],53:[1,55],54:[1,56]},{38:57,39:[1,58],43:[1,59],44:[1,60]},o([5,18,42,49,50,51,52,53,54,55],[2,41]),{5:[1,61]},{15:62,58:[1,63]},{5:[2,52]},o($Vk,[2,7]),{5:[1,65],18:[1,64]},o($Vk,[2,14]),{5:[1,66]},{5:[1,67]},o($Vk,[2,18]),{5:[1,68]},{5:[2,48]},o($Vm,$V4,{8:69}),o($Vm,$V4,{8:70}),o($Vm,$V4,{8:71}),o($Vn,$V4,{32:72,8:73}),o($Vo,$V4,{34:74,8:75}),{17:78,46:[1,76],47:[1,77],48:$Vi},o($Vp,[2,42]),o($Vp,[2,43]),o($Vp,[2,44]),o($Vp,[2,45]),o($Vp,[2,46]),o($Vp,[2,47]),{17:79,48:$Vi},{17:81,40:80,48:$Vi},{48:[2,36]},{48:[2,37]},o($Vq,[2,10]),{13:82,59:$Vj},{59:[2,51]},{19:[1,83]},o($Vk,[2,13]),o($Vk,[2,16]),o($Vk,[2,17]),o($Vk,[2,19]),{4:$V5,5:$V6,6:30,9:14,10:16,11:6,16:$V7,17:31,20:19,21:$V8,22:$V9,23:$Va,24:23,25:$Vb,27:$Vc,28:[1,84],29:$Vd,30:$Ve,31:$Vf,33:$Vg,37:$Vh,48:$Vi,56:$V3},{4:$V5,5:$V6,6:30,9:14,10:16,11:6,16:$V7,17:31,20:19,21:$V8,22:$V9,23:$Va,24:23,25:$Vb,27:$Vc,28:[1,85],29:$Vd,30:$Ve,31:$Vf,33:$Vg,37:$Vh,48:$Vi,56:$V3},{4:$V5,5:$V6,6:30,9:14,10:16,11:6,16:$V7,17:31,20:19,21:$V8,22:$V9,23:$Va,24:23,25:$Vb,27:$Vc,28:[1,86],29:$Vd,30:$Ve,31:$Vf,33:$Vg,37:$Vh,48:$Vi,56:$V3},{28:[1,87]},{4:$V5,5:$V6,6:30,9:14,10:16,11:6,16:$V7,17:31,20:19,21:$V8,22:$V9,23:$Va,24:23,25:$Vb,27:$Vc,28:[2,28],29:$Vd,30:$Ve,31:$Vf,33:$Vg,36:[1,88],37:$Vh,48:$Vi,56:$V3},{28:[1,89]},{4:$V5,5:$V6,6:30,9:14,10:16,11:6,16:$V7,17:31,20:19,21:$V8,22:$V9,23:$Va,24:23,25:$Vb,27:$Vc,28:[2,26],29:$Vd,30:$Ve,31:$Vf,33:$Vg,35:[1,90],37:$Vh,48:$Vi,56:$V3},{17:91,48:$Vi},{17:92,48:$Vi},{26:93,55:$Vl},{26:94,55:$Vl},{26:95,55:$Vl},{42:[1,96],55:[2,35]},{5:[1,97]},{5:[1,98]},o($Vk,[2,20]),o($Vk,[2,21]),o($Vk,[2,22]),o($Vk,[2,23]),{19:[1,99]},o($Vk,[2,24]),{19:[1,100]},{26:101,55:$Vl},{26:102,55:$Vl},{5:[2,40]},{5:[2,30]},{5:[2,31]},{17:103,48:$Vi},o($Vq,[2,11]),o($Vk,[2,12]),o($Vn,$V4,{8:73,32:104}),o($Vo,$V4,{8:75,34:105}),{5:[2,38]},{5:[2,39]},{55:[2,34]},{28:[2,29]},{28:[2,27]}],
64741defaultActions: {7:[2,49],8:[2,1],9:[2,2],10:[2,3],36:[2,52],44:[2,48],59:[2,36],60:[2,37],63:[2,51],93:[2,40],94:[2,30],95:[2,31],101:[2,38],102:[2,39],103:[2,34],104:[2,29],105:[2,27]},
64742parseError: function parseError (str, hash) {
64743 if (hash.recoverable) {
64744 this.trace(str);
64745 } else {
64746 var error = new Error(str);
64747 error.hash = hash;
64748 throw error;
64749 }
64750},
64751parse: function parse(input) {
64752 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
64753 var args = lstack.slice.call(arguments, 1);
64754 var lexer = Object.create(this.lexer);
64755 var sharedState = { yy: {} };
64756 for (var k in this.yy) {
64757 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
64758 sharedState.yy[k] = this.yy[k];
64759 }
64760 }
64761 lexer.setInput(input, sharedState.yy);
64762 sharedState.yy.lexer = lexer;
64763 sharedState.yy.parser = this;
64764 if (typeof lexer.yylloc == 'undefined') {
64765 lexer.yylloc = {};
64766 }
64767 var yyloc = lexer.yylloc;
64768 lstack.push(yyloc);
64769 var ranges = lexer.options && lexer.options.ranges;
64770 if (typeof sharedState.yy.parseError === 'function') {
64771 this.parseError = sharedState.yy.parseError;
64772 } else {
64773 this.parseError = Object.getPrototypeOf(this).parseError;
64774 }
64775 function popStack(n) {
64776 stack.length = stack.length - 2 * n;
64777 vstack.length = vstack.length - n;
64778 lstack.length = lstack.length - n;
64779 }
64780 function lex() {
64781 var token;
64782 token = tstack.pop() || lexer.lex() || EOF;
64783 if (typeof token !== 'number') {
64784 if (token instanceof Array) {
64785 tstack = token;
64786 token = tstack.pop();
64787 }
64788 token = self.symbols_[token] || token;
64789 }
64790 return token;
64791 }
64792 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
64793 while (true) {
64794 state = stack[stack.length - 1];
64795 if (this.defaultActions[state]) {
64796 action = this.defaultActions[state];
64797 } else {
64798 if (symbol === null || typeof symbol == 'undefined') {
64799 symbol = lex();
64800 }
64801 action = table[state] && table[state][symbol];
64802 }
64803 if (typeof action === 'undefined' || !action.length || !action[0]) {
64804 var errStr = '';
64805 expected = [];
64806 for (p in table[state]) {
64807 if (this.terminals_[p] && p > TERROR) {
64808 expected.push('\'' + this.terminals_[p] + '\'');
64809 }
64810 }
64811 if (lexer.showPosition) {
64812 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
64813 } else {
64814 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
64815 }
64816 this.parseError(errStr, {
64817 text: lexer.match,
64818 token: this.terminals_[symbol] || symbol,
64819 line: lexer.yylineno,
64820 loc: yyloc,
64821 expected: expected
64822 });
64823 }
64824 if (action[0] instanceof Array && action.length > 1) {
64825 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
64826 }
64827 switch (action[0]) {
64828 case 1:
64829 stack.push(symbol);
64830 vstack.push(lexer.yytext);
64831 lstack.push(lexer.yylloc);
64832 stack.push(action[1]);
64833 symbol = null;
64834 if (!preErrorSymbol) {
64835 yyleng = lexer.yyleng;
64836 yytext = lexer.yytext;
64837 yylineno = lexer.yylineno;
64838 yyloc = lexer.yylloc;
64839 if (recovering > 0) {
64840 recovering--;
64841 }
64842 } else {
64843 symbol = preErrorSymbol;
64844 preErrorSymbol = null;
64845 }
64846 break;
64847 case 2:
64848 len = this.productions_[action[1]][1];
64849 yyval.$ = vstack[vstack.length - len];
64850 yyval._$ = {
64851 first_line: lstack[lstack.length - (len || 1)].first_line,
64852 last_line: lstack[lstack.length - 1].last_line,
64853 first_column: lstack[lstack.length - (len || 1)].first_column,
64854 last_column: lstack[lstack.length - 1].last_column
64855 };
64856 if (ranges) {
64857 yyval._$.range = [
64858 lstack[lstack.length - (len || 1)].range[0],
64859 lstack[lstack.length - 1].range[1]
64860 ];
64861 }
64862 r = this.performAction.apply(yyval, [
64863 yytext,
64864 yyleng,
64865 yylineno,
64866 sharedState.yy,
64867 action[1],
64868 vstack,
64869 lstack
64870 ].concat(args));
64871 if (typeof r !== 'undefined') {
64872 return r;
64873 }
64874 if (len) {
64875 stack = stack.slice(0, -1 * len * 2);
64876 vstack = vstack.slice(0, -1 * len);
64877 lstack = lstack.slice(0, -1 * len);
64878 }
64879 stack.push(this.productions_[action[1]][0]);
64880 vstack.push(yyval.$);
64881 lstack.push(yyval._$);
64882 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
64883 stack.push(newState);
64884 break;
64885 case 3:
64886 return true;
64887 }
64888 }
64889 return true;
64890}};
64891
64892/* generated by jison-lex 0.3.4 */
64893var lexer = (function(){
64894var lexer = ({
64895
64896EOF:1,
64897
64898parseError:function parseError(str, hash) {
64899 if (this.yy.parser) {
64900 this.yy.parser.parseError(str, hash);
64901 } else {
64902 throw new Error(str);
64903 }
64904 },
64905
64906// resets the lexer, sets new input
64907setInput:function (input, yy) {
64908 this.yy = yy || this.yy || {};
64909 this._input = input;
64910 this._more = this._backtrack = this.done = false;
64911 this.yylineno = this.yyleng = 0;
64912 this.yytext = this.matched = this.match = '';
64913 this.conditionStack = ['INITIAL'];
64914 this.yylloc = {
64915 first_line: 1,
64916 first_column: 0,
64917 last_line: 1,
64918 last_column: 0
64919 };
64920 if (this.options.ranges) {
64921 this.yylloc.range = [0,0];
64922 }
64923 this.offset = 0;
64924 return this;
64925 },
64926
64927// consumes and returns one char from the input
64928input:function () {
64929 var ch = this._input[0];
64930 this.yytext += ch;
64931 this.yyleng++;
64932 this.offset++;
64933 this.match += ch;
64934 this.matched += ch;
64935 var lines = ch.match(/(?:\r\n?|\n).*/g);
64936 if (lines) {
64937 this.yylineno++;
64938 this.yylloc.last_line++;
64939 } else {
64940 this.yylloc.last_column++;
64941 }
64942 if (this.options.ranges) {
64943 this.yylloc.range[1]++;
64944 }
64945
64946 this._input = this._input.slice(1);
64947 return ch;
64948 },
64949
64950// unshifts one char (or a string) into the input
64951unput:function (ch) {
64952 var len = ch.length;
64953 var lines = ch.split(/(?:\r\n?|\n)/g);
64954
64955 this._input = ch + this._input;
64956 this.yytext = this.yytext.substr(0, this.yytext.length - len);
64957 //this.yyleng -= len;
64958 this.offset -= len;
64959 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
64960 this.match = this.match.substr(0, this.match.length - 1);
64961 this.matched = this.matched.substr(0, this.matched.length - 1);
64962
64963 if (lines.length - 1) {
64964 this.yylineno -= lines.length - 1;
64965 }
64966 var r = this.yylloc.range;
64967
64968 this.yylloc = {
64969 first_line: this.yylloc.first_line,
64970 last_line: this.yylineno + 1,
64971 first_column: this.yylloc.first_column,
64972 last_column: lines ?
64973 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
64974 + oldLines[oldLines.length - lines.length].length - lines[0].length :
64975 this.yylloc.first_column - len
64976 };
64977
64978 if (this.options.ranges) {
64979 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
64980 }
64981 this.yyleng = this.yytext.length;
64982 return this;
64983 },
64984
64985// When called from action, caches matched text and appends it on next action
64986more:function () {
64987 this._more = true;
64988 return this;
64989 },
64990
64991// 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.
64992reject:function () {
64993 if (this.options.backtrack_lexer) {
64994 this._backtrack = true;
64995 } else {
64996 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(), {
64997 text: "",
64998 token: null,
64999 line: this.yylineno
65000 });
65001
65002 }
65003 return this;
65004 },
65005
65006// retain first n characters of the match
65007less:function (n) {
65008 this.unput(this.match.slice(n));
65009 },
65010
65011// displays already matched input, i.e. for error messages
65012pastInput:function () {
65013 var past = this.matched.substr(0, this.matched.length - this.match.length);
65014 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
65015 },
65016
65017// displays upcoming input, i.e. for error messages
65018upcomingInput:function () {
65019 var next = this.match;
65020 if (next.length < 20) {
65021 next += this._input.substr(0, 20-next.length);
65022 }
65023 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
65024 },
65025
65026// displays the character position where the lexing error occurred, i.e. for error messages
65027showPosition:function () {
65028 var pre = this.pastInput();
65029 var c = new Array(pre.length + 1).join("-");
65030 return pre + this.upcomingInput() + "\n" + c + "^";
65031 },
65032
65033// test the lexed token: return FALSE when not a match, otherwise return token
65034test_match:function(match, indexed_rule) {
65035 var token,
65036 lines,
65037 backup;
65038
65039 if (this.options.backtrack_lexer) {
65040 // save context
65041 backup = {
65042 yylineno: this.yylineno,
65043 yylloc: {
65044 first_line: this.yylloc.first_line,
65045 last_line: this.last_line,
65046 first_column: this.yylloc.first_column,
65047 last_column: this.yylloc.last_column
65048 },
65049 yytext: this.yytext,
65050 match: this.match,
65051 matches: this.matches,
65052 matched: this.matched,
65053 yyleng: this.yyleng,
65054 offset: this.offset,
65055 _more: this._more,
65056 _input: this._input,
65057 yy: this.yy,
65058 conditionStack: this.conditionStack.slice(0),
65059 done: this.done
65060 };
65061 if (this.options.ranges) {
65062 backup.yylloc.range = this.yylloc.range.slice(0);
65063 }
65064 }
65065
65066 lines = match[0].match(/(?:\r\n?|\n).*/g);
65067 if (lines) {
65068 this.yylineno += lines.length;
65069 }
65070 this.yylloc = {
65071 first_line: this.yylloc.last_line,
65072 last_line: this.yylineno + 1,
65073 first_column: this.yylloc.last_column,
65074 last_column: lines ?
65075 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
65076 this.yylloc.last_column + match[0].length
65077 };
65078 this.yytext += match[0];
65079 this.match += match[0];
65080 this.matches = match;
65081 this.yyleng = this.yytext.length;
65082 if (this.options.ranges) {
65083 this.yylloc.range = [this.offset, this.offset += this.yyleng];
65084 }
65085 this._more = false;
65086 this._backtrack = false;
65087 this._input = this._input.slice(match[0].length);
65088 this.matched += match[0];
65089 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
65090 if (this.done && this._input) {
65091 this.done = false;
65092 }
65093 if (token) {
65094 return token;
65095 } else if (this._backtrack) {
65096 // recover context
65097 for (var k in backup) {
65098 this[k] = backup[k];
65099 }
65100 return false; // rule action called reject() implying the next rule should be tested instead.
65101 }
65102 return false;
65103 },
65104
65105// return next match in input
65106next:function () {
65107 if (this.done) {
65108 return this.EOF;
65109 }
65110 if (!this._input) {
65111 this.done = true;
65112 }
65113
65114 var token,
65115 match,
65116 tempMatch,
65117 index;
65118 if (!this._more) {
65119 this.yytext = '';
65120 this.match = '';
65121 }
65122 var rules = this._currentRules();
65123 for (var i = 0; i < rules.length; i++) {
65124 tempMatch = this._input.match(this.rules[rules[i]]);
65125 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
65126 match = tempMatch;
65127 index = i;
65128 if (this.options.backtrack_lexer) {
65129 token = this.test_match(tempMatch, rules[i]);
65130 if (token !== false) {
65131 return token;
65132 } else if (this._backtrack) {
65133 match = false;
65134 continue; // rule action called reject() implying a rule MISmatch.
65135 } else {
65136 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
65137 return false;
65138 }
65139 } else if (!this.options.flex) {
65140 break;
65141 }
65142 }
65143 }
65144 if (match) {
65145 token = this.test_match(match, rules[index]);
65146 if (token !== false) {
65147 return token;
65148 }
65149 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
65150 return false;
65151 }
65152 if (this._input === "") {
65153 return this.EOF;
65154 } else {
65155 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
65156 text: "",
65157 token: null,
65158 line: this.yylineno
65159 });
65160 }
65161 },
65162
65163// return next match that has a token
65164lex:function lex () {
65165 var r = this.next();
65166 if (r) {
65167 return r;
65168 } else {
65169 return this.lex();
65170 }
65171 },
65172
65173// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
65174begin:function begin (condition) {
65175 this.conditionStack.push(condition);
65176 },
65177
65178// pop the previously active lexer condition state off the condition stack
65179popState:function popState () {
65180 var n = this.conditionStack.length - 1;
65181 if (n > 0) {
65182 return this.conditionStack.pop();
65183 } else {
65184 return this.conditionStack[0];
65185 }
65186 },
65187
65188// produce the lexer rule set which is active for the currently active lexer condition state
65189_currentRules:function _currentRules () {
65190 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
65191 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
65192 } else {
65193 return this.conditions["INITIAL"].rules;
65194 }
65195 },
65196
65197// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
65198topState:function topState (n) {
65199 n = this.conditionStack.length - 1 - Math.abs(n || 0);
65200 if (n >= 0) {
65201 return this.conditionStack[n];
65202 } else {
65203 return "INITIAL";
65204 }
65205 },
65206
65207// alias for begin(condition)
65208pushState:function pushState (condition) {
65209 this.begin(condition);
65210 },
65211
65212// return the number of states currently on the stack
65213stateStackSize:function stateStackSize() {
65214 return this.conditionStack.length;
65215 },
65216options: {"case-insensitive":true},
65217performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
65218var YYSTATE=YY_START;
65219switch($avoiding_name_collisions) {
65220case 0: this.begin('open_directive'); return 56;
65221break;
65222case 1: this.begin('type_directive'); return 57;
65223break;
65224case 2: this.popState(); this.begin('arg_directive'); return 14;
65225break;
65226case 3: this.popState(); this.popState(); return 59;
65227break;
65228case 4:return 58;
65229break;
65230case 5:return 5;
65231break;
65232case 6:/* skip all whitespace */
65233break;
65234case 7:/* skip same-line whitespace */
65235break;
65236case 8:/* skip comments */
65237break;
65238case 9:/* skip comments */
65239break;
65240case 10:/* skip comments */
65241break;
65242case 11: this.begin('ID'); return 16;
65243break;
65244case 12: yy_.yytext = yy_.yytext.trim(); this.begin('ALIAS'); return 48;
65245break;
65246case 13: this.popState(); this.popState(); this.begin('LINE'); return 18;
65247break;
65248case 14: this.popState(); this.popState(); return 5;
65249break;
65250case 15: this.begin('LINE'); return 27;
65251break;
65252case 16: this.begin('LINE'); return 29;
65253break;
65254case 17: this.begin('LINE'); return 30;
65255break;
65256case 18: this.begin('LINE'); return 31;
65257break;
65258case 19: this.begin('LINE'); return 36;
65259break;
65260case 20: this.begin('LINE'); return 33;
65261break;
65262case 21: this.begin('LINE'); return 35;
65263break;
65264case 22: this.popState(); return 19;
65265break;
65266case 23:return 28;
65267break;
65268case 24:return 43;
65269break;
65270case 25:return 44;
65271break;
65272case 26:return 39;
65273break;
65274case 27:return 37;
65275break;
65276case 28: this.begin('ID'); return 22;
65277break;
65278case 29: this.begin('ID'); return 23;
65279break;
65280case 30:return 25;
65281break;
65282case 31:return 7;
65283break;
65284case 32:return 21;
65285break;
65286case 33:return 42;
65287break;
65288case 34:return 5;
65289break;
65290case 35: yy_.yytext = yy_.yytext.trim(); return 48;
65291break;
65292case 36:return 51;
65293break;
65294case 37:return 52;
65295break;
65296case 38:return 49;
65297break;
65298case 39:return 50;
65299break;
65300case 40:return 53;
65301break;
65302case 41:return 54;
65303break;
65304case 42:return 55;
65305break;
65306case 43:return 46;
65307break;
65308case 44:return 47;
65309break;
65310case 45:return 5;
65311break;
65312case 46:return 'INVALID';
65313break;
65314}
65315},
65316rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:participant\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\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,/^(?:autonumber\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],
65317conditions: {"open_directive":{"rules":[1,8],"inclusive":false},"type_directive":{"rules":[2,3,8],"inclusive":false},"arg_directive":{"rules":[3,4,8],"inclusive":false},"ID":{"rules":[7,8,12],"inclusive":false},"ALIAS":{"rules":[7,8,13,14],"inclusive":false},"LINE":{"rules":[7,8,22],"inclusive":false},"INITIAL":{"rules":[0,5,6,8,9,10,11,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"inclusive":true}}
65318});
65319return lexer;
65320})();
65321parser.lexer = lexer;
65322function Parser () {
65323 this.yy = {};
65324}
65325Parser.prototype = parser;parser.Parser = Parser;
65326return new Parser;
65327})();
65328
65329
65330if (true) {
65331exports.parser = parser;
65332exports.Parser = parser.Parser;
65333exports.parse = function () { return parser.parse.apply(parser, arguments); };
65334exports.main = function commonjsMain (args) {
65335 if (!args[1]) {
65336 console.log('Usage: '+args[0]+' FILE');
65337 process.exit(1);
65338 }
65339 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");
65340 return exports.parser.parse(source);
65341};
65342if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
65343 exports.main(process.argv.slice(1));
65344}
65345}
65346/* 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)))
65347
65348/***/ }),
65349
65350/***/ "./src/diagrams/sequence/sequenceDb.js":
65351/*!*********************************************!*\
65352 !*** ./src/diagrams/sequence/sequenceDb.js ***!
65353 \*********************************************/
65354/*! exports provided: parseDirective, addActor, addMessage, addSignal, getMessages, getActors, getActor, getActorKeys, getTitle, getTitleWrapped, enableSequenceNumbers, showSequenceNumbers, setWrap, autoWrap, clear, parseMessage, LINETYPE, ARROWTYPE, PLACEMENT, addNote, setTitle, apply, default */
65355/***/ (function(module, __webpack_exports__, __webpack_require__) {
65356
65357"use strict";
65358__webpack_require__.r(__webpack_exports__);
65359/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
65360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addActor", function() { return addActor; });
65361/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMessage", function() { return addMessage; });
65362/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSignal", function() { return addSignal; });
65363/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMessages", function() { return getMessages; });
65364/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActors", function() { return getActors; });
65365/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActor", function() { return getActor; });
65366/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActorKeys", function() { return getActorKeys; });
65367/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
65368/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitleWrapped", function() { return getTitleWrapped; });
65369/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableSequenceNumbers", function() { return enableSequenceNumbers; });
65370/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showSequenceNumbers", function() { return showSequenceNumbers; });
65371/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setWrap", function() { return setWrap; });
65372/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "autoWrap", function() { return autoWrap; });
65373/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
65374/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMessage", function() { return parseMessage; });
65375/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LINETYPE", function() { return LINETYPE; });
65376/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ARROWTYPE", function() { return ARROWTYPE; });
65377/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PLACEMENT", function() { return PLACEMENT; });
65378/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addNote", function() { return addNote; });
65379/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
65380/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "apply", function() { return apply; });
65381/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
65382/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
65383/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
65384/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
65385
65386
65387
65388
65389var prevActor = undefined;
65390var actors = {};
65391var messages = [];
65392var notes = [];
65393var title = '';
65394var titleWrapped = false;
65395var sequenceNumbersEnabled = false;
65396var wrapEnabled = false;
65397var parseDirective = function parseDirective(statement, context, type) {
65398 _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__["default"].parseDirective(this, statement, context, type);
65399};
65400var addActor = function addActor(id, name, description) {
65401 // Don't allow description nulling
65402 var old = actors[id];
65403 if (old && name === old.name && description == null) return; // Don't allow null descriptions, either
65404
65405 if (description == null || description.text == null) {
65406 description = {
65407 text: name,
65408 wrap: null
65409 };
65410 }
65411
65412 actors[id] = {
65413 name: name,
65414 description: description.text,
65415 wrap: description.wrap === undefined && autoWrap() || !!description.wrap,
65416 prevActor: prevActor
65417 };
65418
65419 if (prevActor && actors[prevActor]) {
65420 actors[prevActor].nextActor = id;
65421 }
65422
65423 prevActor = id;
65424};
65425
65426var activationCount = function activationCount(part) {
65427 var i;
65428 var count = 0;
65429
65430 for (i = 0; i < messages.length; i++) {
65431 if (messages[i].type === LINETYPE.ACTIVE_START) {
65432 if (messages[i].from.actor === part) {
65433 count++;
65434 }
65435 }
65436
65437 if (messages[i].type === LINETYPE.ACTIVE_END) {
65438 if (messages[i].from.actor === part) {
65439 count--;
65440 }
65441 }
65442 }
65443
65444 return count;
65445};
65446
65447var addMessage = function addMessage(idFrom, idTo, message, answer) {
65448 messages.push({
65449 from: idFrom,
65450 to: idTo,
65451 message: message.text,
65452 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
65453 answer: answer
65454 });
65455};
65456var addSignal = function addSignal(idFrom, idTo) {
65457 var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
65458 text: undefined,
65459 wrap: undefined
65460 };
65461 var messageType = arguments.length > 3 ? arguments[3] : undefined;
65462
65463 if (messageType === LINETYPE.ACTIVE_END) {
65464 var cnt = activationCount(idFrom.actor);
65465
65466 if (cnt < 1) {
65467 // Bail out as there is an activation signal from an inactive participant
65468 var error = new Error('Trying to inactivate an inactive participant (' + idFrom.actor + ')');
65469 error.hash = {
65470 text: '->>-',
65471 token: '->>-',
65472 line: '1',
65473 loc: {
65474 first_line: 1,
65475 last_line: 1,
65476 first_column: 1,
65477 last_column: 1
65478 },
65479 expected: ["'ACTIVE_PARTICIPANT'"]
65480 };
65481 throw error;
65482 }
65483 }
65484
65485 messages.push({
65486 from: idFrom,
65487 to: idTo,
65488 message: message.text,
65489 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
65490 type: messageType
65491 });
65492 return true;
65493};
65494var getMessages = function getMessages() {
65495 return messages;
65496};
65497var getActors = function getActors() {
65498 return actors;
65499};
65500var getActor = function getActor(id) {
65501 return actors[id];
65502};
65503var getActorKeys = function getActorKeys() {
65504 return Object.keys(actors);
65505};
65506var getTitle = function getTitle() {
65507 return title;
65508};
65509var getTitleWrapped = function getTitleWrapped() {
65510 return titleWrapped;
65511};
65512var enableSequenceNumbers = function enableSequenceNumbers() {
65513 sequenceNumbersEnabled = true;
65514};
65515var showSequenceNumbers = function showSequenceNumbers() {
65516 return sequenceNumbersEnabled;
65517};
65518var setWrap = function setWrap(wrapSetting) {
65519 wrapEnabled = wrapSetting;
65520};
65521var autoWrap = function autoWrap() {
65522 return wrapEnabled;
65523};
65524var clear = function clear() {
65525 actors = {};
65526 messages = [];
65527};
65528var parseMessage = function parseMessage(str) {
65529 var _str = str.trim();
65530
65531 var message = {
65532 text: _str.replace(/^[:]?(?:no)?wrap:/, '').trim(),
65533 wrap: _str.match(/^[:]?(?:no)?wrap:/) === null ? _common_common__WEBPACK_IMPORTED_MODULE_2__["default"].hasBreaks(_str) || undefined : _str.match(/^[:]?wrap:/) !== null ? true : _str.match(/^[:]?nowrap:/) !== null ? false : undefined
65534 };
65535 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('parseMessage:', message);
65536 return message;
65537};
65538var LINETYPE = {
65539 SOLID: 0,
65540 DOTTED: 1,
65541 NOTE: 2,
65542 SOLID_CROSS: 3,
65543 DOTTED_CROSS: 4,
65544 SOLID_OPEN: 5,
65545 DOTTED_OPEN: 6,
65546 LOOP_START: 10,
65547 LOOP_END: 11,
65548 ALT_START: 12,
65549 ALT_ELSE: 13,
65550 ALT_END: 14,
65551 OPT_START: 15,
65552 OPT_END: 16,
65553 ACTIVE_START: 17,
65554 ACTIVE_END: 18,
65555 PAR_START: 19,
65556 PAR_AND: 20,
65557 PAR_END: 21,
65558 RECT_START: 22,
65559 RECT_END: 23
65560};
65561var ARROWTYPE = {
65562 FILLED: 0,
65563 OPEN: 1
65564};
65565var PLACEMENT = {
65566 LEFTOF: 0,
65567 RIGHTOF: 1,
65568 OVER: 2
65569};
65570var addNote = function addNote(actor, placement, message) {
65571 var note = {
65572 actor: actor,
65573 placement: placement,
65574 message: message.text,
65575 wrap: message.wrap === undefined && autoWrap() || !!message.wrap
65576 }; // Coerce actor into a [to, from, ...] array
65577
65578 var actors = [].concat(actor, actor);
65579 notes.push(note);
65580 messages.push({
65581 from: actors[0],
65582 to: actors[1],
65583 message: message.text,
65584 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
65585 type: LINETYPE.NOTE,
65586 placement: placement
65587 });
65588};
65589var setTitle = function setTitle(titleWrap) {
65590 title = titleWrap.text;
65591 titleWrapped = titleWrap.wrap === undefined && autoWrap() || !!titleWrap.wrap;
65592};
65593var apply = function apply(param) {
65594 if (param instanceof Array) {
65595 param.forEach(function (item) {
65596 apply(item);
65597 });
65598 } else {
65599 switch (param.type) {
65600 case 'addActor':
65601 addActor(param.actor, param.actor, param.description);
65602 break;
65603
65604 case 'activeStart':
65605 addSignal(param.actor, undefined, undefined, param.signalType);
65606 break;
65607
65608 case 'activeEnd':
65609 addSignal(param.actor, undefined, undefined, param.signalType);
65610 break;
65611
65612 case 'addNote':
65613 addNote(param.actor, param.placement, param.text);
65614 break;
65615
65616 case 'addMessage':
65617 addSignal(param.from, param.to, param.msg, param.signalType);
65618 break;
65619
65620 case 'loopStart':
65621 addSignal(undefined, undefined, param.loopText, param.signalType);
65622 break;
65623
65624 case 'loopEnd':
65625 addSignal(undefined, undefined, undefined, param.signalType);
65626 break;
65627
65628 case 'rectStart':
65629 addSignal(undefined, undefined, param.color, param.signalType);
65630 break;
65631
65632 case 'rectEnd':
65633 addSignal(undefined, undefined, undefined, param.signalType);
65634 break;
65635
65636 case 'optStart':
65637 addSignal(undefined, undefined, param.optText, param.signalType);
65638 break;
65639
65640 case 'optEnd':
65641 addSignal(undefined, undefined, undefined, param.signalType);
65642 break;
65643
65644 case 'altStart':
65645 addSignal(undefined, undefined, param.altText, param.signalType);
65646 break;
65647
65648 case 'else':
65649 addSignal(undefined, undefined, param.altText, param.signalType);
65650 break;
65651
65652 case 'altEnd':
65653 addSignal(undefined, undefined, undefined, param.signalType);
65654 break;
65655
65656 case 'setTitle':
65657 setTitle(param.text);
65658 break;
65659
65660 case 'parStart':
65661 addSignal(undefined, undefined, param.parText, param.signalType);
65662 break;
65663
65664 case 'and':
65665 addSignal(undefined, undefined, param.parText, param.signalType);
65666 break;
65667
65668 case 'parEnd':
65669 addSignal(undefined, undefined, undefined, param.signalType);
65670 break;
65671 }
65672 }
65673};
65674/* harmony default export */ __webpack_exports__["default"] = ({
65675 addActor: addActor,
65676 addMessage: addMessage,
65677 addSignal: addSignal,
65678 autoWrap: autoWrap,
65679 setWrap: setWrap,
65680 enableSequenceNumbers: enableSequenceNumbers,
65681 showSequenceNumbers: showSequenceNumbers,
65682 getMessages: getMessages,
65683 getActors: getActors,
65684 getActor: getActor,
65685 getActorKeys: getActorKeys,
65686 getTitle: getTitle,
65687 parseDirective: parseDirective,
65688 getConfig: function getConfig() {
65689 return _config__WEBPACK_IMPORTED_MODULE_1__["getConfig"]().sequence;
65690 },
65691 getTitleWrapped: getTitleWrapped,
65692 clear: clear,
65693 parseMessage: parseMessage,
65694 LINETYPE: LINETYPE,
65695 ARROWTYPE: ARROWTYPE,
65696 PLACEMENT: PLACEMENT,
65697 addNote: addNote,
65698 setTitle: setTitle,
65699 apply: apply
65700});
65701
65702/***/ }),
65703
65704/***/ "./src/diagrams/sequence/sequenceRenderer.js":
65705/*!***************************************************!*\
65706 !*** ./src/diagrams/sequence/sequenceRenderer.js ***!
65707 \***************************************************/
65708/*! exports provided: bounds, drawActors, setConf, draw, default */
65709/***/ (function(module, __webpack_exports__, __webpack_require__) {
65710
65711"use strict";
65712__webpack_require__.r(__webpack_exports__);
65713/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounds", function() { return bounds; });
65714/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActors", function() { return drawActors; });
65715/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
65716/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
65717/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
65718/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/sequence/svgDraw.js");
65719/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
65720/* harmony import */ var _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.jison");
65721/* harmony import */ var _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__);
65722/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
65723/* harmony import */ var _sequenceDb__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
65724/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../config */ "./src/config.js");
65725/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
65726
65727
65728
65729
65730
65731
65732
65733
65734_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy = _sequenceDb__WEBPACK_IMPORTED_MODULE_5__["default"];
65735var conf = {};
65736var bounds = {
65737 data: {
65738 startx: undefined,
65739 stopx: undefined,
65740 starty: undefined,
65741 stopy: undefined
65742 },
65743 verticalPos: 0,
65744 sequenceItems: [],
65745 activations: [],
65746 models: {
65747 getHeight: function getHeight() {
65748 return Math.max.apply(null, this.actors.length === 0 ? [0] : this.actors.map(function (actor) {
65749 return actor.height || 0;
65750 })) + (this.loops.length === 0 ? 0 : this.loops.map(function (it) {
65751 return it.height || 0;
65752 }).reduce(function (acc, h) {
65753 return acc + h;
65754 })) + (this.messages.length === 0 ? 0 : this.messages.map(function (it) {
65755 return it.height || 0;
65756 }).reduce(function (acc, h) {
65757 return acc + h;
65758 })) + (this.notes.length === 0 ? 0 : this.notes.map(function (it) {
65759 return it.height || 0;
65760 }).reduce(function (acc, h) {
65761 return acc + h;
65762 }));
65763 },
65764 clear: function clear() {
65765 this.actors = [];
65766 this.loops = [];
65767 this.messages = [];
65768 this.notes = [];
65769 },
65770 addActor: function addActor(actorModel) {
65771 this.actors.push(actorModel);
65772 },
65773 addLoop: function addLoop(loopModel) {
65774 this.loops.push(loopModel);
65775 },
65776 addMessage: function addMessage(msgModel) {
65777 this.messages.push(msgModel);
65778 },
65779 addNote: function addNote(noteModel) {
65780 this.notes.push(noteModel);
65781 },
65782 lastActor: function lastActor() {
65783 return this.actors[this.actors.length - 1];
65784 },
65785 lastLoop: function lastLoop() {
65786 return this.loops[this.loops.length - 1];
65787 },
65788 lastMessage: function lastMessage() {
65789 return this.messages[this.messages.length - 1];
65790 },
65791 lastNote: function lastNote() {
65792 return this.notes[this.notes.length - 1];
65793 },
65794 actors: [],
65795 loops: [],
65796 messages: [],
65797 notes: []
65798 },
65799 init: function init() {
65800 this.sequenceItems = [];
65801 this.activations = [];
65802 this.models.clear();
65803 this.data = {
65804 startx: undefined,
65805 stopx: undefined,
65806 starty: undefined,
65807 stopy: undefined
65808 };
65809 this.verticalPos = 0;
65810 setConf(_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getConfig());
65811 },
65812 updateVal: function updateVal(obj, key, val, fun) {
65813 if (typeof obj[key] === 'undefined') {
65814 obj[key] = val;
65815 } else {
65816 obj[key] = fun(val, obj[key]);
65817 }
65818 },
65819 updateBounds: function updateBounds(startx, starty, stopx, stopy) {
65820 var _self = this;
65821
65822 var cnt = 0;
65823
65824 function updateFn(type) {
65825 return function updateItemBounds(item) {
65826 cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
65827
65828 var n = _self.sequenceItems.length - cnt + 1;
65829
65830 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
65831
65832 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
65833
65834 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
65835
65836 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
65837
65838 if (!(type === 'activation')) {
65839 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
65840
65841 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
65842
65843 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
65844
65845 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
65846 }
65847 };
65848 }
65849
65850 this.sequenceItems.forEach(updateFn());
65851 this.activations.forEach(updateFn('activation'));
65852 },
65853 insert: function insert(startx, starty, stopx, stopy) {
65854 var _startx = Math.min(startx, stopx);
65855
65856 var _stopx = Math.max(startx, stopx);
65857
65858 var _starty = Math.min(starty, stopy);
65859
65860 var _stopy = Math.max(starty, stopy);
65861
65862 this.updateVal(bounds.data, 'startx', _startx, Math.min);
65863 this.updateVal(bounds.data, 'starty', _starty, Math.min);
65864 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
65865 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
65866 this.updateBounds(_startx, _starty, _stopx, _stopy);
65867 },
65868 newActivation: function newActivation(message, diagram, actors) {
65869 var actorRect = actors[message.from.actor];
65870 var stackedSize = actorActivations(message.from.actor).length || 0;
65871 var x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
65872 this.activations.push({
65873 startx: x,
65874 starty: this.verticalPos + 2,
65875 stopx: x + conf.activationWidth,
65876 stopy: undefined,
65877 actor: message.from.actor,
65878 anchored: _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].anchorElement(diagram)
65879 });
65880 },
65881 endActivation: function endActivation(message) {
65882 // find most recent activation for given actor
65883 var lastActorActivationIdx = this.activations.map(function (activation) {
65884 return activation.actor;
65885 }).lastIndexOf(message.from.actor);
65886 return this.activations.splice(lastActorActivationIdx, 1)[0];
65887 },
65888 createLoop: function createLoop() {
65889 var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
65890 message: undefined,
65891 wrap: false,
65892 width: undefined
65893 };
65894 var fill = arguments.length > 1 ? arguments[1] : undefined;
65895 return {
65896 startx: undefined,
65897 starty: this.verticalPos,
65898 stopx: undefined,
65899 stopy: undefined,
65900 title: title.message,
65901 wrap: title.wrap,
65902 width: title.width,
65903 height: 0,
65904 fill: fill
65905 };
65906 },
65907 newLoop: function newLoop() {
65908 var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
65909 message: undefined,
65910 wrap: false,
65911 width: undefined
65912 };
65913 var fill = arguments.length > 1 ? arguments[1] : undefined;
65914 this.sequenceItems.push(this.createLoop(title, fill));
65915 },
65916 endLoop: function endLoop() {
65917 return this.sequenceItems.pop();
65918 },
65919 addSectionToLoop: function addSectionToLoop(message) {
65920 var loop = this.sequenceItems.pop();
65921 loop.sections = loop.sections || [];
65922 loop.sectionTitles = loop.sectionTitles || [];
65923 loop.sections.push({
65924 y: bounds.getVerticalPos(),
65925 height: 0
65926 });
65927 loop.sectionTitles.push(message);
65928 this.sequenceItems.push(loop);
65929 },
65930 bumpVerticalPos: function bumpVerticalPos(bump) {
65931 this.verticalPos = this.verticalPos + bump;
65932 this.data.stopy = this.verticalPos;
65933 },
65934 getVerticalPos: function getVerticalPos() {
65935 return this.verticalPos;
65936 },
65937 getBounds: function getBounds() {
65938 return {
65939 bounds: this.data,
65940 models: this.models
65941 };
65942 }
65943};
65944/**
65945 * Draws an note in the diagram with the attached line
65946 * @param elem - The diagram to draw to.
65947 * @param noteModel:{x: number, y: number, message: string, width: number} - startx: x axis start position, verticalPos: y axis position, messsage: the message to be shown, width: Set this with a custom width to override the default configured width.
65948 */
65949
65950var drawNote = function drawNote(elem, noteModel) {
65951 bounds.bumpVerticalPos(conf.boxMargin);
65952 noteModel.height = conf.boxMargin;
65953 noteModel.starty = bounds.getVerticalPos();
65954 var rect = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getNoteRect();
65955 rect.x = noteModel.startx;
65956 rect.y = noteModel.starty;
65957 rect.width = noteModel.width || conf.width;
65958 rect.class = 'note';
65959 var g = elem.append('g');
65960 var rectElem = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawRect(g, rect);
65961 var textObj = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getTextObj();
65962 textObj.x = noteModel.startx;
65963 textObj.y = noteModel.starty;
65964 textObj.width = rect.width;
65965 textObj.dy = '1em';
65966 textObj.text = noteModel.message;
65967 textObj.class = 'noteText';
65968 textObj.fontFamily = conf.noteFontFamily;
65969 textObj.fontSize = conf.noteFontSize;
65970 textObj.fontWeight = conf.noteFontWeight;
65971 textObj.anchor = conf.noteAlign;
65972 textObj.textMargin = conf.noteMargin;
65973 textObj.valign = conf.noteAlign;
65974 textObj.wrap = true;
65975 var textElem = Object(_svgDraw__WEBPACK_IMPORTED_MODULE_1__["drawText"])(g, textObj);
65976 var textHeight = Math.round(textElem.map(function (te) {
65977 return (te._groups || te)[0][0].getBBox().height;
65978 }).reduce(function (acc, curr) {
65979 return acc + curr;
65980 }));
65981 rectElem.attr('height', textHeight + 2 * conf.noteMargin);
65982 noteModel.height += textHeight + 2 * conf.noteMargin;
65983 bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);
65984 noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;
65985 noteModel.stopx = noteModel.startx + rect.width;
65986 bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);
65987 bounds.models.addNote(noteModel);
65988};
65989
65990var messageFont = function messageFont(cnf) {
65991 return {
65992 fontFamily: cnf.messageFontFamily,
65993 fontSize: cnf.messageFontSize,
65994 fontWeight: cnf.messageFontWeight
65995 };
65996};
65997
65998var noteFont = function noteFont(cnf) {
65999 return {
66000 fontFamily: cnf.noteFontFamily,
66001 fontSize: cnf.noteFontSize,
66002 fontWeight: cnf.noteFontWeight
66003 };
66004};
66005
66006var actorFont = function actorFont(cnf) {
66007 return {
66008 fontFamily: cnf.actorFontFamily,
66009 fontSize: cnf.actorFontSize,
66010 fontWeight: cnf.actorFontWeight
66011 };
66012};
66013/**
66014 * Draws a message
66015 * @param g - the parent of the message element
66016 * @param msgModel - the model containing fields describing a message
66017 */
66018
66019
66020var drawMessage = function drawMessage(g, msgModel) {
66021 bounds.bumpVerticalPos(10);
66022 var startx = msgModel.startx,
66023 stopx = msgModel.stopx,
66024 starty = msgModel.starty,
66025 message = msgModel.message,
66026 type = msgModel.type,
66027 sequenceIndex = msgModel.sequenceIndex,
66028 wrap = msgModel.wrap;
66029 var lines = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].splitBreaks(message).length;
66030 var textDims = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(message, messageFont(conf));
66031 var lineHeight = textDims.height / lines;
66032 msgModel.height += lineHeight;
66033 bounds.bumpVerticalPos(lineHeight);
66034 var textObj = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getTextObj();
66035 textObj.x = startx;
66036 textObj.y = starty + 10;
66037 textObj.width = stopx - startx;
66038 textObj.class = 'messageText';
66039 textObj.dy = '1em';
66040 textObj.text = message;
66041 textObj.fontFamily = conf.messageFontFamily;
66042 textObj.fontSize = conf.messageFontSize;
66043 textObj.fontWeight = conf.messageFontWeight;
66044 textObj.anchor = conf.messageAlign;
66045 textObj.valign = conf.messageAlign;
66046 textObj.textMargin = conf.wrapPadding;
66047 textObj.tspan = false;
66048 textObj.wrap = wrap;
66049 Object(_svgDraw__WEBPACK_IMPORTED_MODULE_1__["drawText"])(g, textObj);
66050 var totalOffset = textDims.height - 10;
66051 var textWidth = textDims.width;
66052 var line, lineStarty;
66053
66054 if (startx === stopx) {
66055 lineStarty = bounds.getVerticalPos() + totalOffset;
66056
66057 if (conf.rightAngles) {
66058 line = g.append('path').attr('d', "M ".concat(startx, ",").concat(lineStarty, " H ").concat(startx + Math.max(conf.width / 2, textWidth / 2), " V ").concat(lineStarty + 25, " H ").concat(startx));
66059 } else {
66060 totalOffset += conf.boxMargin;
66061 lineStarty = bounds.getVerticalPos() + totalOffset;
66062 line = g.append('path').attr('d', 'M ' + startx + ',' + lineStarty + ' C ' + (startx + 60) + ',' + (lineStarty - 10) + ' ' + (startx + 60) + ',' + (lineStarty + 30) + ' ' + startx + ',' + (lineStarty + 20));
66063 }
66064
66065 totalOffset += 30;
66066 var dx = Math.max(textWidth / 2, conf.width / 2);
66067 bounds.insert(startx - dx, bounds.getVerticalPos() - 10 + totalOffset, stopx + dx, bounds.getVerticalPos() + 30 + totalOffset);
66068 } else {
66069 totalOffset += conf.boxMargin;
66070 lineStarty = bounds.getVerticalPos() + totalOffset;
66071 line = g.append('line');
66072 line.attr('x1', startx);
66073 line.attr('y1', lineStarty);
66074 line.attr('x2', stopx);
66075 line.attr('y2', lineStarty);
66076 bounds.insert(startx, lineStarty - 10, stopx, lineStarty);
66077 } // Make an SVG Container
66078 // Draw the line
66079
66080
66081 if (type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED || type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_CROSS || type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_OPEN) {
66082 line.style('stroke-dasharray', '3, 3');
66083 line.attr('class', 'messageLine1');
66084 } else {
66085 line.attr('class', 'messageLine0');
66086 }
66087
66088 var url = '';
66089
66090 if (conf.arrowMarkerAbsolute) {
66091 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
66092 url = url.replace(/\(/g, '\\(');
66093 url = url.replace(/\)/g, '\\)');
66094 }
66095
66096 line.attr('stroke-width', 2);
66097 line.attr('stroke', 'none'); // handled by theme/css anyway
66098
66099 line.style('fill', 'none'); // remove any fill colour
66100
66101 if (type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID || type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED) {
66102 line.attr('marker-end', 'url(' + url + '#arrowhead)');
66103 }
66104
66105 if (type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID_CROSS || type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_CROSS) {
66106 line.attr('marker-end', 'url(' + url + '#crosshead)');
66107 } // add node number
66108
66109
66110 if (_sequenceDb__WEBPACK_IMPORTED_MODULE_5__["default"].showSequenceNumbers() || conf.showSequenceNumbers) {
66111 line.attr('marker-start', 'url(' + url + '#sequencenumber)');
66112 g.append('text').attr('x', startx).attr('y', lineStarty + 4).attr('font-family', 'sans-serif').attr('font-size', '12px').attr('text-anchor', 'middle').attr('textLength', '16px').attr('class', 'sequenceNumber').text(sequenceIndex);
66113 }
66114
66115 bounds.bumpVerticalPos(totalOffset);
66116 msgModel.height += totalOffset;
66117 msgModel.stopy = msgModel.starty + msgModel.height;
66118 bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);
66119};
66120
66121var drawActors = function drawActors(diagram, actors, actorKeys, verticalPos) {
66122 // Draw the actors
66123 var prevWidth = 0;
66124 var prevMargin = 0;
66125
66126 for (var i = 0; i < actorKeys.length; i++) {
66127 var actor = actors[actorKeys[i]]; // Add some rendering data to the object
66128
66129 actor.width = actor.width || conf.width;
66130 actor.height = Math.max(actor.height || conf.height, conf.height);
66131 actor.margin = actor.margin || conf.actorMargin;
66132 actor.x = prevWidth + prevMargin;
66133 actor.y = verticalPos; // Draw the box with the attached line
66134
66135 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawActor(diagram, actor, conf);
66136 bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);
66137 prevWidth += actor.width;
66138 prevMargin += actor.margin;
66139 bounds.models.addActor(actor);
66140 } // Add a margin between the actor boxes and the first arrow
66141
66142
66143 bounds.bumpVerticalPos(conf.height);
66144};
66145var setConf = function setConf(cnf) {
66146 Object(_utils__WEBPACK_IMPORTED_MODULE_7__["assignWithDepth"])(conf, cnf);
66147
66148 if (cnf.fontFamily) {
66149 conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;
66150 }
66151
66152 if (cnf.fontSize) {
66153 conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;
66154 }
66155
66156 if (cnf.fontWeight) {
66157 conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;
66158 }
66159};
66160
66161var actorActivations = function actorActivations(actor) {
66162 return bounds.activations.filter(function (activation) {
66163 return activation.actor === actor;
66164 });
66165};
66166
66167var activationBounds = function activationBounds(actor, actors) {
66168 // handle multiple stacked activations for same actor
66169 var actorObj = actors[actor];
66170 var activations = actorActivations(actor);
66171 var left = activations.reduce(function (acc, activation) {
66172 return Math.min(acc, activation.startx);
66173 }, actorObj.x + actorObj.width / 2);
66174 var right = activations.reduce(function (acc, activation) {
66175 return Math.max(acc, activation.stopx);
66176 }, actorObj.x + actorObj.width / 2);
66177 return [left, right];
66178};
66179
66180function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {
66181 bounds.bumpVerticalPos(preMargin);
66182 var heightAdjust = postMargin;
66183
66184 if (msg.id && msg.message && loopWidths[msg.id]) {
66185 var loopWidth = loopWidths[msg.id].width;
66186 var textConf = messageFont(conf);
66187 msg.message = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel("[".concat(msg.message, "]"), loopWidth - 2 * conf.wrapPadding, textConf);
66188 msg.width = loopWidth;
66189 msg.wrap = true; // const lines = common.splitBreaks(msg.message).length;
66190
66191 var textDims = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(msg.message, textConf);
66192 var totalOffset = Math.max(textDims.height, conf.labelBoxHeight);
66193 heightAdjust = postMargin + totalOffset;
66194 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug("".concat(totalOffset, " - ").concat(msg.message));
66195 }
66196
66197 addLoopFn(msg);
66198 bounds.bumpVerticalPos(heightAdjust);
66199}
66200/**
66201 * Draws a sequenceDiagram in the tag with id: id based on the graph definition in text.
66202 * @param text
66203 * @param id
66204 */
66205
66206
66207var draw = function draw(text, id) {
66208 conf = _config__WEBPACK_IMPORTED_MODULE_6__["getConfig"]().sequence;
66209 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.clear();
66210 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.setWrap(conf.wrap);
66211 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].parse(text + '\n');
66212 bounds.init();
66213 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug("C:".concat(JSON.stringify(conf, null, 2)));
66214 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id=\"".concat(id, "\"]")); // Fetch data from the parsing
66215
66216 var actors = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActors();
66217 var actorKeys = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActorKeys();
66218 var messages = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getMessages();
66219 var title = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getTitle();
66220 var maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors, messages);
66221 conf.height = calculateActorMargins(actors, maxMessageWidthPerActor);
66222 drawActors(diagram, actors, actorKeys, 0);
66223 var loopWidths = calculateLoopBounds(messages, actors, maxMessageWidthPerActor); // The arrow head definition is attached to the svg once
66224
66225 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertArrowHead(diagram);
66226 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertArrowCrossHead(diagram);
66227 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertSequenceNumber(diagram);
66228
66229 function activeEnd(msg, verticalPos) {
66230 var activationData = bounds.endActivation(msg);
66231
66232 if (activationData.starty + 18 > verticalPos) {
66233 activationData.starty = verticalPos - 6;
66234 verticalPos += 12;
66235 }
66236
66237 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawActivation(diagram, activationData, verticalPos, conf, actorActivations(msg.from.actor).length);
66238 bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
66239 } // Draw the messages/signals
66240
66241
66242 var sequenceIndex = 1;
66243 messages.forEach(function (msg) {
66244 var loopModel, noteModel, msgModel;
66245
66246 switch (msg.type) {
66247 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.NOTE:
66248 noteModel = msg.noteModel;
66249 drawNote(diagram, noteModel);
66250 break;
66251
66252 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_START:
66253 bounds.newActivation(msg, diagram, actors);
66254 break;
66255
66256 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_END:
66257 activeEnd(msg, bounds.getVerticalPos());
66258 break;
66259
66260 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_START:
66261 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
66262 return bounds.newLoop(message);
66263 });
66264 break;
66265
66266 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_END:
66267 loopModel = bounds.endLoop();
66268 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopModel, 'loop', conf);
66269 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66270 bounds.models.addLoop(loopModel);
66271 break;
66272
66273 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.RECT_START:
66274 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin, function (message) {
66275 return bounds.newLoop(undefined, message.message);
66276 });
66277 break;
66278
66279 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.RECT_END:
66280 loopModel = bounds.endLoop();
66281 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawBackgroundRect(diagram, loopModel);
66282 bounds.models.addLoop(loopModel);
66283 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66284 break;
66285
66286 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_START:
66287 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
66288 return bounds.newLoop(message);
66289 });
66290 break;
66291
66292 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_END:
66293 loopModel = bounds.endLoop();
66294 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopModel, 'opt', conf);
66295 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66296 bounds.models.addLoop(loopModel);
66297 break;
66298
66299 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_START:
66300 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
66301 return bounds.newLoop(message);
66302 });
66303 break;
66304
66305 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_ELSE:
66306 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin + conf.boxTextMargin, conf.boxMargin, function (message) {
66307 return bounds.addSectionToLoop(message);
66308 });
66309 break;
66310
66311 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_END:
66312 loopModel = bounds.endLoop();
66313 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopModel, 'alt', conf);
66314 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66315 bounds.models.addLoop(loopModel);
66316 break;
66317
66318 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_START:
66319 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
66320 return bounds.newLoop(message);
66321 });
66322 break;
66323
66324 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_AND:
66325 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin + conf.boxTextMargin, conf.boxMargin, function (message) {
66326 return bounds.addSectionToLoop(message);
66327 });
66328 break;
66329
66330 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_END:
66331 loopModel = bounds.endLoop();
66332 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopModel, 'par', conf);
66333 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66334 bounds.models.addLoop(loopModel);
66335 break;
66336
66337 default:
66338 try {
66339 // lastMsg = msg
66340 msgModel = msg.msgModel;
66341 msgModel.starty = bounds.getVerticalPos();
66342 msgModel.sequenceIndex = sequenceIndex;
66343 drawMessage(diagram, msgModel);
66344 bounds.models.addMessage(msgModel);
66345 } catch (e) {
66346 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].error('error while drawing message', e);
66347 }
66348
66349 } // Increment sequence counter if msg.type is a line (and not another event like activation or note, etc)
66350
66351
66352 if ([_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID_OPEN, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_OPEN, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID_CROSS, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_CROSS].includes(msg.type)) {
66353 sequenceIndex++;
66354 }
66355 });
66356
66357 if (conf.mirrorActors) {
66358 // Draw actors below diagram
66359 bounds.bumpVerticalPos(conf.boxMargin * 2);
66360 drawActors(diagram, actors, actorKeys, bounds.getVerticalPos());
66361 }
66362
66363 var _bounds$getBounds = bounds.getBounds(),
66364 box = _bounds$getBounds.bounds; // Adjust line height of actor lines now that the height of the diagram is known
66365
66366
66367 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('For line height fix Querying: #' + id + ' .actor-line');
66368 var actorLines = Object(d3__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('#' + id + ' .actor-line');
66369 actorLines.attr('y2', box.stopy);
66370 var height = box.stopy - box.starty + 2 * conf.diagramMarginY;
66371
66372 if (conf.mirrorActors) {
66373 height = height - conf.boxMargin + conf.bottomMarginAdj;
66374 }
66375
66376 var width = box.stopx - box.startx + 2 * conf.diagramMarginX;
66377
66378 if (title) {
66379 diagram.append('text').text(title).attr('x', (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr('y', -25);
66380 }
66381
66382 Object(_utils__WEBPACK_IMPORTED_MODULE_7__["configureSvgSize"])(diagram, height, width, conf.useMaxWidth);
66383 var extraVertForTitle = title ? 40 : 0;
66384 diagram.attr('viewBox', box.startx - conf.diagramMarginX + ' -' + (conf.diagramMarginY + extraVertForTitle) + ' ' + width + ' ' + (height + extraVertForTitle));
66385 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug("models:", bounds.models);
66386};
66387/**
66388 * Retrieves the max message width of each actor, supports signals (messages, loops)
66389 * and notes.
66390 *
66391 * It will enumerate each given message, and will determine its text width, in relation
66392 * to the actor it originates from, and destined to.
66393 *
66394 * @param actors - The actors map
66395 * @param messages - A list of message objects to iterate
66396 */
66397
66398var getMaxMessageWidthPerActor = function getMaxMessageWidthPerActor(actors, messages) {
66399 var maxMessageWidthPerActor = {};
66400 messages.forEach(function (msg) {
66401 if (actors[msg.to] && actors[msg.from]) {
66402 var actor = actors[msg.to]; // If this is the first actor, and the message is left of it, no need to calculate the margin
66403
66404 if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.LEFTOF && !actor.prevActor) {
66405 return;
66406 } // If this is the last actor, and the message is right of it, no need to calculate the margin
66407
66408
66409 if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.RIGHTOF && !actor.nextActor) {
66410 return;
66411 }
66412
66413 var isNote = msg.placement !== undefined;
66414 var isMessage = !isNote;
66415 var textFont = isNote ? noteFont(conf) : messageFont(conf);
66416 var wrappedMessage = msg.wrap ? _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;
66417 var messageDimensions = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(wrappedMessage, textFont);
66418 var messageWidth = messageDimensions.width + 2 * conf.wrapPadding;
66419 /*
66420 * The following scenarios should be supported:
66421 *
66422 * - There's a message (non-note) between fromActor and toActor
66423 * - If fromActor is on the right and toActor is on the left, we should
66424 * define the toActor's margin
66425 * - If fromActor is on the left and toActor is on the right, we should
66426 * define the fromActor's margin
66427 * - There's a note, in which case fromActor == toActor
66428 * - If the note is to the left of the actor, we should define the previous actor
66429 * margin
66430 * - If the note is on the actor, we should define both the previous and next actor
66431 * margins, each being the half of the note size
66432 * - If the note is on the right of the actor, we should define the current actor
66433 * margin
66434 */
66435
66436 if (isMessage && msg.from === actor.nextActor) {
66437 maxMessageWidthPerActor[msg.to] = Math.max(maxMessageWidthPerActor[msg.to] || 0, messageWidth);
66438 } else if (isMessage && msg.from === actor.prevActor) {
66439 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth);
66440 } else if (isMessage && msg.from === msg.to) {
66441 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth / 2);
66442 maxMessageWidthPerActor[msg.to] = Math.max(maxMessageWidthPerActor[msg.to] || 0, messageWidth / 2);
66443 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.RIGHTOF) {
66444 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth);
66445 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.LEFTOF) {
66446 maxMessageWidthPerActor[actor.prevActor] = Math.max(maxMessageWidthPerActor[actor.prevActor] || 0, messageWidth);
66447 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.OVER) {
66448 if (actor.prevActor) {
66449 maxMessageWidthPerActor[actor.prevActor] = Math.max(maxMessageWidthPerActor[actor.prevActor] || 0, messageWidth / 2);
66450 }
66451
66452 if (actor.nextActor) {
66453 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth / 2);
66454 }
66455 }
66456 }
66457 });
66458 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('maxMessageWidthPerActor:', maxMessageWidthPerActor);
66459 return maxMessageWidthPerActor;
66460};
66461/**
66462 * This will calculate the optimal margin for each given actor, for a given
66463 * actor->messageWidth map.
66464 *
66465 * An actor's margin is determined by the width of the actor, the width of the
66466 * largest message that originates from it, and the configured conf.actorMargin.
66467 *
66468 * @param actors - The actors map to calculate margins for
66469 * @param actorToMessageWidth - A map of actor key -> max message width it holds
66470 */
66471
66472
66473var calculateActorMargins = function calculateActorMargins(actors, actorToMessageWidth) {
66474 var maxHeight = 0;
66475 Object.keys(actors).forEach(function (prop) {
66476 var actor = actors[prop];
66477
66478 if (actor.wrap) {
66479 actor.description = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(actor.description, conf.width - 2 * conf.wrapPadding, actorFont(conf));
66480 }
66481
66482 var actDims = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(actor.description, actorFont(conf));
66483 actor.width = actor.wrap ? conf.width : Math.max(conf.width, actDims.width + 2 * conf.wrapPadding);
66484 actor.height = actor.wrap ? Math.max(actDims.height, conf.height) : conf.height;
66485 maxHeight = Math.max(maxHeight, actor.height);
66486 });
66487
66488 for (var actorKey in actorToMessageWidth) {
66489 var actor = actors[actorKey];
66490
66491 if (!actor) {
66492 continue;
66493 }
66494
66495 var nextActor = actors[actor.nextActor]; // No need to space out an actor that doesn't have a next link
66496
66497 if (!nextActor) {
66498 continue;
66499 }
66500
66501 var messageWidth = actorToMessageWidth[actorKey];
66502 var actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;
66503 actor.margin = Math.max(actorWidth, conf.actorMargin);
66504 }
66505
66506 return Math.max(maxHeight, conf.height);
66507};
66508
66509var buildNoteModel = function buildNoteModel(msg, actors) {
66510 var startx = actors[msg.from].x;
66511 var stopx = actors[msg.to].x;
66512 var shouldWrap = msg.wrap && msg.message;
66513 var textDimensions = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(shouldWrap ? _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message, noteFont(conf));
66514 var noteModel = {
66515 width: shouldWrap ? conf.width : Math.max(conf.width, textDimensions.width + 2 * conf.noteMargin),
66516 height: 0,
66517 startx: actors[msg.from].x,
66518 stopx: 0,
66519 starty: 0,
66520 stopy: 0,
66521 message: msg.message
66522 };
66523
66524 if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.RIGHTOF) {
66525 noteModel.width = shouldWrap ? Math.max(conf.width, textDimensions.width) : Math.max(actors[msg.from].width / 2 + actors[msg.to].width / 2, textDimensions.width + 2 * conf.noteMargin);
66526 noteModel.startx = startx + (actors[msg.from].width + conf.actorMargin) / 2;
66527 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.LEFTOF) {
66528 noteModel.width = shouldWrap ? Math.max(conf.width, textDimensions.width + 2 * conf.noteMargin) : Math.max(actors[msg.from].width / 2 + actors[msg.to].width / 2, textDimensions.width + 2 * conf.noteMargin);
66529 noteModel.startx = startx - noteModel.width + (actors[msg.from].width - conf.actorMargin) / 2;
66530 } else if (msg.to === msg.from) {
66531 textDimensions = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(shouldWrap ? _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(msg.message, Math.max(conf.width, actors[msg.from].width), noteFont(conf)) : msg.message, noteFont(conf));
66532 noteModel.width = shouldWrap ? Math.max(conf.width, actors[msg.from].width) : Math.max(actors[msg.from].width, conf.width, textDimensions.width + 2 * conf.noteMargin);
66533 noteModel.startx = startx + (actors[msg.from].width - noteModel.width) / 2;
66534 } else {
66535 noteModel.width = Math.abs(startx + actors[msg.from].width / 2 - (stopx + actors[msg.to].width / 2)) + conf.actorMargin;
66536 noteModel.startx = startx < stopx ? startx + actors[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors[msg.to].width / 2 - conf.actorMargin / 2;
66537 }
66538
66539 if (shouldWrap) {
66540 noteModel.message = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(msg.message, noteModel.width - 2 * conf.wrapPadding, noteFont(conf));
66541 }
66542
66543 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug("NM:[".concat(noteModel.startx, ",").concat(noteModel.stopx, ",").concat(noteModel.starty, ",").concat(noteModel.stopy, ":").concat(noteModel.width, ",").concat(noteModel.height, "=").concat(msg.message, "]"));
66544 return noteModel;
66545};
66546
66547var buildMessageModel = function buildMessageModel(msg, actors) {
66548 var process = false;
66549
66550 if ([_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID_OPEN, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_OPEN, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID_CROSS, _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED_CROSS].includes(msg.type)) {
66551 process = true;
66552 }
66553
66554 if (!process) {
66555 return {};
66556 }
66557
66558 var fromBounds = activationBounds(msg.from, actors);
66559 var toBounds = activationBounds(msg.to, actors);
66560 var fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
66561 var toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
66562 var allBounds = fromBounds.concat(toBounds);
66563 var boundedWidth = Math.abs(toBounds[toIdx] - fromBounds[fromIdx]);
66564 var msgDims = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(msg.message, messageFont(conf));
66565
66566 if (msg.wrap && msg.message) {
66567 msg.message = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(msg.message, Math.max(boundedWidth + 2 * conf.wrapPadding, conf.width), messageFont(conf));
66568 }
66569
66570 return {
66571 width: Math.max(msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding, boundedWidth + 2 * conf.wrapPadding, conf.width),
66572 height: 0,
66573 startx: fromBounds[fromIdx],
66574 stopx: toBounds[toIdx],
66575 starty: 0,
66576 stopy: 0,
66577 message: msg.message,
66578 type: msg.type,
66579 wrap: msg.wrap,
66580 fromBounds: Math.min.apply(null, allBounds),
66581 toBounds: Math.max.apply(null, allBounds)
66582 };
66583};
66584
66585var calculateLoopBounds = function calculateLoopBounds(messages, actors) {
66586 var loops = {};
66587 var stack = [];
66588 var current, noteModel, msgModel;
66589 messages.forEach(function (msg) {
66590 msg.id = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].random({
66591 length: 10
66592 });
66593
66594 switch (msg.type) {
66595 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_START:
66596 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_START:
66597 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_START:
66598 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_START:
66599 stack.push({
66600 id: msg.id,
66601 msg: msg.message,
66602 from: Number.MAX_SAFE_INTEGER,
66603 to: Number.MIN_SAFE_INTEGER,
66604 width: 0
66605 });
66606 break;
66607
66608 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_ELSE:
66609 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_AND:
66610 if (msg.message) {
66611 current = stack.pop();
66612 loops[current.id] = current;
66613 loops[msg.id] = current;
66614 stack.push(current);
66615 }
66616
66617 break;
66618
66619 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_END:
66620 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_END:
66621 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_END:
66622 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_END:
66623 current = stack.pop();
66624 loops[current.id] = current;
66625 break;
66626
66627 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_START:
66628 {
66629 var actorRect = actors[msg.from ? msg.from.actor : msg.to.actor];
66630 var stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;
66631 var x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
66632 var toAdd = {
66633 startx: x,
66634 stopx: x + conf.activationWidth,
66635 actor: msg.from.actor,
66636 enabled: true
66637 };
66638 bounds.activations.push(toAdd);
66639 }
66640 break;
66641
66642 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_END:
66643 {
66644 var lastActorActivationIdx = bounds.activations.map(function (a) {
66645 return a.actor;
66646 }).lastIndexOf(msg.from.actor);
66647 delete bounds.activations.splice(lastActorActivationIdx, 1)[0];
66648 }
66649 break;
66650 }
66651
66652 var isNote = msg.placement !== undefined;
66653
66654 if (isNote) {
66655 noteModel = buildNoteModel(msg, actors);
66656 msg.noteModel = noteModel;
66657 stack.forEach(function (stk) {
66658 current = stk;
66659 current.from = Math.min(current.from, noteModel.startx);
66660 current.to = Math.max(current.to, noteModel.startx + noteModel.width);
66661 current.width = Math.max(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;
66662 });
66663 } else {
66664 msgModel = buildMessageModel(msg, actors);
66665 msg.msgModel = msgModel;
66666
66667 if (msgModel.startx && msgModel.stopx && stack.length > 0) {
66668 stack.forEach(function (stk) {
66669 current = stk;
66670
66671 if (msgModel.startx === msgModel.stopx) {
66672 var from = actors[msg.from];
66673 var to = actors[msg.to];
66674 current.from = Math.min(from.x - msgModel.width / 2, from.x - from.width / 2, current.from);
66675 current.to = Math.max(to.x + msgModel.width / 2, to.x + from.width / 2, current.to);
66676 current.width = Math.max(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;
66677 } else {
66678 current.from = Math.min(msgModel.startx, current.from);
66679 current.to = Math.max(msgModel.stopx, current.to);
66680 current.width = Math.max(current.width, msgModel.width) - conf.labelBoxWidth;
66681 }
66682 });
66683 }
66684 }
66685 });
66686 bounds.activations = [];
66687 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Loop type widths:', loops);
66688 return loops;
66689};
66690
66691/* harmony default export */ __webpack_exports__["default"] = ({
66692 bounds: bounds,
66693 drawActors: drawActors,
66694 setConf: setConf,
66695 draw: draw
66696});
66697
66698/***/ }),
66699
66700/***/ "./src/diagrams/sequence/styles.js":
66701/*!*****************************************!*\
66702 !*** ./src/diagrams/sequence/styles.js ***!
66703 \*****************************************/
66704/*! exports provided: default */
66705/***/ (function(module, __webpack_exports__, __webpack_require__) {
66706
66707"use strict";
66708__webpack_require__.r(__webpack_exports__);
66709var getStyles = function getStyles(options) {
66710 return ".actor {\n stroke: ".concat(options.actorBorder, ";\n fill: ").concat(options.actorBkg, ";\n }\n\n text.actor > tspan {\n fill: ").concat(options.actorTextColor, ";\n stroke: none;\n }\n\n .actor-line {\n stroke: ").concat(options.actorLineColor, ";\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ").concat(options.signalColor, ";\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ").concat(options.signalColor, ";\n }\n\n #arrowhead path {\n fill: ").concat(options.signalColor, ";\n stroke: ").concat(options.signalColor, ";\n }\n\n .sequenceNumber {\n fill: ").concat(options.sequenceNumberColor, ";\n }\n\n #sequencenumber {\n fill: ").concat(options.signalColor, ";\n }\n\n #crosshead path {\n fill: ").concat(options.signalColor, ";\n stroke: ").concat(options.signalColor, ";\n }\n\n .messageText {\n fill: ").concat(options.signalTextColor, ";\n stroke: ").concat(options.signalTextColor, ";\n }\n\n .labelBox {\n stroke: ").concat(options.labelBoxBorderColor, ";\n fill: ").concat(options.labelBoxBkgColor, ";\n }\n\n .labelText, .labelText > tspan {\n fill: ").concat(options.labelTextColor, ";\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ").concat(options.loopTextColor, ";\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ").concat(options.labelBoxBorderColor, ";\n fill: ").concat(options.labelBoxBorderColor, ";\n }\n\n .note {\n //stroke: #decc93;\n stroke: ").concat(options.noteBorderColor, ";\n fill: ").concat(options.noteBkgColor, ";\n }\n\n .noteText, .noteText > tspan {\n fill: ").concat(options.noteTextColor, ";\n stroke: none;\n }\n\n .activation0 {\n fill: ").concat(options.activationBkgColor, ";\n stroke: ").concat(options.activationBorderColor, ";\n }\n\n .activation1 {\n fill: ").concat(options.activationBkgColor, ";\n stroke: ").concat(options.activationBorderColor, ";\n }\n\n .activation2 {\n fill: ").concat(options.activationBkgColor, ";\n stroke: ").concat(options.activationBorderColor, ";\n }\n");
66711};
66712
66713/* harmony default export */ __webpack_exports__["default"] = (getStyles);
66714
66715/***/ }),
66716
66717/***/ "./src/diagrams/sequence/svgDraw.js":
66718/*!******************************************!*\
66719 !*** ./src/diagrams/sequence/svgDraw.js ***!
66720 \******************************************/
66721/*! exports provided: drawRect, drawText, drawLabel, drawActor, anchorElement, drawActivation, drawLoop, drawBackgroundRect, insertArrowHead, insertSequenceNumber, insertArrowCrossHead, getTextObj, getNoteRect, default */
66722/***/ (function(module, __webpack_exports__, __webpack_require__) {
66723
66724"use strict";
66725__webpack_require__.r(__webpack_exports__);
66726/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawRect", function() { return drawRect; });
66727/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawText", function() { return drawText; });
66728/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLabel", function() { return drawLabel; });
66729/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActor", function() { return drawActor; });
66730/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anchorElement", function() { return anchorElement; });
66731/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActivation", function() { return drawActivation; });
66732/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLoop", function() { return drawLoop; });
66733/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawBackgroundRect", function() { return drawBackgroundRect; });
66734/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrowHead", function() { return insertArrowHead; });
66735/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertSequenceNumber", function() { return insertSequenceNumber; });
66736/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrowCrossHead", function() { return insertArrowCrossHead; });
66737/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextObj", function() { return getTextObj; });
66738/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNoteRect", function() { return getNoteRect; });
66739/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
66740
66741var drawRect = function drawRect(elem, rectData) {
66742 var rectElem = elem.append('rect');
66743 rectElem.attr('x', rectData.x);
66744 rectElem.attr('y', rectData.y);
66745 rectElem.attr('fill', rectData.fill);
66746 rectElem.attr('stroke', rectData.stroke);
66747 rectElem.attr('width', rectData.width);
66748 rectElem.attr('height', rectData.height);
66749 rectElem.attr('rx', rectData.rx);
66750 rectElem.attr('ry', rectData.ry);
66751
66752 if (typeof rectData.class !== 'undefined') {
66753 rectElem.attr('class', rectData.class);
66754 }
66755
66756 return rectElem;
66757};
66758var drawText = function drawText(elem, textData) {
66759 var prevTextHeight = 0,
66760 textHeight = 0;
66761 var lines = textData.wrap ? textData.text.split(_common_common__WEBPACK_IMPORTED_MODULE_0__["default"].lineBreakRegex) : [textData.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_0__["default"].lineBreakRegex, ' ')];
66762 var textElems = [];
66763 var dy = 0;
66764
66765 var yfunc = function yfunc() {
66766 return textData.y;
66767 };
66768
66769 if (typeof textData.valign !== 'undefined' && typeof textData.textMargin !== 'undefined' && textData.textMargin > 0) {
66770 switch (textData.valign) {
66771 case 'top':
66772 case 'start':
66773 yfunc = function yfunc() {
66774 return Math.round(textData.y + textData.textMargin);
66775 };
66776
66777 break;
66778
66779 case 'middle':
66780 case 'center':
66781 yfunc = function yfunc() {
66782 return Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);
66783 };
66784
66785 break;
66786
66787 case 'bottom':
66788 case 'end':
66789 yfunc = function yfunc() {
66790 return Math.round(textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin);
66791 };
66792
66793 break;
66794 }
66795 }
66796
66797 if (typeof textData.anchor !== 'undefined' && typeof textData.textMargin !== 'undefined' && typeof textData.width !== 'undefined') {
66798 switch (textData.anchor) {
66799 case 'left':
66800 case 'start':
66801 textData.x = Math.round(textData.x + textData.textMargin);
66802 textData.anchor = 'start';
66803 textData.dominantBaseline = 'text-after-edge';
66804 textData.alignmentBaseline = 'middle';
66805 break;
66806
66807 case 'middle':
66808 case 'center':
66809 textData.x = Math.round(textData.x + textData.width / 2);
66810 textData.anchor = 'middle';
66811 textData.dominantBaseline = 'middle';
66812 textData.alignmentBaseline = 'middle';
66813 break;
66814
66815 case 'right':
66816 case 'end':
66817 textData.x = Math.round(textData.x + textData.width - textData.textMargin);
66818 textData.anchor = 'end';
66819 textData.dominantBaseline = 'text-before-edge';
66820 textData.alignmentBaseline = 'middle';
66821 break;
66822 }
66823 }
66824
66825 for (var i = 0; i < lines.length; i++) {
66826 var line = lines[i];
66827
66828 if (typeof textData.textMargin !== 'undefined' && textData.textMargin === 0 && typeof textData.fontSize !== 'undefined') {
66829 dy = i * textData.fontSize;
66830 }
66831
66832 var textElem = elem.append('text');
66833 textElem.attr('x', textData.x);
66834 textElem.attr('y', yfunc());
66835
66836 if (typeof textData.anchor !== 'undefined') {
66837 textElem.attr('text-anchor', textData.anchor).attr('dominant-baseline', textData.dominantBaseline).attr('alignment-baseline', textData.alignmentBaseline);
66838 }
66839
66840 if (typeof textData.fontFamily !== 'undefined') {
66841 textElem.style('font-family', textData.fontFamily);
66842 }
66843
66844 if (typeof textData.fontSize !== 'undefined') {
66845 textElem.style('font-size', textData.fontSize);
66846 }
66847
66848 if (typeof textData.fontWeight !== 'undefined') {
66849 textElem.style('font-weight', textData.fontWeight);
66850 }
66851
66852 if (typeof textData.fill !== 'undefined') {
66853 textElem.attr('fill', textData.fill);
66854 }
66855
66856 if (typeof textData.class !== 'undefined') {
66857 textElem.attr('class', textData.class);
66858 }
66859
66860 if (typeof textData.dy !== 'undefined') {
66861 textElem.attr('dy', textData.dy);
66862 } else if (dy !== 0) {
66863 textElem.attr('dy', dy);
66864 }
66865
66866 if (textData.tspan) {
66867 var span = textElem.append('tspan');
66868 span.attr('x', textData.x);
66869
66870 if (typeof textData.fill !== 'undefined') {
66871 span.attr('fill', textData.fill);
66872 }
66873
66874 span.text(line);
66875 } else {
66876 textElem.text(line);
66877 }
66878
66879 if (typeof textData.valign !== 'undefined' && typeof textData.textMargin !== 'undefined' && textData.textMargin > 0) {
66880 textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
66881 prevTextHeight = textHeight;
66882 }
66883
66884 textElems.push(textElem);
66885 }
66886
66887 return textElems;
66888};
66889var drawLabel = function drawLabel(elem, txtObject) {
66890 function genPoints(x, y, width, height, cut) {
66891 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
66892 }
66893
66894 var polygon = elem.append('polygon');
66895 polygon.attr('points', genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
66896 polygon.attr('class', 'labelBox');
66897 txtObject.y = txtObject.y + txtObject.height / 2;
66898 drawText(elem, txtObject);
66899 return polygon;
66900};
66901var actorCnt = -1;
66902/**
66903 * Draws an actor in the diagram with the attached line
66904 * @param elem - The diagram we'll draw to.
66905 * @param actor - The actor to draw.
66906 * @param conf - drawText implementation discriminator object
66907 */
66908
66909var drawActor = function drawActor(elem, actor, conf) {
66910 var center = actor.x + actor.width / 2;
66911 var g = elem.append('g');
66912
66913 if (actor.y === 0) {
66914 actorCnt++;
66915 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');
66916 }
66917
66918 var rect = getNoteRect();
66919 rect.x = actor.x;
66920 rect.y = actor.y;
66921 rect.fill = '#eaeaea';
66922 rect.width = actor.width;
66923 rect.height = actor.height;
66924 rect.class = 'actor';
66925 rect.rx = 3;
66926 rect.ry = 3;
66927 drawRect(g, rect);
66928
66929 _drawTextCandidateFunc(conf)(actor.description, g, rect.x, rect.y, rect.width, rect.height, {
66930 class: 'actor'
66931 }, conf);
66932};
66933var anchorElement = function anchorElement(elem) {
66934 return elem.append('g');
66935};
66936/**
66937 * Draws an activation in the diagram
66938 * @param elem - element to append activation rect.
66939 * @param bounds - activation box bounds.
66940 * @param verticalPos - precise y cooridnate of bottom activation box edge.
66941 * @param conf - sequence diagram config object.
66942 * @param actorActivations - number of activations on the actor.
66943 */
66944
66945var drawActivation = function drawActivation(elem, bounds, verticalPos, conf, actorActivations) {
66946 var rect = getNoteRect();
66947 var g = bounds.anchored;
66948 rect.x = bounds.startx;
66949 rect.y = bounds.starty;
66950 rect.class = 'activation' + actorActivations % 3; // Will evaluate to 0, 1 or 2
66951
66952 rect.width = bounds.stopx - bounds.startx;
66953 rect.height = verticalPos - bounds.starty;
66954 drawRect(g, rect);
66955};
66956/**
66957 * Draws a loop in the diagram
66958 * @param elem - elemenet to append the loop to.
66959 * @param loopModel - loopModel of the given loop.
66960 * @param labelText - Text within the loop.
66961 * @param conf - diagrom configuration
66962 */
66963
66964var drawLoop = function drawLoop(elem, loopModel, labelText, conf) {
66965 var boxMargin = conf.boxMargin,
66966 boxTextMargin = conf.boxTextMargin,
66967 labelBoxHeight = conf.labelBoxHeight,
66968 labelBoxWidth = conf.labelBoxWidth,
66969 fontFamily = conf.messageFontFamily,
66970 fontSize = conf.messageFontSize,
66971 fontWeight = conf.messageFontWeight;
66972 var g = elem.append('g');
66973
66974 var drawLoopLine = function drawLoopLine(startx, starty, stopx, stopy) {
66975 return g.append('line').attr('x1', startx).attr('y1', starty).attr('x2', stopx).attr('y2', stopy).attr('class', 'loopLine');
66976 };
66977
66978 drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);
66979 drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);
66980 drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);
66981 drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);
66982
66983 if (typeof loopModel.sections !== 'undefined') {
66984 loopModel.sections.forEach(function (item) {
66985 drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style('stroke-dasharray', '3, 3');
66986 });
66987 }
66988
66989 var txt = getTextObj();
66990 txt.text = labelText;
66991 txt.x = loopModel.startx;
66992 txt.y = loopModel.starty;
66993 txt.fontFamily = fontFamily;
66994 txt.fontSize = fontSize;
66995 txt.fontWeight = fontWeight;
66996 txt.anchor = 'middle';
66997 txt.valign = 'middle';
66998 txt.tspan = false;
66999 txt.width = labelBoxWidth || 50;
67000 txt.height = labelBoxHeight || 20;
67001 txt.textMargin = boxTextMargin;
67002 txt.class = 'labelText';
67003 drawLabel(g, txt);
67004 txt = getTextObj();
67005 txt.text = loopModel.title;
67006 txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;
67007 txt.y = loopModel.starty + boxMargin + boxTextMargin;
67008 txt.anchor = 'middle';
67009 txt.valign = 'middle';
67010 txt.textMargin = boxTextMargin;
67011 txt.class = 'loopText';
67012 txt.fontFamily = fontFamily;
67013 txt.fontSize = fontSize;
67014 txt.fontWeight = fontWeight;
67015 txt.wrap = true;
67016 var textElem = drawText(g, txt);
67017
67018 if (typeof loopModel.sectionTitles !== 'undefined') {
67019 loopModel.sectionTitles.forEach(function (item, idx) {
67020 if (item.message) {
67021 txt.text = item.message;
67022 txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;
67023 txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;
67024 txt.class = 'loopText';
67025 txt.anchor = 'middle';
67026 txt.valign = 'middle';
67027 txt.tspan = false;
67028 txt.fontFamily = fontFamily;
67029 txt.fontSize = fontSize;
67030 txt.fontWeight = fontWeight;
67031 txt.wrap = loopModel.wrap;
67032 textElem = drawText(g, txt);
67033 var sectionHeight = Math.round(textElem.map(function (te) {
67034 return (te._groups || te)[0][0].getBBox().height;
67035 }).reduce(function (acc, curr) {
67036 return acc + curr;
67037 }));
67038 loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);
67039 }
67040 });
67041 }
67042
67043 loopModel.height = Math.round(loopModel.stopy - loopModel.starty);
67044 return g;
67045};
67046/**
67047 * Draws a background rectangle
67048 * @param elem diagram (reference for bounds)
67049 * @param bounds shape of the rectangle
67050 */
67051
67052var drawBackgroundRect = function drawBackgroundRect(elem, bounds) {
67053 var rectElem = drawRect(elem, {
67054 x: bounds.startx,
67055 y: bounds.starty,
67056 width: bounds.stopx - bounds.startx,
67057 height: bounds.stopy - bounds.starty,
67058 fill: bounds.fill,
67059 class: 'rect'
67060 });
67061 rectElem.lower();
67062};
67063/**
67064 * Setup arrow head and define the marker. The result is appended to the svg.
67065 */
67066
67067var insertArrowHead = function insertArrowHead(elem) {
67068 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
67069};
67070/**
67071 * Setup node number. The result is appended to the svg.
67072 */
67073
67074var insertSequenceNumber = function insertSequenceNumber(elem) {
67075 elem.append('defs').append('marker').attr('id', 'sequencenumber').attr('refX', 15).attr('refY', 15).attr('markerWidth', 60).attr('markerHeight', 40).attr('orient', 'auto').append('circle').attr('cx', 15).attr('cy', 15).attr('r', 6); // .style("fill", '#f00');
67076};
67077/**
67078 * Setup arrow head and define the marker. The result is appended to the svg.
67079 */
67080
67081var insertArrowCrossHead = function insertArrowCrossHead(elem) {
67082 var defs = elem.append('defs');
67083 var marker = defs.append('marker').attr('id', 'crosshead').attr('markerWidth', 15).attr('markerHeight', 8).attr('orient', 'auto').attr('refX', 16).attr('refY', 4); // The arrow
67084
67085 marker.append('path').attr('fill', 'black').attr('stroke', '#000000').style('stroke-dasharray', '0, 0').attr('stroke-width', '1px').attr('d', 'M 9,2 V 6 L16,4 Z'); // The cross
67086
67087 marker.append('path').attr('fill', 'none').attr('stroke', '#000000').style('stroke-dasharray', '0, 0').attr('stroke-width', '1px').attr('d', 'M 0,1 L 6,7 M 6,1 L 0,7'); // this is actual shape for arrowhead
67088};
67089var getTextObj = function getTextObj() {
67090 return {
67091 x: 0,
67092 y: 0,
67093 fill: undefined,
67094 anchor: undefined,
67095 style: '#666',
67096 width: undefined,
67097 height: undefined,
67098 textMargin: 0,
67099 rx: 0,
67100 ry: 0,
67101 tspan: true,
67102 valign: undefined
67103 };
67104};
67105var getNoteRect = function getNoteRect() {
67106 return {
67107 x: 0,
67108 y: 0,
67109 fill: '#EDF2AE',
67110 stroke: '#666',
67111 width: 100,
67112 anchor: 'start',
67113 height: 100,
67114 rx: 0,
67115 ry: 0
67116 };
67117};
67118
67119var _drawTextCandidateFunc = function () {
67120 function byText(content, g, x, y, width, height, textAttrs) {
67121 var text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('text-anchor', 'middle').text(content);
67122
67123 _setTextAttrs(text, textAttrs);
67124 }
67125
67126 function byTspan(content, g, x, y, width, height, textAttrs, conf) {
67127 var actorFontSize = conf.actorFontSize,
67128 actorFontFamily = conf.actorFontFamily,
67129 actorFontWeight = conf.actorFontWeight;
67130 var lines = content.split(_common_common__WEBPACK_IMPORTED_MODULE_0__["default"].lineBreakRegex);
67131
67132 for (var i = 0; i < lines.length; i++) {
67133 var dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;
67134 var text = g.append('text').attr('x', x + width / 2).attr('y', y).style('text-anchor', 'middle').style('font-size', actorFontSize).style('font-weight', actorFontWeight).style('font-family', actorFontFamily);
67135 text.append('tspan').attr('x', x + width / 2).attr('dy', dy).text(lines[i]);
67136 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
67137
67138 _setTextAttrs(text, textAttrs);
67139 }
67140 }
67141
67142 function byFo(content, g, x, y, width, height, textAttrs, conf) {
67143 var s = g.append('switch');
67144 var f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height);
67145 var text = f.append('div').style('display', 'table').style('height', '100%').style('width', '100%');
67146 text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
67147 byTspan(content, s, x, y, width, height, textAttrs, conf);
67148
67149 _setTextAttrs(text, textAttrs);
67150 }
67151
67152 function _setTextAttrs(toText, fromTextAttrsDict) {
67153 for (var key in fromTextAttrsDict) {
67154 if (fromTextAttrsDict.hasOwnProperty(key)) {
67155 // eslint-disable-line
67156 toText.attr(key, fromTextAttrsDict[key]);
67157 }
67158 }
67159 }
67160
67161 return function (conf) {
67162 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
67163 };
67164}();
67165
67166/* harmony default export */ __webpack_exports__["default"] = ({
67167 drawRect: drawRect,
67168 drawText: drawText,
67169 drawLabel: drawLabel,
67170 drawActor: drawActor,
67171 anchorElement: anchorElement,
67172 drawActivation: drawActivation,
67173 drawLoop: drawLoop,
67174 drawBackgroundRect: drawBackgroundRect,
67175 insertArrowHead: insertArrowHead,
67176 insertSequenceNumber: insertSequenceNumber,
67177 insertArrowCrossHead: insertArrowCrossHead,
67178 getTextObj: getTextObj,
67179 getNoteRect: getNoteRect
67180});
67181
67182/***/ }),
67183
67184/***/ "./src/diagrams/state/id-cache.js":
67185/*!****************************************!*\
67186 !*** ./src/diagrams/state/id-cache.js ***!
67187 \****************************************/
67188/*! exports provided: set, get, keys, size, default */
67189/***/ (function(module, __webpack_exports__, __webpack_require__) {
67190
67191"use strict";
67192__webpack_require__.r(__webpack_exports__);
67193/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
67194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
67195/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return keys; });
67196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "size", function() { return size; });
67197var idCache = {};
67198var set = function set(key, val) {
67199 idCache[key] = val;
67200};
67201var get = function get(k) {
67202 return idCache[k];
67203};
67204var keys = function keys() {
67205 return Object.keys(idCache);
67206};
67207var size = function size() {
67208 return keys().length;
67209};
67210/* harmony default export */ __webpack_exports__["default"] = ({
67211 get: get,
67212 set: set,
67213 keys: keys,
67214 size: size
67215});
67216
67217/***/ }),
67218
67219/***/ "./src/diagrams/state/parser/stateDiagram.jison":
67220/*!******************************************************!*\
67221 !*** ./src/diagrams/state/parser/stateDiagram.jison ***!
67222 \******************************************************/
67223/*! no static exports found */
67224/***/ (function(module, exports, __webpack_require__) {
67225
67226/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
67227/*
67228 Returns a Parser object of the following structure:
67229
67230 Parser: {
67231 yy: {}
67232 }
67233
67234 Parser.prototype: {
67235 yy: {},
67236 trace: function(),
67237 symbols_: {associative list: name ==> number},
67238 terminals_: {associative list: number ==> name},
67239 productions_: [...],
67240 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
67241 table: [...],
67242 defaultActions: {...},
67243 parseError: function(str, hash),
67244 parse: function(input),
67245
67246 lexer: {
67247 EOF: 1,
67248 parseError: function(str, hash),
67249 setInput: function(input),
67250 input: function(),
67251 unput: function(str),
67252 more: function(),
67253 less: function(n),
67254 pastInput: function(),
67255 upcomingInput: function(),
67256 showPosition: function(),
67257 test_match: function(regex_match_array, rule_index),
67258 next: function(),
67259 lex: function(),
67260 begin: function(condition),
67261 popState: function(),
67262 _currentRules: function(),
67263 topState: function(),
67264 pushState: function(condition),
67265
67266 options: {
67267 ranges: boolean (optional: true ==> token location info will include a .range[] member)
67268 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
67269 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)
67270 },
67271
67272 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
67273 rules: [...],
67274 conditions: {associative list: name ==> set},
67275 }
67276 }
67277
67278
67279 token location info (@$, _$, etc.): {
67280 first_line: n,
67281 last_line: n,
67282 first_column: n,
67283 last_column: n,
67284 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
67285 }
67286
67287
67288 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
67289 text: (matched text)
67290 token: (the produced terminal token, if any)
67291 line: (yylineno)
67292 }
67293 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
67294 loc: (yylloc)
67295 expected: (string describing the set of expected tokens)
67296 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
67297 }
67298*/
67299var parser = (function(){
67300var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,28],$Vc=[1,23],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,29],$Vh=[1,32],$Vi=[1,4,5,14,15,17,19,20,22,23,24,25,26,36,39],$Vj=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,36,39],$Vk=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,36,39],$Vl=[4,5,14,15,17,19,20,22,23,24,25,26,36,39];
67301var parser = {trace: function trace () { },
67302yy: {},
67303symbols_: {"error":2,"start":3,"SPACE":4,"NL":5,"directive":6,"SD":7,"document":8,"line":9,"statement":10,"idStatement":11,"DESCR":12,"-->":13,"HIDE_EMPTY":14,"scale":15,"WIDTH":16,"COMPOSIT_STATE":17,"STRUCT_START":18,"STRUCT_STOP":19,"STATE_DESCR":20,"AS":21,"ID":22,"FORK":23,"JOIN":24,"CONCURRENT":25,"note":26,"notePosition":27,"NOTE_TEXT":28,"openDirective":29,"typeDirective":30,"closeDirective":31,":":32,"argDirective":33,"eol":34,";":35,"EDGE_STATE":36,"left_of":37,"right_of":38,"open_directive":39,"type_directive":40,"arg_directive":41,"close_directive":42,"$accept":0,"$end":1},
67304terminals_: {2:"error",4:"SPACE",5:"NL",7:"SD",12:"DESCR",13:"-->",14:"HIDE_EMPTY",15:"scale",16:"WIDTH",17:"COMPOSIT_STATE",18:"STRUCT_START",19:"STRUCT_STOP",20:"STATE_DESCR",21:"AS",22:"ID",23:"FORK",24:"JOIN",25:"CONCURRENT",26:"note",28:"NOTE_TEXT",32:":",35:";",36:"EDGE_STATE",37:"left_of",38:"right_of",39:"open_directive",40:"type_directive",41:"arg_directive",42:"close_directive"},
67305productions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[6,3],[6,5],[34,1],[34,1],[11,1],[11,1],[27,1],[27,1],[29,1],[30,1],[33,1],[31,1]],
67306performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
67307/* this == yyval */
67308
67309var $0 = $$.length - 1;
67310switch (yystate) {
67311case 4:
67312 /*console.warn('Root document', $$[$0]);*/ yy.setRootDoc($$[$0]);return $$[$0];
67313break;
67314case 5:
67315 this.$ = []
67316break;
67317case 6:
67318
67319 if($$[$0]!='nl'){
67320 $$[$0-1].push($$[$0]);this.$ = $$[$0-1]
67321 }
67322 // console.warn('Got document',$$[$0-1], $$[$0]);
67323
67324break;
67325case 7: case 8:
67326 this.$ = $$[$0]
67327break;
67328case 9:
67329 this.$='nl';
67330break;
67331case 10:
67332 /*console.warn('got id and descr', $$[$0]);*/this.$={ stmt: 'state', id: $$[$0], type: 'default', description: ''};
67333break;
67334case 11:
67335 /*console.warn('got id and descr', $$[$0-1], $$[$0].trim());*/this.$={ stmt: 'state', id: $$[$0-1], type: 'default', description: yy.trimColon($$[$0])};
67336break;
67337case 12:
67338
67339 /*console.warn('got id', $$[$0-2]);yy.addRelation($$[$0-2], $$[$0]);*/
67340 this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-2], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0] ,type: 'default', description: ''}};
67341
67342break;
67343case 13:
67344
67345 /*yy.addRelation($$[$0-3], $$[$0-1], $$[$0].substr(1).trim());*/
67346 this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-3], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0-1] ,type: 'default', description: ''}, description: $$[$0].substr(1).trim()};
67347
67348break;
67349case 17:
67350
67351
67352 /* console.warn('Adding document for state without id ', $$[$0-3]);*/
67353 this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: '', doc: $$[$0-1] }
67354
67355break;
67356case 18:
67357
67358 var id=$$[$0];
67359 var description = $$[$0-2].trim();
67360 if($$[$0].match(':')){
67361 var parts = $$[$0].split(':');
67362 id=parts[0];
67363 description = [description, parts[1]];
67364 }
67365 this.$={stmt: 'state', id: id, type: 'default', description: description};
67366
67367
67368break;
67369case 19:
67370
67371 //console.warn('Adding document for state with id ', $$[$0-3], $$[$0-2]); yy.addDocument($$[$0-3]);
67372 this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: $$[$0-5], doc: $$[$0-1] }
67373
67374break;
67375case 20:
67376
67377 this.$={ stmt: 'state', id: $$[$0], type: 'fork' }
67378
67379break;
67380case 21:
67381
67382 this.$={ stmt: 'state', id: $$[$0], type: 'join' }
67383
67384break;
67385case 22:
67386
67387 this.$={ stmt: 'state', id: yy.getDividerId(), type: 'divider' }
67388
67389break;
67390case 23:
67391
67392 /*console.warn('got NOTE, position: ', $$[$0-2].trim(), 'id = ', $$[$0-1].trim(), 'note: ', $$[$0]);*/
67393 this.$={ stmt: 'state', id: $$[$0-1].trim(), note:{position: $$[$0-2].trim(), text: $$[$0].trim()}};
67394
67395break;
67396case 30: case 31:
67397this.$=$$[$0];
67398break;
67399case 34:
67400 yy.parseDirective('%%{', 'open_directive');
67401break;
67402case 35:
67403 yy.parseDirective($$[$0], 'type_directive');
67404break;
67405case 36:
67406 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
67407break;
67408case 37:
67409 yy.parseDirective('}%%', 'close_directive', 'state');
67410break;
67411}
67412},
67413table: [{3:1,4:$V0,5:$V1,6:4,7:$V2,29:6,39:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,29:6,39:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,29:6,39:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,29:6,39:$V3},o([1,4,5,14,15,17,20,22,23,24,25,26,36,39],$V4,{8:11}),{30:12,40:[1,13]},{40:[2,34]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:27,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,29:6,36:$Vg,39:$V3},{31:30,32:[1,31],42:$Vh},o([32,42],[2,35]),o($Vi,[2,6]),{6:27,10:33,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,29:6,36:$Vg,39:$V3},o($Vi,[2,8]),o($Vi,[2,9]),o($Vi,[2,10],{12:[1,34],13:[1,35]}),o($Vi,[2,14]),{16:[1,36]},o($Vi,[2,16],{18:[1,37]}),{21:[1,38]},o($Vi,[2,20]),o($Vi,[2,21]),o($Vi,[2,22]),{27:39,28:[1,40],37:[1,41],38:[1,42]},o($Vi,[2,25]),o($Vj,[2,30]),o($Vj,[2,31]),o($Vk,[2,26]),{33:43,41:[1,44]},o($Vk,[2,37]),o($Vi,[2,7]),o($Vi,[2,11]),{11:45,22:$Vb,36:$Vg},o($Vi,[2,15]),o($Vl,$V4,{8:46}),{22:[1,47]},{22:[1,48]},{21:[1,49]},{22:[2,32]},{22:[2,33]},{31:50,42:$Vh},{42:[2,36]},o($Vi,[2,12],{12:[1,51]}),{4:$V5,5:$V6,6:27,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,52],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,29:6,36:$Vg,39:$V3},o($Vi,[2,18],{18:[1,53]}),{28:[1,54]},{22:[1,55]},o($Vk,[2,27]),o($Vi,[2,13]),o($Vi,[2,17]),o($Vl,$V4,{8:56}),o($Vi,[2,23]),o($Vi,[2,24]),{4:$V5,5:$V6,6:27,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,57],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,29:6,36:$Vg,39:$V3},o($Vi,[2,19])],
67414defaultActions: {7:[2,34],8:[2,1],9:[2,2],10:[2,3],41:[2,32],42:[2,33],44:[2,36]},
67415parseError: function parseError (str, hash) {
67416 if (hash.recoverable) {
67417 this.trace(str);
67418 } else {
67419 var error = new Error(str);
67420 error.hash = hash;
67421 throw error;
67422 }
67423},
67424parse: function parse(input) {
67425 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
67426 var args = lstack.slice.call(arguments, 1);
67427 var lexer = Object.create(this.lexer);
67428 var sharedState = { yy: {} };
67429 for (var k in this.yy) {
67430 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
67431 sharedState.yy[k] = this.yy[k];
67432 }
67433 }
67434 lexer.setInput(input, sharedState.yy);
67435 sharedState.yy.lexer = lexer;
67436 sharedState.yy.parser = this;
67437 if (typeof lexer.yylloc == 'undefined') {
67438 lexer.yylloc = {};
67439 }
67440 var yyloc = lexer.yylloc;
67441 lstack.push(yyloc);
67442 var ranges = lexer.options && lexer.options.ranges;
67443 if (typeof sharedState.yy.parseError === 'function') {
67444 this.parseError = sharedState.yy.parseError;
67445 } else {
67446 this.parseError = Object.getPrototypeOf(this).parseError;
67447 }
67448 function popStack(n) {
67449 stack.length = stack.length - 2 * n;
67450 vstack.length = vstack.length - n;
67451 lstack.length = lstack.length - n;
67452 }
67453 function lex() {
67454 var token;
67455 token = tstack.pop() || lexer.lex() || EOF;
67456 if (typeof token !== 'number') {
67457 if (token instanceof Array) {
67458 tstack = token;
67459 token = tstack.pop();
67460 }
67461 token = self.symbols_[token] || token;
67462 }
67463 return token;
67464 }
67465 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
67466 while (true) {
67467 state = stack[stack.length - 1];
67468 if (this.defaultActions[state]) {
67469 action = this.defaultActions[state];
67470 } else {
67471 if (symbol === null || typeof symbol == 'undefined') {
67472 symbol = lex();
67473 }
67474 action = table[state] && table[state][symbol];
67475 }
67476 if (typeof action === 'undefined' || !action.length || !action[0]) {
67477 var errStr = '';
67478 expected = [];
67479 for (p in table[state]) {
67480 if (this.terminals_[p] && p > TERROR) {
67481 expected.push('\'' + this.terminals_[p] + '\'');
67482 }
67483 }
67484 if (lexer.showPosition) {
67485 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
67486 } else {
67487 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
67488 }
67489 this.parseError(errStr, {
67490 text: lexer.match,
67491 token: this.terminals_[symbol] || symbol,
67492 line: lexer.yylineno,
67493 loc: yyloc,
67494 expected: expected
67495 });
67496 }
67497 if (action[0] instanceof Array && action.length > 1) {
67498 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
67499 }
67500 switch (action[0]) {
67501 case 1:
67502 stack.push(symbol);
67503 vstack.push(lexer.yytext);
67504 lstack.push(lexer.yylloc);
67505 stack.push(action[1]);
67506 symbol = null;
67507 if (!preErrorSymbol) {
67508 yyleng = lexer.yyleng;
67509 yytext = lexer.yytext;
67510 yylineno = lexer.yylineno;
67511 yyloc = lexer.yylloc;
67512 if (recovering > 0) {
67513 recovering--;
67514 }
67515 } else {
67516 symbol = preErrorSymbol;
67517 preErrorSymbol = null;
67518 }
67519 break;
67520 case 2:
67521 len = this.productions_[action[1]][1];
67522 yyval.$ = vstack[vstack.length - len];
67523 yyval._$ = {
67524 first_line: lstack[lstack.length - (len || 1)].first_line,
67525 last_line: lstack[lstack.length - 1].last_line,
67526 first_column: lstack[lstack.length - (len || 1)].first_column,
67527 last_column: lstack[lstack.length - 1].last_column
67528 };
67529 if (ranges) {
67530 yyval._$.range = [
67531 lstack[lstack.length - (len || 1)].range[0],
67532 lstack[lstack.length - 1].range[1]
67533 ];
67534 }
67535 r = this.performAction.apply(yyval, [
67536 yytext,
67537 yyleng,
67538 yylineno,
67539 sharedState.yy,
67540 action[1],
67541 vstack,
67542 lstack
67543 ].concat(args));
67544 if (typeof r !== 'undefined') {
67545 return r;
67546 }
67547 if (len) {
67548 stack = stack.slice(0, -1 * len * 2);
67549 vstack = vstack.slice(0, -1 * len);
67550 lstack = lstack.slice(0, -1 * len);
67551 }
67552 stack.push(this.productions_[action[1]][0]);
67553 vstack.push(yyval.$);
67554 lstack.push(yyval._$);
67555 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
67556 stack.push(newState);
67557 break;
67558 case 3:
67559 return true;
67560 }
67561 }
67562 return true;
67563}};
67564
67565/* generated by jison-lex 0.3.4 */
67566var lexer = (function(){
67567var lexer = ({
67568
67569EOF:1,
67570
67571parseError:function parseError(str, hash) {
67572 if (this.yy.parser) {
67573 this.yy.parser.parseError(str, hash);
67574 } else {
67575 throw new Error(str);
67576 }
67577 },
67578
67579// resets the lexer, sets new input
67580setInput:function (input, yy) {
67581 this.yy = yy || this.yy || {};
67582 this._input = input;
67583 this._more = this._backtrack = this.done = false;
67584 this.yylineno = this.yyleng = 0;
67585 this.yytext = this.matched = this.match = '';
67586 this.conditionStack = ['INITIAL'];
67587 this.yylloc = {
67588 first_line: 1,
67589 first_column: 0,
67590 last_line: 1,
67591 last_column: 0
67592 };
67593 if (this.options.ranges) {
67594 this.yylloc.range = [0,0];
67595 }
67596 this.offset = 0;
67597 return this;
67598 },
67599
67600// consumes and returns one char from the input
67601input:function () {
67602 var ch = this._input[0];
67603 this.yytext += ch;
67604 this.yyleng++;
67605 this.offset++;
67606 this.match += ch;
67607 this.matched += ch;
67608 var lines = ch.match(/(?:\r\n?|\n).*/g);
67609 if (lines) {
67610 this.yylineno++;
67611 this.yylloc.last_line++;
67612 } else {
67613 this.yylloc.last_column++;
67614 }
67615 if (this.options.ranges) {
67616 this.yylloc.range[1]++;
67617 }
67618
67619 this._input = this._input.slice(1);
67620 return ch;
67621 },
67622
67623// unshifts one char (or a string) into the input
67624unput:function (ch) {
67625 var len = ch.length;
67626 var lines = ch.split(/(?:\r\n?|\n)/g);
67627
67628 this._input = ch + this._input;
67629 this.yytext = this.yytext.substr(0, this.yytext.length - len);
67630 //this.yyleng -= len;
67631 this.offset -= len;
67632 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
67633 this.match = this.match.substr(0, this.match.length - 1);
67634 this.matched = this.matched.substr(0, this.matched.length - 1);
67635
67636 if (lines.length - 1) {
67637 this.yylineno -= lines.length - 1;
67638 }
67639 var r = this.yylloc.range;
67640
67641 this.yylloc = {
67642 first_line: this.yylloc.first_line,
67643 last_line: this.yylineno + 1,
67644 first_column: this.yylloc.first_column,
67645 last_column: lines ?
67646 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
67647 + oldLines[oldLines.length - lines.length].length - lines[0].length :
67648 this.yylloc.first_column - len
67649 };
67650
67651 if (this.options.ranges) {
67652 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
67653 }
67654 this.yyleng = this.yytext.length;
67655 return this;
67656 },
67657
67658// When called from action, caches matched text and appends it on next action
67659more:function () {
67660 this._more = true;
67661 return this;
67662 },
67663
67664// 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.
67665reject:function () {
67666 if (this.options.backtrack_lexer) {
67667 this._backtrack = true;
67668 } else {
67669 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(), {
67670 text: "",
67671 token: null,
67672 line: this.yylineno
67673 });
67674
67675 }
67676 return this;
67677 },
67678
67679// retain first n characters of the match
67680less:function (n) {
67681 this.unput(this.match.slice(n));
67682 },
67683
67684// displays already matched input, i.e. for error messages
67685pastInput:function () {
67686 var past = this.matched.substr(0, this.matched.length - this.match.length);
67687 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
67688 },
67689
67690// displays upcoming input, i.e. for error messages
67691upcomingInput:function () {
67692 var next = this.match;
67693 if (next.length < 20) {
67694 next += this._input.substr(0, 20-next.length);
67695 }
67696 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
67697 },
67698
67699// displays the character position where the lexing error occurred, i.e. for error messages
67700showPosition:function () {
67701 var pre = this.pastInput();
67702 var c = new Array(pre.length + 1).join("-");
67703 return pre + this.upcomingInput() + "\n" + c + "^";
67704 },
67705
67706// test the lexed token: return FALSE when not a match, otherwise return token
67707test_match:function(match, indexed_rule) {
67708 var token,
67709 lines,
67710 backup;
67711
67712 if (this.options.backtrack_lexer) {
67713 // save context
67714 backup = {
67715 yylineno: this.yylineno,
67716 yylloc: {
67717 first_line: this.yylloc.first_line,
67718 last_line: this.last_line,
67719 first_column: this.yylloc.first_column,
67720 last_column: this.yylloc.last_column
67721 },
67722 yytext: this.yytext,
67723 match: this.match,
67724 matches: this.matches,
67725 matched: this.matched,
67726 yyleng: this.yyleng,
67727 offset: this.offset,
67728 _more: this._more,
67729 _input: this._input,
67730 yy: this.yy,
67731 conditionStack: this.conditionStack.slice(0),
67732 done: this.done
67733 };
67734 if (this.options.ranges) {
67735 backup.yylloc.range = this.yylloc.range.slice(0);
67736 }
67737 }
67738
67739 lines = match[0].match(/(?:\r\n?|\n).*/g);
67740 if (lines) {
67741 this.yylineno += lines.length;
67742 }
67743 this.yylloc = {
67744 first_line: this.yylloc.last_line,
67745 last_line: this.yylineno + 1,
67746 first_column: this.yylloc.last_column,
67747 last_column: lines ?
67748 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
67749 this.yylloc.last_column + match[0].length
67750 };
67751 this.yytext += match[0];
67752 this.match += match[0];
67753 this.matches = match;
67754 this.yyleng = this.yytext.length;
67755 if (this.options.ranges) {
67756 this.yylloc.range = [this.offset, this.offset += this.yyleng];
67757 }
67758 this._more = false;
67759 this._backtrack = false;
67760 this._input = this._input.slice(match[0].length);
67761 this.matched += match[0];
67762 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
67763 if (this.done && this._input) {
67764 this.done = false;
67765 }
67766 if (token) {
67767 return token;
67768 } else if (this._backtrack) {
67769 // recover context
67770 for (var k in backup) {
67771 this[k] = backup[k];
67772 }
67773 return false; // rule action called reject() implying the next rule should be tested instead.
67774 }
67775 return false;
67776 },
67777
67778// return next match in input
67779next:function () {
67780 if (this.done) {
67781 return this.EOF;
67782 }
67783 if (!this._input) {
67784 this.done = true;
67785 }
67786
67787 var token,
67788 match,
67789 tempMatch,
67790 index;
67791 if (!this._more) {
67792 this.yytext = '';
67793 this.match = '';
67794 }
67795 var rules = this._currentRules();
67796 for (var i = 0; i < rules.length; i++) {
67797 tempMatch = this._input.match(this.rules[rules[i]]);
67798 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
67799 match = tempMatch;
67800 index = i;
67801 if (this.options.backtrack_lexer) {
67802 token = this.test_match(tempMatch, rules[i]);
67803 if (token !== false) {
67804 return token;
67805 } else if (this._backtrack) {
67806 match = false;
67807 continue; // rule action called reject() implying a rule MISmatch.
67808 } else {
67809 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
67810 return false;
67811 }
67812 } else if (!this.options.flex) {
67813 break;
67814 }
67815 }
67816 }
67817 if (match) {
67818 token = this.test_match(match, rules[index]);
67819 if (token !== false) {
67820 return token;
67821 }
67822 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
67823 return false;
67824 }
67825 if (this._input === "") {
67826 return this.EOF;
67827 } else {
67828 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
67829 text: "",
67830 token: null,
67831 line: this.yylineno
67832 });
67833 }
67834 },
67835
67836// return next match that has a token
67837lex:function lex () {
67838 var r = this.next();
67839 if (r) {
67840 return r;
67841 } else {
67842 return this.lex();
67843 }
67844 },
67845
67846// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
67847begin:function begin (condition) {
67848 this.conditionStack.push(condition);
67849 },
67850
67851// pop the previously active lexer condition state off the condition stack
67852popState:function popState () {
67853 var n = this.conditionStack.length - 1;
67854 if (n > 0) {
67855 return this.conditionStack.pop();
67856 } else {
67857 return this.conditionStack[0];
67858 }
67859 },
67860
67861// produce the lexer rule set which is active for the currently active lexer condition state
67862_currentRules:function _currentRules () {
67863 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
67864 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
67865 } else {
67866 return this.conditions["INITIAL"].rules;
67867 }
67868 },
67869
67870// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
67871topState:function topState (n) {
67872 n = this.conditionStack.length - 1 - Math.abs(n || 0);
67873 if (n >= 0) {
67874 return this.conditionStack[n];
67875 } else {
67876 return "INITIAL";
67877 }
67878 },
67879
67880// alias for begin(condition)
67881pushState:function pushState (condition) {
67882 this.begin(condition);
67883 },
67884
67885// return the number of states currently on the stack
67886stateStackSize:function stateStackSize() {
67887 return this.conditionStack.length;
67888 },
67889options: {"case-insensitive":true},
67890performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
67891var YYSTATE=YY_START;
67892switch($avoiding_name_collisions) {
67893case 0: this.begin('open_directive'); return 39;
67894break;
67895case 1: this.begin('type_directive'); return 40;
67896break;
67897case 2: this.popState(); this.begin('arg_directive'); return 32;
67898break;
67899case 3: this.popState(); this.popState(); return 42;
67900break;
67901case 4:return 41;
67902break;
67903case 5:/* skip comments */
67904break;
67905case 6:/* skip comments */{ console.log('Crap after close'); }
67906break;
67907case 7:return 5;
67908break;
67909case 8:/* skip all whitespace */
67910break;
67911case 9:/* skip same-line whitespace */
67912break;
67913case 10:/* skip comments */
67914break;
67915case 11:/* skip comments */
67916break;
67917case 12: this.pushState('SCALE'); /* console.log('Got scale', yy_.yytext);*/ return 15;
67918break;
67919case 13:return 16;
67920break;
67921case 14:this.popState();
67922break;
67923case 15: this.pushState('STATE');
67924break;
67925case 16:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yy_.yytext);*/return 23;
67926break;
67927case 17:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;
67928break;
67929case 18:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yy_.yytext);*/return 23;
67930break;
67931case 19:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;
67932break;
67933case 20:this.begin("STATE_STRING");
67934break;
67935case 21:this.popState();this.pushState('STATE_ID');return "AS";
67936break;
67937case 22:this.popState();/* console.log('STATE_ID', yy_.yytext);*/return "ID";
67938break;
67939case 23:this.popState();
67940break;
67941case 24: /*console.log('Long description:', yy_.yytext);*/return "STATE_DESCR";
67942break;
67943case 25:/*console.log('COMPOSIT_STATE', yy_.yytext);*/return 17;
67944break;
67945case 26:this.popState();
67946break;
67947case 27:this.popState();this.pushState('struct'); /*console.log('begin struct', yy_.yytext);*/return 18;
67948break;
67949case 28: /*console.log('Ending struct');*/ this.popState(); return 19;
67950break;
67951case 29:/* nothing */
67952break;
67953case 30: this.begin('NOTE'); return 26;
67954break;
67955case 31: this.popState();this.pushState('NOTE_ID');return 37;
67956break;
67957case 32: this.popState();this.pushState('NOTE_ID');return 38;
67958break;
67959case 33: this.popState();this.pushState('FLOATING_NOTE');
67960break;
67961case 34:this.popState();this.pushState('FLOATING_NOTE_ID');return "AS";
67962break;
67963case 35:/**/
67964break;
67965case 36: /*console.log('Floating note text: ', yy_.yytext);*/return "NOTE_TEXT";
67966break;
67967case 37:this.popState();/*console.log('Floating note ID', yy_.yytext);*/return "ID";
67968break;
67969case 38: this.popState();this.pushState('NOTE_TEXT');/*console.log('Got ID for note', yy_.yytext);*/return 22;
67970break;
67971case 39: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.substr(2).trim();return 28;
67972break;
67973case 40: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.slice(0,-8).trim();return 28;
67974break;
67975case 41: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7;
67976break;
67977case 42: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7;
67978break;
67979case 43: /*console.log('HIDE_EMPTY', yy_.yytext,'#');*/return 14;
67980break;
67981case 44: /*console.log('EDGE_STATE=',yy_.yytext);*/ return 36;
67982break;
67983case 45: /*console.log('=>ID=',yy_.yytext);*/ return 22;
67984break;
67985case 46: yy_.yytext = yy_.yytext.trim(); /*console.log('Descr = ', yy_.yytext);*/ return 12;
67986break;
67987case 47:return 13;
67988break;
67989case 48:return 25;
67990break;
67991case 49:return 5;
67992break;
67993case 50:return 'INVALID';
67994break;
67995}
67996},
67997rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:\s*[^:;]+end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],
67998conditions: {"LINE":{"rules":[9,10],"inclusive":false},"close_directive":{"rules":[9,10],"inclusive":false},"arg_directive":{"rules":[3,4,9,10],"inclusive":false},"type_directive":{"rules":[2,3,9,10],"inclusive":false},"open_directive":{"rules":[1,9,10],"inclusive":false},"struct":{"rules":[9,10,15,28,29,30,44,45,46,47,48],"inclusive":false},"FLOATING_NOTE_ID":{"rules":[37],"inclusive":false},"FLOATING_NOTE":{"rules":[34,35,36],"inclusive":false},"NOTE_TEXT":{"rules":[39,40],"inclusive":false},"NOTE_ID":{"rules":[38],"inclusive":false},"NOTE":{"rules":[31,32,33],"inclusive":false},"SCALE":{"rules":[13,14],"inclusive":false},"ALIAS":{"rules":[],"inclusive":false},"STATE_ID":{"rules":[22],"inclusive":false},"STATE_STRING":{"rules":[23,24],"inclusive":false},"FORK_STATE":{"rules":[],"inclusive":false},"STATE":{"rules":[9,10,16,17,18,19,20,21,25,26,27],"inclusive":false},"ID":{"rules":[9,10],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,8,10,11,12,15,27,30,41,42,43,44,45,46,47,49,50],"inclusive":true}}
67999});
68000return lexer;
68001})();
68002parser.lexer = lexer;
68003function Parser () {
68004 this.yy = {};
68005}
68006Parser.prototype = parser;parser.Parser = Parser;
68007return new Parser;
68008})();
68009
68010
68011if (true) {
68012exports.parser = parser;
68013exports.Parser = parser.Parser;
68014exports.parse = function () { return parser.parse.apply(parser, arguments); };
68015exports.main = function commonjsMain (args) {
68016 if (!args[1]) {
68017 console.log('Usage: '+args[0]+' FILE');
68018 process.exit(1);
68019 }
68020 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");
68021 return exports.parser.parse(source);
68022};
68023if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
68024 exports.main(process.argv.slice(1));
68025}
68026}
68027/* 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)))
68028
68029/***/ }),
68030
68031/***/ "./src/diagrams/state/shapes.js":
68032/*!**************************************!*\
68033 !*** ./src/diagrams/state/shapes.js ***!
68034 \**************************************/
68035/*! exports provided: drawStartState, drawDivider, drawSimpleState, drawDescrState, addTitleAndBox, drawText, drawNote, drawState, drawEdge */
68036/***/ (function(module, __webpack_exports__, __webpack_require__) {
68037
68038"use strict";
68039__webpack_require__.r(__webpack_exports__);
68040/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawStartState", function() { return drawStartState; });
68041/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawDivider", function() { return drawDivider; });
68042/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawSimpleState", function() { return drawSimpleState; });
68043/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawDescrState", function() { return drawDescrState; });
68044/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTitleAndBox", function() { return addTitleAndBox; });
68045/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawText", function() { return drawText; });
68046/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawNote", function() { return drawNote; });
68047/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawState", function() { return drawState; });
68048/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawEdge", function() { return drawEdge; });
68049/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
68050/* harmony import */ var _id_cache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./id-cache.js */ "./src/diagrams/state/id-cache.js");
68051/* harmony import */ var _stateDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stateDb */ "./src/diagrams/state/stateDb.js");
68052/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
68053/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
68054/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config */ "./src/config.js");
68055/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
68056
68057
68058
68059
68060
68061
68062 // let conf;
68063
68064/**
68065 * Draws a start state as a black circle
68066 */
68067
68068var drawStartState = function drawStartState(g) {
68069 return g.append('circle') // .style('stroke', 'black')
68070 // .style('fill', 'black')
68071 .attr('class', 'start-state').attr('r', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit).attr('cx', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit).attr('cy', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit);
68072};
68073/**
68074 * Draws a start state as a black circle
68075 */
68076
68077var drawDivider = function drawDivider(g) {
68078 return g.append('line').style('stroke', 'grey').style('stroke-dasharray', '3').attr('x1', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight).attr('class', 'divider').attr('x2', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight * 2).attr('y1', 0).attr('y2', 0);
68079};
68080/**
68081 * Draws a an end state as a black circle
68082 */
68083
68084var drawSimpleState = function drawSimpleState(g, stateDef) {
68085 var state = g.append('text').attr('x', 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('font-size', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.fontSize).attr('class', 'state-title').text(stateDef.id);
68086 var classBox = state.node().getBBox();
68087 g.insert('rect', ':first-child').attr('x', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('width', classBox.width + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('height', classBox.height + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('rx', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.radius);
68088 return state;
68089};
68090/**
68091 * Draws a state with descriptions
68092 * @param {*} g
68093 * @param {*} stateDef
68094 */
68095
68096var drawDescrState = function drawDescrState(g, stateDef) {
68097 var addTspan = function addTspan(textEl, txt, isFirst) {
68098 var tSpan = textEl.append('tspan').attr('x', 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).text(txt);
68099
68100 if (!isFirst) {
68101 tSpan.attr('dy', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight);
68102 }
68103 };
68104
68105 var title = g.append('text').attr('x', 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight + 1.3 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('font-size', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.fontSize).attr('class', 'state-title').text(stateDef.descriptions[0]);
68106 var titleBox = title.node().getBBox();
68107 var titleHeight = titleBox.height;
68108 var description = g.append('text') // text label for the x axis
68109 .attr('x', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('y', titleHeight + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding * 0.4 + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.dividerMargin + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight).attr('class', 'state-description');
68110 var isFirst = true;
68111 var isSecond = true;
68112 stateDef.descriptions.forEach(function (descr) {
68113 if (!isFirst) {
68114 addTspan(description, descr, isSecond);
68115 isSecond = false;
68116 }
68117
68118 isFirst = false;
68119 });
68120 var descrLine = g.append('line') // text label for the x axis
68121 .attr('x1', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('y1', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding + titleHeight + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.dividerMargin / 2).attr('y2', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding + titleHeight + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.dividerMargin / 2).attr('class', 'descr-divider');
68122 var descrBox = description.node().getBBox();
68123 var width = Math.max(descrBox.width, titleBox.width);
68124 descrLine.attr('x2', width + 3 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding); // const classBox = title.node().getBBox();
68125
68126 g.insert('rect', ':first-child').attr('x', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('width', width + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('height', descrBox.height + titleHeight + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('rx', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.radius);
68127 return g;
68128};
68129/**
68130 * Adds the creates a box around the existing content and adds a
68131 * panel for the id on top of the content.
68132 */
68133
68134/**
68135 * Function that creates an title row and a frame around a substate for a composit state diagram.
68136 * The function returns a new d3 svg object with updated width and height properties;
68137 * @param {*} g The d3 svg object for the substate to framed
68138 * @param {*} stateDef The info about the
68139 */
68140
68141var addTitleAndBox = function addTitleAndBox(g, stateDef, altBkg) {
68142 var pad = Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding;
68143 var dblPad = 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding;
68144 var orgBox = g.node().getBBox();
68145 var orgWidth = orgBox.width;
68146 var orgX = orgBox.x;
68147 var title = g.append('text').attr('x', 0).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.titleShift).attr('font-size', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.fontSize).attr('class', 'state-title').text(stateDef.id);
68148 var titleBox = title.node().getBBox();
68149 var titleWidth = titleBox.width + dblPad;
68150 var width = Math.max(titleWidth, orgWidth); // + dblPad;
68151
68152 if (width === orgWidth) {
68153 width = width + dblPad;
68154 }
68155
68156 var startX; // const lineY = 1 - getConfig().state.textHeight;
68157 // const descrLine = g
68158 // .append('line') // text label for the x axis
68159 // .attr('x1', 0)
68160 // .attr('y1', lineY)
68161 // .attr('y2', lineY)
68162 // .attr('class', 'descr-divider');
68163
68164 var graphBox = g.node().getBBox(); // descrLine.attr('x2', graphBox.width + getConfig().state.padding);
68165
68166 if (stateDef.doc) {// cnsole.warn(
68167 // stateDef.id,
68168 // 'orgX: ',
68169 // orgX,
68170 // 'width: ',
68171 // width,
68172 // 'titleWidth: ',
68173 // titleWidth,
68174 // 'orgWidth: ',
68175 // orgWidth,
68176 // 'width',
68177 // width
68178 // );
68179 }
68180
68181 startX = orgX - pad;
68182
68183 if (titleWidth > orgWidth) {
68184 startX = (orgWidth - width) / 2 + pad;
68185 }
68186
68187 if (Math.abs(orgX - graphBox.x) < pad) {
68188 if (titleWidth > orgWidth) {
68189 startX = orgX - (titleWidth - orgWidth) / 2;
68190 }
68191 }
68192
68193 var lineY = 1 - Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight; // White color
68194
68195 g.insert('rect', ':first-child').attr('x', startX).attr('y', lineY).attr('class', altBkg ? 'alt-composit' : 'composit').attr('width', width).attr('height', graphBox.height + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.titleShift + 1).attr('rx', '0');
68196 title.attr('x', startX + pad);
68197 if (titleWidth <= orgWidth) title.attr('x', orgX + (width - dblPad) / 2 - titleWidth / 2 + pad); // Title background
68198
68199 g.insert('rect', ':first-child').attr('x', startX).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.titleShift - Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight - Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('width', width) // Just needs to be higher then the descr line, will be clipped by the white color box
68200 .attr('height', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight * 3).attr('rx', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.radius); // Full background
68201
68202 g.insert('rect', ':first-child').attr('x', startX).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.titleShift - Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight - Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('width', width).attr('height', graphBox.height + 3 + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight).attr('rx', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.radius);
68203 return g;
68204};
68205
68206var drawEndState = function drawEndState(g) {
68207 g.append('circle') // .style('stroke', 'black')
68208 // .style('fill', 'white')
68209 .attr('class', 'end-state-outer').attr('r', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.miniPadding).attr('cx', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.miniPadding).attr('cy', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.miniPadding);
68210 return g.append('circle') // .style('stroke', 'black')
68211 // .style('fill', 'black')
68212 .attr('class', 'end-state-inner').attr('r', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit).attr('cx', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit + 2).attr('cy', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.sizeUnit + 2);
68213};
68214
68215var drawForkJoinState = function drawForkJoinState(g, stateDef) {
68216 var width = Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.forkWidth;
68217 var height = Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.forkHeight;
68218
68219 if (stateDef.parentId) {
68220 var tmp = width;
68221 width = height;
68222 height = tmp;
68223 }
68224
68225 return g.append('rect').style('stroke', 'black').style('fill', 'black').attr('width', width).attr('height', height).attr('x', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding);
68226};
68227
68228var drawText = function drawText(elem, textData) {
68229 // Remove and ignore br:s
68230 var nText = textData.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_4__["default"].lineBreakRegex, ' ');
68231 var textElem = elem.append('text');
68232 textElem.attr('x', textData.x);
68233 textElem.attr('y', textData.y);
68234 textElem.style('text-anchor', textData.anchor);
68235 textElem.attr('fill', textData.fill);
68236
68237 if (typeof textData.class !== 'undefined') {
68238 textElem.attr('class', textData.class);
68239 }
68240
68241 var span = textElem.append('tspan');
68242 span.attr('x', textData.x + textData.textMargin * 2);
68243 span.attr('fill', textData.fill);
68244 span.text(nText);
68245 return textElem;
68246};
68247
68248var _drawLongText = function _drawLongText(_text, x, y, g) {
68249 var textHeight = 0;
68250 var textElem = g.append('text');
68251 textElem.style('text-anchor', 'start');
68252 textElem.attr('class', 'noteText');
68253
68254 var text = _text.replace(/\r\n/g, '<br/>');
68255
68256 text = text.replace(/\n/g, '<br/>');
68257 var lines = text.split(_common_common__WEBPACK_IMPORTED_MODULE_4__["default"].lineBreakRegex);
68258 var tHeight = 1.25 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin;
68259 var _iteratorNormalCompletion = true;
68260 var _didIteratorError = false;
68261 var _iteratorError = undefined;
68262
68263 try {
68264 for (var _iterator = lines[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
68265 var _line = _step.value;
68266
68267 var txt = _line.trim();
68268
68269 if (txt.length > 0) {
68270 var span = textElem.append('tspan');
68271 span.text(txt);
68272
68273 if (tHeight === 0) {
68274 var textBounds = span.node().getBBox();
68275 tHeight += textBounds.height;
68276 }
68277
68278 textHeight += tHeight;
68279 span.attr('x', x + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin);
68280 span.attr('y', y + textHeight + 1.25 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin);
68281 }
68282 }
68283 } catch (err) {
68284 _didIteratorError = true;
68285 _iteratorError = err;
68286 } finally {
68287 try {
68288 if (!_iteratorNormalCompletion && _iterator.return != null) {
68289 _iterator.return();
68290 }
68291 } finally {
68292 if (_didIteratorError) {
68293 throw _iteratorError;
68294 }
68295 }
68296 }
68297
68298 return {
68299 textWidth: textElem.node().getBBox().width,
68300 textHeight: textHeight
68301 };
68302};
68303/**
68304 * Draws a note to the diagram
68305 * @param text - The text of the given note.
68306 * @param g - The element the note is attached to.
68307 */
68308
68309
68310var drawNote = function drawNote(text, g) {
68311 g.attr('class', 'state-note');
68312 var note = g.append('rect').attr('x', 0).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding);
68313 var rectElem = g.append('g');
68314
68315 var _drawLongText2 = _drawLongText(text, 0, 0, rectElem),
68316 textWidth = _drawLongText2.textWidth,
68317 textHeight = _drawLongText2.textHeight;
68318
68319 note.attr('height', textHeight + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin);
68320 note.attr('width', textWidth + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin * 2);
68321 return note;
68322};
68323/**
68324 * Starting point for drawing a state. The function finds out the specifics
68325 * about the state and renders with approprtiate function.
68326 * @param {*} elem
68327 * @param {*} stateDef
68328 */
68329
68330var drawState = function drawState(elem, stateDef) {
68331 var id = stateDef.id;
68332 var stateInfo = {
68333 id: id,
68334 label: stateDef.id,
68335 width: 0,
68336 height: 0
68337 };
68338 var g = elem.append('g').attr('id', id).attr('class', 'stateGroup');
68339 if (stateDef.type === 'start') drawStartState(g);
68340 if (stateDef.type === 'end') drawEndState(g);
68341 if (stateDef.type === 'fork' || stateDef.type === 'join') drawForkJoinState(g, stateDef);
68342 if (stateDef.type === 'note') drawNote(stateDef.note.text, g);
68343 if (stateDef.type === 'divider') drawDivider(g);
68344 if (stateDef.type === 'default' && stateDef.descriptions.length === 0) drawSimpleState(g, stateDef);
68345 if (stateDef.type === 'default' && stateDef.descriptions.length > 0) drawDescrState(g, stateDef);
68346 var stateBox = g.node().getBBox();
68347 stateInfo.width = stateBox.width + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding;
68348 stateInfo.height = stateBox.height + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding;
68349 _id_cache_js__WEBPACK_IMPORTED_MODULE_1__["default"].set(id, stateInfo); // stateCnt++;
68350
68351 return stateInfo;
68352};
68353var edgeCount = 0;
68354var drawEdge = function drawEdge(elem, path, relation) {
68355 var getRelationType = function getRelationType(type) {
68356 switch (type) {
68357 case _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.AGGREGATION:
68358 return 'aggregation';
68359
68360 case _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.EXTENSION:
68361 return 'extension';
68362
68363 case _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.COMPOSITION:
68364 return 'composition';
68365
68366 case _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.DEPENDENCY:
68367 return 'dependency';
68368 }
68369 };
68370
68371 path.points = path.points.filter(function (p) {
68372 return !Number.isNaN(p.y);
68373 }); // The data for our line
68374
68375 var lineData = path.points; // This is the accessor function we talked about above
68376
68377 var lineFunction = Object(d3__WEBPACK_IMPORTED_MODULE_0__["line"])().x(function (d) {
68378 return d.x;
68379 }).y(function (d) {
68380 return d.y;
68381 }).curve(d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
68382 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'transition');
68383 var url = '';
68384
68385 if (Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.arrowMarkerAbsolute) {
68386 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
68387 url = url.replace(/\(/g, '\\(');
68388 url = url.replace(/\)/g, '\\)');
68389 }
68390
68391 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(_stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.DEPENDENCY) + 'End' + ')');
68392
68393 if (typeof relation.title !== 'undefined') {
68394 var label = elem.append('g').attr('class', 'stateLabel');
68395
68396 var _utils$calcLabelPosit = _utils__WEBPACK_IMPORTED_MODULE_3__["default"].calcLabelPosition(path.points),
68397 x = _utils$calcLabelPosit.x,
68398 y = _utils$calcLabelPosit.y;
68399
68400 var rows = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].getRows(relation.title);
68401 var titleHeight = 0;
68402 var titleRows = [];
68403 var maxWidth = 0;
68404 var minX = 0;
68405
68406 for (var i = 0; i <= rows.length; i++) {
68407 var title = label.append('text').attr('text-anchor', 'middle').text(rows[i]).attr('x', x).attr('y', y + titleHeight);
68408 var boundstmp = title.node().getBBox();
68409 maxWidth = Math.max(maxWidth, boundstmp.width);
68410 minX = Math.min(minX, boundstmp.x);
68411 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info(boundstmp.x, x, y + titleHeight);
68412
68413 if (titleHeight === 0) {
68414 var titleBox = title.node().getBBox();
68415 titleHeight = titleBox.height;
68416 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Title height', titleHeight, y);
68417 }
68418
68419 titleRows.push(title);
68420 }
68421
68422 var boxHeight = titleHeight * rows.length;
68423
68424 if (rows.length > 1) {
68425 var heightAdj = (rows.length - 1) * titleHeight * 0.5;
68426 titleRows.forEach(function (title, i) {
68427 return title.attr('y', y + i * titleHeight - heightAdj);
68428 });
68429 boxHeight = titleHeight * rows.length;
68430 }
68431
68432 var bounds = label.node().getBBox();
68433 label.insert('rect', ':first-child').attr('class', 'box').attr('x', x - maxWidth / 2 - Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding / 2).attr('y', y - boxHeight / 2 - Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding / 2 - 3.5).attr('width', maxWidth + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).attr('height', boxHeight + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding);
68434 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info(bounds); //label.attr('transform', '0 -' + (bounds.y / 2));
68435 // Debug points
68436 // path.points.forEach(point => {
68437 // g.append('circle')
68438 // .style('stroke', 'red')
68439 // .style('fill', 'red')
68440 // .attr('r', 1)
68441 // .attr('cx', point.x)
68442 // .attr('cy', point.y);
68443 // });
68444 // g.append('circle')
68445 // .style('stroke', 'blue')
68446 // .style('fill', 'blue')
68447 // .attr('r', 1)
68448 // .attr('cx', x)
68449 // .attr('cy', y);
68450 }
68451
68452 edgeCount++;
68453};
68454
68455/***/ }),
68456
68457/***/ "./src/diagrams/state/stateDb.js":
68458/*!***************************************!*\
68459 !*** ./src/diagrams/state/stateDb.js ***!
68460 \***************************************/
68461/*! exports provided: parseDirective, addState, clear, getState, getStates, logDocuments, getRelations, addRelation, cleanupLabel, lineType, relationType, default */
68462/***/ (function(module, __webpack_exports__, __webpack_require__) {
68463
68464"use strict";
68465__webpack_require__.r(__webpack_exports__);
68466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
68467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addState", function() { return addState; });
68468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
68469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getState", function() { return getState; });
68470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStates", function() { return getStates; });
68471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logDocuments", function() { return logDocuments; });
68472/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRelations", function() { return getRelations; });
68473/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addRelation", function() { return addRelation; });
68474/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanupLabel", function() { return cleanupLabel; });
68475/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineType", function() { return lineType; });
68476/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "relationType", function() { return relationType; });
68477/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
68478/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
68479/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
68480/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
68481function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
68482
68483
68484
68485
68486
68487
68488var clone = function clone(o) {
68489 return JSON.parse(JSON.stringify(o));
68490};
68491
68492var rootDoc = [];
68493var parseDirective = function parseDirective(statement, context, type) {
68494 _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__["default"].parseDirective(this, statement, context, type);
68495};
68496
68497var setRootDoc = function setRootDoc(o) {
68498 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Setting root doc', o); // rootDoc = { id: 'root', doc: o };
68499
68500 rootDoc = o;
68501};
68502
68503var getRootDoc = function getRootDoc() {
68504 return rootDoc;
68505};
68506
68507var docTranslator = function docTranslator(parent, node, first) {
68508 if (node.stmt === 'relation') {
68509 docTranslator(parent, node.state1, true);
68510 docTranslator(parent, node.state2, false);
68511 } else {
68512 if (node.stmt === 'state') {
68513 if (node.id === '[*]') {
68514 node.id = first ? parent.id + '_start' : parent.id + '_end';
68515 node.start = first;
68516 }
68517 }
68518
68519 if (node.doc) {
68520 var doc = []; // Check for concurrency
68521
68522 var i = 0;
68523 var currentDoc = [];
68524
68525 for (i = 0; i < node.doc.length; i++) {
68526 if (node.doc[i].type === 'divider') {
68527 // debugger;
68528 var newNode = clone(node.doc[i]);
68529 newNode.doc = clone(currentDoc);
68530 doc.push(newNode);
68531 currentDoc = [];
68532 } else {
68533 currentDoc.push(node.doc[i]);
68534 }
68535 } // If any divider was encountered
68536
68537
68538 if (doc.length > 0 && currentDoc.length > 0) {
68539 var _newNode = {
68540 stmt: 'state',
68541 id: Object(_utils__WEBPACK_IMPORTED_MODULE_1__["generateId"])(),
68542 type: 'divider',
68543 doc: clone(currentDoc)
68544 };
68545 doc.push(clone(_newNode));
68546 node.doc = doc;
68547 }
68548
68549 node.doc.forEach(function (docNode) {
68550 return docTranslator(node, docNode, true);
68551 });
68552 }
68553 }
68554};
68555
68556var getRootDocV2 = function getRootDocV2() {
68557 docTranslator({
68558 id: 'root'
68559 }, {
68560 id: 'root',
68561 doc: rootDoc
68562 }, true);
68563 return {
68564 id: 'root',
68565 doc: rootDoc
68566 };
68567};
68568
68569var extract = function extract(_doc) {
68570 // const res = { states: [], relations: [] };
68571 var doc;
68572
68573 if (_doc.doc) {
68574 doc = _doc.doc;
68575 } else {
68576 doc = _doc;
68577 } // let doc = root.doc;
68578 // if (!doc) {
68579 // doc = root;
68580 // }
68581
68582
68583 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info(doc);
68584 clear();
68585 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Extract', doc);
68586 doc.forEach(function (item) {
68587 if (item.stmt === 'state') {
68588 addState(item.id, item.type, item.doc, item.description, item.note);
68589 }
68590
68591 if (item.stmt === 'relation') {
68592 addRelation(item.state1.id, item.state2.id, item.description);
68593 }
68594 });
68595};
68596
68597var newDoc = function newDoc() {
68598 return {
68599 relations: [],
68600 states: {},
68601 documents: {}
68602 };
68603};
68604
68605var documents = {
68606 root: newDoc()
68607};
68608var currentDocument = documents.root;
68609var startCnt = 0;
68610var endCnt = 0; // eslint-disable-line
68611// let stateCnt = 0;
68612
68613/**
68614 * Function called by parser when a node definition has been found.
68615 * @param id
68616 * @param text
68617 * @param type
68618 * @param style
68619 */
68620
68621var addState = function addState(id, type, doc, descr, note) {
68622 if (typeof currentDocument.states[id] === 'undefined') {
68623 currentDocument.states[id] = {
68624 id: id,
68625 descriptions: [],
68626 type: type,
68627 doc: doc,
68628 note: note
68629 };
68630 } else {
68631 if (!currentDocument.states[id].doc) {
68632 currentDocument.states[id].doc = doc;
68633 }
68634
68635 if (!currentDocument.states[id].type) {
68636 currentDocument.states[id].type = type;
68637 }
68638 }
68639
68640 if (descr) {
68641 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Adding state ', id, descr);
68642 if (typeof descr === 'string') addDescription(id, descr.trim());
68643
68644 if (_typeof(descr) === 'object') {
68645 descr.forEach(function (des) {
68646 return addDescription(id, des.trim());
68647 });
68648 }
68649 }
68650
68651 if (note) currentDocument.states[id].note = note;
68652};
68653var clear = function clear() {
68654 documents = {
68655 root: newDoc()
68656 };
68657 currentDocument = documents.root;
68658 currentDocument = documents.root;
68659 startCnt = 0;
68660 endCnt = 0; // eslint-disable-line
68661
68662 classes = [];
68663};
68664var getState = function getState(id) {
68665 return currentDocument.states[id];
68666};
68667var getStates = function getStates() {
68668 return currentDocument.states;
68669};
68670var logDocuments = function logDocuments() {
68671 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Documents = ', documents);
68672};
68673var getRelations = function getRelations() {
68674 return currentDocument.relations;
68675};
68676var addRelation = function addRelation(_id1, _id2, title) {
68677 var id1 = _id1;
68678 var id2 = _id2;
68679 var type1 = 'default';
68680 var type2 = 'default';
68681
68682 if (_id1 === '[*]') {
68683 startCnt++;
68684 id1 = 'start' + startCnt;
68685 type1 = 'start';
68686 }
68687
68688 if (_id2 === '[*]') {
68689 endCnt++;
68690 id2 = 'end' + startCnt;
68691 type2 = 'end';
68692 }
68693
68694 addState(id1, type1);
68695 addState(id2, type2);
68696 currentDocument.relations.push({
68697 id1: id1,
68698 id2: id2,
68699 title: title
68700 });
68701};
68702
68703var addDescription = function addDescription(id, _descr) {
68704 var theState = currentDocument.states[id];
68705 var descr = _descr;
68706
68707 if (descr[0] === ':') {
68708 descr = descr.substr(1).trim();
68709 }
68710
68711 theState.descriptions.push(descr);
68712};
68713
68714var cleanupLabel = function cleanupLabel(label) {
68715 if (label.substring(0, 1) === ':') {
68716 return label.substr(2).trim();
68717 } else {
68718 return label.trim();
68719 }
68720};
68721var lineType = {
68722 LINE: 0,
68723 DOTTED_LINE: 1
68724};
68725var dividerCnt = 0;
68726
68727var getDividerId = function getDividerId() {
68728 dividerCnt++;
68729 return 'divider-id-' + dividerCnt;
68730};
68731
68732var classes = [];
68733
68734var getClasses = function getClasses() {
68735 return classes;
68736};
68737
68738var getDirection = function getDirection() {
68739 return 'TB';
68740};
68741
68742var relationType = {
68743 AGGREGATION: 0,
68744 EXTENSION: 1,
68745 COMPOSITION: 2,
68746 DEPENDENCY: 3
68747};
68748
68749var trimColon = function trimColon(str) {
68750 return str && str[0] === ':' ? str.substr(1).trim() : str.trim();
68751};
68752
68753/* harmony default export */ __webpack_exports__["default"] = ({
68754 parseDirective: parseDirective,
68755 getConfig: function getConfig() {
68756 return _config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]().state;
68757 },
68758 addState: addState,
68759 clear: clear,
68760 getState: getState,
68761 getStates: getStates,
68762 getRelations: getRelations,
68763 getClasses: getClasses,
68764 getDirection: getDirection,
68765 addRelation: addRelation,
68766 getDividerId: getDividerId,
68767 // addDescription,
68768 cleanupLabel: cleanupLabel,
68769 lineType: lineType,
68770 relationType: relationType,
68771 logDocuments: logDocuments,
68772 getRootDoc: getRootDoc,
68773 setRootDoc: setRootDoc,
68774 getRootDocV2: getRootDocV2,
68775 extract: extract,
68776 trimColon: trimColon
68777});
68778
68779/***/ }),
68780
68781/***/ "./src/diagrams/state/stateRenderer-v2.js":
68782/*!************************************************!*\
68783 !*** ./src/diagrams/state/stateRenderer-v2.js ***!
68784 \************************************************/
68785/*! exports provided: setConf, getClasses, draw, default */
68786/***/ (function(module, __webpack_exports__, __webpack_require__) {
68787
68788"use strict";
68789__webpack_require__.r(__webpack_exports__);
68790/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
68791/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
68792/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
68793/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
68794/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
68795/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
68796/* harmony import */ var _stateDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stateDb */ "./src/diagrams/state/stateDb.js");
68797/* harmony import */ var _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/stateDiagram */ "./src/diagrams/state/parser/stateDiagram.jison");
68798/* harmony import */ var _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3__);
68799/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
68800/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
68801/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
68802/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
68803
68804
68805
68806
68807
68808
68809
68810
68811var conf = {};
68812var setConf = function setConf(cnf) {
68813 var keys = Object.keys(cnf);
68814
68815 for (var i = 0; i < keys.length; i++) {
68816 conf[keys[i]] = cnf[keys[i]];
68817 }
68818};
68819var nodeDb = {};
68820/**
68821 * Returns the all the styles from classDef statements in the graph definition.
68822 * @returns {object} classDef styles
68823 */
68824
68825var getClasses = function getClasses(text) {
68826 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].trace('Extracting classes');
68827 _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
68828 var parser = _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
68829 parser.yy = _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
68830
68831 parser.parse(text);
68832 return _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getClasses();
68833};
68834
68835var setupNode = function setupNode(g, parent, node, altFlag) {
68836 // Add the node
68837 if (node.id !== 'root') {
68838 var shape = 'rect';
68839
68840 if (node.start === true) {
68841 shape = 'start';
68842 }
68843
68844 if (node.start === false) {
68845 shape = 'end';
68846 }
68847
68848 if (node.type !== 'default') {
68849 shape = node.type;
68850 }
68851
68852 if (!nodeDb[node.id]) {
68853 nodeDb[node.id] = {
68854 id: node.id,
68855 shape: shape,
68856 description: node.id,
68857 classes: 'statediagram-state'
68858 };
68859 } // Build of the array of description strings accordinging
68860
68861
68862 if (node.description) {
68863 if (Array.isArray(nodeDb[node.id].description)) {
68864 // There already is an array of strings,add to it
68865 nodeDb[node.id].shape = 'rectWithTitle';
68866 nodeDb[node.id].description.push(node.description);
68867 } else {
68868 if (nodeDb[node.id].description.length > 0) {
68869 // if there is a description already transformit to an array
68870 nodeDb[node.id].shape = 'rectWithTitle';
68871
68872 if (nodeDb[node.id].description === node.id) {
68873 // If the previous description was the is, remove it
68874 nodeDb[node.id].description = [node.description];
68875 } else {
68876 nodeDb[node.id].description = [nodeDb[node.id].description, node.description];
68877 }
68878 } else {
68879 nodeDb[node.id].shape = 'rect';
68880 nodeDb[node.id].description = node.description;
68881 }
68882 }
68883 } // Save data for description and group so that for instance a statement without description overwrites
68884 // one with description
68885 // group
68886
68887
68888 if (!nodeDb[node.id].type && node.doc) {
68889 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Setting cluser for ', node.id);
68890 nodeDb[node.id].type = 'group';
68891 nodeDb[node.id].shape = node.type === 'divider' ? 'divider' : 'roundedWithTitle';
68892 nodeDb[node.id].classes = nodeDb[node.id].classes + ' ' + (altFlag ? 'statediagram-cluster statediagram-cluster-alt' : 'statediagram-cluster');
68893 }
68894
68895 var nodeData = {
68896 labelStyle: '',
68897 shape: nodeDb[node.id].shape,
68898 labelText: nodeDb[node.id].description,
68899 classes: nodeDb[node.id].classes,
68900 //classStr,
68901 style: '',
68902 //styles.style,
68903 id: node.id,
68904 domId: 'state-' + node.id + '-' + cnt,
68905 type: nodeDb[node.id].type,
68906 padding: 15 //getConfig().flowchart.padding
68907
68908 };
68909
68910 if (node.note) {
68911 // Todo: set random id
68912 var noteData = {
68913 labelStyle: '',
68914 shape: 'note',
68915 labelText: node.note.text,
68916 classes: 'statediagram-note',
68917 //classStr,
68918 style: '',
68919 //styles.style,
68920 id: node.id + '----note',
68921 domId: 'state-' + node.id + '----note-' + cnt,
68922 type: nodeDb[node.id].type,
68923 padding: 15 //getConfig().flowchart.padding
68924
68925 };
68926 var groupData = {
68927 labelStyle: '',
68928 shape: 'noteGroup',
68929 labelText: node.note.text,
68930 classes: nodeDb[node.id].classes,
68931 //classStr,
68932 style: '',
68933 //styles.style,
68934 id: node.id + '----parent',
68935 domId: 'state-' + node.id + '----parent-' + cnt,
68936 type: 'group',
68937 padding: 0 //getConfig().flowchart.padding
68938
68939 };
68940 cnt++;
68941 g.setNode(node.id + '----parent', groupData);
68942 g.setNode(noteData.id, noteData);
68943 g.setNode(node.id, nodeData);
68944 g.setParent(node.id, node.id + '----parent');
68945 g.setParent(noteData.id, node.id + '----parent');
68946 var from = node.id;
68947 var to = noteData.id;
68948
68949 if (node.note.position === 'left of') {
68950 from = noteData.id;
68951 to = node.id;
68952 }
68953
68954 g.setEdge(from, to, {
68955 arrowhead: 'none',
68956 arrowType: '',
68957 style: 'fill:none',
68958 labelStyle: '',
68959 classes: 'transition note-edge',
68960 arrowheadStyle: 'fill: #333',
68961 labelpos: 'c',
68962 labelType: 'text',
68963 thickness: 'normal'
68964 });
68965 } else {
68966 g.setNode(node.id, nodeData);
68967 }
68968 }
68969
68970 if (parent) {
68971 if (parent.id !== 'root') {
68972 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Setting node ', node.id, ' to be child of its parent ', parent.id);
68973 g.setParent(node.id, parent.id);
68974 }
68975 }
68976
68977 if (node.doc) {
68978 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Adding nodes children ');
68979 setupDoc(g, node, node.doc, !altFlag);
68980 }
68981};
68982
68983var cnt = 0;
68984
68985var setupDoc = function setupDoc(g, parent, doc, altFlag) {
68986 cnt = 0;
68987 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].trace('items', doc);
68988 doc.forEach(function (item) {
68989 if (item.stmt === 'state' || item.stmt === 'default') {
68990 setupNode(g, parent, item, altFlag);
68991 } else if (item.stmt === 'relation') {
68992 setupNode(g, parent, item.state1, altFlag);
68993 setupNode(g, parent, item.state2, altFlag);
68994 var edgeData = {
68995 id: 'edge' + cnt,
68996 arrowhead: 'normal',
68997 arrowTypeEnd: 'arrow_barb',
68998 style: 'fill:none',
68999 labelStyle: '',
69000 label: item.description,
69001 arrowheadStyle: 'fill: #333',
69002 labelpos: 'c',
69003 labelType: 'text',
69004 thickness: 'normal',
69005 classes: 'transition'
69006 };
69007 var startId = item.state1.id;
69008 var endId = item.state2.id;
69009 g.setEdge(startId, endId, edgeData, cnt);
69010 cnt++;
69011 }
69012 });
69013};
69014/**
69015 * Draws a flowchart in the tag with id: id based on the graph definition in text.
69016 * @param text
69017 * @param id
69018 */
69019
69020
69021var draw = function draw(text, id) {
69022 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Drawing state diagram (v2)', id);
69023 _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
69024 nodeDb = {};
69025 var parser = _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
69026 parser.yy = _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
69027
69028 parser.parse(text); // Fetch the default direction, use TD if none was found
69029
69030 var dir = _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
69031
69032 if (typeof dir === 'undefined') {
69033 dir = 'LR';
69034 }
69035
69036 var conf = Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().state;
69037 var nodeSpacing = conf.nodeSpacing || 50;
69038 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
69039
69040 var g = new graphlib__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
69041 multigraph: true,
69042 compound: true
69043 }).setGraph({
69044 rankdir: 'TB',
69045 nodesep: nodeSpacing,
69046 ranksep: rankSpacing,
69047 marginx: 8,
69048 marginy: 8
69049 }).setDefaultEdgeLabel(function () {
69050 return {};
69051 });
69052 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info(_stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRootDocV2());
69053 _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].extract(_stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRootDocV2());
69054 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info(_stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRootDocV2());
69055 setupNode(g, undefined, _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRootDocV2(), true); // Set up an SVG group so that we can translate the final graph.
69056
69057 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(id, "\"]")); // Run the renderer. This is what draws the final graph.
69058
69059 var element = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' g');
69060 Object(_dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__["render"])(element, g, ['barb'], 'statediagram', id);
69061 var padding = 8;
69062 var bounds = svg.node().getBBox();
69063 var width = bounds.width + padding * 2;
69064 var height = bounds.height + padding * 2; // Zoom in a bit
69065
69066 svg.attr('class', 'statediagram');
69067 var svgBounds = svg.node().getBBox();
69068 Object(_utils__WEBPACK_IMPORTED_MODULE_7__["configureSvgSize"])(svg, height, width * 1.75, conf.useMaxWidth); // Ensure the viewBox includes the whole svgBounds area with extra space for padding
69069
69070 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
69071 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].debug("viewBox ".concat(vBox));
69072 svg.attr('viewBox', vBox); // Add label rects for non html labels
69073
69074 if (!conf.htmlLabels) {
69075 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
69076
69077 for (var k = 0; k < labels.length; k++) {
69078 var label = labels[k]; // Get dimensions of label
69079
69080 var dim = label.getBBox();
69081 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
69082 rect.setAttribute('rx', 0);
69083 rect.setAttribute('ry', 0);
69084 rect.setAttribute('width', dim.width);
69085 rect.setAttribute('height', dim.height);
69086 label.insertBefore(rect, label.firstChild);
69087 }
69088 }
69089};
69090/* harmony default export */ __webpack_exports__["default"] = ({
69091 setConf: setConf,
69092 getClasses: getClasses,
69093 draw: draw
69094});
69095
69096/***/ }),
69097
69098/***/ "./src/diagrams/state/stateRenderer.js":
69099/*!*********************************************!*\
69100 !*** ./src/diagrams/state/stateRenderer.js ***!
69101 \*********************************************/
69102/*! exports provided: setConf, draw, default */
69103/***/ (function(module, __webpack_exports__, __webpack_require__) {
69104
69105"use strict";
69106__webpack_require__.r(__webpack_exports__);
69107/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
69108/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
69109/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
69110/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
69111/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
69112/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
69113/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
69114/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
69115/* harmony import */ var _stateDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stateDb */ "./src/diagrams/state/stateDb.js");
69116/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
69117/* harmony import */ var _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parser/stateDiagram */ "./src/diagrams/state/parser/stateDiagram.jison");
69118/* harmony import */ var _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__);
69119/* harmony import */ var _shapes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shapes */ "./src/diagrams/state/shapes.js");
69120/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../config */ "./src/config.js");
69121/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
69122
69123
69124
69125
69126
69127
69128 // import idCache from './id-cache';
69129
69130
69131
69132
69133_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__["parser"].yy = _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"]; // TODO Move conf object to main conf in mermaidAPI
69134
69135var conf;
69136var transformationLog = {};
69137var setConf = function setConf() {}; // Todo optimize
69138
69139/**
69140 * Setup arrow head and define the marker. The result is appended to the svg.
69141 */
69142
69143var insertMarkers = function insertMarkers(elem) {
69144 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 19,7 L9,13 L14,7 L9,1 Z');
69145};
69146/**
69147 * Draws a flowchart in the tag with id: id based on the graph definition in text.
69148 * @param text
69149 * @param id
69150 */
69151
69152
69153var draw = function draw(text, id) {
69154 conf = Object(_config__WEBPACK_IMPORTED_MODULE_8__["getConfig"])().state;
69155 _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__["parser"].yy.clear();
69156 _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__["parser"].parse(text);
69157 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Rendering diagram ' + text); // Fetch the default direction, use TD if none was found
69158
69159 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id='".concat(id, "']"));
69160 insertMarkers(diagram); // Layout graph, Create a new directed graph
69161
69162 var graph = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
69163 multigraph: true,
69164 compound: true,
69165 // acyclicer: 'greedy',
69166 rankdir: 'RL' // ranksep: '20'
69167
69168 }); // Default to assigning a new object as a label for each new edge.
69169
69170 graph.setDefaultEdgeLabel(function () {
69171 return {};
69172 });
69173 var rootDoc = _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRootDoc();
69174 renderDoc(rootDoc, diagram, undefined, false);
69175 var padding = conf.padding;
69176 var bounds = diagram.node().getBBox();
69177 var width = bounds.width + padding * 2;
69178 var height = bounds.height + padding * 2; // zoom in a bit
69179
69180 var svgWidth = width * 1.75;
69181 Object(_utils__WEBPACK_IMPORTED_MODULE_9__["configureSvgSize"])(diagram, height, svgWidth, conf.useMaxWidth);
69182 diagram.attr('viewBox', "".concat(bounds.x - conf.padding, " ").concat(bounds.y - conf.padding, " ") + width + ' ' + height);
69183};
69184
69185var getLabelWidth = function getLabelWidth(text) {
69186 return text ? text.length * conf.fontSizeFactor : 1;
69187};
69188
69189var renderDoc = function renderDoc(doc, diagram, parentId, altBkg) {
69190 // // Layout graph, Create a new directed graph
69191 var graph = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
69192 compound: true,
69193 multigraph: true
69194 });
69195 var i;
69196 var edgeFreeDoc = true;
69197
69198 for (i = 0; i < doc.length; i++) {
69199 if (doc[i].stmt === 'relation') {
69200 edgeFreeDoc = false;
69201 break;
69202 }
69203 } // Set an object for the graph label
69204
69205
69206 if (parentId) graph.setGraph({
69207 rankdir: 'LR',
69208 multigraph: true,
69209 compound: true,
69210 // acyclicer: 'greedy',
69211 ranker: 'tight-tree',
69212 ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
69213 nodeSep: edgeFreeDoc ? 1 : 50,
69214 isMultiGraph: true // ranksep: 5,
69215 // nodesep: 1
69216
69217 });else {
69218 graph.setGraph({
69219 rankdir: 'TB',
69220 multigraph: true,
69221 compound: true,
69222 // isCompound: true,
69223 // acyclicer: 'greedy',
69224 // ranker: 'longest-path'
69225 ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
69226 nodeSep: edgeFreeDoc ? 1 : 50,
69227 ranker: 'tight-tree',
69228 // ranker: 'network-simplex'
69229 isMultiGraph: true
69230 });
69231 } // Default to assigning a new object as a label for each new edge.
69232
69233 graph.setDefaultEdgeLabel(function () {
69234 return {};
69235 });
69236 _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].extract(doc);
69237 var states = _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].getStates();
69238 var relations = _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
69239 var keys = Object.keys(states);
69240 var first = true;
69241
69242 for (var _i = 0; _i < keys.length; _i++) {
69243 var stateDef = states[keys[_i]];
69244
69245 if (parentId) {
69246 stateDef.parentId = parentId;
69247 }
69248
69249 var node = void 0;
69250
69251 if (stateDef.doc) {
69252 var sub = diagram.append('g').attr('id', stateDef.id).attr('class', 'stateGroup');
69253 node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg);
69254
69255 if (first) {
69256 // first = false;
69257 sub = Object(_shapes__WEBPACK_IMPORTED_MODULE_7__["addTitleAndBox"])(sub, stateDef, altBkg);
69258 var boxBounds = sub.node().getBBox();
69259 node.width = boxBounds.width;
69260 node.height = boxBounds.height + conf.padding / 2;
69261 transformationLog[stateDef.id] = {
69262 y: conf.compositTitleSize
69263 };
69264 } else {
69265 // sub = addIdAndBox(sub, stateDef);
69266 var _boxBounds = sub.node().getBBox();
69267
69268 node.width = _boxBounds.width;
69269 node.height = _boxBounds.height; // transformationLog[stateDef.id] = { y: conf.compositTitleSize };
69270 }
69271 } else {
69272 node = Object(_shapes__WEBPACK_IMPORTED_MODULE_7__["drawState"])(diagram, stateDef, graph);
69273 }
69274
69275 if (stateDef.note) {
69276 // Draw note note
69277 var noteDef = {
69278 descriptions: [],
69279 id: stateDef.id + '-note',
69280 note: stateDef.note,
69281 type: 'note'
69282 };
69283 var note = Object(_shapes__WEBPACK_IMPORTED_MODULE_7__["drawState"])(diagram, noteDef, graph); // graph.setNode(node.id, node);
69284
69285 if (stateDef.note.position === 'left of') {
69286 graph.setNode(node.id + '-note', note);
69287 graph.setNode(node.id, node);
69288 } else {
69289 graph.setNode(node.id, node);
69290 graph.setNode(node.id + '-note', note);
69291 } // graph.setNode(node.id);
69292
69293
69294 graph.setParent(node.id, node.id + '-group');
69295 graph.setParent(node.id + '-note', node.id + '-group');
69296 } else {
69297 // Add nodes to the graph. The first argument is the node id. The second is
69298 // metadata about the node. In this case we're going to add labels to each of
69299 // our nodes.
69300 graph.setNode(node.id, node);
69301 }
69302 }
69303
69304 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Count=', graph.nodeCount(), graph);
69305 var cnt = 0;
69306 relations.forEach(function (relation) {
69307 cnt++;
69308 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Setting edge', relation);
69309 graph.setEdge(relation.id1, relation.id2, {
69310 relation: relation,
69311 width: getLabelWidth(relation.title),
69312 height: conf.labelHeight * _common_common__WEBPACK_IMPORTED_MODULE_5__["default"].getRows(relation.title).length,
69313 labelpos: 'c'
69314 }, 'id' + cnt);
69315 });
69316 dagre__WEBPACK_IMPORTED_MODULE_1___default.a.layout(graph);
69317 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Graph after layout', graph.nodes());
69318 var svgElem = diagram.node();
69319 graph.nodes().forEach(function (v) {
69320 if (typeof v !== 'undefined' && typeof graph.node(v) !== 'undefined') {
69321 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].warn('Node ' + v + ': ' + JSON.stringify(graph.node(v)));
69322 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + svgElem.id + ' #' + v).attr('transform', 'translate(' + (graph.node(v).x - graph.node(v).width / 2) + ',' + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + ' )');
69323 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + svgElem.id + ' #' + v).attr('data-x-shift', graph.node(v).x - graph.node(v).width / 2);
69324 var dividers = document.querySelectorAll('#' + svgElem.id + ' #' + v + ' .divider');
69325 dividers.forEach(function (divider) {
69326 var parent = divider.parentElement;
69327 var pWidth = 0;
69328 var pShift = 0;
69329
69330 if (parent) {
69331 if (parent.parentElement) pWidth = parent.parentElement.getBBox().width;
69332 pShift = parseInt(parent.getAttribute('data-x-shift'), 10);
69333
69334 if (Number.isNaN(pShift)) {
69335 pShift = 0;
69336 }
69337 }
69338
69339 divider.setAttribute('x1', 0 - pShift + 8);
69340 divider.setAttribute('x2', pWidth - pShift - 8);
69341 });
69342 } else {
69343 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('No Node ' + v + ': ' + JSON.stringify(graph.node(v)));
69344 }
69345 });
69346 var stateBox = svgElem.getBBox();
69347 graph.edges().forEach(function (e) {
69348 if (typeof e !== 'undefined' && typeof graph.edge(e) !== 'undefined') {
69349 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));
69350 Object(_shapes__WEBPACK_IMPORTED_MODULE_7__["drawEdge"])(diagram, graph.edge(e), graph.edge(e).relation);
69351 }
69352 });
69353 stateBox = svgElem.getBBox();
69354 var stateInfo = {
69355 id: parentId ? parentId : 'root',
69356 label: parentId ? parentId : 'root',
69357 width: 0,
69358 height: 0
69359 };
69360 stateInfo.width = stateBox.width + 2 * conf.padding;
69361 stateInfo.height = stateBox.height + 2 * conf.padding;
69362 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Doc rendered', stateInfo, graph);
69363 return stateInfo;
69364};
69365
69366/* harmony default export */ __webpack_exports__["default"] = ({
69367 setConf: setConf,
69368 draw: draw
69369});
69370
69371/***/ }),
69372
69373/***/ "./src/diagrams/state/styles.js":
69374/*!**************************************!*\
69375 !*** ./src/diagrams/state/styles.js ***!
69376 \**************************************/
69377/*! exports provided: default */
69378/***/ (function(module, __webpack_exports__, __webpack_require__) {
69379
69380"use strict";
69381__webpack_require__.r(__webpack_exports__);
69382var getStyles = function getStyles(options) {
69383 return "g.stateGroup text {\n fill: ".concat(options.nodeBorder, ";\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ").concat(options.textColor, ";\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ").concat(options.labelColor, ";\n}\n\ng.stateGroup rect {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n}\n\ng.stateGroup line {\n stroke: ").concat(options.lineColor, ";\n stroke-width: 1;\n}\n\n.transition {\n stroke: ").concat(options.lineColor, ";\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ").concat(options.background, ";\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ").concat(options.noteBorderColor, ";\n fill: ").concat(options.noteBkgColor, ";\n\n text {\n fill: black;\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ").concat(options.mainBkg, ";\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ").concat(options.tertiaryColor, ";\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ").concat(options.tertiaryTextColor, ";\n}\n.label div .edgeLabel {\n color: ").concat(options.tertiaryTextColor, ";\n}\n\n.stateLabel text {\n fill: ").concat(options.labelColor, ";\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ").concat(options.lineColor, ";\n stroke: black;\n}\n.node circle.state-end {\n fill: ").concat(options.primaryBorderColor, ";\n stroke: ").concat(options.background, ";\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ").concat(options.background, ";\n // stroke: ").concat(options.background, ";\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ").concat(options.lineColor, ";\n}\n\n.statediagram-cluster rect {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ").concat(options.textColor, ";\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ").concat(options.nodeBorder, ";\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ").concat(options.background, ";\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: #e0e0e0;\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ").concat(options.altBackground ? options.altBackground : '#efefef', ";\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ").concat(options.noteBkgColor, ";\n stroke: ").concat(options.noteBorderColor, ";\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ").concat(options.noteBkgColor, ";\n stroke: ").concat(options.noteBorderColor, ";\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ").concat(options.noteTextColor, ";\n}\n\n.statediagram-note .nodeLabel {\n color: ").concat(options.noteTextColor, ";\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ").concat(options.lineColor, ";\n stroke: ").concat(options.lineColor, ";\n stroke-width: 1;\n}\n");
69384};
69385
69386/* harmony default export */ __webpack_exports__["default"] = (getStyles);
69387
69388/***/ }),
69389
69390/***/ "./src/diagrams/user-journey/journeyDb.js":
69391/*!************************************************!*\
69392 !*** ./src/diagrams/user-journey/journeyDb.js ***!
69393 \************************************************/
69394/*! exports provided: parseDirective, clear, setTitle, getTitle, addSection, getSections, getTasks, addTask, addTaskOrg, default */
69395/***/ (function(module, __webpack_exports__, __webpack_require__) {
69396
69397"use strict";
69398__webpack_require__.r(__webpack_exports__);
69399/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
69400/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
69401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
69402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
69403/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSection", function() { return addSection; });
69404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSections", function() { return getSections; });
69405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTasks", function() { return getTasks; });
69406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTask", function() { return addTask; });
69407/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTaskOrg", function() { return addTaskOrg; });
69408/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
69409/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
69410function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
69411
69412function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
69413
69414function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
69415
69416function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
69417
69418
69419
69420var title = '';
69421var currentSection = '';
69422var sections = [];
69423var tasks = [];
69424var rawTasks = [];
69425var parseDirective = function parseDirective(statement, context, type) {
69426 _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__["default"].parseDirective(this, statement, context, type);
69427};
69428var clear = function clear() {
69429 sections.length = 0;
69430 tasks.length = 0;
69431 currentSection = '';
69432 title = '';
69433 rawTasks.length = 0;
69434};
69435var setTitle = function setTitle(txt) {
69436 title = txt;
69437};
69438var getTitle = function getTitle() {
69439 return title;
69440};
69441var addSection = function addSection(txt) {
69442 currentSection = txt;
69443 sections.push(txt);
69444};
69445var getSections = function getSections() {
69446 return sections;
69447};
69448var getTasks = function getTasks() {
69449 var allItemsProcessed = compileTasks();
69450 var maxDepth = 100;
69451 var iterationCount = 0;
69452
69453 while (!allItemsProcessed && iterationCount < maxDepth) {
69454 allItemsProcessed = compileTasks();
69455 iterationCount++;
69456 }
69457
69458 tasks.push.apply(tasks, rawTasks);
69459 return tasks;
69460};
69461
69462var updateActors = function updateActors() {
69463 var tempActors = [];
69464 tasks.forEach(function (task) {
69465 if (task.people) {
69466 tempActors.push.apply(tempActors, _toConsumableArray(task.people));
69467 }
69468 });
69469 var unique = new Set(tempActors);
69470 return _toConsumableArray(unique).sort();
69471};
69472
69473var addTask = function addTask(descr, taskData) {
69474 var pieces = taskData.substr(1).split(':');
69475 var score = 0;
69476 var peeps = [];
69477
69478 if (pieces.length === 1) {
69479 score = Number(pieces[0]);
69480 peeps = [];
69481 } else {
69482 score = Number(pieces[0]);
69483 peeps = pieces[1].split(',');
69484 }
69485
69486 var peopleList = peeps.map(function (s) {
69487 return s.trim();
69488 });
69489 var rawTask = {
69490 section: currentSection,
69491 type: currentSection,
69492 people: peopleList,
69493 task: descr,
69494 score: score
69495 };
69496 rawTasks.push(rawTask);
69497};
69498var addTaskOrg = function addTaskOrg(descr) {
69499 var newTask = {
69500 section: currentSection,
69501 type: currentSection,
69502 description: descr,
69503 task: descr,
69504 classes: []
69505 };
69506 tasks.push(newTask);
69507};
69508
69509var compileTasks = function compileTasks() {
69510 var compileTask = function compileTask(pos) {
69511 return rawTasks[pos].processed;
69512 };
69513
69514 var allProcessed = true;
69515
69516 for (var i = 0; i < rawTasks.length; i++) {
69517 compileTask(i);
69518 allProcessed = allProcessed && rawTasks[i].processed;
69519 }
69520
69521 return allProcessed;
69522};
69523
69524var getActors = function getActors() {
69525 return updateActors();
69526};
69527
69528/* harmony default export */ __webpack_exports__["default"] = ({
69529 parseDirective: parseDirective,
69530 getConfig: function getConfig() {
69531 return _config__WEBPACK_IMPORTED_MODULE_1__["getConfig"]().journey;
69532 },
69533 clear: clear,
69534 setTitle: setTitle,
69535 getTitle: getTitle,
69536 addSection: addSection,
69537 getSections: getSections,
69538 getTasks: getTasks,
69539 addTask: addTask,
69540 addTaskOrg: addTaskOrg,
69541 getActors: getActors
69542});
69543
69544/***/ }),
69545
69546/***/ "./src/diagrams/user-journey/journeyRenderer.js":
69547/*!******************************************************!*\
69548 !*** ./src/diagrams/user-journey/journeyRenderer.js ***!
69549 \******************************************************/
69550/*! exports provided: setConf, draw, bounds, drawTasks, default */
69551/***/ (function(module, __webpack_exports__, __webpack_require__) {
69552
69553"use strict";
69554__webpack_require__.r(__webpack_exports__);
69555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
69556/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
69557/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounds", function() { return bounds; });
69558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawTasks", function() { return drawTasks; });
69559/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
69560/* harmony import */ var _parser_journey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser/journey */ "./src/diagrams/user-journey/parser/journey.jison");
69561/* harmony import */ var _parser_journey__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_parser_journey__WEBPACK_IMPORTED_MODULE_1__);
69562/* harmony import */ var _journeyDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./journeyDb */ "./src/diagrams/user-journey/journeyDb.js");
69563/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/user-journey/svgDraw.js");
69564/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
69565
69566
69567
69568
69569
69570_parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy = _journeyDb__WEBPACK_IMPORTED_MODULE_2__["default"];
69571var conf = {
69572 leftMargin: 150,
69573 diagramMarginX: 50,
69574 diagramMarginY: 20,
69575 // Margin between tasks
69576 taskMargin: 50,
69577 // Width of task boxes
69578 width: 150,
69579 // Height of task boxes
69580 height: 50,
69581 taskFontSize: 14,
69582 taskFontFamily: '"Open-Sans", "sans-serif"',
69583 // Margin around loop boxes
69584 boxMargin: 10,
69585 boxTextMargin: 5,
69586 noteMargin: 10,
69587 // Space between messages
69588 messageMargin: 35,
69589 // Multiline message alignment
69590 messageAlign: 'center',
69591 // Depending on css styling this might need adjustment
69592 // Projects the edge of the diagram downwards
69593 bottomMarginAdj: 1,
69594 // width of activation box
69595 activationWidth: 10,
69596 // text placement as: tspan | fo | old only text as before
69597 textPlacement: 'fo',
69598 actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],
69599 sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],
69600 sectionColours: ['#fff']
69601};
69602var setConf = function setConf(cnf) {
69603 var keys = Object.keys(cnf);
69604 keys.forEach(function (key) {
69605 conf[key] = cnf[key];
69606 });
69607};
69608var actors = {};
69609
69610function drawActorLegend(diagram) {
69611 // Draw the actors
69612 var yPos = 60;
69613 Object.keys(actors).forEach(function (person) {
69614 var colour = actors[person];
69615 var circleData = {
69616 cx: 20,
69617 cy: yPos,
69618 r: 7,
69619 fill: colour,
69620 stroke: '#000'
69621 };
69622 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].drawCircle(diagram, circleData);
69623 var labelData = {
69624 x: 40,
69625 y: yPos + 7,
69626 fill: '#666',
69627 text: person,
69628 textMargin: conf.boxTextMargin | 5
69629 };
69630 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].drawText(diagram, labelData);
69631 yPos += 20;
69632 });
69633}
69634
69635var LEFT_MARGIN = conf.leftMargin;
69636var draw = function draw(text, id) {
69637 _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.clear();
69638 _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].parse(text + '\n');
69639 bounds.init();
69640 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id);
69641 diagram.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');
69642 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].initGraphics(diagram);
69643 var tasks = _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTasks();
69644 var title = _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTitle();
69645 var actorNames = _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getActors();
69646
69647 for (var member in actors) {
69648 delete actors[member];
69649 }
69650
69651 var actorPos = 0;
69652 actorNames.forEach(function (actorName) {
69653 actors[actorName] = conf.actorColours[actorPos % conf.actorColours.length];
69654 actorPos++;
69655 });
69656 drawActorLegend(diagram);
69657 bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
69658 drawTasks(diagram, tasks, 0);
69659 var box = bounds.getBounds();
69660
69661 if (title) {
69662 diagram.append('text').text(title).attr('x', LEFT_MARGIN).attr('font-size', '4ex').attr('font-weight', 'bold').attr('y', 25);
69663 }
69664
69665 var height = box.stopy - box.starty + 2 * conf.diagramMarginY;
69666 var width = LEFT_MARGIN + box.stopx + 2 * conf.diagramMarginX;
69667 Object(_utils__WEBPACK_IMPORTED_MODULE_4__["configureSvgSize"])(diagram, height, width, conf.useMaxWidth); // Draw activity line
69668
69669 diagram.append('line').attr('x1', LEFT_MARGIN).attr('y1', conf.height * 4) // One section head + one task + margins
69670 .attr('x2', width - LEFT_MARGIN - 4) // Subtract stroke width so arrow point is retained
69671 .attr('y2', conf.height * 4).attr('stroke-width', 4).attr('stroke', 'black').attr('marker-end', 'url(#arrowhead)');
69672 var extraVertForTitle = title ? 70 : 0;
69673 diagram.attr('viewBox', "".concat(box.startx, " -25 ").concat(width, " ").concat(height + extraVertForTitle));
69674 diagram.attr('preserveAspectRatio', 'xMinYMin meet');
69675};
69676var bounds = {
69677 data: {
69678 startx: undefined,
69679 stopx: undefined,
69680 starty: undefined,
69681 stopy: undefined
69682 },
69683 verticalPos: 0,
69684 sequenceItems: [],
69685 init: function init() {
69686 this.sequenceItems = [];
69687 this.data = {
69688 startx: undefined,
69689 stopx: undefined,
69690 starty: undefined,
69691 stopy: undefined
69692 };
69693 this.verticalPos = 0;
69694 },
69695 updateVal: function updateVal(obj, key, val, fun) {
69696 if (typeof obj[key] === 'undefined') {
69697 obj[key] = val;
69698 } else {
69699 obj[key] = fun(val, obj[key]);
69700 }
69701 },
69702 updateBounds: function updateBounds(startx, starty, stopx, stopy) {
69703 var _self = this;
69704
69705 var cnt = 0;
69706
69707 function updateFn(type) {
69708 return function updateItemBounds(item) {
69709 cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
69710
69711 var n = _self.sequenceItems.length - cnt + 1;
69712
69713 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
69714
69715 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
69716
69717 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
69718
69719 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
69720
69721 if (!(type === 'activation')) {
69722 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
69723
69724 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
69725
69726 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
69727
69728 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
69729 }
69730 };
69731 }
69732
69733 this.sequenceItems.forEach(updateFn());
69734 },
69735 insert: function insert(startx, starty, stopx, stopy) {
69736 var _startx = Math.min(startx, stopx);
69737
69738 var _stopx = Math.max(startx, stopx);
69739
69740 var _starty = Math.min(starty, stopy);
69741
69742 var _stopy = Math.max(starty, stopy);
69743
69744 this.updateVal(bounds.data, 'startx', _startx, Math.min);
69745 this.updateVal(bounds.data, 'starty', _starty, Math.min);
69746 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
69747 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
69748 this.updateBounds(_startx, _starty, _stopx, _stopy);
69749 },
69750 bumpVerticalPos: function bumpVerticalPos(bump) {
69751 this.verticalPos = this.verticalPos + bump;
69752 this.data.stopy = this.verticalPos;
69753 },
69754 getVerticalPos: function getVerticalPos() {
69755 return this.verticalPos;
69756 },
69757 getBounds: function getBounds() {
69758 return this.data;
69759 }
69760};
69761var fills = conf.sectionFills;
69762var textColours = conf.sectionColours;
69763var drawTasks = function drawTasks(diagram, tasks, verticalPos) {
69764 var lastSection = '';
69765 var sectionVHeight = conf.height * 2 + conf.diagramMarginY;
69766 var taskPos = verticalPos + sectionVHeight;
69767 var sectionNumber = 0;
69768 var fill = '#CCC';
69769 var colour = 'black';
69770 var num = 0; // Draw the tasks
69771
69772 for (var i = 0; i < tasks.length; i++) {
69773 var task = tasks[i];
69774
69775 if (lastSection !== task.section) {
69776 fill = fills[sectionNumber % fills.length];
69777 num = sectionNumber % fills.length;
69778 colour = textColours[sectionNumber % textColours.length];
69779 var section = {
69780 x: i * conf.taskMargin + i * conf.width + LEFT_MARGIN,
69781 y: 50,
69782 text: task.section,
69783 fill: fill,
69784 num: num,
69785 colour: colour
69786 };
69787 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].drawSection(diagram, section, conf);
69788 lastSection = task.section;
69789 sectionNumber++;
69790 } // Collect the actors involved in the task
69791
69792
69793 var taskActors = task.people.reduce(function (acc, actorName) {
69794 if (actors[actorName]) {
69795 acc[actorName] = actors[actorName];
69796 }
69797
69798 return acc;
69799 }, {}); // Add some rendering data to the object
69800
69801 task.x = i * conf.taskMargin + i * conf.width + LEFT_MARGIN;
69802 task.y = taskPos;
69803 task.width = conf.diagramMarginX;
69804 task.height = conf.diagramMarginY;
69805 task.colour = colour;
69806 task.fill = fill;
69807 task.num = num;
69808 task.actors = taskActors; // Draw the box with the attached line
69809
69810 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].drawTask(diagram, task, conf);
69811 bounds.insert(task.x, task.y, task.x + task.width + conf.taskMargin, 300 + 5 * 30); // stopy is the length of the descenders.
69812 }
69813};
69814/* harmony default export */ __webpack_exports__["default"] = ({
69815 setConf: setConf,
69816 draw: draw
69817});
69818
69819/***/ }),
69820
69821/***/ "./src/diagrams/user-journey/parser/journey.jison":
69822/*!********************************************************!*\
69823 !*** ./src/diagrams/user-journey/parser/journey.jison ***!
69824 \********************************************************/
69825/*! no static exports found */
69826/***/ (function(module, exports, __webpack_require__) {
69827
69828/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
69829/*
69830 Returns a Parser object of the following structure:
69831
69832 Parser: {
69833 yy: {}
69834 }
69835
69836 Parser.prototype: {
69837 yy: {},
69838 trace: function(),
69839 symbols_: {associative list: name ==> number},
69840 terminals_: {associative list: number ==> name},
69841 productions_: [...],
69842 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
69843 table: [...],
69844 defaultActions: {...},
69845 parseError: function(str, hash),
69846 parse: function(input),
69847
69848 lexer: {
69849 EOF: 1,
69850 parseError: function(str, hash),
69851 setInput: function(input),
69852 input: function(),
69853 unput: function(str),
69854 more: function(),
69855 less: function(n),
69856 pastInput: function(),
69857 upcomingInput: function(),
69858 showPosition: function(),
69859 test_match: function(regex_match_array, rule_index),
69860 next: function(),
69861 lex: function(),
69862 begin: function(condition),
69863 popState: function(),
69864 _currentRules: function(),
69865 topState: function(),
69866 pushState: function(condition),
69867
69868 options: {
69869 ranges: boolean (optional: true ==> token location info will include a .range[] member)
69870 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
69871 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)
69872 },
69873
69874 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
69875 rules: [...],
69876 conditions: {associative list: name ==> set},
69877 }
69878 }
69879
69880
69881 token location info (@$, _$, etc.): {
69882 first_line: n,
69883 last_line: n,
69884 first_column: n,
69885 last_column: n,
69886 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
69887 }
69888
69889
69890 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
69891 text: (matched text)
69892 token: (the produced terminal token, if any)
69893 line: (yylineno)
69894 }
69895 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
69896 loc: (yylloc)
69897 expected: (string describing the set of expected tokens)
69898 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
69899 }
69900*/
69901var parser = (function(){
69902var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,17,18,19,21],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,21],$V7=[4,6,9,11,17,18,19,21];
69903var parser = {trace: function trace () { },
69904yy: {},
69905symbols_: {"error":2,"start":3,"journey":4,"document":5,"EOF":6,"directive":7,"line":8,"SPACE":9,"statement":10,"NEWLINE":11,"openDirective":12,"typeDirective":13,"closeDirective":14,":":15,"argDirective":16,"title":17,"section":18,"taskName":19,"taskData":20,"open_directive":21,"type_directive":22,"arg_directive":23,"close_directive":24,"$accept":0,"$end":1},
69906terminals_: {2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"section",19:"taskName",20:"taskData",21:"open_directive",22:"type_directive",23:"arg_directive",24:"close_directive"},
69907productions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],
69908performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
69909/* this == yyval */
69910
69911var $0 = $$.length - 1;
69912switch (yystate) {
69913case 1:
69914 return $$[$0-1];
69915break;
69916case 3:
69917 this.$ = []
69918break;
69919case 4:
69920$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
69921break;
69922case 5: case 6:
69923 this.$ = $$[$0]
69924break;
69925case 7: case 8:
69926 this.$=[];
69927break;
69928case 11:
69929yy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);
69930break;
69931case 12:
69932yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
69933break;
69934case 13:
69935yy.addTask($$[$0-1], $$[$0]);this.$='task';
69936break;
69937case 15:
69938 yy.parseDirective('%%{', 'open_directive');
69939break;
69940case 16:
69941 yy.parseDirective($$[$0], 'type_directive');
69942break;
69943case 17:
69944 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
69945break;
69946case 18:
69947 yy.parseDirective('}%%', 'close_directive', 'journey');
69948break;
69949}
69950},
69951table: [{3:1,4:$V0,7:3,12:4,21:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,21:$V1},{13:8,22:[1,9]},{22:[2,15]},{6:[1,10],7:18,8:11,9:[1,12],10:13,11:[1,14],12:4,17:$V3,18:$V4,19:$V5,21:$V1},{1:[2,2]},{14:19,15:[1,20],24:$V6},o([15,24],[2,16]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:18,10:22,12:4,17:$V3,18:$V4,19:$V5,21:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,12]),{20:[1,23]},o($V2,[2,14]),{11:[1,24]},{16:25,23:[1,26]},{11:[2,18]},o($V2,[2,5]),o($V2,[2,13]),o($V7,[2,9]),{14:27,24:$V6},{24:[2,17]},{11:[1,28]},o($V7,[2,10])],
69952defaultActions: {5:[2,15],7:[2,2],21:[2,18],26:[2,17]},
69953parseError: function parseError (str, hash) {
69954 if (hash.recoverable) {
69955 this.trace(str);
69956 } else {
69957 var error = new Error(str);
69958 error.hash = hash;
69959 throw error;
69960 }
69961},
69962parse: function parse(input) {
69963 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
69964 var args = lstack.slice.call(arguments, 1);
69965 var lexer = Object.create(this.lexer);
69966 var sharedState = { yy: {} };
69967 for (var k in this.yy) {
69968 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
69969 sharedState.yy[k] = this.yy[k];
69970 }
69971 }
69972 lexer.setInput(input, sharedState.yy);
69973 sharedState.yy.lexer = lexer;
69974 sharedState.yy.parser = this;
69975 if (typeof lexer.yylloc == 'undefined') {
69976 lexer.yylloc = {};
69977 }
69978 var yyloc = lexer.yylloc;
69979 lstack.push(yyloc);
69980 var ranges = lexer.options && lexer.options.ranges;
69981 if (typeof sharedState.yy.parseError === 'function') {
69982 this.parseError = sharedState.yy.parseError;
69983 } else {
69984 this.parseError = Object.getPrototypeOf(this).parseError;
69985 }
69986 function popStack(n) {
69987 stack.length = stack.length - 2 * n;
69988 vstack.length = vstack.length - n;
69989 lstack.length = lstack.length - n;
69990 }
69991 function lex() {
69992 var token;
69993 token = tstack.pop() || lexer.lex() || EOF;
69994 if (typeof token !== 'number') {
69995 if (token instanceof Array) {
69996 tstack = token;
69997 token = tstack.pop();
69998 }
69999 token = self.symbols_[token] || token;
70000 }
70001 return token;
70002 }
70003 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
70004 while (true) {
70005 state = stack[stack.length - 1];
70006 if (this.defaultActions[state]) {
70007 action = this.defaultActions[state];
70008 } else {
70009 if (symbol === null || typeof symbol == 'undefined') {
70010 symbol = lex();
70011 }
70012 action = table[state] && table[state][symbol];
70013 }
70014 if (typeof action === 'undefined' || !action.length || !action[0]) {
70015 var errStr = '';
70016 expected = [];
70017 for (p in table[state]) {
70018 if (this.terminals_[p] && p > TERROR) {
70019 expected.push('\'' + this.terminals_[p] + '\'');
70020 }
70021 }
70022 if (lexer.showPosition) {
70023 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
70024 } else {
70025 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
70026 }
70027 this.parseError(errStr, {
70028 text: lexer.match,
70029 token: this.terminals_[symbol] || symbol,
70030 line: lexer.yylineno,
70031 loc: yyloc,
70032 expected: expected
70033 });
70034 }
70035 if (action[0] instanceof Array && action.length > 1) {
70036 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
70037 }
70038 switch (action[0]) {
70039 case 1:
70040 stack.push(symbol);
70041 vstack.push(lexer.yytext);
70042 lstack.push(lexer.yylloc);
70043 stack.push(action[1]);
70044 symbol = null;
70045 if (!preErrorSymbol) {
70046 yyleng = lexer.yyleng;
70047 yytext = lexer.yytext;
70048 yylineno = lexer.yylineno;
70049 yyloc = lexer.yylloc;
70050 if (recovering > 0) {
70051 recovering--;
70052 }
70053 } else {
70054 symbol = preErrorSymbol;
70055 preErrorSymbol = null;
70056 }
70057 break;
70058 case 2:
70059 len = this.productions_[action[1]][1];
70060 yyval.$ = vstack[vstack.length - len];
70061 yyval._$ = {
70062 first_line: lstack[lstack.length - (len || 1)].first_line,
70063 last_line: lstack[lstack.length - 1].last_line,
70064 first_column: lstack[lstack.length - (len || 1)].first_column,
70065 last_column: lstack[lstack.length - 1].last_column
70066 };
70067 if (ranges) {
70068 yyval._$.range = [
70069 lstack[lstack.length - (len || 1)].range[0],
70070 lstack[lstack.length - 1].range[1]
70071 ];
70072 }
70073 r = this.performAction.apply(yyval, [
70074 yytext,
70075 yyleng,
70076 yylineno,
70077 sharedState.yy,
70078 action[1],
70079 vstack,
70080 lstack
70081 ].concat(args));
70082 if (typeof r !== 'undefined') {
70083 return r;
70084 }
70085 if (len) {
70086 stack = stack.slice(0, -1 * len * 2);
70087 vstack = vstack.slice(0, -1 * len);
70088 lstack = lstack.slice(0, -1 * len);
70089 }
70090 stack.push(this.productions_[action[1]][0]);
70091 vstack.push(yyval.$);
70092 lstack.push(yyval._$);
70093 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
70094 stack.push(newState);
70095 break;
70096 case 3:
70097 return true;
70098 }
70099 }
70100 return true;
70101}};
70102
70103/* generated by jison-lex 0.3.4 */
70104var lexer = (function(){
70105var lexer = ({
70106
70107EOF:1,
70108
70109parseError:function parseError(str, hash) {
70110 if (this.yy.parser) {
70111 this.yy.parser.parseError(str, hash);
70112 } else {
70113 throw new Error(str);
70114 }
70115 },
70116
70117// resets the lexer, sets new input
70118setInput:function (input, yy) {
70119 this.yy = yy || this.yy || {};
70120 this._input = input;
70121 this._more = this._backtrack = this.done = false;
70122 this.yylineno = this.yyleng = 0;
70123 this.yytext = this.matched = this.match = '';
70124 this.conditionStack = ['INITIAL'];
70125 this.yylloc = {
70126 first_line: 1,
70127 first_column: 0,
70128 last_line: 1,
70129 last_column: 0
70130 };
70131 if (this.options.ranges) {
70132 this.yylloc.range = [0,0];
70133 }
70134 this.offset = 0;
70135 return this;
70136 },
70137
70138// consumes and returns one char from the input
70139input:function () {
70140 var ch = this._input[0];
70141 this.yytext += ch;
70142 this.yyleng++;
70143 this.offset++;
70144 this.match += ch;
70145 this.matched += ch;
70146 var lines = ch.match(/(?:\r\n?|\n).*/g);
70147 if (lines) {
70148 this.yylineno++;
70149 this.yylloc.last_line++;
70150 } else {
70151 this.yylloc.last_column++;
70152 }
70153 if (this.options.ranges) {
70154 this.yylloc.range[1]++;
70155 }
70156
70157 this._input = this._input.slice(1);
70158 return ch;
70159 },
70160
70161// unshifts one char (or a string) into the input
70162unput:function (ch) {
70163 var len = ch.length;
70164 var lines = ch.split(/(?:\r\n?|\n)/g);
70165
70166 this._input = ch + this._input;
70167 this.yytext = this.yytext.substr(0, this.yytext.length - len);
70168 //this.yyleng -= len;
70169 this.offset -= len;
70170 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
70171 this.match = this.match.substr(0, this.match.length - 1);
70172 this.matched = this.matched.substr(0, this.matched.length - 1);
70173
70174 if (lines.length - 1) {
70175 this.yylineno -= lines.length - 1;
70176 }
70177 var r = this.yylloc.range;
70178
70179 this.yylloc = {
70180 first_line: this.yylloc.first_line,
70181 last_line: this.yylineno + 1,
70182 first_column: this.yylloc.first_column,
70183 last_column: lines ?
70184 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
70185 + oldLines[oldLines.length - lines.length].length - lines[0].length :
70186 this.yylloc.first_column - len
70187 };
70188
70189 if (this.options.ranges) {
70190 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
70191 }
70192 this.yyleng = this.yytext.length;
70193 return this;
70194 },
70195
70196// When called from action, caches matched text and appends it on next action
70197more:function () {
70198 this._more = true;
70199 return this;
70200 },
70201
70202// 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.
70203reject:function () {
70204 if (this.options.backtrack_lexer) {
70205 this._backtrack = true;
70206 } else {
70207 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(), {
70208 text: "",
70209 token: null,
70210 line: this.yylineno
70211 });
70212
70213 }
70214 return this;
70215 },
70216
70217// retain first n characters of the match
70218less:function (n) {
70219 this.unput(this.match.slice(n));
70220 },
70221
70222// displays already matched input, i.e. for error messages
70223pastInput:function () {
70224 var past = this.matched.substr(0, this.matched.length - this.match.length);
70225 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
70226 },
70227
70228// displays upcoming input, i.e. for error messages
70229upcomingInput:function () {
70230 var next = this.match;
70231 if (next.length < 20) {
70232 next += this._input.substr(0, 20-next.length);
70233 }
70234 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
70235 },
70236
70237// displays the character position where the lexing error occurred, i.e. for error messages
70238showPosition:function () {
70239 var pre = this.pastInput();
70240 var c = new Array(pre.length + 1).join("-");
70241 return pre + this.upcomingInput() + "\n" + c + "^";
70242 },
70243
70244// test the lexed token: return FALSE when not a match, otherwise return token
70245test_match:function(match, indexed_rule) {
70246 var token,
70247 lines,
70248 backup;
70249
70250 if (this.options.backtrack_lexer) {
70251 // save context
70252 backup = {
70253 yylineno: this.yylineno,
70254 yylloc: {
70255 first_line: this.yylloc.first_line,
70256 last_line: this.last_line,
70257 first_column: this.yylloc.first_column,
70258 last_column: this.yylloc.last_column
70259 },
70260 yytext: this.yytext,
70261 match: this.match,
70262 matches: this.matches,
70263 matched: this.matched,
70264 yyleng: this.yyleng,
70265 offset: this.offset,
70266 _more: this._more,
70267 _input: this._input,
70268 yy: this.yy,
70269 conditionStack: this.conditionStack.slice(0),
70270 done: this.done
70271 };
70272 if (this.options.ranges) {
70273 backup.yylloc.range = this.yylloc.range.slice(0);
70274 }
70275 }
70276
70277 lines = match[0].match(/(?:\r\n?|\n).*/g);
70278 if (lines) {
70279 this.yylineno += lines.length;
70280 }
70281 this.yylloc = {
70282 first_line: this.yylloc.last_line,
70283 last_line: this.yylineno + 1,
70284 first_column: this.yylloc.last_column,
70285 last_column: lines ?
70286 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
70287 this.yylloc.last_column + match[0].length
70288 };
70289 this.yytext += match[0];
70290 this.match += match[0];
70291 this.matches = match;
70292 this.yyleng = this.yytext.length;
70293 if (this.options.ranges) {
70294 this.yylloc.range = [this.offset, this.offset += this.yyleng];
70295 }
70296 this._more = false;
70297 this._backtrack = false;
70298 this._input = this._input.slice(match[0].length);
70299 this.matched += match[0];
70300 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
70301 if (this.done && this._input) {
70302 this.done = false;
70303 }
70304 if (token) {
70305 return token;
70306 } else if (this._backtrack) {
70307 // recover context
70308 for (var k in backup) {
70309 this[k] = backup[k];
70310 }
70311 return false; // rule action called reject() implying the next rule should be tested instead.
70312 }
70313 return false;
70314 },
70315
70316// return next match in input
70317next:function () {
70318 if (this.done) {
70319 return this.EOF;
70320 }
70321 if (!this._input) {
70322 this.done = true;
70323 }
70324
70325 var token,
70326 match,
70327 tempMatch,
70328 index;
70329 if (!this._more) {
70330 this.yytext = '';
70331 this.match = '';
70332 }
70333 var rules = this._currentRules();
70334 for (var i = 0; i < rules.length; i++) {
70335 tempMatch = this._input.match(this.rules[rules[i]]);
70336 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
70337 match = tempMatch;
70338 index = i;
70339 if (this.options.backtrack_lexer) {
70340 token = this.test_match(tempMatch, rules[i]);
70341 if (token !== false) {
70342 return token;
70343 } else if (this._backtrack) {
70344 match = false;
70345 continue; // rule action called reject() implying a rule MISmatch.
70346 } else {
70347 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
70348 return false;
70349 }
70350 } else if (!this.options.flex) {
70351 break;
70352 }
70353 }
70354 }
70355 if (match) {
70356 token = this.test_match(match, rules[index]);
70357 if (token !== false) {
70358 return token;
70359 }
70360 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
70361 return false;
70362 }
70363 if (this._input === "") {
70364 return this.EOF;
70365 } else {
70366 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
70367 text: "",
70368 token: null,
70369 line: this.yylineno
70370 });
70371 }
70372 },
70373
70374// return next match that has a token
70375lex:function lex () {
70376 var r = this.next();
70377 if (r) {
70378 return r;
70379 } else {
70380 return this.lex();
70381 }
70382 },
70383
70384// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
70385begin:function begin (condition) {
70386 this.conditionStack.push(condition);
70387 },
70388
70389// pop the previously active lexer condition state off the condition stack
70390popState:function popState () {
70391 var n = this.conditionStack.length - 1;
70392 if (n > 0) {
70393 return this.conditionStack.pop();
70394 } else {
70395 return this.conditionStack[0];
70396 }
70397 },
70398
70399// produce the lexer rule set which is active for the currently active lexer condition state
70400_currentRules:function _currentRules () {
70401 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
70402 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
70403 } else {
70404 return this.conditions["INITIAL"].rules;
70405 }
70406 },
70407
70408// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
70409topState:function topState (n) {
70410 n = this.conditionStack.length - 1 - Math.abs(n || 0);
70411 if (n >= 0) {
70412 return this.conditionStack[n];
70413 } else {
70414 return "INITIAL";
70415 }
70416 },
70417
70418// alias for begin(condition)
70419pushState:function pushState (condition) {
70420 this.begin(condition);
70421 },
70422
70423// return the number of states currently on the stack
70424stateStackSize:function stateStackSize() {
70425 return this.conditionStack.length;
70426 },
70427options: {"case-insensitive":true},
70428performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
70429var YYSTATE=YY_START;
70430switch($avoiding_name_collisions) {
70431case 0: this.begin('open_directive'); return 21;
70432break;
70433case 1: this.begin('type_directive'); return 22;
70434break;
70435case 2: this.popState(); this.begin('arg_directive'); return 15;
70436break;
70437case 3: this.popState(); this.popState(); return 24;
70438break;
70439case 4:return 23;
70440break;
70441case 5:/* skip comments */
70442break;
70443case 6:/* skip comments */
70444break;
70445case 7:return 11;
70446break;
70447case 8:/* skip whitespace */
70448break;
70449case 9:/* skip comments */
70450break;
70451case 10:return 4;
70452break;
70453case 11:return 17;
70454break;
70455case 12:return 18;
70456break;
70457case 13:return 19;
70458break;
70459case 14:return 20;
70460break;
70461case 15:return 15;
70462break;
70463case 16:return 6;
70464break;
70465case 17:return 'INVALID';
70466break;
70467}
70468},
70469rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],
70470conditions: {"open_directive":{"rules":[1],"inclusive":false},"type_directive":{"rules":[2,3],"inclusive":false},"arg_directive":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,8,9,10,11,12,13,14,15,16,17],"inclusive":true}}
70471});
70472return lexer;
70473})();
70474parser.lexer = lexer;
70475function Parser () {
70476 this.yy = {};
70477}
70478Parser.prototype = parser;parser.Parser = Parser;
70479return new Parser;
70480})();
70481
70482
70483if (true) {
70484exports.parser = parser;
70485exports.Parser = parser.Parser;
70486exports.parse = function () { return parser.parse.apply(parser, arguments); };
70487exports.main = function commonjsMain (args) {
70488 if (!args[1]) {
70489 console.log('Usage: '+args[0]+' FILE');
70490 process.exit(1);
70491 }
70492 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");
70493 return exports.parser.parse(source);
70494};
70495if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
70496 exports.main(process.argv.slice(1));
70497}
70498}
70499/* 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)))
70500
70501/***/ }),
70502
70503/***/ "./src/diagrams/user-journey/styles.js":
70504/*!*********************************************!*\
70505 !*** ./src/diagrams/user-journey/styles.js ***!
70506 \*********************************************/
70507/*! exports provided: default */
70508/***/ (function(module, __webpack_exports__, __webpack_require__) {
70509
70510"use strict";
70511__webpack_require__.r(__webpack_exports__);
70512var getStyles = function getStyles(options) {
70513 return ".label {\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n color: ".concat(options.textColor, ";\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ").concat(options.textColor, "\n }\n\n .legend {\n fill: ").concat(options.textColor, ";\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ").concat(options.textColor, "\n }\n\n .face {\n fill: #FFF8DC;\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ").concat(options.arrowheadColor, ";\n }\n\n .edgePath .path {\n stroke: ").concat(options.lineColor, ";\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ").concat(options.lineColor, ";\n fill: none;\n }\n\n .edgeLabel {\n background-color: ").concat(options.edgeLabelBackground, ";\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ").concat(options.titleColor, ";\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ").concat(options.tertiaryColor, ";\n border: 1px solid ").concat(options.border2, ";\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ").concat(options.fillType0 ? "fill: ".concat(options.fillType0) : '', ";\n }\n .task-type-1, .section-type-1 {\n ").concat(options.fillType0 ? "fill: ".concat(options.fillType1) : '', ";\n }\n .task-type-2, .section-type-2 {\n ").concat(options.fillType0 ? "fill: ".concat(options.fillType2) : '', ";\n }\n .task-type-3, .section-type-3 {\n ").concat(options.fillType0 ? "fill: ".concat(options.fillType3) : '', ";\n }\n .task-type-4, .section-type-4 {\n ").concat(options.fillType0 ? "fill: ".concat(options.fillType4) : '', ";\n }\n .task-type-5, .section-type-5 {\n ").concat(options.fillType0 ? "fill: ".concat(options.fillType5) : '', ";\n }\n .task-type-6, .section-type-6 {\n ").concat(options.fillType0 ? "fill: ".concat(options.fillType6) : '', ";\n }\n .task-type-7, .section-type-7 {\n ").concat(options.fillType0 ? "fill: ".concat(options.fillType7) : '', ";\n }\n");
70514};
70515
70516/* harmony default export */ __webpack_exports__["default"] = (getStyles);
70517
70518/***/ }),
70519
70520/***/ "./src/diagrams/user-journey/svgDraw.js":
70521/*!**********************************************!*\
70522 !*** ./src/diagrams/user-journey/svgDraw.js ***!
70523 \**********************************************/
70524/*! exports provided: drawRect, drawFace, drawCircle, drawText, drawLabel, drawSection, drawTask, drawBackgroundRect, getTextObj, getNoteRect, default */
70525/***/ (function(module, __webpack_exports__, __webpack_require__) {
70526
70527"use strict";
70528__webpack_require__.r(__webpack_exports__);
70529/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawRect", function() { return drawRect; });
70530/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawFace", function() { return drawFace; });
70531/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawCircle", function() { return drawCircle; });
70532/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawText", function() { return drawText; });
70533/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLabel", function() { return drawLabel; });
70534/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawSection", function() { return drawSection; });
70535/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawTask", function() { return drawTask; });
70536/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawBackgroundRect", function() { return drawBackgroundRect; });
70537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextObj", function() { return getTextObj; });
70538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNoteRect", function() { return getNoteRect; });
70539/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
70540
70541var drawRect = function drawRect(elem, rectData) {
70542 var rectElem = elem.append('rect');
70543 rectElem.attr('x', rectData.x);
70544 rectElem.attr('y', rectData.y);
70545 rectElem.attr('fill', rectData.fill);
70546 rectElem.attr('stroke', rectData.stroke);
70547 rectElem.attr('width', rectData.width);
70548 rectElem.attr('height', rectData.height);
70549 rectElem.attr('rx', rectData.rx);
70550 rectElem.attr('ry', rectData.ry);
70551
70552 if (typeof rectData.class !== 'undefined') {
70553 rectElem.attr('class', rectData.class);
70554 }
70555
70556 return rectElem;
70557};
70558var drawFace = function drawFace(element, faceData) {
70559 var radius = 15;
70560 var circleElement = element.append('circle').attr('cx', faceData.cx).attr('cy', faceData.cy).attr('class', 'face').attr('r', radius).attr('stroke-width', 2).attr('overflow', 'visible');
70561 var face = element.append('g'); //left eye
70562
70563 face.append('circle').attr('cx', faceData.cx - radius / 3).attr('cy', faceData.cy - radius / 3).attr('r', 1.5).attr('stroke-width', 2).attr('fill', '#666').attr('stroke', '#666'); //right eye
70564
70565 face.append('circle').attr('cx', faceData.cx + radius / 3).attr('cy', faceData.cy - radius / 3).attr('r', 1.5).attr('stroke-width', 2).attr('fill', '#666').attr('stroke', '#666');
70566
70567 function smile(face) {
70568 var arc = Object(d3__WEBPACK_IMPORTED_MODULE_0__["arc"])().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); //mouth
70569
70570 face.append('path').attr('class', 'mouth').attr('d', arc).attr('transform', 'translate(' + faceData.cx + ',' + (faceData.cy + 2) + ')');
70571 }
70572
70573 function sad(face) {
70574 var arc = Object(d3__WEBPACK_IMPORTED_MODULE_0__["arc"])().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); //mouth
70575
70576 face.append('path').attr('class', 'mouth').attr('d', arc).attr('transform', 'translate(' + faceData.cx + ',' + (faceData.cy + 7) + ')');
70577 }
70578
70579 function ambivalent(face) {
70580 face.append('line').attr('class', 'mouth').attr('stroke', 2).attr('x1', faceData.cx - 5).attr('y1', faceData.cy + 7).attr('x2', faceData.cx + 5).attr('y2', faceData.cy + 7).attr('class', 'mouth').attr('stroke-width', '1px').attr('stroke', '#666');
70581 }
70582
70583 if (faceData.score > 3) {
70584 smile(face);
70585 } else if (faceData.score < 3) {
70586 sad(face);
70587 } else {
70588 ambivalent(face);
70589 }
70590
70591 return circleElement;
70592};
70593var drawCircle = function drawCircle(element, circleData) {
70594 var circleElement = element.append('circle');
70595 circleElement.attr('cx', circleData.cx);
70596 circleElement.attr('cy', circleData.cy);
70597 circleElement.attr('fill', circleData.fill);
70598 circleElement.attr('stroke', circleData.stroke);
70599 circleElement.attr('r', circleData.r);
70600
70601 if (typeof circleElement.class !== 'undefined') {
70602 circleElement.attr('class', circleElement.class);
70603 }
70604
70605 if (typeof circleData.title !== 'undefined') {
70606 circleElement.append('title').text(circleData.title);
70607 }
70608
70609 return circleElement;
70610};
70611var drawText = function drawText(elem, textData) {
70612 // Remove and ignore br:s
70613 var nText = textData.text.replace(/<br\s*\/?>/gi, ' ');
70614 var textElem = elem.append('text');
70615 textElem.attr('x', textData.x);
70616 textElem.attr('y', textData.y);
70617 textElem.attr('class', 'legend');
70618 textElem.style('text-anchor', textData.anchor);
70619
70620 if (typeof textData.class !== 'undefined') {
70621 textElem.attr('class', textData.class);
70622 }
70623
70624 var span = textElem.append('tspan');
70625 span.attr('x', textData.x + textData.textMargin * 2);
70626 span.text(nText);
70627 return textElem;
70628};
70629var drawLabel = function drawLabel(elem, txtObject) {
70630 function genPoints(x, y, width, height, cut) {
70631 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
70632 }
70633
70634 var polygon = elem.append('polygon');
70635 polygon.attr('points', genPoints(txtObject.x, txtObject.y, 50, 20, 7));
70636 polygon.attr('class', 'labelBox');
70637 txtObject.y = txtObject.y + txtObject.labelMargin;
70638 txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
70639 drawText(elem, txtObject);
70640};
70641var drawSection = function drawSection(elem, section, conf) {
70642 var g = elem.append('g');
70643 var rect = getNoteRect();
70644 rect.x = section.x;
70645 rect.y = section.y;
70646 rect.fill = section.fill;
70647 rect.width = conf.width;
70648 rect.height = conf.height;
70649 rect.class = 'journey-section section-type-' + section.num;
70650 rect.rx = 3;
70651 rect.ry = 3;
70652 drawRect(g, rect);
70653
70654 _drawTextCandidateFunc(conf)(section.text, g, rect.x, rect.y, rect.width, rect.height, {
70655 class: 'journey-section section-type-' + section.num
70656 }, conf, section.colour);
70657};
70658var taskCount = -1;
70659/**
70660 * Draws an actor in the diagram with the attaced line
70661 * @param elem The HTML element
70662 * @param task The task to render
70663 * @param conf The global configuration
70664 */
70665
70666var drawTask = function drawTask(elem, task, conf) {
70667 var center = task.x + conf.width / 2;
70668 var g = elem.append('g');
70669 taskCount++;
70670 var maxHeight = 300 + 5 * 30;
70671 g.append('line').attr('id', 'task' + taskCount).attr('x1', center).attr('y1', task.y).attr('x2', center).attr('y2', maxHeight).attr('class', 'task-line').attr('stroke-width', '1px').attr('stroke-dasharray', '4 2').attr('stroke', '#666');
70672 drawFace(g, {
70673 cx: center,
70674 cy: 300 + (5 - task.score) * 30,
70675 score: task.score
70676 });
70677 var rect = getNoteRect();
70678 rect.x = task.x;
70679 rect.y = task.y;
70680 rect.fill = task.fill;
70681 rect.width = conf.width;
70682 rect.height = conf.height;
70683 rect.class = 'task task-type-' + task.num;
70684 rect.rx = 3;
70685 rect.ry = 3;
70686 drawRect(g, rect);
70687 var xPos = task.x + 14;
70688 task.people.forEach(function (person) {
70689 var colour = task.actors[person];
70690 var circle = {
70691 cx: xPos,
70692 cy: task.y,
70693 r: 7,
70694 fill: colour,
70695 stroke: '#000',
70696 title: person
70697 };
70698 drawCircle(g, circle);
70699 xPos += 10;
70700 });
70701
70702 _drawTextCandidateFunc(conf)(task.task, g, rect.x, rect.y, rect.width, rect.height, {
70703 class: 'task'
70704 }, conf, task.colour);
70705};
70706/**
70707 * Draws a background rectangle
70708 * @param elem The html element
70709 * @param bounds The bounds of the drawing
70710 */
70711
70712var drawBackgroundRect = function drawBackgroundRect(elem, bounds) {
70713 var rectElem = drawRect(elem, {
70714 x: bounds.startx,
70715 y: bounds.starty,
70716 width: bounds.stopx - bounds.startx,
70717 height: bounds.stopy - bounds.starty,
70718 fill: bounds.fill,
70719 class: 'rect'
70720 });
70721 rectElem.lower();
70722};
70723var getTextObj = function getTextObj() {
70724 return {
70725 x: 0,
70726 y: 0,
70727 fill: undefined,
70728 'text-anchor': 'start',
70729 width: 100,
70730 height: 100,
70731 textMargin: 0,
70732 rx: 0,
70733 ry: 0
70734 };
70735};
70736var getNoteRect = function getNoteRect() {
70737 return {
70738 x: 0,
70739 y: 0,
70740 width: 100,
70741 anchor: 'start',
70742 height: 100,
70743 rx: 0,
70744 ry: 0
70745 };
70746};
70747
70748var _drawTextCandidateFunc = function () {
70749 function byText(content, g, x, y, width, height, textAttrs, colour) {
70750 var text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('font-color', colour).style('text-anchor', 'middle').text(content);
70751
70752 _setTextAttrs(text, textAttrs);
70753 }
70754
70755 function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {
70756 var taskFontSize = conf.taskFontSize,
70757 taskFontFamily = conf.taskFontFamily;
70758 var lines = content.split(/<br\s*\/?>/gi);
70759
70760 for (var i = 0; i < lines.length; i++) {
70761 var dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
70762 var text = g.append('text').attr('x', x + width / 2).attr('y', y).attr('fill', colour).style('text-anchor', 'middle').style('font-size', taskFontSize).style('font-family', taskFontFamily);
70763 text.append('tspan').attr('x', x + width / 2).attr('dy', dy).text(lines[i]);
70764 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
70765
70766 _setTextAttrs(text, textAttrs);
70767 }
70768 }
70769
70770 function byFo(content, g, x, y, width, height, textAttrs, conf) {
70771 var body = g.append('switch');
70772 var f = body.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height).attr('position', 'fixed');
70773 var text = f.append('div').style('display', 'table').style('height', '100%').style('width', '100%');
70774 text.append('div').attr('class', 'label').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle') // .style('color', colour)
70775 .text(content);
70776 byTspan(content, body, x, y, width, height, textAttrs, conf);
70777
70778 _setTextAttrs(text, textAttrs);
70779 }
70780
70781 function _setTextAttrs(toText, fromTextAttrsDict) {
70782 for (var key in fromTextAttrsDict) {
70783 if (key in fromTextAttrsDict) {
70784 // eslint-disable-line
70785 // noinspection JSUnfilteredForInLoop
70786 toText.attr(key, fromTextAttrsDict[key]);
70787 }
70788 }
70789 }
70790
70791 return function (conf) {
70792 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
70793 };
70794}();
70795
70796var initGraphics = function initGraphics(graphics) {
70797 graphics.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
70798};
70799
70800/* harmony default export */ __webpack_exports__["default"] = ({
70801 drawRect: drawRect,
70802 drawCircle: drawCircle,
70803 drawSection: drawSection,
70804 drawText: drawText,
70805 drawLabel: drawLabel,
70806 drawTask: drawTask,
70807 drawBackgroundRect: drawBackgroundRect,
70808 getTextObj: getTextObj,
70809 getNoteRect: getNoteRect,
70810 initGraphics: initGraphics
70811});
70812
70813/***/ }),
70814
70815/***/ "./src/errorRenderer.js":
70816/*!******************************!*\
70817 !*** ./src/errorRenderer.js ***!
70818 \******************************/
70819/*! exports provided: setConf, draw, default */
70820/***/ (function(module, __webpack_exports__, __webpack_require__) {
70821
70822"use strict";
70823__webpack_require__.r(__webpack_exports__);
70824/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
70825/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
70826/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
70827/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
70828/**
70829 * Created by knut on 14-12-11.
70830 */
70831
70832
70833var conf = {};
70834var setConf = function setConf(cnf) {
70835 var keys = Object.keys(cnf);
70836 keys.forEach(function (key) {
70837 conf[key] = cnf[key];
70838 });
70839};
70840/**
70841 * Draws a an info picture in the tag with id: id based on the graph definition in text.
70842 * @param text
70843 * @param id
70844 */
70845
70846var draw = function draw(id, ver) {
70847 try {
70848 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Renering svg for syntax error\n');
70849 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id);
70850 var g = svg.append('g');
70851 g.append('path').attr('class', 'error-icon').attr('d', 'm411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z');
70852 g.append('path').attr('class', 'error-icon').attr('d', 'm459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z');
70853 g.append('path').attr('class', 'error-icon').attr('d', 'm340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z');
70854 g.append('path').attr('class', 'error-icon').attr('d', 'm400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z');
70855 g.append('path').attr('class', 'error-icon').attr('d', 'm496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z');
70856 g.append('path').attr('class', 'error-icon').attr('d', 'm436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z');
70857 g.append('text') // text label for the x axis
70858 .attr('class', 'error-text').attr('x', 1240).attr('y', 250).attr('font-size', '150px').style('text-anchor', 'middle').text('Syntax error in graph');
70859 g.append('text') // text label for the x axis
70860 .attr('class', 'error-text').attr('x', 1050).attr('y', 400).attr('font-size', '100px').style('text-anchor', 'middle').text('mermaid version ' + ver);
70861 svg.attr('height', 100);
70862 svg.attr('width', 400);
70863 svg.attr('viewBox', '768 0 512 512');
70864 } catch (e) {
70865 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error('Error while rendering info diagram');
70866 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error(e.message);
70867 }
70868};
70869/* harmony default export */ __webpack_exports__["default"] = ({
70870 setConf: setConf,
70871 draw: draw
70872});
70873
70874/***/ }),
70875
70876/***/ "./src/logger.js":
70877/*!***********************!*\
70878 !*** ./src/logger.js ***!
70879 \***********************/
70880/*! exports provided: LEVELS, logger, setLogLevel */
70881/***/ (function(module, __webpack_exports__, __webpack_require__) {
70882
70883"use strict";
70884__webpack_require__.r(__webpack_exports__);
70885/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LEVELS", function() { return LEVELS; });
70886/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logger", function() { return logger; });
70887/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLogLevel", function() { return setLogLevel; });
70888/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
70889/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
70890 //
70891
70892var LEVELS = {
70893 debug: 1,
70894 info: 2,
70895 warn: 3,
70896 error: 4,
70897 fatal: 5
70898};
70899var logger = {
70900 debug: function debug() {},
70901 info: function info() {},
70902 warn: function warn() {},
70903 error: function error() {},
70904 fatal: function fatal() {}
70905};
70906var setLogLevel = function setLogLevel() {
70907 var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'fatal';
70908
70909 if (isNaN(level)) {
70910 level = level.toLowerCase();
70911
70912 if (LEVELS[level] !== undefined) {
70913 level = LEVELS[level];
70914 }
70915 }
70916
70917 logger.trace = function () {};
70918
70919 logger.debug = function () {};
70920
70921 logger.info = function () {};
70922
70923 logger.warn = function () {};
70924
70925 logger.error = function () {};
70926
70927 logger.fatal = function () {};
70928
70929 if (level <= LEVELS.fatal) {
70930 logger.fatal = console.error ? console.error.bind(console, format('FATAL'), 'color: orange') : console.log.bind(console, '\x1b[35m', format('FATAL'));
70931 }
70932
70933 if (level <= LEVELS.error) {
70934 logger.error = console.error ? console.error.bind(console, format('ERROR'), 'color: orange') : console.log.bind(console, '\x1b[31m', format('ERROR'));
70935 }
70936
70937 if (level <= LEVELS.warn) {
70938 logger.warn = console.warn ? console.warn.bind(console, format('WARN'), 'color: orange') : console.log.bind(console, "\x1B[33m", format('WARN'));
70939 }
70940
70941 if (level <= LEVELS.info) {
70942 logger.info = console.info ? // ? console.info.bind(console, '\x1b[34m', format('INFO'), 'color: blue')
70943 console.info.bind(console, format('INFO'), 'color: lightblue') : console.log.bind(console, '\x1b[34m', format('INFO'));
70944 }
70945
70946 if (level <= LEVELS.debug) {
70947 logger.debug = console.debug ? console.debug.bind(console, format('DEBUG'), 'color: lightgreen') : console.log.bind(console, '\x1b[32m', format('DEBUG'));
70948 }
70949};
70950
70951var format = function format(level) {
70952 var time = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()().format('ss.SSS');
70953 return "%c".concat(time, " : ").concat(level, " : ");
70954};
70955
70956/***/ }),
70957
70958/***/ "./src/mermaid.js":
70959/*!************************!*\
70960 !*** ./src/mermaid.js ***!
70961 \************************/
70962/*! exports provided: default */
70963/***/ (function(module, __webpack_exports__, __webpack_require__) {
70964
70965"use strict";
70966__webpack_require__.r(__webpack_exports__);
70967/* harmony import */ var entity_decode_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! entity-decode/browser */ "./node_modules/entity-decode/browser.js");
70968/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mermaidAPI */ "./src/mermaidAPI.js");
70969/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
70970/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
70971/**
70972 * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid functionality and to render
70973 * the diagrams to svg code.
70974 */
70975// import { decode } from 'he';
70976
70977
70978
70979
70980/**
70981 * ## init
70982 * Function that goes through the document to find the chart definitions in there and render them.
70983 *
70984 * The function tags the processed attributes with the attribute data-processed and ignores found elements with the
70985 * attribute already set. This way the init function can be triggered several times.
70986 *
70987 * Optionally, `init` can accept in the second argument one of the following:
70988 * - a DOM Node
70989 * - an array of DOM nodes (as would come from a jQuery selector)
70990 * - a W3C selector, a la `.mermaid`
70991 *
70992 * ```mermaid
70993 * graph LR;
70994 * a(Find elements)-->b{Processed}
70995 * b-->|Yes|c(Leave element)
70996 * b-->|No |d(Transform)
70997 * ```
70998 * Renders the mermaid diagrams
70999 * @param nodes a css selector or an array of nodes
71000 */
71001
71002var init = function init() {
71003 var _this = this;
71004
71005 var conf = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig(); // console.log('Starting rendering diagrams (init) - mermaid.init', conf);
71006
71007 var nodes;
71008
71009 if (arguments.length >= 2) {
71010 /*! sequence config was passed as #1 */
71011 if (typeof arguments[0] !== 'undefined') {
71012 mermaid.sequenceConfig = arguments[0];
71013 }
71014
71015 nodes = arguments[1];
71016 } else {
71017 nodes = arguments[0];
71018 } // if last argument is a function this is the callback function
71019
71020
71021 var callback;
71022
71023 if (typeof arguments[arguments.length - 1] === 'function') {
71024 callback = arguments[arguments.length - 1];
71025 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Callback function found');
71026 } else {
71027 if (typeof conf.mermaid !== 'undefined') {
71028 if (typeof conf.mermaid.callback === 'function') {
71029 callback = conf.mermaid.callback;
71030 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Callback function found');
71031 } else {
71032 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('No Callback function found');
71033 }
71034 }
71035 }
71036
71037 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
71038
71039 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Start On Load before: ' + mermaid.startOnLoad);
71040
71041 if (typeof mermaid.startOnLoad !== 'undefined') {
71042 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Start On Load inner: ' + mermaid.startOnLoad);
71043 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].updateSiteConfig({
71044 startOnLoad: mermaid.startOnLoad
71045 });
71046 }
71047
71048 if (typeof mermaid.ganttConfig !== 'undefined') {
71049 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].updateSiteConfig({
71050 gantt: mermaid.ganttConfig
71051 });
71052 }
71053
71054 var txt;
71055
71056 var _loop = function _loop(i) {
71057 var element = nodes[i];
71058 /*! Check if previously processed */
71059
71060 if (!element.getAttribute('data-processed')) {
71061 element.setAttribute('data-processed', true);
71062 } else {
71063 return "continue";
71064 }
71065
71066 var id = "mermaid-".concat(Date.now()); // Fetch the graph definition including tags
71067
71068 txt = element.innerHTML; // transforms the html to pure text
71069
71070 txt = Object(entity_decode_browser__WEBPACK_IMPORTED_MODULE_0__["default"])(txt).trim().replace(/<br\s*\/?>/gi, '<br/>');
71071 var init = _utils__WEBPACK_IMPORTED_MODULE_3__["default"].detectInit(txt);
71072
71073 if (init) {
71074 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Detected early reinit: ', init);
71075 }
71076
71077 try {
71078 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render(id, txt, function (svgCode, bindFunctions) {
71079 element.innerHTML = svgCode;
71080
71081 if (typeof callback !== 'undefined') {
71082 callback(id);
71083 }
71084
71085 if (bindFunctions) bindFunctions(element);
71086 }, element);
71087 } catch (e) {
71088 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].warn('Syntax Error rendering');
71089 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].warn(e);
71090
71091 if (_this.parseError) {
71092 _this.parseError(e);
71093 }
71094 }
71095 };
71096
71097 for (var i = 0; i < nodes.length; i++) {
71098 var _ret = _loop(i);
71099
71100 if (_ret === "continue") continue;
71101 }
71102};
71103
71104var initialize = function initialize(config) {
71105 // mermaidAPI.reset();
71106 if (typeof config.mermaid !== 'undefined') {
71107 if (typeof config.mermaid.startOnLoad !== 'undefined') {
71108 mermaid.startOnLoad = config.mermaid.startOnLoad;
71109 }
71110
71111 if (typeof config.mermaid.htmlLabels !== 'undefined') {
71112 mermaid.htmlLabels = config.mermaid.htmlLabels;
71113 }
71114 }
71115
71116 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize(config); // mermaidAPI.reset();
71117};
71118/**
71119 * ##contentLoaded
71120 * Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and
71121 * calls init for rendering the mermaid diagrams on the page.
71122 */
71123
71124
71125var contentLoaded = function contentLoaded() {
71126 var config;
71127
71128 if (mermaid.startOnLoad) {
71129 // No config found, do check API config
71130 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
71131
71132 if (config.startOnLoad) {
71133 mermaid.init();
71134 }
71135 } else {
71136 if (typeof mermaid.startOnLoad === 'undefined') {
71137 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('In start, no config');
71138 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
71139
71140 if (config.startOnLoad) {
71141 mermaid.init();
71142 }
71143 }
71144 }
71145};
71146
71147if (typeof document !== 'undefined') {
71148 /*!
71149 * Wait for document loaded before starting the execution
71150 */
71151 window.addEventListener('load', function () {
71152 contentLoaded();
71153 }, false);
71154}
71155
71156var mermaid = {
71157 startOnLoad: true,
71158 htmlLabels: true,
71159 mermaidAPI: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"],
71160 parse: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parse,
71161 render: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render,
71162 init: init,
71163 initialize: initialize,
71164 contentLoaded: contentLoaded
71165};
71166/* harmony default export */ __webpack_exports__["default"] = (mermaid);
71167
71168/***/ }),
71169
71170/***/ "./src/mermaidAPI.js":
71171/*!***************************!*\
71172 !*** ./src/mermaidAPI.js ***!
71173 \***************************/
71174/*! exports provided: encodeEntities, decodeEntities, default */
71175/***/ (function(module, __webpack_exports__, __webpack_require__) {
71176
71177"use strict";
71178__webpack_require__.r(__webpack_exports__);
71179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeEntities", function() { return encodeEntities; });
71180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decodeEntities", function() { return decodeEntities; });
71181/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/stylis.js");
71182/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(stylis__WEBPACK_IMPORTED_MODULE_0__);
71183/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
71184/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../package.json */ "./package.json");
71185var _package_json__WEBPACK_IMPORTED_MODULE_2___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../package.json */ "./package.json", 1);
71186/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
71187/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
71188/* harmony import */ var _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js");
71189/* harmony import */ var _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer-v2 */ "./src/diagrams/flowchart/flowRenderer-v2.js");
71190/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/flowchart/parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
71191/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7__);
71192/* harmony import */ var _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js");
71193/* harmony import */ var _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js");
71194/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diagrams/sequence/parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.jison");
71195/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10__);
71196/* harmony import */ var _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diagrams/sequence/sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
71197/* harmony import */ var _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js");
71198/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diagrams/gantt/parser/gantt */ "./src/diagrams/gantt/parser/gantt.jison");
71199/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13__);
71200/* harmony import */ var _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js");
71201/* harmony import */ var _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diagrams/class/classRenderer */ "./src/diagrams/class/classRenderer.js");
71202/* harmony import */ var _diagrams_class_classRenderer_v2__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./diagrams/class/classRenderer-v2 */ "./src/diagrams/class/classRenderer-v2.js");
71203/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diagrams/class/parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
71204/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17__);
71205/* harmony import */ var _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diagrams/class/classDb */ "./src/diagrams/class/classDb.js");
71206/* harmony import */ var _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./diagrams/state/stateRenderer */ "./src/diagrams/state/stateRenderer.js");
71207/* harmony import */ var _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./diagrams/state/stateRenderer-v2 */ "./src/diagrams/state/stateRenderer-v2.js");
71208/* harmony import */ var _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./diagrams/state/parser/stateDiagram */ "./src/diagrams/state/parser/stateDiagram.jison");
71209/* harmony import */ var _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21__);
71210/* harmony import */ var _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./diagrams/state/stateDb */ "./src/diagrams/state/stateDb.js");
71211/* harmony import */ var _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./diagrams/git/gitGraphRenderer */ "./src/diagrams/git/gitGraphRenderer.js");
71212/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./diagrams/git/parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.jison");
71213/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_24__);
71214/* harmony import */ var _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./diagrams/git/gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
71215/* harmony import */ var _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./diagrams/info/infoRenderer */ "./src/diagrams/info/infoRenderer.js");
71216/* harmony import */ var _errorRenderer__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./errorRenderer */ "./src/errorRenderer.js");
71217/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./diagrams/info/parser/info */ "./src/diagrams/info/parser/info.jison");
71218/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_28__);
71219/* harmony import */ var _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./diagrams/info/infoDb */ "./src/diagrams/info/infoDb.js");
71220/* harmony import */ var _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./diagrams/pie/pieRenderer */ "./src/diagrams/pie/pieRenderer.js");
71221/* harmony import */ var _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./diagrams/pie/parser/pie */ "./src/diagrams/pie/parser/pie.jison");
71222/* harmony import */ var _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_31__);
71223/* harmony import */ var _diagrams_pie_pieDb__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./diagrams/pie/pieDb */ "./src/diagrams/pie/pieDb.js");
71224/* harmony import */ var _diagrams_er_erDb__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./diagrams/er/erDb */ "./src/diagrams/er/erDb.js");
71225/* harmony import */ var _diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./diagrams/er/parser/erDiagram */ "./src/diagrams/er/parser/erDiagram.jison");
71226/* harmony import */ var _diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_34__);
71227/* harmony import */ var _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./diagrams/er/erRenderer */ "./src/diagrams/er/erRenderer.js");
71228/* harmony import */ var _diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./diagrams/user-journey/parser/journey */ "./src/diagrams/user-journey/parser/journey.jison");
71229/* harmony import */ var _diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_36__);
71230/* harmony import */ var _diagrams_user_journey_journeyDb__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./diagrams/user-journey/journeyDb */ "./src/diagrams/user-journey/journeyDb.js");
71231/* harmony import */ var _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./diagrams/user-journey/journeyRenderer */ "./src/diagrams/user-journey/journeyRenderer.js");
71232/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./config */ "./src/config.js");
71233/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./styles */ "./src/styles.js");
71234/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
71235function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
71236
71237/**
71238 * This is the api to be used when optionally handling the integration with the web page, instead of using the default integration provided by mermaid.js.
71239 *
71240 * The core of this api is the [**render**](Setup.md?id=render) function which, given a graph
71241 * definition as text, renders the graph/diagram and returns an svg element for the graph.
71242 *
71243 * It is is then up to the user of the API to make use of the svg, either insert it somewhere in the page or do something completely different.
71244 *
71245 * In addition to the render function, a number of behavioral configuration options are available.
71246 *
71247 * @name mermaidAPI
71248 */
71249
71250
71251 // import * as configApi from './config';
71252// // , {
71253// // setConfig,
71254// // configApi.getConfig,
71255// // configApi.updateSiteConfig,
71256// // configApi.setSiteConfig,
71257// // configApi.getSiteConfig,
71258// // configApi.defaultConfig
71259// // }
71260
71261
71262
71263
71264
71265
71266
71267
71268
71269
71270
71271
71272
71273
71274
71275
71276
71277
71278
71279
71280
71281
71282
71283
71284
71285
71286
71287
71288
71289
71290
71291
71292
71293
71294
71295
71296
71297
71298
71299
71300
71301function parse(text) {
71302 var graphInit = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].detectInit(text);
71303
71304 if (graphInit) {
71305 reinitialize(graphInit);
71306 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('reinit ', graphInit);
71307 }
71308
71309 var graphType = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].detectType(text);
71310 var parser;
71311 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Type ' + graphType);
71312
71313 switch (graphType) {
71314 case 'git':
71315 parser = _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_24___default.a;
71316 parser.parser.yy = _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_25__["default"];
71317 break;
71318
71319 case 'flowchart':
71320 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].clear();
71321 parser = _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default.a;
71322 parser.parser.yy = _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"];
71323 break;
71324
71325 case 'flowchart-v2':
71326 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].clear();
71327 parser = _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default.a;
71328 parser.parser.yy = _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"];
71329 break;
71330
71331 case 'sequence':
71332 parser = _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10___default.a;
71333 parser.parser.yy = _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_11__["default"];
71334 break;
71335
71336 case 'gantt':
71337 parser = _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13___default.a;
71338 parser.parser.yy = _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"];
71339 break;
71340
71341 case 'class':
71342 parser = _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17___default.a;
71343 parser.parser.yy = _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_18__["default"];
71344 break;
71345
71346 case 'classDiagram':
71347 parser = _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17___default.a;
71348 parser.parser.yy = _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_18__["default"];
71349 break;
71350
71351 case 'state':
71352 parser = _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21___default.a;
71353 parser.parser.yy = _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_22__["default"];
71354 break;
71355
71356 case 'stateDiagram':
71357 parser = _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21___default.a;
71358 parser.parser.yy = _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_22__["default"];
71359 break;
71360
71361 case 'info':
71362 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('info info info');
71363 parser = _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_28___default.a;
71364 parser.parser.yy = _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_29__["default"];
71365 break;
71366
71367 case 'pie':
71368 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('pie');
71369 parser = _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_31___default.a;
71370 parser.parser.yy = _diagrams_pie_pieDb__WEBPACK_IMPORTED_MODULE_32__["default"];
71371 break;
71372
71373 case 'er':
71374 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('er');
71375 parser = _diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_34___default.a;
71376 parser.parser.yy = _diagrams_er_erDb__WEBPACK_IMPORTED_MODULE_33__["default"];
71377 break;
71378
71379 case 'journey':
71380 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Journey');
71381 parser = _diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_36___default.a;
71382 parser.parser.yy = _diagrams_user_journey_journeyDb__WEBPACK_IMPORTED_MODULE_37__["default"];
71383 break;
71384 }
71385
71386 parser.parser.yy.graphType = graphType;
71387
71388 parser.parser.yy.parseError = function (str, hash) {
71389 var error = {
71390 str: str,
71391 hash: hash
71392 };
71393 throw error;
71394 };
71395
71396 parser.parse(text);
71397 return parser;
71398}
71399
71400var encodeEntities = function encodeEntities(text) {
71401 var txt = text;
71402 txt = txt.replace(/style.*:\S*#.*;/g, function (s) {
71403 var innerTxt = s.substring(0, s.length - 1);
71404 return innerTxt;
71405 });
71406 txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) {
71407 var innerTxt = s.substring(0, s.length - 1);
71408 return innerTxt;
71409 });
71410 txt = txt.replace(/#\w+;/g, function (s) {
71411 var innerTxt = s.substring(1, s.length - 1);
71412 var isInt = /^\+?\d+$/.test(innerTxt);
71413
71414 if (isInt) {
71415 return 'fl°°' + innerTxt + '¶ß';
71416 } else {
71417 return 'fl°' + innerTxt + '¶ß';
71418 }
71419 });
71420 return txt;
71421};
71422var decodeEntities = function decodeEntities(text) {
71423 var txt = text;
71424 txt = txt.replace(/fl°°/g, function () {
71425 return '&#';
71426 });
71427 txt = txt.replace(/fl°/g, function () {
71428 return '&';
71429 });
71430 txt = txt.replace(/¶ß/g, function () {
71431 return ';';
71432 });
71433 return txt;
71434};
71435/**
71436 * Function that renders an svg with a graph from a chart definition. Usage example below.
71437 *
71438 * ```js
71439 * mermaidAPI.initialize({
71440 * startOnLoad:true
71441 * });
71442 * $(function(){
71443 * const graphDefinition = 'graph TB\na-->b';
71444 * const cb = function(svgGraph){
71445 * console.log(svgGraph);
71446 * };
71447 * mermaidAPI.render('id1',graphDefinition,cb);
71448 * });
71449 *```
71450 * @param id the id of the element to be rendered
71451 * @param _txt the graph definition
71452 * @param cb callback which is called after rendering is finished with the svg code as inparam.
71453 * @param container selector to element in which a div with the graph temporarily will be inserted. In one is
71454 * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is
71455 * completed.
71456 */
71457
71458var render = function render(id, _txt, cb, container) {
71459 _config__WEBPACK_IMPORTED_MODULE_39__["reset"]();
71460 var txt = _txt;
71461 var graphInit = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].detectInit(txt);
71462
71463 if (graphInit) {
71464 _config__WEBPACK_IMPORTED_MODULE_39__["addDirective"](graphInit);
71465 } // else {
71466 // configApi.reset();
71467 // const siteConfig = configApi.getSiteConfig();
71468 // configApi.addDirective(siteConfig);
71469 // }
71470 // console.warn('Render fetching config');
71471
71472
71473 var cnf = _config__WEBPACK_IMPORTED_MODULE_39__["getConfig"](); // console.warn('Render with config after adding new directives', cnf.sequence);
71474 // console.warn(
71475 // 'Render with config after adding new directives',
71476 // cnf.fontFamily,
71477 // cnf.themeVariables.fontFamily
71478 // );
71479 // Check the maximum allowed text size
71480
71481 if (_txt.length > cnf.maxTextSize) {
71482 txt = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa';
71483 }
71484
71485 if (typeof container !== 'undefined') {
71486 container.innerHTML = '';
71487 Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])(container).append('div').attr('id', 'd' + id).attr('style', 'font-family: ' + cnf.fontFamily).append('svg').attr('id', id).attr('width', '100%').attr('xmlns', 'http://www.w3.org/2000/svg').append('g');
71488 } else {
71489 var existingSvg = document.getElementById(id);
71490
71491 if (existingSvg) {
71492 existingSvg.remove();
71493 }
71494
71495 var _element = document.querySelector('#' + 'd' + id);
71496
71497 if (_element) {
71498 _element.remove();
71499 }
71500
71501 Object(d3__WEBPACK_IMPORTED_MODULE_1__["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');
71502 }
71503
71504 window.txt = txt;
71505 txt = encodeEntities(txt);
71506 var element = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#d' + id).node();
71507 var graphType = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].detectType(txt); // insert inline style into svg
71508
71509 var svg = element.firstChild;
71510 var firstChild = svg.firstChild;
71511 var userStyles = ''; // user provided theme CSS
71512
71513 if (cnf.themeCSS !== undefined) {
71514 userStyles += "\n".concat(cnf.themeCSS);
71515 } // user provided theme CSS
71516
71517
71518 if (cnf.fontFamily !== undefined) {
71519 userStyles += "\n:root { --mermaid-font-family: ".concat(cnf.fontFamily, "}");
71520 } // user provided theme CSS
71521
71522
71523 if (cnf.altFontFamily !== undefined) {
71524 userStyles += "\n:root { --mermaid-alt-font-family: ".concat(cnf.altFontFamily, "}");
71525 } // classDef
71526
71527
71528 if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') {
71529 var classes = _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__["default"].getClasses(txt);
71530
71531 for (var className in classes) {
71532 userStyles += "\n.".concat(className, " > * { ").concat(classes[className].styles.join(' !important; '), " !important; }");
71533
71534 if (classes[className].textStyles) {
71535 userStyles += "\n.".concat(className, " tspan { ").concat(classes[className].textStyles.join(' !important; '), " !important; }");
71536 }
71537 }
71538 } // logger.warn(cnf.themeVariables);
71539
71540
71541 var stylis = new stylis__WEBPACK_IMPORTED_MODULE_0___default.a();
71542 var rules = stylis("#".concat(id), Object(_styles__WEBPACK_IMPORTED_MODULE_40__["default"])(graphType, userStyles, cnf.themeVariables));
71543 var style1 = document.createElement('style');
71544 style1.innerHTML = rules;
71545 svg.insertBefore(style1, firstChild); // Verify that the generated svgs are ok before removing this
71546 // const style2 = document.createElement('style');
71547 // const cs = window.getComputedStyle(svg);
71548 // style2.innerHTML = `#d${id} * {
71549 // color: ${cs.color};
71550 // // font: ${cs.font};
71551 // // font-family: Arial;
71552 // // font-size: 24px;
71553 // }`;
71554 // svg.insertBefore(style2, firstChild);
71555
71556 try {
71557 switch (graphType) {
71558 case 'git':
71559 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71560 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_23__["default"].setConf(cnf.git);
71561 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_23__["default"].draw(txt, id, false);
71562 break;
71563
71564 case 'flowchart':
71565 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71566 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__["default"].setConf(cnf.flowchart);
71567 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__["default"].draw(txt, id, false);
71568 break;
71569
71570 case 'flowchart-v2':
71571 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71572 _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_6__["default"].setConf(cnf.flowchart);
71573 _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_6__["default"].draw(txt, id, false);
71574 break;
71575
71576 case 'sequence':
71577 cnf.sequence.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71578
71579 if (cnf.sequenceDiagram) {
71580 // backwards compatibility
71581 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(Object.assign(cnf.sequence, cnf.sequenceDiagram));
71582 console.error('`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.');
71583 } else {
71584 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(cnf.sequence);
71585 }
71586
71587 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].draw(txt, id);
71588 break;
71589
71590 case 'gantt':
71591 cnf.gantt.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71592 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].setConf(cnf.gantt);
71593 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].draw(txt, id);
71594 break;
71595
71596 case 'class':
71597 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71598 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].setConf(cnf.class);
71599 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].draw(txt, id);
71600 break;
71601
71602 case 'classDiagram':
71603 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71604 _diagrams_class_classRenderer_v2__WEBPACK_IMPORTED_MODULE_16__["default"].setConf(cnf.class);
71605 _diagrams_class_classRenderer_v2__WEBPACK_IMPORTED_MODULE_16__["default"].draw(txt, id);
71606 break;
71607
71608 case 'state':
71609 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71610 _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_19__["default"].setConf(cnf.state);
71611 _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_19__["default"].draw(txt, id);
71612 break;
71613
71614 case 'stateDiagram':
71615 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71616 _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_20__["default"].setConf(cnf.state);
71617 _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_20__["default"].draw(txt, id);
71618 break;
71619
71620 case 'info':
71621 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71622 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_26__["default"].setConf(cnf.class);
71623 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_26__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71624 break;
71625
71626 case 'pie':
71627 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71628 _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_30__["default"].setConf(cnf.pie);
71629 _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_30__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71630 break;
71631
71632 case 'er':
71633 _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_35__["default"].setConf(cnf.er);
71634 _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_35__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71635 break;
71636
71637 case 'journey':
71638 _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_38__["default"].setConf(cnf.journey);
71639 _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_38__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71640 break;
71641 }
71642 } catch (e) {
71643 // errorRenderer.setConf(cnf.class);
71644 _errorRenderer__WEBPACK_IMPORTED_MODULE_27__["default"].draw(id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71645 throw e;
71646 }
71647
71648 Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(id, "\"]")).selectAll('foreignobject > *').attr('xmlns', 'http://www.w3.org/1999/xhtml'); // if (cnf.arrowMarkerAbsolute) {
71649 // url =
71650 // window.location.protocol +
71651 // '//' +
71652 // window.location.host +
71653 // window.location.pathname +
71654 // window.location.search;
71655 // url = url.replace(/\(/g, '\\(');
71656 // url = url.replace(/\)/g, '\\)');
71657 // }
71658 // Fix for when the base tag is used
71659
71660 var svgCode = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#d' + id).node().innerHTML;
71661 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute);
71662
71663 if (!cnf.arrowMarkerAbsolute || cnf.arrowMarkerAbsolute === 'false') {
71664 svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g');
71665 }
71666
71667 svgCode = decodeEntities(svgCode);
71668
71669 if (typeof cb !== 'undefined') {
71670 switch (graphType) {
71671 case 'flowchart':
71672 case 'flowchart-v2':
71673 cb(svgCode, _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].bindFunctions);
71674 break;
71675
71676 case 'gantt':
71677 cb(svgCode, _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"].bindFunctions);
71678 break;
71679
71680 case 'class':
71681 case 'classDiagram':
71682 cb(svgCode, _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_18__["default"].bindFunctions);
71683 break;
71684
71685 default:
71686 cb(svgCode);
71687 }
71688 } else {
71689 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('CB = undefined!');
71690 }
71691
71692 var node = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#d' + id).node();
71693
71694 if (node !== null && typeof node.remove === 'function') {
71695 Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#d' + id).node().remove();
71696 }
71697
71698 return svgCode;
71699};
71700
71701var currentDirective = {};
71702
71703var parseDirective = function parseDirective(p, statement, context, type) {
71704 try {
71705 if (statement !== undefined) {
71706 statement = statement.trim();
71707
71708 switch (context) {
71709 case 'open_directive':
71710 currentDirective = {};
71711 break;
71712
71713 case 'type_directive':
71714 currentDirective.type = statement.toLowerCase();
71715 break;
71716
71717 case 'arg_directive':
71718 currentDirective.args = JSON.parse(statement);
71719 break;
71720
71721 case 'close_directive':
71722 handleDirective(p, currentDirective, type);
71723 currentDirective = null;
71724 break;
71725 }
71726 }
71727 } catch (error) {
71728 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error("Error while rendering sequenceDiagram directive: ".concat(statement, " jison context: ").concat(context));
71729 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(error.message);
71730 }
71731};
71732
71733var handleDirective = function handleDirective(p, directive, type) {
71734 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug("Directive type=".concat(directive.type, " with args:"), directive.args);
71735
71736 switch (directive.type) {
71737 case 'init':
71738 case 'initialize':
71739 {
71740 ['config'].forEach(function (prop) {
71741 if (typeof directive.args[prop] !== 'undefined') {
71742 if (type === 'flowchart-v2') {
71743 type = 'flowchart';
71744 }
71745
71746 directive.args[type] = directive.args[prop];
71747 delete directive.args[prop];
71748 }
71749 });
71750 reinitialize(directive.args);
71751 _config__WEBPACK_IMPORTED_MODULE_39__["addDirective"](directive.args);
71752 break;
71753 }
71754
71755 case 'wrap':
71756 case 'nowrap':
71757 if (p && p['setWrap']) {
71758 p.setWrap(directive.type === 'wrap');
71759 }
71760
71761 break;
71762
71763 default:
71764 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].warn("Unhandled directive: source: '%%{".concat(directive.type, ": ").concat(JSON.stringify(directive.args ? directive.args : {}), "}%%"), directive);
71765 break;
71766 }
71767};
71768
71769function updateRendererConfigs(conf) {
71770 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_23__["default"].setConf(conf.git);
71771 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__["default"].setConf(conf.flowchart);
71772 _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_6__["default"].setConf(conf.flowchart);
71773
71774 if (typeof conf['sequenceDiagram'] !== 'undefined') {
71775 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assignWithDepth"])(conf.sequence, conf['sequenceDiagram']));
71776 }
71777
71778 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(conf.sequence);
71779 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].setConf(conf.gantt);
71780 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].setConf(conf.class);
71781 _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_19__["default"].setConf(conf.state);
71782 _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_20__["default"].setConf(conf.state);
71783 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_26__["default"].setConf(conf.class);
71784 _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_30__["default"].setConf(conf.class);
71785 _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_35__["default"].setConf(conf.er);
71786 _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_38__["default"].setConf(conf.journey);
71787 _errorRenderer__WEBPACK_IMPORTED_MODULE_27__["default"].setConf(conf.class);
71788}
71789
71790function reinitialize() {// `mermaidAPI.reinitialize: v${pkg.version}`,
71791 // JSON.stringify(options),
71792 // options.themeVariables.primaryColor;
71793 // // if (options.theme && theme[options.theme]) {
71794 // // options.themeVariables = theme[options.theme].getThemeVariables(options.themeVariables);
71795 // // }
71796 // // Set default options
71797 // const config =
71798 // typeof options === 'object' ? configApi.setConfig(options) : configApi.getSiteConfig();
71799 // updateRendererConfigs(config);
71800 // setLogLevel(config.logLevel);
71801 // logger.debug('mermaidAPI.reinitialize: ', config);
71802}
71803
71804function initialize(options) {
71805 // console.warn(`mermaidAPI.initialize: v${pkg.version} `, options);
71806 // Handle legacy location of font-family configuration
71807 if (options && options.fontFamily) {
71808 if (!options.themeVariables) {
71809 options.themeVariables = {
71810 fontFamily: options.fontFamily
71811 };
71812 } else {
71813 if (!options.themeVariables.fontFamily) {
71814 options.themeVariables = {
71815 fontFamily: options.fontFamily
71816 };
71817 }
71818 }
71819 } // Set default options
71820
71821
71822 _config__WEBPACK_IMPORTED_MODULE_39__["setSiteConfigDelta"](options);
71823
71824 if (options && options.theme && _themes__WEBPACK_IMPORTED_MODULE_41__["default"][options.theme]) {
71825 // Todo merge with user options
71826 options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_41__["default"][options.theme].getThemeVariables(options.themeVariables);
71827 } else {
71828 if (options) options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_41__["default"].default.getThemeVariables(options.themeVariables);
71829 }
71830
71831 var config = _typeof(options) === 'object' ? _config__WEBPACK_IMPORTED_MODULE_39__["setSiteConfig"](options) : _config__WEBPACK_IMPORTED_MODULE_39__["getSiteConfig"]();
71832 updateRendererConfigs(config);
71833 Object(_logger__WEBPACK_IMPORTED_MODULE_3__["setLogLevel"])(config.logLevel); // logger.debug('mermaidAPI.initialize: ', config);
71834}
71835
71836var mermaidAPI = Object.freeze({
71837 render: render,
71838 parse: parse,
71839 parseDirective: parseDirective,
71840 initialize: initialize,
71841 reinitialize: reinitialize,
71842 getConfig: _config__WEBPACK_IMPORTED_MODULE_39__["getConfig"],
71843 setConfig: _config__WEBPACK_IMPORTED_MODULE_39__["setConfig"],
71844 getSiteConfig: _config__WEBPACK_IMPORTED_MODULE_39__["getSiteConfig"],
71845 updateSiteConfig: _config__WEBPACK_IMPORTED_MODULE_39__["updateSiteConfig"],
71846 reset: function reset() {
71847 // console.warn('reset');
71848 _config__WEBPACK_IMPORTED_MODULE_39__["reset"](); // const siteConfig = configApi.getSiteConfig();
71849 // updateRendererConfigs(siteConfig);
71850 },
71851 globalReset: function globalReset() {
71852 _config__WEBPACK_IMPORTED_MODULE_39__["reset"](_config__WEBPACK_IMPORTED_MODULE_39__["defaultConfig"]);
71853 updateRendererConfigs(_config__WEBPACK_IMPORTED_MODULE_39__["getConfig"]());
71854 },
71855 defaultConfig: _config__WEBPACK_IMPORTED_MODULE_39__["defaultConfig"]
71856});
71857Object(_logger__WEBPACK_IMPORTED_MODULE_3__["setLogLevel"])(_config__WEBPACK_IMPORTED_MODULE_39__["getConfig"]().logLevel);
71858_config__WEBPACK_IMPORTED_MODULE_39__["reset"](_config__WEBPACK_IMPORTED_MODULE_39__["getConfig"]());
71859/* harmony default export */ __webpack_exports__["default"] = (mermaidAPI);
71860/**
71861 * ## mermaidAPI configuration defaults
71862 *
71863 * ```html
71864 * <script>
71865 * var config = {
71866 * theme:'default',
71867 * logLevel:'fatal',
71868 * securityLevel:'strict',
71869 * startOnLoad:true,
71870 * arrowMarkerAbsolute:false,
71871 *
71872 * er:{
71873 * diagramPadding:20,
71874 * layoutDirection:'TB',
71875 * minEntityWidth:100,
71876 * minEntityHeight:75,
71877 * entityPadding:15,
71878 * stroke:'gray',
71879 * fill:'honeydew',
71880 * fontSize:12,
71881 * useMaxWidth:true,
71882 * },
71883 * flowchart:{
71884 * diagramPadding:8,
71885 * htmlLabels:true,
71886 * curve:'linear',
71887 * },
71888 * sequence:{
71889 * diagramMarginX:50,
71890 * diagramMarginY:10,
71891 * actorMargin:50,
71892 * width:150,
71893 * height:65,
71894 * boxMargin:10,
71895 * boxTextMargin:5,
71896 * noteMargin:10,
71897 * messageMargin:35,
71898 * messageAlign:'center',
71899 * mirrorActors:true,
71900 * bottomMarginAdj:1,
71901 * useMaxWidth:true,
71902 * rightAngles:false,
71903 * showSequenceNumbers:false,
71904 * },
71905 * gantt:{
71906 * titleTopMargin:25,
71907 * barHeight:20,
71908 * barGap:4,
71909 * topPadding:50,
71910 * leftPadding:75,
71911 * gridLineStartPadding:35,
71912 * fontSize:11,
71913 * fontFamily:'"Open-Sans", "sans-serif"',
71914 * numberSectionStyles:4,
71915 * axisFormat:'%Y-%m-%d',
71916 * }
71917 * };
71918 * mermaid.initialize(config);
71919 * </script>
71920 * ```
71921 */
71922
71923/***/ }),
71924
71925/***/ "./src/styles.js":
71926/*!***********************!*\
71927 !*** ./src/styles.js ***!
71928 \***********************/
71929/*! exports provided: calcThemeVariables, default */
71930/***/ (function(module, __webpack_exports__, __webpack_require__) {
71931
71932"use strict";
71933__webpack_require__.r(__webpack_exports__);
71934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calcThemeVariables", function() { return calcThemeVariables; });
71935/* harmony import */ var _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagrams/class/styles */ "./src/diagrams/class/styles.js");
71936/* harmony import */ var _diagrams_er_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diagrams/er/styles */ "./src/diagrams/er/styles.js");
71937/* harmony import */ var _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./diagrams/flowchart/styles */ "./src/diagrams/flowchart/styles.js");
71938/* harmony import */ var _diagrams_gantt_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./diagrams/gantt/styles */ "./src/diagrams/gantt/styles.js");
71939/* harmony import */ var _diagrams_git_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./diagrams/git/styles */ "./src/diagrams/git/styles.js");
71940/* harmony import */ var _diagrams_info_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./diagrams/info/styles */ "./src/diagrams/info/styles.js");
71941/* harmony import */ var _diagrams_pie_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./diagrams/pie/styles */ "./src/diagrams/pie/styles.js");
71942/* harmony import */ var _diagrams_sequence_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/sequence/styles */ "./src/diagrams/sequence/styles.js");
71943/* harmony import */ var _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./diagrams/state/styles */ "./src/diagrams/state/styles.js");
71944/* harmony import */ var _diagrams_user_journey_styles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./diagrams/user-journey/styles */ "./src/diagrams/user-journey/styles.js");
71945
71946
71947
71948
71949
71950
71951
71952
71953
71954
71955var themes = {
71956 flowchart: _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_2__["default"],
71957 'flowchart-v2': _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_2__["default"],
71958 sequence: _diagrams_sequence_styles__WEBPACK_IMPORTED_MODULE_7__["default"],
71959 gantt: _diagrams_gantt_styles__WEBPACK_IMPORTED_MODULE_3__["default"],
71960 classDiagram: _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_0__["default"],
71961 'classDiagram-v2': _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_0__["default"],
71962 class: _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_0__["default"],
71963 stateDiagram: _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_8__["default"],
71964 state: _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_8__["default"],
71965 git: _diagrams_git_styles__WEBPACK_IMPORTED_MODULE_4__["default"],
71966 info: _diagrams_info_styles__WEBPACK_IMPORTED_MODULE_5__["default"],
71967 pie: _diagrams_pie_styles__WEBPACK_IMPORTED_MODULE_6__["default"],
71968 er: _diagrams_er_styles__WEBPACK_IMPORTED_MODULE_1__["default"],
71969 journey: _diagrams_user_journey_styles__WEBPACK_IMPORTED_MODULE_9__["default"]
71970};
71971var calcThemeVariables = function calcThemeVariables(theme, userOverRides) {
71972 return theme.calcColors(userOverRides);
71973};
71974
71975var getStyles = function getStyles(type, userStyles, options) {
71976 //console.warn('options in styles: ', options);
71977 return " {\n font-family: ".concat(options.fontFamily, ";\n font-size: ").concat(options.fontSize, ";\n fill: ").concat(options.textColor, "\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ").concat(options.errorBkgColor, ";\n }\n .error-text {\n fill: ").concat(options.errorTextColor, ";\n stroke: ").concat(options.errorTextColor, ";\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ").concat(options.lineColor, ";\n }\n .marker.cross {\n stroke: ").concat(options.lineColor, ";\n }\n\n svg {\n font-family: ").concat(options.fontFamily, ";\n font-size: ").concat(options.fontSize, ";\n }\n\n ").concat(themes[type](options), "\n\n ").concat(userStyles, "\n\n ").concat(type, " { fill: apa;}\n");
71978};
71979
71980/* harmony default export */ __webpack_exports__["default"] = (getStyles);
71981
71982/***/ }),
71983
71984/***/ "./src/themes/index.js":
71985/*!*****************************!*\
71986 !*** ./src/themes/index.js ***!
71987 \*****************************/
71988/*! exports provided: default */
71989/***/ (function(module, __webpack_exports__, __webpack_require__) {
71990
71991"use strict";
71992__webpack_require__.r(__webpack_exports__);
71993/* harmony import */ var _theme_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./theme-base */ "./src/themes/theme-base.js");
71994/* harmony import */ var _theme_dark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-dark */ "./src/themes/theme-dark.js");
71995/* harmony import */ var _theme_default__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./theme-default */ "./src/themes/theme-default.js");
71996/* harmony import */ var _theme_forest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./theme-forest */ "./src/themes/theme-forest.js");
71997/* harmony import */ var _theme_neutral__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./theme-neutral */ "./src/themes/theme-neutral.js");
71998
71999
72000
72001
72002
72003/* harmony default export */ __webpack_exports__["default"] = ({
72004 base: {
72005 getThemeVariables: _theme_base__WEBPACK_IMPORTED_MODULE_0__["getThemeVariables"]
72006 },
72007 dark: {
72008 getThemeVariables: _theme_dark__WEBPACK_IMPORTED_MODULE_1__["getThemeVariables"]
72009 },
72010 default: {
72011 getThemeVariables: _theme_default__WEBPACK_IMPORTED_MODULE_2__["getThemeVariables"]
72012 },
72013 forest: {
72014 getThemeVariables: _theme_forest__WEBPACK_IMPORTED_MODULE_3__["getThemeVariables"]
72015 },
72016 neutral: {
72017 getThemeVariables: _theme_neutral__WEBPACK_IMPORTED_MODULE_4__["getThemeVariables"]
72018 }
72019});
72020
72021/***/ }),
72022
72023/***/ "./src/themes/theme-base.js":
72024/*!**********************************!*\
72025 !*** ./src/themes/theme-base.js ***!
72026 \**********************************/
72027/*! exports provided: getThemeVariables */
72028/***/ (function(module, __webpack_exports__, __webpack_require__) {
72029
72030"use strict";
72031__webpack_require__.r(__webpack_exports__);
72032/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72033/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72034/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72035/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72036function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
72037
72038function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72039
72040function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
72041
72042function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72043
72044
72045
72046
72047var Theme =
72048/*#__PURE__*/
72049function () {
72050 function Theme() {
72051 _classCallCheck(this, Theme);
72052
72053 /** # Base variables */
72054
72055 /** * background - used to know what the background color is of the diagram. This is used for deducing colors for istance line color. Defaulr value is #f4f4f4. */
72056 this.background = '#f4f4f4';
72057 this.darkMode = false; // this.background = '#0c0c0c';
72058 // this.darkMode = true;
72059
72060 this.primaryColor = '#fff4dd'; // this.background = '#0c0c0c';
72061 // this.primaryColor = '#1f1f00';
72062
72063 this.noteBkgColor = '#fff5ad';
72064 this.noteTextColor = '#333'; // dark
72065 // this.primaryColor = '#034694';
72066 // this.primaryColor = '#f2ee7e';
72067 // this.primaryColor = '#9f33be';
72068 // this.primaryColor = '#f0fff0';
72069 // this.primaryColor = '#fa255e';
72070 // this.primaryColor = '#ECECFF';
72071 // this.secondaryColor = '#c39ea0';
72072 // this.tertiaryColor = '#f8e5e5';
72073 // this.secondaryColor = '#dfdfde';
72074 // this.tertiaryColor = '#CCCCFF';
72075
72076 this.fontFamily = '"trebuchet ms", verdana, arial';
72077 this.fontSize = '16px'; // this.updateColors();
72078 }
72079
72080 _createClass(Theme, [{
72081 key: "updateColors",
72082 value: function updateColors() {
72083 // The || is to make sure that if the variable has been defiend by a user override that value is to be used
72084
72085 /* Main */
72086 this.primaryTextColor = this.primaryTextColor || (this.darkMode ? '#ddd' : '#333'); // invert(this.primaryColor);
72087
72088 this.secondaryColor = this.secondaryColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72089 h: -120
72090 });
72091 this.tertiaryColor = this.tertiaryColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72092 h: 180,
72093 l: 5
72094 });
72095 this.primaryBorderColor = this.primaryBorderColor || Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72096 this.secondaryBorderColor = this.secondaryBorderColor || Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72097 this.tertiaryBorderColor = this.tertiaryBorderColor || Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode);
72098 this.noteBorderColor = this.noteBorderColor || Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.noteBkgColor, this.darkMode);
72099 this.secondaryTextColor = this.secondaryTextColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72100 this.tertiaryTextColor = this.tertiaryTextColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.tertiaryColor);
72101 this.lineColor = this.lineColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72102 this.textColor = this.textColor || this.primaryTextColor;
72103 /* Flowchart variables */
72104
72105 this.nodeBkg = this.nodeBkg || this.primaryColor;
72106 this.mainBkg = this.mainBkg || this.primaryColor;
72107 this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
72108 this.clusterBkg = this.clusterBkg || this.tertiaryColor;
72109 this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
72110 this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
72111 this.titleColor = this.titleColor || this.tertiaryTextColor;
72112 this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.secondaryColor, 30) : this.secondaryColor);
72113 this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
72114 /* Sequence Diagram variables */
72115 // this.actorBorder = lighten(this.border1, 0.5);
72116
72117 this.actorBorder = this.actorBorder || this.primaryBorderColor;
72118 this.actorBkg = this.actorBkg || this.mainBkg;
72119 this.actorTextColor = this.actorTextColor || this.primaryTextColor;
72120 this.actorLineColor = this.actorLineColor || 'grey';
72121 this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
72122 this.signalColor = this.signalColor || this.textColor;
72123 this.signalTextColor = this.signalTextColor || this.textColor;
72124 this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
72125 this.labelTextColor = this.labelTextColor || this.actorTextColor;
72126 this.loopTextColor = this.loopTextColor || this.actorTextColor;
72127 this.activationBorderColor = this.activationBorderColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.secondaryColor, 10);
72128 this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
72129 this.sequenceNumberColor = this.sequenceNumberColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.lineColor);
72130 /* Gantt chart variables */
72131
72132 this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
72133 this.altSectionBkgColor = this.altSectionBkgColor || 'white';
72134 this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
72135 this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
72136 this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
72137 this.taskBkgColor = this.taskBkgColor || this.primaryColor;
72138 this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
72139 this.activeTaskBkgColor = this.activeTaskBkgColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.primaryColor, 23);
72140 this.gridColor = this.gridColor || 'lightgrey';
72141 this.doneTaskBkgColor = this.doneTaskBkgColor || 'lightgrey';
72142 this.doneTaskBorderColor = this.doneTaskBorderColor || 'grey';
72143 this.critBorderColor = this.critBorderColor || '#ff8888';
72144 this.critBkgColor = this.critBkgColor || 'red';
72145 this.todayLineColor = this.todayLineColor || 'red';
72146 this.taskTextColor = this.taskTextColor || this.textColor;
72147 this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
72148 this.taskTextLightColor = this.taskTextLightColor || this.textColor;
72149 this.taskTextColor = this.taskTextColor || this.primaryTextColor;
72150 this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
72151 this.taskTextClickableColor = this.taskTextClickableColor || '#003163';
72152 /* state colors */
72153
72154 this.labelColor = this.labelColor || this.primaryTextColor;
72155 this.altBackground = this.altBackground || this.tertiaryColor;
72156 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
72157 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
72158 /* class */
72159
72160 this.classText = this.classText || this.textColor;
72161 /* user-journey */
72162
72163 this.fillType0 = this.fillType0 || this.primaryColor;
72164 this.fillType1 = this.fillType1 || this.secondaryColor;
72165 this.fillType2 = this.fillType2 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72166 h: 64
72167 });
72168 this.fillType3 = this.fillType3 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72169 h: 64
72170 });
72171 this.fillType4 = this.fillType4 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72172 h: -64
72173 });
72174 this.fillType5 = this.fillType5 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72175 h: -64
72176 });
72177 this.fillType6 = this.fillType6 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72178 h: 128
72179 });
72180 this.fillType7 = this.fillType7 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72181 h: 128
72182 });
72183 }
72184 }, {
72185 key: "calculate",
72186 value: function calculate(overrides) {
72187 var _this = this;
72188
72189 if (_typeof(overrides) !== 'object') {
72190 // Calculate colors form base colors
72191 this.updateColors();
72192 return;
72193 }
72194
72195 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72196
72197 keys.forEach(function (k) {
72198 _this[k] = overrides[k];
72199 }); // Calculate colors form base colors
72200
72201 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72202
72203 keys.forEach(function (k) {
72204 _this[k] = overrides[k];
72205 });
72206 }
72207 }]);
72208
72209 return Theme;
72210}();
72211
72212var getThemeVariables = function getThemeVariables(userOverrides) {
72213 var theme = new Theme();
72214 theme.calculate(userOverrides);
72215 return theme;
72216};
72217
72218/***/ }),
72219
72220/***/ "./src/themes/theme-dark.js":
72221/*!**********************************!*\
72222 !*** ./src/themes/theme-dark.js ***!
72223 \**********************************/
72224/*! exports provided: getThemeVariables */
72225/***/ (function(module, __webpack_exports__, __webpack_require__) {
72226
72227"use strict";
72228__webpack_require__.r(__webpack_exports__);
72229/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72230/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72231/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72232/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72233function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
72234
72235function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72236
72237function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
72238
72239function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72240
72241
72242
72243
72244var Theme =
72245/*#__PURE__*/
72246function () {
72247 function Theme() {
72248 _classCallCheck(this, Theme);
72249
72250 this.background = '#333';
72251 this.primaryColor = '#1f2020';
72252 this.secondaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.primaryColor, 16);
72253 this.tertiaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72254 h: -160
72255 });
72256 this.primaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72257 this.secondaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72258 this.tertiaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode);
72259 this.primaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72260 this.secondaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72261 this.tertiaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.tertiaryColor);
72262 this.lineColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72263 this.textColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72264 this.mainBkg = '#1f2020';
72265 this.secondBkg = 'calculated';
72266 this.mainContrastColor = 'lightgrey';
72267 this.darkTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])('#323D47'), 10);
72268 this.lineColor = 'calculated';
72269 this.border1 = '#81B1DB';
72270 this.border2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["rgba"])(255, 255, 255, 0.25);
72271 this.arrowheadColor = 'calculated';
72272 this.fontFamily = '"trebuchet ms", verdana, arial';
72273 this.fontSize = '16px';
72274 this.labelBackground = '#181818';
72275 this.textColor = '#ccc';
72276 /* Flowchart variables */
72277
72278 this.nodeBkg = 'calculated';
72279 this.nodeBorder = 'calculated';
72280 this.clusterBkg = 'calculated';
72281 this.clusterBorder = 'calculated';
72282 this.defaultLinkColor = 'calculated';
72283 this.titleColor = '#F9FFFE';
72284 this.edgeLabelBackground = 'calculated';
72285 /* Sequence Diagram variables */
72286
72287 this.actorBorder = 'calculated';
72288 this.actorBkg = 'calculated';
72289 this.actorTextColor = 'calculated';
72290 this.actorLineColor = 'calculated';
72291 this.signalColor = 'calculated';
72292 this.signalTextColor = 'calculated';
72293 this.labelBoxBkgColor = 'calculated';
72294 this.labelBoxBorderColor = 'calculated';
72295 this.labelTextColor = 'calculated';
72296 this.loopTextColor = 'calculated';
72297 this.noteBorderColor = 'calculated';
72298 this.noteBkgColor = '#fff5ad';
72299 this.noteTextColor = 'calculated';
72300 this.activationBorderColor = 'calculated';
72301 this.activationBkgColor = 'calculated';
72302 this.sequenceNumberColor = 'black';
72303 /* Gantt chart variables */
72304
72305 this.sectionBkgColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])('#EAE8D9', 30);
72306 this.altSectionBkgColor = 'calculated';
72307 this.sectionBkgColor2 = '#EAE8D9';
72308 this.taskBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["rgba"])(255, 255, 255, 70);
72309 this.taskBkgColor = 'calculated';
72310 this.taskTextColor = 'calculated';
72311 this.taskTextLightColor = 'calculated';
72312 this.taskTextOutsideColor = 'calculated';
72313 this.taskTextClickableColor = '#003163';
72314 this.activeTaskBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["rgba"])(255, 255, 255, 50);
72315 this.activeTaskBkgColor = '#81B1DB';
72316 this.gridColor = 'calculated';
72317 this.doneTaskBkgColor = 'calculated';
72318 this.doneTaskBorderColor = 'grey';
72319 this.critBorderColor = '#E83737';
72320 this.critBkgColor = '#E83737';
72321 this.taskTextDarkColor = 'calculated';
72322 this.todayLineColor = '#DB5757';
72323 /* state colors */
72324
72325 this.labelColor = 'calculated';
72326 this.errorBkgColor = '#a44141';
72327 this.errorTextColor = '#ddd';
72328 }
72329
72330 _createClass(Theme, [{
72331 key: "updateColors",
72332 value: function updateColors() {
72333 this.secondBkg = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.mainBkg, 16);
72334 this.lineColor = this.mainContrastColor;
72335 this.arrowheadColor = this.mainContrastColor;
72336 /* Flowchart variables */
72337
72338 this.nodeBkg = this.mainBkg;
72339 this.nodeBorder = this.border1;
72340 this.clusterBkg = this.secondBkg;
72341 this.clusterBorder = this.border2;
72342 this.defaultLinkColor = this.lineColor;
72343 this.edgeLabelBackground = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.labelBackground, 25);
72344 /* Sequence Diagram variables */
72345
72346 this.actorBorder = this.border1;
72347 this.actorBkg = this.mainBkg;
72348 this.actorTextColor = this.mainContrastColor;
72349 this.actorLineColor = this.mainContrastColor;
72350 this.signalColor = this.mainContrastColor;
72351 this.signalTextColor = this.mainContrastColor;
72352 this.labelBoxBkgColor = this.actorBkg;
72353 this.labelBoxBorderColor = this.actorBorder;
72354 this.labelTextColor = this.mainContrastColor;
72355 this.loopTextColor = this.mainContrastColor;
72356 this.noteBorderColor = this.border2;
72357 this.noteTextColor = this.mainBkg;
72358 this.activationBorderColor = this.border1;
72359 this.activationBkgColor = this.secondBkg;
72360 /* Gantt chart variables */
72361
72362 this.altSectionBkgColor = this.background;
72363 this.taskBkgColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.mainBkg, 23);
72364 this.taskTextColor = this.darkTextColor;
72365 this.taskTextLightColor = this.mainContrastColor;
72366 this.taskTextOutsideColor = this.taskTextLightColor;
72367 this.gridColor = this.mainContrastColor;
72368 this.doneTaskBkgColor = this.mainContrastColor;
72369 this.taskTextDarkColor = this.darkTextColor;
72370 /* state colors */
72371
72372 this.labelColor = this.textColor;
72373 this.altBackground = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.background, 20);
72374 this.fillType0 = this.primaryColor;
72375 this.fillType1 = this.secondaryColor;
72376 this.fillType2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72377 h: 64
72378 });
72379 this.fillType3 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72380 h: 64
72381 });
72382 this.fillType4 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72383 h: -64
72384 });
72385 this.fillType5 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72386 h: -64
72387 });
72388 this.fillType6 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72389 h: 128
72390 });
72391 this.fillType7 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72392 h: 128
72393 });
72394 /* class */
72395
72396 this.classText = this.primaryTextColor;
72397 }
72398 }, {
72399 key: "calculate",
72400 value: function calculate(overrides) {
72401 var _this = this;
72402
72403 if (_typeof(overrides) !== 'object') {
72404 // Calculate colors form base colors
72405 this.updateColors();
72406 return;
72407 }
72408
72409 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72410
72411 keys.forEach(function (k) {
72412 _this[k] = overrides[k];
72413 }); // Calculate colors form base colors
72414
72415 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72416
72417 keys.forEach(function (k) {
72418 _this[k] = overrides[k];
72419 });
72420 }
72421 }]);
72422
72423 return Theme;
72424}();
72425
72426var getThemeVariables = function getThemeVariables(userOverrides) {
72427 var theme = new Theme();
72428 theme.calculate(userOverrides);
72429 return theme;
72430};
72431
72432/***/ }),
72433
72434/***/ "./src/themes/theme-default.js":
72435/*!*************************************!*\
72436 !*** ./src/themes/theme-default.js ***!
72437 \*************************************/
72438/*! exports provided: getThemeVariables */
72439/***/ (function(module, __webpack_exports__, __webpack_require__) {
72440
72441"use strict";
72442__webpack_require__.r(__webpack_exports__);
72443/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72444/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72445/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72446/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72447function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
72448
72449function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72450
72451function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
72452
72453function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72454
72455
72456
72457
72458var Theme =
72459/*#__PURE__*/
72460function () {
72461 function Theme() {
72462 _classCallCheck(this, Theme);
72463
72464 /* Base variables */
72465 this.background = '#f4f4f4';
72466 this.primaryColor = '#ECECFF';
72467 this.secondaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72468 h: 120
72469 });
72470 this.secondaryColor = '#ffffde';
72471 this.tertiaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72472 h: -160
72473 });
72474 this.primaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72475 this.secondaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72476 this.tertiaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode); // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);
72477
72478 this.primaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72479 this.secondaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72480 this.tertiaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.tertiaryColor);
72481 this.lineColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72482 this.textColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72483 this.background = 'white';
72484 this.mainBkg = '#ECECFF';
72485 this.secondBkg = '#ffffde';
72486 this.lineColor = '#333333';
72487 this.border1 = '#9370DB';
72488 this.border2 = '#aaaa33';
72489 this.arrowheadColor = '#333333';
72490 this.fontFamily = '"trebuchet ms", verdana, arial';
72491 this.fontSize = '16px';
72492 this.labelBackground = '#e8e8e8';
72493 this.textColor = '#333';
72494 /* Flowchart variables */
72495
72496 this.nodeBkg = 'calculated';
72497 this.nodeBorder = 'calculated';
72498 this.clusterBkg = 'calculated';
72499 this.clusterBorder = 'calculated';
72500 this.defaultLinkColor = 'calculated';
72501 this.titleColor = 'calculated';
72502 this.edgeLabelBackground = 'calculated';
72503 /* Sequence Diagram variables */
72504
72505 this.actorBorder = 'calculated';
72506 this.actorBkg = 'calculated';
72507 this.actorTextColor = 'black';
72508 this.actorLineColor = 'grey';
72509 this.signalColor = 'calculated';
72510 this.signalTextColor = 'calculated';
72511 this.labelBoxBkgColor = 'calculated';
72512 this.labelBoxBorderColor = 'calculated';
72513 this.labelTextColor = 'calculated';
72514 this.loopTextColor = 'calculated';
72515 this.noteBorderColor = 'calculated';
72516 this.noteBkgColor = '#fff5ad';
72517 this.noteTextColor = 'calculated';
72518 this.activationBorderColor = '#666';
72519 this.activationBkgColor = '#f4f4f4';
72520 this.sequenceNumberColor = 'white';
72521 /* Gantt chart variables */
72522
72523 this.sectionBkgColor = 'calculated';
72524 this.altSectionBkgColor = 'calculated';
72525 this.sectionBkgColor2 = 'calculated';
72526 this.taskBorderColor = 'calculated';
72527 this.taskBkgColor = 'calculated';
72528 this.taskTextLightColor = 'calculated';
72529 this.taskTextColor = this.taskTextLightColor;
72530 this.taskTextDarkColor = 'calculated';
72531 this.taskTextOutsideColor = this.taskTextDarkColor;
72532 this.taskTextClickableColor = 'calculated';
72533 this.activeTaskBorderColor = 'calculated';
72534 this.activeTaskBkgColor = 'calculated';
72535 this.gridColor = 'calculated';
72536 this.doneTaskBkgColor = 'calculated';
72537 this.doneTaskBorderColor = 'calculated';
72538 this.critBorderColor = 'calculated';
72539 this.critBkgColor = 'calculated';
72540 this.todayLineColor = 'calculated';
72541 this.sectionBkgColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["rgba"])(102, 102, 255, 0.49);
72542 this.altSectionBkgColor = 'white';
72543 this.sectionBkgColor2 = '#fff400';
72544 this.taskBorderColor = '#534fbc';
72545 this.taskBkgColor = '#8a90dd';
72546 this.taskTextLightColor = 'white';
72547 this.taskTextColor = 'calculated';
72548 this.taskTextDarkColor = 'black';
72549 this.taskTextOutsideColor = 'calculated';
72550 this.taskTextClickableColor = '#003163';
72551 this.activeTaskBorderColor = '#534fbc';
72552 this.activeTaskBkgColor = '#bfc7ff';
72553 this.gridColor = 'lightgrey';
72554 this.doneTaskBkgColor = 'lightgrey';
72555 this.doneTaskBorderColor = 'grey';
72556 this.critBorderColor = '#ff8888';
72557 this.critBkgColor = 'red';
72558 this.todayLineColor = 'red';
72559 /* state colors */
72560
72561 this.labelColor = 'black';
72562 this.errorBkgColor = '#552222';
72563 this.errorTextColor = '#552222';
72564 this.updateColors();
72565 }
72566
72567 _createClass(Theme, [{
72568 key: "updateColors",
72569 value: function updateColors() {
72570 /* Flowchart variables */
72571 this.nodeBkg = this.mainBkg;
72572 this.nodeBorder = this.border1; // border 1
72573
72574 this.clusterBkg = this.secondBkg;
72575 this.clusterBorder = this.border2;
72576 this.defaultLinkColor = this.lineColor;
72577 this.titleColor = this.textColor;
72578 this.edgeLabelBackground = this.labelBackground;
72579 /* Sequence Diagram variables */
72580 // this.actorBorder = lighten(this.border1, 0.5);
72581
72582 this.actorBorder = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.border1, 23);
72583 this.actorBkg = this.mainBkg;
72584 this.labelBoxBkgColor = this.actorBkg;
72585 this.signalColor = this.textColor;
72586 this.signalTextColor = this.textColor;
72587 this.labelBoxBorderColor = this.actorBorder;
72588 this.labelTextColor = this.actorTextColor;
72589 this.loopTextColor = this.actorTextColor;
72590 this.noteBorderColor = this.border2;
72591 this.noteTextColor = this.actorTextColor;
72592 /* Gantt chart variables */
72593
72594 this.taskTextColor = this.taskTextLightColor;
72595 this.taskTextOutsideColor = this.taskTextDarkColor;
72596 /* state colors */
72597
72598 /* class */
72599
72600 this.classText = this.primaryTextColor;
72601 /* journey */
72602
72603 this.fillType0 = this.primaryColor;
72604 this.fillType1 = this.secondaryColor;
72605 this.fillType2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72606 h: 64
72607 });
72608 this.fillType3 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72609 h: 64
72610 });
72611 this.fillType4 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72612 h: -64
72613 });
72614 this.fillType5 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72615 h: -64
72616 });
72617 this.fillType6 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72618 h: 128
72619 });
72620 this.fillType7 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72621 h: 128
72622 });
72623 }
72624 }, {
72625 key: "calculate",
72626 value: function calculate(overrides) {
72627 var _this = this;
72628
72629 if (_typeof(overrides) !== 'object') {
72630 // Calculate colors form base colors
72631 this.updateColors();
72632 return;
72633 }
72634
72635 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72636
72637 keys.forEach(function (k) {
72638 _this[k] = overrides[k];
72639 }); // Calculate colors form base colors
72640
72641 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72642
72643 keys.forEach(function (k) {
72644 _this[k] = overrides[k];
72645 });
72646 }
72647 }]);
72648
72649 return Theme;
72650}();
72651
72652var getThemeVariables = function getThemeVariables(userOverrides) {
72653 var theme = new Theme();
72654 theme.calculate(userOverrides);
72655 return theme;
72656};
72657
72658/***/ }),
72659
72660/***/ "./src/themes/theme-forest.js":
72661/*!************************************!*\
72662 !*** ./src/themes/theme-forest.js ***!
72663 \************************************/
72664/*! exports provided: getThemeVariables */
72665/***/ (function(module, __webpack_exports__, __webpack_require__) {
72666
72667"use strict";
72668__webpack_require__.r(__webpack_exports__);
72669/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72670/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72671/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72672/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72673function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
72674
72675function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72676
72677function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
72678
72679function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72680
72681
72682
72683
72684var Theme =
72685/*#__PURE__*/
72686function () {
72687 function Theme() {
72688 _classCallCheck(this, Theme);
72689
72690 /* Base vales */
72691 this.background = '#f4f4f4';
72692 this.primaryColor = '#cde498';
72693 this.secondaryColor = '#cdffb2';
72694 this.background = 'white';
72695 this.mainBkg = '#cde498';
72696 this.secondBkg = '#cdffb2';
72697 this.lineColor = 'green';
72698 this.border1 = '#13540c';
72699 this.border2 = '#6eaa49';
72700 this.arrowheadColor = 'green';
72701 this.fontFamily = '"trebuchet ms", verdana, arial';
72702 this.fontSize = '16px';
72703 this.tertiaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])('#cde498', 10);
72704 this.primaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72705 this.secondaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72706 this.tertiaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode);
72707 this.primaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72708 this.secondaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72709 this.tertiaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72710 this.lineColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72711 this.textColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72712 /* Flowchart variables */
72713
72714 this.nodeBkg = 'calculated';
72715 this.nodeBorder = 'calculated';
72716 this.clusterBkg = 'calculated';
72717 this.clusterBorder = 'calculated';
72718 this.defaultLinkColor = 'calculated';
72719 this.titleColor = '#333';
72720 this.edgeLabelBackground = '#e8e8e8';
72721 /* Sequence Diagram variables */
72722
72723 this.actorBorder = 'calculated';
72724 this.actorBkg = 'calculated';
72725 this.actorTextColor = 'black';
72726 this.actorLineColor = 'grey';
72727 this.signalColor = '#333';
72728 this.signalTextColor = '#333';
72729 this.labelBoxBkgColor = 'calculated';
72730 this.labelBoxBorderColor = '#326932';
72731 this.labelTextColor = 'calculated';
72732 this.loopTextColor = 'calculated';
72733 this.noteBorderColor = 'calculated';
72734 this.noteBkgColor = '#fff5ad';
72735 this.noteTextColor = 'calculated';
72736 this.activationBorderColor = '#666';
72737 this.activationBkgColor = '#f4f4f4';
72738 this.sequenceNumberColor = 'white';
72739 /* Gantt chart variables */
72740
72741 this.sectionBkgColor = '#6eaa49';
72742 this.altSectionBkgColor = 'white';
72743 this.sectionBkgColor2 = '#6eaa49';
72744 this.taskBorderColor = 'calculated';
72745 this.taskBkgColor = '#487e3a';
72746 this.taskTextLightColor = 'white';
72747 this.taskTextColor = 'calculated';
72748 this.taskTextDarkColor = 'black';
72749 this.taskTextOutsideColor = 'calculated';
72750 this.taskTextClickableColor = '#003163';
72751 this.activeTaskBorderColor = 'calculated';
72752 this.activeTaskBkgColor = 'calculated';
72753 this.gridColor = 'lightgrey';
72754 this.doneTaskBkgColor = 'lightgrey';
72755 this.doneTaskBorderColor = 'grey';
72756 this.critBorderColor = '#ff8888';
72757 this.critBkgColor = 'red';
72758 this.todayLineColor = 'red';
72759 /* state colors */
72760
72761 this.labelColor = 'black';
72762 this.errorBkgColor = '#552222';
72763 this.errorTextColor = '#552222';
72764 }
72765
72766 _createClass(Theme, [{
72767 key: "updateColors",
72768 value: function updateColors() {
72769 /* Flowchart variables */
72770 this.nodeBkg = this.mainBkg;
72771 this.nodeBorder = this.border1;
72772 this.clusterBkg = this.secondBkg;
72773 this.clusterBorder = this.border2;
72774 this.defaultLinkColor = this.lineColor;
72775 /* Sequence Diagram variables */
72776
72777 this.actorBorder = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.mainBkg, 20);
72778 this.actorBkg = this.mainBkg;
72779 this.labelBoxBkgColor = this.actorBkg;
72780 this.labelTextColor = this.actorTextColor;
72781 this.loopTextColor = this.actorTextColor;
72782 this.noteBorderColor = this.border2;
72783 this.noteTextColor = this.actorTextColor;
72784 /* Gantt chart variables */
72785
72786 this.taskBorderColor = this.border1;
72787 this.taskTextColor = this.taskTextLightColor;
72788 this.taskTextOutsideColor = this.taskTextDarkColor;
72789 this.activeTaskBorderColor = this.taskBorderColor;
72790 this.activeTaskBkgColor = this.mainBkg;
72791 /* state colors */
72792
72793 /* class */
72794
72795 this.classText = this.primaryTextColor;
72796 /* journey */
72797
72798 this.fillType0 = this.primaryColor;
72799 this.fillType1 = this.secondaryColor;
72800 this.fillType2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72801 h: 64
72802 });
72803 this.fillType3 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72804 h: 64
72805 });
72806 this.fillType4 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72807 h: -64
72808 });
72809 this.fillType5 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72810 h: -64
72811 });
72812 this.fillType6 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72813 h: 128
72814 });
72815 this.fillType7 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72816 h: 128
72817 });
72818 }
72819 }, {
72820 key: "calculate",
72821 value: function calculate(overrides) {
72822 var _this = this;
72823
72824 if (_typeof(overrides) !== 'object') {
72825 // Calculate colors form base colors
72826 this.updateColors();
72827 return;
72828 }
72829
72830 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72831
72832 keys.forEach(function (k) {
72833 _this[k] = overrides[k];
72834 }); // Calculate colors form base colors
72835
72836 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72837
72838 keys.forEach(function (k) {
72839 _this[k] = overrides[k];
72840 });
72841 }
72842 }]);
72843
72844 return Theme;
72845}();
72846
72847var getThemeVariables = function getThemeVariables(userOverrides) {
72848 var theme = new Theme();
72849 theme.calculate(userOverrides);
72850 return theme;
72851};
72852
72853/***/ }),
72854
72855/***/ "./src/themes/theme-helpers.js":
72856/*!*************************************!*\
72857 !*** ./src/themes/theme-helpers.js ***!
72858 \*************************************/
72859/*! exports provided: mkBorder */
72860/***/ (function(module, __webpack_exports__, __webpack_require__) {
72861
72862"use strict";
72863__webpack_require__.r(__webpack_exports__);
72864/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mkBorder", function() { return mkBorder; });
72865/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72866/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72867
72868var mkBorder = function mkBorder(col, darkMode) {
72869 return darkMode ? Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(col, {
72870 s: -40,
72871 l: 10
72872 }) : Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(col, {
72873 s: -40,
72874 l: -10
72875 });
72876};
72877
72878/***/ }),
72879
72880/***/ "./src/themes/theme-neutral.js":
72881/*!*************************************!*\
72882 !*** ./src/themes/theme-neutral.js ***!
72883 \*************************************/
72884/*! exports provided: getThemeVariables */
72885/***/ (function(module, __webpack_exports__, __webpack_require__) {
72886
72887"use strict";
72888__webpack_require__.r(__webpack_exports__);
72889/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72890/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72891/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72892/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72893function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
72894
72895function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72896
72897function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
72898
72899function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72900
72901
72902 // const Color = require ( 'khroma/dist/color' ).default
72903// Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => "#EAF2FB"
72904
72905var Theme =
72906/*#__PURE__*/
72907function () {
72908 function Theme() {
72909 _classCallCheck(this, Theme);
72910
72911 this.primaryColor = '#eee';
72912 this.contrast = '#26a';
72913 this.secondaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 55);
72914 this.background = '#ffffff'; // this.secondaryColor = adjust(this.primaryColor, { h: 120 });
72915
72916 this.tertiaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72917 h: -160
72918 });
72919 this.primaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72920 this.secondaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72921 this.tertiaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode); // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);
72922
72923 this.primaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72924 this.secondaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72925 this.tertiaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.tertiaryColor);
72926 this.lineColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72927 this.textColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72928 this.altBackground = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 55);
72929 this.mainBkg = '#eee';
72930 this.secondBkg = 'calculated';
72931 this.lineColor = '#666';
72932 this.border1 = '#999';
72933 this.border2 = 'calculated';
72934 this.note = '#ffa';
72935 this.text = '#333';
72936 this.critical = '#d42';
72937 this.done = '#bbb';
72938 this.arrowheadColor = '#333333';
72939 this.fontFamily = '"trebuchet ms", verdana, arial';
72940 this.fontSize = '16px';
72941 /* Flowchart variables */
72942
72943 this.nodeBkg = 'calculated';
72944 this.nodeBorder = 'calculated';
72945 this.clusterBkg = 'calculated';
72946 this.clusterBorder = 'calculated';
72947 this.defaultLinkColor = 'calculated';
72948 this.titleColor = 'calculated';
72949 this.edgeLabelBackground = 'white';
72950 /* Sequence Diagram variables */
72951
72952 this.actorBorder = 'calculated';
72953 this.actorBkg = 'calculated';
72954 this.actorTextColor = 'calculated';
72955 this.actorLineColor = 'calculated';
72956 this.signalColor = 'calculated';
72957 this.signalTextColor = 'calculated';
72958 this.labelBoxBkgColor = 'calculated';
72959 this.labelBoxBorderColor = 'calculated';
72960 this.labelTextColor = 'calculated';
72961 this.loopTextColor = 'calculated';
72962 this.noteBorderColor = 'calculated';
72963 this.noteBkgColor = 'calculated';
72964 this.noteTextColor = 'calculated';
72965 this.activationBorderColor = '#666';
72966 this.activationBkgColor = '#f4f4f4';
72967 this.sequenceNumberColor = 'white';
72968 /* Gantt chart variables */
72969
72970 this.sectionBkgColor = 'calculated';
72971 this.altSectionBkgColor = 'white';
72972 this.sectionBkgColor2 = 'calculated';
72973 this.taskBorderColor = 'calculated';
72974 this.taskBkgColor = 'calculated';
72975 this.taskTextLightColor = 'white';
72976 this.taskTextColor = 'calculated';
72977 this.taskTextDarkColor = 'calculated';
72978 this.taskTextOutsideColor = 'calculated';
72979 this.taskTextClickableColor = '#003163';
72980 this.activeTaskBorderColor = 'calculated';
72981 this.activeTaskBkgColor = 'calculated';
72982 this.gridColor = 'calculated';
72983 this.doneTaskBkgColor = 'calculated';
72984 this.doneTaskBorderColor = 'calculated';
72985 this.critBkgColor = 'calculated';
72986 this.critBorderColor = 'calculated';
72987 this.todayLineColor = 'calculated';
72988 /* state colors */
72989
72990 this.labelColor = 'black';
72991 this.errorBkgColor = '#552222';
72992 this.errorTextColor = '#552222';
72993 }
72994
72995 _createClass(Theme, [{
72996 key: "updateColors",
72997 value: function updateColors() {
72998 this.secondBkg = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 55);
72999 this.border2 = this.contrast;
73000 /* Flowchart variables */
73001
73002 this.nodeBkg = this.mainBkg;
73003 this.nodeBorder = this.border1;
73004 this.clusterBkg = this.secondBkg;
73005 this.clusterBorder = this.border2;
73006 this.defaultLinkColor = this.lineColor;
73007 this.titleColor = this.text;
73008 /* Sequence Diagram variables */
73009
73010 this.actorBorder = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.border1, 23);
73011 this.actorBkg = this.mainBkg;
73012 this.actorTextColor = this.text;
73013 this.actorLineColor = this.lineColor;
73014 this.signalColor = this.text;
73015 this.signalTextColor = this.text;
73016 this.labelBoxBkgColor = this.actorBkg;
73017 this.labelBoxBorderColor = this.actorBorder;
73018 this.labelTextColor = this.text;
73019 this.loopTextColor = this.text;
73020 this.noteBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.note, 60);
73021 this.noteBkgColor = this.note;
73022 this.noteTextColor = this.actorTextColor;
73023 /* Gantt chart variables */
73024
73025 this.sectionBkgColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 30);
73026 this.sectionBkgColor2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 30);
73027 this.taskBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.contrast, 10);
73028 this.taskBkgColor = this.contrast;
73029 this.taskTextColor = this.taskTextLightColor;
73030 this.taskTextDarkColor = this.text;
73031 this.taskTextOutsideColor = this.taskTextDarkColor;
73032 this.activeTaskBorderColor = this.taskBorderColor;
73033 this.activeTaskBkgColor = this.mainBkg;
73034 this.gridColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.border1, 30);
73035 this.doneTaskBkgColor = this.done;
73036 this.doneTaskBorderColor = this.lineColor;
73037 this.critBkgColor = this.critical;
73038 this.critBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.critBkgColor, 10);
73039 this.todayLineColor = this.critBkgColor;
73040 /* state colors */
73041
73042 /* class */
73043
73044 this.classText = this.primaryTextColor;
73045 /* journey */
73046
73047 this.fillType0 = this.primaryColor;
73048 this.fillType1 = this.secondaryColor;
73049 this.fillType2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
73050 h: 64
73051 });
73052 this.fillType3 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
73053 h: 64
73054 });
73055 this.fillType4 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
73056 h: -64
73057 });
73058 this.fillType5 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
73059 h: -64
73060 });
73061 this.fillType6 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
73062 h: 128
73063 });
73064 this.fillType7 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
73065 h: 128
73066 });
73067 }
73068 }, {
73069 key: "calculate",
73070 value: function calculate(overrides) {
73071 var _this = this;
73072
73073 if (_typeof(overrides) !== 'object') {
73074 // Calculate colors form base colors
73075 this.updateColors();
73076 return;
73077 }
73078
73079 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
73080
73081 keys.forEach(function (k) {
73082 _this[k] = overrides[k];
73083 }); // Calculate colors form base colors
73084
73085 this.updateColors(); // Copy values from overrides again in case of an override of derived value
73086
73087 keys.forEach(function (k) {
73088 _this[k] = overrides[k];
73089 });
73090 }
73091 }]);
73092
73093 return Theme;
73094}();
73095
73096var getThemeVariables = function getThemeVariables(userOverrides) {
73097 var theme = new Theme();
73098 theme.calculate(userOverrides);
73099 return theme;
73100};
73101
73102/***/ }),
73103
73104/***/ "./src/utils.js":
73105/*!**********************!*\
73106 !*** ./src/utils.js ***!
73107 \**********************/
73108/*! exports provided: detectInit, detectDirective, detectType, isSubstringInArray, interpolateToCurve, formatUrl, runFunc, getStylesFromArray, generateId, random, assignWithDepth, getTextObj, drawSimpleText, wrapLabel, calculateTextHeight, calculateTextWidth, calculateTextDimensions, calculateSvgSizeAttrs, configureSvgSize, default */
73109/***/ (function(module, __webpack_exports__, __webpack_require__) {
73110
73111"use strict";
73112__webpack_require__.r(__webpack_exports__);
73113/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectInit", function() { return detectInit; });
73114/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectDirective", function() { return detectDirective; });
73115/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectType", function() { return detectType; });
73116/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSubstringInArray", function() { return isSubstringInArray; });
73117/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateToCurve", function() { return interpolateToCurve; });
73118/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatUrl", function() { return formatUrl; });
73119/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "runFunc", function() { return runFunc; });
73120/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStylesFromArray", function() { return getStylesFromArray; });
73121/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generateId", function() { return generateId; });
73122/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "random", function() { return random; });
73123/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assignWithDepth", function() { return assignWithDepth; });
73124/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextObj", function() { return getTextObj; });
73125/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawSimpleText", function() { return drawSimpleText; });
73126/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrapLabel", function() { return wrapLabel; });
73127/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateTextHeight", function() { return calculateTextHeight; });
73128/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateTextWidth", function() { return calculateTextWidth; });
73129/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateTextDimensions", function() { return calculateTextDimensions; });
73130/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateSvgSizeAttrs", function() { return calculateSvgSizeAttrs; });
73131/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "configureSvgSize", function() { return configureSvgSize; });
73132/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
73133/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
73134/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js");
73135/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__);
73136/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./diagrams/common/common */ "./src/diagrams/common/common.js");
73137var _this = undefined;
73138
73139function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
73140
73141function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
73142
73143function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
73144
73145function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
73146
73147function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
73148
73149
73150
73151
73152 // import cryptoRandomString from 'crypto-random-string';
73153// Effectively an enum of the supported curve types, accessible by name
73154
73155var d3CurveTypes = {
73156 curveBasis: d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"],
73157 curveBasisClosed: d3__WEBPACK_IMPORTED_MODULE_0__["curveBasisClosed"],
73158 curveBasisOpen: d3__WEBPACK_IMPORTED_MODULE_0__["curveBasisOpen"],
73159 curveLinear: d3__WEBPACK_IMPORTED_MODULE_0__["curveLinear"],
73160 curveLinearClosed: d3__WEBPACK_IMPORTED_MODULE_0__["curveLinearClosed"],
73161 curveMonotoneX: d3__WEBPACK_IMPORTED_MODULE_0__["curveMonotoneX"],
73162 curveMonotoneY: d3__WEBPACK_IMPORTED_MODULE_0__["curveMonotoneY"],
73163 curveNatural: d3__WEBPACK_IMPORTED_MODULE_0__["curveNatural"],
73164 curveStep: d3__WEBPACK_IMPORTED_MODULE_0__["curveStep"],
73165 curveStepAfter: d3__WEBPACK_IMPORTED_MODULE_0__["curveStepAfter"],
73166 curveStepBefore: d3__WEBPACK_IMPORTED_MODULE_0__["curveStepBefore"]
73167};
73168var directive = /[%]{2}[{]\s*(?:(?:(\w+)\s*:|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi;
73169var directiveWithoutOpen = /\s*(?:(?:(\w+)(?=:):|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi;
73170var anyComment = /\s*%%.*\n/gm;
73171/**
73172 * @function detectInit
73173 * Detects the init config object from the text
73174 * ```mermaid
73175 * %%{init: {"theme": "debug", "logLevel": 1 }}%%
73176 * graph LR
73177 * a-->b
73178 * b-->c
73179 * c-->d
73180 * d-->e
73181 * e-->f
73182 * f-->g
73183 * g-->h
73184 * ```
73185 * or
73186 * ```mermaid
73187 * %%{initialize: {"theme": "dark", logLevel: "debug" }}%%
73188 * graph LR
73189 * a-->b
73190 * b-->c
73191 * c-->d
73192 * d-->e
73193 * e-->f
73194 * f-->g
73195 * g-->h
73196 * ```
73197 *
73198 * @param {string} text The text defining the graph
73199 * @returns {object} the json object representing the init passed to mermaid.initialize()
73200 */
73201
73202var detectInit = function detectInit(text) {
73203 var inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/);
73204 var results = {};
73205
73206 if (Array.isArray(inits)) {
73207 var args = inits.map(function (init) {
73208 return init.args;
73209 });
73210 results = assignWithDepth(results, _toConsumableArray(args));
73211 } else {
73212 results = inits.args;
73213 }
73214
73215 if (results) {
73216 var type = detectType(text);
73217 ['config'].forEach(function (prop) {
73218 if (typeof results[prop] !== 'undefined') {
73219 if (type === 'flowchart-v2') {
73220 type = 'flowchart';
73221 }
73222
73223 results[type] = results[prop];
73224 delete results[prop];
73225 }
73226 });
73227 }
73228
73229 return results;
73230};
73231/**
73232 * @function detectDirective
73233 * Detects the directive from the text. Text can be single line or multiline. If type is null or omitted
73234 * the first directive encountered in text will be returned
73235 * ```mermaid
73236 * graph LR
73237 * %%{somedirective}%%
73238 * a-->b
73239 * b-->c
73240 * c-->d
73241 * d-->e
73242 * e-->f
73243 * f-->g
73244 * g-->h
73245 * ```
73246 *
73247 * @param {string} text The text defining the graph
73248 * @param {string|RegExp} type The directive to return (default: null)
73249 * @returns {object | Array} An object or Array representing the directive(s): { type: string, args: object|null } matched by the input type
73250 * if a single directive was found, that directive object will be returned.
73251 */
73252
73253var detectDirective = function detectDirective(text) {
73254 var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
73255
73256 try {
73257 var commentWithoutDirectives = new RegExp("[%]{2}(?![{]".concat(directiveWithoutOpen.source, ")(?=[}][%]{2}).*\n"), 'ig');
73258 text = text.trim().replace(commentWithoutDirectives, '').replace(/'/gm, '"');
73259 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug("Detecting diagram directive".concat(type !== null ? ' type:' + type : '', " based on the text:").concat(text));
73260 var match,
73261 result = [];
73262
73263 while ((match = directive.exec(text)) !== null) {
73264 // This is necessary to avoid infinite loops with zero-width matches
73265 if (match.index === directive.lastIndex) {
73266 directive.lastIndex++;
73267 }
73268
73269 if (match && !type || type && match[1] && match[1].match(type) || type && match[2] && match[2].match(type)) {
73270 var _type = match[1] ? match[1] : match[2];
73271
73272 var args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;
73273 result.push({
73274 type: _type,
73275 args: args
73276 });
73277 }
73278 }
73279
73280 if (result.length === 0) {
73281 result.push({
73282 type: text,
73283 args: null
73284 });
73285 }
73286
73287 return result.length === 1 ? result[0] : result;
73288 } catch (error) {
73289 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error("ERROR: ".concat(error.message, " - Unable to parse directive").concat(type !== null ? ' type:' + type : '', " based on the text:").concat(text));
73290 return {
73291 type: null,
73292 args: null
73293 };
73294 }
73295};
73296/**
73297 * @function detectType
73298 * Detects the type of the graph text. Takes into consideration the possible existence of an %%init
73299 * directive
73300 * ```mermaid
73301 * %%{initialize: {"startOnLoad": true, logLevel: "fatal" }}%%
73302 * graph LR
73303 * a-->b
73304 * b-->c
73305 * c-->d
73306 * d-->e
73307 * e-->f
73308 * f-->g
73309 * g-->h
73310 * ```
73311 *
73312 * @param {string} text The text defining the graph
73313 * @returns {string} A graph definition key
73314 */
73315
73316var detectType = function detectType(text) {
73317 text = text.replace(directive, '').replace(anyComment, '\n');
73318 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Detecting diagram type based on the text ' + text);
73319
73320 if (text.match(/^\s*sequenceDiagram/)) {
73321 return 'sequence';
73322 }
73323
73324 if (text.match(/^\s*gantt/)) {
73325 return 'gantt';
73326 }
73327
73328 if (text.match(/^\s*classDiagram-v2/)) {
73329 return 'classDiagram';
73330 }
73331
73332 if (text.match(/^\s*classDiagram/)) {
73333 return 'class';
73334 }
73335
73336 if (text.match(/^\s*stateDiagram-v2/)) {
73337 return 'stateDiagram';
73338 }
73339
73340 if (text.match(/^\s*stateDiagram/)) {
73341 return 'state';
73342 }
73343
73344 if (text.match(/^\s*gitGraph/)) {
73345 return 'git';
73346 }
73347
73348 if (text.match(/^\s*flowchart/)) {
73349 return 'flowchart-v2';
73350 }
73351
73352 if (text.match(/^\s*info/)) {
73353 return 'info';
73354 }
73355
73356 if (text.match(/^\s*pie/)) {
73357 return 'pie';
73358 }
73359
73360 if (text.match(/^\s*erDiagram/)) {
73361 return 'er';
73362 }
73363
73364 if (text.match(/^\s*journey/)) {
73365 return 'journey';
73366 }
73367
73368 return 'flowchart';
73369};
73370
73371var memoize = function memoize(fn, resolver) {
73372 var cache = {};
73373 return function () {
73374 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
73375 args[_key] = arguments[_key];
73376 }
73377
73378 var n = resolver ? resolver.apply(_this, args) : args[0];
73379
73380 if (n in cache) {
73381 return cache[n];
73382 } else {
73383 var result = fn.apply(void 0, args);
73384 cache[n] = result;
73385 return result;
73386 }
73387 };
73388};
73389/**
73390 * @function isSubstringInArray
73391 * Detects whether a substring in present in a given array
73392 * @param {string} str The substring to detect
73393 * @param {array} arr The array to search
73394 * @returns {number} the array index containing the substring or -1 if not present
73395 **/
73396
73397
73398var isSubstringInArray = function isSubstringInArray(str, arr) {
73399 for (var i = 0; i < arr.length; i++) {
73400 if (arr[i].match(str)) return i;
73401 }
73402
73403 return -1;
73404};
73405var interpolateToCurve = function interpolateToCurve(interpolate, defaultCurve) {
73406 if (!interpolate) {
73407 return defaultCurve;
73408 }
73409
73410 var curveName = "curve".concat(interpolate.charAt(0).toUpperCase() + interpolate.slice(1));
73411 return d3CurveTypes[curveName] || defaultCurve;
73412};
73413var formatUrl = function formatUrl(linkStr, config) {
73414 var url = linkStr.trim();
73415
73416 if (url) {
73417 if (config.securityLevel !== 'loose') {
73418 return Object(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__["sanitizeUrl"])(url);
73419 }
73420
73421 return url;
73422 }
73423};
73424var runFunc = function runFunc(functionName) {
73425 var _obj;
73426
73427 var arrPaths = functionName.split('.');
73428 var len = arrPaths.length - 1;
73429 var fnName = arrPaths[len];
73430 var obj = window;
73431
73432 for (var i = 0; i < len; i++) {
73433 obj = obj[arrPaths[i]];
73434 if (!obj) return;
73435 }
73436
73437 for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
73438 params[_key2 - 1] = arguments[_key2];
73439 }
73440
73441 (_obj = obj)[fnName].apply(_obj, params);
73442};
73443
73444var distance = function distance(p1, p2) {
73445 return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;
73446};
73447
73448var traverseEdge = function traverseEdge(points) {
73449 var prevPoint;
73450 var totalDistance = 0;
73451 points.forEach(function (point) {
73452 totalDistance += distance(point, prevPoint);
73453 prevPoint = point;
73454 }); // Traverse half of total distance along points
73455
73456 var remainingDistance = totalDistance / 2;
73457 var center = undefined;
73458 prevPoint = undefined;
73459 points.forEach(function (point) {
73460 if (prevPoint && !center) {
73461 var vectorDistance = distance(point, prevPoint);
73462
73463 if (vectorDistance < remainingDistance) {
73464 remainingDistance -= vectorDistance;
73465 } else {
73466 // The point is remainingDistance from prevPoint in the vector between prevPoint and point
73467 // Calculate the coordinates
73468 var distanceRatio = remainingDistance / vectorDistance;
73469 if (distanceRatio <= 0) center = prevPoint;
73470 if (distanceRatio >= 1) center = {
73471 x: point.x,
73472 y: point.y
73473 };
73474
73475 if (distanceRatio > 0 && distanceRatio < 1) {
73476 center = {
73477 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
73478 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
73479 };
73480 }
73481 }
73482 }
73483
73484 prevPoint = point;
73485 });
73486 return center;
73487};
73488
73489var calcLabelPosition = function calcLabelPosition(points) {
73490 return traverseEdge(points);
73491};
73492
73493var calcCardinalityPosition = function calcCardinalityPosition(isRelationTypePresent, points, initialPosition) {
73494 var prevPoint;
73495 var totalDistance = 0; // eslint-disable-line
73496
73497 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('our points', points);
73498
73499 if (points[0] !== initialPosition) {
73500 points = points.reverse();
73501 }
73502
73503 points.forEach(function (point) {
73504 totalDistance += distance(point, prevPoint);
73505 prevPoint = point;
73506 }); // Traverse only 25 total distance along points to find cardinality point
73507
73508 var distanceToCardinalityPoint = 25;
73509 var remainingDistance = distanceToCardinalityPoint;
73510 var center;
73511 prevPoint = undefined;
73512 points.forEach(function (point) {
73513 if (prevPoint && !center) {
73514 var vectorDistance = distance(point, prevPoint);
73515
73516 if (vectorDistance < remainingDistance) {
73517 remainingDistance -= vectorDistance;
73518 } else {
73519 // The point is remainingDistance from prevPoint in the vector between prevPoint and point
73520 // Calculate the coordinates
73521 var distanceRatio = remainingDistance / vectorDistance;
73522 if (distanceRatio <= 0) center = prevPoint;
73523 if (distanceRatio >= 1) center = {
73524 x: point.x,
73525 y: point.y
73526 };
73527
73528 if (distanceRatio > 0 && distanceRatio < 1) {
73529 center = {
73530 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
73531 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
73532 };
73533 }
73534 }
73535 }
73536
73537 prevPoint = point;
73538 }); // if relation is present (Arrows will be added), change cardinality point off-set distance (d)
73539
73540 var d = isRelationTypePresent ? 10 : 5; //Calculate Angle for x and y axis
73541
73542 var angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
73543 var cardinalityPosition = {
73544 x: 0,
73545 y: 0
73546 }; //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance
73547
73548 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
73549 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
73550 return cardinalityPosition;
73551};
73552/**
73553 * position ['start_left', 'start_right', 'end_left', 'end_right']
73554 */
73555
73556
73557var calcTerminalLabelPosition = function calcTerminalLabelPosition(terminalMarkerSize, position, _points) {
73558 // Todo looking to faster cloning method
73559 var points = JSON.parse(JSON.stringify(_points));
73560 var prevPoint;
73561 var totalDistance = 0; // eslint-disable-line
73562
73563 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('our points', points);
73564
73565 if (position !== 'start_left' && position !== 'start_right') {
73566 points = points.reverse();
73567 }
73568
73569 points.forEach(function (point) {
73570 totalDistance += distance(point, prevPoint);
73571 prevPoint = point;
73572 }); // Traverse only 25 total distance along points to find cardinality point
73573
73574 var distanceToCardinalityPoint = 25;
73575 var remainingDistance = distanceToCardinalityPoint;
73576 var center;
73577 prevPoint = undefined;
73578 points.forEach(function (point) {
73579 if (prevPoint && !center) {
73580 var vectorDistance = distance(point, prevPoint);
73581
73582 if (vectorDistance < remainingDistance) {
73583 remainingDistance -= vectorDistance;
73584 } else {
73585 // The point is remainingDistance from prevPoint in the vector between prevPoint and point
73586 // Calculate the coordinates
73587 var distanceRatio = remainingDistance / vectorDistance;
73588 if (distanceRatio <= 0) center = prevPoint;
73589 if (distanceRatio >= 1) center = {
73590 x: point.x,
73591 y: point.y
73592 };
73593
73594 if (distanceRatio > 0 && distanceRatio < 1) {
73595 center = {
73596 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
73597 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
73598 };
73599 }
73600 }
73601 }
73602
73603 prevPoint = point;
73604 }); // if relation is present (Arrows will be added), change cardinality point off-set distance (d)
73605
73606 var d = 10; //Calculate Angle for x and y axis
73607
73608 var angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
73609 var cardinalityPosition = {
73610 x: 0,
73611 y: 0
73612 }; //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance
73613
73614 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
73615 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
73616
73617 if (position === 'start_left') {
73618 cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;
73619 cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;
73620 }
73621
73622 if (position === 'end_right') {
73623 cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;
73624 cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;
73625 }
73626
73627 if (position === 'end_left') {
73628 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;
73629 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;
73630 }
73631
73632 return cardinalityPosition;
73633};
73634
73635var getStylesFromArray = function getStylesFromArray(arr) {
73636 var style = '';
73637 var labelStyle = '';
73638
73639 for (var i = 0; i < arr.length; i++) {
73640 if (typeof arr[i] !== 'undefined') {
73641 // add text properties to label style definition
73642 if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {
73643 labelStyle = labelStyle + arr[i] + ';';
73644 } else {
73645 style = style + arr[i] + ';';
73646 }
73647 }
73648 }
73649
73650 return {
73651 style: style,
73652 labelStyle: labelStyle
73653 };
73654};
73655var cnt = 0;
73656var generateId = function generateId() {
73657 cnt++;
73658 return 'id-' + Math.random().toString(36).substr(2, 12) + '-' + cnt;
73659};
73660
73661function makeid(length) {
73662 var result = '';
73663 var characters = '0123456789abcdef';
73664 var charactersLength = characters.length;
73665
73666 for (var i = 0; i < length; i++) {
73667 result += characters.charAt(Math.floor(Math.random() * charactersLength));
73668 }
73669
73670 return result;
73671}
73672
73673var random = function random(options) {
73674 return makeid(options.length);
73675};
73676/**
73677 * @function assignWithDepth
73678 * Extends the functionality of {@link ObjectConstructor.assign} with the ability to merge arbitrary-depth objects
73679 * For each key in src with path `k` (recursively) performs an Object.assign(dst[`k`], src[`k`]) with
73680 * a slight change from the typical handling of undefined for dst[`k`]: instead of raising an error,
73681 * dst[`k`] is auto-initialized to {} and effectively merged with src[`k`]
73682 * <p>
73683 * Additionally, dissimilar types will not clobber unless the config.clobber parameter === true. Example:
73684 * ```
73685 * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };
73686 * let config_1 = { foo: 'foo', bar: 'bar' };
73687 * let result = assignWithDepth(config_0, config_1);
73688 * console.log(result);
73689 * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }
73690 * ```
73691 * <p>
73692 * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1.
73693 * <p>
73694 * If src is a destructured array of objects and dst is not an array, assignWithDepth will apply each element of src to dst
73695 * in order.
73696 * @param dst:any - the destination of the merge
73697 * @param src:any - the source object(s) to merge into destination
73698 * @param config:{ depth: number, clobber: boolean } - depth: depth to traverse within src and dst for merging -
73699 * clobber: should dissimilar types clobber (default: { depth: 2, clobber: false })
73700 * @returns {*}
73701 */
73702
73703var assignWithDepth = function assignWithDepth(dst, src, config) {
73704 var _Object$assign = Object.assign({
73705 depth: 2,
73706 clobber: false
73707 }, config),
73708 depth = _Object$assign.depth,
73709 clobber = _Object$assign.clobber;
73710
73711 if (Array.isArray(src) && !Array.isArray(dst)) {
73712 src.forEach(function (s) {
73713 return assignWithDepth(dst, s, config);
73714 });
73715 return dst;
73716 } else if (Array.isArray(src) && Array.isArray(dst)) {
73717 src.forEach(function (s) {
73718 if (dst.indexOf(s) === -1) {
73719 dst.push(s);
73720 }
73721 });
73722 return dst;
73723 }
73724
73725 if (typeof dst === 'undefined' || depth <= 0) {
73726 if (dst !== undefined && dst !== null && _typeof(dst) === 'object' && _typeof(src) === 'object') {
73727 return Object.assign(dst, src);
73728 } else {
73729 return src;
73730 }
73731 }
73732
73733 if (typeof src !== 'undefined' && _typeof(dst) === 'object' && _typeof(src) === 'object') {
73734 Object.keys(src).forEach(function (key) {
73735 if (_typeof(src[key]) === 'object' && (dst[key] === undefined || _typeof(dst[key]) === 'object')) {
73736 if (dst[key] === undefined) {
73737 dst[key] = Array.isArray(src[key]) ? [] : {};
73738 }
73739
73740 dst[key] = assignWithDepth(dst[key], src[key], {
73741 depth: depth - 1,
73742 clobber: clobber
73743 });
73744 } else if (clobber || _typeof(dst[key]) !== 'object' && _typeof(src[key]) !== 'object') {
73745 dst[key] = src[key];
73746 }
73747 });
73748 }
73749
73750 return dst;
73751};
73752var getTextObj = function getTextObj() {
73753 return {
73754 x: 0,
73755 y: 0,
73756 fill: undefined,
73757 anchor: 'start',
73758 style: '#666',
73759 width: 100,
73760 height: 100,
73761 textMargin: 0,
73762 rx: 0,
73763 ry: 0,
73764 valign: undefined
73765 };
73766};
73767var drawSimpleText = function drawSimpleText(elem, textData) {
73768 // Remove and ignore br:s
73769 var nText = textData.text.replace(_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__["default"].lineBreakRegex, ' ');
73770 var textElem = elem.append('text');
73771 textElem.attr('x', textData.x);
73772 textElem.attr('y', textData.y);
73773 textElem.style('text-anchor', textData.anchor);
73774 textElem.style('font-family', textData.fontFamily);
73775 textElem.style('font-size', textData.fontSize);
73776 textElem.style('font-weight', textData.fontWeight);
73777 textElem.attr('fill', textData.fill);
73778
73779 if (typeof textData.class !== 'undefined') {
73780 textElem.attr('class', textData.class);
73781 }
73782
73783 var span = textElem.append('tspan');
73784 span.attr('x', textData.x + textData.textMargin * 2);
73785 span.attr('fill', textData.fill);
73786 span.text(nText);
73787 return textElem;
73788};
73789var wrapLabel = memoize(function (label, maxWidth, config) {
73790 if (!label) {
73791 return label;
73792 }
73793
73794 config = Object.assign({
73795 fontSize: 12,
73796 fontWeight: 400,
73797 fontFamily: 'Arial',
73798 joinWith: '<br/>'
73799 }, config);
73800
73801 if (_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__["default"].lineBreakRegex.test(label)) {
73802 return label;
73803 }
73804
73805 var words = label.split(' ');
73806 var completedLines = [];
73807 var nextLine = '';
73808 words.forEach(function (word, index) {
73809 var wordLength = calculateTextWidth("".concat(word, " "), config);
73810 var nextLineLength = calculateTextWidth(nextLine, config);
73811
73812 if (wordLength > maxWidth) {
73813 var _breakString = breakString(word, maxWidth, '-', config),
73814 hyphenatedStrings = _breakString.hyphenatedStrings,
73815 remainingWord = _breakString.remainingWord;
73816
73817 completedLines.push.apply(completedLines, [nextLine].concat(_toConsumableArray(hyphenatedStrings)));
73818 nextLine = remainingWord;
73819 } else if (nextLineLength + wordLength >= maxWidth) {
73820 completedLines.push(nextLine);
73821 nextLine = word;
73822 } else {
73823 nextLine = [nextLine, word].filter(Boolean).join(' ');
73824 }
73825
73826 var currentWord = index + 1;
73827 var isLastWord = currentWord === words.length;
73828
73829 if (isLastWord) {
73830 completedLines.push(nextLine);
73831 }
73832 });
73833 return completedLines.filter(function (line) {
73834 return line !== '';
73835 }).join(config.joinWith);
73836}, function (label, maxWidth, config) {
73837 return "".concat(label, "-").concat(maxWidth, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily, "-").concat(config.joinWith);
73838});
73839var breakString = memoize(function (word, maxWidth) {
73840 var hyphenCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '-';
73841 var config = arguments.length > 3 ? arguments[3] : undefined;
73842 config = Object.assign({
73843 fontSize: 12,
73844 fontWeight: 400,
73845 fontFamily: 'Arial',
73846 margin: 0
73847 }, config);
73848 var characters = word.split('');
73849 var lines = [];
73850 var currentLine = '';
73851 characters.forEach(function (character, index) {
73852 var nextLine = "".concat(currentLine).concat(character);
73853 var lineWidth = calculateTextWidth(nextLine, config);
73854
73855 if (lineWidth >= maxWidth) {
73856 var currentCharacter = index + 1;
73857 var isLastLine = characters.length === currentCharacter;
73858 var hyphenatedNextLine = "".concat(nextLine).concat(hyphenCharacter);
73859 lines.push(isLastLine ? nextLine : hyphenatedNextLine);
73860 currentLine = '';
73861 } else {
73862 currentLine = nextLine;
73863 }
73864 });
73865 return {
73866 hyphenatedStrings: lines,
73867 remainingWord: currentLine
73868 };
73869}, function (word, maxWidth) {
73870 var hyphenCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '-';
73871 var config = arguments.length > 3 ? arguments[3] : undefined;
73872 return "".concat(word, "-").concat(maxWidth, "-").concat(hyphenCharacter, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily);
73873});
73874/**
73875 * This calculates the text's height, taking into account the wrap breaks and
73876 * both the statically configured height, width, and the length of the text (in pixels).
73877 *
73878 * If the wrapped text text has greater height, we extend the height, so it's
73879 * value won't overflow.
73880 *
73881 * @return - The height for the given text
73882 * @param text the text to measure
73883 * @param config - the config for fontSize, fontFamily, and fontWeight all impacting the resulting size
73884 */
73885
73886var calculateTextHeight = function calculateTextHeight(text, config) {
73887 config = Object.assign({
73888 fontSize: 12,
73889 fontWeight: 400,
73890 fontFamily: 'Arial',
73891 margin: 15
73892 }, config);
73893 return calculateTextDimensions(text, config).height;
73894};
73895/**
73896 * This calculates the width of the given text, font size and family.
73897 *
73898 * @return - The width for the given text
73899 * @param text - The text to calculate the width of
73900 * @param config - the config for fontSize, fontFamily, and fontWeight all impacting the resulting size
73901 */
73902
73903var calculateTextWidth = function calculateTextWidth(text, config) {
73904 config = Object.assign({
73905 fontSize: 12,
73906 fontWeight: 400,
73907 fontFamily: 'Arial'
73908 }, config);
73909 return calculateTextDimensions(text, config).width;
73910};
73911/**
73912 * This calculates the dimensions of the given text, font size, font family, font weight, and margins.
73913 *
73914 * @return - The width for the given text
73915 * @param text - The text to calculate the width of
73916 * @param config - the config for fontSize, fontFamily, fontWeight, and margin all impacting the resulting size
73917 */
73918
73919var calculateTextDimensions = memoize(function (text, config) {
73920 config = Object.assign({
73921 fontSize: 12,
73922 fontWeight: 400,
73923 fontFamily: 'Arial'
73924 }, config);
73925 var _config = config,
73926 fontSize = _config.fontSize,
73927 fontFamily = _config.fontFamily,
73928 fontWeight = _config.fontWeight;
73929
73930 if (!text) {
73931 return {
73932 width: 0,
73933 height: 0
73934 };
73935 } // We can't really know if the user supplied font family will render on the user agent;
73936 // thus, we'll take the max width between the user supplied font family, and a default
73937 // of sans-serif.
73938
73939
73940 var fontFamilies = ['sans-serif', fontFamily];
73941 var lines = text.split(_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__["default"].lineBreakRegex);
73942 var dims = [];
73943 var body = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('body'); // We don't want to leak DOM elements - if a removal operation isn't available
73944 // for any reason, do not continue.
73945
73946 if (!body.remove) {
73947 return {
73948 width: 0,
73949 height: 0,
73950 lineHeight: 0
73951 };
73952 }
73953
73954 var g = body.append('svg');
73955
73956 for (var _i = 0, _fontFamilies = fontFamilies; _i < _fontFamilies.length; _i++) {
73957 var _fontFamily = _fontFamilies[_i];
73958 var cheight = 0;
73959 var dim = {
73960 width: 0,
73961 height: 0,
73962 lineHeight: 0
73963 };
73964 var _iteratorNormalCompletion = true;
73965 var _didIteratorError = false;
73966 var _iteratorError = undefined;
73967
73968 try {
73969 for (var _iterator = lines[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
73970 var line = _step.value;
73971 var textObj = getTextObj();
73972 textObj.text = line;
73973 var textElem = drawSimpleText(g, textObj).style('font-size', fontSize).style('font-weight', fontWeight).style('font-family', _fontFamily);
73974 var bBox = (textElem._groups || textElem)[0][0].getBBox();
73975 dim.width = Math.round(Math.max(dim.width, bBox.width));
73976 cheight = Math.round(bBox.height);
73977 dim.height += cheight;
73978 dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));
73979 }
73980 } catch (err) {
73981 _didIteratorError = true;
73982 _iteratorError = err;
73983 } finally {
73984 try {
73985 if (!_iteratorNormalCompletion && _iterator.return != null) {
73986 _iterator.return();
73987 }
73988 } finally {
73989 if (_didIteratorError) {
73990 throw _iteratorError;
73991 }
73992 }
73993 }
73994
73995 dims.push(dim);
73996 }
73997
73998 g.remove();
73999 var index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;
74000 return dims[index];
74001}, function (text, config) {
74002 return "".concat(text, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily);
74003});
74004
74005var d3Attrs = function d3Attrs(d3Elem, attrs) {
74006 var _iteratorNormalCompletion2 = true;
74007 var _didIteratorError2 = false;
74008 var _iteratorError2 = undefined;
74009
74010 try {
74011 for (var _iterator2 = attrs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
74012 var attr = _step2.value;
74013 d3Elem.attr(attr[0], attr[1]);
74014 }
74015 } catch (err) {
74016 _didIteratorError2 = true;
74017 _iteratorError2 = err;
74018 } finally {
74019 try {
74020 if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
74021 _iterator2.return();
74022 }
74023 } finally {
74024 if (_didIteratorError2) {
74025 throw _iteratorError2;
74026 }
74027 }
74028 }
74029};
74030
74031var calculateSvgSizeAttrs = function calculateSvgSizeAttrs(height, width, useMaxWidth) {
74032 var attrs = new Map();
74033 attrs.set('height', height);
74034
74035 if (useMaxWidth) {
74036 attrs.set('width', '100%');
74037 attrs.set('style', "max-width: ".concat(width, "px;"));
74038 } else {
74039 attrs.set('width', width);
74040 }
74041
74042 return attrs;
74043};
74044var configureSvgSize = function configureSvgSize(svgElem, height, width, useMaxWidth) {
74045 var attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);
74046 d3Attrs(svgElem, attrs);
74047};
74048/* harmony default export */ __webpack_exports__["default"] = ({
74049 assignWithDepth: assignWithDepth,
74050 wrapLabel: wrapLabel,
74051 calculateTextHeight: calculateTextHeight,
74052 calculateTextWidth: calculateTextWidth,
74053 calculateTextDimensions: calculateTextDimensions,
74054 calculateSvgSizeAttrs: calculateSvgSizeAttrs,
74055 configureSvgSize: configureSvgSize,
74056 detectInit: detectInit,
74057 detectDirective: detectDirective,
74058 detectType: detectType,
74059 isSubstringInArray: isSubstringInArray,
74060 interpolateToCurve: interpolateToCurve,
74061 calcLabelPosition: calcLabelPosition,
74062 calcCardinalityPosition: calcCardinalityPosition,
74063 calcTerminalLabelPosition: calcTerminalLabelPosition,
74064 formatUrl: formatUrl,
74065 getStylesFromArray: getStylesFromArray,
74066 generateId: generateId,
74067 random: random,
74068 memoize: memoize,
74069 runFunc: runFunc
74070});
74071
74072/***/ })
74073
74074/******/ })["default"];
74075});
74076//# sourceMappingURL=mermaid.js.map
\No newline at end of file